summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--Makefile124
-rw-r--r--asm/battle_811DA74.s6
-rw-r--r--asm/battle_ai.s3784
-rw-r--r--asm/battle_anim_80A7E7C.s6
-rw-r--r--asm/battle_anim_80CA710.s6
-rw-r--r--asm/battle_message.s6
-rw-r--r--asm/battle_records.s6
-rw-r--r--asm/battle_setup.s2580
-rw-r--r--asm/battle_transition.s6
-rw-r--r--asm/berry_blender.s56
-rw-r--r--asm/berry_tag_screen.s30
-rw-r--r--asm/big_shroomish_barboach.s522
-rw-r--r--asm/bike.s6
-rw-r--r--asm/cable_car.s36
-rw-r--r--asm/cable_car_util.s6
-rw-r--r--asm/cable_club.s40
-rw-r--r--asm/calculate_base_damage.s6
-rw-r--r--asm/choose_party.s14
-rw-r--r--asm/coins.s251
-rw-r--r--asm/contest.s32
-rw-r--r--asm/contest_ai.s658
-rw-r--r--asm/contest_effect.s10
-rw-r--r--asm/contest_link_80C2020.s114
-rw-r--r--asm/contest_link_80C857C.s10
-rw-r--r--asm/contest_painting.s12
-rw-r--r--asm/crt0.s4
-rw-r--r--asm/cute_sketch.s6
-rw-r--r--asm/daycare.s28
-rw-r--r--asm/decoration.s46
-rw-r--r--asm/dewford_trend.s939
-rw-r--r--asm/easy_chat.s58
-rw-r--r--asm/egg_hatch.s50
-rw-r--r--asm/evolution_scene.s42
-rw-r--r--asm/field_camera.s1330
-rw-r--r--asm/field_door.s613
-rw-r--r--asm/field_effect.s491
-rw-r--r--asm/field_effect_helpers.s6
-rw-r--r--asm/field_ground_effect.s6
-rw-r--r--asm/field_map_obj.s6
-rw-r--r--asm/field_player_avatar.s4636
-rw-r--r--asm/field_poison.s317
-rw-r--r--asm/fieldmap.s4
-rw-r--r--asm/fldeff_80C5CD4.s26
-rw-r--r--asm/fldeff_strength.s6
-rw-r--r--asm/heal_location.s86
-rw-r--r--asm/item.s1308
-rw-r--r--asm/item_menu.s266
-rw-r--r--asm/item_use.s90
-rw-r--r--asm/landmark.s132
-rw-r--r--asm/libagbsyscall.s2
-rw-r--r--asm/libgcnmultiboot.s4
-rw-r--r--asm/load_save.s6
-rw-r--r--asm/m4a_1.s10
-rw-r--r--asm/m4a_3.s6
-rw-r--r--asm/macros.inc (renamed from asm/macros.s)12
-rw-r--r--asm/macros/asm.inc (renamed from asm/macros/asm.s)0
-rw-r--r--asm/macros/battle_ai_script.inc (renamed from asm/macros/battle_ai_script.s)0
-rw-r--r--asm/macros/battle_anim.inc (renamed from asm/macros/battle_anim.s)0
-rw-r--r--asm/macros/battle_script.inc (renamed from asm/macros/battle_script.s)0
-rw-r--r--[-rwxr-xr-x]asm/macros/contest_ai_script.inc (renamed from asm/macros/contest_ai_script.s)0
-rw-r--r--asm/macros/ec.inc (renamed from asm/macros/ec.s)0
-rw-r--r--asm/macros/event.inc (renamed from asm/macros/event.s)0
-rw-r--r--asm/macros/field_effect_script.inc (renamed from asm/macros/field_effect_script.s)0
-rw-r--r--asm/macros/function.inc (renamed from asm/macros/function.s)0
-rw-r--r--asm/macros/m4a.inc (renamed from asm/macros/m4a.s)0
-rw-r--r--asm/macros/map.inc (renamed from asm/macros/map.s)0
-rw-r--r--asm/macros/movement.inc (renamed from asm/macros/movement.s)0
-rw-r--r--asm/macros/music_voice.inc (renamed from asm/macros/music_voice.s)0
-rw-r--r--asm/macros/pokemon_data.inc (renamed from asm/macros/pokemon_data.s)0
-rw-r--r--asm/mail.s6
-rw-r--r--asm/matuda_debug_menu.s46
-rw-r--r--asm/mauville_old_man.s18
-rw-r--r--asm/menu_cursor.s1118
-rw-r--r--asm/menu_helpers.s14
-rw-r--r--asm/metatile_behavior.s12
-rw-r--r--asm/mon_markings.s6
-rw-r--r--asm/money.s14
-rw-r--r--asm/mori_debug_menu.s322
-rw-r--r--asm/mystery_event_menu.s8
-rw-r--r--asm/mystery_event_script.s12
-rw-r--r--asm/naming_screen.s6
-rw-r--r--asm/party_menu.s62
-rw-r--r--asm/player_pc.s28
-rw-r--r--asm/pokedex.s2773
-rw-r--r--asm/pokedex_area_screen.s12
-rw-r--r--asm/pokedex_cry_screen.s6
-rw-r--r--asm/pokenav.s6
-rw-r--r--asm/porthole.s6
-rw-r--r--asm/record_mixing.s1243
-rw-r--r--asm/region_map.s6
-rw-r--r--asm/reset_rtc_screen.s1300
-rw-r--r--asm/rom3.s89208
-rw-r--r--asm/rom5.s6
-rw-r--r--asm/rom6.s220
-rw-r--r--asm/rom_800D42C.s88931
-rw-r--r--asm/rom_803D1FC.s6
-rw-r--r--asm/rom_8040EB4.s4
-rw-r--r--asm/rom_804373C.s10
-rw-r--r--asm/rom_8065394.s34
-rw-r--r--asm/rom_806936C.s1297
-rw-r--r--asm/rom_806D7F8.s14
-rw-r--r--asm/rom_8074BAC.s6
-rw-r--r--asm/rom_8080874.s16
-rw-r--r--asm/rom_80859BC.s82
-rw-r--r--asm/rom_8094928.s30
-rw-r--r--asm/rom_81258BC.s124
-rw-r--r--asm/rom_813BA94.s12
-rw-r--r--asm/rom_81473B8.s14
-rw-r--r--asm/rom_8148B8C.s6
-rw-r--r--asm/rom_header.inc (renamed from asm/rom_header.s)0
-rw-r--r--asm/rotating_gate.s6
-rw-r--r--asm/roulette.s70
-rw-r--r--asm/roulette_util.s6
-rw-r--r--asm/safari_zone.s544
-rw-r--r--asm/save_failed_screen.s6
-rw-r--r--asm/script_menu.s6
-rw-r--r--asm/script_pokemon_util_80C4BF0.s64
-rw-r--r--asm/script_pokemon_util_80F99CC.s56
-rw-r--r--asm/secret_base.s38
-rw-r--r--asm/shop.s62
-rw-r--r--asm/slot_machine.s6
-rw-r--r--asm/sound_check_menu.s8
-rw-r--r--asm/tileset.s1625
-rw-r--r--asm/title_screen.s1270
-rw-r--r--asm/trade.s78
-rw-r--r--asm/trader.s54
-rw-r--r--asm/trainer_card.s6
-rw-r--r--asm/trainer_see.s1119
-rw-r--r--asm/truck_scene.s604
-rw-r--r--asm/tv.s202
-rw-r--r--asm/unused_8124F94.s6
-rw-r--r--asm/weather.s851
-rw-r--r--common_syms/m4a_2.txt5
-rw-r--r--constants/ability_constants.inc (renamed from constants/ability_constants.s)0
-rw-r--r--constants/battle.inc (renamed from constants/battle.s)0
-rw-r--r--constants/battle_move_constants.inc (renamed from constants/battle_move_constants.s)0
-rw-r--r--constants/battle_move_effects.inc (renamed from constants/battle_move_effects.s)0
-rw-r--r--constants/battle_text.inc (renamed from constants/battle_text.s)0
-rw-r--r--constants/battle_tower_constants.inc (renamed from constants/battle_tower_constants.s)0
-rw-r--r--constants/berry_constants.inc (renamed from constants/berry_constants.s)0
-rw-r--r--constants/constants.inc28
-rw-r--r--constants/constants.s29
-rw-r--r--constants/contest_constants.inc (renamed from constants/contest_constants.s)0
-rw-r--r--constants/contest_move_effects.inc (renamed from constants/contest_move_effects.s)0
-rw-r--r--constants/decorations.inc (renamed from constants/decorations.s)0
-rw-r--r--constants/easy_chat_constants.inc (renamed from constants/easy_chat_constants.s)0
-rw-r--r--constants/game_stat.inc (renamed from constants/game_stat.s)0
-rw-r--r--constants/gba_constants.inc (renamed from constants/gba_constants.s)0
-rw-r--r--constants/hold_effects.inc (renamed from constants/hold_effects.s)0
-rw-r--r--constants/item_constants.inc (renamed from constants/item_constants.s)0
-rw-r--r--constants/item_data_constants.inc (renamed from constants/item_data_constants.s)0
-rw-r--r--constants/m4a_constants.inc (renamed from constants/m4a_constants.s)0
-rw-r--r--constants/map_constants.inc (renamed from constants/map_constants.s)0
-rw-r--r--constants/map_object_constants.inc (renamed from constants/map_object_constants.s)0
-rw-r--r--constants/misc_constants.inc (renamed from constants/misc_constants.s)0
-rw-r--r--constants/move_constants.inc (renamed from constants/move_constants.s)0
-rw-r--r--constants/opponent_constants.inc (renamed from constants/opponent_constants.s)0
-rw-r--r--constants/pokemon_data_constants.inc (renamed from constants/pokemon_data_constants.s)0
-rw-r--r--constants/region_map_sections.inc (renamed from constants/region_map_sections.s)0
-rw-r--r--constants/songs.inc (renamed from constants/songs.s)0
-rw-r--r--constants/species_constants.inc (renamed from constants/species_constants.s)0
-rw-r--r--constants/trainer_constants.inc (renamed from constants/trainer_constants.s)0
-rw-r--r--constants/type_constants.inc (renamed from constants/type_constants.s)0
-rw-r--r--constants/variables.inc6
-rw-r--r--constants/variables.s3
-rw-r--r--constants/version.inc (renamed from constants/version.s)0
-rw-r--r--data/bard_music.inc (renamed from data/bard_music.s)0
-rw-r--r--data/base_stats.inc (renamed from data/base_stats.s)0
-rw-r--r--data/battle_ai_scripts.s6
-rw-r--r--data/battle_anim_scripts.s6
-rw-r--r--data/battle_moves.inc (renamed from data/battle_moves.s)0
-rw-r--r--data/battle_scripts_1.s6
-rw-r--r--data/battle_scripts_2.s6
-rw-r--r--data/battle_tower/held_items.inc (renamed from data/battle_tower/held_items.s)0
-rw-r--r--data/battle_tower/level_100_mons.inc (renamed from data/battle_tower/level_100_mons.s)0
-rw-r--r--data/battle_tower/level_50_mons.inc (renamed from data/battle_tower/level_50_mons.s)0
-rw-r--r--data/battle_tower/trainers.inc (renamed from data/battle_tower/trainers.s)0
-rw-r--r--data/berries.inc (renamed from data/berries.s)0
-rw-r--r--data/clock_hand_coords.inc (renamed from data/clock_hand_coords.s)0
-rw-r--r--data/contest_ai_scripts.s6
-rw-r--r--data/contest_effect_funcs.inc (renamed from data/contest_effect_funcs.s)0
-rw-r--r--data/contest_effects.inc (renamed from data/contest_effects.s)0
-rw-r--r--data/contest_excitement_table.inc (renamed from data/contest_excitement_table.s)0
-rw-r--r--data/contest_moves.inc (renamed from data/contest_moves.s)0
-rw-r--r--data/contest_opponents.inc (renamed from data/contest_opponents.s)0
-rw-r--r--data/crc16_table.inc (renamed from data/crc16_table.s)0
-rw-r--r--data/cry_id_table.inc (renamed from data/cry_id_table.s)0
-rw-r--r--data/cute_sketch.inc (renamed from data/cute_sketch.s)0
-rw-r--r--data/data2.s1350
-rw-r--r--data/decorations.inc (renamed from data/decorations.s)0
-rw-r--r--data/egg_moves.inc (renamed from data/egg_moves.s)0
-rw-r--r--data/enemy_mon_elevation.inc (renamed from data/enemy_mon_elevation.s)0
-rw-r--r--data/event_scripts.s1467
-rw-r--r--data/evolution_table.inc (renamed from data/evolution_table.s)0
-rw-r--r--data/experience_tables/tables.inc (renamed from data/experience_tables/tables.s)0
-rw-r--r--data/field_effect_scripts.s6
-rw-r--r--data/field_move_scripts.inc (renamed from data/field_move_scripts.s)0
-rw-r--r--data/graphics.s8
-rw-r--r--data/graphics/berries/graphics.inc (renamed from data/graphics/berries/graphics.s)0
-rw-r--r--data/graphics/berries/graphics_table.inc (renamed from data/graphics/berries/graphics_table.s)0
-rw-r--r--data/graphics/field_objects/base_oam.inc (renamed from data/graphics/field_objects/base_oam.s)0
-rw-r--r--data/graphics/field_objects/berry_tree_graphics_tables.inc (renamed from data/graphics/field_objects/berry_tree_graphics_tables.s)0
-rw-r--r--data/graphics/field_objects/field_effect_object_graphics.inc (renamed from data/graphics/field_objects/field_effect_object_graphics.s)0
-rw-r--r--data/graphics/field_objects/field_effect_object_template_pointers.inc (renamed from data/graphics/field_objects/field_effect_object_template_pointers.s)0
-rw-r--r--data/graphics/field_objects/field_effect_objects.inc (renamed from data/graphics/field_objects/field_effect_objects.s)0
-rw-r--r--data/graphics/field_objects/map_object_anims.inc (renamed from data/graphics/field_objects/map_object_anims.s)0
-rw-r--r--data/graphics/field_objects/map_object_graphics.inc (renamed from data/graphics/field_objects/map_object_graphics.s)0
-rw-r--r--data/graphics/field_objects/map_object_graphics_info.inc (renamed from data/graphics/field_objects/map_object_graphics_info.s)0
-rw-r--r--data/graphics/field_objects/map_object_graphics_info_pointers.inc (renamed from data/graphics/field_objects/map_object_graphics_info_pointers.s)0
-rw-r--r--data/graphics/field_objects/map_object_pic_tables.inc (renamed from data/graphics/field_objects/map_object_pic_tables.s)0
-rw-r--r--data/graphics/field_objects/map_object_subsprites.inc (renamed from data/graphics/field_objects/map_object_subsprites.s)0
-rw-r--r--data/graphics/pokemon/back_pic_coords.inc (renamed from data/graphics/pokemon/back_pic_coords.s)0
-rw-r--r--data/graphics/pokemon/back_pic_table.inc (renamed from data/graphics/pokemon/back_pic_table.s)0
-rw-r--r--data/graphics/pokemon/circled_question_mark_graphics.inc (renamed from data/graphics/pokemon/circled_question_mark_graphics.s)0
-rw-r--r--data/graphics/pokemon/footprint_table.inc (renamed from data/graphics/pokemon/footprint_table.s)0
-rw-r--r--data/graphics/pokemon/front_pic_coords.inc (renamed from data/graphics/pokemon/front_pic_coords.s)0
-rw-r--r--data/graphics/pokemon/front_pic_table.inc (renamed from data/graphics/pokemon/front_pic_table.s)0
-rw-r--r--data/graphics/pokemon/graphics.inc (renamed from data/graphics/pokemon/graphics.s)0
-rw-r--r--data/graphics/pokemon/icon_palette_indices.inc (renamed from data/graphics/pokemon/icon_palette_indices.s)0
-rw-r--r--data/graphics/pokemon/icon_palette_table.inc (renamed from data/graphics/pokemon/icon_palette_table.s)0
-rw-r--r--data/graphics/pokemon/icon_table.inc (renamed from data/graphics/pokemon/icon_table.s)0
-rw-r--r--data/graphics/pokemon/palette_table.inc (renamed from data/graphics/pokemon/palette_table.s)0
-rw-r--r--data/graphics/pokemon/shiny_palette_table.inc (renamed from data/graphics/pokemon/shiny_palette_table.s)0
-rw-r--r--data/graphics/trainers/back_pic_coords.inc (renamed from data/graphics/trainers/back_pic_coords.s)0
-rw-r--r--data/graphics/trainers/back_pic_palette_table.inc (renamed from data/graphics/trainers/back_pic_palette_table.s)0
-rw-r--r--data/graphics/trainers/back_pic_table.inc (renamed from data/graphics/trainers/back_pic_table.s)0
-rw-r--r--data/graphics/trainers/front_pic_coords.inc (renamed from data/graphics/trainers/front_pic_coords.s)0
-rw-r--r--data/graphics/trainers/front_pic_palette_table.inc (renamed from data/graphics/trainers/front_pic_palette_table.s)0
-rw-r--r--data/graphics/trainers/front_pic_table.inc (renamed from data/graphics/trainers/front_pic_table.s)0
-rw-r--r--data/graphics/trainers/graphics.inc (renamed from data/graphics/trainers/graphics.s)0
-rw-r--r--data/ingame_trades.inc (renamed from data/ingame_trades.s)0
-rw-r--r--data/item_ball_scripts.inc (renamed from data/item_ball_scripts.s)0
-rw-r--r--data/item_effects.inc (renamed from data/item_effects.s)0
-rw-r--r--data/items.inc (renamed from data/items.s)0
-rw-r--r--data/landmarks.inc (renamed from data/landmarks.s)160
-rw-r--r--data/level_up_learnset_pointers.inc (renamed from data/level_up_learnset_pointers.s)0
-rw-r--r--data/level_up_learnsets.inc (renamed from data/level_up_learnsets.s)0
-rw-r--r--data/maps/_assets.inc (renamed from data/maps/_assets.s)0
-rw-r--r--data/maps/_groups.inc (renamed from data/maps/_groups.s)0
-rw-r--r--data/maps/attributes_table.inc (renamed from data/maps/attributes_table.s)0
-rw-r--r--data/maps/connections.inc (renamed from data/maps/connections.s)0
-rw-r--r--data/maps/events/AbandonedShip_CaptainsOffice.inc (renamed from data/maps/events/AbandonedShip_CaptainsOffice.s)0
-rw-r--r--data/maps/events/AbandonedShip_Corridors_1F.inc (renamed from data/maps/events/AbandonedShip_Corridors_1F.s)0
-rw-r--r--data/maps/events/AbandonedShip_Corridors_B1F.inc (renamed from data/maps/events/AbandonedShip_Corridors_B1F.s)0
-rw-r--r--data/maps/events/AbandonedShip_Deck.inc (renamed from data/maps/events/AbandonedShip_Deck.s)0
-rw-r--r--data/maps/events/AbandonedShip_HiddenFloorCorridors.inc (renamed from data/maps/events/AbandonedShip_HiddenFloorCorridors.s)0
-rw-r--r--data/maps/events/AbandonedShip_HiddenFloorRooms.inc (renamed from data/maps/events/AbandonedShip_HiddenFloorRooms.s)0
-rw-r--r--data/maps/events/AbandonedShip_Room_B1F.inc (renamed from data/maps/events/AbandonedShip_Room_B1F.s)0
-rw-r--r--data/maps/events/AbandonedShip_Rooms2_1F.inc (renamed from data/maps/events/AbandonedShip_Rooms2_1F.s)0
-rw-r--r--data/maps/events/AbandonedShip_Rooms2_B1F.inc (renamed from data/maps/events/AbandonedShip_Rooms2_B1F.s)0
-rw-r--r--data/maps/events/AbandonedShip_Rooms_1F.inc (renamed from data/maps/events/AbandonedShip_Rooms_1F.s)0
-rw-r--r--data/maps/events/AbandonedShip_Rooms_B1F.inc (renamed from data/maps/events/AbandonedShip_Rooms_B1F.s)0
-rw-r--r--data/maps/events/AbandonedShip_Underwater1.inc (renamed from data/maps/events/AbandonedShip_Underwater1.s)0
-rw-r--r--data/maps/events/AbandonedShip_Underwater2.inc (renamed from data/maps/events/AbandonedShip_Underwater2.s)0
-rw-r--r--data/maps/events/AncientTomb.inc (renamed from data/maps/events/AncientTomb.s)0
-rw-r--r--data/maps/events/AquaHideout_1F.inc (renamed from data/maps/events/AquaHideout_1F.s)0
-rw-r--r--data/maps/events/AquaHideout_B1F.inc (renamed from data/maps/events/AquaHideout_B1F.s)0
-rw-r--r--data/maps/events/AquaHideout_B2F.inc (renamed from data/maps/events/AquaHideout_B2F.s)0
-rw-r--r--data/maps/events/BattleTower_BattleRoom.inc (renamed from data/maps/events/BattleTower_BattleRoom.s)0
-rw-r--r--data/maps/events/BattleTower_Corridor.inc (renamed from data/maps/events/BattleTower_Corridor.s)0
-rw-r--r--data/maps/events/BattleTower_Elevator.inc (renamed from data/maps/events/BattleTower_Elevator.s)0
-rw-r--r--data/maps/events/BattleTower_Lobby.inc (renamed from data/maps/events/BattleTower_Lobby.s)0
-rw-r--r--data/maps/events/BattleTower_Outside.inc (renamed from data/maps/events/BattleTower_Outside.s)0
-rw-r--r--data/maps/events/CaveOfOrigin_1F.inc (renamed from data/maps/events/CaveOfOrigin_1F.s)0
-rw-r--r--data/maps/events/CaveOfOrigin_B1F.inc (renamed from data/maps/events/CaveOfOrigin_B1F.s)0
-rw-r--r--data/maps/events/CaveOfOrigin_B2F.inc (renamed from data/maps/events/CaveOfOrigin_B2F.s)0
-rw-r--r--data/maps/events/CaveOfOrigin_B3F.inc (renamed from data/maps/events/CaveOfOrigin_B3F.s)0
-rw-r--r--data/maps/events/CaveOfOrigin_B4F.inc (renamed from data/maps/events/CaveOfOrigin_B4F.s)0
-rw-r--r--data/maps/events/CaveOfOrigin_Entrance.inc (renamed from data/maps/events/CaveOfOrigin_Entrance.s)0
-rw-r--r--data/maps/events/DesertRuins.inc (renamed from data/maps/events/DesertRuins.s)0
-rw-r--r--data/maps/events/DewfordTown.inc (renamed from data/maps/events/DewfordTown.s)0
-rw-r--r--data/maps/events/DewfordTown_Gym.inc (renamed from data/maps/events/DewfordTown_Gym.s)0
-rw-r--r--data/maps/events/DewfordTown_Hall.inc (renamed from data/maps/events/DewfordTown_Hall.s)0
-rw-r--r--data/maps/events/DewfordTown_House1.inc (renamed from data/maps/events/DewfordTown_House1.s)0
-rw-r--r--data/maps/events/DewfordTown_House2.inc (renamed from data/maps/events/DewfordTown_House2.s)0
-rw-r--r--data/maps/events/DewfordTown_PokemonCenter_1F.inc (renamed from data/maps/events/DewfordTown_PokemonCenter_1F.s)0
-rw-r--r--data/maps/events/DewfordTown_PokemonCenter_2F.inc (renamed from data/maps/events/DewfordTown_PokemonCenter_2F.s)0
-rw-r--r--data/maps/events/DoubleBattleColosseum.inc (renamed from data/maps/events/DoubleBattleColosseum.s)0
-rw-r--r--data/maps/events/EverGrandeCity.inc (renamed from data/maps/events/EverGrandeCity.s)0
-rw-r--r--data/maps/events/EverGrandeCity_ChampionsRoom.inc (renamed from data/maps/events/EverGrandeCity_ChampionsRoom.s)0
-rw-r--r--data/maps/events/EverGrandeCity_Corridor1.inc (renamed from data/maps/events/EverGrandeCity_Corridor1.s)0
-rw-r--r--data/maps/events/EverGrandeCity_Corridor2.inc (renamed from data/maps/events/EverGrandeCity_Corridor2.s)0
-rw-r--r--data/maps/events/EverGrandeCity_Corridor3.inc (renamed from data/maps/events/EverGrandeCity_Corridor3.s)0
-rw-r--r--data/maps/events/EverGrandeCity_Corridor4.inc (renamed from data/maps/events/EverGrandeCity_Corridor4.s)0
-rw-r--r--data/maps/events/EverGrandeCity_Corridor5.inc (renamed from data/maps/events/EverGrandeCity_Corridor5.s)0
-rw-r--r--data/maps/events/EverGrandeCity_DrakesRoom.inc (renamed from data/maps/events/EverGrandeCity_DrakesRoom.s)0
-rw-r--r--data/maps/events/EverGrandeCity_GlaciasRoom.inc (renamed from data/maps/events/EverGrandeCity_GlaciasRoom.s)0
-rw-r--r--data/maps/events/EverGrandeCity_HallOfFame.inc (renamed from data/maps/events/EverGrandeCity_HallOfFame.s)0
-rw-r--r--data/maps/events/EverGrandeCity_PhoebesRoom.inc (renamed from data/maps/events/EverGrandeCity_PhoebesRoom.s)0
-rw-r--r--data/maps/events/EverGrandeCity_PokemonCenter_1F.inc (renamed from data/maps/events/EverGrandeCity_PokemonCenter_1F.s)0
-rw-r--r--data/maps/events/EverGrandeCity_PokemonCenter_2F.inc (renamed from data/maps/events/EverGrandeCity_PokemonCenter_2F.s)0
-rw-r--r--data/maps/events/EverGrandeCity_PokemonLeague.inc (renamed from data/maps/events/EverGrandeCity_PokemonLeague.s)0
-rw-r--r--data/maps/events/EverGrandeCity_SidneysRoom.inc (renamed from data/maps/events/EverGrandeCity_SidneysRoom.s)0
-rw-r--r--data/maps/events/FallarborTown.inc (renamed from data/maps/events/FallarborTown.s)0
-rw-r--r--data/maps/events/FallarborTown_ContestHall.inc (renamed from data/maps/events/FallarborTown_ContestHall.s)0
-rw-r--r--data/maps/events/FallarborTown_ContestLobby.inc (renamed from data/maps/events/FallarborTown_ContestLobby.s)0
-rw-r--r--data/maps/events/FallarborTown_House1.inc (renamed from data/maps/events/FallarborTown_House1.s)0
-rw-r--r--data/maps/events/FallarborTown_House2.inc (renamed from data/maps/events/FallarborTown_House2.s)0
-rw-r--r--data/maps/events/FallarborTown_Mart.inc (renamed from data/maps/events/FallarborTown_Mart.s)0
-rw-r--r--data/maps/events/FallarborTown_PokemonCenter_1F.inc (renamed from data/maps/events/FallarborTown_PokemonCenter_1F.s)0
-rw-r--r--data/maps/events/FallarborTown_PokemonCenter_2F.inc (renamed from data/maps/events/FallarborTown_PokemonCenter_2F.s)0
-rw-r--r--data/maps/events/FieryPath.inc (renamed from data/maps/events/FieryPath.s)0
-rw-r--r--data/maps/events/FortreeCity.inc (renamed from data/maps/events/FortreeCity.s)0
-rw-r--r--data/maps/events/FortreeCity_DecorationShop.inc (renamed from data/maps/events/FortreeCity_DecorationShop.s)0
-rw-r--r--data/maps/events/FortreeCity_Gym.inc (renamed from data/maps/events/FortreeCity_Gym.s)0
-rw-r--r--data/maps/events/FortreeCity_House1.inc (renamed from data/maps/events/FortreeCity_House1.s)0
-rw-r--r--data/maps/events/FortreeCity_House2.inc (renamed from data/maps/events/FortreeCity_House2.s)0
-rw-r--r--data/maps/events/FortreeCity_House3.inc (renamed from data/maps/events/FortreeCity_House3.s)0
-rw-r--r--data/maps/events/FortreeCity_House4.inc (renamed from data/maps/events/FortreeCity_House4.s)0
-rw-r--r--data/maps/events/FortreeCity_House5.inc (renamed from data/maps/events/FortreeCity_House5.s)0
-rw-r--r--data/maps/events/FortreeCity_Mart.inc (renamed from data/maps/events/FortreeCity_Mart.s)0
-rw-r--r--data/maps/events/FortreeCity_PokemonCenter_1F.inc (renamed from data/maps/events/FortreeCity_PokemonCenter_1F.s)0
-rw-r--r--data/maps/events/FortreeCity_PokemonCenter_2F.inc (renamed from data/maps/events/FortreeCity_PokemonCenter_2F.s)0
-rw-r--r--data/maps/events/GraniteCave_1F.inc (renamed from data/maps/events/GraniteCave_1F.s)0
-rw-r--r--data/maps/events/GraniteCave_B1F.inc (renamed from data/maps/events/GraniteCave_B1F.s)0
-rw-r--r--data/maps/events/GraniteCave_B2F.inc (renamed from data/maps/events/GraniteCave_B2F.s)0
-rw-r--r--data/maps/events/GraniteCave_StevensRoom.inc (renamed from data/maps/events/GraniteCave_StevensRoom.s)0
-rw-r--r--data/maps/events/InsideOfTruck.inc (renamed from data/maps/events/InsideOfTruck.s)0
-rw-r--r--data/maps/events/IslandCave.inc (renamed from data/maps/events/IslandCave.s)0
-rw-r--r--data/maps/events/JaggedPass.inc (renamed from data/maps/events/JaggedPass.s)0
-rw-r--r--data/maps/events/LavaridgeTown.inc (renamed from data/maps/events/LavaridgeTown.s)0
-rw-r--r--data/maps/events/LavaridgeTown_Gym_1F.inc (renamed from data/maps/events/LavaridgeTown_Gym_1F.s)0
-rw-r--r--data/maps/events/LavaridgeTown_Gym_B1F.inc (renamed from data/maps/events/LavaridgeTown_Gym_B1F.s)0
-rw-r--r--data/maps/events/LavaridgeTown_HerbShop.inc (renamed from data/maps/events/LavaridgeTown_HerbShop.s)0
-rw-r--r--data/maps/events/LavaridgeTown_House.inc (renamed from data/maps/events/LavaridgeTown_House.s)0
-rw-r--r--data/maps/events/LavaridgeTown_Mart.inc (renamed from data/maps/events/LavaridgeTown_Mart.s)0
-rw-r--r--data/maps/events/LavaridgeTown_PokemonCenter_1F.inc (renamed from data/maps/events/LavaridgeTown_PokemonCenter_1F.s)0
-rw-r--r--data/maps/events/LavaridgeTown_PokemonCenter_2F.inc (renamed from data/maps/events/LavaridgeTown_PokemonCenter_2F.s)0
-rw-r--r--data/maps/events/LilycoveCity.inc (renamed from data/maps/events/LilycoveCity.s)0
-rw-r--r--data/maps/events/LilycoveCity_ContestHall.inc (renamed from data/maps/events/LilycoveCity_ContestHall.s)0
-rw-r--r--data/maps/events/LilycoveCity_ContestLobby.inc (renamed from data/maps/events/LilycoveCity_ContestLobby.s)0
-rw-r--r--data/maps/events/LilycoveCity_CoveLilyMotel_1F.inc (renamed from data/maps/events/LilycoveCity_CoveLilyMotel_1F.s)0
-rw-r--r--data/maps/events/LilycoveCity_CoveLilyMotel_2F.inc (renamed from data/maps/events/LilycoveCity_CoveLilyMotel_2F.s)0
-rw-r--r--data/maps/events/LilycoveCity_DepartmentStoreElevator.inc (renamed from data/maps/events/LilycoveCity_DepartmentStoreElevator.s)0
-rw-r--r--data/maps/events/LilycoveCity_DepartmentStoreRooftop.inc (renamed from data/maps/events/LilycoveCity_DepartmentStoreRooftop.s)0
-rw-r--r--data/maps/events/LilycoveCity_DepartmentStore_1F.inc (renamed from data/maps/events/LilycoveCity_DepartmentStore_1F.s)0
-rw-r--r--data/maps/events/LilycoveCity_DepartmentStore_2F.inc (renamed from data/maps/events/LilycoveCity_DepartmentStore_2F.s)0
-rw-r--r--data/maps/events/LilycoveCity_DepartmentStore_3F.inc (renamed from data/maps/events/LilycoveCity_DepartmentStore_3F.s)0
-rw-r--r--data/maps/events/LilycoveCity_DepartmentStore_4F.inc (renamed from data/maps/events/LilycoveCity_DepartmentStore_4F.s)0
-rw-r--r--data/maps/events/LilycoveCity_DepartmentStore_5F.inc (renamed from data/maps/events/LilycoveCity_DepartmentStore_5F.s)0
-rw-r--r--data/maps/events/LilycoveCity_EmptyMap.inc (renamed from data/maps/events/LilycoveCity_EmptyMap.s)0
-rw-r--r--data/maps/events/LilycoveCity_Harbor.inc (renamed from data/maps/events/LilycoveCity_Harbor.s)0
-rw-r--r--data/maps/events/LilycoveCity_House1.inc (renamed from data/maps/events/LilycoveCity_House1.s)0
-rw-r--r--data/maps/events/LilycoveCity_House2.inc (renamed from data/maps/events/LilycoveCity_House2.s)0
-rw-r--r--data/maps/events/LilycoveCity_House3.inc (renamed from data/maps/events/LilycoveCity_House3.s)0
-rw-r--r--data/maps/events/LilycoveCity_House4.inc (renamed from data/maps/events/LilycoveCity_House4.s)0
-rw-r--r--data/maps/events/LilycoveCity_LilycoveMuseum_1F.inc (renamed from data/maps/events/LilycoveCity_LilycoveMuseum_1F.s)0
-rw-r--r--data/maps/events/LilycoveCity_LilycoveMuseum_2F.inc (renamed from data/maps/events/LilycoveCity_LilycoveMuseum_2F.s)0
-rw-r--r--data/maps/events/LilycoveCity_MoveDeletersHouse.inc (renamed from data/maps/events/LilycoveCity_MoveDeletersHouse.s)0
-rw-r--r--data/maps/events/LilycoveCity_PokemonCenter_1F.inc (renamed from data/maps/events/LilycoveCity_PokemonCenter_1F.s)0
-rw-r--r--data/maps/events/LilycoveCity_PokemonCenter_2F.inc (renamed from data/maps/events/LilycoveCity_PokemonCenter_2F.s)0
-rw-r--r--data/maps/events/LilycoveCity_PokemonTrainerFanClub.inc (renamed from data/maps/events/LilycoveCity_PokemonTrainerFanClub.s)0
-rw-r--r--data/maps/events/LilycoveCity_UnusedMart.inc (renamed from data/maps/events/LilycoveCity_UnusedMart.s)0
-rw-r--r--data/maps/events/LinkContestRoom1.inc (renamed from data/maps/events/LinkContestRoom1.s)0
-rw-r--r--data/maps/events/LinkContestRoom2.inc (renamed from data/maps/events/LinkContestRoom2.s)0
-rw-r--r--data/maps/events/LinkContestRoom3.inc (renamed from data/maps/events/LinkContestRoom3.s)0
-rw-r--r--data/maps/events/LinkContestRoom4.inc (renamed from data/maps/events/LinkContestRoom4.s)0
-rw-r--r--data/maps/events/LinkContestRoom5.inc (renamed from data/maps/events/LinkContestRoom5.s)0
-rw-r--r--data/maps/events/LinkContestRoom6.inc (renamed from data/maps/events/LinkContestRoom6.s)0
-rw-r--r--data/maps/events/LittlerootTown.inc (renamed from data/maps/events/LittlerootTown.s)0
-rw-r--r--data/maps/events/LittlerootTown_BrendansHouse_1F.inc (renamed from data/maps/events/LittlerootTown_BrendansHouse_1F.s)0
-rw-r--r--data/maps/events/LittlerootTown_BrendansHouse_2F.inc (renamed from data/maps/events/LittlerootTown_BrendansHouse_2F.s)0
-rw-r--r--data/maps/events/LittlerootTown_MaysHouse_1F.inc (renamed from data/maps/events/LittlerootTown_MaysHouse_1F.s)0
-rw-r--r--data/maps/events/LittlerootTown_MaysHouse_2F.inc (renamed from data/maps/events/LittlerootTown_MaysHouse_2F.s)0
-rw-r--r--data/maps/events/LittlerootTown_ProfessorBirchsLab.inc (renamed from data/maps/events/LittlerootTown_ProfessorBirchsLab.s)0
-rw-r--r--data/maps/events/MagmaHideout_1F.inc (renamed from data/maps/events/MagmaHideout_1F.s)0
-rw-r--r--data/maps/events/MagmaHideout_B1F.inc (renamed from data/maps/events/MagmaHideout_B1F.s)0
-rw-r--r--data/maps/events/MagmaHideout_B2F.inc (renamed from data/maps/events/MagmaHideout_B2F.s)0
-rw-r--r--data/maps/events/MauvilleCity.inc (renamed from data/maps/events/MauvilleCity.s)0
-rw-r--r--data/maps/events/MauvilleCity_BikeShop.inc (renamed from data/maps/events/MauvilleCity_BikeShop.s)0
-rw-r--r--data/maps/events/MauvilleCity_GameCorner.inc (renamed from data/maps/events/MauvilleCity_GameCorner.s)0
-rw-r--r--data/maps/events/MauvilleCity_Gym.inc (renamed from data/maps/events/MauvilleCity_Gym.s)0
-rw-r--r--data/maps/events/MauvilleCity_House1.inc (renamed from data/maps/events/MauvilleCity_House1.s)0
-rw-r--r--data/maps/events/MauvilleCity_House2.inc (renamed from data/maps/events/MauvilleCity_House2.s)0
-rw-r--r--data/maps/events/MauvilleCity_Mart.inc (renamed from data/maps/events/MauvilleCity_Mart.s)0
-rw-r--r--data/maps/events/MauvilleCity_PokemonCenter_1F.inc (renamed from data/maps/events/MauvilleCity_PokemonCenter_1F.s)0
-rw-r--r--data/maps/events/MauvilleCity_PokemonCenter_2F.inc (renamed from data/maps/events/MauvilleCity_PokemonCenter_2F.s)0
-rw-r--r--data/maps/events/MeteorFalls_1F_1R.inc (renamed from data/maps/events/MeteorFalls_1F_1R.s)0
-rw-r--r--data/maps/events/MeteorFalls_1F_2R.inc (renamed from data/maps/events/MeteorFalls_1F_2R.s)0
-rw-r--r--data/maps/events/MeteorFalls_B1F_1R.inc (renamed from data/maps/events/MeteorFalls_B1F_1R.s)0
-rw-r--r--data/maps/events/MeteorFalls_B1F_2R.inc (renamed from data/maps/events/MeteorFalls_B1F_2R.s)0
-rw-r--r--data/maps/events/MossdeepCity.inc (renamed from data/maps/events/MossdeepCity.s)0
-rw-r--r--data/maps/events/MossdeepCity_GameCorner_1F.inc (renamed from data/maps/events/MossdeepCity_GameCorner_1F.s)0
-rw-r--r--data/maps/events/MossdeepCity_GameCorner_B1F.inc (renamed from data/maps/events/MossdeepCity_GameCorner_B1F.s)0
-rw-r--r--data/maps/events/MossdeepCity_Gym.inc (renamed from data/maps/events/MossdeepCity_Gym.s)0
-rw-r--r--data/maps/events/MossdeepCity_House1.inc (renamed from data/maps/events/MossdeepCity_House1.s)0
-rw-r--r--data/maps/events/MossdeepCity_House2.inc (renamed from data/maps/events/MossdeepCity_House2.s)0
-rw-r--r--data/maps/events/MossdeepCity_House3.inc (renamed from data/maps/events/MossdeepCity_House3.s)0
-rw-r--r--data/maps/events/MossdeepCity_House4.inc (renamed from data/maps/events/MossdeepCity_House4.s)0
-rw-r--r--data/maps/events/MossdeepCity_Mart.inc (renamed from data/maps/events/MossdeepCity_Mart.s)0
-rw-r--r--data/maps/events/MossdeepCity_PokemonCenter_1F.inc (renamed from data/maps/events/MossdeepCity_PokemonCenter_1F.s)0
-rw-r--r--data/maps/events/MossdeepCity_PokemonCenter_2F.inc (renamed from data/maps/events/MossdeepCity_PokemonCenter_2F.s)0
-rw-r--r--data/maps/events/MossdeepCity_SpaceCenter_1F.inc (renamed from data/maps/events/MossdeepCity_SpaceCenter_1F.s)0
-rw-r--r--data/maps/events/MossdeepCity_SpaceCenter_2F.inc (renamed from data/maps/events/MossdeepCity_SpaceCenter_2F.s)0
-rw-r--r--data/maps/events/MossdeepCity_StevensHouse.inc (renamed from data/maps/events/MossdeepCity_StevensHouse.s)0
-rw-r--r--data/maps/events/MtChimney.inc (renamed from data/maps/events/MtChimney.s)0
-rw-r--r--data/maps/events/MtChimney_CableCarStation.inc (renamed from data/maps/events/MtChimney_CableCarStation.s)0
-rw-r--r--data/maps/events/MtPyre_1F.inc (renamed from data/maps/events/MtPyre_1F.s)0
-rw-r--r--data/maps/events/MtPyre_2F.inc (renamed from data/maps/events/MtPyre_2F.s)0
-rw-r--r--data/maps/events/MtPyre_3F.inc (renamed from data/maps/events/MtPyre_3F.s)0
-rw-r--r--data/maps/events/MtPyre_4F.inc (renamed from data/maps/events/MtPyre_4F.s)0
-rw-r--r--data/maps/events/MtPyre_5F.inc (renamed from data/maps/events/MtPyre_5F.s)0
-rw-r--r--data/maps/events/MtPyre_6F.inc (renamed from data/maps/events/MtPyre_6F.s)0
-rw-r--r--data/maps/events/MtPyre_Exterior.inc (renamed from data/maps/events/MtPyre_Exterior.s)0
-rw-r--r--data/maps/events/MtPyre_Summit.inc (renamed from data/maps/events/MtPyre_Summit.s)0
-rw-r--r--data/maps/events/NewMauville_Entrance.inc (renamed from data/maps/events/NewMauville_Entrance.s)0
-rw-r--r--data/maps/events/NewMauville_Inside.inc (renamed from data/maps/events/NewMauville_Inside.s)0
-rw-r--r--data/maps/events/OldaleTown.inc (renamed from data/maps/events/OldaleTown.s)0
-rw-r--r--data/maps/events/OldaleTown_House1.inc (renamed from data/maps/events/OldaleTown_House1.s)0
-rw-r--r--data/maps/events/OldaleTown_House2.inc (renamed from data/maps/events/OldaleTown_House2.s)0
-rw-r--r--data/maps/events/OldaleTown_Mart.inc (renamed from data/maps/events/OldaleTown_Mart.s)0
-rw-r--r--data/maps/events/OldaleTown_PokemonCenter_1F.inc (renamed from data/maps/events/OldaleTown_PokemonCenter_1F.s)0
-rw-r--r--data/maps/events/OldaleTown_PokemonCenter_2F.inc (renamed from data/maps/events/OldaleTown_PokemonCenter_2F.s)0
-rw-r--r--data/maps/events/PacifidlogTown.inc (renamed from data/maps/events/PacifidlogTown.s)0
-rw-r--r--data/maps/events/PacifidlogTown_House1.inc (renamed from data/maps/events/PacifidlogTown_House1.s)0
-rw-r--r--data/maps/events/PacifidlogTown_House2.inc (renamed from data/maps/events/PacifidlogTown_House2.s)0
-rw-r--r--data/maps/events/PacifidlogTown_House3.inc (renamed from data/maps/events/PacifidlogTown_House3.s)0
-rw-r--r--data/maps/events/PacifidlogTown_House4.inc (renamed from data/maps/events/PacifidlogTown_House4.s)0
-rw-r--r--data/maps/events/PacifidlogTown_House5.inc (renamed from data/maps/events/PacifidlogTown_House5.s)0
-rw-r--r--data/maps/events/PacifidlogTown_PokemonCenter_1F.inc (renamed from data/maps/events/PacifidlogTown_PokemonCenter_1F.s)0
-rw-r--r--data/maps/events/PacifidlogTown_PokemonCenter_2F.inc (renamed from data/maps/events/PacifidlogTown_PokemonCenter_2F.s)0
-rw-r--r--data/maps/events/PetalburgCity.inc (renamed from data/maps/events/PetalburgCity.s)0
-rw-r--r--data/maps/events/PetalburgCity_Gym.inc (renamed from data/maps/events/PetalburgCity_Gym.s)0
-rw-r--r--data/maps/events/PetalburgCity_House1.inc (renamed from data/maps/events/PetalburgCity_House1.s)0
-rw-r--r--data/maps/events/PetalburgCity_House2.inc (renamed from data/maps/events/PetalburgCity_House2.s)0
-rw-r--r--data/maps/events/PetalburgCity_Mart.inc (renamed from data/maps/events/PetalburgCity_Mart.s)0
-rw-r--r--data/maps/events/PetalburgCity_PokemonCenter_1F.inc (renamed from data/maps/events/PetalburgCity_PokemonCenter_1F.s)0
-rw-r--r--data/maps/events/PetalburgCity_PokemonCenter_2F.inc (renamed from data/maps/events/PetalburgCity_PokemonCenter_2F.s)0
-rw-r--r--data/maps/events/PetalburgCity_WallysHouse.inc (renamed from data/maps/events/PetalburgCity_WallysHouse.s)0
-rw-r--r--data/maps/events/PetalburgWoods.inc (renamed from data/maps/events/PetalburgWoods.s)0
-rw-r--r--data/maps/events/RecordCorner.inc (renamed from data/maps/events/RecordCorner.s)0
-rw-r--r--data/maps/events/Route101.inc (renamed from data/maps/events/Route101.s)0
-rw-r--r--data/maps/events/Route102.inc (renamed from data/maps/events/Route102.s)0
-rw-r--r--data/maps/events/Route103.inc (renamed from data/maps/events/Route103.s)0
-rw-r--r--data/maps/events/Route104.inc (renamed from data/maps/events/Route104.s)0
-rw-r--r--data/maps/events/Route104_MrBrineysHouse.inc (renamed from data/maps/events/Route104_MrBrineysHouse.s)0
-rw-r--r--data/maps/events/Route104_PrettyPetalFlowerShop.inc (renamed from data/maps/events/Route104_PrettyPetalFlowerShop.s)0
-rw-r--r--data/maps/events/Route104_Prototype.inc (renamed from data/maps/events/Route104_Prototype.s)0
-rw-r--r--data/maps/events/Route104_PrototypePrettyPetalFlowerShop.inc (renamed from data/maps/events/Route104_PrototypePrettyPetalFlowerShop.s)0
-rw-r--r--data/maps/events/Route105.inc (renamed from data/maps/events/Route105.s)0
-rw-r--r--data/maps/events/Route106.inc (renamed from data/maps/events/Route106.s)0
-rw-r--r--data/maps/events/Route107.inc (renamed from data/maps/events/Route107.s)0
-rw-r--r--data/maps/events/Route108.inc (renamed from data/maps/events/Route108.s)0
-rw-r--r--data/maps/events/Route109.inc (renamed from data/maps/events/Route109.s)0
-rw-r--r--data/maps/events/Route109_SeashoreHouse.inc (renamed from data/maps/events/Route109_SeashoreHouse.s)0
-rw-r--r--data/maps/events/Route110.inc (renamed from data/maps/events/Route110.s)0
-rw-r--r--data/maps/events/Route110_SeasideCyclingRoadNorthEntrance.inc (renamed from data/maps/events/Route110_SeasideCyclingRoadNorthEntrance.s)0
-rw-r--r--data/maps/events/Route110_SeasideCyclingRoadSouthEntrance.inc (renamed from data/maps/events/Route110_SeasideCyclingRoadSouthEntrance.s)0
-rw-r--r--data/maps/events/Route110_TrickHouseCorridor.inc (renamed from data/maps/events/Route110_TrickHouseCorridor.s)0
-rw-r--r--data/maps/events/Route110_TrickHouseEnd.inc (renamed from data/maps/events/Route110_TrickHouseEnd.s)0
-rw-r--r--data/maps/events/Route110_TrickHouseEntrance.inc (renamed from data/maps/events/Route110_TrickHouseEntrance.s)0
-rw-r--r--data/maps/events/Route110_TrickHousePuzzle1.inc (renamed from data/maps/events/Route110_TrickHousePuzzle1.s)0
-rw-r--r--data/maps/events/Route110_TrickHousePuzzle2.inc (renamed from data/maps/events/Route110_TrickHousePuzzle2.s)0
-rw-r--r--data/maps/events/Route110_TrickHousePuzzle3.inc (renamed from data/maps/events/Route110_TrickHousePuzzle3.s)0
-rw-r--r--data/maps/events/Route110_TrickHousePuzzle4.inc (renamed from data/maps/events/Route110_TrickHousePuzzle4.s)0
-rw-r--r--data/maps/events/Route110_TrickHousePuzzle5.inc (renamed from data/maps/events/Route110_TrickHousePuzzle5.s)0
-rw-r--r--data/maps/events/Route110_TrickHousePuzzle6.inc (renamed from data/maps/events/Route110_TrickHousePuzzle6.s)0
-rw-r--r--data/maps/events/Route110_TrickHousePuzzle7.inc (renamed from data/maps/events/Route110_TrickHousePuzzle7.s)0
-rw-r--r--data/maps/events/Route110_TrickHousePuzzle8.inc (renamed from data/maps/events/Route110_TrickHousePuzzle8.s)0
-rw-r--r--data/maps/events/Route111.inc (renamed from data/maps/events/Route111.s)0
-rw-r--r--data/maps/events/Route111_OldLadysRestStop.inc (renamed from data/maps/events/Route111_OldLadysRestStop.s)0
-rw-r--r--data/maps/events/Route111_WinstrateFamilysHouse.inc (renamed from data/maps/events/Route111_WinstrateFamilysHouse.s)0
-rw-r--r--data/maps/events/Route112.inc (renamed from data/maps/events/Route112.s)0
-rw-r--r--data/maps/events/Route112_CableCarStation.inc (renamed from data/maps/events/Route112_CableCarStation.s)0
-rw-r--r--data/maps/events/Route113.inc (renamed from data/maps/events/Route113.s)0
-rw-r--r--data/maps/events/Route113_GlassWorkshop.inc (renamed from data/maps/events/Route113_GlassWorkshop.s)0
-rw-r--r--data/maps/events/Route114.inc (renamed from data/maps/events/Route114.s)0
-rw-r--r--data/maps/events/Route114_FossilManiacsHouse.inc (renamed from data/maps/events/Route114_FossilManiacsHouse.s)0
-rw-r--r--data/maps/events/Route114_FossilManiacsTunnel.inc (renamed from data/maps/events/Route114_FossilManiacsTunnel.s)0
-rw-r--r--data/maps/events/Route114_LanettesHouse.inc (renamed from data/maps/events/Route114_LanettesHouse.s)0
-rw-r--r--data/maps/events/Route115.inc (renamed from data/maps/events/Route115.s)0
-rw-r--r--data/maps/events/Route116.inc (renamed from data/maps/events/Route116.s)0
-rw-r--r--data/maps/events/Route116_TunnelersRestHouse.inc (renamed from data/maps/events/Route116_TunnelersRestHouse.s)0
-rw-r--r--data/maps/events/Route117.inc (renamed from data/maps/events/Route117.s)0
-rw-r--r--data/maps/events/Route117_PokemonDayCare.inc (renamed from data/maps/events/Route117_PokemonDayCare.s)0
-rw-r--r--data/maps/events/Route118.inc (renamed from data/maps/events/Route118.s)0
-rw-r--r--data/maps/events/Route119.inc (renamed from data/maps/events/Route119.s)0
-rw-r--r--data/maps/events/Route119_House.inc (renamed from data/maps/events/Route119_House.s)0
-rw-r--r--data/maps/events/Route119_WeatherInstitute_1F.inc (renamed from data/maps/events/Route119_WeatherInstitute_1F.s)0
-rw-r--r--data/maps/events/Route119_WeatherInstitute_2F.inc (renamed from data/maps/events/Route119_WeatherInstitute_2F.s)0
-rw-r--r--data/maps/events/Route120.inc (renamed from data/maps/events/Route120.s)0
-rw-r--r--data/maps/events/Route121.inc (renamed from data/maps/events/Route121.s)0
-rw-r--r--data/maps/events/Route121_SafariZoneEntrance.inc (renamed from data/maps/events/Route121_SafariZoneEntrance.s)0
-rw-r--r--data/maps/events/Route122.inc (renamed from data/maps/events/Route122.s)0
-rw-r--r--data/maps/events/Route123.inc (renamed from data/maps/events/Route123.s)0
-rw-r--r--data/maps/events/Route123_BerryMastersHouse.inc (renamed from data/maps/events/Route123_BerryMastersHouse.s)0
-rw-r--r--data/maps/events/Route124.inc (renamed from data/maps/events/Route124.s)0
-rw-r--r--data/maps/events/Route125.inc (renamed from data/maps/events/Route125.s)0
-rw-r--r--data/maps/events/Route126.inc (renamed from data/maps/events/Route126.s)0
-rw-r--r--data/maps/events/Route127.inc (renamed from data/maps/events/Route127.s)0
-rw-r--r--data/maps/events/Route128.inc (renamed from data/maps/events/Route128.s)0
-rw-r--r--data/maps/events/Route129.inc (renamed from data/maps/events/Route129.s)0
-rw-r--r--data/maps/events/Route130.inc (renamed from data/maps/events/Route130.s)0
-rw-r--r--data/maps/events/Route131.inc (renamed from data/maps/events/Route131.s)0
-rw-r--r--data/maps/events/Route132.inc (renamed from data/maps/events/Route132.s)0
-rw-r--r--data/maps/events/Route133.inc (renamed from data/maps/events/Route133.s)0
-rw-r--r--data/maps/events/Route134.inc (renamed from data/maps/events/Route134.s)0
-rw-r--r--data/maps/events/RustboroCity.inc (renamed from data/maps/events/RustboroCity.s)0
-rw-r--r--data/maps/events/RustboroCity_CuttersHouse.inc (renamed from data/maps/events/RustboroCity_CuttersHouse.s)0
-rw-r--r--data/maps/events/RustboroCity_DevonCorp_1F.inc (renamed from data/maps/events/RustboroCity_DevonCorp_1F.s)0
-rw-r--r--data/maps/events/RustboroCity_DevonCorp_2F.inc (renamed from data/maps/events/RustboroCity_DevonCorp_2F.s)0
-rw-r--r--data/maps/events/RustboroCity_DevonCorp_3F.inc (renamed from data/maps/events/RustboroCity_DevonCorp_3F.s)0
-rw-r--r--data/maps/events/RustboroCity_Flat1_1F.inc (renamed from data/maps/events/RustboroCity_Flat1_1F.s)0
-rw-r--r--data/maps/events/RustboroCity_Flat1_2F.inc (renamed from data/maps/events/RustboroCity_Flat1_2F.s)0
-rw-r--r--data/maps/events/RustboroCity_Flat2_1F.inc (renamed from data/maps/events/RustboroCity_Flat2_1F.s)0
-rw-r--r--data/maps/events/RustboroCity_Flat2_2F.inc (renamed from data/maps/events/RustboroCity_Flat2_2F.s)0
-rw-r--r--data/maps/events/RustboroCity_Flat2_3F.inc (renamed from data/maps/events/RustboroCity_Flat2_3F.s)0
-rw-r--r--data/maps/events/RustboroCity_Gym.inc (renamed from data/maps/events/RustboroCity_Gym.s)0
-rw-r--r--data/maps/events/RustboroCity_House1.inc (renamed from data/maps/events/RustboroCity_House1.s)0
-rw-r--r--data/maps/events/RustboroCity_House2.inc (renamed from data/maps/events/RustboroCity_House2.s)0
-rw-r--r--data/maps/events/RustboroCity_House3.inc (renamed from data/maps/events/RustboroCity_House3.s)0
-rw-r--r--data/maps/events/RustboroCity_Mart.inc (renamed from data/maps/events/RustboroCity_Mart.s)0
-rw-r--r--data/maps/events/RustboroCity_PokemonCenter_1F.inc (renamed from data/maps/events/RustboroCity_PokemonCenter_1F.s)0
-rw-r--r--data/maps/events/RustboroCity_PokemonCenter_2F.inc (renamed from data/maps/events/RustboroCity_PokemonCenter_2F.s)0
-rw-r--r--data/maps/events/RustboroCity_PokemonSchool.inc (renamed from data/maps/events/RustboroCity_PokemonSchool.s)0
-rw-r--r--data/maps/events/RusturfTunnel.inc (renamed from data/maps/events/RusturfTunnel.s)0
-rw-r--r--data/maps/events/SSTidalCorridor.inc (renamed from data/maps/events/SSTidalCorridor.s)0
-rw-r--r--data/maps/events/SSTidalLowerDeck.inc (renamed from data/maps/events/SSTidalLowerDeck.s)0
-rw-r--r--data/maps/events/SSTidalRooms.inc (renamed from data/maps/events/SSTidalRooms.s)0
-rw-r--r--data/maps/events/SafariZone_Northeast.inc (renamed from data/maps/events/SafariZone_Northeast.s)0
-rw-r--r--data/maps/events/SafariZone_Northwest.inc (renamed from data/maps/events/SafariZone_Northwest.s)0
-rw-r--r--data/maps/events/SafariZone_RestHouse.inc (renamed from data/maps/events/SafariZone_RestHouse.s)0
-rw-r--r--data/maps/events/SafariZone_Southeast.inc (renamed from data/maps/events/SafariZone_Southeast.s)0
-rw-r--r--data/maps/events/SafariZone_Southwest.inc (renamed from data/maps/events/SafariZone_Southwest.s)0
-rw-r--r--data/maps/events/ScorchedSlab.inc (renamed from data/maps/events/ScorchedSlab.s)0
-rw-r--r--data/maps/events/SeafloorCavern_Entrance.inc (renamed from data/maps/events/SeafloorCavern_Entrance.s)0
-rw-r--r--data/maps/events/SeafloorCavern_Room1.inc (renamed from data/maps/events/SeafloorCavern_Room1.s)0
-rw-r--r--data/maps/events/SeafloorCavern_Room2.inc (renamed from data/maps/events/SeafloorCavern_Room2.s)0
-rw-r--r--data/maps/events/SeafloorCavern_Room3.inc (renamed from data/maps/events/SeafloorCavern_Room3.s)0
-rw-r--r--data/maps/events/SeafloorCavern_Room4.inc (renamed from data/maps/events/SeafloorCavern_Room4.s)0
-rw-r--r--data/maps/events/SeafloorCavern_Room5.inc (renamed from data/maps/events/SeafloorCavern_Room5.s)0
-rw-r--r--data/maps/events/SeafloorCavern_Room6.inc (renamed from data/maps/events/SeafloorCavern_Room6.s)0
-rw-r--r--data/maps/events/SeafloorCavern_Room7.inc (renamed from data/maps/events/SeafloorCavern_Room7.s)0
-rw-r--r--data/maps/events/SeafloorCavern_Room8.inc (renamed from data/maps/events/SeafloorCavern_Room8.s)0
-rw-r--r--data/maps/events/SeafloorCavern_Room9.inc (renamed from data/maps/events/SeafloorCavern_Room9.s)0
-rw-r--r--data/maps/events/SealedChamber_InnerRoom.inc (renamed from data/maps/events/SealedChamber_InnerRoom.s)0
-rw-r--r--data/maps/events/SealedChamber_OuterRoom.inc (renamed from data/maps/events/SealedChamber_OuterRoom.s)0
-rw-r--r--data/maps/events/SecretBase_BlueCave1.inc (renamed from data/maps/events/SecretBase_BlueCave1.s)0
-rw-r--r--data/maps/events/SecretBase_BlueCave2.inc (renamed from data/maps/events/SecretBase_BlueCave2.s)0
-rw-r--r--data/maps/events/SecretBase_BlueCave3.inc (renamed from data/maps/events/SecretBase_BlueCave3.s)0
-rw-r--r--data/maps/events/SecretBase_BlueCave4.inc (renamed from data/maps/events/SecretBase_BlueCave4.s)0
-rw-r--r--data/maps/events/SecretBase_BrownCave1.inc (renamed from data/maps/events/SecretBase_BrownCave1.s)0
-rw-r--r--data/maps/events/SecretBase_BrownCave2.inc (renamed from data/maps/events/SecretBase_BrownCave2.s)0
-rw-r--r--data/maps/events/SecretBase_BrownCave3.inc (renamed from data/maps/events/SecretBase_BrownCave3.s)0
-rw-r--r--data/maps/events/SecretBase_BrownCave4.inc (renamed from data/maps/events/SecretBase_BrownCave4.s)0
-rw-r--r--data/maps/events/SecretBase_RedCave1.inc (renamed from data/maps/events/SecretBase_RedCave1.s)0
-rw-r--r--data/maps/events/SecretBase_RedCave2.inc (renamed from data/maps/events/SecretBase_RedCave2.s)0
-rw-r--r--data/maps/events/SecretBase_RedCave3.inc (renamed from data/maps/events/SecretBase_RedCave3.s)0
-rw-r--r--data/maps/events/SecretBase_RedCave4.inc (renamed from data/maps/events/SecretBase_RedCave4.s)0
-rw-r--r--data/maps/events/SecretBase_Shrub1.inc (renamed from data/maps/events/SecretBase_Shrub1.s)0
-rw-r--r--data/maps/events/SecretBase_Shrub2.inc (renamed from data/maps/events/SecretBase_Shrub2.s)0
-rw-r--r--data/maps/events/SecretBase_Shrub3.inc (renamed from data/maps/events/SecretBase_Shrub3.s)0
-rw-r--r--data/maps/events/SecretBase_Shrub4.inc (renamed from data/maps/events/SecretBase_Shrub4.s)0
-rw-r--r--data/maps/events/SecretBase_Tree1.inc (renamed from data/maps/events/SecretBase_Tree1.s)0
-rw-r--r--data/maps/events/SecretBase_Tree2.inc (renamed from data/maps/events/SecretBase_Tree2.s)0
-rw-r--r--data/maps/events/SecretBase_Tree3.inc (renamed from data/maps/events/SecretBase_Tree3.s)0
-rw-r--r--data/maps/events/SecretBase_Tree4.inc (renamed from data/maps/events/SecretBase_Tree4.s)0
-rw-r--r--data/maps/events/SecretBase_YellowCave1.inc (renamed from data/maps/events/SecretBase_YellowCave1.s)0
-rw-r--r--data/maps/events/SecretBase_YellowCave2.inc (renamed from data/maps/events/SecretBase_YellowCave2.s)0
-rw-r--r--data/maps/events/SecretBase_YellowCave3.inc (renamed from data/maps/events/SecretBase_YellowCave3.s)0
-rw-r--r--data/maps/events/SecretBase_YellowCave4.inc (renamed from data/maps/events/SecretBase_YellowCave4.s)0
-rw-r--r--data/maps/events/ShoalCave_HighTideEntranceRoom.inc (renamed from data/maps/events/ShoalCave_HighTideEntranceRoom.s)0
-rw-r--r--data/maps/events/ShoalCave_HighTideInnerRoom.inc (renamed from data/maps/events/ShoalCave_HighTideInnerRoom.s)0
-rw-r--r--data/maps/events/ShoalCave_LowTideEntranceRoom.inc (renamed from data/maps/events/ShoalCave_LowTideEntranceRoom.s)0
-rw-r--r--data/maps/events/ShoalCave_LowTideIceRoom.inc (renamed from data/maps/events/ShoalCave_LowTideIceRoom.s)0
-rw-r--r--data/maps/events/ShoalCave_LowTideInnerRoom.inc (renamed from data/maps/events/ShoalCave_LowTideInnerRoom.s)0
-rw-r--r--data/maps/events/ShoalCave_LowTideLowerRoom.inc (renamed from data/maps/events/ShoalCave_LowTideLowerRoom.s)0
-rw-r--r--data/maps/events/ShoalCave_LowTideStairsRoom.inc (renamed from data/maps/events/ShoalCave_LowTideStairsRoom.s)0
-rw-r--r--data/maps/events/SingleBattleColosseum.inc (renamed from data/maps/events/SingleBattleColosseum.s)0
-rw-r--r--data/maps/events/SkyPillar_1F.inc (renamed from data/maps/events/SkyPillar_1F.s)0
-rw-r--r--data/maps/events/SkyPillar_2F.inc (renamed from data/maps/events/SkyPillar_2F.s)0
-rw-r--r--data/maps/events/SkyPillar_3F.inc (renamed from data/maps/events/SkyPillar_3F.s)0
-rw-r--r--data/maps/events/SkyPillar_4F.inc (renamed from data/maps/events/SkyPillar_4F.s)0
-rw-r--r--data/maps/events/SkyPillar_5F.inc (renamed from data/maps/events/SkyPillar_5F.s)0
-rw-r--r--data/maps/events/SkyPillar_Entrance.inc (renamed from data/maps/events/SkyPillar_Entrance.s)0
-rw-r--r--data/maps/events/SkyPillar_Outside.inc (renamed from data/maps/events/SkyPillar_Outside.s)0
-rw-r--r--data/maps/events/SkyPillar_Top.inc (renamed from data/maps/events/SkyPillar_Top.s)0
-rw-r--r--data/maps/events/SlateportCity.inc (renamed from data/maps/events/SlateportCity.s)0
-rw-r--r--data/maps/events/SlateportCity_ContestHall.inc (renamed from data/maps/events/SlateportCity_ContestHall.s)0
-rw-r--r--data/maps/events/SlateportCity_ContestLobby.inc (renamed from data/maps/events/SlateportCity_ContestLobby.s)0
-rw-r--r--data/maps/events/SlateportCity_Harbor.inc (renamed from data/maps/events/SlateportCity_Harbor.s)0
-rw-r--r--data/maps/events/SlateportCity_House1.inc (renamed from data/maps/events/SlateportCity_House1.s)0
-rw-r--r--data/maps/events/SlateportCity_House2.inc (renamed from data/maps/events/SlateportCity_House2.s)0
-rw-r--r--data/maps/events/SlateportCity_Mart.inc (renamed from data/maps/events/SlateportCity_Mart.s)0
-rw-r--r--data/maps/events/SlateportCity_OceanicMuseum_1F.inc (renamed from data/maps/events/SlateportCity_OceanicMuseum_1F.s)0
-rw-r--r--data/maps/events/SlateportCity_OceanicMuseum_2F.inc (renamed from data/maps/events/SlateportCity_OceanicMuseum_2F.s)0
-rw-r--r--data/maps/events/SlateportCity_PokemonCenter_1F.inc (renamed from data/maps/events/SlateportCity_PokemonCenter_1F.s)0
-rw-r--r--data/maps/events/SlateportCity_PokemonCenter_2F.inc (renamed from data/maps/events/SlateportCity_PokemonCenter_2F.s)0
-rw-r--r--data/maps/events/SlateportCity_PokemonFanClub.inc (renamed from data/maps/events/SlateportCity_PokemonFanClub.s)0
-rw-r--r--data/maps/events/SlateportCity_SternsShipyard_1F.inc (renamed from data/maps/events/SlateportCity_SternsShipyard_1F.s)0
-rw-r--r--data/maps/events/SlateportCity_SternsShipyard_2F.inc (renamed from data/maps/events/SlateportCity_SternsShipyard_2F.s)0
-rw-r--r--data/maps/events/SootopolisCity.inc (renamed from data/maps/events/SootopolisCity.s)0
-rw-r--r--data/maps/events/SootopolisCity_Gym_1F.inc (renamed from data/maps/events/SootopolisCity_Gym_1F.s)0
-rw-r--r--data/maps/events/SootopolisCity_Gym_B1F.inc (renamed from data/maps/events/SootopolisCity_Gym_B1F.s)0
-rw-r--r--data/maps/events/SootopolisCity_House1.inc (renamed from data/maps/events/SootopolisCity_House1.s)0
-rw-r--r--data/maps/events/SootopolisCity_House2.inc (renamed from data/maps/events/SootopolisCity_House2.s)0
-rw-r--r--data/maps/events/SootopolisCity_House3.inc (renamed from data/maps/events/SootopolisCity_House3.s)0
-rw-r--r--data/maps/events/SootopolisCity_House4.inc (renamed from data/maps/events/SootopolisCity_House4.s)0
-rw-r--r--data/maps/events/SootopolisCity_House5.inc (renamed from data/maps/events/SootopolisCity_House5.s)0
-rw-r--r--data/maps/events/SootopolisCity_House6.inc (renamed from data/maps/events/SootopolisCity_House6.s)0
-rw-r--r--data/maps/events/SootopolisCity_House7.inc (renamed from data/maps/events/SootopolisCity_House7.s)0
-rw-r--r--data/maps/events/SootopolisCity_House8.inc (renamed from data/maps/events/SootopolisCity_House8.s)0
-rw-r--r--data/maps/events/SootopolisCity_Mart.inc (renamed from data/maps/events/SootopolisCity_Mart.s)0
-rw-r--r--data/maps/events/SootopolisCity_PokemonCenter_1F.inc (renamed from data/maps/events/SootopolisCity_PokemonCenter_1F.s)0
-rw-r--r--data/maps/events/SootopolisCity_PokemonCenter_2F.inc (renamed from data/maps/events/SootopolisCity_PokemonCenter_2F.s)0
-rw-r--r--data/maps/events/SouthernIsland_Exterior.inc (renamed from data/maps/events/SouthernIsland_Exterior.s)0
-rw-r--r--data/maps/events/SouthernIsland_Interior.inc (renamed from data/maps/events/SouthernIsland_Interior.s)0
-rw-r--r--data/maps/events/TradeCenter.inc (renamed from data/maps/events/TradeCenter.s)0
-rw-r--r--data/maps/events/Underwater1.inc (renamed from data/maps/events/Underwater1.s)0
-rw-r--r--data/maps/events/Underwater2.inc (renamed from data/maps/events/Underwater2.s)0
-rw-r--r--data/maps/events/Underwater3.inc (renamed from data/maps/events/Underwater3.s)0
-rw-r--r--data/maps/events/Underwater4.inc (renamed from data/maps/events/Underwater4.s)0
-rw-r--r--data/maps/events/Underwater_Route134.inc (renamed from data/maps/events/Underwater_Route134.s)0
-rw-r--r--data/maps/events/Underwater_SeafloorCavern.inc (renamed from data/maps/events/Underwater_SeafloorCavern.s)0
-rw-r--r--data/maps/events/Underwater_SealedChamber.inc (renamed from data/maps/events/Underwater_SealedChamber.s)0
-rw-r--r--data/maps/events/Underwater_SootopolisCity.inc (renamed from data/maps/events/Underwater_SootopolisCity.s)0
-rw-r--r--data/maps/events/UnknownMap_25_29.inc (renamed from data/maps/events/UnknownMap_25_29.s)0
-rw-r--r--data/maps/events/UnknownMap_25_30.inc (renamed from data/maps/events/UnknownMap_25_30.s)0
-rw-r--r--data/maps/events/UnknownMap_25_31.inc (renamed from data/maps/events/UnknownMap_25_31.s)0
-rw-r--r--data/maps/events/UnknownMap_25_32.inc (renamed from data/maps/events/UnknownMap_25_32.s)0
-rw-r--r--data/maps/events/UnknownMap_25_33.inc (renamed from data/maps/events/UnknownMap_25_33.s)0
-rw-r--r--data/maps/events/UnknownMap_25_34.inc (renamed from data/maps/events/UnknownMap_25_34.s)0
-rw-r--r--data/maps/events/VerdanturfTown.inc (renamed from data/maps/events/VerdanturfTown.s)0
-rw-r--r--data/maps/events/VerdanturfTown_ContestHall.inc (renamed from data/maps/events/VerdanturfTown_ContestHall.s)0
-rw-r--r--data/maps/events/VerdanturfTown_ContestLobby.inc (renamed from data/maps/events/VerdanturfTown_ContestLobby.s)0
-rw-r--r--data/maps/events/VerdanturfTown_FriendshipRatersHouse.inc (renamed from data/maps/events/VerdanturfTown_FriendshipRatersHouse.s)0
-rw-r--r--data/maps/events/VerdanturfTown_House.inc (renamed from data/maps/events/VerdanturfTown_House.s)0
-rw-r--r--data/maps/events/VerdanturfTown_Mart.inc (renamed from data/maps/events/VerdanturfTown_Mart.s)0
-rw-r--r--data/maps/events/VerdanturfTown_PokemonCenter_1F.inc (renamed from data/maps/events/VerdanturfTown_PokemonCenter_1F.s)0
-rw-r--r--data/maps/events/VerdanturfTown_PokemonCenter_2F.inc (renamed from data/maps/events/VerdanturfTown_PokemonCenter_2F.s)0
-rw-r--r--data/maps/events/VerdanturfTown_WandasHouse.inc (renamed from data/maps/events/VerdanturfTown_WandasHouse.s)0
-rw-r--r--data/maps/events/VictoryRoad_1F.inc (renamed from data/maps/events/VictoryRoad_1F.s)0
-rw-r--r--data/maps/events/VictoryRoad_B1F.inc (renamed from data/maps/events/VictoryRoad_B1F.s)0
-rw-r--r--data/maps/events/VictoryRoad_B2F.inc (renamed from data/maps/events/VictoryRoad_B2F.s)0
-rw-r--r--data/maps/headers.inc (renamed from data/maps/headers.s)0
-rw-r--r--data/mon_pokeblock_anims.inc (renamed from data/mon_pokeblock_anims.s)0
-rw-r--r--data/multichoice.inc (renamed from data/multichoice.s)0
-rw-r--r--data/nature_stat_table.inc (renamed from data/nature_stat_table.s)0
-rw-r--r--data/pokedex_entries.inc (renamed from data/pokedex_entries.s)0
-rw-r--r--data/pokedex_orders.inc (renamed from data/pokedex_orders.s)0
-rw-r--r--data/region_map_locations.inc (renamed from data/region_map_locations.s)0
-rw-r--r--data/region_map_sections.inc (renamed from data/region_map_sections.s)0
-rw-r--r--data/script_cmd_table.inc (renamed from data/script_cmd_table.s)0
-rw-r--r--data/scripts/bard.inc (renamed from data/scripts/bard.s)0
-rw-r--r--data/scripts/berry_tree.inc (renamed from data/scripts/berry_tree.s)4
-rw-r--r--data/scripts/cable_club.inc (renamed from data/scripts/cable_club.s)0
-rw-r--r--data/scripts/contest_hall.inc (renamed from data/scripts/contest_hall.s)12
-rw-r--r--data/scripts/day_care.inc (renamed from data/scripts/day_care.s)0
-rw-r--r--data/scripts/gabby_and_ty.inc (renamed from data/scripts/gabby_and_ty.s)0
-rw-r--r--data/scripts/giddy.inc (renamed from data/scripts/giddy.s)0
-rw-r--r--data/scripts/hipster.inc (renamed from data/scripts/hipster.s)0
-rw-r--r--data/scripts/magma_chimney.inc (renamed from data/scripts/magma_chimney.s)0
-rw-r--r--data/scripts/magma_summit.inc (renamed from data/scripts/magma_summit.s)0
-rw-r--r--data/scripts/maps/AbandonedShip_CaptainsOffice.inc (renamed from data/scripts/maps/AbandonedShip_CaptainsOffice.s)0
-rw-r--r--data/scripts/maps/AbandonedShip_Corridors_1F.inc (renamed from data/scripts/maps/AbandonedShip_Corridors_1F.s)0
-rw-r--r--data/scripts/maps/AbandonedShip_Corridors_B1F.inc (renamed from data/scripts/maps/AbandonedShip_Corridors_B1F.s)0
-rw-r--r--data/scripts/maps/AbandonedShip_Deck.inc (renamed from data/scripts/maps/AbandonedShip_Deck.s)0
-rw-r--r--data/scripts/maps/AbandonedShip_HiddenFloorCorridors.inc (renamed from data/scripts/maps/AbandonedShip_HiddenFloorCorridors.s)0
-rw-r--r--data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc (renamed from data/scripts/maps/AbandonedShip_HiddenFloorRooms.s)0
-rw-r--r--data/scripts/maps/AbandonedShip_Room_B1F.inc (renamed from data/scripts/maps/AbandonedShip_Room_B1F.s)0
-rw-r--r--data/scripts/maps/AbandonedShip_Rooms2_1F.inc (renamed from data/scripts/maps/AbandonedShip_Rooms2_1F.s)0
-rw-r--r--data/scripts/maps/AbandonedShip_Rooms2_B1F.inc (renamed from data/scripts/maps/AbandonedShip_Rooms2_B1F.s)0
-rw-r--r--data/scripts/maps/AbandonedShip_Rooms_1F.inc (renamed from data/scripts/maps/AbandonedShip_Rooms_1F.s)0
-rw-r--r--data/scripts/maps/AbandonedShip_Rooms_B1F.inc (renamed from data/scripts/maps/AbandonedShip_Rooms_B1F.s)0
-rw-r--r--data/scripts/maps/AbandonedShip_Underwater1.inc (renamed from data/scripts/maps/AbandonedShip_Underwater1.s)0
-rw-r--r--data/scripts/maps/AbandonedShip_Underwater2.inc (renamed from data/scripts/maps/AbandonedShip_Underwater2.s)0
-rw-r--r--data/scripts/maps/AncientTomb.inc (renamed from data/scripts/maps/AncientTomb.s)0
-rw-r--r--data/scripts/maps/AquaHideout_1F.inc (renamed from data/scripts/maps/AquaHideout_1F.s)0
-rw-r--r--data/scripts/maps/AquaHideout_B1F.inc (renamed from data/scripts/maps/AquaHideout_B1F.s)0
-rw-r--r--data/scripts/maps/AquaHideout_B2F.inc (renamed from data/scripts/maps/AquaHideout_B2F.s)0
-rw-r--r--data/scripts/maps/BattleTower_BattleRoom.inc (renamed from data/scripts/maps/BattleTower_BattleRoom.s)0
-rw-r--r--data/scripts/maps/BattleTower_Corridor.inc (renamed from data/scripts/maps/BattleTower_Corridor.s)0
-rw-r--r--data/scripts/maps/BattleTower_Elevator.inc (renamed from data/scripts/maps/BattleTower_Elevator.s)0
-rw-r--r--data/scripts/maps/BattleTower_Lobby.inc (renamed from data/scripts/maps/BattleTower_Lobby.s)0
-rw-r--r--data/scripts/maps/BattleTower_Outside.inc (renamed from data/scripts/maps/BattleTower_Outside.s)0
-rw-r--r--data/scripts/maps/CaveOfOrigin_1F.inc (renamed from data/scripts/maps/CaveOfOrigin_1F.s)0
-rw-r--r--data/scripts/maps/CaveOfOrigin_B1F.inc (renamed from data/scripts/maps/CaveOfOrigin_B1F.s)0
-rw-r--r--data/scripts/maps/CaveOfOrigin_B2F.inc (renamed from data/scripts/maps/CaveOfOrigin_B2F.s)0
-rw-r--r--data/scripts/maps/CaveOfOrigin_B3F.inc (renamed from data/scripts/maps/CaveOfOrigin_B3F.s)0
-rw-r--r--data/scripts/maps/CaveOfOrigin_B4F.inc (renamed from data/scripts/maps/CaveOfOrigin_B4F.s)0
-rw-r--r--data/scripts/maps/CaveOfOrigin_Entrance.inc (renamed from data/scripts/maps/CaveOfOrigin_Entrance.s)0
-rw-r--r--data/scripts/maps/DesertRuins.inc (renamed from data/scripts/maps/DesertRuins.s)0
-rw-r--r--data/scripts/maps/DewfordTown.inc (renamed from data/scripts/maps/DewfordTown.s)0
-rw-r--r--data/scripts/maps/DewfordTown_Gym.inc (renamed from data/scripts/maps/DewfordTown_Gym.s)0
-rw-r--r--data/scripts/maps/DewfordTown_Hall.inc (renamed from data/scripts/maps/DewfordTown_Hall.s)0
-rw-r--r--data/scripts/maps/DewfordTown_House1.inc (renamed from data/scripts/maps/DewfordTown_House1.s)0
-rw-r--r--data/scripts/maps/DewfordTown_House2.inc (renamed from data/scripts/maps/DewfordTown_House2.s)0
-rw-r--r--data/scripts/maps/DewfordTown_PokemonCenter_1F.inc (renamed from data/scripts/maps/DewfordTown_PokemonCenter_1F.s)0
-rw-r--r--data/scripts/maps/DewfordTown_PokemonCenter_2F.inc (renamed from data/scripts/maps/DewfordTown_PokemonCenter_2F.s)0
-rw-r--r--data/scripts/maps/DoubleBattleColosseum.inc (renamed from data/scripts/maps/DoubleBattleColosseum.s)0
-rw-r--r--data/scripts/maps/EverGrandeCity.inc (renamed from data/scripts/maps/EverGrandeCity.s)0
-rw-r--r--data/scripts/maps/EverGrandeCity_ChampionsRoom.inc (renamed from data/scripts/maps/EverGrandeCity_ChampionsRoom.s)0
-rw-r--r--data/scripts/maps/EverGrandeCity_Corridor1.inc (renamed from data/scripts/maps/EverGrandeCity_Corridor1.s)0
-rw-r--r--data/scripts/maps/EverGrandeCity_Corridor2.inc (renamed from data/scripts/maps/EverGrandeCity_Corridor2.s)0
-rw-r--r--data/scripts/maps/EverGrandeCity_Corridor3.inc (renamed from data/scripts/maps/EverGrandeCity_Corridor3.s)0
-rw-r--r--data/scripts/maps/EverGrandeCity_Corridor4.inc (renamed from data/scripts/maps/EverGrandeCity_Corridor4.s)0
-rw-r--r--data/scripts/maps/EverGrandeCity_Corridor5.inc (renamed from data/scripts/maps/EverGrandeCity_Corridor5.s)0
-rw-r--r--data/scripts/maps/EverGrandeCity_DrakesRoom.inc (renamed from data/scripts/maps/EverGrandeCity_DrakesRoom.s)0
-rw-r--r--data/scripts/maps/EverGrandeCity_GlaciasRoom.inc (renamed from data/scripts/maps/EverGrandeCity_GlaciasRoom.s)0
-rw-r--r--data/scripts/maps/EverGrandeCity_HallOfFame.inc (renamed from data/scripts/maps/EverGrandeCity_HallOfFame.s)0
-rw-r--r--data/scripts/maps/EverGrandeCity_PhoebesRoom.inc (renamed from data/scripts/maps/EverGrandeCity_PhoebesRoom.s)0
-rw-r--r--data/scripts/maps/EverGrandeCity_PokemonCenter_1F.inc (renamed from data/scripts/maps/EverGrandeCity_PokemonCenter_1F.s)0
-rw-r--r--data/scripts/maps/EverGrandeCity_PokemonCenter_2F.inc (renamed from data/scripts/maps/EverGrandeCity_PokemonCenter_2F.s)0
-rw-r--r--data/scripts/maps/EverGrandeCity_PokemonLeague.inc (renamed from data/scripts/maps/EverGrandeCity_PokemonLeague.s)0
-rw-r--r--data/scripts/maps/EverGrandeCity_SidneysRoom.inc (renamed from data/scripts/maps/EverGrandeCity_SidneysRoom.s)0
-rw-r--r--data/scripts/maps/FallarborTown.inc (renamed from data/scripts/maps/FallarborTown.s)0
-rw-r--r--data/scripts/maps/FallarborTown_ContestHall.inc (renamed from data/scripts/maps/FallarborTown_ContestHall.s)0
-rw-r--r--data/scripts/maps/FallarborTown_ContestLobby.inc (renamed from data/scripts/maps/FallarborTown_ContestLobby.s)2
-rw-r--r--data/scripts/maps/FallarborTown_House1.inc (renamed from data/scripts/maps/FallarborTown_House1.s)0
-rw-r--r--data/scripts/maps/FallarborTown_House2.inc (renamed from data/scripts/maps/FallarborTown_House2.s)0
-rw-r--r--data/scripts/maps/FallarborTown_Mart.inc (renamed from data/scripts/maps/FallarborTown_Mart.s)0
-rw-r--r--data/scripts/maps/FallarborTown_PokemonCenter_1F.inc (renamed from data/scripts/maps/FallarborTown_PokemonCenter_1F.s)0
-rw-r--r--data/scripts/maps/FallarborTown_PokemonCenter_2F.inc (renamed from data/scripts/maps/FallarborTown_PokemonCenter_2F.s)0
-rw-r--r--data/scripts/maps/FieryPath.inc (renamed from data/scripts/maps/FieryPath.s)0
-rw-r--r--data/scripts/maps/FortreeCity.inc (renamed from data/scripts/maps/FortreeCity.s)0
-rw-r--r--data/scripts/maps/FortreeCity_DecorationShop.inc (renamed from data/scripts/maps/FortreeCity_DecorationShop.s)0
-rw-r--r--data/scripts/maps/FortreeCity_Gym.inc (renamed from data/scripts/maps/FortreeCity_Gym.s)0
-rw-r--r--data/scripts/maps/FortreeCity_House1.inc (renamed from data/scripts/maps/FortreeCity_House1.s)0
-rw-r--r--data/scripts/maps/FortreeCity_House2.inc (renamed from data/scripts/maps/FortreeCity_House2.s)0
-rw-r--r--data/scripts/maps/FortreeCity_House3.inc (renamed from data/scripts/maps/FortreeCity_House3.s)0
-rw-r--r--data/scripts/maps/FortreeCity_House4.inc (renamed from data/scripts/maps/FortreeCity_House4.s)0
-rw-r--r--data/scripts/maps/FortreeCity_House5.inc (renamed from data/scripts/maps/FortreeCity_House5.s)0
-rw-r--r--data/scripts/maps/FortreeCity_Mart.inc (renamed from data/scripts/maps/FortreeCity_Mart.s)0
-rw-r--r--data/scripts/maps/FortreeCity_PokemonCenter_1F.inc (renamed from data/scripts/maps/FortreeCity_PokemonCenter_1F.s)0
-rw-r--r--data/scripts/maps/FortreeCity_PokemonCenter_2F.inc (renamed from data/scripts/maps/FortreeCity_PokemonCenter_2F.s)0
-rw-r--r--data/scripts/maps/GraniteCave_1F.inc (renamed from data/scripts/maps/GraniteCave_1F.s)0
-rw-r--r--data/scripts/maps/GraniteCave_B1F.inc (renamed from data/scripts/maps/GraniteCave_B1F.s)0
-rw-r--r--data/scripts/maps/GraniteCave_B2F.inc (renamed from data/scripts/maps/GraniteCave_B2F.s)0
-rw-r--r--data/scripts/maps/GraniteCave_StevensRoom.inc (renamed from data/scripts/maps/GraniteCave_StevensRoom.s)0
-rw-r--r--data/scripts/maps/InsideOfTruck.inc (renamed from data/scripts/maps/InsideOfTruck.s)0
-rw-r--r--data/scripts/maps/IslandCave.inc (renamed from data/scripts/maps/IslandCave.s)0
-rw-r--r--data/scripts/maps/JaggedPass.inc (renamed from data/scripts/maps/JaggedPass.s)0
-rw-r--r--data/scripts/maps/LavaridgeTown.inc (renamed from data/scripts/maps/LavaridgeTown.s)0
-rw-r--r--data/scripts/maps/LavaridgeTown_Gym_1F.inc (renamed from data/scripts/maps/LavaridgeTown_Gym_1F.s)0
-rw-r--r--data/scripts/maps/LavaridgeTown_Gym_B1F.inc (renamed from data/scripts/maps/LavaridgeTown_Gym_B1F.s)0
-rw-r--r--data/scripts/maps/LavaridgeTown_HerbShop.inc (renamed from data/scripts/maps/LavaridgeTown_HerbShop.s)0
-rw-r--r--data/scripts/maps/LavaridgeTown_House.inc (renamed from data/scripts/maps/LavaridgeTown_House.s)0
-rw-r--r--data/scripts/maps/LavaridgeTown_Mart.inc (renamed from data/scripts/maps/LavaridgeTown_Mart.s)0
-rw-r--r--data/scripts/maps/LavaridgeTown_PokemonCenter_1F.inc (renamed from data/scripts/maps/LavaridgeTown_PokemonCenter_1F.s)0
-rw-r--r--data/scripts/maps/LavaridgeTown_PokemonCenter_2F.inc (renamed from data/scripts/maps/LavaridgeTown_PokemonCenter_2F.s)0
-rw-r--r--data/scripts/maps/LilycoveCity.inc (renamed from data/scripts/maps/LilycoveCity.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_ContestHall.inc (renamed from data/scripts/maps/LilycoveCity_ContestHall.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_ContestLobby.inc (renamed from data/scripts/maps/LilycoveCity_ContestLobby.s)14
-rw-r--r--data/scripts/maps/LilycoveCity_CoveLilyMotel_1F.inc (renamed from data/scripts/maps/LilycoveCity_CoveLilyMotel_1F.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_CoveLilyMotel_2F.inc (renamed from data/scripts/maps/LilycoveCity_CoveLilyMotel_2F.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStoreElevator.inc (renamed from data/scripts/maps/LilycoveCity_DepartmentStoreElevator.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.inc (renamed from data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStore_1F.inc (renamed from data/scripts/maps/LilycoveCity_DepartmentStore_1F.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStore_2F.inc (renamed from data/scripts/maps/LilycoveCity_DepartmentStore_2F.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStore_3F.inc (renamed from data/scripts/maps/LilycoveCity_DepartmentStore_3F.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStore_4F.inc (renamed from data/scripts/maps/LilycoveCity_DepartmentStore_4F.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_DepartmentStore_5F.inc (renamed from data/scripts/maps/LilycoveCity_DepartmentStore_5F.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_EmptyMap.inc (renamed from data/scripts/maps/LilycoveCity_EmptyMap.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_Harbor.inc (renamed from data/scripts/maps/LilycoveCity_Harbor.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_House1.inc (renamed from data/scripts/maps/LilycoveCity_House1.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_House2.inc (renamed from data/scripts/maps/LilycoveCity_House2.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_House3.inc (renamed from data/scripts/maps/LilycoveCity_House3.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_House4.inc (renamed from data/scripts/maps/LilycoveCity_House4.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_LilycoveMuseum_1F.inc (renamed from data/scripts/maps/LilycoveCity_LilycoveMuseum_1F.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_LilycoveMuseum_2F.inc (renamed from data/scripts/maps/LilycoveCity_LilycoveMuseum_2F.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_MoveDeletersHouse.inc (renamed from data/scripts/maps/LilycoveCity_MoveDeletersHouse.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_PokemonCenter_1F.inc (renamed from data/scripts/maps/LilycoveCity_PokemonCenter_1F.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_PokemonCenter_2F.inc (renamed from data/scripts/maps/LilycoveCity_PokemonCenter_2F.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_PokemonTrainerFanClub.inc (renamed from data/scripts/maps/LilycoveCity_PokemonTrainerFanClub.s)0
-rw-r--r--data/scripts/maps/LilycoveCity_UnusedMart.inc (renamed from data/scripts/maps/LilycoveCity_UnusedMart.s)0
-rw-r--r--data/scripts/maps/LinkContestRoom1.inc (renamed from data/scripts/maps/LinkContestRoom1.s)0
-rw-r--r--data/scripts/maps/LinkContestRoom2.inc (renamed from data/scripts/maps/LinkContestRoom2.s)0
-rw-r--r--data/scripts/maps/LinkContestRoom3.inc (renamed from data/scripts/maps/LinkContestRoom3.s)0
-rw-r--r--data/scripts/maps/LinkContestRoom4.inc (renamed from data/scripts/maps/LinkContestRoom4.s)0
-rw-r--r--data/scripts/maps/LinkContestRoom5.inc (renamed from data/scripts/maps/LinkContestRoom5.s)0
-rw-r--r--data/scripts/maps/LinkContestRoom6.inc (renamed from data/scripts/maps/LinkContestRoom6.s)0
-rw-r--r--data/scripts/maps/LittlerootTown.inc (renamed from data/scripts/maps/LittlerootTown.s)0
-rw-r--r--data/scripts/maps/LittlerootTown_BrendansHouse_1F.inc (renamed from data/scripts/maps/LittlerootTown_BrendansHouse_1F.s)0
-rw-r--r--data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc (renamed from data/scripts/maps/LittlerootTown_BrendansHouse_2F.s)0
-rw-r--r--data/scripts/maps/LittlerootTown_MaysHouse_1F.inc (renamed from data/scripts/maps/LittlerootTown_MaysHouse_1F.s)0
-rw-r--r--data/scripts/maps/LittlerootTown_MaysHouse_2F.inc (renamed from data/scripts/maps/LittlerootTown_MaysHouse_2F.s)0
-rw-r--r--data/scripts/maps/LittlerootTown_ProfessorBirchsLab.inc (renamed from data/scripts/maps/LittlerootTown_ProfessorBirchsLab.s)0
-rw-r--r--data/scripts/maps/MagmaHideout_1F.inc (renamed from data/scripts/maps/MagmaHideout_1F.s)0
-rw-r--r--data/scripts/maps/MagmaHideout_B1F.inc (renamed from data/scripts/maps/MagmaHideout_B1F.s)0
-rw-r--r--data/scripts/maps/MagmaHideout_B2F.inc (renamed from data/scripts/maps/MagmaHideout_B2F.s)0
-rw-r--r--data/scripts/maps/MauvilleCity.inc (renamed from data/scripts/maps/MauvilleCity.s)0
-rw-r--r--data/scripts/maps/MauvilleCity_BikeShop.inc (renamed from data/scripts/maps/MauvilleCity_BikeShop.s)0
-rw-r--r--data/scripts/maps/MauvilleCity_GameCorner.inc (renamed from data/scripts/maps/MauvilleCity_GameCorner.s)0
-rw-r--r--data/scripts/maps/MauvilleCity_Gym.inc (renamed from data/scripts/maps/MauvilleCity_Gym.s)0
-rw-r--r--data/scripts/maps/MauvilleCity_House1.inc (renamed from data/scripts/maps/MauvilleCity_House1.s)0
-rw-r--r--data/scripts/maps/MauvilleCity_House2.inc (renamed from data/scripts/maps/MauvilleCity_House2.s)0
-rw-r--r--data/scripts/maps/MauvilleCity_Mart.inc (renamed from data/scripts/maps/MauvilleCity_Mart.s)0
-rw-r--r--data/scripts/maps/MauvilleCity_PokemonCenter_1F.inc (renamed from data/scripts/maps/MauvilleCity_PokemonCenter_1F.s)0
-rw-r--r--data/scripts/maps/MauvilleCity_PokemonCenter_2F.inc (renamed from data/scripts/maps/MauvilleCity_PokemonCenter_2F.s)0
-rw-r--r--data/scripts/maps/MeteorFalls_1F_1R.inc (renamed from data/scripts/maps/MeteorFalls_1F_1R.s)0
-rw-r--r--data/scripts/maps/MeteorFalls_1F_2R.inc (renamed from data/scripts/maps/MeteorFalls_1F_2R.s)0
-rw-r--r--data/scripts/maps/MeteorFalls_B1F_1R.inc (renamed from data/scripts/maps/MeteorFalls_B1F_1R.s)0
-rw-r--r--data/scripts/maps/MeteorFalls_B1F_2R.inc (renamed from data/scripts/maps/MeteorFalls_B1F_2R.s)0
-rw-r--r--data/scripts/maps/MossdeepCity.inc (renamed from data/scripts/maps/MossdeepCity.s)0
-rw-r--r--data/scripts/maps/MossdeepCity_GameCorner_1F.inc (renamed from data/scripts/maps/MossdeepCity_GameCorner_1F.s)0
-rw-r--r--data/scripts/maps/MossdeepCity_GameCorner_B1F.inc (renamed from data/scripts/maps/MossdeepCity_GameCorner_B1F.s)0
-rw-r--r--data/scripts/maps/MossdeepCity_Gym.inc (renamed from data/scripts/maps/MossdeepCity_Gym.s)0
-rw-r--r--data/scripts/maps/MossdeepCity_House1.inc (renamed from data/scripts/maps/MossdeepCity_House1.s)0
-rw-r--r--data/scripts/maps/MossdeepCity_House2.inc (renamed from data/scripts/maps/MossdeepCity_House2.s)0
-rw-r--r--data/scripts/maps/MossdeepCity_House3.inc (renamed from data/scripts/maps/MossdeepCity_House3.s)0
-rw-r--r--data/scripts/maps/MossdeepCity_House4.inc (renamed from data/scripts/maps/MossdeepCity_House4.s)0
-rw-r--r--data/scripts/maps/MossdeepCity_Mart.inc (renamed from data/scripts/maps/MossdeepCity_Mart.s)0
-rw-r--r--data/scripts/maps/MossdeepCity_PokemonCenter_1F.inc (renamed from data/scripts/maps/MossdeepCity_PokemonCenter_1F.s)0
-rw-r--r--data/scripts/maps/MossdeepCity_PokemonCenter_2F.inc (renamed from data/scripts/maps/MossdeepCity_PokemonCenter_2F.s)0
-rw-r--r--data/scripts/maps/MossdeepCity_SpaceCenter_1F.inc (renamed from data/scripts/maps/MossdeepCity_SpaceCenter_1F.s)0
-rw-r--r--data/scripts/maps/MossdeepCity_SpaceCenter_2F.inc (renamed from data/scripts/maps/MossdeepCity_SpaceCenter_2F.s)0
-rw-r--r--data/scripts/maps/MossdeepCity_StevensHouse.inc (renamed from data/scripts/maps/MossdeepCity_StevensHouse.s)0
-rw-r--r--data/scripts/maps/MtChimney.inc (renamed from data/scripts/maps/MtChimney.s)0
-rw-r--r--data/scripts/maps/MtChimney_CableCarStation.inc (renamed from data/scripts/maps/MtChimney_CableCarStation.s)0
-rw-r--r--data/scripts/maps/MtPyre_1F.inc (renamed from data/scripts/maps/MtPyre_1F.s)0
-rw-r--r--data/scripts/maps/MtPyre_2F.inc (renamed from data/scripts/maps/MtPyre_2F.s)0
-rw-r--r--data/scripts/maps/MtPyre_3F.inc (renamed from data/scripts/maps/MtPyre_3F.s)0
-rw-r--r--data/scripts/maps/MtPyre_4F.inc (renamed from data/scripts/maps/MtPyre_4F.s)0
-rw-r--r--data/scripts/maps/MtPyre_5F.inc (renamed from data/scripts/maps/MtPyre_5F.s)0
-rw-r--r--data/scripts/maps/MtPyre_6F.inc (renamed from data/scripts/maps/MtPyre_6F.s)0
-rw-r--r--data/scripts/maps/MtPyre_Exterior.inc (renamed from data/scripts/maps/MtPyre_Exterior.s)0
-rw-r--r--data/scripts/maps/MtPyre_Summit.inc (renamed from data/scripts/maps/MtPyre_Summit.s)0
-rw-r--r--data/scripts/maps/NewMauville_Entrance.inc (renamed from data/scripts/maps/NewMauville_Entrance.s)0
-rw-r--r--data/scripts/maps/NewMauville_Inside.inc (renamed from data/scripts/maps/NewMauville_Inside.s)0
-rw-r--r--data/scripts/maps/OldaleTown.inc (renamed from data/scripts/maps/OldaleTown.s)0
-rw-r--r--data/scripts/maps/OldaleTown_House1.inc (renamed from data/scripts/maps/OldaleTown_House1.s)0
-rw-r--r--data/scripts/maps/OldaleTown_House2.inc (renamed from data/scripts/maps/OldaleTown_House2.s)0
-rw-r--r--data/scripts/maps/OldaleTown_Mart.inc (renamed from data/scripts/maps/OldaleTown_Mart.s)0
-rw-r--r--data/scripts/maps/OldaleTown_PokemonCenter_1F.inc (renamed from data/scripts/maps/OldaleTown_PokemonCenter_1F.s)0
-rw-r--r--data/scripts/maps/OldaleTown_PokemonCenter_2F.inc (renamed from data/scripts/maps/OldaleTown_PokemonCenter_2F.s)0
-rw-r--r--data/scripts/maps/PacifidlogTown.inc (renamed from data/scripts/maps/PacifidlogTown.s)0
-rw-r--r--data/scripts/maps/PacifidlogTown_House1.inc (renamed from data/scripts/maps/PacifidlogTown_House1.s)0
-rw-r--r--data/scripts/maps/PacifidlogTown_House2.inc (renamed from data/scripts/maps/PacifidlogTown_House2.s)0
-rw-r--r--data/scripts/maps/PacifidlogTown_House3.inc (renamed from data/scripts/maps/PacifidlogTown_House3.s)0
-rw-r--r--data/scripts/maps/PacifidlogTown_House4.inc (renamed from data/scripts/maps/PacifidlogTown_House4.s)0
-rw-r--r--data/scripts/maps/PacifidlogTown_House5.inc (renamed from data/scripts/maps/PacifidlogTown_House5.s)0
-rw-r--r--data/scripts/maps/PacifidlogTown_PokemonCenter_1F.inc (renamed from data/scripts/maps/PacifidlogTown_PokemonCenter_1F.s)0
-rw-r--r--data/scripts/maps/PacifidlogTown_PokemonCenter_2F.inc (renamed from data/scripts/maps/PacifidlogTown_PokemonCenter_2F.s)0
-rw-r--r--data/scripts/maps/PetalburgCity.inc (renamed from data/scripts/maps/PetalburgCity.s)0
-rw-r--r--data/scripts/maps/PetalburgCity_Gym.inc (renamed from data/scripts/maps/PetalburgCity_Gym.s)0
-rw-r--r--data/scripts/maps/PetalburgCity_House1.inc (renamed from data/scripts/maps/PetalburgCity_House1.s)0
-rw-r--r--data/scripts/maps/PetalburgCity_House2.inc (renamed from data/scripts/maps/PetalburgCity_House2.s)0
-rw-r--r--data/scripts/maps/PetalburgCity_Mart.inc (renamed from data/scripts/maps/PetalburgCity_Mart.s)0
-rw-r--r--data/scripts/maps/PetalburgCity_PokemonCenter_1F.inc (renamed from data/scripts/maps/PetalburgCity_PokemonCenter_1F.s)0
-rw-r--r--data/scripts/maps/PetalburgCity_PokemonCenter_2F.inc (renamed from data/scripts/maps/PetalburgCity_PokemonCenter_2F.s)0
-rw-r--r--data/scripts/maps/PetalburgCity_WallysHouse.inc (renamed from data/scripts/maps/PetalburgCity_WallysHouse.s)0
-rw-r--r--data/scripts/maps/PetalburgWoods.inc (renamed from data/scripts/maps/PetalburgWoods.s)0
-rw-r--r--data/scripts/maps/RecordCorner.inc (renamed from data/scripts/maps/RecordCorner.s)0
-rw-r--r--data/scripts/maps/Route101.inc (renamed from data/scripts/maps/Route101.s)0
-rw-r--r--data/scripts/maps/Route102.inc (renamed from data/scripts/maps/Route102.s)0
-rw-r--r--data/scripts/maps/Route103.inc (renamed from data/scripts/maps/Route103.s)0
-rw-r--r--data/scripts/maps/Route104.inc (renamed from data/scripts/maps/Route104.s)0
-rw-r--r--data/scripts/maps/Route104_MrBrineysHouse.inc (renamed from data/scripts/maps/Route104_MrBrineysHouse.s)0
-rw-r--r--data/scripts/maps/Route104_PrettyPetalFlowerShop.inc (renamed from data/scripts/maps/Route104_PrettyPetalFlowerShop.s)0
-rw-r--r--data/scripts/maps/Route104_Prototype.inc (renamed from data/scripts/maps/Route104_Prototype.s)0
-rw-r--r--data/scripts/maps/Route104_PrototypePrettyPetalFlowerShop.inc (renamed from data/scripts/maps/Route104_PrototypePrettyPetalFlowerShop.s)0
-rw-r--r--data/scripts/maps/Route105.inc (renamed from data/scripts/maps/Route105.s)0
-rw-r--r--data/scripts/maps/Route106.inc (renamed from data/scripts/maps/Route106.s)0
-rw-r--r--data/scripts/maps/Route107.inc (renamed from data/scripts/maps/Route107.s)0
-rw-r--r--data/scripts/maps/Route108.inc (renamed from data/scripts/maps/Route108.s)0
-rw-r--r--data/scripts/maps/Route109.inc (renamed from data/scripts/maps/Route109.s)0
-rw-r--r--data/scripts/maps/Route109_SeashoreHouse.inc (renamed from data/scripts/maps/Route109_SeashoreHouse.s)0
-rw-r--r--data/scripts/maps/Route110.inc (renamed from data/scripts/maps/Route110.s)0
-rw-r--r--data/scripts/maps/Route110_SeasideCyclingRoadNorthEntrance.inc (renamed from data/scripts/maps/Route110_SeasideCyclingRoadNorthEntrance.s)0
-rw-r--r--data/scripts/maps/Route110_SeasideCyclingRoadSouthEntrance.inc (renamed from data/scripts/maps/Route110_SeasideCyclingRoadSouthEntrance.s)0
-rw-r--r--data/scripts/maps/Route110_TrickHouseCorridor.inc (renamed from data/scripts/maps/Route110_TrickHouseCorridor.s)0
-rw-r--r--data/scripts/maps/Route110_TrickHouseEnd.inc (renamed from data/scripts/maps/Route110_TrickHouseEnd.s)0
-rw-r--r--data/scripts/maps/Route110_TrickHouseEntrance.inc (renamed from data/scripts/maps/Route110_TrickHouseEntrance.s)0
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle1.inc (renamed from data/scripts/maps/Route110_TrickHousePuzzle1.s)0
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle2.inc (renamed from data/scripts/maps/Route110_TrickHousePuzzle2.s)0
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle3.inc (renamed from data/scripts/maps/Route110_TrickHousePuzzle3.s)0
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle4.inc (renamed from data/scripts/maps/Route110_TrickHousePuzzle4.s)0
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle5.inc (renamed from data/scripts/maps/Route110_TrickHousePuzzle5.s)0
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle6.inc (renamed from data/scripts/maps/Route110_TrickHousePuzzle6.s)0
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle7.inc (renamed from data/scripts/maps/Route110_TrickHousePuzzle7.s)0
-rw-r--r--data/scripts/maps/Route110_TrickHousePuzzle8.inc (renamed from data/scripts/maps/Route110_TrickHousePuzzle8.s)0
-rw-r--r--data/scripts/maps/Route111.inc (renamed from data/scripts/maps/Route111.s)0
-rw-r--r--data/scripts/maps/Route111_OldLadysRestStop.inc (renamed from data/scripts/maps/Route111_OldLadysRestStop.s)0
-rw-r--r--data/scripts/maps/Route111_WinstrateFamilysHouse.inc (renamed from data/scripts/maps/Route111_WinstrateFamilysHouse.s)0
-rw-r--r--data/scripts/maps/Route112.inc (renamed from data/scripts/maps/Route112.s)0
-rw-r--r--data/scripts/maps/Route112_CableCarStation.inc (renamed from data/scripts/maps/Route112_CableCarStation.s)0
-rw-r--r--data/scripts/maps/Route113.inc (renamed from data/scripts/maps/Route113.s)0
-rw-r--r--data/scripts/maps/Route113_GlassWorkshop.inc (renamed from data/scripts/maps/Route113_GlassWorkshop.s)0
-rw-r--r--data/scripts/maps/Route114.inc (renamed from data/scripts/maps/Route114.s)0
-rw-r--r--data/scripts/maps/Route114_FossilManiacsHouse.inc (renamed from data/scripts/maps/Route114_FossilManiacsHouse.s)0
-rw-r--r--data/scripts/maps/Route114_FossilManiacsTunnel.inc (renamed from data/scripts/maps/Route114_FossilManiacsTunnel.s)0
-rw-r--r--data/scripts/maps/Route114_LanettesHouse.inc (renamed from data/scripts/maps/Route114_LanettesHouse.s)0
-rw-r--r--data/scripts/maps/Route115.inc (renamed from data/scripts/maps/Route115.s)0
-rw-r--r--data/scripts/maps/Route116.inc (renamed from data/scripts/maps/Route116.s)0
-rw-r--r--data/scripts/maps/Route116_TunnelersRestHouse.inc (renamed from data/scripts/maps/Route116_TunnelersRestHouse.s)0
-rw-r--r--data/scripts/maps/Route117.inc (renamed from data/scripts/maps/Route117.s)0
-rw-r--r--data/scripts/maps/Route117_PokemonDayCare.inc (renamed from data/scripts/maps/Route117_PokemonDayCare.s)0
-rw-r--r--data/scripts/maps/Route118.inc (renamed from data/scripts/maps/Route118.s)0
-rw-r--r--data/scripts/maps/Route119.inc (renamed from data/scripts/maps/Route119.s)0
-rw-r--r--data/scripts/maps/Route119_House.inc (renamed from data/scripts/maps/Route119_House.s)0
-rw-r--r--data/scripts/maps/Route119_WeatherInstitute_1F.inc (renamed from data/scripts/maps/Route119_WeatherInstitute_1F.s)0
-rw-r--r--data/scripts/maps/Route119_WeatherInstitute_2F.inc (renamed from data/scripts/maps/Route119_WeatherInstitute_2F.s)0
-rw-r--r--data/scripts/maps/Route120.inc (renamed from data/scripts/maps/Route120.s)0
-rw-r--r--data/scripts/maps/Route121.inc (renamed from data/scripts/maps/Route121.s)0
-rw-r--r--data/scripts/maps/Route121_SafariZoneEntrance.inc (renamed from data/scripts/maps/Route121_SafariZoneEntrance.s)0
-rw-r--r--data/scripts/maps/Route122.inc (renamed from data/scripts/maps/Route122.s)0
-rw-r--r--data/scripts/maps/Route123.inc (renamed from data/scripts/maps/Route123.s)0
-rw-r--r--data/scripts/maps/Route123_BerryMastersHouse.inc (renamed from data/scripts/maps/Route123_BerryMastersHouse.s)0
-rw-r--r--data/scripts/maps/Route124.inc (renamed from data/scripts/maps/Route124.s)0
-rw-r--r--data/scripts/maps/Route124_DivingTreasureHuntersHouse.inc (renamed from data/scripts/maps/Route124_DivingTreasureHuntersHouse.s)0
-rw-r--r--data/scripts/maps/Route125.inc (renamed from data/scripts/maps/Route125.s)0
-rw-r--r--data/scripts/maps/Route126.inc (renamed from data/scripts/maps/Route126.s)0
-rw-r--r--data/scripts/maps/Route127.inc (renamed from data/scripts/maps/Route127.s)0
-rw-r--r--data/scripts/maps/Route128.inc (renamed from data/scripts/maps/Route128.s)0
-rw-r--r--data/scripts/maps/Route129.inc (renamed from data/scripts/maps/Route129.s)0
-rw-r--r--data/scripts/maps/Route130.inc (renamed from data/scripts/maps/Route130.s)0
-rw-r--r--data/scripts/maps/Route131.inc (renamed from data/scripts/maps/Route131.s)0
-rw-r--r--data/scripts/maps/Route132.inc (renamed from data/scripts/maps/Route132.s)0
-rw-r--r--data/scripts/maps/Route133.inc (renamed from data/scripts/maps/Route133.s)0
-rw-r--r--data/scripts/maps/Route134.inc (renamed from data/scripts/maps/Route134.s)0
-rw-r--r--data/scripts/maps/RustboroCity.inc (renamed from data/scripts/maps/RustboroCity.s)0
-rw-r--r--data/scripts/maps/RustboroCity_CuttersHouse.inc (renamed from data/scripts/maps/RustboroCity_CuttersHouse.s)0
-rw-r--r--data/scripts/maps/RustboroCity_DevonCorp_1F.inc (renamed from data/scripts/maps/RustboroCity_DevonCorp_1F.s)0
-rw-r--r--data/scripts/maps/RustboroCity_DevonCorp_2F.inc (renamed from data/scripts/maps/RustboroCity_DevonCorp_2F.s)0
-rw-r--r--data/scripts/maps/RustboroCity_DevonCorp_3F.inc (renamed from data/scripts/maps/RustboroCity_DevonCorp_3F.s)0
-rw-r--r--data/scripts/maps/RustboroCity_Flat1_1F.inc (renamed from data/scripts/maps/RustboroCity_Flat1_1F.s)0
-rw-r--r--data/scripts/maps/RustboroCity_Flat1_2F.inc (renamed from data/scripts/maps/RustboroCity_Flat1_2F.s)0
-rw-r--r--data/scripts/maps/RustboroCity_Flat2_1F.inc (renamed from data/scripts/maps/RustboroCity_Flat2_1F.s)0
-rw-r--r--data/scripts/maps/RustboroCity_Flat2_2F.inc (renamed from data/scripts/maps/RustboroCity_Flat2_2F.s)0
-rw-r--r--data/scripts/maps/RustboroCity_Flat2_3F.inc (renamed from data/scripts/maps/RustboroCity_Flat2_3F.s)0
-rw-r--r--data/scripts/maps/RustboroCity_Gym.inc (renamed from data/scripts/maps/RustboroCity_Gym.s)0
-rw-r--r--data/scripts/maps/RustboroCity_House1.inc (renamed from data/scripts/maps/RustboroCity_House1.s)0
-rw-r--r--data/scripts/maps/RustboroCity_House2.inc (renamed from data/scripts/maps/RustboroCity_House2.s)0
-rw-r--r--data/scripts/maps/RustboroCity_House3.inc (renamed from data/scripts/maps/RustboroCity_House3.s)0
-rw-r--r--data/scripts/maps/RustboroCity_Mart.inc (renamed from data/scripts/maps/RustboroCity_Mart.s)0
-rw-r--r--data/scripts/maps/RustboroCity_PokemonCenter_1F.inc (renamed from data/scripts/maps/RustboroCity_PokemonCenter_1F.s)0
-rw-r--r--data/scripts/maps/RustboroCity_PokemonCenter_2F.inc (renamed from data/scripts/maps/RustboroCity_PokemonCenter_2F.s)0
-rw-r--r--data/scripts/maps/RustboroCity_PokemonSchool.inc (renamed from data/scripts/maps/RustboroCity_PokemonSchool.s)0
-rw-r--r--data/scripts/maps/RusturfTunnel.inc (renamed from data/scripts/maps/RusturfTunnel.s)0
-rw-r--r--data/scripts/maps/SSTidalCorridor.inc (renamed from data/scripts/maps/SSTidalCorridor.s)0
-rw-r--r--data/scripts/maps/SSTidalLowerDeck.inc (renamed from data/scripts/maps/SSTidalLowerDeck.s)0
-rw-r--r--data/scripts/maps/SSTidalRooms.inc (renamed from data/scripts/maps/SSTidalRooms.s)0
-rw-r--r--data/scripts/maps/SafariZone_Northeast.inc (renamed from data/scripts/maps/SafariZone_Northeast.s)0
-rw-r--r--data/scripts/maps/SafariZone_Northwest.inc (renamed from data/scripts/maps/SafariZone_Northwest.s)0
-rw-r--r--data/scripts/maps/SafariZone_RestHouse.inc (renamed from data/scripts/maps/SafariZone_RestHouse.s)0
-rw-r--r--data/scripts/maps/SafariZone_Southeast.inc (renamed from data/scripts/maps/SafariZone_Southeast.s)0
-rw-r--r--data/scripts/maps/SafariZone_Southwest.inc (renamed from data/scripts/maps/SafariZone_Southwest.s)0
-rw-r--r--data/scripts/maps/ScorchedSlab.inc (renamed from data/scripts/maps/ScorchedSlab.s)0
-rw-r--r--data/scripts/maps/SeafloorCavern_Entrance.inc (renamed from data/scripts/maps/SeafloorCavern_Entrance.s)0
-rw-r--r--data/scripts/maps/SeafloorCavern_Room1.inc (renamed from data/scripts/maps/SeafloorCavern_Room1.s)0
-rw-r--r--data/scripts/maps/SeafloorCavern_Room2.inc (renamed from data/scripts/maps/SeafloorCavern_Room2.s)0
-rw-r--r--data/scripts/maps/SeafloorCavern_Room3.inc (renamed from data/scripts/maps/SeafloorCavern_Room3.s)0
-rw-r--r--data/scripts/maps/SeafloorCavern_Room4.inc (renamed from data/scripts/maps/SeafloorCavern_Room4.s)0
-rw-r--r--data/scripts/maps/SeafloorCavern_Room5.inc (renamed from data/scripts/maps/SeafloorCavern_Room5.s)0
-rw-r--r--data/scripts/maps/SeafloorCavern_Room6.inc (renamed from data/scripts/maps/SeafloorCavern_Room6.s)0
-rw-r--r--data/scripts/maps/SeafloorCavern_Room7.inc (renamed from data/scripts/maps/SeafloorCavern_Room7.s)0
-rw-r--r--data/scripts/maps/SeafloorCavern_Room8.inc (renamed from data/scripts/maps/SeafloorCavern_Room8.s)0
-rw-r--r--data/scripts/maps/SeafloorCavern_Room9.inc (renamed from data/scripts/maps/SeafloorCavern_Room9.s)0
-rw-r--r--data/scripts/maps/SealedChamber_InnerRoom.inc (renamed from data/scripts/maps/SealedChamber_InnerRoom.s)0
-rw-r--r--data/scripts/maps/SealedChamber_OuterRoom.inc (renamed from data/scripts/maps/SealedChamber_OuterRoom.s)0
-rw-r--r--data/scripts/maps/SecretBase_BlueCave1.inc (renamed from data/scripts/maps/SecretBase_BlueCave1.s)0
-rw-r--r--data/scripts/maps/SecretBase_BlueCave2.inc (renamed from data/scripts/maps/SecretBase_BlueCave2.s)0
-rw-r--r--data/scripts/maps/SecretBase_BlueCave3.inc (renamed from data/scripts/maps/SecretBase_BlueCave3.s)0
-rw-r--r--data/scripts/maps/SecretBase_BlueCave4.inc (renamed from data/scripts/maps/SecretBase_BlueCave4.s)0
-rw-r--r--data/scripts/maps/SecretBase_BrownCave1.inc (renamed from data/scripts/maps/SecretBase_BrownCave1.s)0
-rw-r--r--data/scripts/maps/SecretBase_BrownCave2.inc (renamed from data/scripts/maps/SecretBase_BrownCave2.s)0
-rw-r--r--data/scripts/maps/SecretBase_BrownCave3.inc (renamed from data/scripts/maps/SecretBase_BrownCave3.s)0
-rw-r--r--data/scripts/maps/SecretBase_BrownCave4.inc (renamed from data/scripts/maps/SecretBase_BrownCave4.s)0
-rw-r--r--data/scripts/maps/SecretBase_RedCave1.inc (renamed from data/scripts/maps/SecretBase_RedCave1.s)0
-rw-r--r--data/scripts/maps/SecretBase_RedCave2.inc (renamed from data/scripts/maps/SecretBase_RedCave2.s)0
-rw-r--r--data/scripts/maps/SecretBase_RedCave3.inc (renamed from data/scripts/maps/SecretBase_RedCave3.s)0
-rw-r--r--data/scripts/maps/SecretBase_RedCave4.inc (renamed from data/scripts/maps/SecretBase_RedCave4.s)0
-rw-r--r--data/scripts/maps/SecretBase_Shrub1.inc (renamed from data/scripts/maps/SecretBase_Shrub1.s)0
-rw-r--r--data/scripts/maps/SecretBase_Shrub2.inc (renamed from data/scripts/maps/SecretBase_Shrub2.s)0
-rw-r--r--data/scripts/maps/SecretBase_Shrub3.inc (renamed from data/scripts/maps/SecretBase_Shrub3.s)0
-rw-r--r--data/scripts/maps/SecretBase_Shrub4.inc (renamed from data/scripts/maps/SecretBase_Shrub4.s)0
-rw-r--r--data/scripts/maps/SecretBase_Tree1.inc (renamed from data/scripts/maps/SecretBase_Tree1.s)0
-rw-r--r--data/scripts/maps/SecretBase_Tree2.inc (renamed from data/scripts/maps/SecretBase_Tree2.s)0
-rw-r--r--data/scripts/maps/SecretBase_Tree3.inc (renamed from data/scripts/maps/SecretBase_Tree3.s)0
-rw-r--r--data/scripts/maps/SecretBase_Tree4.inc (renamed from data/scripts/maps/SecretBase_Tree4.s)0
-rw-r--r--data/scripts/maps/SecretBase_YellowCave1.inc (renamed from data/scripts/maps/SecretBase_YellowCave1.s)0
-rw-r--r--data/scripts/maps/SecretBase_YellowCave2.inc (renamed from data/scripts/maps/SecretBase_YellowCave2.s)0
-rw-r--r--data/scripts/maps/SecretBase_YellowCave3.inc (renamed from data/scripts/maps/SecretBase_YellowCave3.s)0
-rw-r--r--data/scripts/maps/SecretBase_YellowCave4.inc (renamed from data/scripts/maps/SecretBase_YellowCave4.s)0
-rw-r--r--data/scripts/maps/ShoalCave_HighTideEntranceRoom.inc (renamed from data/scripts/maps/ShoalCave_HighTideEntranceRoom.s)0
-rw-r--r--data/scripts/maps/ShoalCave_HighTideInnerRoom.inc (renamed from data/scripts/maps/ShoalCave_HighTideInnerRoom.s)0
-rw-r--r--data/scripts/maps/ShoalCave_LowTideEntranceRoom.inc (renamed from data/scripts/maps/ShoalCave_LowTideEntranceRoom.s)0
-rw-r--r--data/scripts/maps/ShoalCave_LowTideIceRoom.inc (renamed from data/scripts/maps/ShoalCave_LowTideIceRoom.s)0
-rw-r--r--data/scripts/maps/ShoalCave_LowTideInnerRoom.inc (renamed from data/scripts/maps/ShoalCave_LowTideInnerRoom.s)0
-rw-r--r--data/scripts/maps/ShoalCave_LowTideLowerRoom.inc (renamed from data/scripts/maps/ShoalCave_LowTideLowerRoom.s)0
-rw-r--r--data/scripts/maps/ShoalCave_LowTideStairsRoom.inc (renamed from data/scripts/maps/ShoalCave_LowTideStairsRoom.s)0
-rw-r--r--data/scripts/maps/SingleBattleColosseum.inc (renamed from data/scripts/maps/SingleBattleColosseum.s)0
-rw-r--r--data/scripts/maps/SkyPillar_1F.inc (renamed from data/scripts/maps/SkyPillar_1F.s)0
-rw-r--r--data/scripts/maps/SkyPillar_2F.inc (renamed from data/scripts/maps/SkyPillar_2F.s)0
-rw-r--r--data/scripts/maps/SkyPillar_3F.inc (renamed from data/scripts/maps/SkyPillar_3F.s)0
-rw-r--r--data/scripts/maps/SkyPillar_4F.inc (renamed from data/scripts/maps/SkyPillar_4F.s)0
-rw-r--r--data/scripts/maps/SkyPillar_5F.inc (renamed from data/scripts/maps/SkyPillar_5F.s)0
-rw-r--r--data/scripts/maps/SkyPillar_Entrance.inc (renamed from data/scripts/maps/SkyPillar_Entrance.s)0
-rw-r--r--data/scripts/maps/SkyPillar_Outside.inc (renamed from data/scripts/maps/SkyPillar_Outside.s)0
-rw-r--r--data/scripts/maps/SkyPillar_Top.inc (renamed from data/scripts/maps/SkyPillar_Top.s)0
-rw-r--r--data/scripts/maps/SlateportCity.inc (renamed from data/scripts/maps/SlateportCity.s)0
-rw-r--r--data/scripts/maps/SlateportCity_ContestHall.inc (renamed from data/scripts/maps/SlateportCity_ContestHall.s)0
-rw-r--r--data/scripts/maps/SlateportCity_ContestLobby.inc (renamed from data/scripts/maps/SlateportCity_ContestLobby.s)2
-rw-r--r--data/scripts/maps/SlateportCity_Harbor.inc (renamed from data/scripts/maps/SlateportCity_Harbor.s)0
-rw-r--r--data/scripts/maps/SlateportCity_House1.inc (renamed from data/scripts/maps/SlateportCity_House1.s)0
-rw-r--r--data/scripts/maps/SlateportCity_House2.inc (renamed from data/scripts/maps/SlateportCity_House2.s)0
-rw-r--r--data/scripts/maps/SlateportCity_Mart.inc (renamed from data/scripts/maps/SlateportCity_Mart.s)0
-rw-r--r--data/scripts/maps/SlateportCity_OceanicMuseum_1F.inc (renamed from data/scripts/maps/SlateportCity_OceanicMuseum_1F.s)0
-rw-r--r--data/scripts/maps/SlateportCity_OceanicMuseum_2F.inc (renamed from data/scripts/maps/SlateportCity_OceanicMuseum_2F.s)0
-rw-r--r--data/scripts/maps/SlateportCity_PokemonCenter_1F.inc (renamed from data/scripts/maps/SlateportCity_PokemonCenter_1F.s)0
-rw-r--r--data/scripts/maps/SlateportCity_PokemonCenter_2F.inc (renamed from data/scripts/maps/SlateportCity_PokemonCenter_2F.s)0
-rw-r--r--data/scripts/maps/SlateportCity_PokemonFanClub.inc (renamed from data/scripts/maps/SlateportCity_PokemonFanClub.s)0
-rw-r--r--data/scripts/maps/SlateportCity_SternsShipyard_1F.inc (renamed from data/scripts/maps/SlateportCity_SternsShipyard_1F.s)0
-rw-r--r--data/scripts/maps/SlateportCity_SternsShipyard_2F.inc (renamed from data/scripts/maps/SlateportCity_SternsShipyard_2F.s)0
-rw-r--r--data/scripts/maps/SootopolisCity.inc (renamed from data/scripts/maps/SootopolisCity.s)0
-rw-r--r--data/scripts/maps/SootopolisCity_Gym_1F.inc (renamed from data/scripts/maps/SootopolisCity_Gym_1F.s)0
-rw-r--r--data/scripts/maps/SootopolisCity_Gym_B1F.inc (renamed from data/scripts/maps/SootopolisCity_Gym_B1F.s)0
-rw-r--r--data/scripts/maps/SootopolisCity_House1.inc (renamed from data/scripts/maps/SootopolisCity_House1.s)0
-rw-r--r--data/scripts/maps/SootopolisCity_House2.inc (renamed from data/scripts/maps/SootopolisCity_House2.s)0
-rw-r--r--data/scripts/maps/SootopolisCity_House3.inc (renamed from data/scripts/maps/SootopolisCity_House3.s)0
-rw-r--r--data/scripts/maps/SootopolisCity_House4.inc (renamed from data/scripts/maps/SootopolisCity_House4.s)0
-rw-r--r--data/scripts/maps/SootopolisCity_House5.inc (renamed from data/scripts/maps/SootopolisCity_House5.s)0
-rw-r--r--data/scripts/maps/SootopolisCity_House6.inc (renamed from data/scripts/maps/SootopolisCity_House6.s)0
-rw-r--r--data/scripts/maps/SootopolisCity_House7.inc (renamed from data/scripts/maps/SootopolisCity_House7.s)0
-rw-r--r--data/scripts/maps/SootopolisCity_House8.inc (renamed from data/scripts/maps/SootopolisCity_House8.s)0
-rw-r--r--data/scripts/maps/SootopolisCity_Mart.inc (renamed from data/scripts/maps/SootopolisCity_Mart.s)0
-rw-r--r--data/scripts/maps/SootopolisCity_PokemonCenter_1F.inc (renamed from data/scripts/maps/SootopolisCity_PokemonCenter_1F.s)0
-rw-r--r--data/scripts/maps/SootopolisCity_PokemonCenter_2F.inc (renamed from data/scripts/maps/SootopolisCity_PokemonCenter_2F.s)0
-rw-r--r--data/scripts/maps/SouthernIsland_Exterior.inc (renamed from data/scripts/maps/SouthernIsland_Exterior.s)0
-rw-r--r--data/scripts/maps/SouthernIsland_Interior.inc (renamed from data/scripts/maps/SouthernIsland_Interior.s)0
-rw-r--r--data/scripts/maps/TradeCenter.inc (renamed from data/scripts/maps/TradeCenter.s)0
-rw-r--r--data/scripts/maps/Underwater1.inc (renamed from data/scripts/maps/Underwater1.s)0
-rw-r--r--data/scripts/maps/Underwater2.inc (renamed from data/scripts/maps/Underwater2.s)0
-rw-r--r--data/scripts/maps/Underwater3.inc (renamed from data/scripts/maps/Underwater3.s)0
-rw-r--r--data/scripts/maps/Underwater4.inc (renamed from data/scripts/maps/Underwater4.s)0
-rw-r--r--data/scripts/maps/Underwater_Route134.inc (renamed from data/scripts/maps/Underwater_Route134.s)0
-rw-r--r--data/scripts/maps/Underwater_SeafloorCavern.inc (renamed from data/scripts/maps/Underwater_SeafloorCavern.s)0
-rw-r--r--data/scripts/maps/Underwater_SealedChamber.inc (renamed from data/scripts/maps/Underwater_SealedChamber.s)0
-rw-r--r--data/scripts/maps/Underwater_SootopolisCity.inc (renamed from data/scripts/maps/Underwater_SootopolisCity.s)0
-rw-r--r--data/scripts/maps/UnknownMap_25_29.inc (renamed from data/scripts/maps/UnknownMap_25_29.s)0
-rw-r--r--data/scripts/maps/UnknownMap_25_30.inc (renamed from data/scripts/maps/UnknownMap_25_30.s)0
-rw-r--r--data/scripts/maps/UnknownMap_25_31.inc (renamed from data/scripts/maps/UnknownMap_25_31.s)0
-rw-r--r--data/scripts/maps/UnknownMap_25_32.inc (renamed from data/scripts/maps/UnknownMap_25_32.s)0
-rw-r--r--data/scripts/maps/UnknownMap_25_33.inc (renamed from data/scripts/maps/UnknownMap_25_33.s)0
-rw-r--r--data/scripts/maps/UnknownMap_25_34.inc (renamed from data/scripts/maps/UnknownMap_25_34.s)0
-rw-r--r--data/scripts/maps/VerdanturfTown.inc (renamed from data/scripts/maps/VerdanturfTown.s)0
-rw-r--r--data/scripts/maps/VerdanturfTown_ContestHall.inc (renamed from data/scripts/maps/VerdanturfTown_ContestHall.s)0
-rw-r--r--data/scripts/maps/VerdanturfTown_ContestLobby.inc (renamed from data/scripts/maps/VerdanturfTown_ContestLobby.s)2
-rw-r--r--data/scripts/maps/VerdanturfTown_FriendshipRatersHouse.inc (renamed from data/scripts/maps/VerdanturfTown_FriendshipRatersHouse.s)0
-rw-r--r--data/scripts/maps/VerdanturfTown_House.inc (renamed from data/scripts/maps/VerdanturfTown_House.s)0
-rw-r--r--data/scripts/maps/VerdanturfTown_Mart.inc (renamed from data/scripts/maps/VerdanturfTown_Mart.s)0
-rw-r--r--data/scripts/maps/VerdanturfTown_PokemonCenter_1F.inc (renamed from data/scripts/maps/VerdanturfTown_PokemonCenter_1F.s)0
-rw-r--r--data/scripts/maps/VerdanturfTown_PokemonCenter_2F.inc (renamed from data/scripts/maps/VerdanturfTown_PokemonCenter_2F.s)0
-rw-r--r--data/scripts/maps/VerdanturfTown_WandasHouse.inc (renamed from data/scripts/maps/VerdanturfTown_WandasHouse.s)0
-rw-r--r--data/scripts/maps/VictoryRoad_1F.inc (renamed from data/scripts/maps/VictoryRoad_1F.s)0
-rw-r--r--data/scripts/maps/VictoryRoad_B1F.inc (renamed from data/scripts/maps/VictoryRoad_B1F.s)0
-rw-r--r--data/scripts/maps/VictoryRoad_B2F.inc (renamed from data/scripts/maps/VictoryRoad_B2F.s)0
-rw-r--r--data/scripts/mystery_event_club.inc (renamed from data/scripts/mystery_event_club.s)0
-rw-r--r--data/scripts/players_house.inc (renamed from data/scripts/players_house.s)0
-rw-r--r--data/scripts/pokeblocks.inc (renamed from data/scripts/pokeblocks.s)0
-rw-r--r--data/scripts/safari_zone.inc (renamed from data/scripts/safari_zone.s)0
-rw-r--r--data/scripts/secret_power_tm.inc (renamed from data/scripts/secret_power_tm.s)0
-rw-r--r--data/scripts/storyteller.inc (renamed from data/scripts/storyteller.s)0
-rw-r--r--data/scripts/trader.inc (renamed from data/scripts/trader.s)0
-rw-r--r--data/scripts/tv.inc (renamed from data/scripts/tv.s)0
-rw-r--r--data/sine_degree_table.inc (renamed from data/sine_degree_table.s)0
-rw-r--r--data/sine_table.inc (renamed from data/sine_table.s)0
-rw-r--r--data/sound_data.s16
-rw-r--r--data/specials.inc (renamed from data/specials.s)14
-rw-r--r--data/species_id_conversion_tables.inc (renamed from data/species_id_conversion_tables.s)0
-rw-r--r--data/spinda_spot_graphics.inc (renamed from data/spinda_spot_graphics.s)0
-rw-r--r--data/text/ability_descriptions.inc (renamed from data/text/ability_descriptions.s)0
-rw-r--r--data/text/ability_names.inc (renamed from data/text/ability_names.s)0
-rw-r--r--data/text/aqua_awakening.inc (renamed from data/text/aqua_awakening.s)0
-rw-r--r--data/text/aqua_chimney.inc (renamed from data/text/aqua_chimney.s)0
-rw-r--r--data/text/aqua_settled.inc (renamed from data/text/aqua_settled.s)0
-rw-r--r--data/text/aqua_summit.inc (renamed from data/text/aqua_summit.s)0
-rw-r--r--data/text/barboach.inc (renamed from data/text/barboach.s)0
-rw-r--r--data/text/bard.inc (renamed from data/text/bard.s)0
-rw-r--r--data/text/battle_strings.inc (renamed from data/text/battle_strings.s)0
-rw-r--r--data/text/berries.inc (renamed from data/text/berries.s)0
-rw-r--r--data/text/berry_descriptions.inc (renamed from data/text/berry_descriptions.s)0
-rw-r--r--data/text/berry_tree.inc (renamed from data/text/berry_tree.s)0
-rw-r--r--data/text/birch_speech.inc (renamed from data/text/birch_speech.s)0
-rw-r--r--data/text/braille.inc (renamed from data/text/braille.s)0
-rw-r--r--data/text/cable_club.inc (renamed from data/text/cable_club.s)0
-rw-r--r--data/text/contest_hall.inc (renamed from data/text/contest_hall.s)0
-rw-r--r--data/text/contest_strings.inc (renamed from data/text/contest_strings.s)0
-rw-r--r--data/text/credits.inc (renamed from data/text/credits.s)0
-rw-r--r--data/text/day_care.inc (renamed from data/text/day_care.s)0
-rw-r--r--data/text/easy_chat/group_name_strings.inc (renamed from data/text/easy_chat/group_name_strings.s)0
-rw-r--r--data/text/easy_chat/group_name_table.inc (renamed from data/text/easy_chat/group_name_table.s)0
-rw-r--r--data/text/easy_chat/group_orders.inc (renamed from data/text/easy_chat/group_orders.s)0
-rw-r--r--data/text/easy_chat/group_sizes.inc (renamed from data/text/easy_chat/group_sizes.s)0
-rw-r--r--data/text/easy_chat/group_words.inc (renamed from data/text/easy_chat/group_words.s)0
-rw-r--r--data/text/easy_chat/words_by_letter.inc (renamed from data/text/easy_chat/words_by_letter.s)0
-rw-r--r--data/text/eon_ticket.inc (renamed from data/text/eon_ticket.s)0
-rw-r--r--data/text/giddy.inc (renamed from data/text/giddy.s)0
-rw-r--r--data/text/gift_ribbon_descriptions.inc (renamed from data/text/gift_ribbon_descriptions.s)0
-rw-r--r--data/text/hipster.inc (renamed from data/text/hipster.s)0
-rw-r--r--data/text/item_descriptions.inc (renamed from data/text/item_descriptions.s)0
-rw-r--r--data/text/landmarks.inc (renamed from data/text/landmarks.s)0
-rw-r--r--data/text/lottery_corner.inc (renamed from data/text/lottery_corner.s)0
-rw-r--r--data/text/magma_awakening.inc (renamed from data/text/magma_awakening.s)0
-rw-r--r--data/text/magma_chimney.inc (renamed from data/text/magma_chimney.s)0
-rw-r--r--data/text/magma_settled.inc (renamed from data/text/magma_settled.s)0
-rw-r--r--data/text/magma_summit.inc (renamed from data/text/magma_summit.s)0
-rw-r--r--data/text/maps/AbandonedShip_CaptainsOffice.inc (renamed from data/text/maps/AbandonedShip_CaptainsOffice.s)0
-rw-r--r--data/text/maps/AbandonedShip_Corridors_1F.inc (renamed from data/text/maps/AbandonedShip_Corridors_1F.s)0
-rw-r--r--data/text/maps/AbandonedShip_Corridors_B1F.inc (renamed from data/text/maps/AbandonedShip_Corridors_B1F.s)0
-rw-r--r--data/text/maps/AbandonedShip_HiddenFloorCorridors.inc (renamed from data/text/maps/AbandonedShip_HiddenFloorCorridors.s)0
-rw-r--r--data/text/maps/AbandonedShip_HiddenFloorRooms.inc (renamed from data/text/maps/AbandonedShip_HiddenFloorRooms.s)0
-rw-r--r--data/text/maps/AbandonedShip_Rooms2_1F.inc (renamed from data/text/maps/AbandonedShip_Rooms2_1F.s)0
-rw-r--r--data/text/maps/AbandonedShip_Rooms2_B1F.inc (renamed from data/text/maps/AbandonedShip_Rooms2_B1F.s)0
-rw-r--r--data/text/maps/AbandonedShip_Rooms_1F.inc (renamed from data/text/maps/AbandonedShip_Rooms_1F.s)0
-rw-r--r--data/text/maps/AbandonedShip_Rooms_B1F.inc (renamed from data/text/maps/AbandonedShip_Rooms_B1F.s)0
-rw-r--r--data/text/maps/AquaHideout_1F.inc (renamed from data/text/maps/AquaHideout_1F.s)0
-rw-r--r--data/text/maps/AquaHideout_B1F.inc (renamed from data/text/maps/AquaHideout_B1F.s)0
-rw-r--r--data/text/maps/AquaHideout_B2F.inc (renamed from data/text/maps/AquaHideout_B2F.s)0
-rw-r--r--data/text/maps/BattleTower_BattleRoom.inc (renamed from data/text/maps/BattleTower_BattleRoom.s)0
-rw-r--r--data/text/maps/BattleTower_Lobby.inc (renamed from data/text/maps/BattleTower_Lobby.s)0
-rw-r--r--data/text/maps/BattleTower_Outside.inc (renamed from data/text/maps/BattleTower_Outside.s)0
-rw-r--r--data/text/maps/DewfordTown.inc (renamed from data/text/maps/DewfordTown.s)0
-rw-r--r--data/text/maps/DewfordTown_Gym.inc (renamed from data/text/maps/DewfordTown_Gym.s)0
-rw-r--r--data/text/maps/DewfordTown_Hall.inc (renamed from data/text/maps/DewfordTown_Hall.s)0
-rw-r--r--data/text/maps/DewfordTown_House1.inc (renamed from data/text/maps/DewfordTown_House1.s)0
-rw-r--r--data/text/maps/DewfordTown_House2.inc (renamed from data/text/maps/DewfordTown_House2.s)0
-rw-r--r--data/text/maps/DewfordTown_PokemonCenter_1F.inc (renamed from data/text/maps/DewfordTown_PokemonCenter_1F.s)0
-rw-r--r--data/text/maps/EverGrandeCity.inc (renamed from data/text/maps/EverGrandeCity.s)0
-rw-r--r--data/text/maps/EverGrandeCity_ChampionsRoom.inc (renamed from data/text/maps/EverGrandeCity_ChampionsRoom.s)0
-rw-r--r--data/text/maps/EverGrandeCity_DrakesRoom.inc (renamed from data/text/maps/EverGrandeCity_DrakesRoom.s)0
-rw-r--r--data/text/maps/EverGrandeCity_GlaciasRoom.inc (renamed from data/text/maps/EverGrandeCity_GlaciasRoom.s)0
-rw-r--r--data/text/maps/EverGrandeCity_HallOfFame.inc (renamed from data/text/maps/EverGrandeCity_HallOfFame.s)0
-rw-r--r--data/text/maps/EverGrandeCity_PhoebesRoom.inc (renamed from data/text/maps/EverGrandeCity_PhoebesRoom.s)0
-rw-r--r--data/text/maps/EverGrandeCity_PokemonCenter_1F.inc (renamed from data/text/maps/EverGrandeCity_PokemonCenter_1F.s)0
-rw-r--r--data/text/maps/EverGrandeCity_PokemonLeague.inc (renamed from data/text/maps/EverGrandeCity_PokemonLeague.s)0
-rw-r--r--data/text/maps/EverGrandeCity_SidneysRoom.inc (renamed from data/text/maps/EverGrandeCity_SidneysRoom.s)0
-rw-r--r--data/text/maps/FallarborTown.inc (renamed from data/text/maps/FallarborTown.s)0
-rw-r--r--data/text/maps/FallarborTown_ContestHall.inc (renamed from data/text/maps/FallarborTown_ContestHall.s)0
-rw-r--r--data/text/maps/FallarborTown_ContestLobby.inc (renamed from data/text/maps/FallarborTown_ContestLobby.s)0
-rw-r--r--data/text/maps/FallarborTown_House1.inc (renamed from data/text/maps/FallarborTown_House1.s)0
-rw-r--r--data/text/maps/FallarborTown_House2.inc (renamed from data/text/maps/FallarborTown_House2.s)0
-rw-r--r--data/text/maps/FallarborTown_Mart.inc (renamed from data/text/maps/FallarborTown_Mart.s)0
-rw-r--r--data/text/maps/FallarborTown_PokemonCenter_1F.inc (renamed from data/text/maps/FallarborTown_PokemonCenter_1F.s)0
-rw-r--r--data/text/maps/FortreeCity.inc (renamed from data/text/maps/FortreeCity.s)0
-rw-r--r--data/text/maps/FortreeCity_DecorationShop.inc (renamed from data/text/maps/FortreeCity_DecorationShop.s)0
-rw-r--r--data/text/maps/FortreeCity_Gym.inc (renamed from data/text/maps/FortreeCity_Gym.s)0
-rw-r--r--data/text/maps/FortreeCity_House1.inc (renamed from data/text/maps/FortreeCity_House1.s)0
-rw-r--r--data/text/maps/FortreeCity_House2.inc (renamed from data/text/maps/FortreeCity_House2.s)0
-rw-r--r--data/text/maps/FortreeCity_House3.inc (renamed from data/text/maps/FortreeCity_House3.s)0
-rw-r--r--data/text/maps/FortreeCity_House4.inc (renamed from data/text/maps/FortreeCity_House4.s)0
-rw-r--r--data/text/maps/FortreeCity_House5.inc (renamed from data/text/maps/FortreeCity_House5.s)0
-rw-r--r--data/text/maps/FortreeCity_Mart.inc (renamed from data/text/maps/FortreeCity_Mart.s)0
-rw-r--r--data/text/maps/FortreeCity_PokemonCenter_1F.inc (renamed from data/text/maps/FortreeCity_PokemonCenter_1F.s)0
-rw-r--r--data/text/maps/GraniteCave_1F.inc (renamed from data/text/maps/GraniteCave_1F.s)0
-rw-r--r--data/text/maps/GraniteCave_StevensRoom.inc (renamed from data/text/maps/GraniteCave_StevensRoom.s)0
-rw-r--r--data/text/maps/InsideOfTruck.inc (renamed from data/text/maps/InsideOfTruck.s)0
-rw-r--r--data/text/maps/JaggedPass.inc (renamed from data/text/maps/JaggedPass.s)0
-rw-r--r--data/text/maps/LavaridgeTown.inc (renamed from data/text/maps/LavaridgeTown.s)0
-rw-r--r--data/text/maps/LavaridgeTown_Gym_1F.inc (renamed from data/text/maps/LavaridgeTown_Gym_1F.s)0
-rw-r--r--data/text/maps/LavaridgeTown_HerbShop.inc (renamed from data/text/maps/LavaridgeTown_HerbShop.s)0
-rw-r--r--data/text/maps/LavaridgeTown_House.inc (renamed from data/text/maps/LavaridgeTown_House.s)0
-rw-r--r--data/text/maps/LavaridgeTown_Mart.inc (renamed from data/text/maps/LavaridgeTown_Mart.s)0
-rw-r--r--data/text/maps/LavaridgeTown_PokemonCenter_1F.inc (renamed from data/text/maps/LavaridgeTown_PokemonCenter_1F.s)0
-rw-r--r--data/text/maps/LilycoveCity.inc (renamed from data/text/maps/LilycoveCity.s)0
-rw-r--r--data/text/maps/LilycoveCity_ContestHall.inc (renamed from data/text/maps/LilycoveCity_ContestHall.s)0
-rw-r--r--data/text/maps/LilycoveCity_ContestLobby.inc (renamed from data/text/maps/LilycoveCity_ContestLobby.s)0
-rw-r--r--data/text/maps/LilycoveCity_CoveLilyMotel_1F.inc (renamed from data/text/maps/LilycoveCity_CoveLilyMotel_1F.s)0
-rw-r--r--data/text/maps/LilycoveCity_CoveLilyMotel_2F.inc (renamed from data/text/maps/LilycoveCity_CoveLilyMotel_2F.s)0
-rw-r--r--data/text/maps/LilycoveCity_DepartmentStoreRooftop.inc (renamed from data/text/maps/LilycoveCity_DepartmentStoreRooftop.s)0
-rw-r--r--data/text/maps/LilycoveCity_DepartmentStore_1F.inc (renamed from data/text/maps/LilycoveCity_DepartmentStore_1F.s)0
-rw-r--r--data/text/maps/LilycoveCity_DepartmentStore_2F.inc (renamed from data/text/maps/LilycoveCity_DepartmentStore_2F.s)0
-rw-r--r--data/text/maps/LilycoveCity_DepartmentStore_3F.inc (renamed from data/text/maps/LilycoveCity_DepartmentStore_3F.s)0
-rw-r--r--data/text/maps/LilycoveCity_DepartmentStore_4F.inc (renamed from data/text/maps/LilycoveCity_DepartmentStore_4F.s)0
-rw-r--r--data/text/maps/LilycoveCity_DepartmentStore_5F.inc (renamed from data/text/maps/LilycoveCity_DepartmentStore_5F.s)0
-rw-r--r--data/text/maps/LilycoveCity_Harbor.inc (renamed from data/text/maps/LilycoveCity_Harbor.s)0
-rw-r--r--data/text/maps/LilycoveCity_House1.inc (renamed from data/text/maps/LilycoveCity_House1.s)0
-rw-r--r--data/text/maps/LilycoveCity_House2.inc (renamed from data/text/maps/LilycoveCity_House2.s)0
-rw-r--r--data/text/maps/LilycoveCity_House3.inc (renamed from data/text/maps/LilycoveCity_House3.s)0
-rw-r--r--data/text/maps/LilycoveCity_House4.inc (renamed from data/text/maps/LilycoveCity_House4.s)0
-rw-r--r--data/text/maps/LilycoveCity_LilycoveMuseum_1F.inc (renamed from data/text/maps/LilycoveCity_LilycoveMuseum_1F.s)0
-rw-r--r--data/text/maps/LilycoveCity_LilycoveMuseum_2F.inc (renamed from data/text/maps/LilycoveCity_LilycoveMuseum_2F.s)0
-rw-r--r--data/text/maps/LilycoveCity_MoveDeletersHouse.inc (renamed from data/text/maps/LilycoveCity_MoveDeletersHouse.s)0
-rw-r--r--data/text/maps/LilycoveCity_PokemonCenter_1F.inc (renamed from data/text/maps/LilycoveCity_PokemonCenter_1F.s)0
-rw-r--r--data/text/maps/LilycoveCity_PokemonTrainerFanClub.inc (renamed from data/text/maps/LilycoveCity_PokemonTrainerFanClub.s)0
-rw-r--r--data/text/maps/LittlerootTown.inc (renamed from data/text/maps/LittlerootTown.s)0
-rw-r--r--data/text/maps/LittlerootTown_BrendansHouse_1F.inc (renamed from data/text/maps/LittlerootTown_BrendansHouse_1F.s)0
-rw-r--r--data/text/maps/LittlerootTown_BrendansHouse_2F.inc (renamed from data/text/maps/LittlerootTown_BrendansHouse_2F.s)0
-rw-r--r--data/text/maps/LittlerootTown_MaysHouse_1F.inc (renamed from data/text/maps/LittlerootTown_MaysHouse_1F.s)0
-rw-r--r--data/text/maps/LittlerootTown_MaysHouse_2F.inc (renamed from data/text/maps/LittlerootTown_MaysHouse_2F.s)0
-rw-r--r--data/text/maps/LittlerootTown_ProfessorBirchsLab.inc (renamed from data/text/maps/LittlerootTown_ProfessorBirchsLab.s)0
-rw-r--r--data/text/maps/MauvilleCity.inc (renamed from data/text/maps/MauvilleCity.s)0
-rw-r--r--data/text/maps/MauvilleCity_BikeShop.inc (renamed from data/text/maps/MauvilleCity_BikeShop.s)0
-rw-r--r--data/text/maps/MauvilleCity_GameCorner.inc (renamed from data/text/maps/MauvilleCity_GameCorner.s)0
-rw-r--r--data/text/maps/MauvilleCity_Gym.inc (renamed from data/text/maps/MauvilleCity_Gym.s)0
-rw-r--r--data/text/maps/MauvilleCity_House1.inc (renamed from data/text/maps/MauvilleCity_House1.s)0
-rw-r--r--data/text/maps/MauvilleCity_House2.inc (renamed from data/text/maps/MauvilleCity_House2.s)0
-rw-r--r--data/text/maps/MauvilleCity_Mart.inc (renamed from data/text/maps/MauvilleCity_Mart.s)0
-rw-r--r--data/text/maps/MauvilleCity_PokemonCenter_1F.inc (renamed from data/text/maps/MauvilleCity_PokemonCenter_1F.s)0
-rw-r--r--data/text/maps/MauvilleCity_PokemonCenter_2F.inc (renamed from data/text/maps/MauvilleCity_PokemonCenter_2F.s)0
-rw-r--r--data/text/maps/MeteorFalls_1F_1R.inc (renamed from data/text/maps/MeteorFalls_1F_1R.s)0
-rw-r--r--data/text/maps/MeteorFalls_1F_2R.inc (renamed from data/text/maps/MeteorFalls_1F_2R.s)0
-rw-r--r--data/text/maps/MossdeepCity.inc (renamed from data/text/maps/MossdeepCity.s)0
-rw-r--r--data/text/maps/MossdeepCity_GameCorner_1F.inc (renamed from data/text/maps/MossdeepCity_GameCorner_1F.s)0
-rw-r--r--data/text/maps/MossdeepCity_GameCorner_B1F.inc (renamed from data/text/maps/MossdeepCity_GameCorner_B1F.s)0
-rw-r--r--data/text/maps/MossdeepCity_Gym.inc (renamed from data/text/maps/MossdeepCity_Gym.s)0
-rw-r--r--data/text/maps/MossdeepCity_House1.inc (renamed from data/text/maps/MossdeepCity_House1.s)0
-rw-r--r--data/text/maps/MossdeepCity_House2.inc (renamed from data/text/maps/MossdeepCity_House2.s)0
-rw-r--r--data/text/maps/MossdeepCity_House3.inc (renamed from data/text/maps/MossdeepCity_House3.s)0
-rw-r--r--data/text/maps/MossdeepCity_House4.inc (renamed from data/text/maps/MossdeepCity_House4.s)0
-rw-r--r--data/text/maps/MossdeepCity_Mart.inc (renamed from data/text/maps/MossdeepCity_Mart.s)0
-rw-r--r--data/text/maps/MossdeepCity_PokemonCenter_1F.inc (renamed from data/text/maps/MossdeepCity_PokemonCenter_1F.s)0
-rw-r--r--data/text/maps/MossdeepCity_PokemonCenter_2F.inc (renamed from data/text/maps/MossdeepCity_PokemonCenter_2F.s)0
-rw-r--r--data/text/maps/MossdeepCity_SpaceCenter_1F.inc (renamed from data/text/maps/MossdeepCity_SpaceCenter_1F.s)0
-rw-r--r--data/text/maps/MossdeepCity_SpaceCenter_2F.inc (renamed from data/text/maps/MossdeepCity_SpaceCenter_2F.s)0
-rw-r--r--data/text/maps/MossdeepCity_StevensHouse.inc (renamed from data/text/maps/MossdeepCity_StevensHouse.s)0
-rw-r--r--data/text/maps/MtChimney.inc (renamed from data/text/maps/MtChimney.s)0
-rw-r--r--data/text/maps/MtChimney_CableCarStation.inc (renamed from data/text/maps/MtChimney_CableCarStation.s)0
-rw-r--r--data/text/maps/MtPyre_1F.inc (renamed from data/text/maps/MtPyre_1F.s)0
-rw-r--r--data/text/maps/MtPyre_2F.inc (renamed from data/text/maps/MtPyre_2F.s)0
-rw-r--r--data/text/maps/MtPyre_3F.inc (renamed from data/text/maps/MtPyre_3F.s)0
-rw-r--r--data/text/maps/MtPyre_4F.inc (renamed from data/text/maps/MtPyre_4F.s)0
-rw-r--r--data/text/maps/MtPyre_5F.inc (renamed from data/text/maps/MtPyre_5F.s)0
-rw-r--r--data/text/maps/MtPyre_6F.inc (renamed from data/text/maps/MtPyre_6F.s)0
-rw-r--r--data/text/maps/NewMauville_Entrance.inc (renamed from data/text/maps/NewMauville_Entrance.s)0
-rw-r--r--data/text/maps/NewMauville_Inside.inc (renamed from data/text/maps/NewMauville_Inside.s)0
-rw-r--r--data/text/maps/OldaleTown.inc (renamed from data/text/maps/OldaleTown.s)0
-rw-r--r--data/text/maps/OldaleTown_House1.inc (renamed from data/text/maps/OldaleTown_House1.s)0
-rw-r--r--data/text/maps/OldaleTown_House2.inc (renamed from data/text/maps/OldaleTown_House2.s)0
-rw-r--r--data/text/maps/OldaleTown_Mart.inc (renamed from data/text/maps/OldaleTown_Mart.s)0
-rw-r--r--data/text/maps/OldaleTown_PokemonCenter_1F.inc (renamed from data/text/maps/OldaleTown_PokemonCenter_1F.s)0
-rw-r--r--data/text/maps/PacifidlogTown.inc (renamed from data/text/maps/PacifidlogTown.s)0
-rw-r--r--data/text/maps/PacifidlogTown_House1.inc (renamed from data/text/maps/PacifidlogTown_House1.s)0
-rw-r--r--data/text/maps/PacifidlogTown_House2.inc (renamed from data/text/maps/PacifidlogTown_House2.s)0
-rw-r--r--data/text/maps/PacifidlogTown_House3.inc (renamed from data/text/maps/PacifidlogTown_House3.s)0
-rw-r--r--data/text/maps/PacifidlogTown_House4.inc (renamed from data/text/maps/PacifidlogTown_House4.s)0
-rw-r--r--data/text/maps/PacifidlogTown_House5.inc (renamed from data/text/maps/PacifidlogTown_House5.s)0
-rw-r--r--data/text/maps/PacifidlogTown_PokemonCenter_1F.inc (renamed from data/text/maps/PacifidlogTown_PokemonCenter_1F.s)0
-rw-r--r--data/text/maps/PetalburgCity.inc (renamed from data/text/maps/PetalburgCity.s)0
-rw-r--r--data/text/maps/PetalburgCity_Gym.inc (renamed from data/text/maps/PetalburgCity_Gym.s)0
-rw-r--r--data/text/maps/PetalburgCity_House1.inc (renamed from data/text/maps/PetalburgCity_House1.s)0
-rw-r--r--data/text/maps/PetalburgCity_House2.inc (renamed from data/text/maps/PetalburgCity_House2.s)0
-rw-r--r--data/text/maps/PetalburgCity_Mart.inc (renamed from data/text/maps/PetalburgCity_Mart.s)0
-rw-r--r--data/text/maps/PetalburgCity_PokemonCenter_1F.inc (renamed from data/text/maps/PetalburgCity_PokemonCenter_1F.s)0
-rw-r--r--data/text/maps/PetalburgCity_WallysHouse.inc (renamed from data/text/maps/PetalburgCity_WallysHouse.s)0
-rw-r--r--data/text/maps/PetalburgWoods.inc (renamed from data/text/maps/PetalburgWoods.s)0
-rw-r--r--data/text/maps/Route101.inc (renamed from data/text/maps/Route101.s)0
-rw-r--r--data/text/maps/Route102.inc (renamed from data/text/maps/Route102.s)0
-rw-r--r--data/text/maps/Route103.inc (renamed from data/text/maps/Route103.s)0
-rw-r--r--data/text/maps/Route104.inc (renamed from data/text/maps/Route104.s)0
-rw-r--r--data/text/maps/Route104_MrBrineysHouse.inc (renamed from data/text/maps/Route104_MrBrineysHouse.s)0
-rw-r--r--data/text/maps/Route104_Prototype.inc (renamed from data/text/maps/Route104_Prototype.s)0
-rw-r--r--data/text/maps/Route104_PrototypePrettyPetalFlowerShop.inc (renamed from data/text/maps/Route104_PrototypePrettyPetalFlowerShop.s)0
-rw-r--r--data/text/maps/Route105.inc (renamed from data/text/maps/Route105.s)0
-rw-r--r--data/text/maps/Route106.inc (renamed from data/text/maps/Route106.s)0
-rw-r--r--data/text/maps/Route107.inc (renamed from data/text/maps/Route107.s)0
-rw-r--r--data/text/maps/Route108.inc (renamed from data/text/maps/Route108.s)0
-rw-r--r--data/text/maps/Route109.inc (renamed from data/text/maps/Route109.s)0
-rw-r--r--data/text/maps/Route109_SeashoreHouse.inc (renamed from data/text/maps/Route109_SeashoreHouse.s)0
-rw-r--r--data/text/maps/Route110.inc (renamed from data/text/maps/Route110.s)0
-rw-r--r--data/text/maps/Route110_SeasideCyclingRoadNorthEntrance.inc (renamed from data/text/maps/Route110_SeasideCyclingRoadNorthEntrance.s)0
-rw-r--r--data/text/maps/Route110_SeasideCyclingRoadSouthEntrance.inc (renamed from data/text/maps/Route110_SeasideCyclingRoadSouthEntrance.s)0
-rw-r--r--data/text/maps/Route110_TrickHouseEnd.inc (renamed from data/text/maps/Route110_TrickHouseEnd.s)0
-rw-r--r--data/text/maps/Route110_TrickHouseEntrance.inc (renamed from data/text/maps/Route110_TrickHouseEntrance.s)0
-rw-r--r--data/text/maps/Route110_TrickHousePuzzle1.inc (renamed from data/text/maps/Route110_TrickHousePuzzle1.s)0
-rw-r--r--data/text/maps/Route110_TrickHousePuzzle2.inc (renamed from data/text/maps/Route110_TrickHousePuzzle2.s)0
-rw-r--r--data/text/maps/Route110_TrickHousePuzzle3.inc (renamed from data/text/maps/Route110_TrickHousePuzzle3.s)0
-rw-r--r--data/text/maps/Route110_TrickHousePuzzle4.inc (renamed from data/text/maps/Route110_TrickHousePuzzle4.s)0
-rw-r--r--data/text/maps/Route110_TrickHousePuzzle5.inc (renamed from data/text/maps/Route110_TrickHousePuzzle5.s)0
-rw-r--r--data/text/maps/Route110_TrickHousePuzzle6.inc (renamed from data/text/maps/Route110_TrickHousePuzzle6.s)0
-rw-r--r--data/text/maps/Route110_TrickHousePuzzle7.inc (renamed from data/text/maps/Route110_TrickHousePuzzle7.s)0
-rw-r--r--data/text/maps/Route110_TrickHousePuzzle8.inc (renamed from data/text/maps/Route110_TrickHousePuzzle8.s)0
-rw-r--r--data/text/maps/Route111.inc (renamed from data/text/maps/Route111.s)0
-rw-r--r--data/text/maps/Route111_OldLadysRestStop.inc (renamed from data/text/maps/Route111_OldLadysRestStop.s)0
-rw-r--r--data/text/maps/Route111_WinstrateFamilysHouse.inc (renamed from data/text/maps/Route111_WinstrateFamilysHouse.s)0
-rw-r--r--data/text/maps/Route112.inc (renamed from data/text/maps/Route112.s)0
-rw-r--r--data/text/maps/Route112_CableCarStation.inc (renamed from data/text/maps/Route112_CableCarStation.s)0
-rw-r--r--data/text/maps/Route113.inc (renamed from data/text/maps/Route113.s)0
-rw-r--r--data/text/maps/Route113_GlassWorkshop.inc (renamed from data/text/maps/Route113_GlassWorkshop.s)0
-rw-r--r--data/text/maps/Route114.inc (renamed from data/text/maps/Route114.s)0
-rw-r--r--data/text/maps/Route114_FossilManiacsHouse.inc (renamed from data/text/maps/Route114_FossilManiacsHouse.s)0
-rw-r--r--data/text/maps/Route114_FossilManiacsTunnel.inc (renamed from data/text/maps/Route114_FossilManiacsTunnel.s)0
-rw-r--r--data/text/maps/Route114_LanettesHouse.inc (renamed from data/text/maps/Route114_LanettesHouse.s)0
-rw-r--r--data/text/maps/Route115.inc (renamed from data/text/maps/Route115.s)0
-rw-r--r--data/text/maps/Route116.inc (renamed from data/text/maps/Route116.s)0
-rw-r--r--data/text/maps/Route116_TunnelersRestHouse.inc (renamed from data/text/maps/Route116_TunnelersRestHouse.s)0
-rw-r--r--data/text/maps/Route117.inc (renamed from data/text/maps/Route117.s)0
-rw-r--r--data/text/maps/Route118.inc (renamed from data/text/maps/Route118.s)0
-rw-r--r--data/text/maps/Route119.inc (renamed from data/text/maps/Route119.s)0
-rw-r--r--data/text/maps/Route119_House.inc (renamed from data/text/maps/Route119_House.s)0
-rw-r--r--data/text/maps/Route119_WeatherInstitute_1F.inc (renamed from data/text/maps/Route119_WeatherInstitute_1F.s)0
-rw-r--r--data/text/maps/Route119_WeatherInstitute_2F.inc (renamed from data/text/maps/Route119_WeatherInstitute_2F.s)0
-rw-r--r--data/text/maps/Route120.inc (renamed from data/text/maps/Route120.s)0
-rw-r--r--data/text/maps/Route121.inc (renamed from data/text/maps/Route121.s)0
-rw-r--r--data/text/maps/Route123.inc (renamed from data/text/maps/Route123.s)0
-rw-r--r--data/text/maps/Route123_BerryMastersHouse.inc (renamed from data/text/maps/Route123_BerryMastersHouse.s)0
-rw-r--r--data/text/maps/Route124.inc (renamed from data/text/maps/Route124.s)0
-rw-r--r--data/text/maps/Route124_DivingTreasureHuntersHouse.inc (renamed from data/text/maps/Route124_DivingTreasureHuntersHouse.s)0
-rw-r--r--data/text/maps/Route128.inc (renamed from data/text/maps/Route128.s)0
-rw-r--r--data/text/maps/RustboroCity.inc (renamed from data/text/maps/RustboroCity.s)0
-rw-r--r--data/text/maps/RustboroCity_CuttersHouse.inc (renamed from data/text/maps/RustboroCity_CuttersHouse.s)0
-rw-r--r--data/text/maps/RustboroCity_DevonCorp_1F.inc (renamed from data/text/maps/RustboroCity_DevonCorp_1F.s)0
-rw-r--r--data/text/maps/RustboroCity_DevonCorp_2F.inc (renamed from data/text/maps/RustboroCity_DevonCorp_2F.s)0
-rw-r--r--data/text/maps/RustboroCity_DevonCorp_3F.inc (renamed from data/text/maps/RustboroCity_DevonCorp_3F.s)0
-rw-r--r--data/text/maps/RustboroCity_Flat1_1F.inc (renamed from data/text/maps/RustboroCity_Flat1_1F.s)0
-rw-r--r--data/text/maps/RustboroCity_Flat1_2F.inc (renamed from data/text/maps/RustboroCity_Flat1_2F.s)0
-rw-r--r--data/text/maps/RustboroCity_Flat2_1F.inc (renamed from data/text/maps/RustboroCity_Flat2_1F.s)0
-rw-r--r--data/text/maps/RustboroCity_Flat2_2F.inc (renamed from data/text/maps/RustboroCity_Flat2_2F.s)0
-rw-r--r--data/text/maps/RustboroCity_Flat2_3F.inc (renamed from data/text/maps/RustboroCity_Flat2_3F.s)0
-rw-r--r--data/text/maps/RustboroCity_Gym.inc (renamed from data/text/maps/RustboroCity_Gym.s)0
-rw-r--r--data/text/maps/RustboroCity_House1.inc (renamed from data/text/maps/RustboroCity_House1.s)0
-rw-r--r--data/text/maps/RustboroCity_House2.inc (renamed from data/text/maps/RustboroCity_House2.s)0
-rw-r--r--data/text/maps/RustboroCity_House3.inc (renamed from data/text/maps/RustboroCity_House3.s)0
-rw-r--r--data/text/maps/RustboroCity_Mart.inc (renamed from data/text/maps/RustboroCity_Mart.s)0
-rw-r--r--data/text/maps/RustboroCity_PokemonCenter_1F.inc (renamed from data/text/maps/RustboroCity_PokemonCenter_1F.s)0
-rw-r--r--data/text/maps/RustboroCity_PokemonSchool.inc (renamed from data/text/maps/RustboroCity_PokemonSchool.s)0
-rw-r--r--data/text/maps/RusturfTunnel.inc (renamed from data/text/maps/RusturfTunnel.s)0
-rw-r--r--data/text/maps/SSTidalCorridor.inc (renamed from data/text/maps/SSTidalCorridor.s)0
-rw-r--r--data/text/maps/SSTidalLowerDeck.inc (renamed from data/text/maps/SSTidalLowerDeck.s)0
-rw-r--r--data/text/maps/SSTidalRooms.inc (renamed from data/text/maps/SSTidalRooms.s)0
-rw-r--r--data/text/maps/SeafloorCavern_Room1.inc (renamed from data/text/maps/SeafloorCavern_Room1.s)0
-rw-r--r--data/text/maps/SeafloorCavern_Room3.inc (renamed from data/text/maps/SeafloorCavern_Room3.s)0
-rw-r--r--data/text/maps/SeafloorCavern_Room4.inc (renamed from data/text/maps/SeafloorCavern_Room4.s)0
-rw-r--r--data/text/maps/SecretBase_RedCave1.inc (renamed from data/text/maps/SecretBase_RedCave1.s)0
-rw-r--r--data/text/maps/ShoalCave_LowTideEntranceRoom.inc (renamed from data/text/maps/ShoalCave_LowTideEntranceRoom.s)0
-rw-r--r--data/text/maps/ShoalCave_LowTideInnerRoom.inc (renamed from data/text/maps/ShoalCave_LowTideInnerRoom.s)0
-rw-r--r--data/text/maps/ShoalCave_LowTideLowerRoom.inc (renamed from data/text/maps/ShoalCave_LowTideLowerRoom.s)0
-rw-r--r--data/text/maps/ShoalCave_LowTideStairsRoom.inc (renamed from data/text/maps/ShoalCave_LowTideStairsRoom.s)0
-rw-r--r--data/text/maps/SlateportCity.inc (renamed from data/text/maps/SlateportCity.s)0
-rw-r--r--data/text/maps/SlateportCity_ContestHall.inc (renamed from data/text/maps/SlateportCity_ContestHall.s)0
-rw-r--r--data/text/maps/SlateportCity_ContestLobby.inc (renamed from data/text/maps/SlateportCity_ContestLobby.s)0
-rw-r--r--data/text/maps/SlateportCity_Harbor.inc (renamed from data/text/maps/SlateportCity_Harbor.s)0
-rw-r--r--data/text/maps/SlateportCity_House1.inc (renamed from data/text/maps/SlateportCity_House1.s)0
-rw-r--r--data/text/maps/SlateportCity_House2.inc (renamed from data/text/maps/SlateportCity_House2.s)0
-rw-r--r--data/text/maps/SlateportCity_Mart.inc (renamed from data/text/maps/SlateportCity_Mart.s)0
-rw-r--r--data/text/maps/SlateportCity_OceanicMuseum_1F.inc (renamed from data/text/maps/SlateportCity_OceanicMuseum_1F.s)0
-rw-r--r--data/text/maps/SlateportCity_OceanicMuseum_2F.inc (renamed from data/text/maps/SlateportCity_OceanicMuseum_2F.s)0
-rw-r--r--data/text/maps/SlateportCity_PokemonCenter_1F.inc (renamed from data/text/maps/SlateportCity_PokemonCenter_1F.s)0
-rw-r--r--data/text/maps/SlateportCity_PokemonFanClub.inc (renamed from data/text/maps/SlateportCity_PokemonFanClub.s)0
-rw-r--r--data/text/maps/SlateportCity_SternsShipyard_1F.inc (renamed from data/text/maps/SlateportCity_SternsShipyard_1F.s)0
-rw-r--r--data/text/maps/SlateportCity_SternsShipyard_2F.inc (renamed from data/text/maps/SlateportCity_SternsShipyard_2F.s)0
-rw-r--r--data/text/maps/SootopolisCity.inc (renamed from data/text/maps/SootopolisCity.s)0
-rw-r--r--data/text/maps/SootopolisCity_Gym_1F.inc (renamed from data/text/maps/SootopolisCity_Gym_1F.s)0
-rw-r--r--data/text/maps/SootopolisCity_Gym_B1F.inc (renamed from data/text/maps/SootopolisCity_Gym_B1F.s)0
-rw-r--r--data/text/maps/SootopolisCity_House1.inc (renamed from data/text/maps/SootopolisCity_House1.s)0
-rw-r--r--data/text/maps/SootopolisCity_House2.inc (renamed from data/text/maps/SootopolisCity_House2.s)0
-rw-r--r--data/text/maps/SootopolisCity_House3.inc (renamed from data/text/maps/SootopolisCity_House3.s)0
-rw-r--r--data/text/maps/SootopolisCity_House4.inc (renamed from data/text/maps/SootopolisCity_House4.s)0
-rw-r--r--data/text/maps/SootopolisCity_House5.inc (renamed from data/text/maps/SootopolisCity_House5.s)0
-rw-r--r--data/text/maps/SootopolisCity_House6.inc (renamed from data/text/maps/SootopolisCity_House6.s)0
-rw-r--r--data/text/maps/SootopolisCity_House7.inc (renamed from data/text/maps/SootopolisCity_House7.s)0
-rw-r--r--data/text/maps/SootopolisCity_House8.inc (renamed from data/text/maps/SootopolisCity_House8.s)0
-rw-r--r--data/text/maps/SootopolisCity_Mart.inc (renamed from data/text/maps/SootopolisCity_Mart.s)0
-rw-r--r--data/text/maps/SootopolisCity_PokemonCenter_1F.inc (renamed from data/text/maps/SootopolisCity_PokemonCenter_1F.s)0
-rw-r--r--data/text/maps/SouthernIsland_Exterior.inc (renamed from data/text/maps/SouthernIsland_Exterior.s)0
-rw-r--r--data/text/maps/SouthernIsland_Interior.inc (renamed from data/text/maps/SouthernIsland_Interior.s)0
-rw-r--r--data/text/maps/Underwater_SeafloorCavern.inc (renamed from data/text/maps/Underwater_SeafloorCavern.s)0
-rw-r--r--data/text/maps/VerdanturfTown.inc (renamed from data/text/maps/VerdanturfTown.s)0
-rw-r--r--data/text/maps/VerdanturfTown_ContestHall.inc (renamed from data/text/maps/VerdanturfTown_ContestHall.s)0
-rw-r--r--data/text/maps/VerdanturfTown_ContestLobby.inc (renamed from data/text/maps/VerdanturfTown_ContestLobby.s)0
-rw-r--r--data/text/maps/VerdanturfTown_FriendshipRatersHouse.inc (renamed from data/text/maps/VerdanturfTown_FriendshipRatersHouse.s)0
-rw-r--r--data/text/maps/VerdanturfTown_House.inc (renamed from data/text/maps/VerdanturfTown_House.s)0
-rw-r--r--data/text/maps/VerdanturfTown_Mart.inc (renamed from data/text/maps/VerdanturfTown_Mart.s)0
-rw-r--r--data/text/maps/VerdanturfTown_PokemonCenter_1F.inc (renamed from data/text/maps/VerdanturfTown_PokemonCenter_1F.s)0
-rw-r--r--data/text/maps/VerdanturfTown_WandasHouse.inc (renamed from data/text/maps/VerdanturfTown_WandasHouse.s)0
-rw-r--r--data/text/maps/VictoryRoad_1F.inc (renamed from data/text/maps/VictoryRoad_1F.s)0
-rw-r--r--data/text/maps/VictoryRoad_B1F.inc (renamed from data/text/maps/VictoryRoad_B1F.s)0
-rw-r--r--data/text/maps/VictoryRoad_B2F.inc (renamed from data/text/maps/VictoryRoad_B2F.s)0
-rw-r--r--data/text/move_descriptions.inc (renamed from data/text/move_descriptions.s)0
-rw-r--r--data/text/move_names.inc (renamed from data/text/move_names.s)0
-rw-r--r--data/text/mystery_event_club.inc (renamed from data/text/mystery_event_club.s)0
-rw-r--r--data/text/nature_names.inc (renamed from data/text/nature_names.s)0
-rw-r--r--data/text/pokeblocks.inc (renamed from data/text/pokeblocks.s)0
-rw-r--r--data/text/pokedex_rating.inc (renamed from data/text/pokedex_rating.s)0
-rw-r--r--data/text/ribbon_descriptions.inc (renamed from data/text/ribbon_descriptions.s)0
-rw-r--r--data/text/roulette.inc (renamed from data/text/roulette.s)0
-rw-r--r--data/text/safari_zone.inc (renamed from data/text/safari_zone.s)0
-rw-r--r--data/text/save.inc (renamed from data/text/save.s)0
-rw-r--r--data/text/secret_power_tm.inc (renamed from data/text/secret_power_tm.s)0
-rw-r--r--data/text/shoal_cave.inc (renamed from data/text/shoal_cave.s)0
-rw-r--r--data/text/song_names.inc (renamed from data/text/song_names.s)0
-rw-r--r--data/text/species_names.inc (renamed from data/text/species_names.s)0
-rw-r--r--data/text/storyteller.inc (renamed from data/text/storyteller.s)0
-rw-r--r--data/text/surf.inc (renamed from data/text/surf.s)0
-rw-r--r--data/text/trader.inc (renamed from data/text/trader.s)0
-rw-r--r--data/text/trainer_class_names.inc (renamed from data/text/trainer_class_names.s)0
-rw-r--r--data/text/trainer_eye_descriptions.inc (renamed from data/text/trainer_eye_descriptions.s)0
-rw-r--r--data/text/trainers.inc (renamed from data/text/trainers.s)0
-rw-r--r--data/text/tv.inc (renamed from data/text/tv.s)0
-rw-r--r--data/text/type_names.inc (renamed from data/text/type_names.s)0
-rw-r--r--data/tilesets/graphics.inc (renamed from data/tilesets/graphics.s)0
-rw-r--r--data/tilesets/headers.inc (renamed from data/tilesets/headers.s)0
-rw-r--r--data/tilesets/metatiles.inc (renamed from data/tilesets/metatiles.s)0
-rw-r--r--data/tm_hm_learnsets.inc (renamed from data/tm_hm_learnsets.s)0
-rw-r--r--data/trainer_class_index_tables.inc (renamed from data/trainer_class_index_tables.s)0
-rw-r--r--data/trainer_eye_trainers.inc (renamed from data/trainer_eye_trainers.s)0
-rw-r--r--data/trainer_money.inc (renamed from data/trainer_money.s)0
-rw-r--r--data/trainer_parties.inc (renamed from data/trainer_parties.s)0
-rw-r--r--data/trainers.inc (renamed from data/trainers.s)0
-rw-r--r--data/type_effectiveness.inc (renamed from data/type_effectiveness.s)0
-rw-r--r--data/wild_mons.inc (renamed from data/wild_mons.s)0
-rw-r--r--graphics/naming_screen/pc_icon/0.pngbin0 -> 192 bytes
-rw-r--r--graphics/naming_screen/pc_icon/1.pngbin0 -> 203 bytes
-rw-r--r--graphics/unknown_sprites/83CE588/0.pngbin166 -> 0 bytes
-rw-r--r--graphics/unknown_sprites/83CE588/1.pngbin172 -> 0 bytes
-rw-r--r--include/abilities.h86
-rw-r--r--include/battle.h19
-rw-r--r--include/fieldmap.h93
-rw-r--r--include/flag.h11
-rw-r--r--include/flags.h41
-rw-r--r--include/gba/m4a_internal.h2
-rw-r--r--include/gba/syscall.h12
-rw-r--r--include/global.h93
-rw-r--r--include/link.h2
-rw-r--r--include/pokemon.h135
-rw-r--r--include/sprite.h2
-rw-r--r--include/trainer.h19
-rw-r--r--include/var.h11
-rw-r--r--include/vars.h6
-rw-r--r--ld_script.txt45
-rw-r--r--shared_syms.txt15
-rw-r--r--sound/direct_sound_data.inc (renamed from sound/direct_sound_data.s)0
-rw-r--r--sound/keysplit_tables.inc (renamed from sound/keysplit_tables.s)0
-rw-r--r--sound/music_player_table.inc (renamed from sound/music_player_table.s)0
-rw-r--r--sound/programmable_wave_data.inc (renamed from sound/programmable_wave_data.s)0
-rw-r--r--sound/song_table.inc (renamed from sound/song_table.s)2
-rw-r--r--sound/songs/bgm_field13.s2
-rw-r--r--sound/songs/bgm_nibi.s2
-rw-r--r--sound/songs/bgm_pcc.s2
-rw-r--r--sound/songs/bgm_radio_tower_occupied.s (renamed from sound/songs/song_467.s)238
-rw-r--r--sound/songs/bgm_suikun.s2
-rw-r--r--sound/songs/se_stop.s2
-rw-r--r--sound/voice_groups.inc (renamed from sound/voice_groups.s)2
-rw-r--r--src/battle_ai.c1595
-rw-r--r--src/battle_setup.c1157
-rw-r--r--src/berry.c607
-rw-r--r--src/coins.c87
-rw-r--r--src/decompress.c116
-rw-r--r--src/dewford_trend.c642
-rw-r--r--src/diploma.c1
-rw-r--r--src/field_camera.c516
-rw-r--r--src/field_door.c233
-rw-r--r--src/field_effect.c218
-rw-r--r--src/field_player_avatar.c1685
-rw-r--r--src/field_poison.c144
-rw-r--r--src/flag.c1
-rw-r--r--src/heal_location.c45
-rw-r--r--src/intro.c2
-rw-r--r--src/item.c530
-rw-r--r--src/landmark.c72
-rw-r--r--src/libc.c242
-rw-r--r--src/link.c10
-rw-r--r--src/lottery_corner.c28
-rw-r--r--src/m4a_2.c5
-rw-r--r--src/m4a_tables.c2
-rw-r--r--src/main_menu.c1
-rw-r--r--src/map_obj_lock.c4
-rw-r--r--src/menu_cursor.c610
-rw-r--r--src/mori_debug_menu.c157
-rw-r--r--src/pokedex.c2312
-rw-r--r--src/pokemon_2.c2
-rw-r--r--src/pokemon_size_record.c195
-rw-r--r--src/record_mixing.c735
-rw-r--r--src/rom4.c68
-rw-r--r--src/safari_zone.c256
-rw-r--r--src/save_menu_util.c40
-rw-r--r--src/scrcmd.c91
-rw-r--r--src/script.c3
-rw-r--r--src/sprite.c2
-rw-r--r--src/start_menu.c21
-rw-r--r--src/starter_choose.c1
-rw-r--r--src/text.c5
-rw-r--r--src/tileset_anim.c596
-rw-r--r--src/title_screen.c496
-rw-r--r--src/trainer_see.c404
-rw-r--r--src/truck_scene.c229
-rw-r--r--src/var.c1
-rw-r--r--src/wallclock.c5
-rw-r--r--src/wild_encounter.c676
-rw-r--r--sym_bss.txt32
-rw-r--r--sym_common.txt48
-rw-r--r--sym_ewram.txt101
-rw-r--r--tools/aif2pcm/extended.c27
-rw-r--r--tools/aif2pcm/main.c48
1475 files changed, 107722 insertions, 123980 deletions
diff --git a/.gitignore b/.gitignore
index ca6c147c7..79b9641a0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,4 +31,6 @@ types_*.taghl
*.swp
*.swo
*.s.old
+*.s.old2
*.dump
+*.sa*
diff --git a/Makefile b/Makefile
index eb88fdd51..3ca1f7a34 100644
--- a/Makefile
+++ b/Makefile
@@ -43,125 +43,11 @@ compare_sapphire compare_sapphire_rev1 compare_sapphire_rev2
C_SRCS := $(wildcard src/*.c)
C_OBJS := $(C_SRCS:%.c=%.o)
-ASM_OBJS := \
-asm/crt0.o \
-asm/rom3.o \
-asm/calculate_base_damage.o \
-asm/rom_803D1FC.o \
-asm/rom_8040EB4.o \
-asm/daycare.o \
-asm/egg_hatch.o \
-asm/rom_804373C.o \
-asm/load_save.o \
-asm/trade.o \
-asm/berry_blender.o \
-asm/fieldmap.o \
-asm/metatile_behavior.o \
-asm/field_camera.o \
-asm/field_door.o \
-asm/field_player_avatar.o \
-asm/field_map_obj.o \
-asm/field_ground_effect.o \
-asm/rom_8065394.o \
-asm/rom_806936C.o \
-asm/party_menu.o \
-asm/rom_806D7F8.o \
-asm/tileset.o \
-asm/rom_8074BAC.o \
-asm/rom5.o \
-asm/title_screen.o \
-asm/weather.o \
-asm/rom_8080874.o \
-asm/battle_setup.o \
-asm/cable_club.o \
-asm/mori_debug_menu.o \
-asm/trainer_see.o \
-asm/field_effect.o \
-asm/rom_80859BC.o \
-asm/pokedex.o \
-asm/trainer_card.o \
-asm/rom_8094928.o \
-asm/item_menu.o \
-asm/battle_anim_80A7E7C.o \
-asm/item.o \
-asm/matuda_debug_menu.o \
-asm/contest.o \
-asm/shop.o \
-asm/script_menu.o \
-asm/naming_screen.o \
-asm/money.o \
-asm/contest_effect.o \
-asm/record_mixing.o \
-asm/sound_check_menu.o \
-asm/secret_base.o \
-asm/tv.o \
-asm/contest_link_80C2020.o \
-asm/script_pokemon_util_80C4BF0.o \
-asm/field_poison.o \
-asm/big_shroomish_barboach.o \
-asm/fldeff_80C5CD4.o \
-asm/truck_scene.o \
-asm/porthole.o \
-asm/rotating_gate.o \
-asm/safari_zone.o \
-asm/contest_link_80C857C.o \
-asm/item_use.o \
-asm/battle_anim_80CA710.o \
-asm/bike.o \
-asm/easy_chat.o \
-asm/pokenav.o \
-asm/mon_markings.o \
-asm/mauville_old_man.o \
-asm/mail.o \
-asm/menu_helpers.o \
-asm/script_pokemon_util_80F99CC.o \
-asm/dewford_trend.o \
-asm/heal_location.o \
-asm/region_map.o \
-asm/cute_sketch.o \
-asm/decoration.o \
-asm/slot_machine.o \
-asm/contest_painting.o \
-asm/battle_ai.o \
-asm/trader.o \
-asm/rom6.o \
-asm/battle_records.o \
-asm/pokedex_area_screen.o \
-asm/evolution_scene.o \
-asm/roulette.o \
-asm/pokedex_cry_screen.o \
-asm/coins.o \
-asm/landmark.o \
-asm/fldeff_strength.o \
-asm/battle_transition.o \
-asm/battle_811DA74.o \
-asm/battle_message.o \
-asm/choose_party.o \
-asm/cable_car.o \
-asm/roulette_util.o \
-asm/cable_car_util.o \
-asm/unused_8124F94.o \
-asm/mystery_event_script.o \
-asm/field_effect_helpers.o \
-asm/contest_ai.o \
-asm/rom_81258BC.o \
-asm/player_pc.o \
-asm/rom_813BA94.o \
-asm/berry_tag_screen.o \
-asm/mystery_event_menu.o \
-asm/save_failed_screen.o \
-asm/rom_81473B8.o \
-asm/rom_8148B8C.o \
-asm/menu_cursor.o \
-asm/libgcnmultiboot.o \
-asm/m4a_1.o \
-asm/m4a_3.o \
-asm/libagbsyscall.o
-
-DATA_ASM_OBJS := data/data2.o data/graphics.o data/sound_data.o \
-data/event_scripts.o data/battle_anim_scripts.o \
-data/battle_scripts_1.o data/battle_scripts_2.o data/field_effect_scripts.o \
-data/battle_ai_scripts.o data/contest_ai_scripts.o data/script_funcs.o
+ASM_SRCS := $(wildcard asm/*.s)
+ASM_OBJS := $(ASM_SRCS:%.s=%.o)
+
+DATA_ASM_SRCS := $(wildcard data/*.s)
+DATA_ASM_OBJS := $(DATA_ASM_SRCS:%.s=%.o)
SONG_SRCS := $(wildcard sound/songs/*.s)
SONG_OBJS := $(SONG_SRCS:%.s=%.o)
diff --git a/asm/battle_811DA74.s b/asm/battle_811DA74.s
index a51ab4e85..dc3cd456f 100644
--- a/asm/battle_811DA74.s
+++ b/asm/battle_811DA74.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/battle_ai.s b/asm/battle_ai.s
index 029458352..78e928ac7 100644
--- a/asm/battle_ai.s
+++ b/asm/battle_ai.s
@@ -1,3355 +1,19 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
.text
-
- thumb_func_start sub_81070D4
-sub_81070D4: @ 81070D4
- push {r4-r7,lr}
- ldr r2, _08107144 @ =0x02016a00
- movs r3, 0
- ldr r4, _08107148 @ =gUnknown_020239F8
- movs r1, 0
-_081070DE:
- adds r0, r2, r3
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x2F
- bls _081070DE
- ldrh r2, [r4]
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _08107138
- ldr r5, _0810714C @ =gTrainerBattleOpponent
- ldrh r1, [r5]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _08107138
- ldr r0, _08107150 @ =0x00000982
- ands r0, r2
- cmp r0, 0
- bne _08107138
- movs r3, 0
- ldr r7, _08107154 @ =gTrainers + 0x10
- ldr r4, _08107158 @ =0x02016a2c
- adds r6, r4, 0
- subs r6, 0x8
-_08107110:
- lsls r2, r3, 1
- ldrh r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r2, r0
- adds r2, r7
- ldrh r2, [r2]
- cmp r2, 0
- beq _08107132
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- strh r2, [r0]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_08107132:
- adds r3, 0x1
- cmp r3, 0x3
- ble _08107110
-_08107138:
- bl sub_810715C
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08107144: .4byte 0x02016a00
-_08107148: .4byte gUnknown_020239F8
-_0810714C: .4byte gTrainerBattleOpponent
-_08107150: .4byte 0x00000982
-_08107154: .4byte gTrainers + 0x10
-_08107158: .4byte 0x02016a2c
- thumb_func_end sub_81070D4
-
- thumb_func_start sub_810715C
-sub_810715C: @ 810715C
- push {r4-r7,lr}
- ldr r2, _08107204 @ =0x02016800
- movs r4, 0
- ldr r3, _08107208 @ =gUnknown_02024A60
- movs r1, 0
-_08107166:
- adds r0, r2, r4
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x1B
- bls _08107166
- ldr r0, _08107204 @ =0x02016800
- movs r1, 0x64
- movs r4, 0x3
- adds r0, 0x7
-_08107178:
- strb r1, [r0]
- subs r0, 0x1
- subs r4, 0x1
- cmp r4, 0
- bge _08107178
- ldrb r0, [r3]
- movs r1, 0
- movs r2, 0xFF
- bl sub_8015A98
- lsls r0, 24
- lsrs r7, r0, 24
- movs r4, 0
- ldr r0, _08107204 @ =0x02016800
- adds r5, r0, 0x4
- ldr r6, _0810720C @ =gBitTable
-_08107198:
- ldr r0, [r6]
- ands r0, r7
- cmp r0, 0
- beq _081071A4
- movs r0, 0
- strb r0, [r5]
-_081071A4:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x64
- subs r1, r0
- strb r1, [r5, 0x14]
- adds r5, 0x1
- adds r6, 0x4
- adds r4, 0x1
- cmp r4, 0x3
- ble _08107198
- ldr r0, _08107210 @ =0x02016c00
- adds r0, 0x20
- movs r1, 0
- strb r1, [r0]
- ldr r1, _08107214 @ =gUnknown_02024C07
- ldr r0, _08107208 @ =gUnknown_02024A60
- ldrb r2, [r0]
- strb r2, [r1]
- ldr r0, _08107218 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08107224
- ldr r4, _0810721C @ =gUnknown_02024C08
- bl Random
- movs r5, 0x2
- ands r0, r5
- strb r0, [r4]
- ldr r0, _08107220 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _0810720C @ =gBitTable
- ldrb r3, [r4]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0810722C
- eors r3, r5
- strb r3, [r4]
- b _0810722C
- .align 2, 0
-_08107204: .4byte 0x02016800
-_08107208: .4byte gUnknown_02024A60
-_0810720C: .4byte gBitTable
-_08107210: .4byte 0x02016c00
-_08107214: .4byte gUnknown_02024C07
-_08107218: .4byte gUnknown_020239F8
-_0810721C: .4byte gUnknown_02024C08
-_08107220: .4byte gUnknown_02024C0C
-_08107224:
- ldr r0, _08107244 @ =gUnknown_02024C08
- movs r1, 0x1
- eors r1, r2
- strb r1, [r0]
-_0810722C:
- ldr r0, _08107248 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08107250
- ldr r1, _0810724C @ =0x02016800
- movs r0, 0x80
- lsls r0, 23
- str r0, [r1, 0xC]
- b _08107296
- .align 2, 0
-_08107244: .4byte gUnknown_02024C08
-_08107248: .4byte gUnknown_020239F8
-_0810724C: .4byte 0x02016800
-_08107250:
- movs r0, 0x80
- lsls r0, 3
- ands r0, r1
- cmp r0, 0
- beq _08107268
- ldr r1, _08107264 @ =0x02016800
- movs r0, 0x80
- lsls r0, 22
- str r0, [r1, 0xC]
- b _08107296
- .align 2, 0
-_08107264: .4byte 0x02016800
-_08107268:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08107280
- ldr r1, _0810727C @ =0x02016800
- movs r0, 0x80
- lsls r0, 24
- str r0, [r1, 0xC]
- b _08107296
- .align 2, 0
-_0810727C: .4byte 0x02016800
-_08107280:
- ldr r3, _0810729C @ =0x02016800
- ldr r2, _081072A0 @ =gTrainers
- ldr r0, _081072A4 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r2, 0x1C
- adds r0, r2
- ldr r0, [r0]
- str r0, [r3, 0xC]
-_08107296:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810729C: .4byte 0x02016800
-_081072A0: .4byte gTrainers
-_081072A4: .4byte gTrainerBattleOpponent
- thumb_func_end sub_810715C
-
- thumb_func_start sub_81072A8
-sub_81072A8: @ 81072A8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- bl sub_810745C
- ldr r1, _081072F4 @ =0x02016800
- ldr r0, [r1, 0xC]
- cmp r0, 0
- beq _081072E2
- adds r4, r1, 0
- movs r5, 0
-_081072C0:
- ldr r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081072D0
- strb r5, [r4]
- bl sub_8107374
-_081072D0:
- ldr r1, [r4, 0xC]
- lsrs r1, 1
- str r1, [r4, 0xC]
- ldrb r0, [r4, 0x11]
- adds r0, 0x1
- strb r0, [r4, 0x11]
- strb r5, [r4, 0x1]
- cmp r1, 0
- bne _081072C0
-_081072E2:
- ldr r7, _081072F4 @ =0x02016800
- ldrb r1, [r7, 0x10]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081072F8
- movs r0, 0x4
- b _08107368
- .align 2, 0
-_081072F4: .4byte 0x02016800
-_081072F8:
- movs r0, 0x4
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08107308
- movs r0, 0x5
- b _08107368
-_08107308:
- movs r5, 0x1
- mov r0, sp
- ldrb r1, [r7, 0x4]
- strb r1, [r0]
- add r0, sp, 0x4
- strb r2, [r0]
- movs r3, 0x1
- mov r8, r0
- mov r4, sp
- mov r6, r8
- adds r2, r7, 0x5
-_0810731E:
- ldrb r1, [r4]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bge _08107330
- movs r5, 0x1
- ldrb r0, [r2]
- strb r0, [r4]
- strb r3, [r6]
-_08107330:
- ldrb r1, [r4]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bne _0810734E
- mov r0, sp
- adds r1, r0, r5
- ldrb r0, [r2]
- strb r0, [r1]
- adds r1, r5, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r1, r6, r1
- strb r3, [r1]
-_0810734E:
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x3
- ble _0810731E
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- bl __modsi3
- add r0, r8
- ldrb r0, [r0]
-_08107368:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81072A8
-
- thumb_func_start sub_8107374
-sub_8107374: @ 8107374
- push {r4-r7,lr}
- ldr r1, _081073D0 @ =0x02016800
- ldrb r0, [r1]
- adds r6, r1, 0
- cmp r0, 0x2
- beq _08107456
- adds r4, r1, 0
- ldr r7, _081073D4 @ =gUnknown_02039238
-_08107384:
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _081073E4
- cmp r0, 0x1
- bgt _0810744E
- cmp r0, 0
- bne _0810744E
- ldr r1, _081073D8 @ =BattleAIs
- ldrb r0, [r4, 0x11]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r7]
- ldr r5, _081073DC @ =gBattleMons
- ldrb r3, [r4, 0x1]
- ldr r0, _081073E0 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- adds r0, r3, r2
- adds r1, r5, 0
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _081073C6
- lsls r0, r3, 1
- adds r0, r2
- adds r1, r5, 0
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
-_081073C6:
- strh r0, [r4, 0x2]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0810744E
- .align 2, 0
-_081073D0: .4byte 0x02016800
-_081073D4: .4byte gUnknown_02039238
-_081073D8: .4byte BattleAIs
-_081073DC: .4byte gBattleMons
-_081073E0: .4byte gUnknown_02024C07
-_081073E4:
- ldrh r1, [r1, 0x2]
- cmp r1, 0
- beq _08107400
- ldr r1, _081073FC @ =gUnknown_083F6144
- ldr r0, [r7]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- b _08107410
- .align 2, 0
-_081073FC: .4byte gUnknown_083F6144
-_08107400:
- adds r0, r4, 0x4
- ldrb r2, [r4, 0x1]
- adds r0, r2
- strb r1, [r0]
- ldrb r1, [r4, 0x10]
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r4, 0x10]
-_08107410:
- ldr r1, _0810743C @ =0x02016800
- ldrb r2, [r1, 0x10]
- movs r0, 0x1
- ands r0, r2
- adds r6, r1, 0
- cmp r0, 0
- beq _0810744E
- ldrb r0, [r6, 0x1]
- adds r0, 0x1
- strb r0, [r6, 0x1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _08107440
- movs r0, 0x8
- ands r0, r2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08107440
- strb r0, [r6]
- b _08107446
- .align 2, 0
-_0810743C: .4byte 0x02016800
-_08107440:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_08107446:
- ldrb r1, [r4, 0x10]
- movs r0, 0xFE
- ands r0, r1
- strb r0, [r4, 0x10]
-_0810744E:
- adds r1, r6, 0
- ldrb r0, [r1]
- cmp r0, 0x2
- bne _08107384
-_08107456:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8107374
-
- thumb_func_start sub_810745C
-sub_810745C: @ 810745C
- push {r4-r6,lr}
- movs r2, 0
- ldr r3, _08107488 @ =gUnknown_02024C08
- ldr r5, _0810748C @ =0x02016a00
- ldr r6, _08107490 @ =gUnknown_02024C34
- adds r4, r3, 0
-_08107468:
- lsls r0, r2, 1
- ldrb r1, [r4]
- lsrs r1, 1
- lsls r1, 4
- adds r0, r1
- adds r1, r0, r5
- ldrh r0, [r1]
- cmp r0, 0
- bne _08107494
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r1]
- b _0810749A
- .align 2, 0
-_08107488: .4byte gUnknown_02024C08
-_0810748C: .4byte 0x02016a00
-_08107490: .4byte gUnknown_02024C34
-_08107494:
- adds r2, 0x1
- cmp r2, 0x7
- ble _08107468
-_0810749A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810745C
-
- thumb_func_start unref_sub_81074A0
-unref_sub_81074A0: @ 81074A0
- push {lr}
- lsls r0, 24
- ldr r1, _081074C0 @ =0x02016a00
- lsrs r0, 25
- movs r2, 0x7
- lsls r0, 4
- adds r0, r1
- adds r0, 0xE
- movs r1, 0
-_081074B2:
- strh r1, [r0]
- subs r0, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _081074B2
- pop {r0}
- bx r0
- .align 2, 0
-_081074C0: .4byte 0x02016a00
- thumb_func_end unref_sub_81074A0
-
- thumb_func_start sub_81074C4
-sub_81074C4: @ 81074C4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _081074EC
- adds r0, r4, 0
- bl battle_get_per_side_status
- ldr r2, _081074F4 @ =0x02016a00
- movs r1, 0x1
- ands r1, r0
- adds r2, 0x20
- adds r1, r2
- strb r5, [r1]
-_081074EC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081074F4: .4byte 0x02016a00
- thumb_func_end sub_81074C4
-
- thumb_func_start sub_81074F8
-sub_81074F8: @ 81074F8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08107520
- adds r0, r4, 0
- bl battle_get_per_side_status
- ldr r2, _08107528 @ =0x02016a00
- movs r1, 0x1
- ands r1, r0
- adds r2, 0x22
- adds r1, r2
- strb r5, [r1]
-_08107520:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08107528: .4byte 0x02016a00
- thumb_func_end sub_81074F8
-
- thumb_func_start sub_810752C
-sub_810752C: @ 810752C
- push {lr}
- bl Random
- lsls r0, 16
- movs r1, 0xFF
- lsls r1, 16
- ldr r3, _08107560 @ =gUnknown_02039238
- ldr r2, [r3]
- ands r1, r0
- lsrs r1, 16
- ldrb r0, [r2, 0x1]
- cmp r1, r0
- bcs _08107564
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107568
- .align 2, 0
-_08107560: .4byte gUnknown_02039238
-_08107564:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107568:
- pop {r0}
- bx r0
- thumb_func_end sub_810752C
-
- thumb_func_start sub_810756C
-sub_810756C: @ 810756C
- push {lr}
- bl Random
- lsls r0, 16
- movs r1, 0xFF
- lsls r1, 16
- ldr r3, _081075A0 @ =gUnknown_02039238
- ldr r2, [r3]
- ands r1, r0
- lsrs r1, 16
- ldrb r0, [r2, 0x1]
- cmp r1, r0
- bls _081075A4
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081075A8
- .align 2, 0
-_081075A0: .4byte gUnknown_02039238
-_081075A4:
- adds r0, r2, 0x6
- str r0, [r3]
-_081075A8:
- pop {r0}
- bx r0
- thumb_func_end sub_810756C
-
- thumb_func_start sub_81075AC
-sub_81075AC: @ 81075AC
- push {lr}
- bl Random
- lsls r0, 16
- movs r1, 0xFF
- lsls r1, 16
- ldr r3, _081075E0 @ =gUnknown_02039238
- ldr r2, [r3]
- ands r1, r0
- lsrs r1, 16
- ldrb r0, [r2, 0x1]
- cmp r1, r0
- bne _081075E4
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081075E8
- .align 2, 0
-_081075E0: .4byte gUnknown_02039238
-_081075E4:
- adds r0, r2, 0x6
- str r0, [r3]
-_081075E8:
- pop {r0}
- bx r0
- thumb_func_end sub_81075AC
-
- thumb_func_start sub_81075EC
-sub_81075EC: @ 81075EC
- push {lr}
- bl Random
- lsls r0, 16
- movs r1, 0xFF
- lsls r1, 16
- ldr r3, _08107620 @ =gUnknown_02039238
- ldr r2, [r3]
- ands r1, r0
- lsrs r1, 16
- ldrb r0, [r2, 0x1]
- cmp r1, r0
- beq _08107624
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107628
- .align 2, 0
-_08107620: .4byte gUnknown_02039238
-_08107624:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107628:
- pop {r0}
- bx r0
- thumb_func_end sub_81075EC
-
- thumb_func_start sub_810762C
-sub_810762C: @ 810762C
- push {r4,r5,lr}
- ldr r2, _08107660 @ =0x02016800
- ldrb r1, [r2, 0x1]
- adds r3, r2, 0x4
- adds r1, r3
- ldr r4, _08107664 @ =gUnknown_02039238
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- ldrb r5, [r1]
- adds r0, r5
- strb r0, [r1]
- ldrb r0, [r2, 0x1]
- adds r1, r0, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bge _08107652
- movs r0, 0
- strb r0, [r1]
-_08107652:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08107660: .4byte 0x02016800
-_08107664: .4byte gUnknown_02039238
- thumb_func_end sub_810762C
-
- thumb_func_start sub_8107668
-sub_8107668: @ 8107668
- push {r4,lr}
- ldr r0, _0810767C @ =gUnknown_02039238
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08107684
- ldr r0, _08107680 @ =gUnknown_02024C07
- b _08107686
- .align 2, 0
-_0810767C: .4byte gUnknown_02039238
-_08107680: .4byte gUnknown_02024C07
-_08107684:
- ldr r0, _081076BC @ =gUnknown_02024C08
-_08107686:
- ldrb r1, [r0]
- ldr r2, _081076C0 @ =gBattleMons
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r2, [r1, 0x28]
- movs r0, 0x64
- muls r0, r2
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- cmp r0, r1
- bcs _081076C4
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _081076C8
- .align 2, 0
-_081076BC: .4byte gUnknown_02024C08
-_081076C0: .4byte gBattleMons
-_081076C4:
- adds r0, r2, 0x7
- str r0, [r4]
-_081076C8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8107668
-
- thumb_func_start sub_81076D0
-sub_81076D0: @ 81076D0
- push {r4,lr}
- ldr r0, _081076E4 @ =gUnknown_02039238
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _081076EC
- ldr r0, _081076E8 @ =gUnknown_02024C07
- b _081076EE
- .align 2, 0
-_081076E4: .4byte gUnknown_02039238
-_081076E8: .4byte gUnknown_02024C07
-_081076EC:
- ldr r0, _08107724 @ =gUnknown_02024C08
-_081076EE:
- ldrb r1, [r0]
- ldr r2, _08107728 @ =gBattleMons
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r2, [r1, 0x28]
- movs r0, 0x64
- muls r0, r2
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- cmp r0, r1
- bls _0810772C
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107730
- .align 2, 0
-_08107724: .4byte gUnknown_02024C08
-_08107728: .4byte gBattleMons
-_0810772C:
- adds r0, r2, 0x7
- str r0, [r4]
-_08107730:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81076D0
-
- thumb_func_start sub_8107738
-sub_8107738: @ 8107738
- push {r4,lr}
- ldr r0, _0810774C @ =gUnknown_02039238
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08107754
- ldr r0, _08107750 @ =gUnknown_02024C07
- b _08107756
- .align 2, 0
-_0810774C: .4byte gUnknown_02039238
-_08107750: .4byte gUnknown_02024C07
-_08107754:
- ldr r0, _0810778C @ =gUnknown_02024C08
-_08107756:
- ldrb r1, [r0]
- ldr r2, _08107790 @ =gBattleMons
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r2, [r1, 0x28]
- movs r0, 0x64
- muls r0, r2
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- cmp r0, r1
- bne _08107794
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107798
- .align 2, 0
-_0810778C: .4byte gUnknown_02024C08
-_08107790: .4byte gBattleMons
-_08107794:
- adds r0, r2, 0x7
- str r0, [r4]
-_08107798:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8107738
-
- thumb_func_start sub_81077A0
-sub_81077A0: @ 81077A0
- push {r4,lr}
- ldr r0, _081077B4 @ =gUnknown_02039238
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _081077BC
- ldr r0, _081077B8 @ =gUnknown_02024C07
- b _081077BE
- .align 2, 0
-_081077B4: .4byte gUnknown_02039238
-_081077B8: .4byte gUnknown_02024C07
-_081077BC:
- ldr r0, _081077F4 @ =gUnknown_02024C08
-_081077BE:
- ldrb r1, [r0]
- ldr r2, _081077F8 @ =gBattleMons
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r2, [r1, 0x28]
- movs r0, 0x64
- muls r0, r2
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- cmp r0, r1
- beq _081077FC
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107800
- .align 2, 0
-_081077F4: .4byte gUnknown_02024C08
-_081077F8: .4byte gBattleMons
-_081077FC:
- adds r0, r2, 0x7
- str r0, [r4]
-_08107800:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81077A0
-
- thumb_func_start sub_8107808
-sub_8107808: @ 8107808
- push {r4,r5,lr}
- ldr r0, _0810781C @ =gUnknown_02039238
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _08107824
- ldr r0, _08107820 @ =gUnknown_02024C07
- b _08107826
- .align 2, 0
-_0810781C: .4byte gUnknown_02039238
-_08107820: .4byte gUnknown_02024C07
-_08107824:
- ldr r0, _08107868 @ =gUnknown_02024C08
-_08107826:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r2, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r2, r0
- ldr r1, _0810786C @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- beq _08107870
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _08107876
- .align 2, 0
-_08107868: .4byte gUnknown_02024C08
-_0810786C: .4byte gBattleMons
-_08107870:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_08107876:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8107808
-
- thumb_func_start sub_810787C
-sub_810787C: @ 810787C
- push {r4,r5,lr}
- ldr r0, _08107890 @ =gUnknown_02039238
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _08107898
- ldr r0, _08107894 @ =gUnknown_02024C07
- b _0810789A
- .align 2, 0
-_08107890: .4byte gUnknown_02039238
-_08107894: .4byte gUnknown_02024C07
-_08107898:
- ldr r0, _081078DC @ =gUnknown_02024C08
-_0810789A:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r2, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r2, r0
- ldr r1, _081078E0 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- bne _081078E4
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _081078EA
- .align 2, 0
-_081078DC: .4byte gUnknown_02024C08
-_081078E0: .4byte gBattleMons
-_081078E4:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_081078EA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810787C
-
- thumb_func_start sub_81078F0
-sub_81078F0: @ 81078F0
- push {r4,r5,lr}
- ldr r0, _08107904 @ =gUnknown_02039238
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _0810790C
- ldr r0, _08107908 @ =gUnknown_02024C07
- b _0810790E
- .align 2, 0
-_08107904: .4byte gUnknown_02039238
-_08107908: .4byte gUnknown_02024C07
-_0810790C:
- ldr r0, _08107950 @ =gUnknown_02024C08
-_0810790E:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r2, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r2, r0
- ldr r1, _08107954 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- beq _08107958
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _0810795E
- .align 2, 0
-_08107950: .4byte gUnknown_02024C08
-_08107954: .4byte gBattleMons
-_08107958:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_0810795E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81078F0
-
- thumb_func_start sub_8107964
-sub_8107964: @ 8107964
- push {r4,r5,lr}
- ldr r0, _08107978 @ =gUnknown_02039238
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _08107980
- ldr r0, _0810797C @ =gUnknown_02024C07
- b _08107982
- .align 2, 0
-_08107978: .4byte gUnknown_02039238
-_0810797C: .4byte gUnknown_02024C07
-_08107980:
- ldr r0, _081079C4 @ =gUnknown_02024C08
-_08107982:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r2, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r2, r0
- ldr r1, _081079C8 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- bne _081079CC
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _081079D2
- .align 2, 0
-_081079C4: .4byte gUnknown_02024C08
-_081079C8: .4byte gBattleMons
-_081079CC:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_081079D2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8107964
-
- thumb_func_start sub_81079D8
-sub_81079D8: @ 81079D8
- push {r4,r5,lr}
- ldr r0, _081079EC @ =gUnknown_02039238
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _081079F4
- ldr r0, _081079F0 @ =gUnknown_02024C07
- b _081079F6
- .align 2, 0
-_081079EC: .4byte gUnknown_02039238
-_081079F0: .4byte gUnknown_02024C07
-_081079F4:
- ldr r0, _08107A34 @ =gUnknown_02024C08
-_081079F6:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- ldr r2, _08107A38 @ =gUnknown_02024C98
- lsls r0, r4, 2
- adds r0, r2
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- beq _08107A3C
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _08107A42
- .align 2, 0
-_08107A34: .4byte gUnknown_02024C08
-_08107A38: .4byte gUnknown_02024C98
-_08107A3C:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_08107A42:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81079D8
-
- thumb_func_start sub_8107A48
-sub_8107A48: @ 8107A48
- push {r4,r5,lr}
- ldr r0, _08107A5C @ =gUnknown_02039238
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _08107A64
- ldr r0, _08107A60 @ =gUnknown_02024C07
- b _08107A66
- .align 2, 0
-_08107A5C: .4byte gUnknown_02039238
-_08107A60: .4byte gUnknown_02024C07
-_08107A64:
- ldr r0, _08107AA4 @ =gUnknown_02024C08
-_08107A66:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- ldr r2, _08107AA8 @ =gUnknown_02024C98
- lsls r0, r4, 2
- adds r0, r2
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- bne _08107AAC
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _08107AB2
- .align 2, 0
-_08107AA4: .4byte gUnknown_02024C08
-_08107AA8: .4byte gUnknown_02024C98
-_08107AAC:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_08107AB2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8107A48
-
- thumb_func_start sub_8107AB8
-sub_8107AB8: @ 8107AB8
- push {r4,lr}
- ldr r0, _08107AC8 @ =gUnknown_02039238
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bne _08107AD0
- ldr r0, _08107ACC @ =gUnknown_02024C07
- b _08107AD2
- .align 2, 0
-_08107AC8: .4byte gUnknown_02039238
-_08107ACC: .4byte gUnknown_02024C07
-_08107AD0:
- ldr r0, _08107B1C @ =gUnknown_02024C08
-_08107AD2:
- ldrb r0, [r0]
- bl battle_get_per_side_status
- movs r2, 0x1
- ands r2, r0
- ldr r4, _08107B20 @ =gUnknown_02039238
- ldr r3, [r4]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- ldr r0, _08107B24 @ =gUnknown_02024C7A
- lsls r2, 1
- adds r2, r0
- ldrh r0, [r2]
- ands r0, r1
- cmp r0, 0
- beq _08107B28
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107B2E
- .align 2, 0
-_08107B1C: .4byte gUnknown_02024C08
-_08107B20: .4byte gUnknown_02039238
-_08107B24: .4byte gUnknown_02024C7A
-_08107B28:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r4]
-_08107B2E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8107AB8
-
- thumb_func_start sub_8107B34
-sub_8107B34: @ 8107B34
- push {r4,lr}
- ldr r0, _08107B44 @ =gUnknown_02039238
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bne _08107B4C
- ldr r0, _08107B48 @ =gUnknown_02024C07
- b _08107B4E
- .align 2, 0
-_08107B44: .4byte gUnknown_02039238
-_08107B48: .4byte gUnknown_02024C07
-_08107B4C:
- ldr r0, _08107B98 @ =gUnknown_02024C08
-_08107B4E:
- ldrb r0, [r0]
- bl battle_get_per_side_status
- movs r2, 0x1
- ands r2, r0
- ldr r4, _08107B9C @ =gUnknown_02039238
- ldr r3, [r4]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- ldr r0, _08107BA0 @ =gUnknown_02024C7A
- lsls r2, 1
- adds r2, r0
- ldrh r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _08107BA4
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107BAA
- .align 2, 0
-_08107B98: .4byte gUnknown_02024C08
-_08107B9C: .4byte gUnknown_02039238
-_08107BA0: .4byte gUnknown_02024C7A
-_08107BA4:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r4]
-_08107BAA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8107B34
-
- thumb_func_start sub_8107BB0
-sub_8107BB0: @ 8107BB0
- push {lr}
- ldr r0, _08107BD8 @ =0x02016800
- ldr r3, _08107BDC @ =gUnknown_02039238
- ldr r2, [r3]
- ldr r0, [r0, 0x8]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bcs _08107BE0
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107BE4
- .align 2, 0
-_08107BD8: .4byte 0x02016800
-_08107BDC: .4byte gUnknown_02039238
-_08107BE0:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107BE4:
- pop {r0}
- bx r0
- thumb_func_end sub_8107BB0
-
- thumb_func_start sub_8107BE8
-sub_8107BE8: @ 8107BE8
- push {lr}
- ldr r0, _08107C10 @ =0x02016800
- ldr r3, _08107C14 @ =gUnknown_02039238
- ldr r2, [r3]
- ldr r0, [r0, 0x8]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bls _08107C18
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107C1C
- .align 2, 0
-_08107C10: .4byte 0x02016800
-_08107C14: .4byte gUnknown_02039238
-_08107C18:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107C1C:
- pop {r0}
- bx r0
- thumb_func_end sub_8107BE8
-
- thumb_func_start sub_8107C20
-sub_8107C20: @ 8107C20
- push {lr}
- ldr r0, _08107C48 @ =0x02016800
- ldr r3, _08107C4C @ =gUnknown_02039238
- ldr r2, [r3]
- ldr r0, [r0, 0x8]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bne _08107C50
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107C54
- .align 2, 0
-_08107C48: .4byte 0x02016800
-_08107C4C: .4byte gUnknown_02039238
-_08107C50:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107C54:
- pop {r0}
- bx r0
- thumb_func_end sub_8107C20
-
- thumb_func_start sub_8107C58
-sub_8107C58: @ 8107C58
- push {lr}
- ldr r0, _08107C80 @ =0x02016800
- ldr r3, _08107C84 @ =gUnknown_02039238
- ldr r2, [r3]
- ldr r0, [r0, 0x8]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- beq _08107C88
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107C8C
- .align 2, 0
-_08107C80: .4byte 0x02016800
-_08107C84: .4byte gUnknown_02039238
-_08107C88:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107C8C:
- pop {r0}
- bx r0
- thumb_func_end sub_8107C58
-
- thumb_func_start sub_8107C90
-sub_8107C90: @ 8107C90
- push {lr}
- ldr r3, _08107CCC @ =gUnknown_02039238
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r0, _08107CD0 @ =0x02016800
- ldr r0, [r0, 0x8]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08107CD4
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107CDA
- .align 2, 0
-_08107CCC: .4byte gUnknown_02039238
-_08107CD0: .4byte 0x02016800
-_08107CD4:
- adds r0, r2, 0
- adds r0, 0x9
- str r0, [r3]
-_08107CDA:
- pop {r0}
- bx r0
- thumb_func_end sub_8107C90
-
- thumb_func_start sub_8107CE0
-sub_8107CE0: @ 8107CE0
- push {lr}
- ldr r3, _08107D1C @ =gUnknown_02039238
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r0, _08107D20 @ =0x02016800
- ldr r0, [r0, 0x8]
- ldrb r1, [r1]
- cmp r0, r1
- bls _08107D24
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107D2A
- .align 2, 0
-_08107D1C: .4byte gUnknown_02039238
-_08107D20: .4byte 0x02016800
-_08107D24:
- adds r0, r2, 0
- adds r0, 0x9
- str r0, [r3]
-_08107D2A:
- pop {r0}
- bx r0
- thumb_func_end sub_8107CE0
-
- thumb_func_start sub_8107D30
-sub_8107D30: @ 8107D30
- push {lr}
- ldr r3, _08107D6C @ =gUnknown_02039238
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r0, _08107D70 @ =0x02016800
- ldr r0, [r0, 0x8]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08107D74
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107D7A
- .align 2, 0
-_08107D6C: .4byte gUnknown_02039238
-_08107D70: .4byte 0x02016800
-_08107D74:
- adds r0, r2, 0
- adds r0, 0x9
- str r0, [r3]
-_08107D7A:
- pop {r0}
- bx r0
- thumb_func_end sub_8107D30
-
- thumb_func_start sub_8107D80
-sub_8107D80: @ 8107D80
- push {lr}
- ldr r3, _08107DBC @ =gUnknown_02039238
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r0, _08107DC0 @ =0x02016800
- ldr r0, [r0, 0x8]
- ldrb r1, [r1]
- cmp r0, r1
- beq _08107DC4
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107DCA
- .align 2, 0
-_08107DBC: .4byte gUnknown_02039238
-_08107DC0: .4byte 0x02016800
-_08107DC4:
- adds r0, r2, 0
- adds r0, 0x9
- str r0, [r3]
-_08107DCA:
- pop {r0}
- bx r0
- thumb_func_end sub_8107D80
-
- thumb_func_start sub_8107DD0
-sub_8107DD0: @ 8107DD0
- push {lr}
- ldr r3, _08107E00 @ =gUnknown_02039238
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r0, _08107E04 @ =0x02016800
- ldrh r0, [r0, 0x2]
- cmp r0, r1
- bne _08107E08
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107E0C
- .align 2, 0
-_08107E00: .4byte gUnknown_02039238
-_08107E04: .4byte 0x02016800
-_08107E08:
- adds r0, r2, 0x7
- str r0, [r3]
-_08107E0C:
- pop {r0}
- bx r0
- thumb_func_end sub_8107DD0
-
- thumb_func_start sub_8107E10
-sub_8107E10: @ 8107E10
- push {lr}
- ldr r3, _08107E40 @ =gUnknown_02039238
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r0, _08107E44 @ =0x02016800
- ldrh r0, [r0, 0x2]
- cmp r0, r1
- beq _08107E48
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107E4C
- .align 2, 0
-_08107E40: .4byte gUnknown_02039238
-_08107E44: .4byte 0x02016800
-_08107E48:
- adds r0, r2, 0x7
- str r0, [r3]
-_08107E4C:
- pop {r0}
- bx r0
- thumb_func_end sub_8107E10
-
- thumb_func_start sub_8107E50
-sub_8107E50: @ 8107E50
- push {r4,lr}
- ldr r2, _08107E98 @ =gUnknown_02039238
- ldr r1, [r2]
- ldrb r3, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldrb r0, [r3]
- cmp r0, 0xFF
- beq _08107EA8
- ldr r0, _08107E9C @ =0x02016800
- ldr r1, [r0, 0x8]
- adds r4, r2, 0
-_08107E76:
- ldrb r0, [r3]
- cmp r1, r0
- bne _08107EA0
- ldr r2, [r4]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107EAE
- .align 2, 0
-_08107E98: .4byte gUnknown_02039238
-_08107E9C: .4byte 0x02016800
-_08107EA0:
- adds r3, 0x1
- ldrb r0, [r3]
- cmp r0, 0xFF
- bne _08107E76
-_08107EA8:
- ldr r0, [r2]
- adds r0, 0x9
- str r0, [r2]
-_08107EAE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8107E50
-
- thumb_func_start sub_8107EB4
-sub_8107EB4: @ 8107EB4
- push {r4,lr}
- ldr r2, _08107EEC @ =gUnknown_02039238
- ldr r1, [r2]
- ldrb r3, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldrb r0, [r3]
- adds r4, r2, 0
- cmp r0, 0xFF
- beq _08107EFC
- ldr r0, _08107EF0 @ =0x02016800
- ldr r2, [r0, 0x8]
- adds r1, r4, 0
-_08107EDC:
- ldrb r0, [r3]
- cmp r2, r0
- bne _08107EF4
- ldr r0, [r1]
- adds r0, 0x9
- str r0, [r1]
- b _08107F14
- .align 2, 0
-_08107EEC: .4byte gUnknown_02039238
-_08107EF0: .4byte 0x02016800
-_08107EF4:
- adds r3, 0x1
- ldrb r0, [r3]
- cmp r0, 0xFF
- bne _08107EDC
-_08107EFC:
- ldr r2, [r4]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
-_08107F14:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8107EB4
-
- thumb_func_start sub_8107F1C
-sub_8107F1C: @ 8107F1C
- push {r4,r5,lr}
- ldr r2, _08107F64 @ =gUnknown_02039238
- ldr r1, [r2]
- ldrb r3, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldrh r0, [r3]
- ldr r5, _08107F68 @ =0x0000ffff
- cmp r0, r5
- beq _08107F78
- ldr r0, _08107F6C @ =0x02016800
- ldr r1, [r0, 0x8]
- adds r4, r2, 0
-_08107F44:
- ldrh r0, [r3]
- cmp r1, r0
- bne _08107F70
- ldr r2, [r4]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107F7E
- .align 2, 0
-_08107F64: .4byte gUnknown_02039238
-_08107F68: .4byte 0x0000ffff
-_08107F6C: .4byte 0x02016800
-_08107F70:
- adds r3, 0x2
- ldrh r0, [r3]
- cmp r0, r5
- bne _08107F44
-_08107F78:
- ldr r0, [r2]
- adds r0, 0x9
- str r0, [r2]
-_08107F7E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8107F1C
-
- thumb_func_start sub_8107F84
-sub_8107F84: @ 8107F84
- push {r4,r5,lr}
- ldr r2, _08107FBC @ =gUnknown_02039238
- ldr r1, [r2]
- ldrb r3, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldrh r0, [r3]
- ldr r4, _08107FC0 @ =0x0000ffff
- adds r5, r2, 0
- cmp r0, r4
- beq _08107FD0
- ldr r0, _08107FC4 @ =0x02016800
- ldr r2, [r0, 0x8]
- adds r1, r5, 0
-_08107FAE:
- ldrh r0, [r3]
- cmp r2, r0
- bne _08107FC8
- ldr r0, [r1]
- adds r0, 0x9
- str r0, [r1]
- b _08107FE8
- .align 2, 0
-_08107FBC: .4byte gUnknown_02039238
-_08107FC0: .4byte 0x0000ffff
-_08107FC4: .4byte 0x02016800
-_08107FC8:
- adds r3, 0x2
- ldrh r0, [r3]
- cmp r0, r4
- bne _08107FAE
-_08107FD0:
- ldr r2, [r5]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
-_08107FE8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8107F84
-
- thumb_func_start sub_8107FF0
-sub_8107FF0: @ 8107FF0
- push {r4,r5,lr}
- movs r3, 0
- ldr r4, _08108030 @ =gUnknown_02039238
- ldr r1, _08108034 @ =gBattleMons
- ldr r0, _08108038 @ =gUnknown_02024C07
- ldrb r2, [r0]
- ldr r5, _0810803C @ =gBattleMoves
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r2, r0, r1
-_08108006:
- ldrh r0, [r2]
- cmp r0, 0
- beq _0810801A
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08108022
-_0810801A:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _08108006
-_08108022:
- cmp r3, 0x4
- bne _08108040
- ldr r0, [r4]
- adds r0, 0x5
- str r0, [r4]
- b _08108058
- .align 2, 0
-_08108030: .4byte gUnknown_02039238
-_08108034: .4byte gBattleMons
-_08108038: .4byte gUnknown_02024C07
-_0810803C: .4byte gBattleMoves
-_08108040:
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
-_08108058:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8107FF0
-
- thumb_func_start sub_8108060
-sub_8108060: @ 8108060
- push {r4,r5,lr}
- movs r3, 0
- ldr r4, _081080A0 @ =gUnknown_02039238
- ldr r1, _081080A4 @ =gBattleMons
- ldr r0, _081080A8 @ =gUnknown_02024C07
- ldrb r2, [r0]
- ldr r5, _081080AC @ =gBattleMoves
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r2, r0, r1
-_08108076:
- ldrh r0, [r2]
- cmp r0, 0
- beq _0810808A
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08108092
-_0810808A:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _08108076
-_08108092:
- cmp r3, 0x4
- beq _081080B0
- ldr r0, [r4]
- adds r0, 0x5
- str r0, [r4]
- b _081080C8
- .align 2, 0
-_081080A0: .4byte gUnknown_02039238
-_081080A4: .4byte gBattleMons
-_081080A8: .4byte gUnknown_02024C07
-_081080AC: .4byte gBattleMoves
-_081080B0:
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
-_081080C8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8108060
-
- thumb_func_start sub_81080D0
-sub_81080D0: @ 81080D0
- ldr r1, _081080E4 @ =0x02016800
- ldr r0, _081080E8 @ =gUnknown_030042E0
- ldrb r0, [r0, 0x13]
- str r0, [r1, 0x8]
- ldr r1, _081080EC @ =gUnknown_02039238
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_081080E4: .4byte 0x02016800
-_081080E8: .4byte gUnknown_030042E0
-_081080EC: .4byte gUnknown_02039238
- thumb_func_end sub_81080D0
-
- thumb_func_start sub_81080F0
-sub_81080F0: @ 81080F0
- push {r4,lr}
- ldr r1, _08108108 @ =gUnknown_02039238
- ldr r0, [r1]
- ldrb r0, [r0, 0x1]
- adds r4, r1, 0
- cmp r0, 0x4
- bhi _081081B6
- lsls r0, 2
- ldr r1, _0810810C @ =_08108110
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08108108: .4byte gUnknown_02039238
-_0810810C: .4byte _08108110
- .align 2, 0
-_08108110:
- .4byte _08108144
- .4byte _08108124
- .4byte _08108184
- .4byte _08108164
- .4byte _081081A4
-_08108124:
- ldr r3, _08108138 @ =0x02016800
- ldr r2, _0810813C @ =gBattleMons
- ldr r0, _08108140 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x21
- ldrb r0, [r0]
- b _081081B4
- .align 2, 0
-_08108138: .4byte 0x02016800
-_0810813C: .4byte gBattleMons
-_08108140: .4byte gUnknown_02024C07
-_08108144:
- ldr r3, _08108158 @ =0x02016800
- ldr r2, _0810815C @ =gBattleMons
- ldr r0, _08108160 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x21
- ldrb r0, [r0]
- b _081081B4
- .align 2, 0
-_08108158: .4byte 0x02016800
-_0810815C: .4byte gBattleMons
-_08108160: .4byte gUnknown_02024C08
-_08108164:
- ldr r3, _08108178 @ =0x02016800
- ldr r2, _0810817C @ =gBattleMons
- ldr r0, _08108180 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x22
- ldrb r0, [r0]
- b _081081B4
- .align 2, 0
-_08108178: .4byte 0x02016800
-_0810817C: .4byte gBattleMons
-_08108180: .4byte gUnknown_02024C07
-_08108184:
- ldr r3, _08108198 @ =0x02016800
- ldr r2, _0810819C @ =gBattleMons
- ldr r0, _081081A0 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x22
- ldrb r0, [r0]
- b _081081B4
- .align 2, 0
-_08108198: .4byte 0x02016800
-_0810819C: .4byte gBattleMons
-_081081A0: .4byte gUnknown_02024C08
-_081081A4:
- ldr r3, _081081C4 @ =0x02016800
- ldr r2, _081081C8 @ =gBattleMoves
- ldrh r1, [r3, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
-_081081B4:
- str r0, [r3, 0x8]
-_081081B6:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081081C4: .4byte 0x02016800
-_081081C8: .4byte gBattleMoves
- thumb_func_end sub_81080F0
-
- thumb_func_start sub_81081CC
-sub_81081CC: @ 81081CC
- ldr r3, _081081E8 @ =0x02016800
- ldr r2, _081081EC @ =gBattleMoves
- ldrh r1, [r3, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- str r0, [r3, 0x8]
- ldr r1, _081081F0 @ =gUnknown_02039238
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_081081E8: .4byte 0x02016800
-_081081EC: .4byte gBattleMoves
-_081081F0: .4byte gUnknown_02039238
- thumb_func_end sub_81081CC
-
- thumb_func_start sub_81081F4
-sub_81081F4: @ 81081F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- movs r3, 0
- ldr r0, _08108328 @ =gUnknown_083F62BC
- ldrh r1, [r0]
- ldr r4, _0810832C @ =0x0000ffff
- ldr r6, _08108330 @ =gBattleMoves
- ldr r5, _08108334 @ =0x02016800
- cmp r1, r4
- beq _0810822E
- ldrh r1, [r5, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r2, [r0]
- ldr r1, _08108328 @ =gUnknown_083F62BC
-_0810821E:
- ldrh r0, [r1]
- cmp r2, r0
- beq _0810822E
- adds r1, 0x2
- adds r3, 0x1
- ldrh r0, [r1]
- cmp r0, r4
- bne _0810821E
-_0810822E:
- ldrh r0, [r5, 0x2]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1, 0x1]
- cmp r0, 0x1
- bhi _08108240
- b _081083B2
-_08108240:
- lsls r0, r3, 1
- ldr r1, _08108328 @ =gUnknown_083F62BC
- adds r0, r1
- ldrh r3, [r0]
- ldr r0, _0810832C @ =0x0000ffff
- cmp r3, r0
- beq _08108250
- b _081083B2
-_08108250:
- ldr r0, _08108338 @ =gUnknown_02024DEC
- movs r1, 0
- strh r1, [r0]
- ldr r2, _0810833C @ =0xfffff81c
- adds r0, r5, r2
- strb r1, [r0]
- adds r2, 0x3
- adds r0, r5, r2
- movs r2, 0x1
- strb r2, [r0]
- ldr r0, _08108340 @ =gUnknown_02024C68
- strb r1, [r0]
- ldr r0, _08108344 @ =gCritMultiplier
- strb r2, [r0]
- movs r6, 0
- mov r9, r3
- ldr r0, _08108328 @ =gUnknown_083F62BC
- ldrh r0, [r0]
- str r0, [sp, 0x10]
-_08108276:
- movs r3, 0
- ldr r5, _08108348 @ =gBattleMons
- lsls r4, r6, 1
- ldr r7, _0810834C @ =gUnknown_02024C07
- lsls r1, r6, 2
- mov r8, r1
- adds r2, r6, 0x1
- mov r10, r2
- ldr r0, [sp, 0x10]
- cmp r0, r9
- beq _081082BA
- ldr r2, _08108330 @ =gBattleMoves
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- adds r0, r4, r0
- adds r1, r5, 0
- adds r1, 0xC
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0]
- ldr r1, _08108328 @ =gUnknown_083F62BC
-_081082AA:
- ldrh r0, [r1]
- cmp r2, r0
- beq _081082BA
- adds r1, 0x2
- adds r3, 0x1
- ldrh r0, [r1]
- cmp r0, r9
- bne _081082AA
-_081082BA:
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- adds r0, r4, r0
- adds r1, r5, 0
- adds r1, 0xC
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, 0
- beq _0810835C
- lsls r0, r3, 1
- ldr r2, _08108328 @ =gUnknown_083F62BC
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r9
- bne _0810835C
- ldr r0, _08108330 @ =gBattleMoves
- ldrh r2, [r1]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0x1
- bls _0810835C
- ldr r5, _08108350 @ =gUnknown_02024BE6
- strh r2, [r5]
- ldrb r0, [r7]
- ldr r4, _08108354 @ =gUnknown_02024C08
- ldrb r1, [r4]
- bl sub_801CAF8
- ldrh r0, [r5]
- ldrb r1, [r7]
- ldrb r2, [r4]
- bl move_effectiveness_something
- mov r4, sp
- add r4, r8
- ldr r2, _08108358 @ =gUnknown_02024BEC
- ldr r0, _08108334 @ =0x02016800
- adds r0, 0x18
- adds r0, r6, r0
- ldrb r1, [r0]
- ldr r0, [r2]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _08108364
- movs r0, 0x1
- str r0, [r4]
- b _08108364
- .align 2, 0
-_08108328: .4byte gUnknown_083F62BC
-_0810832C: .4byte 0x0000ffff
-_08108330: .4byte gBattleMoves
-_08108334: .4byte 0x02016800
-_08108338: .4byte gUnknown_02024DEC
-_0810833C: .4byte 0xfffff81c
-_08108340: .4byte gUnknown_02024C68
-_08108344: .4byte gCritMultiplier
-_08108348: .4byte gBattleMons
-_0810834C: .4byte gUnknown_02024C07
-_08108350: .4byte gUnknown_02024BE6
-_08108354: .4byte gUnknown_02024C08
-_08108358: .4byte gUnknown_02024BEC
-_0810835C:
- mov r1, sp
- add r1, r8
- movs r0, 0
- str r0, [r1]
-_08108364:
- mov r6, r10
- cmp r6, 0x3
- ble _08108276
- movs r6, 0
- ldr r1, _081083A4 @ =0x02016800
- ldrb r0, [r1, 0x1]
- lsls r0, 2
- add r0, sp
- ldr r2, [sp]
- ldr r0, [r0]
- adds r5, r1, 0
- ldr r4, _081083A8 @ =gUnknown_02039238
- cmp r2, r0
- bgt _0810839A
- adds r3, r5, 0
- mov r2, sp
-_08108384:
- adds r2, 0x4
- adds r6, 0x1
- cmp r6, 0x3
- bgt _0810839A
- ldrb r0, [r3, 0x1]
- lsls r0, 2
- add r0, sp
- ldr r1, [r2]
- ldr r0, [r0]
- cmp r1, r0
- ble _08108384
-_0810839A:
- cmp r6, 0x4
- bne _081083AC
- movs r0, 0x2
- str r0, [r5, 0x8]
- b _081083B8
- .align 2, 0
-_081083A4: .4byte 0x02016800
-_081083A8: .4byte gUnknown_02039238
-_081083AC:
- movs r0, 0x1
- str r0, [r5, 0x8]
- b _081083B8
-_081083B2:
- movs r0, 0
- str r0, [r5, 0x8]
- ldr r4, _081083D0 @ =gUnknown_02039238
-_081083B8:
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081083D0: .4byte gUnknown_02039238
- thumb_func_end sub_81081F4
-
- thumb_func_start sub_81083D4
-sub_81083D4: @ 81083D4
- push {lr}
- ldr r0, _081083EC @ =gUnknown_02039238
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r3, r0, 0
- cmp r1, 0x1
- bne _081083FC
- ldr r2, _081083F0 @ =0x02016800
- ldr r1, _081083F4 @ =gUnknown_02024C34
- ldr r0, _081083F8 @ =gUnknown_02024C07
- b _08108402
- .align 2, 0
-_081083EC: .4byte gUnknown_02039238
-_081083F0: .4byte 0x02016800
-_081083F4: .4byte gUnknown_02024C34
-_081083F8: .4byte gUnknown_02024C07
-_081083FC:
- ldr r2, _08108418 @ =0x02016800
- ldr r1, _0810841C @ =gUnknown_02024C34
- ldr r0, _08108420 @ =gUnknown_02024C08
-_08108402:
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- str r0, [r2, 0x8]
- ldr r0, [r3]
- adds r0, 0x2
- str r0, [r3]
- pop {r0}
- bx r0
- .align 2, 0
-_08108418: .4byte 0x02016800
-_0810841C: .4byte gUnknown_02024C34
-_08108420: .4byte gUnknown_02024C08
- thumb_func_end sub_81083D4
-
- thumb_func_start sub_8108424
-sub_8108424: @ 8108424
- push {lr}
- ldr r3, _0810844C @ =gUnknown_02039238
- ldr r2, [r3]
- ldrb r0, [r2, 0x1]
- ldr r1, _08108450 @ =0x02016800
- ldr r1, [r1, 0x8]
- cmp r0, r1
- bne _08108454
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108458
- .align 2, 0
-_0810844C: .4byte gUnknown_02039238
-_08108450: .4byte 0x02016800
-_08108454:
- adds r0, r2, 0x6
- str r0, [r3]
-_08108458:
- pop {r0}
- bx r0
- thumb_func_end sub_8108424
-
- thumb_func_start sub_810845C
-sub_810845C: @ 810845C
- push {lr}
- ldr r3, _08108484 @ =gUnknown_02039238
- ldr r2, [r3]
- ldrb r0, [r2, 0x1]
- ldr r1, _08108488 @ =0x02016800
- ldr r1, [r1, 0x8]
- cmp r0, r1
- beq _0810848C
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108490
- .align 2, 0
-_08108484: .4byte gUnknown_02039238
-_08108488: .4byte 0x02016800
-_0810848C:
- adds r0, r2, 0x6
- str r0, [r3]
-_08108490:
- pop {r0}
- bx r0
- thumb_func_end sub_810845C
-
- thumb_func_start tai28_unk
-tai28_unk: @ 8108494
- push {lr}
- ldr r0, _081084CC @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r1, _081084D0 @ =gUnknown_02024C08
- ldrb r1, [r1]
- movs r2, 0x1
- bl b_first_side
- ldr r3, _081084D4 @ =gUnknown_02039238
- ldr r2, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bne _081084D8
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081084DC
- .align 2, 0
-_081084CC: .4byte gUnknown_02024C07
-_081084D0: .4byte gUnknown_02024C08
-_081084D4: .4byte gUnknown_02039238
-_081084D8:
- adds r0, r2, 0x6
- str r0, [r3]
-_081084DC:
- pop {r0}
- bx r0
- thumb_func_end tai28_unk
-
- thumb_func_start tai29_unk
-tai29_unk: @ 81084E0
- push {lr}
- ldr r0, _08108518 @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r1, _0810851C @ =gUnknown_02024C08
- ldrb r1, [r1]
- movs r2, 0x1
- bl b_first_side
- ldr r3, _08108520 @ =gUnknown_02039238
- ldr r2, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- beq _08108524
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108528
- .align 2, 0
-_08108518: .4byte gUnknown_02024C07
-_0810851C: .4byte gUnknown_02024C08
-_08108520: .4byte gUnknown_02039238
-_08108524:
- adds r0, r2, 0x6
- str r0, [r3]
-_08108528:
- pop {r0}
- bx r0
- thumb_func_end tai29_unk
-
- thumb_func_start nullsub_25
-nullsub_25: @ 810852C
- bx lr
- thumb_func_end nullsub_25
-
- thumb_func_start nullsub_26
-nullsub_26: @ 8108530
- bx lr
- thumb_func_end nullsub_26
-
- thumb_func_start tai2C_unk
-tai2C_unk: @ 8108534
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r1, _08108550 @ =0x02016800
- movs r0, 0
- str r0, [r1, 0x8]
- ldr r0, _08108554 @ =gUnknown_02039238
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bne _0810855C
- ldr r0, _08108558 @ =gUnknown_02024C07
- b _0810855E
- .align 2, 0
-_08108550: .4byte 0x02016800
-_08108554: .4byte gUnknown_02039238
-_08108558: .4byte gUnknown_02024C07
-_0810855C:
- ldr r0, _081085A8 @ =gUnknown_02024C08
-_0810855E:
- ldrb r5, [r0]
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- ldr r1, _081085AC @ =gEnemyParty
- mov r9, r1
- cmp r0, 0
- bne _08108574
- ldr r0, _081085B0 @ =gPlayerParty
- mov r9, r0
-_08108574:
- ldr r0, _081085B4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081085BC
- ldr r4, _081085B8 @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r4
- ldrb r0, [r0]
- mov r8, r0
- adds r0, r5, 0
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrb r6, [r0]
- b _081085C6
- .align 2, 0
-_081085A8: .4byte gUnknown_02024C08
-_081085AC: .4byte gEnemyParty
-_081085B0: .4byte gPlayerParty
-_081085B4: .4byte gUnknown_020239F8
-_081085B8: .4byte gUnknown_02024A6A
-_081085BC:
- ldr r1, _08108624 @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrb r6, [r0]
- mov r8, r6
-_081085C6:
- movs r5, 0
- ldr r7, _08108628 @ =0x02016800
-_081085CA:
- cmp r5, r8
- beq _08108608
- cmp r5, r6
- beq _08108608
- movs r0, 0x64
- muls r0, r5
- mov r1, r9
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08108608
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08108608
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08108608
- ldr r0, [r7, 0x8]
- adds r0, 0x1
- str r0, [r7, 0x8]
-_08108608:
- adds r5, 0x1
- cmp r5, 0x5
- ble _081085CA
- ldr r1, _0810862C @ =gUnknown_02039238
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108624: .4byte gUnknown_02024A6A
-_08108628: .4byte 0x02016800
-_0810862C: .4byte gUnknown_02039238
- thumb_func_end tai2C_unk
-
- thumb_func_start sub_8108630
-sub_8108630: @ 8108630
- ldr r1, _08108640 @ =0x02016800
- ldrh r0, [r1, 0x2]
- str r0, [r1, 0x8]
- ldr r1, _08108644 @ =gUnknown_02039238
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08108640: .4byte 0x02016800
-_08108644: .4byte gUnknown_02039238
- thumb_func_end sub_8108630
-
- thumb_func_start sub_8108648
-sub_8108648: @ 8108648
- ldr r3, _08108664 @ =0x02016800
- ldr r2, _08108668 @ =gBattleMoves
- ldrh r1, [r3, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- str r0, [r3, 0x8]
- ldr r1, _0810866C @ =gUnknown_02039238
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08108664: .4byte 0x02016800
-_08108668: .4byte gBattleMoves
-_0810866C: .4byte gUnknown_02039238
- thumb_func_end sub_8108648
-
- thumb_func_start sub_8108670
-sub_8108670: @ 8108670
- push {r4-r7,lr}
- ldr r0, _08108680 @ =gUnknown_02039238
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bne _08108688
- ldr r0, _08108684 @ =gUnknown_02024C07
- b _0810868A
- .align 2, 0
-_08108680: .4byte gUnknown_02039238
-_08108684: .4byte gUnknown_02024C07
-_08108688:
- ldr r0, _081086BC @ =gUnknown_02024C08
-_0810868A:
- ldrb r4, [r0]
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08108774
- adds r0, r4, 0
- bl battle_get_per_side_status
- movs r7, 0x1
- adds r1, r7, 0
- ands r1, r0
- ldr r6, _081086C0 @ =0x02016a00
- adds r0, r6, 0
- adds r0, 0x20
- adds r3, r1, r0
- ldrb r0, [r3]
- cmp r0, 0
- beq _081086C8
- ldr r0, _081086C4 @ =0xfffffe00
- adds r1, r6, r0
- ldrb r0, [r3]
- str r0, [r1, 0x8]
- b _08108784
- .align 2, 0
-_081086BC: .4byte gUnknown_02024C08
-_081086C0: .4byte 0x02016a00
-_081086C4: .4byte 0xfffffe00
-_081086C8:
- ldr r1, _081086F4 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r5, r0, r1
- adds r0, r5, 0
- adds r0, 0x20
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x17
- beq _081086E4
- cmp r0, 0x2A
- beq _081086E4
- cmp r0, 0x47
- bne _081086FC
-_081086E4:
- ldr r1, _081086F8 @ =0x02016800
- movs r0, 0x58
- muls r0, r4
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- str r0, [r1, 0x8]
- b _08108784
- .align 2, 0
-_081086F4: .4byte gBattleMons
-_081086F8: .4byte 0x02016800
-_081086FC:
- ldr r4, _08108734 @ =gBaseStats
- ldrh r0, [r5]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r3, r1, r4
- ldrb r0, [r3, 0x16]
- cmp r0, 0
- beq _08108764
- ldrb r0, [r3, 0x17]
- cmp r0, 0
- beq _08108754
- bl Random
- adds r1, r7, 0
- ands r1, r0
- cmp r1, 0
- beq _0810873C
- ldr r0, _08108738 @ =0xfffffe00
- adds r2, r6, r0
- ldrh r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x16]
- b _08108782
- .align 2, 0
-_08108734: .4byte gBaseStats
-_08108738: .4byte 0xfffffe00
-_0810873C:
- ldr r0, _08108750 @ =0xfffffe00
- adds r2, r6, r0
- ldrh r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x17]
- b _08108782
- .align 2, 0
-_08108750: .4byte 0xfffffe00
-_08108754:
- ldr r0, _08108760 @ =0xfffffe00
- adds r1, r6, r0
- ldrb r0, [r3, 0x16]
- str r0, [r1, 0x8]
- b _08108784
- .align 2, 0
-_08108760: .4byte 0xfffffe00
-_08108764:
- ldr r0, _08108770 @ =0xfffffe00
- adds r1, r6, r0
- ldrb r0, [r3, 0x17]
- str r0, [r1, 0x8]
- b _08108784
- .align 2, 0
-_08108770: .4byte 0xfffffe00
-_08108774:
- ldr r2, _08108794 @ =0x02016800
- ldr r1, _08108798 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
-_08108782:
- str r0, [r2, 0x8]
-_08108784:
- ldr r1, _0810879C @ =gUnknown_02039238
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108794: .4byte 0x02016800
-_08108798: .4byte gBattleMons
-_0810879C: .4byte gUnknown_02039238
- thumb_func_end sub_8108670
-
- thumb_func_start tai30_unk
-tai30_unk: @ 81087A0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0810885C @ =gUnknown_02024DEC
- movs r2, 0
- strh r2, [r0]
- ldr r1, _08108860 @ =0x02000000
- ldr r3, _08108864 @ =0x0001601c
- adds r0, r1, r3
- movs r4, 0
- strb r2, [r0]
- adds r3, 0x3
- adds r0, r1, r3
- movs r3, 0x1
- strb r3, [r0]
- ldr r0, _08108868 @ =gUnknown_02024C68
- strb r2, [r0]
- ldr r0, _0810886C @ =gCritMultiplier
- strb r3, [r0]
- movs r0, 0xB4
- lsls r0, 9
- adds r1, r0
- str r4, [r1, 0x8]
- movs r5, 0
- ldr r4, _08108870 @ =gUnknown_02024BEC
- ldr r7, _08108874 @ =gUnknown_02024BE6
- ldr r3, _08108878 @ =gUnknown_02024A8C
- mov r8, r3
- ldr r6, _0810887C @ =gUnknown_02024C07
-_081087DA:
- movs r0, 0x28
- str r0, [r4]
- lsls r1, r5, 1
- ldrb r2, [r6]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0
- add r1, r8
- ldrh r0, [r1]
- strh r0, [r7]
- lsls r0, 16
- cmp r0, 0
- beq _08108844
- ldrh r0, [r7]
- ldrb r1, [r6]
- ldr r2, _08108880 @ =gUnknown_02024C08
- ldrb r2, [r2]
- bl move_effectiveness_something
- ldr r0, [r4]
- cmp r0, 0x78
- bne _0810880A
- movs r0, 0x50
- str r0, [r4]
-_0810880A:
- ldr r0, [r4]
- cmp r0, 0xF0
- bne _08108814
- movs r0, 0xA0
- str r0, [r4]
-_08108814:
- ldr r0, [r4]
- cmp r0, 0x1E
- bne _0810881E
- movs r0, 0x14
- str r0, [r4]
-_0810881E:
- ldr r0, [r4]
- cmp r0, 0xF
- bne _08108828
- movs r0, 0xA
- str r0, [r4]
-_08108828:
- ldr r0, _08108868 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08108838
- movs r0, 0
- str r0, [r4]
-_08108838:
- ldr r2, _08108884 @ =0x02016800
- ldr r0, [r2, 0x8]
- ldr r1, [r4]
- cmp r0, r1
- bcs _08108844
- str r1, [r2, 0x8]
-_08108844:
- adds r5, 0x1
- cmp r5, 0x3
- ble _081087DA
- ldr r1, _08108888 @ =gUnknown_02039238
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810885C: .4byte gUnknown_02024DEC
-_08108860: .4byte 0x02000000
-_08108864: .4byte 0x0001601c
-_08108868: .4byte gUnknown_02024C68
-_0810886C: .4byte gCritMultiplier
-_08108870: .4byte gUnknown_02024BEC
-_08108874: .4byte gUnknown_02024BE6
-_08108878: .4byte gUnknown_02024A8C
-_0810887C: .4byte gUnknown_02024C07
-_08108880: .4byte gUnknown_02024C08
-_08108884: .4byte 0x02016800
-_08108888: .4byte gUnknown_02039238
- thumb_func_end tai30_unk
-
- thumb_func_start dp15_simulate_damage_bonus_jump_if_eq
-dp15_simulate_damage_bonus_jump_if_eq: @ 810888C
- push {r4,r5,lr}
- ldr r0, _08108928 @ =gUnknown_02024DEC
- movs r1, 0
- strh r1, [r0]
- ldr r2, _0810892C @ =0x02000000
- ldr r3, _08108930 @ =0x0001601c
- adds r0, r2, r3
- strb r1, [r0]
- adds r3, 0x3
- adds r0, r2, r3
- movs r3, 0x1
- strb r3, [r0]
- ldr r5, _08108934 @ =gUnknown_02024C68
- strb r1, [r5]
- ldr r0, _08108938 @ =gCritMultiplier
- strb r3, [r0]
- ldr r4, _0810893C @ =gUnknown_02024BEC
- movs r0, 0x28
- str r0, [r4]
- ldr r1, _08108940 @ =gUnknown_02024BE6
- movs r0, 0xB4
- lsls r0, 9
- adds r2, r0
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- ldrh r0, [r1]
- ldr r1, _08108944 @ =gUnknown_02024C07
- ldrb r1, [r1]
- ldr r2, _08108948 @ =gUnknown_02024C08
- ldrb r2, [r2]
- bl move_effectiveness_something
- ldr r0, [r4]
- cmp r0, 0x78
- bne _081088D6
- movs r0, 0x50
- str r0, [r4]
-_081088D6:
- ldr r0, [r4]
- cmp r0, 0xF0
- bne _081088E0
- movs r0, 0xA0
- str r0, [r4]
-_081088E0:
- ldr r0, [r4]
- cmp r0, 0x1E
- bne _081088EA
- movs r0, 0x14
- str r0, [r4]
-_081088EA:
- ldr r0, [r4]
- cmp r0, 0xF
- bne _081088F4
- movs r0, 0xA
- str r0, [r4]
-_081088F4:
- ldrb r1, [r5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08108902
- movs r0, 0
- str r0, [r4]
-_08108902:
- ldrb r0, [r4]
- ldr r3, _0810894C @ =gUnknown_02039238
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bne _08108950
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108954
- .align 2, 0
-_08108928: .4byte gUnknown_02024DEC
-_0810892C: .4byte 0x02000000
-_08108930: .4byte 0x0001601c
-_08108934: .4byte gUnknown_02024C68
-_08108938: .4byte gCritMultiplier
-_0810893C: .4byte gUnknown_02024BEC
-_08108940: .4byte gUnknown_02024BE6
-_08108944: .4byte gUnknown_02024C07
-_08108948: .4byte gUnknown_02024C08
-_0810894C: .4byte gUnknown_02039238
-_08108950:
- adds r0, r2, 0x6
- str r0, [r3]
-_08108954:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end dp15_simulate_damage_bonus_jump_if_eq
-
- thumb_func_start nullsub_71
-nullsub_71: @ 810895C
- bx lr
- thumb_func_end nullsub_71
-
- thumb_func_start nullsub_90
-nullsub_90: @ 8108960
- bx lr
- thumb_func_end nullsub_90
-
- thumb_func_start sub_8108964
-sub_8108964: @ 8108964
+
+ thumb_func_start BattleAICmd_if_status_in_party
+BattleAICmd_if_status_in_party: @ 8108964
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
- ldr r0, _0810897C @ =gUnknown_02039238
+ ldr r0, _0810897C @ =gAIScriptPtr
ldr r1, [r0]
ldrb r1, [r1, 0x1]
cmp r1, 0x1
@@ -3357,10 +21,10 @@ sub_8108964: @ 8108964
ldr r1, _08108980 @ =gEnemyParty
b _081089A6
.align 2, 0
-_0810897C: .4byte gUnknown_02039238
+_0810897C: .4byte gAIScriptPtr
_08108980: .4byte gEnemyParty
_08108984:
- ldr r3, _081089A0 @ =gUnknown_02039238
+ ldr r3, _081089A0 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2, 0x6]
ldrb r0, [r2, 0x7]
@@ -3375,7 +39,7 @@ _08108984:
str r1, [r3]
b _08108A12
.align 2, 0
-_081089A0: .4byte gUnknown_02039238
+_081089A0: .4byte gAIScriptPtr
_081089A4:
ldr r1, _08108A20 @ =gPlayerParty
_081089A6:
@@ -3428,7 +92,7 @@ _08108A00:
mov r1, r8
cmp r1, 0x5
ble _081089C8
- ldr r1, _08108A24 @ =gUnknown_02039238
+ ldr r1, _08108A24 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0xA
str r0, [r1]
@@ -3442,17 +106,17 @@ _08108A12:
bx r0
.align 2, 0
_08108A20: .4byte gPlayerParty
-_08108A24: .4byte gUnknown_02039238
- thumb_func_end sub_8108964
+_08108A24: .4byte gAIScriptPtr
+ thumb_func_end BattleAICmd_if_status_in_party
- thumb_func_start sub_8108A28
-sub_8108A28: @ 8108A28
+ thumb_func_start BattleAICmd_if_status_not_in_party
+BattleAICmd_if_status_not_in_party: @ 8108A28
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
- ldr r0, _08108A44 @ =gUnknown_02039238
+ ldr r0, _08108A44 @ =gAIScriptPtr
ldr r1, [r0]
ldrb r1, [r1, 0x1]
adds r2, r0, 0
@@ -3462,7 +126,7 @@ sub_8108A28: @ 8108A28
mov r10, r0
b _08108A50
.align 2, 0
-_08108A44: .4byte gUnknown_02039238
+_08108A44: .4byte gAIScriptPtr
_08108A48: .4byte gEnemyParty
_08108A4C:
ldr r1, _08108AE4 @ =gPlayerParty
@@ -3520,7 +184,7 @@ _08108AB0:
mov r1, r8
cmp r1, 0x5
ble _08108A6C
- ldr r3, _08108AE8 @ =gUnknown_02039238
+ ldr r3, _08108AE8 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2, 0x6]
ldrb r0, [r2, 0x7]
@@ -3542,11 +206,11 @@ _08108AB0:
bx r0
.align 2, 0
_08108AE4: .4byte gPlayerParty
-_08108AE8: .4byte gUnknown_02039238
- thumb_func_end sub_8108A28
+_08108AE8: .4byte gAIScriptPtr
+ thumb_func_end BattleAICmd_if_status_not_in_party
- thumb_func_start sub_8108AEC
-sub_8108AEC: @ 8108AEC
+ thumb_func_start BattleAICmd_unk_36
+BattleAICmd_unk_36: @ 8108AEC
push {lr}
ldr r2, _08108B3C @ =word_2024DB8
ldrh r1, [r2]
@@ -3584,7 +248,7 @@ _08108B20:
movs r0, 0x3
str r0, [r1, 0x8]
_08108B2E:
- ldr r1, _08108B44 @ =gUnknown_02039238
+ ldr r1, _08108B44 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
@@ -3593,11 +257,11 @@ _08108B2E:
.align 2, 0
_08108B3C: .4byte word_2024DB8
_08108B40: .4byte 0x02016800
-_08108B44: .4byte gUnknown_02039238
- thumb_func_end sub_8108AEC
+_08108B44: .4byte gAIScriptPtr
+ thumb_func_end BattleAICmd_unk_36
- thumb_func_start sub_8108B48
-sub_8108B48: @ 8108B48
+ thumb_func_start BattleAICmd_if_effect
+BattleAICmd_if_effect: @ 8108B48
push {lr}
ldr r2, _08108B7C @ =gBattleMoves
ldr r0, _08108B80 @ =0x02016800
@@ -3606,7 +270,7 @@ sub_8108B48: @ 8108B48
adds r0, r1
lsls r0, 2
adds r0, r2
- ldr r3, _08108B84 @ =gUnknown_02039238
+ ldr r3, _08108B84 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r0, [r0]
ldrb r1, [r2, 0x1]
@@ -3627,17 +291,17 @@ sub_8108B48: @ 8108B48
.align 2, 0
_08108B7C: .4byte gBattleMoves
_08108B80: .4byte 0x02016800
-_08108B84: .4byte gUnknown_02039238
+_08108B84: .4byte gAIScriptPtr
_08108B88:
adds r0, r2, 0x6
str r0, [r3]
_08108B8C:
pop {r0}
bx r0
- thumb_func_end sub_8108B48
+ thumb_func_end BattleAICmd_if_effect
- thumb_func_start sub_8108B90
-sub_8108B90: @ 8108B90
+ thumb_func_start BattleAICmd_if_not_effect
+BattleAICmd_if_not_effect: @ 8108B90
push {lr}
ldr r2, _08108BC4 @ =gBattleMoves
ldr r0, _08108BC8 @ =0x02016800
@@ -3646,7 +310,7 @@ sub_8108B90: @ 8108B90
adds r0, r1
lsls r0, 2
adds r0, r2
- ldr r3, _08108BCC @ =gUnknown_02039238
+ ldr r3, _08108BCC @ =gAIScriptPtr
ldr r2, [r3]
ldrb r0, [r0]
ldrb r1, [r2, 0x1]
@@ -3667,19 +331,19 @@ sub_8108B90: @ 8108B90
.align 2, 0
_08108BC4: .4byte gBattleMoves
_08108BC8: .4byte 0x02016800
-_08108BCC: .4byte gUnknown_02039238
+_08108BCC: .4byte gAIScriptPtr
_08108BD0:
adds r0, r2, 0x6
str r0, [r3]
_08108BD4:
pop {r0}
bx r0
- thumb_func_end sub_8108B90
+ thumb_func_end BattleAICmd_if_not_effect
- thumb_func_start sub_8108BD8
-sub_8108BD8: @ 8108BD8
+ thumb_func_start BattleAICmd_if_stat_level_less_than
+BattleAICmd_if_stat_level_less_than: @ 8108BD8
push {r4,lr}
- ldr r0, _08108BEC @ =gUnknown_02039238
+ ldr r0, _08108BEC @ =gAIScriptPtr
ldr r1, [r0]
ldrb r1, [r1, 0x1]
adds r4, r0, 0
@@ -3688,7 +352,7 @@ sub_8108BD8: @ 8108BD8
ldr r0, _08108BF0 @ =gUnknown_02024C07
b _08108BF6
.align 2, 0
-_08108BEC: .4byte gUnknown_02039238
+_08108BEC: .4byte gAIScriptPtr
_08108BF0: .4byte gUnknown_02024C07
_08108BF4:
ldr r0, _08108C2C @ =gUnknown_02024C08
@@ -3731,12 +395,12 @@ _08108C3A:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_8108BD8
+ thumb_func_end BattleAICmd_if_stat_level_less_than
- thumb_func_start sub_8108C40
-sub_8108C40: @ 8108C40
+ thumb_func_start BattleAICmd_if_stat_level_more_than
+BattleAICmd_if_stat_level_more_than: @ 8108C40
push {r4,lr}
- ldr r0, _08108C54 @ =gUnknown_02039238
+ ldr r0, _08108C54 @ =gAIScriptPtr
ldr r1, [r0]
ldrb r1, [r1, 0x1]
adds r4, r0, 0
@@ -3745,7 +409,7 @@ sub_8108C40: @ 8108C40
ldr r0, _08108C58 @ =gUnknown_02024C07
b _08108C5E
.align 2, 0
-_08108C54: .4byte gUnknown_02039238
+_08108C54: .4byte gAIScriptPtr
_08108C58: .4byte gUnknown_02024C07
_08108C5C:
ldr r0, _08108C94 @ =gUnknown_02024C08
@@ -3788,12 +452,12 @@ _08108CA2:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_8108C40
+ thumb_func_end BattleAICmd_if_stat_level_more_than
- thumb_func_start sub_8108CA8
-sub_8108CA8: @ 8108CA8
+ thumb_func_start BattleAICmd_if_stat_level_equal
+BattleAICmd_if_stat_level_equal: @ 8108CA8
push {r4,lr}
- ldr r0, _08108CBC @ =gUnknown_02039238
+ ldr r0, _08108CBC @ =gAIScriptPtr
ldr r1, [r0]
ldrb r1, [r1, 0x1]
adds r4, r0, 0
@@ -3802,7 +466,7 @@ sub_8108CA8: @ 8108CA8
ldr r0, _08108CC0 @ =gUnknown_02024C07
b _08108CC6
.align 2, 0
-_08108CBC: .4byte gUnknown_02039238
+_08108CBC: .4byte gAIScriptPtr
_08108CC0: .4byte gUnknown_02024C07
_08108CC4:
ldr r0, _08108CFC @ =gUnknown_02024C08
@@ -3845,12 +509,12 @@ _08108D0A:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_8108CA8
+ thumb_func_end BattleAICmd_if_stat_level_equal
- thumb_func_start sub_8108D10
-sub_8108D10: @ 8108D10
+ thumb_func_start BattleAICmd_if_stat_level_not_equal
+BattleAICmd_if_stat_level_not_equal: @ 8108D10
push {r4,lr}
- ldr r0, _08108D24 @ =gUnknown_02039238
+ ldr r0, _08108D24 @ =gAIScriptPtr
ldr r1, [r0]
ldrb r1, [r1, 0x1]
adds r4, r0, 0
@@ -3859,7 +523,7 @@ sub_8108D10: @ 8108D10
ldr r0, _08108D28 @ =gUnknown_02024C07
b _08108D2E
.align 2, 0
-_08108D24: .4byte gUnknown_02039238
+_08108D24: .4byte gAIScriptPtr
_08108D28: .4byte gUnknown_02024C07
_08108D2C:
ldr r0, _08108D64 @ =gUnknown_02024C08
@@ -3902,10 +566,10 @@ _08108D72:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_8108D10
+ thumb_func_end BattleAICmd_if_stat_level_not_equal
- thumb_func_start tai3D_unk
-tai3D_unk: @ 8108D78
+ thumb_func_start BattleAICmd_if_can_faint
+BattleAICmd_if_can_faint: @ 8108D78
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -3972,7 +636,7 @@ _08108DEE:
ldr r0, [r4]
cmp r1, r0
bgt _08108E4C
- ldr r3, _08108E48 @ =gUnknown_02039238
+ ldr r3, _08108E48 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2, 0x1]
ldrb r0, [r2, 0x2]
@@ -3998,9 +662,9 @@ _08108E38: .4byte gUnknown_02024C07
_08108E3C: .4byte gUnknown_02024C08
_08108E40: .4byte gUnknown_02024BEC
_08108E44: .4byte gBattleMons
-_08108E48: .4byte gUnknown_02039238
+_08108E48: .4byte gAIScriptPtr
_08108E4C:
- ldr r1, _08108E60 @ =gUnknown_02039238
+ ldr r1, _08108E60 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x5
str r0, [r1]
@@ -4011,11 +675,11 @@ _08108E54:
pop {r0}
bx r0
.align 2, 0
-_08108E60: .4byte gUnknown_02039238
- thumb_func_end tai3D_unk
+_08108E60: .4byte gAIScriptPtr
+ thumb_func_end BattleAICmd_if_can_faint
- thumb_func_start dp15_determine_move_damage_jump_if_not_fatal
-dp15_determine_move_damage_jump_if_not_fatal: @ 8108E64
+ thumb_func_start BattleAICmd_if_cant_faint
+BattleAICmd_if_cant_faint: @ 8108E64
push {r4-r7,lr}
ldr r2, _08108EF8 @ =gBattleMoves
ldr r7, _08108EFC @ =0x02016800
@@ -4072,7 +736,7 @@ dp15_determine_move_damage_jump_if_not_fatal: @ 8108E64
ldrh r1, [r1, 0x28]
cmp r1, r0
ble _08108F28
- ldr r3, _08108F24 @ =gUnknown_02039238
+ ldr r3, _08108F24 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2, 0x1]
ldrb r0, [r2, 0x2]
@@ -4098,9 +762,9 @@ _08108F14: .4byte gUnknown_02024C07
_08108F18: .4byte gUnknown_02024C08
_08108F1C: .4byte gUnknown_02024BEC
_08108F20: .4byte gBattleMons
-_08108F24: .4byte gUnknown_02039238
+_08108F24: .4byte gAIScriptPtr
_08108F28:
- ldr r1, _08108F38 @ =gUnknown_02039238
+ ldr r1, _08108F38 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x5
str r0, [r1]
@@ -4109,13 +773,13 @@ _08108F30:
pop {r0}
bx r0
.align 2, 0
-_08108F38: .4byte gUnknown_02039238
- thumb_func_end dp15_determine_move_damage_jump_if_not_fatal
+_08108F38: .4byte gAIScriptPtr
+ thumb_func_end BattleAICmd_if_cant_faint
- thumb_func_start tai40_unk
-tai40_unk: @ 8108F3C
+ thumb_func_start BattleAICmd_unk_3F
+BattleAICmd_unk_3F: @ 8108F3C
push {r4-r7,lr}
- ldr r1, _08108F58 @ =gUnknown_02039238
+ ldr r1, _08108F58 @ =gAIScriptPtr
ldr r0, [r1]
adds r6, r0, 0x2
ldrb r0, [r0, 0x1]
@@ -4128,7 +792,7 @@ tai40_unk: @ 8108F3C
beq _08108FA8
b _08109008
.align 2, 0
-_08108F58: .4byte gUnknown_02039238
+_08108F58: .4byte gAIScriptPtr
_08108F5C:
cmp r0, 0x2
beq _08108FA8
@@ -4225,12 +889,12 @@ _08109008:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end tai40_unk
+ thumb_func_end BattleAICmd_unk_3F
- thumb_func_start sub_8109010
-sub_8109010: @ 8109010
+ thumb_func_start BattleAICmd_unk_40
+BattleAICmd_unk_40: @ 8109010
push {r4-r7,lr}
- ldr r1, _0810902C @ =gUnknown_02039238
+ ldr r1, _0810902C @ =gAIScriptPtr
ldr r0, [r1]
adds r6, r0, 0x2
ldrb r0, [r0, 0x1]
@@ -4243,7 +907,7 @@ sub_8109010: @ 8109010
beq _0810907C
b _081090DC
.align 2, 0
-_0810902C: .4byte gUnknown_02039238
+_0810902C: .4byte gAIScriptPtr
_08109030:
cmp r0, 0x2
beq _0810907C
@@ -4340,12 +1004,12 @@ _081090DC:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_8109010
+ thumb_func_end BattleAICmd_unk_40
- thumb_func_start sub_81090E4
-sub_81090E4: @ 81090E4
+ thumb_func_start BattleAICmd_if_move_effect
+BattleAICmd_if_move_effect: @ 81090E4
push {r4-r7,lr}
- ldr r1, _081090FC @ =gUnknown_02039238
+ ldr r1, _081090FC @ =gAIScriptPtr
ldr r0, [r1]
ldrb r0, [r0, 0x1]
adds r4, r1, 0
@@ -4357,7 +1021,7 @@ sub_81090E4: @ 81090E4
beq _0810915C
b _081091B8
.align 2, 0
-_081090FC: .4byte gUnknown_02039238
+_081090FC: .4byte gAIScriptPtr
_08109100:
cmp r0, 0x2
beq _0810915C
@@ -4373,7 +1037,7 @@ _08109108:
muls r0, r2
adds r1, 0xC
adds r2, r0, r1
- ldr r5, _08109158 @ =gUnknown_02039238
+ ldr r5, _08109158 @ =gAIScriptPtr
_0810911C:
ldrh r0, [r2]
cmp r0, 0
@@ -4404,7 +1068,7 @@ _0810913E:
_0810914C: .4byte gBattleMons
_08109150: .4byte gUnknown_02024C07
_08109154: .4byte gBattleMoves
-_08109158: .4byte gUnknown_02039238
+_08109158: .4byte gAIScriptPtr
_0810915C:
movs r3, 0
ldr r1, _081091C0 @ =gBattleMons
@@ -4465,12 +1129,12 @@ _081091C4: .4byte gUnknown_02024C07
_081091C8: .4byte gBattleMoves
_081091CC: .4byte 0x02016a00
_081091D0: .4byte gUnknown_02024C08
- thumb_func_end sub_81090E4
+ thumb_func_end BattleAICmd_if_move_effect
- thumb_func_start sub_81091D4
-sub_81091D4: @ 81091D4
+ thumb_func_start BattleAICmd_if_not_move_effect
+BattleAICmd_if_not_move_effect: @ 81091D4
push {r4-r6,lr}
- ldr r1, _081091EC @ =gUnknown_02039238
+ ldr r1, _081091EC @ =gAIScriptPtr
ldr r0, [r1]
ldrb r0, [r0, 0x1]
adds r4, r1, 0
@@ -4482,7 +1146,7 @@ sub_81091D4: @ 81091D4
beq _0810925C
b _08109294
.align 2, 0
-_081091EC: .4byte gUnknown_02039238
+_081091EC: .4byte gAIScriptPtr
_081091F0:
cmp r0, 0x2
beq _0810925C
@@ -4498,7 +1162,7 @@ _081091F8:
muls r0, r2
adds r1, 0xC
adds r2, r0, r1
- ldr r5, _08109258 @ =gUnknown_02039238
+ ldr r5, _08109258 @ =gAIScriptPtr
_0810920C:
ldrh r0, [r2]
cmp r0, 0
@@ -4538,7 +1202,7 @@ _0810922E:
_0810924C: .4byte gBattleMons
_08109250: .4byte gUnknown_02024C07
_08109254: .4byte gBattleMoves
-_08109258: .4byte gUnknown_02039238
+_08109258: .4byte gAIScriptPtr
_0810925C:
movs r3, 0
ldr r1, _0810929C @ =0x02016a00
@@ -4579,12 +1243,12 @@ _08109294:
_0810929C: .4byte 0x02016a00
_081092A0: .4byte gUnknown_02024C08
_081092A4: .4byte gBattleMoves
- thumb_func_end sub_81091D4
+ thumb_func_end BattleAICmd_if_not_move_effect
- thumb_func_start tai43_unk
-tai43_unk: @ 81092A8
+ thumb_func_start BattleAICmd_if_last_move_did_damage
+BattleAICmd_if_last_move_did_damage: @ 81092A8
push {r4,r5,lr}
- ldr r0, _081092BC @ =gUnknown_02039238
+ ldr r0, _081092BC @ =gAIScriptPtr
ldr r1, [r0]
ldrb r1, [r1, 0x1]
adds r5, r0, 0
@@ -4593,7 +1257,7 @@ tai43_unk: @ 81092A8
ldr r0, _081092C0 @ =gUnknown_02024C07
b _081092C6
.align 2, 0
-_081092BC: .4byte gUnknown_02039238
+_081092BC: .4byte gAIScriptPtr
_081092C0: .4byte gUnknown_02024C07
_081092C4:
ldr r0, _081092E4 @ =gUnknown_02024C08
@@ -4654,12 +1318,12 @@ _08109328:
pop {r4,r5}
pop {r0}
bx r0
- thumb_func_end tai43_unk
+ thumb_func_end BattleAICmd_if_last_move_did_damage
- thumb_func_start sub_8109330
-sub_8109330: @ 8109330
+ thumb_func_start BattleAICmd_if_encored
+BattleAICmd_if_encored: @ 8109330
push {r4,lr}
- ldr r4, _08109344 @ =gUnknown_02039238
+ ldr r4, _08109344 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r0, [r3, 0x1]
cmp r0, 0
@@ -4668,7 +1332,7 @@ sub_8109330: @ 8109330
beq _08109370
b _081093AC
.align 2, 0
-_08109344: .4byte gUnknown_02039238
+_08109344: .4byte gAIScriptPtr
_08109348:
ldr r2, _08109364 @ =gUnknown_02024CA8
ldr r0, _08109368 @ =gUnknown_02024A60
@@ -4724,10 +1388,10 @@ _081093B0:
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_8109330
+ thumb_func_end BattleAICmd_if_encored
- thumb_func_start sub_81093B8
-sub_81093B8: @ 81093B8
+ thumb_func_start BattleAICmd_unk_45
+BattleAICmd_unk_45: @ 81093B8
ldr r2, _081093C4 @ =0x02016800
ldrb r1, [r2, 0x10]
movs r0, 0xB
@@ -4736,10 +1400,10 @@ sub_81093B8: @ 81093B8
bx lr
.align 2, 0
_081093C4: .4byte 0x02016800
- thumb_func_end sub_81093B8
+ thumb_func_end BattleAICmd_unk_45
- thumb_func_start sub_81093C8
-sub_81093C8: @ 81093C8
+ thumb_func_start BattleAICmd_if_random_2
+BattleAICmd_if_random_2: @ 81093C8
push {r4,lr}
ldr r0, _0810940C @ =0x02000000
ldr r1, _08109410 @ =0x00016088
@@ -4758,7 +1422,7 @@ sub_81093C8: @ 81093C8
lsrs r0, 24
cmp r0, r4
bcs _08109418
- ldr r3, _08109414 @ =gUnknown_02039238
+ ldr r3, _08109414 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2, 0x1]
ldrb r0, [r2, 0x2]
@@ -4775,9 +1439,9 @@ sub_81093C8: @ 81093C8
.align 2, 0
_0810940C: .4byte 0x02000000
_08109410: .4byte 0x00016088
-_08109414: .4byte gUnknown_02039238
+_08109414: .4byte gAIScriptPtr
_08109418:
- ldr r1, _08109428 @ =gUnknown_02039238
+ ldr r1, _08109428 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x5
str r0, [r1]
@@ -4786,11 +1450,11 @@ _08109420:
pop {r0}
bx r0
.align 2, 0
-_08109428: .4byte gUnknown_02039238
- thumb_func_end sub_81093C8
+_08109428: .4byte gAIScriptPtr
+ thumb_func_end BattleAICmd_if_random_2
- thumb_func_start sub_810942C
-sub_810942C: @ 810942C
+ thumb_func_start BattleAICmd_unk_47
+BattleAICmd_unk_47: @ 810942C
ldr r2, _08109438 @ =0x02016800
ldrb r1, [r2, 0x10]
movs r0, 0xD
@@ -4799,12 +1463,12 @@ sub_810942C: @ 810942C
bx lr
.align 2, 0
_08109438: .4byte 0x02016800
- thumb_func_end sub_810942C
+ thumb_func_end BattleAICmd_unk_47
- thumb_func_start dp15_get_held_item_x12__8
-dp15_get_held_item_x12__8: @ 810943C
+ thumb_func_start BattleAICmd_get_hold_effect
+BattleAICmd_get_hold_effect: @ 810943C
push {r4,lr}
- ldr r0, _0810944C @ =gUnknown_02039238
+ ldr r0, _0810944C @ =gAIScriptPtr
ldr r0, [r0]
ldrb r0, [r0, 0x1]
cmp r0, 0x1
@@ -4812,7 +1476,7 @@ dp15_get_held_item_x12__8: @ 810943C
ldr r0, _08109450 @ =gUnknown_02024C07
b _08109456
.align 2, 0
-_0810944C: .4byte gUnknown_02039238
+_0810944C: .4byte gAIScriptPtr
_08109450: .4byte gUnknown_02024C07
_08109454:
ldr r0, _0810947C @ =gUnknown_02024C08
@@ -4850,7 +1514,7 @@ _08109488:
lsrs r0, 24
str r0, [r1, 0x8]
_0810949E:
- ldr r1, _081094B4 @ =gUnknown_02039238
+ ldr r1, _081094B4 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x2
str r0, [r1]
@@ -4860,13 +1524,13 @@ _0810949E:
.align 2, 0
_081094AC: .4byte gBattleMons
_081094B0: .4byte 0x02016800
-_081094B4: .4byte gUnknown_02039238
- thumb_func_end dp15_get_held_item_x12__8
+_081094B4: .4byte gAIScriptPtr
+ thumb_func_end BattleAICmd_get_hold_effect
- thumb_func_start tai49_unk
-tai49_unk: @ 81094B8
+ thumb_func_start BattleAICmd_get_gender
+BattleAICmd_get_gender: @ 81094B8
push {lr}
- ldr r0, _081094C8 @ =gUnknown_02039238
+ ldr r0, _081094C8 @ =gAIScriptPtr
ldr r0, [r0]
ldrb r0, [r0, 0x1]
cmp r0, 0x1
@@ -4874,7 +1538,7 @@ tai49_unk: @ 81094B8
ldr r0, _081094CC @ =gUnknown_02024C07
b _081094D2
.align 2, 0
-_081094C8: .4byte gUnknown_02039238
+_081094C8: .4byte gAIScriptPtr
_081094CC: .4byte gUnknown_02024C07
_081094D0:
ldr r0, _081094FC @ =gUnknown_02024C08
@@ -4893,7 +1557,7 @@ _081094D2:
lsls r0, 24
lsrs r0, 24
str r0, [r1, 0x8]
- ldr r1, _08109508 @ =gUnknown_02039238
+ ldr r1, _08109508 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x2
str r0, [r1]
@@ -4903,13 +1567,13 @@ _081094D2:
_081094FC: .4byte gUnknown_02024C08
_08109500: .4byte gBattleMons
_08109504: .4byte 0x02016800
-_08109508: .4byte gUnknown_02039238
- thumb_func_end tai49_unk
+_08109508: .4byte gAIScriptPtr
+ thumb_func_end BattleAICmd_get_gender
- thumb_func_start sub_810950C
-sub_810950C: @ 810950C
+ thumb_func_start BattleAICmd_is_first_turn
+BattleAICmd_is_first_turn: @ 810950C
push {r4,lr}
- ldr r0, _08109520 @ =gUnknown_02039238
+ ldr r0, _08109520 @ =gAIScriptPtr
ldr r1, [r0]
ldrb r1, [r1, 0x1]
adds r4, r0, 0
@@ -4918,7 +1582,7 @@ sub_810950C: @ 810950C
ldr r0, _08109524 @ =gUnknown_02024C07
b _0810952A
.align 2, 0
-_08109520: .4byte gUnknown_02039238
+_08109520: .4byte gAIScriptPtr
_08109524: .4byte gUnknown_02024C07
_08109528:
ldr r0, _08109548 @ =gUnknown_02024C08
@@ -4942,12 +1606,12 @@ _0810952A:
_08109548: .4byte gUnknown_02024C08
_0810954C: .4byte 0x02016800
_08109550: .4byte gUnknown_02024CA8
- thumb_func_end sub_810950C
+ thumb_func_end BattleAICmd_is_first_turn
- thumb_func_start sub_8109554
-sub_8109554: @ 8109554
+ thumb_func_start BattleAICmd_get_stockpile_count
+BattleAICmd_get_stockpile_count: @ 8109554
push {r4,lr}
- ldr r0, _08109568 @ =gUnknown_02039238
+ ldr r0, _08109568 @ =gAIScriptPtr
ldr r1, [r0]
ldrb r1, [r1, 0x1]
adds r4, r0, 0
@@ -4956,7 +1620,7 @@ sub_8109554: @ 8109554
ldr r0, _0810956C @ =gUnknown_02024C07
b _08109572
.align 2, 0
-_08109568: .4byte gUnknown_02039238
+_08109568: .4byte gAIScriptPtr
_0810956C: .4byte gUnknown_02024C07
_08109570:
ldr r0, _08109590 @ =gUnknown_02024C08
@@ -4980,17 +1644,17 @@ _08109572:
_08109590: .4byte gUnknown_02024C08
_08109594: .4byte 0x02016800
_08109598: .4byte gUnknown_02024CA8
- thumb_func_end sub_8109554
+ thumb_func_end BattleAICmd_get_stockpile_count
- thumb_func_start sub_810959C
-sub_810959C: @ 810959C
+ thumb_func_start BattleAICmd_unk_4C
+BattleAICmd_unk_4C: @ 810959C
ldr r2, _081095B4 @ =0x02016800
ldr r0, _081095B8 @ =gUnknown_020239F8
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
str r0, [r2, 0x8]
- ldr r1, _081095BC @ =gUnknown_02039238
+ ldr r1, _081095BC @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
@@ -4998,13 +1662,13 @@ sub_810959C: @ 810959C
.align 2, 0
_081095B4: .4byte 0x02016800
_081095B8: .4byte gUnknown_020239F8
-_081095BC: .4byte gUnknown_02039238
- thumb_func_end sub_810959C
+_081095BC: .4byte gAIScriptPtr
+ thumb_func_end BattleAICmd_unk_4C
- thumb_func_start sub_81095C0
-sub_81095C0: @ 81095C0
+ thumb_func_start BattleAICmd_get_item
+BattleAICmd_get_item: @ 81095C0
push {lr}
- ldr r0, _081095D4 @ =gUnknown_02039238
+ ldr r0, _081095D4 @ =gAIScriptPtr
ldr r1, [r0]
ldrb r1, [r1, 0x1]
adds r2, r0, 0
@@ -5013,7 +1677,7 @@ sub_81095C0: @ 81095C0
ldr r0, _081095D8 @ =gUnknown_02024C07
b _081095DE
.align 2, 0
-_081095D4: .4byte gUnknown_02039238
+_081095D4: .4byte gAIScriptPtr
_081095D8: .4byte gUnknown_02024C07
_081095DC:
ldr r0, _081095F8 @ =gUnknown_02024C08
@@ -5035,10 +1699,10 @@ _081095DE:
_081095F8: .4byte gUnknown_02024C08
_081095FC: .4byte 0x02016800
_08109600: .4byte 0xfffff8cc
- thumb_func_end sub_81095C0
+ thumb_func_end BattleAICmd_get_item
- thumb_func_start sub_8109604
-sub_8109604: @ 8109604
+ thumb_func_start BattleAICmd_unk_4E
+BattleAICmd_unk_4E: @ 8109604
ldr r3, _08109620 @ =0x02016800
ldr r2, _08109624 @ =gBattleMoves
ldr r1, [r3, 0x8]
@@ -5048,7 +1712,7 @@ sub_8109604: @ 8109604
adds r0, r2
ldrb r0, [r0, 0x2]
str r0, [r3, 0x8]
- ldr r1, _08109628 @ =gUnknown_02039238
+ ldr r1, _08109628 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
@@ -5056,11 +1720,11 @@ sub_8109604: @ 8109604
.align 2, 0
_08109620: .4byte 0x02016800
_08109624: .4byte gBattleMoves
-_08109628: .4byte gUnknown_02039238
- thumb_func_end sub_8109604
+_08109628: .4byte gAIScriptPtr
+ thumb_func_end BattleAICmd_unk_4E
- thumb_func_start sub_810962C
-sub_810962C: @ 810962C
+ thumb_func_start BattleAICmd_unk_4F
+BattleAICmd_unk_4F: @ 810962C
ldr r3, _08109648 @ =0x02016800
ldr r2, _0810964C @ =gBattleMoves
ldr r1, [r3, 0x8]
@@ -5070,7 +1734,7 @@ sub_810962C: @ 810962C
adds r0, r2
ldrb r0, [r0, 0x1]
str r0, [r3, 0x8]
- ldr r1, _08109650 @ =gUnknown_02039238
+ ldr r1, _08109650 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
@@ -5078,11 +1742,11 @@ sub_810962C: @ 810962C
.align 2, 0
_08109648: .4byte 0x02016800
_0810964C: .4byte gBattleMoves
-_08109650: .4byte gUnknown_02039238
- thumb_func_end sub_810962C
+_08109650: .4byte gAIScriptPtr
+ thumb_func_end BattleAICmd_unk_4F
- thumb_func_start sub_8109654
-sub_8109654: @ 8109654
+ thumb_func_start BattleAICmd_unk_50
+BattleAICmd_unk_50: @ 8109654
ldr r3, _08109670 @ =0x02016800
ldr r2, _08109674 @ =gBattleMoves
ldr r1, [r3, 0x8]
@@ -5092,7 +1756,7 @@ sub_8109654: @ 8109654
adds r0, r2
ldrb r0, [r0]
str r0, [r3, 0x8]
- ldr r1, _08109678 @ =gUnknown_02039238
+ ldr r1, _08109678 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
@@ -5100,13 +1764,13 @@ sub_8109654: @ 8109654
.align 2, 0
_08109670: .4byte 0x02016800
_08109674: .4byte gBattleMoves
-_08109678: .4byte gUnknown_02039238
- thumb_func_end sub_8109654
+_08109678: .4byte gAIScriptPtr
+ thumb_func_end BattleAICmd_unk_50
- thumb_func_start sub_810967C
-sub_810967C: @ 810967C
+ thumb_func_start BattleAICmd_get_protect_count
+BattleAICmd_get_protect_count: @ 810967C
push {r4,lr}
- ldr r0, _08109690 @ =gUnknown_02039238
+ ldr r0, _08109690 @ =gAIScriptPtr
ldr r1, [r0]
ldrb r1, [r1, 0x1]
adds r4, r0, 0
@@ -5115,7 +1779,7 @@ sub_810967C: @ 810967C
ldr r0, _08109694 @ =gUnknown_02024C07
b _0810969A
.align 2, 0
-_08109690: .4byte gUnknown_02039238
+_08109690: .4byte gAIScriptPtr
_08109694: .4byte gUnknown_02024C07
_08109698:
ldr r0, _081096B8 @ =gUnknown_02024C08
@@ -5139,42 +1803,42 @@ _0810969A:
_081096B8: .4byte gUnknown_02024C08
_081096BC: .4byte 0x02016800
_081096C0: .4byte gUnknown_02024CA8
- thumb_func_end sub_810967C
+ thumb_func_end BattleAICmd_get_protect_count
- thumb_func_start nullsub_27
-nullsub_27: @ 81096C4
+ thumb_func_start BattleAICmd_unk_52
+BattleAICmd_unk_52: @ 81096C4
bx lr
- thumb_func_end nullsub_27
+ thumb_func_end BattleAICmd_unk_52
- thumb_func_start nullsub_28
-nullsub_28: @ 81096C8
+ thumb_func_start BattleAICmd_unk_53
+BattleAICmd_unk_53: @ 81096C8
bx lr
- thumb_func_end nullsub_28
+ thumb_func_end BattleAICmd_unk_53
- thumb_func_start nullsub_29
-nullsub_29: @ 81096CC
+ thumb_func_start BattleAICmd_unk_54
+BattleAICmd_unk_54: @ 81096CC
bx lr
- thumb_func_end nullsub_29
+ thumb_func_end BattleAICmd_unk_54
- thumb_func_start nullsub_30
-nullsub_30: @ 81096D0
+ thumb_func_start BattleAICmd_unk_55
+BattleAICmd_unk_55: @ 81096D0
bx lr
- thumb_func_end nullsub_30
+ thumb_func_end BattleAICmd_unk_55
- thumb_func_start nullsub_31
-nullsub_31: @ 81096D4
+ thumb_func_start BattleAICmd_unk_56
+BattleAICmd_unk_56: @ 81096D4
bx lr
- thumb_func_end nullsub_31
+ thumb_func_end BattleAICmd_unk_56
- thumb_func_start nullsub_32
-nullsub_32: @ 81096D8
+ thumb_func_start BattleAICmd_unk_57
+BattleAICmd_unk_57: @ 81096D8
bx lr
- thumb_func_end nullsub_32
+ thumb_func_end BattleAICmd_unk_57
- thumb_func_start sub_81096DC
-sub_81096DC: @ 81096DC
+ thumb_func_start BattleAICmd_call
+BattleAICmd_call: @ 81096DC
push {r4,lr}
- ldr r4, _08109708 @ =gUnknown_02039238
+ ldr r4, _08109708 @ =gAIScriptPtr
ldr r0, [r4]
adds r0, 0x5
bl sub_81098C4
@@ -5194,12 +1858,12 @@ sub_81096DC: @ 81096DC
pop {r0}
bx r0
.align 2, 0
-_08109708: .4byte gUnknown_02039238
- thumb_func_end sub_81096DC
+_08109708: .4byte gAIScriptPtr
+ thumb_func_end BattleAICmd_call
- thumb_func_start sub_810970C
-sub_810970C: @ 810970C
- ldr r3, _08109728 @ =gUnknown_02039238
+ thumb_func_start BattleAICmd_jump
+BattleAICmd_jump: @ 810970C
+ ldr r3, _08109728 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2, 0x1]
ldrb r0, [r2, 0x2]
@@ -5214,11 +1878,11 @@ sub_810970C: @ 810970C
str r1, [r3]
bx lr
.align 2, 0
-_08109728: .4byte gUnknown_02039238
- thumb_func_end sub_810970C
+_08109728: .4byte gAIScriptPtr
+ thumb_func_end BattleAICmd_jump
- thumb_func_start sub_810972C
-sub_810972C: @ 810972C
+ thumb_func_start BattleAICmd_unk_5A
+BattleAICmd_unk_5A: @ 810972C
push {lr}
bl sub_8109908
lsls r0, 24
@@ -5234,12 +1898,12 @@ _08109742:
bx r0
.align 2, 0
_08109748: .4byte 0x02016800
- thumb_func_end sub_810972C
+ thumb_func_end BattleAICmd_unk_5A
- thumb_func_start dp15_compare_attacker_defender_levels
-dp15_compare_attacker_defender_levels: @ 810974C
+ thumb_func_start BattleAICmd_if_level_cond
+BattleAICmd_if_level_cond: @ 810974C
push {r4,r5,lr}
- ldr r5, _08109764 @ =gUnknown_02039238
+ ldr r5, _08109764 @ =gAIScriptPtr
ldr r4, [r5]
ldrb r0, [r4, 0x1]
cmp r0, 0x1
@@ -5250,7 +1914,7 @@ dp15_compare_attacker_defender_levels: @ 810974C
beq _0810976E
b _0810981C
.align 2, 0
-_08109764: .4byte gUnknown_02039238
+_08109764: .4byte gAIScriptPtr
_08109768:
cmp r0, 0x2
beq _081097D0
@@ -5343,10 +2007,10 @@ _0810981C:
pop {r4,r5}
pop {r0}
bx r0
- thumb_func_end dp15_compare_attacker_defender_levels
+ thumb_func_end BattleAICmd_if_level_cond
- thumb_func_start sub_8109824
-sub_8109824: @ 8109824
+ thumb_func_start BattleAICmd_if_taunted
+BattleAICmd_if_taunted: @ 8109824
push {lr}
ldr r2, _08109858 @ =gUnknown_02024CA8
ldr r0, _0810985C @ =gUnknown_02024C08
@@ -5359,7 +2023,7 @@ sub_8109824: @ 8109824
lsls r0, 28
cmp r0, 0
beq _08109864
- ldr r3, _08109860 @ =gUnknown_02039238
+ ldr r3, _08109860 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2, 0x1]
ldrb r0, [r2, 0x2]
@@ -5376,9 +2040,9 @@ sub_8109824: @ 8109824
.align 2, 0
_08109858: .4byte gUnknown_02024CA8
_0810985C: .4byte gUnknown_02024C08
-_08109860: .4byte gUnknown_02039238
+_08109860: .4byte gAIScriptPtr
_08109864:
- ldr r1, _08109870 @ =gUnknown_02039238
+ ldr r1, _08109870 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x5
str r0, [r1]
@@ -5386,11 +2050,11 @@ _0810986C:
pop {r0}
bx r0
.align 2, 0
-_08109870: .4byte gUnknown_02039238
- thumb_func_end sub_8109824
+_08109870: .4byte gAIScriptPtr
+ thumb_func_end BattleAICmd_if_taunted
- thumb_func_start sub_8109874
-sub_8109874: @ 8109874
+ thumb_func_start BattleAICmd_if_not_taunted
+BattleAICmd_if_not_taunted: @ 8109874
push {lr}
ldr r2, _081098A8 @ =gUnknown_02024CA8
ldr r0, _081098AC @ =gUnknown_02024C08
@@ -5403,7 +2067,7 @@ sub_8109874: @ 8109874
lsls r0, 28
cmp r0, 0
bne _081098B4
- ldr r3, _081098B0 @ =gUnknown_02039238
+ ldr r3, _081098B0 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2, 0x1]
ldrb r0, [r2, 0x2]
@@ -5420,9 +2084,9 @@ sub_8109874: @ 8109874
.align 2, 0
_081098A8: .4byte gUnknown_02024CA8
_081098AC: .4byte gUnknown_02024C08
-_081098B0: .4byte gUnknown_02039238
+_081098B0: .4byte gAIScriptPtr
_081098B4:
- ldr r1, _081098C0 @ =gUnknown_02039238
+ ldr r1, _081098C0 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x5
str r0, [r1]
@@ -5430,8 +2094,8 @@ _081098BC:
pop {r0}
bx r0
.align 2, 0
-_081098C0: .4byte gUnknown_02039238
- thumb_func_end sub_8109874
+_081098C0: .4byte gAIScriptPtr
+ thumb_func_end BattleAICmd_if_not_taunted
thumb_func_start sub_81098C4
sub_81098C4: @ 81098C4
@@ -5464,13 +2128,13 @@ unref_sub_81098E4: @ 81098E4
lsls r0, 24
lsrs r0, 22
adds r0, r3
- ldr r1, _08109904 @ =gUnknown_02039238
+ ldr r1, _08109904 @ =gAIScriptPtr
ldr r1, [r1]
str r1, [r0]
bx lr
.align 2, 0
_08109900: .4byte 0x02016c00
-_08109904: .4byte gUnknown_02039238
+_08109904: .4byte gAIScriptPtr
thumb_func_end unref_sub_81098E4
thumb_func_start sub_8109908
@@ -5489,7 +2153,7 @@ _0810991C: .4byte 0x02016c00
_08109920:
subs r0, 0x1
strb r0, [r2]
- ldr r1, _08109938 @ =gUnknown_02039238
+ ldr r1, _08109938 @ =gAIScriptPtr
ldrb r0, [r2]
lsls r0, 2
adds r0, r3
@@ -5500,7 +2164,7 @@ _08109932:
pop {r1}
bx r1
.align 2, 0
-_08109938: .4byte gUnknown_02039238
+_08109938: .4byte gAIScriptPtr
thumb_func_end sub_8109908
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_anim_80A7E7C.s b/asm/battle_anim_80A7E7C.s
index b305c7a42..362acec8b 100644
--- a/asm/battle_anim_80A7E7C.s
+++ b/asm/battle_anim_80A7E7C.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/battle_anim_80CA710.s b/asm/battle_anim_80CA710.s
index dc366a5da..d784aa4b7 100644
--- a/asm/battle_anim_80CA710.s
+++ b/asm/battle_anim_80CA710.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/battle_message.s b/asm/battle_message.s
index 8986ac835..8f903970f 100644
--- a/asm/battle_message.s
+++ b/asm/battle_message.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/battle_records.s b/asm/battle_records.s
index 10eaa45ae..4960803ca 100644
--- a/asm/battle_records.s
+++ b/asm/battle_records.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/battle_setup.s b/asm/battle_setup.s
deleted file mode 100644
index 3f78709b0..000000000
--- a/asm/battle_setup.s
+++ /dev/null
@@ -1,2580 +0,0 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
-
- .syntax unified
-
- .text
-
- thumb_func_start task01_battle_start
-task01_battle_start: @ 8081960
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08081980 @ =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08081984
- cmp r0, 0x1
- beq _0808199A
- b _080819BA
- .align 2, 0
-_08081980: .4byte gTasks + 0x8
-_08081984:
- bl FieldPoisonEffectIsRunning
- cmp r0, 0
- bne _080819BA
- ldrb r0, [r4, 0x2]
- bl sub_811AABC
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080819BA
-_0808199A:
- bl sub_811AAE8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080819BA
- ldr r0, _080819C0 @ =sub_800E7C4
- bl SetMainCallback2
- bl prev_quest_postbuffer_cursor_backup_reset
- bl overworld_poison_timer_set
- adds r0, r5, 0
- bl DestroyTask
-_080819BA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080819C0: .4byte sub_800E7C4
- thumb_func_end task01_battle_start
-
- thumb_func_start task_add_01_battle_start
-task_add_01_battle_start: @ 80819C4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 16
- lsrs r5, 16
- ldr r0, _080819F8 @ =task01_battle_start
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080819FC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- adds r0, r5, 0
- bl current_map_music_set__default_for_battle
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080819F8: .4byte task01_battle_start
-_080819FC: .4byte gTasks
- thumb_func_end task_add_01_battle_start
-
- thumb_func_start sub_8081A00
-sub_8081A00: @ 8081A00
- push {lr}
- bl GetSafariZoneFlag
- cmp r0, 0
- beq _08081A10
- bl sub_8081AA4
- b _08081A14
-_08081A10:
- bl sub_8081A18
-_08081A14:
- pop {r0}
- bx r0
- thumb_func_end sub_8081A00
-
- thumb_func_start sub_8081A18
-sub_8081A18: @ 8081A18
- push {lr}
- bl ScriptContext2_Enable
- bl player_bitmagic
- bl sub_80597F4
- ldr r1, _08081A50 @ =gMain
- ldr r0, _08081A54 @ =sub_8081C8C
- str r0, [r1, 0x8]
- ldr r1, _08081A58 @ =gUnknown_020239F8
- movs r0, 0
- strh r0, [r1]
- bl sub_8082034
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl task_add_01_battle_start
- movs r0, 0x7
- bl sav12_xor_increment
- movs r0, 0x8
- bl sav12_xor_increment
- pop {r0}
- bx r0
- .align 2, 0
-_08081A50: .4byte gMain
-_08081A54: .4byte sub_8081C8C
-_08081A58: .4byte gUnknown_020239F8
- thumb_func_end sub_8081A18
-
- thumb_func_start sub_8081A5C
-sub_8081A5C: @ 8081A5C
- push {lr}
- bl ScriptContext2_Enable
- bl player_bitmagic
- bl sub_80597F4
- ldr r1, _08081A98 @ =gMain
- ldr r0, _08081A9C @ =sub_8081C8C
- str r0, [r1, 0x8]
- ldr r1, _08081AA0 @ =gUnknown_020239F8
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2, 0
- strh r0, [r1]
- bl sub_8082034
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl task_add_01_battle_start
- movs r0, 0x7
- bl sav12_xor_increment
- movs r0, 0x8
- bl sav12_xor_increment
- pop {r0}
- bx r0
- .align 2, 0
-_08081A98: .4byte gMain
-_08081A9C: .4byte sub_8081C8C
-_08081AA0: .4byte gUnknown_020239F8
- thumb_func_end sub_8081A5C
-
- thumb_func_start sub_8081AA4
-sub_8081AA4: @ 8081AA4
- push {lr}
- bl ScriptContext2_Enable
- bl player_bitmagic
- bl sub_80597F4
- ldr r1, _08081AD0 @ =gMain
- ldr r0, _08081AD4 @ =sub_80C824C
- str r0, [r1, 0x8]
- ldr r1, _08081AD8 @ =gUnknown_020239F8
- movs r0, 0x80
- strh r0, [r1]
- bl sub_8082034
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl task_add_01_battle_start
- pop {r0}
- bx r0
- .align 2, 0
-_08081AD0: .4byte gMain
-_08081AD4: .4byte sub_80C824C
-_08081AD8: .4byte gUnknown_020239F8
- thumb_func_end sub_8081AA4
-
- thumb_func_start task_add_01_battle_start_with_music_and_stats
-task_add_01_battle_start_with_music_and_stats: @ 8081ADC
- push {lr}
- bl sub_8082080
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl task_add_01_battle_start
- movs r0, 0x7
- bl sav12_xor_increment
- movs r0, 0x9
- bl sav12_xor_increment
- pop {r0}
- bx r0
- thumb_func_end task_add_01_battle_start_with_music_and_stats
-
- thumb_func_start sub_8081AFC
-sub_8081AFC: @ 8081AFC
- push {lr}
- ldr r0, _08081B2C @ =gEnemyParty
- movs r1, 0xC4
- lsls r1, 1
- movs r2, 0x5
- bl CreateMaleMon
- bl ScriptContext2_Enable
- ldr r1, _08081B30 @ =gMain
- ldr r0, _08081B34 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- str r0, [r1, 0x8]
- ldr r1, _08081B38 @ =gUnknown_020239F8
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0x8
- movs r1, 0
- bl task_add_01_battle_start
- pop {r0}
- bx r0
- .align 2, 0
-_08081B2C: .4byte gEnemyParty
-_08081B30: .4byte gMain
-_08081B34: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
-_08081B38: .4byte gUnknown_020239F8
- thumb_func_end sub_8081AFC
-
- thumb_func_start sub_8081B3C
-sub_8081B3C: @ 8081B3C
- push {lr}
- bl ScriptContext2_Enable
- ldr r1, _08081B6C @ =gMain
- ldr r0, _08081B70 @ =sub_8081CEC
- str r0, [r1, 0x8]
- ldr r1, _08081B74 @ =gUnknown_020239F8
- movs r0, 0
- strh r0, [r1]
- bl sub_8082034
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl task_add_01_battle_start
- movs r0, 0x7
- bl sav12_xor_increment
- movs r0, 0x8
- bl sav12_xor_increment
- pop {r0}
- bx r0
- .align 2, 0
-_08081B6C: .4byte gMain
-_08081B70: .4byte sub_8081CEC
-_08081B74: .4byte gUnknown_020239F8
- thumb_func_end sub_8081B3C
-
- thumb_func_start sub_8081B78
-sub_8081B78: @ 8081B78
- push {lr}
- bl ScriptContext2_Enable
- ldr r1, _08081BAC @ =gMain
- ldr r0, _08081BB0 @ =sub_8081CEC
- str r0, [r1, 0x8]
- ldr r1, _08081BB4 @ =gUnknown_020239F8
- movs r2, 0x80
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- bl sub_8082034
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl task_add_01_battle_start
- movs r0, 0x7
- bl sav12_xor_increment
- movs r0, 0x8
- bl sav12_xor_increment
- pop {r0}
- bx r0
- .align 2, 0
-_08081BAC: .4byte gMain
-_08081BB0: .4byte sub_8081CEC
-_08081BB4: .4byte gUnknown_020239F8
- thumb_func_end sub_8081B78
-
- thumb_func_start sub_8081BB8
-sub_8081BB8: @ 8081BB8
- push {lr}
- bl ScriptContext2_Enable
- ldr r1, _08081BE8 @ =gMain
- ldr r0, _08081BEC @ =sub_8081CEC
- str r0, [r1, 0x8]
- ldr r1, _08081BF0 @ =gUnknown_020239F8
- movs r2, 0x80
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08081BF4 @ =0x000001cf
- movs r0, 0
- bl task_add_01_battle_start
- movs r0, 0x7
- bl sav12_xor_increment
- movs r0, 0x8
- bl sav12_xor_increment
- pop {r0}
- bx r0
- .align 2, 0
-_08081BE8: .4byte gMain
-_08081BEC: .4byte sub_8081CEC
-_08081BF0: .4byte gUnknown_020239F8
-_08081BF4: .4byte 0x000001cf
- thumb_func_end sub_8081BB8
-
- thumb_func_start sub_8081BF8
-sub_8081BF8: @ 8081BF8
- push {lr}
- bl ScriptContext2_Enable
- ldr r1, _08081C20 @ =gMain
- ldr r0, _08081C24 @ =sub_8081CEC
- str r0, [r1, 0x8]
- ldr r1, _08081C28 @ =gUnknown_020239F8
- movs r2, 0xC0
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08081C2C @ =gGameVersion
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08081C34
- ldr r1, _08081C30 @ =0x000001cf
- movs r0, 0xB
- bl task_add_01_battle_start
- b _08081C3C
- .align 2, 0
-_08081C20: .4byte gMain
-_08081C24: .4byte sub_8081CEC
-_08081C28: .4byte gUnknown_020239F8
-_08081C2C: .4byte gGameVersion
-_08081C30: .4byte 0x000001cf
-_08081C34:
- ldr r1, _08081C4C @ =0x000001cf
- movs r0, 0x6
- bl task_add_01_battle_start
-_08081C3C:
- movs r0, 0x7
- bl sav12_xor_increment
- movs r0, 0x8
- bl sav12_xor_increment
- pop {r0}
- bx r0
- .align 2, 0
-_08081C4C: .4byte 0x000001cf
- thumb_func_end sub_8081BF8
-
- thumb_func_start sub_8081C50
-sub_8081C50: @ 8081C50
- push {lr}
- bl ScriptContext2_Enable
- ldr r1, _08081C80 @ =gMain
- ldr r0, _08081C84 @ =sub_8081CEC
- str r0, [r1, 0x8]
- ldr r1, _08081C88 @ =gUnknown_020239F8
- movs r2, 0xC0
- lsls r2, 7
- adds r0, r2, 0
- strh r0, [r1]
- movs r1, 0xE7
- lsls r1, 1
- movs r0, 0xA
- bl task_add_01_battle_start
- movs r0, 0x7
- bl sav12_xor_increment
- movs r0, 0x8
- bl sav12_xor_increment
- pop {r0}
- bx r0
- .align 2, 0
-_08081C80: .4byte gMain
-_08081C84: .4byte sub_8081CEC
-_08081C88: .4byte gUnknown_020239F8
- thumb_func_end sub_8081C50
-
- thumb_func_start sub_8081C8C
-sub_8081C8C: @ 8081C8C
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- movs r1, 0xA0
- lsls r1, 19
- ldr r2, _08081CC0 @ =0x01000100
- mov r0, sp
- bl CpuSet
- movs r0, 0
- movs r1, 0x80
- bl ResetOamRange
- ldr r0, _08081CC4 @ =gUnknown_02024D26
- ldrb r0, [r0]
- bl battle_exit_is_player_defeat
- cmp r0, 0x1
- bne _08081CCC
- ldr r0, _08081CC8 @ =c2_whiteout
- bl SetMainCallback2
- b _08081CD8
- .align 2, 0
-_08081CC0: .4byte 0x01000100
-_08081CC4: .4byte gUnknown_02024D26
-_08081CC8: .4byte c2_whiteout
-_08081CCC:
- ldr r0, _08081CE0 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- ldr r1, _08081CE4 @ =gUnknown_0300485C
- ldr r0, _08081CE8 @ =sub_8080E44
- str r0, [r1]
-_08081CD8:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08081CE0: .4byte c2_exit_to_overworld_2_switch
-_08081CE4: .4byte gUnknown_0300485C
-_08081CE8: .4byte sub_8080E44
- thumb_func_end sub_8081C8C
-
- thumb_func_start sub_8081CEC
-sub_8081CEC: @ 8081CEC
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- movs r1, 0xA0
- lsls r1, 19
- ldr r2, _08081D20 @ =0x01000100
- mov r0, sp
- bl CpuSet
- movs r0, 0
- movs r1, 0x80
- bl ResetOamRange
- ldr r0, _08081D24 @ =gUnknown_02024D26
- ldrb r0, [r0]
- bl battle_exit_is_player_defeat
- cmp r0, 0x1
- bne _08081D2C
- ldr r0, _08081D28 @ =c2_whiteout
- bl SetMainCallback2
- b _08081D32
- .align 2, 0
-_08081D20: .4byte 0x01000100
-_08081D24: .4byte gUnknown_02024D26
-_08081D28: .4byte c2_whiteout
-_08081D2C:
- ldr r0, _08081D38 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
-_08081D32:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08081D38: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_8081CEC
-
- thumb_func_start sub_8081D3C
-sub_8081D3C: @ 8081D3C
- push {r4,r5,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsTallGrass
- lsls r0, 24
- cmp r0, 0
- beq _08081D72
- movs r0, 0
- b _08081E86
-_08081D72:
- adds r0, r4, 0
- bl MetatileBehavior_IsLongGrass
- lsls r0, 24
- cmp r0, 0
- beq _08081D82
- movs r0, 0x1
- b _08081E86
-_08081D82:
- adds r0, r4, 0
- bl MetatileBehavior_IsSandOrDeepSand
- lsls r0, 24
- cmp r0, 0
- bne _08081E84
- ldr r0, _08081DA4 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- subs r0, 0x1
- cmp r0, 0x8
- bhi _08081E08
- lsls r0, 2
- ldr r1, _08081DA8 @ =_08081DAC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08081DA4: .4byte gMapHeader
-_08081DA8: .4byte _08081DAC
- .align 2, 0
-_08081DAC:
- .4byte _08081E08
- .4byte _08081E08
- .4byte _08081E08
- .4byte _08081DD0
- .4byte _08081DF4
- .4byte _08081DF8
- .4byte _08081E08
- .4byte _08081DE0
- .4byte _08081DE0
-_08081DD0:
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80574C4
- lsls r0, 24
- cmp r0, 0
- beq _08081DE4
-_08081DE0:
- movs r0, 0x8
- b _08081E86
-_08081DE4:
- adds r0, r4, 0
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- bne _08081E4C
- movs r0, 0x7
- b _08081E86
-_08081DF4:
- movs r0, 0x3
- b _08081E86
-_08081DF8:
- lsls r0, r5, 24
- lsrs r0, 24
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- bne _08081E5E
- b _08081E7A
-_08081E08:
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_8057568
- lsls r0, 24
- cmp r0, 0
- bne _08081E5E
- adds r0, r4, 0
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- bne _08081E4C
- adds r0, r4, 0
- bl sub_80574D8
- lsls r0, 24
- cmp r0, 0
- beq _08081E34
- movs r0, 0x6
- b _08081E86
-_08081E34:
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _08081E62
- adds r0, r4, 0
- bl sub_8057450
- lsls r0, 24
- cmp r0, 0
- beq _08081E50
-_08081E4C:
- movs r0, 0x5
- b _08081E86
-_08081E50:
- adds r0, r4, 0
- bl MetatileBehavior_IsBridge
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08081E62
-_08081E5E:
- movs r0, 0x4
- b _08081E86
-_08081E62:
- ldr r0, _08081E80 @ =gSaveBlock1
- ldrh r1, [r0, 0x4]
- movs r0, 0xE0
- lsls r0, 5
- cmp r1, r0
- beq _08081E84
- bl GetSav1Weather
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- beq _08081E84
-_08081E7A:
- movs r0, 0x9
- b _08081E86
- .align 2, 0
-_08081E80: .4byte gSaveBlock1
-_08081E84:
- movs r0, 0x2
-_08081E86:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8081D3C
-
- thumb_func_start sub_8081E90
-sub_8081E90: @ 8081E90
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r4, r0, 16
- bl sav1_get_flash_used_on_map
- lsls r0, 24
- cmp r0, 0
- beq _08081EC0
- movs r0, 0x2
- b _08081EEA
-_08081EC0:
- lsls r0, r4, 24
- lsrs r0, 24
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- bne _08081EE8
- ldr r0, _08081EE0 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x4
- beq _08081EE4
- cmp r0, 0x5
- beq _08081EE8
- movs r0, 0
- b _08081EEA
- .align 2, 0
-_08081EE0: .4byte gMapHeader
-_08081EE4:
- movs r0, 0x1
- b _08081EEA
-_08081EE8:
- movs r0, 0x3
-_08081EEA:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8081E90
-
- thumb_func_start sub_8081EF4
-sub_8081EF4: @ 8081EF4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r7, 0
- movs r6, 0
-_08081EFE:
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _08081F50 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- adds r1, r0, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- beq _08081F42
- cmp r1, 0
- beq _08081F42
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08081F42
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- adds r0, r7, r0
- lsls r0, 24
- lsrs r7, r0, 24
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _08081F48
-_08081F42:
- adds r6, 0x1
- cmp r6, 0x5
- ble _08081EFE
-_08081F48:
- adds r0, r7, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08081F50: .4byte gPlayerParty
- thumb_func_end sub_8081EF4
-
- thumb_func_start reads_trainer_data_byte0
-reads_trainer_data_byte0: @ 8081F54
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r5, _08081F88 @ =gTrainers
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r5
- adds r0, r2, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r4
- bcs _08081F74
- adds r4, r0, 0
-_08081F74:
- movs r3, 0
- ldrb r0, [r2]
- cmp r0, 0x1
- beq _08081FBC
- cmp r0, 0x1
- bgt _08081F8C
- cmp r0, 0
- beq _08081F96
- b _0808202C
- .align 2, 0
-_08081F88: .4byte gTrainers
-_08081F8C:
- cmp r0, 0x2
- beq _08081FE2
- cmp r0, 0x3
- beq _08082008
- b _0808202C
-_08081F96:
- adds r0, r5, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r1, [r0]
- movs r2, 0
- cmp r3, r4
- bcs _0808202C
-_08081FA4:
- lsls r0, r2, 3
- adds r0, r1
- ldrb r0, [r0, 0x2]
- adds r0, r3, r0
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r4
- bcc _08081FA4
- b _0808202C
-_08081FBC:
- adds r0, r5, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r1, [r0]
- movs r2, 0
- cmp r3, r4
- bcs _0808202C
-_08081FCA:
- lsls r0, r2, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- adds r0, r3, r0
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r4
- bcc _08081FCA
- b _0808202C
-_08081FE2:
- adds r0, r5, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r1, [r0]
- movs r2, 0
- cmp r3, r4
- bcs _0808202C
-_08081FF0:
- lsls r0, r2, 3
- adds r0, r1
- ldrb r0, [r0, 0x2]
- adds r0, r3, r0
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r4
- bcc _08081FF0
- b _0808202C
-_08082008:
- adds r0, r5, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r1, [r0]
- movs r2, 0
- cmp r3, r4
- bcs _0808202C
-_08082016:
- lsls r0, r2, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- adds r0, r3, r0
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r4
- bcc _08082016
-_0808202C:
- adds r0, r3, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end reads_trainer_data_byte0
-
- thumb_func_start sub_8082034
-sub_8082034: @ 8082034
- push {r4,r5,lr}
- bl sub_8081E90
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08082064 @ =gEnemyParty
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl sub_8081EF4
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _0808206C
- ldr r0, _08082068 @ =gBattleTransitionTable_Wild
- lsls r1, r5, 1
- adds r0, 0x1
- b _08082070
- .align 2, 0
-_08082064: .4byte gEnemyParty
-_08082068: .4byte gBattleTransitionTable_Wild
-_0808206C:
- ldr r0, _0808207C @ =gBattleTransitionTable_Wild
- lsls r1, r5, 1
-_08082070:
- adds r1, r0
- ldrb r0, [r1]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0808207C: .4byte gBattleTransitionTable_Wild
- thumb_func_end sub_8082034
-
- thumb_func_start sub_8082080
-sub_8082080: @ 8082080
- push {r4-r6,lr}
- ldr r4, _080820AC @ =gTrainerBattleOpponent
- ldrh r1, [r4]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _080820E4
- ldr r1, _080820B0 @ =gTrainers
- ldrh r2, [r4]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x1]
- cmp r1, 0x18
- bne _080820E0
- adds r1, r2, 0
- ldr r0, _080820B4 @ =0x00000105
- cmp r1, r0
- bne _080820B8
- movs r0, 0xC
- b _0808212C
- .align 2, 0
-_080820AC: .4byte gTrainerBattleOpponent
-_080820B0: .4byte gTrainers
-_080820B4: .4byte 0x00000105
-_080820B8:
- movs r0, 0x83
- lsls r0, 1
- cmp r1, r0
- bne _080820C4
- movs r0, 0xD
- b _0808212C
-_080820C4:
- ldr r0, _080820D0 @ =0x00000107
- cmp r1, r0
- bne _080820D4
- movs r0, 0xE
- b _0808212C
- .align 2, 0
-_080820D0: .4byte 0x00000107
-_080820D4:
- movs r0, 0x84
- lsls r0, 1
- cmp r1, r0
- bne _080820E4
- movs r0, 0xF
- b _0808212C
-_080820E0:
- cmp r1, 0x20
- bne _080820E8
-_080820E4:
- movs r0, 0x10
- b _0808212C
-_080820E8:
- ldrb r0, [r0, 0x18]
- movs r5, 0x1
- cmp r0, 0x1
- bne _080820F2
- movs r5, 0x2
-_080820F2:
- bl sub_8081E90
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r4]
- adds r1, r5, 0
- bl reads_trainer_data_byte0
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl sub_8081EF4
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _08082124
- ldr r0, _08082120 @ =gBattleTransitionTable_Trainer
- lsls r1, r6, 1
- adds r0, 0x1
- b _08082128
- .align 2, 0
-_08082120: .4byte gBattleTransitionTable_Trainer
-_08082124:
- ldr r0, _08082134 @ =gBattleTransitionTable_Trainer
- lsls r1, r6, 1
-_08082128:
- adds r1, r0
- ldrb r0, [r1]
-_0808212C:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08082134: .4byte gBattleTransitionTable_Trainer
- thumb_func_end sub_8082080
-
- thumb_func_start sub_8082138
-sub_8082138: @ 8082138
- push {r4,lr}
- ldr r0, _0808215C @ =gEnemyParty
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl sub_8081EF4
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _08082160
- movs r0, 0x3
- b _08082162
- .align 2, 0
-_0808215C: .4byte gEnemyParty
-_08082160:
- movs r0, 0x4
-_08082162:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8082138
-
- thumb_func_start sub_8082168
-sub_8082168: @ 8082168
- push {lr}
- ldr r0, _0808217C @ =CB2_ChooseStarter
- bl SetMainCallback2
- ldr r1, _08082180 @ =gMain
- ldr r0, _08082184 @ =sub_8082188
- str r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0808217C: .4byte CB2_ChooseStarter
-_08082180: .4byte gMain
-_08082184: .4byte sub_8082188
- thumb_func_end sub_8082168
-
- thumb_func_start sub_8082188
-sub_8082188: @ 8082188
- push {lr}
- sub sp, 0x8
- ldr r0, _080821CC @ =0x00004023
- bl GetVarPointer
- ldr r2, _080821D0 @ =gScriptResult
- ldrh r1, [r2]
- strh r1, [r0]
- ldrh r0, [r2]
- bl GetStarterPokemon
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0x5
- movs r2, 0
- movs r3, 0
- bl ScriptGiveMon
- bl ResetTasks
- bl sub_80408BC
- ldr r0, _080821D4 @ =sub_80821D8
- bl SetMainCallback2
- movs r0, 0
- bl sub_811AAD8
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_080821CC: .4byte 0x00004023
-_080821D0: .4byte gScriptResult
-_080821D4: .4byte sub_80821D8
- thumb_func_end sub_8082188
-
- thumb_func_start sub_80821D8
-sub_80821D8: @ 80821D8
- push {lr}
- bl UpdatePaletteFade
- bl RunTasks
- bl sub_811AAE8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08082214
- ldr r1, _08082218 @ =gUnknown_020239F8
- movs r0, 0x10
- strh r0, [r1]
- ldr r1, _0808221C @ =gMain
- ldr r0, _08082220 @ =sub_8082228
- str r0, [r1, 0x8]
- ldr r0, _08082224 @ =sub_800E7C4
- bl SetMainCallback2
- bl prev_quest_postbuffer_cursor_backup_reset
- bl overworld_poison_timer_set
- movs r0, 0x7
- bl sav12_xor_increment
- movs r0, 0x8
- bl sav12_xor_increment
-_08082214:
- pop {r0}
- bx r0
- .align 2, 0
-_08082218: .4byte gUnknown_020239F8
-_0808221C: .4byte gMain
-_08082220: .4byte sub_8082228
-_08082224: .4byte sub_800E7C4
- thumb_func_end sub_80821D8
-
- thumb_func_start sub_8082228
-sub_8082228: @ 8082228
- push {lr}
- bl sav1_reset_battle_music_maybe
- ldr r0, _08082238 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08082238: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_8082228
-
- thumb_func_start TrainerBattleLoadArg32
-TrainerBattleLoadArg32: @ 808223C
- adds r2, r0, 0
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- orrs r0, r1
- ldrb r1, [r2, 0x2]
- lsls r1, 16
- orrs r0, r1
- ldrb r1, [r2, 0x3]
- lsls r1, 24
- orrs r0, r1
- bx lr
- thumb_func_end TrainerBattleLoadArg32
-
- thumb_func_start TrainerBattleLoadArg16
-TrainerBattleLoadArg16: @ 8082254
- adds r1, r0, 0
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- lsls r1, 8
- orrs r0, r1
- bx lr
- thumb_func_end TrainerBattleLoadArg16
-
- thumb_func_start TrainerBattleLoadArg8
-TrainerBattleLoadArg8: @ 8082260
- ldrb r0, [r0]
- bx lr
- thumb_func_end TrainerBattleLoadArg8
-
- thumb_func_start trainerflag_opponent
-trainerflag_opponent: @ 8082264
- ldr r1, _08082278 @ =gTrainerBattleOpponent
- movs r2, 0xA0
- lsls r2, 3
- adds r0, r2, 0
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- bx lr
- .align 2, 0
-_08082278: .4byte gTrainerBattleOpponent
- thumb_func_end trainerflag_opponent
-
- thumb_func_start battle_exit_is_player_defeat
-battle_exit_is_player_defeat: @ 808227C
- push {lr}
- subs r0, 0x1
- cmp r0, 0x6
- bhi _080822B4
- lsls r0, 2
- ldr r1, _08082290 @ =_08082294
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08082290: .4byte _08082294
- .align 2, 0
-_08082294:
- .4byte _080822B4
- .4byte _080822B0
- .4byte _080822B0
- .4byte _080822B4
- .4byte _080822B4
- .4byte _080822B4
- .4byte _080822B4
-_080822B0:
- movs r0, 0x1
- b _080822B6
-_080822B4:
- movs r0, 0
-_080822B6:
- pop {r1}
- bx r1
- thumb_func_end battle_exit_is_player_defeat
-
- thumb_func_start sub_80822BC
-sub_80822BC: @ 80822BC
- ldr r0, _080822E8 @ =gTrainerBattleMode
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080822EC @ =gTrainerBattleOpponent
- strh r1, [r0]
- ldr r0, _080822F0 @ =gTrainerMapObjectLocalId
- strh r1, [r0]
- ldr r0, _080822F4 @ =gTrainerIntroSpeech
- movs r1, 0
- str r1, [r0]
- ldr r0, _080822F8 @ =gTrainerDefeatSpeech
- str r1, [r0]
- ldr r0, _080822FC @ =gTrainerVictorySpeech
- str r1, [r0]
- ldr r0, _08082300 @ =gTrainerCannotBattleSpeech
- str r1, [r0]
- ldr r0, _08082304 @ =gTrainerBattleScriptReturnAddress
- str r1, [r0]
- ldr r0, _08082308 @ =gTrainerBattleEndScript
- str r1, [r0]
- bx lr
- .align 2, 0
-_080822E8: .4byte gTrainerBattleMode
-_080822EC: .4byte gTrainerBattleOpponent
-_080822F0: .4byte gTrainerMapObjectLocalId
-_080822F4: .4byte gTrainerIntroSpeech
-_080822F8: .4byte gTrainerDefeatSpeech
-_080822FC: .4byte gTrainerVictorySpeech
-_08082300: .4byte gTrainerCannotBattleSpeech
-_08082304: .4byte gTrainerBattleScriptReturnAddress
-_08082308: .4byte gTrainerBattleEndScript
- thumb_func_end sub_80822BC
-
- thumb_func_start TrainerBattleLoadArgs
-TrainerBattleLoadArgs: @ 808230C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
-_08082312:
- ldrb r0, [r4, 0x4]
- cmp r0, 0x6
- bhi _08082384
- lsls r0, 2
- ldr r1, _08082324 @ =_08082328
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08082324: .4byte _08082328
- .align 2, 0
-_08082328:
- .4byte _08082344
- .4byte _08082352
- .4byte _08082360
- .4byte _0808236E
- .4byte _08082376
- .4byte _0808237E
- .4byte _08082388
-_08082344:
- adds r0, r5, 0
- bl TrainerBattleLoadArg8
- ldr r1, [r4]
- strb r0, [r1]
- adds r5, 0x1
- b _08082384
-_08082352:
- adds r0, r5, 0
- bl TrainerBattleLoadArg16
- ldr r1, [r4]
- strh r0, [r1]
- adds r5, 0x2
- b _08082384
-_08082360:
- adds r0, r5, 0
- bl TrainerBattleLoadArg32
- ldr r1, [r4]
- str r0, [r1]
- adds r5, 0x4
- b _08082384
-_0808236E:
- ldr r1, [r4]
- movs r0, 0
- strb r0, [r1]
- b _08082384
-_08082376:
- ldr r1, [r4]
- movs r0, 0
- strh r0, [r1]
- b _08082384
-_0808237E:
- ldr r1, [r4]
- movs r0, 0
- str r0, [r1]
-_08082384:
- adds r4, 0x8
- b _08082312
-_08082388:
- ldr r0, [r4]
- str r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end TrainerBattleLoadArgs
-
- thumb_func_start battle_80801F0
-battle_80801F0: @ 8082394
- push {lr}
- ldr r0, _080823B8 @ =gTrainerMapObjectLocalId
- ldrh r1, [r0]
- cmp r1, 0
- beq _080823B4
- ldr r0, _080823BC @ =gUnknown_0202E8DE
- strh r1, [r0]
- lsls r0, r1, 24
- lsrs r0, 24
- ldr r2, _080823C0 @ =gSaveBlock1
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl GetFieldObjectIdByLocalIdAndMap
- ldr r1, _080823C4 @ =gSelectedMapObject
- strb r0, [r1]
-_080823B4:
- pop {r0}
- bx r0
- .align 2, 0
-_080823B8: .4byte gTrainerMapObjectLocalId
-_080823BC: .4byte gUnknown_0202E8DE
-_080823C0: .4byte gSaveBlock1
-_080823C4: .4byte gSelectedMapObject
- thumb_func_end battle_80801F0
-
- thumb_func_start TrainerBattleConfigure
-TrainerBattleConfigure: @ 80823C8
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_80822BC
- ldr r4, _080823F0 @ =gTrainerBattleMode
- adds r0, r5, 0
- bl TrainerBattleLoadArg8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldrh r0, [r4]
- subs r0, 0x1
- cmp r0, 0x7
- bhi _080824A4
- lsls r0, 2
- ldr r1, _080823F4 @ =_080823F8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080823F0: .4byte gTrainerBattleMode
-_080823F4: .4byte _080823F8
- .align 2, 0
-_080823F8:
- .4byte _08082434
- .4byte _08082434
- .4byte _08082418
- .4byte _0808242C
- .4byte _0808247C
- .4byte _0808243C
- .4byte _08082454
- .4byte _0808243C
-_08082418:
- ldr r0, _08082424 @ =gTrainerBattleSpecs_3
- adds r1, r5, 0
- bl TrainerBattleLoadArgs
- ldr r0, _08082428 @ =gUnknown_0819F878
- b _080824B2
- .align 2, 0
-_08082424: .4byte gTrainerBattleSpecs_3
-_08082428: .4byte gUnknown_0819F878
-_0808242C:
- ldr r0, _08082430 @ =gTrainerBattleSpecs_2
- b _0808243E
- .align 2, 0
-_08082430: .4byte gTrainerBattleSpecs_2
-_08082434:
- ldr r0, _08082438 @ =gTrainerBattleSpecs_1
- b _080824A6
- .align 2, 0
-_08082438: .4byte gTrainerBattleSpecs_1
-_0808243C:
- ldr r0, _0808244C @ =gTrainerBattleSpecs_4
-_0808243E:
- adds r1, r5, 0
- bl TrainerBattleLoadArgs
- bl battle_80801F0
- ldr r0, _08082450 @ =gUnknown_0819F840
- b _080824B2
- .align 2, 0
-_0808244C: .4byte gTrainerBattleSpecs_4
-_08082450: .4byte gUnknown_0819F840
-_08082454:
- ldr r0, _08082470 @ =gTrainerBattleSpecs_2
- adds r1, r5, 0
- bl TrainerBattleLoadArgs
- bl battle_80801F0
- ldr r4, _08082474 @ =gTrainerBattleOpponent
- ldrh r0, [r4]
- bl sub_8082C4C
- strh r0, [r4]
- ldr r0, _08082478 @ =gUnknown_0819F8AE
- b _080824B2
- .align 2, 0
-_08082470: .4byte gTrainerBattleSpecs_2
-_08082474: .4byte gTrainerBattleOpponent
-_08082478: .4byte gUnknown_0819F8AE
-_0808247C:
- ldr r0, _08082498 @ =gTrainerBattleSpecs_0
- adds r1, r5, 0
- bl TrainerBattleLoadArgs
- bl battle_80801F0
- ldr r4, _0808249C @ =gTrainerBattleOpponent
- ldrh r0, [r4]
- bl sub_8082C4C
- strh r0, [r4]
- ldr r0, _080824A0 @ =gUnknown_0819F887
- b _080824B2
- .align 2, 0
-_08082498: .4byte gTrainerBattleSpecs_0
-_0808249C: .4byte gTrainerBattleOpponent
-_080824A0: .4byte gUnknown_0819F887
-_080824A4:
- ldr r0, _080824B8 @ =gTrainerBattleSpecs_0
-_080824A6:
- adds r1, r5, 0
- bl TrainerBattleLoadArgs
- bl battle_80801F0
- ldr r0, _080824BC @ =gUnknown_0819F818
-_080824B2:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080824B8: .4byte gTrainerBattleSpecs_0
-_080824BC: .4byte gUnknown_0819F818
- thumb_func_end TrainerBattleConfigure
-
- thumb_func_start TrainerWantsBattle
-TrainerWantsBattle: @ 80824C0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080824F4 @ =gSelectedMapObject
- strb r0, [r2]
- ldr r4, _080824F8 @ =gUnknown_0202E8DE
- ldr r3, _080824FC @ =gMapObjects
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrb r0, [r2, 0x8]
- strh r0, [r4]
- adds r1, 0x1
- adds r0, r1, 0
- bl TrainerBattleConfigure
- ldr r0, _08082500 @ =gUnknown_0819F80B
- bl ScriptContext1_SetupScript
- bl ScriptContext2_Enable
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080824F4: .4byte gSelectedMapObject
-_080824F8: .4byte gUnknown_0202E8DE
-_080824FC: .4byte gMapObjects
-_08082500: .4byte gUnknown_0819F80B
- thumb_func_end TrainerWantsBattle
-
- thumb_func_start GetTrainerFlagFromScriptPointer
-GetTrainerFlagFromScriptPointer: @ 8082504
- push {lr}
- adds r0, 0x2
- bl TrainerBattleLoadArg16
- lsls r0, 16
- movs r1, 0xA0
- lsls r1, 19
- adds r0, r1
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetTrainerFlagFromScriptPointer
-
- thumb_func_start sub_8082524
-sub_8082524: @ 8082524
- push {r4,lr}
- ldr r0, _08082550 @ =gSelectedMapObject
- ldrb r0, [r0]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08082554 @ =gMapObjects
- adds r4, r0
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl npc_running_behaviour_by_direction
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl npc_set_running_behaviour_etc
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08082550: .4byte gSelectedMapObject
-_08082554: .4byte gMapObjects
- thumb_func_end sub_8082524
-
- thumb_func_start sub_8082558
-sub_8082558: @ 8082558
- ldr r0, _08082560 @ =gTrainerBattleMode
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08082560: .4byte gTrainerBattleMode
- thumb_func_end sub_8082558
-
- thumb_func_start sub_8082564
-sub_8082564: @ 8082564
- push {lr}
- bl trainerflag_opponent
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_8082564
-
- thumb_func_start sub_808257C
-sub_808257C: @ 808257C
- push {lr}
- bl trainerflag_opponent
- lsls r0, 16
- lsrs r0, 16
- bl FlagSet
- pop {r0}
- bx r0
- thumb_func_end sub_808257C
-
- thumb_func_start unref_sub_8082590
-unref_sub_8082590: @ 8082590
- push {lr}
- bl trainerflag_opponent
- lsls r0, 16
- lsrs r0, 16
- bl FlagSet
- pop {r0}
- bx r0
- thumb_func_end unref_sub_8082590
-
- thumb_func_start trainer_flag_check
-trainer_flag_check: @ 80825A4
- push {lr}
- lsls r0, 16
- movs r1, 0xA0
- lsls r1, 19
- adds r0, r1
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end trainer_flag_check
-
- thumb_func_start trainer_flag_set
-trainer_flag_set: @ 80825BC
- push {lr}
- lsls r0, 16
- movs r1, 0xA0
- lsls r1, 19
- adds r0, r1
- lsrs r0, 16
- bl FlagSet
- pop {r0}
- bx r0
- thumb_func_end trainer_flag_set
-
- thumb_func_start trainer_flag_clear
-trainer_flag_clear: @ 80825D0
- push {lr}
- lsls r0, 16
- movs r1, 0xA0
- lsls r1, 19
- adds r0, r1
- lsrs r0, 16
- bl FlagReset
- pop {r0}
- bx r0
- thumb_func_end trainer_flag_clear
-
- thumb_func_start sub_80825E4
-sub_80825E4: @ 80825E4
- push {lr}
- ldr r1, _08082600 @ =gUnknown_020239F8
- movs r0, 0x8
- strh r0, [r1]
- ldr r1, _08082604 @ =gMain
- ldr r0, _08082608 @ =sub_808260C
- str r0, [r1, 0x8]
- bl task_add_01_battle_start_with_music_and_stats
- bl ScriptContext1_Stop
- pop {r0}
- bx r0
- .align 2, 0
-_08082600: .4byte gUnknown_020239F8
-_08082604: .4byte gMain
-_08082608: .4byte sub_808260C
- thumb_func_end sub_80825E4
-
- thumb_func_start sub_808260C
-sub_808260C: @ 808260C
- push {lr}
- ldr r0, _08082624 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _0808262C
- ldr r0, _08082628 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
- b _08082652
- .align 2, 0
-_08082624: .4byte gTrainerBattleOpponent
-_08082628: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
-_0808262C:
- ldr r0, _08082640 @ =gUnknown_02024D26
- ldrb r0, [r0]
- bl battle_exit_is_player_defeat
- cmp r0, 0x1
- bne _08082648
- ldr r0, _08082644 @ =c2_whiteout
- bl SetMainCallback2
- b _08082652
- .align 2, 0
-_08082640: .4byte gUnknown_02024D26
-_08082644: .4byte c2_whiteout
-_08082648:
- ldr r0, _08082658 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
- bl sub_808257C
-_08082652:
- pop {r0}
- bx r0
- .align 2, 0
-_08082658: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_808260C
-
- thumb_func_start do_choose_name_or_words_screen
-do_choose_name_or_words_screen: @ 808265C
- push {lr}
- ldr r0, _08082674 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _0808267C
- ldr r0, _08082678 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
- b _080826A6
- .align 2, 0
-_08082674: .4byte gTrainerBattleOpponent
-_08082678: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
-_0808267C:
- ldr r0, _08082690 @ =gUnknown_02024D26
- ldrb r0, [r0]
- bl battle_exit_is_player_defeat
- cmp r0, 0x1
- bne _08082698
- ldr r0, _08082694 @ =c2_whiteout
- bl SetMainCallback2
- b _080826A6
- .align 2, 0
-_08082690: .4byte gUnknown_02024D26
-_08082694: .4byte c2_whiteout
-_08082698:
- ldr r0, _080826AC @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
- bl sub_808257C
- bl sub_8082CB8
-_080826A6:
- pop {r0}
- bx r0
- .align 2, 0
-_080826AC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end do_choose_name_or_words_screen
-
- thumb_func_start sub_80826B0
-sub_80826B0: @ 80826B0
- push {lr}
- ldr r1, _080826CC @ =gUnknown_020239F8
- movs r0, 0x8
- strh r0, [r1]
- ldr r1, _080826D0 @ =gMain
- ldr r0, _080826D4 @ =do_choose_name_or_words_screen
- str r0, [r1, 0x8]
- bl task_add_01_battle_start_with_music_and_stats
- bl ScriptContext1_Stop
- pop {r0}
- bx r0
- .align 2, 0
-_080826CC: .4byte gUnknown_020239F8
-_080826D0: .4byte gMain
-_080826D4: .4byte do_choose_name_or_words_screen
- thumb_func_end sub_80826B0
-
- thumb_func_start sub_80826D8
-sub_80826D8: @ 80826D8
- push {lr}
- bl sub_808281C
- bl ShowFieldMessage
- pop {r0}
- bx r0
- thumb_func_end sub_80826D8
-
- thumb_func_start sub_80826E8
-sub_80826E8: @ 80826E8
- push {lr}
- ldr r0, _080826F8 @ =gTrainerBattleScriptReturnAddress
- ldr r0, [r0]
- cmp r0, 0
- bne _080826F4
- ldr r0, _080826FC @ =gUnknown_081C6C02
-_080826F4:
- pop {r1}
- bx r1
- .align 2, 0
-_080826F8: .4byte gTrainerBattleScriptReturnAddress
-_080826FC: .4byte gUnknown_081C6C02
- thumb_func_end sub_80826E8
-
- thumb_func_start sub_8082700
-sub_8082700: @ 8082700
- push {lr}
- ldr r0, _08082710 @ =gTrainerBattleEndScript
- ldr r0, [r0]
- cmp r0, 0
- bne _0808270C
- ldr r0, _08082714 @ =gUnknown_081C6C02
-_0808270C:
- pop {r1}
- bx r1
- .align 2, 0
-_08082710: .4byte gTrainerBattleEndScript
-_08082714: .4byte gUnknown_081C6C02
- thumb_func_end sub_8082700
-
- thumb_func_start sub_8082718
-sub_8082718: @ 8082718
- push {lr}
- bl sub_8082880
- bl ShowFieldMessage
- pop {r0}
- bx r0
- thumb_func_end sub_8082718
-
- thumb_func_start sub_8082728
-sub_8082728: @ 8082728
- push {lr}
- ldr r0, _08082750 @ =gTrainerBattleMode
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _08082802
- cmp r0, 0x8
- beq _08082802
- ldr r0, _08082754 @ =gTrainerBattleOpponent
- ldrh r0, [r0]
- bl sub_803FC58
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bhi _080827FC
- lsls r0, 2
- ldr r1, _08082758 @ =_0808275C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08082750: .4byte gTrainerBattleMode
-_08082754: .4byte gTrainerBattleOpponent
-_08082758: .4byte _0808275C
- .align 2, 0
-_0808275C:
- .4byte _08082794
- .4byte _0808279A
- .4byte _080827A4
- .4byte _080827FC
- .4byte _080827AC
- .4byte _080827B2
- .4byte _080827BC
- .4byte _080827C4
- .4byte _080827CC
- .4byte _080827D4
- .4byte _080827DC
- .4byte _080827E2
- .4byte _080827EC
- .4byte _080827F4
-_08082794:
- movs r0, 0xBE
- lsls r0, 1
- b _080827FE
-_0808279A:
- ldr r0, _080827A0 @ =0x00000197
- b _080827FE
- .align 2, 0
-_080827A0: .4byte 0x00000197
-_080827A4:
- ldr r0, _080827A8 @ =0x0000017b
- b _080827FE
- .align 2, 0
-_080827A8: .4byte 0x0000017b
-_080827AC:
- movs r0, 0xD0
- lsls r0, 1
- b _080827FE
-_080827B2:
- ldr r0, _080827B8 @ =0x000001a1
- b _080827FE
- .align 2, 0
-_080827B8: .4byte 0x000001a1
-_080827BC:
- ldr r0, _080827C0 @ =0x000001a3
- b _080827FE
- .align 2, 0
-_080827C0: .4byte 0x000001a3
-_080827C4:
- ldr r0, _080827C8 @ =0x000001b9
- b _080827FE
- .align 2, 0
-_080827C8: .4byte 0x000001b9
-_080827CC:
- ldr r0, _080827D0 @ =0x00000181
- b _080827FE
- .align 2, 0
-_080827D0: .4byte 0x00000181
-_080827D4:
- ldr r0, _080827D8 @ =0x000001c1
- b _080827FE
- .align 2, 0
-_080827D8: .4byte 0x000001c1
-_080827DC:
- movs r0, 0xE1
- lsls r0, 1
- b _080827FE
-_080827E2:
- ldr r0, _080827E8 @ =0x000001c3
- b _080827FE
- .align 2, 0
-_080827E8: .4byte 0x000001c3
-_080827EC:
- ldr r0, _080827F0 @ =0x000001c5
- b _080827FE
- .align 2, 0
-_080827F0: .4byte 0x000001c5
-_080827F4:
- ldr r0, _080827F8 @ =0x0000018d
- b _080827FE
- .align 2, 0
-_080827F8: .4byte 0x0000018d
-_080827FC:
- ldr r0, _08082808 @ =0x000001a7
-_080827FE:
- bl PlayNewMapMusic
-_08082802:
- pop {r0}
- bx r0
- .align 2, 0
-_08082808: .4byte 0x000001a7
- thumb_func_end sub_8082728
-
- thumb_func_start ReturnEmptyStringIfNull
-ReturnEmptyStringIfNull: @ 808280C
- push {lr}
- cmp r0, 0
- bne _08082814
- ldr r0, _08082818 @ =gOtherText_CancelWithTerminator
-_08082814:
- pop {r1}
- bx r1
- .align 2, 0
-_08082818: .4byte gOtherText_CancelWithTerminator
- thumb_func_end ReturnEmptyStringIfNull
-
- thumb_func_start sub_808281C
-sub_808281C: @ 808281C
- push {lr}
- ldr r0, _0808282C @ =gTrainerIntroSpeech
- ldr r0, [r0]
- bl ReturnEmptyStringIfNull
- pop {r1}
- bx r1
- .align 2, 0
-_0808282C: .4byte gTrainerIntroSpeech
- thumb_func_end sub_808281C
-
- thumb_func_start sub_8082830
-sub_8082830: @ 8082830
- push {r4,lr}
- ldr r0, _08082844 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _08082848
- bl sub_80BCCE8
- b _0808284C
- .align 2, 0
-_08082844: .4byte gTrainerBattleOpponent
-_08082848:
- ldr r0, _08082864 @ =gTrainerDefeatSpeech
- ldr r0, [r0]
-_0808284C:
- ldr r4, _08082868 @ =gStringVar4
- 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
-_08082864: .4byte gTrainerDefeatSpeech
-_08082868: .4byte gStringVar4
- thumb_func_end sub_8082830
-
- thumb_func_start unref_sub_808286C
-unref_sub_808286C: @ 808286C
- push {lr}
- ldr r0, _0808287C @ =gTrainerVictorySpeech
- ldr r0, [r0]
- bl ReturnEmptyStringIfNull
- pop {r1}
- bx r1
- .align 2, 0
-_0808287C: .4byte gTrainerVictorySpeech
- thumb_func_end unref_sub_808286C
-
- thumb_func_start sub_8082880
-sub_8082880: @ 8082880
- push {lr}
- ldr r0, _08082890 @ =gTrainerCannotBattleSpeech
- ldr r0, [r0]
- bl ReturnEmptyStringIfNull
- pop {r1}
- bx r1
- .align 2, 0
-_08082890: .4byte gTrainerCannotBattleSpeech
- thumb_func_end sub_8082880
-
- thumb_func_start sub_8082894
-sub_8082894: @ 8082894
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- movs r3, 0
- adds r2, r0, 0
-_0808289E:
- ldrh r0, [r2]
- cmp r0, r1
- bne _080828A8
- adds r0, r3, 0
- b _080828B4
-_080828A8:
- adds r2, 0x10
- adds r3, 0x1
- cmp r3, 0x37
- ble _0808289E
- movs r0, 0x1
- negs r0, r0
-_080828B4:
- pop {r1}
- bx r1
- thumb_func_end sub_8082894
-
- thumb_func_start sub_80828B8
-sub_80828B8: @ 80828B8
- push {r4,r5,lr}
- lsls r1, 16
- lsrs r5, r1, 16
- movs r4, 0
- adds r2, r0, 0
-_080828C2:
- movs r1, 0
- ldrh r0, [r2]
- cmp r0, 0
- beq _080828E8
- movs r3, 0
-_080828CC:
- adds r0, r2, r3
- ldrh r0, [r0]
- cmp r0, r5
- bne _080828D8
- adds r0, r4, 0
- b _080828F4
-_080828D8:
- adds r3, 0x2
- adds r1, 0x1
- cmp r1, 0x4
- bgt _080828E8
- adds r0, r2, r3
- ldrh r0, [r0]
- cmp r0, 0
- bne _080828CC
-_080828E8:
- adds r2, 0x10
- adds r4, 0x1
- cmp r4, 0x37
- ble _080828C2
- movs r0, 0x1
- negs r0, r0
-_080828F4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80828B8
-
- thumb_func_start sub_80828FC
-sub_80828FC: @ 80828FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- lsls r2, 16
- lsrs r2, 16
- mov r10, r2
- movs r4, 0
- movs r5, 0
- ldr r0, _08082968 @ =gSaveBlock1 + 0x97A
- mov r9, r0
-_0808291E:
- lsls r0, r5, 4
- adds r2, r0, r7
- ldrh r1, [r2, 0xA]
- adds r6, r0, 0
- adds r0, r5, 0x1
- mov r8, r0
- ldr r0, [sp]
- cmp r1, r0
- bne _08082990
- ldrh r0, [r2, 0xC]
- cmp r0, r10
- bne _08082990
- mov r1, r9
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0808298E
- ldrh r0, [r2]
- bl trainer_flag_check
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08082990
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1E
- bhi _08082990
- movs r4, 0x1
- b _0808296E
- .align 2, 0
-_08082968: .4byte gSaveBlock1 + 0x97A
-_0808296C:
- adds r4, 0x1
-_0808296E:
- cmp r4, 0x4
- bgt _08082988
- adds r0, r6, r7
- lsls r1, r4, 1
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, 0
- beq _08082988
- bl trainer_flag_check
- lsls r0, 24
- cmp r0, 0
- bne _0808296C
-_08082988:
- mov r1, r9
- adds r0, r5, r1
- strb r4, [r0]
-_0808298E:
- movs r4, 0x1
-_08082990:
- mov r5, r8
- cmp r5, 0x37
- ble _0808291E
- adds r0, r4, 0
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80828FC
-
- thumb_func_start sub_80829A8
-sub_80829A8: @ 80829A8
- push {r4,r5,lr}
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- movs r1, 0
- ldr r5, _080829D4 @ =gSaveBlock1 + 0x97A
- adds r3, r0, 0
- adds r3, 0xA
-_080829BA:
- ldrh r0, [r3]
- cmp r0, r4
- bne _080829D8
- ldrh r0, [r3, 0x2]
- cmp r0, r2
- bne _080829D8
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, 0
- beq _080829D8
- movs r0, 0x1
- b _080829E2
- .align 2, 0
-_080829D4: .4byte gSaveBlock1 + 0x97A
-_080829D8:
- adds r3, 0x10
- adds r1, 0x1
- cmp r1, 0x37
- ble _080829BA
- movs r0, 0
-_080829E2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80829A8
-
- thumb_func_start sub_80829E8
-sub_80829E8: @ 80829E8
- push {r4,lr}
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- movs r1, 0
- adds r3, r0, 0
- adds r3, 0xA
-_080829F8:
- ldrh r0, [r3]
- cmp r0, r4
- bne _08082A08
- ldrh r0, [r3, 0x2]
- cmp r0, r2
- bne _08082A08
- movs r0, 0x1
- b _08082A12
-_08082A08:
- adds r3, 0x10
- adds r1, 0x1
- cmp r1, 0x37
- ble _080829F8
- movs r0, 0
-_08082A12:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80829E8
-
- thumb_func_start sub_8082A18
-sub_8082A18: @ 8082A18
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- bl sub_8082894
- adds r1, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08082A4C
- cmp r1, 0x63
- bgt _08082A4C
- ldr r0, _08082A44 @ =gSaveBlock1
- ldr r2, _08082A48 @ =0x0000097a
- adds r0, r2
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0
- beq _08082A4C
- movs r0, 0x1
- b _08082A4E
- .align 2, 0
-_08082A44: .4byte gSaveBlock1
-_08082A48: .4byte 0x0000097a
-_08082A4C:
- movs r0, 0
-_08082A4E:
- pop {r1}
- bx r1
- thumb_func_end sub_8082A18
-
- thumb_func_start sub_8082A54
-sub_8082A54: @ 8082A54
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- bl sub_80828B8
- adds r1, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08082A88
- cmp r1, 0x63
- bgt _08082A88
- ldr r0, _08082A80 @ =gSaveBlock1
- ldr r2, _08082A84 @ =0x0000097a
- adds r0, r2
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0
- beq _08082A88
- movs r0, 0x1
- b _08082A8A
- .align 2, 0
-_08082A80: .4byte gSaveBlock1
-_08082A84: .4byte 0x0000097a
-_08082A88:
- movs r0, 0
-_08082A8A:
- pop {r1}
- bx r1
- thumb_func_end sub_8082A54
-
- thumb_func_start sub_8082A90
-sub_8082A90: @ 8082A90
- push {r4-r7,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r1, 16
- bl sub_8082894
- adds r1, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _08082AB8
- movs r0, 0
- b _08082ADE
-_08082AAA:
- subs r0, r6, 0x1
- lsls r0, 1
- adds r0, r7, r0
- ldrh r0, [r0]
- b _08082ADE
-_08082AB4:
- ldrh r0, [r5]
- b _08082ADE
-_08082AB8:
- lsls r0, r1, 4
- adds r7, r4, r0
- movs r6, 0x1
- adds r5, r7, 0x2
- adds r4, r5, 0
-_08082AC2:
- ldrh r0, [r4]
- cmp r0, 0
- beq _08082AAA
- bl trainer_flag_check
- lsls r0, 24
- cmp r0, 0
- beq _08082AB4
- adds r4, 0x2
- adds r5, 0x2
- adds r6, 0x1
- cmp r6, 0x4
- ble _08082AC2
- ldrh r0, [r7, 0x8]
-_08082ADE:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8082A90
-
- thumb_func_start sub_8082AE4
-sub_8082AE4: @ 8082AE4
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- bl sub_80828B8
- adds r1, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08082B04
- ldr r0, _08082B08 @ =gSaveBlock1
- ldr r2, _08082B0C @ =0x0000097a
- adds r0, r2
- adds r0, r1, r0
- movs r1, 0
- strb r1, [r0]
-_08082B04:
- pop {r0}
- bx r0
- .align 2, 0
-_08082B08: .4byte gSaveBlock1
-_08082B0C: .4byte 0x0000097a
- thumb_func_end sub_8082AE4
-
- thumb_func_start sub_8082B10
-sub_8082B10: @ 8082B10
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r1, 16
- bl sub_8082894
- adds r1, r0, 0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08082B3A
- lsls r0, r1, 4
- adds r0, r4
- ldrh r0, [r0, 0x2]
- bl trainer_flag_check
- lsls r0, 24
- cmp r0, 0
- beq _08082B3A
- movs r0, 0x1
- b _08082B3C
-_08082B3A:
- movs r0, 0
-_08082B3C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8082B10
-
- thumb_func_start sub_8082B44
-sub_8082B44: @ 8082B44
- push {r4-r6,lr}
- movs r6, 0
- movs r5, 0
- ldr r4, _08082B64 @ =gUnknown_0839B1F0
-_08082B4C:
- ldrh r0, [r4]
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08082B68
- adds r6, 0x1
- cmp r6, 0x4
- ble _08082B68
- movs r0, 0x1
- b _08082B72
- .align 2, 0
-_08082B64: .4byte gUnknown_0839B1F0
-_08082B68:
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x7
- bls _08082B4C
- movs r0, 0
-_08082B72:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8082B44
-
- thumb_func_start sub_8082B78
-sub_8082B78: @ 8082B78
- push {lr}
- bl sub_8082B44
- cmp r0, 0
- beq _08082BA0
- ldr r0, _08082B94 @ =gSaveBlock1
- ldr r2, _08082B98 @ =0x00000978
- adds r1, r0, r2
- ldrh r0, [r1]
- cmp r0, 0xFE
- bls _08082B9C
- movs r0, 0xFF
- b _08082B9E
- .align 2, 0
-_08082B94: .4byte gSaveBlock1
-_08082B98: .4byte 0x00000978
-_08082B9C:
- adds r0, 0x1
-_08082B9E:
- strh r0, [r1]
-_08082BA0:
- pop {r0}
- bx r0
- thumb_func_end sub_8082B78
-
- thumb_func_start sub_8082BA4
-sub_8082BA4: @ 8082BA4
- push {lr}
- bl sub_8082B44
- cmp r0, 0
- beq _08082BC8
- ldr r0, _08082BC0 @ =gSaveBlock1
- ldr r1, _08082BC4 @ =0x00000978
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0xFE
- bls _08082BC8
- movs r0, 0x1
- b _08082BCA
- .align 2, 0
-_08082BC0: .4byte gSaveBlock1
-_08082BC4: .4byte 0x00000978
-_08082BC8:
- movs r0, 0
-_08082BCA:
- pop {r1}
- bx r1
- thumb_func_end sub_8082BA4
-
- thumb_func_start sub_8082BD0
-sub_8082BD0: @ 8082BD0
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- bl sub_8082BA4
- cmp r0, 0
- beq _08082BFA
- ldr r0, _08082C00 @ =gTrainerEyeTrainers
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_80828FC
- cmp r0, 0x1
- bne _08082BFA
- ldr r0, _08082C04 @ =gSaveBlock1
- ldr r1, _08082C08 @ =0x00000978
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
-_08082BFA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08082C00: .4byte gTrainerEyeTrainers
-_08082C04: .4byte gSaveBlock1
-_08082C08: .4byte 0x00000978
- thumb_func_end sub_8082BD0
-
- thumb_func_start sub_8082C0C
-sub_8082C0C: @ 8082C0C
- push {lr}
- adds r3, r0, 0
- adds r2, r1, 0
- lsls r3, 16
- lsrs r3, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r0, _08082C28 @ =gTrainerEyeTrainers
- adds r1, r3, 0
- bl sub_80829A8
- pop {r1}
- bx r1
- .align 2, 0
-_08082C28: .4byte gTrainerEyeTrainers
- thumb_func_end sub_8082C0C
-
- thumb_func_start unref_sub_8082C2C
-unref_sub_8082C2C: @ 8082C2C
- push {lr}
- adds r3, r0, 0
- adds r2, r1, 0
- lsls r3, 16
- lsrs r3, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r0, _08082C48 @ =gTrainerEyeTrainers
- adds r1, r3, 0
- bl sub_80829E8
- pop {r1}
- bx r1
- .align 2, 0
-_08082C48: .4byte gTrainerEyeTrainers
- thumb_func_end unref_sub_8082C2C
-
- thumb_func_start sub_8082C4C
-sub_8082C4C: @ 8082C4C
- push {lr}
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _08082C64 @ =gTrainerEyeTrainers
- bl sub_8082A90
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_08082C64: .4byte gTrainerEyeTrainers
- thumb_func_end sub_8082C4C
-
- thumb_func_start sub_8082C68
-sub_8082C68: @ 8082C68
- push {r4,r5,lr}
- ldr r5, _08082C8C @ =gTrainerEyeTrainers
- ldr r4, _08082C90 @ =gTrainerBattleOpponent
- ldrh r1, [r4]
- adds r0, r5, 0
- bl sub_8082A18
- lsls r0, 24
- cmp r0, 0
- bne _08082C94
- ldrh r1, [r4]
- adds r0, r5, 0
- bl sub_8082B10
- lsls r0, 24
- lsrs r0, 24
- b _08082C96
- .align 2, 0
-_08082C8C: .4byte gTrainerEyeTrainers
-_08082C90: .4byte gTrainerBattleOpponent
-_08082C94:
- movs r0, 0x1
-_08082C96:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8082C68
-
- thumb_func_start sub_8082C9C
-sub_8082C9C: @ 8082C9C
- push {lr}
- ldr r0, _08082CB0 @ =gTrainerEyeTrainers
- ldr r1, _08082CB4 @ =gTrainerBattleOpponent
- ldrh r1, [r1]
- bl sub_8082A54
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08082CB0: .4byte gTrainerEyeTrainers
-_08082CB4: .4byte gTrainerBattleOpponent
- thumb_func_end sub_8082C9C
-
- thumb_func_start sub_8082CB8
-sub_8082CB8: @ 8082CB8
- push {lr}
- ldr r0, _08082CCC @ =gTrainerEyeTrainers
- ldr r1, _08082CD0 @ =gTrainerBattleOpponent
- ldrh r1, [r1]
- bl sub_8082AE4
- bl sub_808257C
- pop {r0}
- bx r0
- .align 2, 0
-_08082CCC: .4byte gTrainerEyeTrainers
-_08082CD0: .4byte gTrainerBattleOpponent
- thumb_func_end sub_8082CB8
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/battle_transition.s b/asm/battle_transition.s
index 66443242b..a4b4d1666 100644
--- a/asm/battle_transition.s
+++ b/asm/battle_transition.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/berry_blender.s b/asm/berry_blender.s
index 70af7824d..affe536ca 100644
--- a/asm/berry_blender.s
+++ b/asm/berry_blender.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -323,7 +323,7 @@ sub_804E538: @ 804E538
movs r1, 0
strb r1, [r0]
strb r1, [r2]
- ldr r0, _0804E564 @ =gUnknown_0202E8CC
+ ldr r0, _0804E564 @ =gSpecialVar_0x8004
ldrb r0, [r0]
bl sub_804E884
ldr r0, _0804E568 @ =sub_804E56C
@@ -333,7 +333,7 @@ sub_804E538: @ 804E538
.align 2, 0
_0804E55C: .4byte gUnknown_03004854
_0804E560: .4byte 0x02018000
-_0804E564: .4byte gUnknown_0202E8CC
+_0804E564: .4byte gSpecialVar_0x8004
_0804E568: .4byte sub_804E56C
thumb_func_end sub_804E538
@@ -864,7 +864,7 @@ sub_804E990: @ 804E990
adds r0, r2
str r1, [r0]
movs r2, 0
- ldr r5, _0804E9E0 @ =gUnknown_0202E8CC
+ ldr r5, _0804E9E0 @ =gSpecialVar_0x8004
adds r4, r3, 0
movs r3, 0
_0804E9B4:
@@ -887,7 +887,7 @@ _0804E9B4:
.align 2, 0
_0804E9D8: .4byte gUnknown_03004854
_0804E9DC: .4byte 0x02018000
-_0804E9E0: .4byte gUnknown_0202E8CC
+_0804E9E0: .4byte gSpecialVar_0x8004
_0804E9E4: .4byte sub_804E9F8
_0804E9E8:
ldr r0, _0804E9F4 @ =sub_804F378
@@ -1227,7 +1227,7 @@ _0804ED48:
movs r4, 0xBE
lsls r4, 1
adds r0, r4
- ldr r1, _0804ED8C @ =word_203855E
+ ldr r1, _0804ED8C @ =gScriptItemId
ldrh r1, [r1]
bl sub_804E844
ldr r0, _0804ED90 @ =gBlockSendBuffer
@@ -1244,7 +1244,7 @@ _0804ED48:
str r5, [r0]
b _0804F0CE
.align 2, 0
-_0804ED8C: .4byte word_203855E
+_0804ED8C: .4byte gScriptItemId
_0804ED90: .4byte gBlockSendBuffer
_0804ED94:
bl sub_8007ECC
@@ -1277,7 +1277,7 @@ _0804EDB8:
b _0804F0CE
_0804EDCE:
bl MenuZeroFillScreen
- bl GetBlockRecievedStatus
+ bl GetBlockReceivedStatus
adds r4, r0, 0
bl sub_8008198
lsls r4, 24
@@ -2050,7 +2050,7 @@ _0804F3A0:
.4byte _0804F754
_0804F3F8:
bl sub_804F0F4
- ldr r4, _0804F46C @ =word_203855E
+ ldr r4, _0804F46C @ =gScriptItemId
ldrh r1, [r4]
movs r0, 0
bl sub_80516C4
@@ -2105,7 +2105,7 @@ _0804F442:
strb r2, [r3, 0x1]
b _0804F7E6
.align 2, 0
-_0804F46C: .4byte word_203855E
+_0804F46C: .4byte gScriptItemId
_0804F470: .4byte gUnknown_03004854
_0804F474:
bl sub_804E2EC
@@ -2499,7 +2499,7 @@ _0804F754:
ldr r0, _0804F80C @ =sub_80501FC
bl SetMainCallback2
movs r4, 0
- ldr r0, _0804F810 @ =gUnknown_0202E8CC
+ ldr r0, _0804F810 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r4, r0
bge _0804F7B8
@@ -2521,7 +2521,7 @@ _0804F792:
lsls r3, 17
adds r5, r3
adds r4, 0x1
- ldr r0, _0804F810 @ =gUnknown_0202E8CC
+ ldr r0, _0804F810 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r4, r0
blt _0804F792
@@ -2560,7 +2560,7 @@ _0804F7E6:
_0804F804: .4byte gUnknown_03004854
_0804F808: .4byte 0x0000014b
_0804F80C: .4byte sub_80501FC
-_0804F810: .4byte gUnknown_0202E8CC
+_0804F810: .4byte gSpecialVar_0x8004
_0804F814: .4byte gUnknown_08216308
_0804F818: .4byte 0x00000193
thumb_func_end sub_804F378
@@ -3364,7 +3364,7 @@ sub_804FE70: @ 804FE70
mov r5, r8
push {r5-r7}
sub sp, 0x4
- ldr r0, _0804FF40 @ =gUnknown_0202E8CC
+ ldr r0, _0804FF40 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0
beq _0804FEB6
@@ -3468,7 +3468,7 @@ _0804FF26:
adds r0, 0x1
b _0804FFCA
.align 2, 0
-_0804FF40: .4byte gUnknown_0202E8CC
+_0804FF40: .4byte gSpecialVar_0x8004
_0804FF44: .4byte gSendCmd
_0804FF48: .4byte gRecvCmds
_0804FF4C: .4byte 0x00004444
@@ -3596,7 +3596,7 @@ _0805003E:
bge _0805005C
b _0804FED8
_0805005C:
- ldr r0, _080500A0 @ =gUnknown_0202E8CC
+ ldr r0, _080500A0 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0
beq _08050088
@@ -3631,7 +3631,7 @@ _08050088:
.align 2, 0
_08050098: .4byte gMPlay_BGM
_0805009C: .4byte gUnknown_03004854
-_080500A0: .4byte gUnknown_0202E8CC
+_080500A0: .4byte gSpecialVar_0x8004
_080500A4: .4byte gRecvCmds
thumb_func_end sub_804FE70
@@ -4863,14 +4863,14 @@ _080509CC:
lsls r0, 24
lsrs r4, r0, 24
_080509E4:
- ldr r0, _080509F4 @ =gUnknown_0202E8CC
+ ldr r0, _080509F4 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r4, r0
bcc _080509CC
b _08050C82
.align 2, 0
_080509F0: .4byte gUnknown_03004854
-_080509F4: .4byte gUnknown_0202E8CC
+_080509F4: .4byte gSpecialVar_0x8004
_080509F8:
ldr r1, _08050A24 @ =gUnknown_03004854
ldr r3, [r1]
@@ -4950,7 +4950,7 @@ _08050A64:
.align 2, 0
_08050A90: .4byte gUnknown_03004854
_08050A94:
- bl GetBlockRecievedStatus
+ bl GetBlockReceivedStatus
lsls r0, 24
cmp r0, 0
bne _08050AA0
@@ -7647,7 +7647,7 @@ _08051F86:
movs r1, 0x1
movs r2, 0xF
bl MenuPrintMessage
- ldr r0, _08051FF4 @ =word_203855E
+ ldr r0, _08051FF4 @ =gScriptItemId
ldrh r0, [r0]
movs r1, 0x1
bl RemoveBagItem
@@ -7662,7 +7662,7 @@ _08051FE2:
.align 2, 0
_08051FEC: .4byte gUnknown_03004854
_08051FF0: .4byte sub_8052BD0
-_08051FF4: .4byte word_203855E
+_08051FF4: .4byte gScriptItemId
_08051FF8:
bl MenuUpdateWindowText
lsls r0, 24
@@ -7692,7 +7692,7 @@ sub_805201C: @ 805201C
adds r6, r1, 0
movs r0, 0xFF
strb r0, [r6]
- ldr r1, _080520B0 @ =gUnknown_083F7EB8
+ ldr r1, _080520B0 @ =gPokeblockNames
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
@@ -7748,7 +7748,7 @@ sub_805201C: @ 805201C
pop {r0}
bx r0
.align 2, 0
-_080520B0: .4byte gUnknown_083F7EB8
+_080520B0: .4byte gPokeblockNames
_080520B4: .4byte gOtherText_PokeBlockMade
_080520B8: .4byte gUnknown_082162C8
_080520BC: .4byte gOtherText_BlockLevelIs
@@ -8521,7 +8521,7 @@ _080526EC:
ldrb r0, [r1, 0x8]
cmp r0, 0
beq _080527A4
- ldr r1, _080527B4 @ =gUnknown_083F7EB8
+ ldr r1, _080527B4 @ =gPokeblockNames
mov r2, r8
ldrb r0, [r2, 0x8]
lsls r0, 2
@@ -8605,7 +8605,7 @@ _080527A4:
pop {r0}
bx r0
.align 2, 0
-_080527B4: .4byte gUnknown_083F7EB8
+_080527B4: .4byte gPokeblockNames
_080527B8: .4byte gUnknown_082165F8
thumb_func_end sub_8052530
diff --git a/asm/berry_tag_screen.s b/asm/berry_tag_screen.s
index 00476338e..7f26885e6 100644
--- a/asm/berry_tag_screen.s
+++ b/asm/berry_tag_screen.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -159,7 +159,7 @@ _0814615C:
_08146168: .4byte gMain
_0814616C: .4byte 0x0000043c
_08146170:
- ldr r0, _08146188 @ =word_203855E
+ ldr r0, _08146188 @ =gScriptItemId
ldrb r0, [r0]
adds r0, 0x7B
lsls r0, 24
@@ -171,10 +171,10 @@ _08146170:
strb r0, [r1]
b _0814620C
.align 2, 0
-_08146188: .4byte word_203855E
+_08146188: .4byte gScriptItemId
_0814618C: .4byte gUnknown_0203932C
_08146190:
- ldr r0, _081461A8 @ =word_203855E
+ ldr r0, _081461A8 @ =gScriptItemId
ldrb r0, [r0]
adds r0, 0x7B
lsls r0, 24
@@ -185,7 +185,7 @@ _08146190:
adds r1, r0
b _08146212
.align 2, 0
-_081461A8: .4byte word_203855E
+_081461A8: .4byte gScriptItemId
_081461AC: .4byte gMain
_081461B0: .4byte 0x0000043c
_081461B4:
@@ -380,7 +380,7 @@ _08146338: .4byte gUnknown_08E78A84
_0814633C: .4byte 0x06003000
_08146340:
movs r1, 0
- ldr r7, _0814635C @ =gBG2TilemapBuffer
+ ldr r7, _0814635C @ =gBGTilemapBuffers + 0x1000
adds r2, r7, 0
ldr r6, _08146360 @ =0x00004042
ldr r5, _08146364 @ =gSaveBlock2
@@ -395,7 +395,7 @@ _0814634E:
strh r6, [r0]
b _08146376
.align 2, 0
-_0814635C: .4byte gBG2TilemapBuffer
+_0814635C: .4byte gBGTilemapBuffers + 0x1000
_08146360: .4byte 0x00004042
_08146364: .4byte gSaveBlock2
_08146368: .4byte 0x00005042
@@ -591,7 +591,7 @@ _081464E0: .4byte gMain
thumb_func_start sub_81464E4
sub_81464E4: @ 81464E4
push {r4-r7,lr}
- ldr r4, _0814659C @ =word_203855E
+ ldr r4, _0814659C @ =gScriptItemId
ldrb r0, [r4]
adds r0, 0x7C
lsls r0, 24
@@ -669,7 +669,7 @@ _0814654E:
bl MenuPrint
b _081465BA
.align 2, 0
-_0814659C: .4byte word_203855E
+_0814659C: .4byte gScriptItemId
_081465A0: .4byte gStringVar1
_081465A4: .4byte gOtherText_Size
_081465A8: .4byte gStringVar2
@@ -1047,7 +1047,7 @@ _0814686C:
_0814686E:
strb r0, [r6, 0xC]
_08146870:
- ldr r2, _081468AC @ =word_203855E
+ ldr r2, _081468AC @ =gScriptItemId
movs r0, 0x3
lsls r0, 2
adds r0, r6
@@ -1074,7 +1074,7 @@ _08146870:
pop {r0}
bx r0
.align 2, 0
-_081468AC: .4byte word_203855E
+_081468AC: .4byte gScriptItemId
_081468B0: .4byte gUnknown_03005D24
_081468B4: .4byte gUnknown_0203932C
_081468B8: .4byte gSprites
@@ -1089,7 +1089,7 @@ sub_81468BC: @ 81468BC
movs r3, 0x13
bl MenuZeroFillWindowRect
bl sub_81464E4
- ldr r4, _081468F8 @ =word_203855E
+ ldr r4, _081468F8 @ =gScriptItemId
ldrb r0, [r4]
adds r0, 0x7B
lsls r0, 24
@@ -1108,7 +1108,7 @@ sub_81468BC: @ 81468BC
pop {r0}
bx r0
.align 2, 0
-_081468F8: .4byte word_203855E
+_081468F8: .4byte gScriptItemId
_081468FC: .4byte gUnknown_0203932C
thumb_func_end sub_81468BC
diff --git a/asm/big_shroomish_barboach.s b/asm/big_shroomish_barboach.s
deleted file mode 100644
index 94ad0dc98..000000000
--- a/asm/big_shroomish_barboach.s
+++ /dev/null
@@ -1,522 +0,0 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
-
- .syntax unified
-
- .text
-
- thumb_func_start GetBigMonSizeParams
-GetBigMonSizeParams: @ 80C58C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r0, 0
- movs r1, 0
- bl GetMonData
- lsls r0, 16
- str r0, [sp, 0x4]
- lsrs r0, 16
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0x27
- bl GetMonData
- adds r7, r0, 0
- movs r6, 0xF
- ands r7, r6
- adds r0, r5, 0
- movs r1, 0x28
- bl GetMonData
- mov r8, r0
- mov r1, r8
- ands r1, r6
- mov r8, r1
- adds r0, r5, 0
- movs r1, 0x29
- bl GetMonData
- mov r9, r0
- mov r3, r9
- ands r3, r6
- mov r9, r3
- adds r0, r5, 0
- movs r1, 0x2A
- bl GetMonData
- mov r10, r0
- ands r0, r6
- mov r10, r0
- adds r0, r5, 0
- movs r1, 0x2B
- bl GetMonData
- adds r4, r0, 0
- ands r4, r6
- adds r0, r5, 0
- movs r1, 0x2C
- bl GetMonData
- adds r2, r0, 0
- ands r2, r6
- mov r1, r8
- mov r3, r9
- eors r1, r3
- mov r8, r1
- mov r0, r8
- muls r0, r7
- movs r1, 0xFF
- ldr r3, [sp]
- ands r3, r1
- eors r0, r3
- eors r4, r2
- mov r1, r10
- muls r1, r4
- ldr r3, [sp, 0x4]
- lsrs r2, r3, 24
- eors r1, r2
- lsls r0, 8
- adds r0, r1
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end GetBigMonSizeParams
-
- thumb_func_start TranslateBigMonSizeTableIndex
-TranslateBigMonSizeTableIndex: @ 80C5964
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0x1
- ldr r3, _080C5980 @ =gUnknown_083D180C
-_080C596E:
- lsls r0, r1, 3
- adds r0, r3
- ldrh r0, [r0, 0x4]
- cmp r2, r0
- bcs _080C5984
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- b _080C5990
- .align 2, 0
-_080C5980: .4byte gUnknown_083D180C
-_080C5984:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xE
- bls _080C596E
- adds r0, r1, 0
-_080C5990:
- pop {r1}
- bx r1
- thumb_func_end TranslateBigMonSizeTableIndex
-
- thumb_func_start GetBigMonSize
-GetBigMonSize: @ 80C5994
- push {r4-r7,lr}
- sub sp, 0x8
- adds r6, r1, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r6, 16
- lsrs r6, 16
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- bl sub_8090D54
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r6, 0
- bl TranslateBigMonSizeTableIndex
- lsls r0, 24
- ldr r1, _080C5A04 @ =gUnknown_083D180C
- lsrs r0, 21
- adds r0, r1
- ldrh r1, [r0]
- str r1, [sp]
- movs r2, 0
- str r2, [sp, 0x4]
- ldrb r2, [r0, 0x2]
- movs r3, 0
- ldrh r4, [r0, 0x4]
- movs r5, 0
- adds r0, r6, 0
- movs r1, 0
- subs r0, r4
- sbcs r1, r5
- bl __udivdi3
- ldr r2, [sp]
- ldr r3, [sp, 0x4]
- adds r2, r0
- adcs r3, r1
- str r2, [sp]
- str r3, [sp, 0x4]
- adds r0, r7, 0
- movs r1, 0
- bl __muldi3
- movs r2, 0xA
- movs r3, 0
- bl __udivdi3
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080C5A04: .4byte gUnknown_083D180C
- thumb_func_end GetBigMonSize
-
- thumb_func_start FormatBigMonSize
-FormatBigMonSize: @ 80C5A08
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- adds r5, r1, 0
- ldr r1, _080C5A78 @ =gUnknown_083D188C
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 1
- adds r0, r4, 0
- bl __floatsidf
- cmp r4, 0
- bge _080C5A32
- ldr r2, _080C5A7C @ =0x41f00000
- ldr r3, _080C5A80 @ =0x00000000
- bl __adddf3
-_080C5A32:
- ldr r2, _080C5A84 @ =0x40396666
- ldr r3, _080C5A88 @ =0x66666666
- bl __divdf3
- bl __fixunsdfsi
- adds r5, r0, 0
- movs r1, 0xA
- bl __udivsi3
- adds r1, r0, 0
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0x8
- bl ConvertIntToDecimalStringN
- adds r6, r0, 0
- mov r1, sp
- bl StringAppend
- adds r6, r0, 0
- adds r0, r5, 0
- movs r1, 0xA
- bl __umodsi3
- adds r1, r0, 0
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5A78: .4byte gUnknown_083D188C
-_080C5A7C: .4byte 0x41f00000
-_080C5A80: .4byte 0x00000000
-_080C5A84: .4byte 0x40396666
-_080C5A88: .4byte 0x66666666
- thumb_func_end FormatBigMonSize
-
- thumb_func_start CompareMonSize
-CompareMonSize: @ 80C5A8C
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r1, 0
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, _080C5AA4 @ =gScriptResult
- ldrh r0, [r1]
- cmp r0, 0xFF
- bne _080C5AA8
- movs r0, 0
- b _080C5B12
- .align 2, 0
-_080C5AA4: .4byte gScriptResult
-_080C5AA8:
- ldrh r1, [r1]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080C5AD0 @ =gPlayerParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _080C5ACA
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, r6
- beq _080C5AD4
-_080C5ACA:
- movs r0, 0x1
- b _080C5B12
- .align 2, 0
-_080C5AD0: .4byte gPlayerParty
-_080C5AD4:
- mov r4, sp
- adds r0, r5, 0
- bl GetBigMonSizeParams
- strh r0, [r4]
- mov r0, sp
- ldrh r1, [r0]
- adds r0, r6, 0
- bl GetBigMonSize
- adds r5, r0, 0
- ldrh r1, [r7]
- adds r0, r6, 0
- bl GetBigMonSize
- adds r4, r0, 0
- ldr r0, _080C5B0C @ =gStringVar2
- adds r1, r5, 0
- bl FormatBigMonSize
- cmp r5, r4
- bls _080C5B10
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r7]
- movs r0, 0x3
- b _080C5B12
- .align 2, 0
-_080C5B0C: .4byte gStringVar2
-_080C5B10:
- movs r0, 0x2
-_080C5B12:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CompareMonSize
-
- thumb_func_start GetBigMonInfo
-GetBigMonInfo: @ 80C5B1C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- ldrh r1, [r5]
- adds r0, r4, 0
- bl GetBigMonSize
- adds r1, r0, 0
- ldr r0, _080C5B58 @ =gStringVar3
- bl FormatBigMonSize
- ldr r0, _080C5B5C @ =gStringVar1
- movs r1, 0xB
- muls r1, r4
- ldr r2, _080C5B60 @ =gSpeciesNames
- adds r1, r2
- bl StringCopy
- ldrh r1, [r5]
- movs r0, 0x81
- lsls r0, 8
- cmp r1, r0
- bne _080C5B6C
- ldr r0, _080C5B64 @ =gStringVar2
- ldr r1, _080C5B68 @ =gOtherText_Marco
- bl StringCopy
- b _080C5B74
- .align 2, 0
-_080C5B58: .4byte gStringVar3
-_080C5B5C: .4byte gStringVar1
-_080C5B60: .4byte gSpeciesNames
-_080C5B64: .4byte gStringVar2
-_080C5B68: .4byte gOtherText_Marco
-_080C5B6C:
- ldr r0, _080C5B7C @ =gStringVar2
- ldr r1, _080C5B80 @ =gSaveBlock2
- bl StringCopy
-_080C5B74:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5B7C: .4byte gStringVar2
-_080C5B80: .4byte gSaveBlock2
- thumb_func_end GetBigMonInfo
-
- thumb_func_start InitShroomishSizeRecord
-InitShroomishSizeRecord: @ 80C5B84
- push {lr}
- ldr r0, _080C5B94 @ =0x00004047
- movs r1, 0x81
- lsls r1, 8
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_080C5B94: .4byte 0x00004047
- thumb_func_end InitShroomishSizeRecord
-
- thumb_func_start GetBigShroomishInfo
-GetBigShroomishInfo: @ 80C5B98
- push {lr}
- ldr r0, _080C5BB0 @ =0x00004047
- bl GetVarPointer
- adds r1, r0, 0
- movs r0, 0x99
- lsls r0, 1
- bl GetBigMonInfo
- pop {r0}
- bx r0
- .align 2, 0
-_080C5BB0: .4byte 0x00004047
- thumb_func_end GetBigShroomishInfo
-
- thumb_func_start CompareShroomishSize
-CompareShroomishSize: @ 80C5BB4
- push {r4,lr}
- ldr r0, _080C5BD4 @ =0x00004047
- bl GetVarPointer
- adds r1, r0, 0
- ldr r4, _080C5BD8 @ =gScriptResult
- movs r0, 0x99
- lsls r0, 1
- bl CompareMonSize
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5BD4: .4byte 0x00004047
-_080C5BD8: .4byte gScriptResult
- thumb_func_end CompareShroomishSize
-
- thumb_func_start InitBarboachSizeRecord
-InitBarboachSizeRecord: @ 80C5BDC
- push {lr}
- ldr r0, _080C5BEC @ =0x0000404f
- movs r1, 0x81
- lsls r1, 8
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_080C5BEC: .4byte 0x0000404f
- thumb_func_end InitBarboachSizeRecord
-
- thumb_func_start GetBigBarboachInfo
-GetBigBarboachInfo: @ 80C5BF0
- push {lr}
- ldr r0, _080C5C04 @ =0x0000404f
- bl GetVarPointer
- adds r1, r0, 0
- ldr r0, _080C5C08 @ =0x00000143
- bl GetBigMonInfo
- pop {r0}
- bx r0
- .align 2, 0
-_080C5C04: .4byte 0x0000404f
-_080C5C08: .4byte 0x00000143
- thumb_func_end GetBigBarboachInfo
-
- thumb_func_start CompareBarboachSize
-CompareBarboachSize: @ 80C5C0C
- push {r4,lr}
- ldr r0, _080C5C2C @ =0x0000404f
- bl GetVarPointer
- adds r1, r0, 0
- ldr r4, _080C5C30 @ =gScriptResult
- ldr r0, _080C5C34 @ =0x00000143
- bl CompareMonSize
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5C2C: .4byte 0x0000404f
-_080C5C30: .4byte gScriptResult
-_080C5C34: .4byte 0x00000143
- thumb_func_end CompareBarboachSize
-
- thumb_func_start GiveSpecialRibbonToParty
-GiveSpecialRibbonToParty: @ 80C5C38
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- movs r7, 0
- add r4, sp, 0x8
- movs r0, 0x1
- strb r0, [r4]
- ldr r1, _080C5CC0 @ =gUnknown_083D188E
- mov r0, sp
- movs r2, 0x7
- bl memcpy
- mov r8, r4
- cmp r6, 0xA
- bhi _080C5CB2
- cmp r5, 0x40
- bhi _080C5CB2
- ldr r0, _080C5CC4 @ =gSaveBlock1
- ldr r1, _080C5CC8 @ =0x00003110
- adds r0, r1
- adds r0, r6, r0
- strb r5, [r0]
- movs r5, 0
-_080C5C70:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080C5CCC @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080C5CA2
- adds r0, r4, 0
- movs r1, 0x6
- bl GetMonData
- cmp r0, 0
- bne _080C5CA2
- mov r1, sp
- adds r0, r1, r6
- ldrb r1, [r0]
- adds r0, r4, 0
- mov r2, r8
- bl SetMonData
- movs r7, 0x1
-_080C5CA2:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080C5C70
- cmp r7, 0
- beq _080C5CB2
- ldr r0, _080C5CD0 @ =0x0000083b
- bl FlagSet
-_080C5CB2:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5CC0: .4byte gUnknown_083D188E
-_080C5CC4: .4byte gSaveBlock1
-_080C5CC8: .4byte 0x00003110
-_080C5CCC: .4byte gPlayerParty
-_080C5CD0: .4byte 0x0000083b
- thumb_func_end GiveSpecialRibbonToParty
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/bike.s b/asm/bike.s
index 4b324c111..d73fa55dc 100644
--- a/asm/bike.s
+++ b/asm/bike.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/cable_car.s b/asm/cable_car.s
index 719f4f7b6..47afb097f 100644
--- a/asm/cable_car.s
+++ b/asm/cable_car.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -428,7 +428,7 @@ _0812358C: .4byte gCableCarPylonHookTilemapEntries
_08123590: .4byte gMain
_08123594: .4byte 0x0000043c
_08123598:
- ldr r0, _08123664 @ =gUnknown_0202E8CC
+ ldr r0, _08123664 @ =gSpecialVar_0x8004
ldrb r0, [r0]
bl sub_81248AC
ldr r0, _08123668 @ =gUnknown_02039274
@@ -521,7 +521,7 @@ _08123598:
adds r0, 0x1
b _0812370C
.align 2, 0
-_08123664: .4byte gUnknown_0202E8CC
+_08123664: .4byte gSpecialVar_0x8004
_08123668: .4byte gUnknown_02039274
_0812366C: .4byte 0x02019090
_08123670: .4byte gMain
@@ -563,12 +563,12 @@ _081236B0:
strh r2, [r3]
ldr r0, _081236EC @ =sub_8123C40
bl SetVBlankCallback
- ldr r0, _081236F0 @ =mainloop
+ ldr r0, _081236F0 @ =sub_8123724
bl SetMainCallback2
ldr r0, _081236F4 @ =sub_8123878
movs r1, 0
bl CreateTask
- ldr r0, _081236F8 @ =gUnknown_0202E8CC
+ ldr r0, _081236F8 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0
bne _08123700
@@ -580,7 +580,7 @@ _081236E8: .4byte 0x04000200
_081236EC: .4byte sub_8123C40
_081236F0: .4byte sub_8123724
_081236F4: .4byte sub_8123878
-_081236F8: .4byte gUnknown_0202E8CC
+_081236F8: .4byte gSpecialVar_0x8004
_081236FC: .4byte sub_81239E4
_08123700:
ldr r0, _0812371C @ =sub_8123AF8
@@ -1326,7 +1326,7 @@ sub_8123CB8: @ 8123CB8
ldrb r0, [r6, 0x1]
cmp r0, 0xFF
beq _08123D84
- ldr r0, _08123D24 @ =gUnknown_0202E8CC
+ ldr r0, _08123D24 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0
bne _08123D34
@@ -1367,7 +1367,7 @@ _08123D0A:
b _08123D84
.align 2, 0
_08123D20: .4byte gUnknown_02039274
-_08123D24: .4byte gUnknown_0202E8CC
+_08123D24: .4byte gSpecialVar_0x8004
_08123D28: .4byte 0x47800000
_08123D2C: .4byte 0x3e0f5c29
_08123D30: .4byte 0x3d89374c
@@ -1427,7 +1427,7 @@ sub_8123D98: @ 8123D98
bne _08123DA8
b _08123EB0
_08123DA8:
- ldr r0, _08123E08 @ =gUnknown_0202E8CC
+ ldr r0, _08123E08 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0
bne _08123E18
@@ -1468,7 +1468,7 @@ _08123DEC:
b _08123E68
.align 2, 0
_08123E04: .4byte gUnknown_02039274
-_08123E08: .4byte gUnknown_0202E8CC
+_08123E08: .4byte gSpecialVar_0x8004
_08123E0C: .4byte 0x47800000
_08123E10: .4byte 0x3e0f5c29
_08123E14: .4byte 0x3d89374c
@@ -1764,7 +1764,7 @@ _08124024:
strh r3, [r0]
adds r0, 0x2
strh r3, [r0]
- ldr r0, _08124064 @ =gUnknown_0202E8CC
+ ldr r0, _08124064 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0
bne _0812406C
@@ -1782,7 +1782,7 @@ _08124024:
b _08124082
.align 2, 0
_08124060: .4byte REG_WININ
-_08124064: .4byte gUnknown_0202E8CC
+_08124064: .4byte gSpecialVar_0x8004
_08124068: .4byte gUnknown_02039274
_0812406C:
ldr r1, _081240F4 @ =gUnknown_02039274
@@ -1902,7 +1902,7 @@ sub_8124118: @ 8124118
ldr r0, [r0]
str r0, [sp, 0x1C]
str r1, [sp, 0x20]
- ldr r0, _08124240 @ =gUnknown_0202E8CC
+ ldr r0, _08124240 @ =gSpecialVar_0x8004
ldrh r0, [r0]
mov r8, r6
mov r10, r5
@@ -2004,7 +2004,7 @@ _08124230: .4byte gMtChimneyHikerGraphicsIDs
_08124234: .4byte gMtChimneyHikerCoords
_08124238: .4byte gMtChimneyHikerMovementDelayTable
_0812423C: .4byte gUnknown_08401D9C
-_08124240: .4byte gUnknown_0202E8CC
+_08124240: .4byte gSpecialVar_0x8004
_08124244: .4byte gSaveBlock2
_08124248: .4byte sub_8123D98
_0812424C: .4byte gSprites
@@ -2148,7 +2148,7 @@ _08124322:
lsrs r0, 16
add r0, r8
ldrb r0, [r0]
- ldr r5, _08124410 @ =gUnknown_0202E8CC
+ ldr r5, _08124410 @ =gSpecialVar_0x8004
ldrh r4, [r5]
lsls r4, 2
add r1, sp, 0x1C
@@ -2218,7 +2218,7 @@ _08124400: .4byte gSpriteTemplate_8401D40
_08124404: .4byte 0x00000109
_08124408: .4byte 0xfff80000
_0812440C: .4byte gSpriteTemplate_8401D70
-_08124410: .4byte gUnknown_0202E8CC
+_08124410: .4byte gSpecialVar_0x8004
_08124414:
adds r0, r4, 0
movs r1, 0x7
diff --git a/asm/cable_car_util.s b/asm/cable_car_util.s
index 950a31c4a..d02c5bb2e 100644
--- a/asm/cable_car_util.s
+++ b/asm/cable_car_util.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/cable_club.s b/asm/cable_club.s
index b7b7bb82d..c1275ee1d 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -802,7 +802,7 @@ sub_8083314: @ 8083314
bl sub_8082DF4
cmp r0, 0x1
beq _080833B6
- bl GetBlockRecievedStatus
+ bl GetBlockReceivedStatus
adds r4, r0, 0
bl sub_8008198
lsls r4, 24
@@ -973,7 +973,7 @@ sub_808347C: @ 808347C
push {r4,lr}
movs r3, 0x2
movs r2, 0x2
- ldr r0, _08083494 @ =gUnknown_0202E8CC
+ ldr r0, _08083494 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0x2
beq _080834B0
@@ -983,7 +983,7 @@ sub_808347C: @ 808347C
beq _0808349E
b _080834CC
.align 2, 0
-_08083494: .4byte gUnknown_0202E8CC
+_08083494: .4byte gSpecialVar_0x8004
_08083498:
cmp r0, 0x5
beq _080834C0
@@ -1233,7 +1233,7 @@ sub_8083664: @ 8083664
.align 2, 0
_08083678: .4byte sub_8083710
_0808367C:
- ldr r0, _08083690 @ =gUnknown_0202E8CC
+ ldr r0, _08083690 @ =gSpecialVar_0x8004
ldrh r0, [r0]
subs r0, 0x1
cmp r0, 0x4
@@ -1244,7 +1244,7 @@ _0808367C:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_08083690: .4byte gUnknown_0202E8CC
+_08083690: .4byte gSpecialVar_0x8004
_08083694: .4byte _08083698
.align 2, 0
_08083698:
@@ -1545,7 +1545,7 @@ _080838E8:
ldr r0, _08083900 @ =0x000001cb
bl current_map_music_set__default_for_battle
_080838EE:
- ldr r0, _08083904 @ =gUnknown_0202E8CC
+ ldr r0, _08083904 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0x2
beq _08083918
@@ -1556,7 +1556,7 @@ _080838EE:
b _0808392E
.align 2, 0
_08083900: .4byte 0x000001cb
-_08083904: .4byte gUnknown_0202E8CC
+_08083904: .4byte gSpecialVar_0x8004
_08083908:
cmp r0, 0x5
beq _08083924
@@ -1605,7 +1605,7 @@ sub_8083958: @ 8083958
bl copy_player_party_from_sav1
bl copy_bags_and_unk_data_to_save_blocks
bl sub_810FEFC
- ldr r0, _08083990 @ =gUnknown_0202E8CC
+ ldr r0, _08083990 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0x5
beq _0808397E
@@ -1623,7 +1623,7 @@ _0808397E:
pop {r0}
bx r0
.align 2, 0
-_08083990: .4byte gUnknown_0202E8CC
+_08083990: .4byte gSpecialVar_0x8004
_08083994: .4byte gUnknown_03004860
_08083998: .4byte gMain
_0808399C: .4byte sub_805465C
@@ -1633,7 +1633,7 @@ _080839A0: .4byte sub_8071B28
thumb_func_start sub_80839A4
sub_80839A4: @ 80839A4
push {lr}
- ldr r0, _080839CC @ =gUnknown_0202E8CC
+ ldr r0, _080839CC @ =gSpecialVar_0x8004
ldrh r1, [r0]
subs r0, r1, 0x1
lsls r0, 16
@@ -1651,7 +1651,7 @@ _080839C0:
pop {r0}
bx r0
.align 2, 0
-_080839CC: .4byte gUnknown_0202E8CC
+_080839CC: .4byte gSpecialVar_0x8004
thumb_func_end sub_80839A4
thumb_func_start sub_80839D0
@@ -1703,14 +1703,14 @@ _08083A20:
cmp r0, 0
beq _08083A7E
bl sub_8055574
- ldr r0, _08083A3C @ =gUnknown_0202E8CE
+ ldr r0, _08083A3C @ =gSpecialVar_0x8005
ldrb r0, [r0]
bl sub_8007270
movs r0, 0x2
strh r0, [r5, 0x8]
b _08083A7E
.align 2, 0
-_08083A3C: .4byte gUnknown_0202E8CE
+_08083A3C: .4byte gSpecialVar_0x8005
_08083A40:
bl sub_80554F8
cmp r0, 0x1
@@ -1928,14 +1928,14 @@ _08083BD8: .4byte sub_80B9484
thumb_func_start sub_8083BDC
sub_8083BDC: @ 8083BDC
push {lr}
- ldr r0, _08083BEC @ =gUnknown_0202E8D0
+ ldr r0, _08083BEC @ =gSpecialVar_0x8006
ldrb r0, [r0]
ldr r1, _08083BF0 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
bl sub_8093130
pop {r0}
bx r0
.align 2, 0
-_08083BEC: .4byte gUnknown_0202E8D0
+_08083BEC: .4byte gSpecialVar_0x8006
_08083BF0: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
thumb_func_end sub_8083BDC
@@ -1945,7 +1945,7 @@ sub_8083BF4: @ 8083BF4
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _08083C34 @ =gUnknown_0202E8D0
+ ldr r0, _08083C34 @ =gSpecialVar_0x8006
strh r4, [r0]
ldr r0, _08083C38 @ =gStringVar1
lsls r1, r4, 3
@@ -1970,7 +1970,7 @@ sub_8083BF4: @ 8083BF4
movs r0, 0x1
b _08083C4A
.align 2, 0
-_08083C34: .4byte gUnknown_0202E8D0
+_08083C34: .4byte gSpecialVar_0x8006
_08083C38: .4byte gStringVar1
_08083C3C: .4byte gLinkPlayers + 0x8
_08083C40: .4byte gStringVar2
diff --git a/asm/calculate_base_damage.s b/asm/calculate_base_damage.s
index 99b6efaab..54f53f1a2 100644
--- a/asm/calculate_base_damage.s
+++ b/asm/calculate_base_damage.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/choose_party.s b/asm/choose_party.s
index 07125dfae..21988162b 100644
--- a/asm/choose_party.s
+++ b/asm/choose_party.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -2092,7 +2092,7 @@ _08122E84:
ldr r1, _08122EA4 @ =gUnknown_03005CE0
movs r0, 0xFF
strb r0, [r1]
- ldr r1, _08122EA8 @ =gUnknown_0202E8CC
+ ldr r1, _08122EA8 @ =gSpecialVar_0x8004
movs r0, 0xFF
strh r0, [r1]
adds r0, r4, 0
@@ -2103,7 +2103,7 @@ _08122E9C:
bx r0
.align 2, 0
_08122EA4: .4byte gUnknown_03005CE0
-_08122EA8: .4byte gUnknown_0202E8CC
+_08122EA8: .4byte gSpecialVar_0x8004
thumb_func_end sub_8122E0C
thumb_func_start sub_8122EAC
@@ -2203,7 +2203,7 @@ sub_8122F70: @ 8122F70
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r2, _08122F88 @ =gUnknown_0202E8CC
+ ldr r2, _08122F88 @ =gSpecialVar_0x8004
ldr r1, _08122F8C @ =gUnknown_03005CE0
ldrb r1, [r1]
strh r1, [r2]
@@ -2211,7 +2211,7 @@ sub_8122F70: @ 8122F70
pop {r0}
bx r0
.align 2, 0
-_08122F88: .4byte gUnknown_0202E8CC
+_08122F88: .4byte gSpecialVar_0x8004
_08122F8C: .4byte gUnknown_03005CE0
thumb_func_end sub_8122F70
diff --git a/asm/coins.s b/asm/coins.s
deleted file mode 100644
index 5b9726fbb..000000000
--- a/asm/coins.s
+++ /dev/null
@@ -1,251 +0,0 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
-
- .syntax unified
-
- .text
-
- thumb_func_start UpdateCoinsWindow
-UpdateCoinsWindow: @ 811A704
- push {r4,lr}
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r4, 24
- lsls r3, 24
- movs r1, 0x80
- lsls r1, 18
- adds r4, r1
- lsrs r4, 24
- movs r1, 0x80
- lsls r1, 17
- adds r3, r1
- lsrs r3, 24
- movs r1, 0x4
- adds r2, r4, 0
- bl PrintCoins
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end UpdateCoinsWindow
-
- thumb_func_start ShowCoinsWindow
-ShowCoinsWindow: @ 811A72C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r4, 24
- lsls r3, 24
- lsrs r6, r4, 24
- movs r0, 0x90
- lsls r0, 20
- adds r4, r0
- lsrs r4, 24
- lsrs r5, r3, 24
- movs r0, 0xC0
- lsls r0, 18
- adds r3, r0
- lsrs r3, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl MenuDrawTextWindow
- mov r0, r8
- adds r1, r6, 0
- adds r2, r5, 0
- bl UpdateCoinsWindow
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end ShowCoinsWindow
-
- thumb_func_start HideCoinsWindow
-HideCoinsWindow: @ 811A770
- push {r4,lr}
- adds r2, r0, 0
- adds r3, r1, 0
- lsls r2, 24
- lsls r3, 24
- lsrs r0, r2, 24
- movs r1, 0x90
- lsls r1, 20
- adds r2, r1
- lsrs r2, 24
- lsrs r1, r3, 24
- movs r4, 0xC0
- lsls r4, 18
- adds r3, r4
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end HideCoinsWindow
-
- thumb_func_start PrintCoins
-PrintCoins: @ 811A798
- push {r4-r7,lr}
- sub sp, 0x10
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r5, r1, 0
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r7, r3, 24
- mov r0, sp
- adds r1, r4, 0
- bl ConvertIntToDecimalString
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 1
- adds r1, 0x21
- adds r0, r5, 0x2
- lsls r0, 3
- subs r1, r0
- lsls r1, 24
- lsrs r0, r1, 27
- subs r0, r6, r0
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0xE0
- lsls r0, 19
- ands r0, r1
- lsrs r1, r0, 24
- ldr r4, _0811A824 @ =gStringVar1
- cmp r1, 0
- beq _0811A7EA
- movs r0, 0xFC
- strb r0, [r4]
- movs r0, 0x11
- strb r0, [r4, 0x1]
- movs r0, 0x8
- subs r0, r1
- strb r0, [r4, 0x2]
- adds r4, 0x3
-_0811A7EA:
- movs r0, 0xFC
- strb r0, [r4]
- movs r0, 0x11
- strb r0, [r4, 0x1]
- mov r0, sp
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- subs r0, r5, r0
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- strb r1, [r4, 0x2]
- adds r4, 0x3
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy
- ldr r0, _0811A828 @ =gOtherText_Coins2
- adds r1, r6, 0
- adds r2, r7, 0
- bl MenuPrint
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811A824: .4byte gStringVar1
-_0811A828: .4byte gOtherText_Coins2
- thumb_func_end PrintCoins
-
- thumb_func_start GetCoins
-GetCoins: @ 811A82C
- ldr r0, _0811A838 @ =gSaveBlock1
- ldr r1, _0811A83C @ =0x00000494
- adds r0, r1
- ldrh r0, [r0]
- bx lr
- .align 2, 0
-_0811A838: .4byte gSaveBlock1
-_0811A83C: .4byte 0x00000494
- thumb_func_end GetCoins
-
- thumb_func_start GiveCoins
-GiveCoins: @ 811A840
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl GetCoins
- lsls r0, 16
- ldr r1, _0811A858 @ =0x270e0000
- cmp r0, r1
- bls _0811A85C
- movs r0, 0
- b _0811A88C
- .align 2, 0
-_0811A858: .4byte 0x270e0000
-_0811A85C:
- ldr r0, _0811A874 @ =gSaveBlock1
- ldr r1, _0811A878 @ =0x00000494
- adds r3, r0, r1
- ldrh r1, [r3]
- adds r2, r4, r1
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r1, r0
- bls _0811A880
- ldr r0, _0811A87C @ =0x0000270f
- strh r0, [r3]
- b _0811A88A
- .align 2, 0
-_0811A874: .4byte gSaveBlock1
-_0811A878: .4byte 0x00000494
-_0811A87C: .4byte 0x0000270f
-_0811A880:
- strh r2, [r3]
- ldr r1, _0811A894 @ =0x0000270f
- cmp r0, r1
- bls _0811A88A
- strh r1, [r3]
-_0811A88A:
- movs r0, 0x1
-_0811A88C:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811A894: .4byte 0x0000270f
- thumb_func_end GiveCoins
-
- thumb_func_start TakeCoins
-TakeCoins: @ 811A898
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl GetCoins
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r4
- bcs _0811A8AE
- movs r0, 0
- b _0811A8BC
-_0811A8AE:
- ldr r1, _0811A8C4 @ =gSaveBlock1
- ldr r0, _0811A8C8 @ =0x00000494
- adds r1, r0
- ldrh r0, [r1]
- subs r0, r4
- strh r0, [r1]
- movs r0, 0x1
-_0811A8BC:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811A8C4: .4byte gSaveBlock1
-_0811A8C8: .4byte 0x00000494
- thumb_func_end TakeCoins
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/contest.s b/asm/contest.s
index e8b413c5d..59fd22aef 100644
--- a/asm/contest.s
+++ b/asm/contest.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -6187,7 +6187,7 @@ _080AE48E:
movs r0, 0x4
b _080AE50A
_080AE49E:
- ldr r0, _080AE4B0 @ =gUnknown_0203869C
+ ldr r0, _080AE4B0 @ =gScriptContestCategory
ldrh r0, [r0]
cmp r0, 0x4
bhi _080AE4F2
@@ -6197,7 +6197,7 @@ _080AE49E:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080AE4B0: .4byte gUnknown_0203869C
+_080AE4B0: .4byte gScriptContestCategory
_080AE4B4: .4byte _080AE4B8
.align 2, 0
_080AE4B8:
@@ -6234,7 +6234,7 @@ _080AE4F2:
movs r0, 0
b _080AE50A
_080AE4F6:
- ldr r0, _080AE510 @ =gUnknown_0203869E
+ ldr r0, _080AE510 @ =gScriptContestRank
adds r2, r1, 0
ldrh r1, [r0]
movs r0, 0x2
@@ -6249,7 +6249,7 @@ _080AE50A:
pop {r1}
bx r1
.align 2, 0
-_080AE510: .4byte gUnknown_0203869E
+_080AE510: .4byte gScriptContestRank
thumb_func_end sub_80AE47C
thumb_func_start sub_80AE514
@@ -10037,7 +10037,7 @@ unref_sub_80B01B0: @ 80B01B0
movs r2, 0
ldr r5, _080B01D4 @ =0x0201920d
ldr r4, _080B01D8 @ =gSprites + 0x1C
- ldr r3, _080B01DC @ =ObjectCB_SwitchPocketRotatingBallInit
+ ldr r3, _080B01DC @ =sub_80B0238
_080B01BA:
adds r0, r2, r5
ldrb r1, [r0]
@@ -13239,7 +13239,7 @@ contest_get_move_excitement: @ 80B19FC
ldrb r1, [r0, 0x1]
lsls r1, 29
lsrs r1, 29
- ldr r0, _080B1A28 @ =gUnknown_0203869C
+ ldr r0, _080B1A28 @ =gScriptContestCategory
ldrh r2, [r0]
lsls r0, r2, 2
adds r0, r2
@@ -13251,7 +13251,7 @@ contest_get_move_excitement: @ 80B19FC
.align 2, 0
_080B1A20: .4byte gContestExcitementTable
_080B1A24: .4byte gContestMoves
-_080B1A28: .4byte gUnknown_0203869C
+_080B1A28: .4byte gScriptContestCategory
thumb_func_end contest_get_move_excitement
thumb_func_start sub_80B1A2C
@@ -15401,7 +15401,7 @@ _080B2AB6:
_080B2AC8: .4byte gUnknown_02038690
_080B2ACC: .4byte gUnknown_02038695
_080B2AD0:
- ldr r0, _080B2AE4 @ =gUnknown_0203869C
+ ldr r0, _080B2AE4 @ =gScriptContestCategory
ldrh r0, [r0]
cmp r0, 0x4
bhi _080B2B16
@@ -15411,7 +15411,7 @@ _080B2AD0:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080B2AE4: .4byte gUnknown_0203869C
+_080B2AE4: .4byte gScriptContestCategory
_080B2AE8: .4byte _080B2AEC
.align 2, 0
_080B2AEC:
@@ -15492,7 +15492,7 @@ _080B2B16:
mov r1, r9
cmp r1, 0xFF
beq _080B2BB8
- ldr r0, _080B2BB0 @ =gUnknown_0203869C
+ ldr r0, _080B2BB0 @ =gScriptContestCategory
ldrh r1, [r0]
ldr r0, _080B2BB4 @ =0x00002e06
add r0, r8
@@ -15505,7 +15505,7 @@ _080B2BA0: .4byte gUnknown_02038570
_080B2BA4: .4byte 0x00002e04
_080B2BA8: .4byte 0x00002e07
_080B2BAC: .4byte 0x00002e12
-_080B2BB0: .4byte gUnknown_0203869C
+_080B2BB0: .4byte gScriptContestCategory
_080B2BB4: .4byte 0x00002e06
_080B2BB8:
ldr r0, _080B2BC0 @ =0x00002e06
@@ -15659,7 +15659,7 @@ _080B2CCA:
.align 2, 0
_080B2CD0: .4byte gSaveBlock1 + 0x2DFC
_080B2CD4:
- ldr r0, _080B2CE8 @ =gUnknown_0203869C
+ ldr r0, _080B2CE8 @ =gScriptContestCategory
ldrh r0, [r0]
cmp r0, 0x4
bhi _080B2D14
@@ -15669,7 +15669,7 @@ _080B2CD4:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080B2CE8: .4byte gUnknown_0203869C
+_080B2CE8: .4byte gScriptContestCategory
_080B2CEC: .4byte _080B2CF0
.align 2, 0
_080B2CF0:
diff --git a/asm/contest_ai.s b/asm/contest_ai.s
index ecd2bbb59..1e5497570 100644
--- a/asm/contest_ai.s
+++ b/asm/contest_ai.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -118,7 +118,7 @@ sub_81289AC: @ 81289AC
cmp r0, 0x2
beq _08128A76
adds r4, r1, 0
- ldr r5, _081289F8 @ =gUnknown_02039238
+ ldr r5, _081289F8 @ =gAIScriptPtr
ldr r6, _081289FC @ =gUnknown_0203858E
_081289BE:
ldrb r0, [r4]
@@ -150,7 +150,7 @@ _081289BE:
b _08128A06
.align 2, 0
_081289F4: .4byte 0x020192e4
-_081289F8: .4byte gUnknown_02039238
+_081289F8: .4byte gAIScriptPtr
_081289FC: .4byte gUnknown_0203858E
_08128A00: .4byte gContestAIs
_08128A04:
@@ -256,7 +256,7 @@ sub_8128AA8: @ 8128AA8
adds r1, r2, 0x5
ldrb r0, [r2, 0x4]
adds r1, r0
- ldr r3, _08128AD4 @ =gUnknown_02039238
+ ldr r3, _08128AD4 @ =gAIScriptPtr
ldr r0, [r3]
ldrb r0, [r0, 0x1]
lsls r0, 24
@@ -272,7 +272,7 @@ sub_8128AA8: @ 8128AA8
b _08128ADE
.align 2, 0
_08128AD0: .4byte 0x020192e4
-_08128AD4: .4byte gUnknown_02039238
+_08128AD4: .4byte gAIScriptPtr
_08128AD8:
cmp r0, 0
bge _08128ADE
@@ -296,14 +296,14 @@ contest_ai_get_turn: @ 8128AF0
subs r0, 0xE0
ldrb r0, [r0, 0x1]
strh r0, [r1, 0x18]
- ldr r1, _08128B08 @ =gUnknown_02039238
+ ldr r1, _08128B08 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
bx lr
.align 2, 0
_08128B04: .4byte 0x020192e4
-_08128B08: .4byte gUnknown_02039238
+_08128B08: .4byte gAIScriptPtr
thumb_func_end contest_ai_get_turn
thumb_func_start sub_8128B0C
@@ -313,7 +313,7 @@ sub_8128B0C: @ 8128B0C
ldr r0, _08128B3C @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08128B40 @ =gUnknown_02039238
+ ldr r3, _08128B40 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -332,7 +332,7 @@ sub_8128B0C: @ 8128B0C
b _08128B48
.align 2, 0
_08128B3C: .4byte 0x020192e4
-_08128B40: .4byte gUnknown_02039238
+_08128B40: .4byte gAIScriptPtr
_08128B44:
adds r0, r2, 0x5
str r0, [r3]
@@ -348,7 +348,7 @@ sub_8128B4C: @ 8128B4C
ldr r0, _08128B7C @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08128B80 @ =gUnknown_02039238
+ ldr r3, _08128B80 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -367,7 +367,7 @@ sub_8128B4C: @ 8128B4C
b _08128B88
.align 2, 0
_08128B7C: .4byte 0x020192e4
-_08128B80: .4byte gUnknown_02039238
+_08128B80: .4byte gAIScriptPtr
_08128B84:
adds r0, r2, 0x5
str r0, [r3]
@@ -383,7 +383,7 @@ sub_8128B8C: @ 8128B8C
ldr r0, _08128BBC @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08128BC0 @ =gUnknown_02039238
+ ldr r3, _08128BC0 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -402,7 +402,7 @@ sub_8128B8C: @ 8128B8C
b _08128BC8
.align 2, 0
_08128BBC: .4byte 0x020192e4
-_08128BC0: .4byte gUnknown_02039238
+_08128BC0: .4byte gAIScriptPtr
_08128BC4:
adds r0, r2, 0x5
str r0, [r3]
@@ -418,7 +418,7 @@ sub_8128BCC: @ 8128BCC
ldr r0, _08128BFC @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08128C00 @ =gUnknown_02039238
+ ldr r3, _08128C00 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -437,7 +437,7 @@ sub_8128BCC: @ 8128BCC
b _08128C08
.align 2, 0
_08128BFC: .4byte 0x020192e4
-_08128C00: .4byte gUnknown_02039238
+_08128C00: .4byte gAIScriptPtr
_08128C04:
adds r0, r2, 0x5
str r0, [r3]
@@ -455,14 +455,14 @@ contest_ai_get_excitement: @ 8128C0C
lsls r0, 24
asrs r0, 24
strh r0, [r1, 0x18]
- ldr r1, _08128C28 @ =gUnknown_02039238
+ ldr r1, _08128C28 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
bx lr
.align 2, 0
_08128C24: .4byte 0x020192e4
-_08128C28: .4byte gUnknown_02039238
+_08128C28: .4byte gAIScriptPtr
thumb_func_end contest_ai_get_excitement
thumb_func_start sub_8128C2C
@@ -472,7 +472,7 @@ sub_8128C2C: @ 8128C2C
ldr r0, _08128C5C @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08128C60 @ =gUnknown_02039238
+ ldr r3, _08128C60 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -491,7 +491,7 @@ sub_8128C2C: @ 8128C2C
b _08128C68
.align 2, 0
_08128C5C: .4byte 0x020192e4
-_08128C60: .4byte gUnknown_02039238
+_08128C60: .4byte gAIScriptPtr
_08128C64:
adds r0, r2, 0x5
str r0, [r3]
@@ -507,7 +507,7 @@ sub_8128C6C: @ 8128C6C
ldr r0, _08128C9C @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08128CA0 @ =gUnknown_02039238
+ ldr r3, _08128CA0 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -526,7 +526,7 @@ sub_8128C6C: @ 8128C6C
b _08128CA8
.align 2, 0
_08128C9C: .4byte 0x020192e4
-_08128CA0: .4byte gUnknown_02039238
+_08128CA0: .4byte gAIScriptPtr
_08128CA4:
adds r0, r2, 0x5
str r0, [r3]
@@ -542,7 +542,7 @@ sub_8128CAC: @ 8128CAC
ldr r0, _08128CDC @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08128CE0 @ =gUnknown_02039238
+ ldr r3, _08128CE0 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -561,7 +561,7 @@ sub_8128CAC: @ 8128CAC
b _08128CE8
.align 2, 0
_08128CDC: .4byte 0x020192e4
-_08128CE0: .4byte gUnknown_02039238
+_08128CE0: .4byte gAIScriptPtr
_08128CE4:
adds r0, r2, 0x5
str r0, [r3]
@@ -577,7 +577,7 @@ sub_8128CEC: @ 8128CEC
ldr r0, _08128D1C @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08128D20 @ =gUnknown_02039238
+ ldr r3, _08128D20 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -596,7 +596,7 @@ sub_8128CEC: @ 8128CEC
b _08128D28
.align 2, 0
_08128D1C: .4byte 0x020192e4
-_08128D20: .4byte gUnknown_02039238
+_08128D20: .4byte gAIScriptPtr
_08128D24:
adds r0, r2, 0x5
str r0, [r3]
@@ -616,14 +616,14 @@ contest_ai_get_user_order: @ 8128D2C
adds r0, r2
ldrb r0, [r0]
strh r0, [r1, 0x18]
- ldr r1, _08128D4C @ =gUnknown_02039238
+ ldr r1, _08128D4C @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
bx lr
.align 2, 0
_08128D48: .4byte 0x020192e4
-_08128D4C: .4byte gUnknown_02039238
+_08128D4C: .4byte gAIScriptPtr
thumb_func_end contest_ai_get_user_order
thumb_func_start sub_8128D50
@@ -633,7 +633,7 @@ sub_8128D50: @ 8128D50
ldr r0, _08128D80 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08128D84 @ =gUnknown_02039238
+ ldr r3, _08128D84 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -652,7 +652,7 @@ sub_8128D50: @ 8128D50
b _08128D8C
.align 2, 0
_08128D80: .4byte 0x020192e4
-_08128D84: .4byte gUnknown_02039238
+_08128D84: .4byte gAIScriptPtr
_08128D88:
adds r0, r2, 0x5
str r0, [r3]
@@ -668,7 +668,7 @@ sub_8128D90: @ 8128D90
ldr r0, _08128DC0 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08128DC4 @ =gUnknown_02039238
+ ldr r3, _08128DC4 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -687,7 +687,7 @@ sub_8128D90: @ 8128D90
b _08128DCC
.align 2, 0
_08128DC0: .4byte 0x020192e4
-_08128DC4: .4byte gUnknown_02039238
+_08128DC4: .4byte gAIScriptPtr
_08128DC8:
adds r0, r2, 0x5
str r0, [r3]
@@ -703,7 +703,7 @@ sub_8128DD0: @ 8128DD0
ldr r0, _08128E00 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08128E04 @ =gUnknown_02039238
+ ldr r3, _08128E04 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -722,7 +722,7 @@ sub_8128DD0: @ 8128DD0
b _08128E0C
.align 2, 0
_08128E00: .4byte 0x020192e4
-_08128E04: .4byte gUnknown_02039238
+_08128E04: .4byte gAIScriptPtr
_08128E08:
adds r0, r2, 0x5
str r0, [r3]
@@ -738,7 +738,7 @@ sub_8128E10: @ 8128E10
ldr r0, _08128E40 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08128E44 @ =gUnknown_02039238
+ ldr r3, _08128E44 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -757,7 +757,7 @@ sub_8128E10: @ 8128E10
b _08128E4C
.align 2, 0
_08128E40: .4byte 0x020192e4
-_08128E44: .4byte gUnknown_02039238
+_08128E44: .4byte gAIScriptPtr
_08128E48:
adds r0, r2, 0x5
str r0, [r3]
@@ -787,7 +787,7 @@ contest_ai_get_user_condition_maybe: @ 8128E50
lsls r0, 24
asrs r0, 24
strh r0, [r4, 0x18]
- ldr r1, _08128E8C @ =gUnknown_02039238
+ ldr r1, _08128E8C @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
@@ -796,7 +796,7 @@ contest_ai_get_user_condition_maybe: @ 8128E50
bx r0
.align 2, 0
_08128E88: .4byte 0x020192e4
-_08128E8C: .4byte gUnknown_02039238
+_08128E8C: .4byte gAIScriptPtr
thumb_func_end contest_ai_get_user_condition_maybe
thumb_func_start sub_8128E90
@@ -806,7 +806,7 @@ sub_8128E90: @ 8128E90
ldr r0, _08128EC0 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08128EC4 @ =gUnknown_02039238
+ ldr r3, _08128EC4 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -825,7 +825,7 @@ sub_8128E90: @ 8128E90
b _08128ECC
.align 2, 0
_08128EC0: .4byte 0x020192e4
-_08128EC4: .4byte gUnknown_02039238
+_08128EC4: .4byte gAIScriptPtr
_08128EC8:
adds r0, r2, 0x5
str r0, [r3]
@@ -841,7 +841,7 @@ sub_8128ED0: @ 8128ED0
ldr r0, _08128F00 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08128F04 @ =gUnknown_02039238
+ ldr r3, _08128F04 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -860,7 +860,7 @@ sub_8128ED0: @ 8128ED0
b _08128F0C
.align 2, 0
_08128F00: .4byte 0x020192e4
-_08128F04: .4byte gUnknown_02039238
+_08128F04: .4byte gAIScriptPtr
_08128F08:
adds r0, r2, 0x5
str r0, [r3]
@@ -876,7 +876,7 @@ sub_8128F10: @ 8128F10
ldr r0, _08128F40 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08128F44 @ =gUnknown_02039238
+ ldr r3, _08128F44 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -895,7 +895,7 @@ sub_8128F10: @ 8128F10
b _08128F4C
.align 2, 0
_08128F40: .4byte 0x020192e4
-_08128F44: .4byte gUnknown_02039238
+_08128F44: .4byte gAIScriptPtr
_08128F48:
adds r0, r2, 0x5
str r0, [r3]
@@ -911,7 +911,7 @@ sub_8128F50: @ 8128F50
ldr r0, _08128F80 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08128F84 @ =gUnknown_02039238
+ ldr r3, _08128F84 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -930,7 +930,7 @@ sub_8128F50: @ 8128F50
b _08128F8C
.align 2, 0
_08128F80: .4byte 0x020192e4
-_08128F84: .4byte gUnknown_02039238
+_08128F84: .4byte gAIScriptPtr
_08128F88:
adds r0, r2, 0x5
str r0, [r3]
@@ -953,14 +953,14 @@ sub_8128F90: @ 8128F90
adds r0, r1
ldrh r0, [r0, 0x4]
strh r0, [r2, 0x18]
- ldr r1, _08128FB8 @ =gUnknown_02039238
+ ldr r1, _08128FB8 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
bx lr
.align 2, 0
_08128FB4: .4byte 0x020192e4
-_08128FB8: .4byte gUnknown_02039238
+_08128FB8: .4byte gAIScriptPtr
thumb_func_end sub_8128F90
thumb_func_start sub_8128FBC
@@ -968,7 +968,7 @@ sub_8128FBC: @ 8128FBC
push {r4,r5,lr}
bl sub_8128F90
ldr r2, _08128FF4 @ =0x020192e4
- ldr r4, _08128FF8 @ =gUnknown_02039238
+ ldr r4, _08128FF8 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3]
ldrb r0, [r3, 0x1]
@@ -994,7 +994,7 @@ sub_8128FBC: @ 8128FBC
b _08129000
.align 2, 0
_08128FF4: .4byte 0x020192e4
-_08128FF8: .4byte gUnknown_02039238
+_08128FF8: .4byte gAIScriptPtr
_08128FFC:
adds r0, r3, 0x6
str r0, [r4]
@@ -1009,7 +1009,7 @@ sub_8129008: @ 8129008
push {r4,r5,lr}
bl sub_8128F90
ldr r2, _08129040 @ =0x020192e4
- ldr r4, _08129044 @ =gUnknown_02039238
+ ldr r4, _08129044 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3]
ldrb r0, [r3, 0x1]
@@ -1035,7 +1035,7 @@ sub_8129008: @ 8129008
b _0812904C
.align 2, 0
_08129040: .4byte 0x020192e4
-_08129044: .4byte gUnknown_02039238
+_08129044: .4byte gAIScriptPtr
_08129048:
adds r0, r3, 0x6
str r0, [r4]
@@ -1050,7 +1050,7 @@ sub_8129054: @ 8129054
push {r4,r5,lr}
bl sub_8128F90
ldr r2, _0812908C @ =0x020192e4
- ldr r4, _08129090 @ =gUnknown_02039238
+ ldr r4, _08129090 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3]
ldrb r0, [r3, 0x1]
@@ -1076,7 +1076,7 @@ sub_8129054: @ 8129054
b _08129098
.align 2, 0
_0812908C: .4byte 0x020192e4
-_08129090: .4byte gUnknown_02039238
+_08129090: .4byte gAIScriptPtr
_08129094:
adds r0, r3, 0x6
str r0, [r4]
@@ -1091,7 +1091,7 @@ sub_81290A0: @ 81290A0
push {r4,r5,lr}
bl sub_8128F90
ldr r2, _081290D8 @ =0x020192e4
- ldr r4, _081290DC @ =gUnknown_02039238
+ ldr r4, _081290DC @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3]
ldrb r0, [r3, 0x1]
@@ -1117,7 +1117,7 @@ sub_81290A0: @ 81290A0
b _081290E4
.align 2, 0
_081290D8: .4byte 0x020192e4
-_081290DC: .4byte gUnknown_02039238
+_081290DC: .4byte gAIScriptPtr
_081290E0:
adds r0, r3, 0x6
str r0, [r4]
@@ -1138,7 +1138,7 @@ sub_81290EC: @ 81290EC
adds r0, r1
ldrh r0, [r0]
strh r0, [r2, 0x18]
- ldr r1, _08129110 @ =gUnknown_02039238
+ ldr r1, _08129110 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
@@ -1146,7 +1146,7 @@ sub_81290EC: @ 81290EC
.align 2, 0
_08129108: .4byte 0x020192e4
_0812910C: .4byte gUnknown_02038670
-_08129110: .4byte gUnknown_02039238
+_08129110: .4byte gAIScriptPtr
thumb_func_end sub_81290EC
thumb_func_start sub_8129114
@@ -1154,7 +1154,7 @@ sub_8129114: @ 8129114
push {r4,r5,lr}
bl sub_81290EC
ldr r2, _0812914C @ =0x020192e4
- ldr r4, _08129150 @ =gUnknown_02039238
+ ldr r4, _08129150 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3]
ldrb r0, [r3, 0x1]
@@ -1180,7 +1180,7 @@ sub_8129114: @ 8129114
b _08129158
.align 2, 0
_0812914C: .4byte 0x020192e4
-_08129150: .4byte gUnknown_02039238
+_08129150: .4byte gAIScriptPtr
_08129154:
adds r0, r3, 0x6
str r0, [r4]
@@ -1195,7 +1195,7 @@ sub_8129160: @ 8129160
push {r4,r5,lr}
bl sub_81290EC
ldr r2, _08129198 @ =0x020192e4
- ldr r4, _0812919C @ =gUnknown_02039238
+ ldr r4, _0812919C @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3]
ldrb r0, [r3, 0x1]
@@ -1221,7 +1221,7 @@ sub_8129160: @ 8129160
b _081291A4
.align 2, 0
_08129198: .4byte 0x020192e4
-_0812919C: .4byte gUnknown_02039238
+_0812919C: .4byte gAIScriptPtr
_081291A0:
adds r0, r3, 0x6
str r0, [r4]
@@ -1236,7 +1236,7 @@ sub_81291AC: @ 81291AC
push {r4,r5,lr}
bl sub_81290EC
ldr r2, _081291E4 @ =0x020192e4
- ldr r4, _081291E8 @ =gUnknown_02039238
+ ldr r4, _081291E8 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3]
ldrb r0, [r3, 0x1]
@@ -1262,7 +1262,7 @@ sub_81291AC: @ 81291AC
b _081291F0
.align 2, 0
_081291E4: .4byte 0x020192e4
-_081291E8: .4byte gUnknown_02039238
+_081291E8: .4byte gAIScriptPtr
_081291EC:
adds r0, r3, 0x6
str r0, [r4]
@@ -1277,7 +1277,7 @@ sub_81291F8: @ 81291F8
push {r4,r5,lr}
bl sub_81290EC
ldr r2, _08129230 @ =0x020192e4
- ldr r4, _08129234 @ =gUnknown_02039238
+ ldr r4, _08129234 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3]
ldrb r0, [r3, 0x1]
@@ -1303,7 +1303,7 @@ sub_81291F8: @ 81291F8
b _0812923C
.align 2, 0
_08129230: .4byte 0x020192e4
-_08129234: .4byte gUnknown_02039238
+_08129234: .4byte gAIScriptPtr
_08129238:
adds r0, r3, 0x6
str r0, [r4]
@@ -1316,18 +1316,18 @@ _0812923C:
thumb_func_start contest_ai_get_contest_type
contest_ai_get_contest_type: @ 8129244
ldr r1, _08129258 @ =0x020192e4
- ldr r0, _0812925C @ =gUnknown_0203869C
+ ldr r0, _0812925C @ =gScriptContestCategory
ldrh r0, [r0]
strh r0, [r1, 0x18]
- ldr r1, _08129260 @ =gUnknown_02039238
+ ldr r1, _08129260 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
bx lr
.align 2, 0
_08129258: .4byte 0x020192e4
-_0812925C: .4byte gUnknown_0203869C
-_08129260: .4byte gUnknown_02039238
+_0812925C: .4byte gScriptContestCategory
+_08129260: .4byte gAIScriptPtr
thumb_func_end contest_ai_get_contest_type
thumb_func_start sub_8129264
@@ -1337,7 +1337,7 @@ sub_8129264: @ 8129264
ldr r0, _08129294 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08129298 @ =gUnknown_02039238
+ ldr r3, _08129298 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -1356,7 +1356,7 @@ sub_8129264: @ 8129264
b _081292A0
.align 2, 0
_08129294: .4byte 0x020192e4
-_08129298: .4byte gUnknown_02039238
+_08129298: .4byte gAIScriptPtr
_0812929C:
adds r0, r2, 0x5
str r0, [r3]
@@ -1372,7 +1372,7 @@ sub_81292A4: @ 81292A4
ldr r0, _081292D4 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _081292D8 @ =gUnknown_02039238
+ ldr r3, _081292D8 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -1391,7 +1391,7 @@ sub_81292A4: @ 81292A4
b _081292E0
.align 2, 0
_081292D4: .4byte 0x020192e4
-_081292D8: .4byte gUnknown_02039238
+_081292D8: .4byte gAIScriptPtr
_081292DC:
adds r0, r2, 0x5
str r0, [r3]
@@ -1419,7 +1419,7 @@ contest_ai_get_move_excitement: @ 81292E4
lsls r0, 24
asrs r0, 24
strh r0, [r4, 0x18]
- ldr r1, _08129320 @ =gUnknown_02039238
+ ldr r1, _08129320 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
@@ -1429,7 +1429,7 @@ contest_ai_get_move_excitement: @ 81292E4
.align 2, 0
_08129318: .4byte gUnknown_02038570
_0812931C: .4byte 0x020192e4
-_08129320: .4byte gUnknown_02039238
+_08129320: .4byte gAIScriptPtr
thumb_func_end contest_ai_get_move_excitement
thumb_func_start sub_8129324
@@ -1437,7 +1437,7 @@ sub_8129324: @ 8129324
push {r4,lr}
bl contest_ai_get_move_excitement
ldr r0, _08129354 @ =0x020192e4
- ldr r3, _08129358 @ =gUnknown_02039238
+ ldr r3, _08129358 @ =gAIScriptPtr
ldr r2, [r3]
movs r4, 0x18
ldrsh r1, [r0, r4]
@@ -1459,7 +1459,7 @@ sub_8129324: @ 8129324
b _08129360
.align 2, 0
_08129354: .4byte 0x020192e4
-_08129358: .4byte gUnknown_02039238
+_08129358: .4byte gAIScriptPtr
_0812935C:
adds r0, r2, 0x5
str r0, [r3]
@@ -1474,7 +1474,7 @@ sub_8129368: @ 8129368
push {r4,lr}
bl contest_ai_get_move_excitement
ldr r0, _08129398 @ =0x020192e4
- ldr r3, _0812939C @ =gUnknown_02039238
+ ldr r3, _0812939C @ =gAIScriptPtr
ldr r2, [r3]
movs r4, 0x18
ldrsh r1, [r0, r4]
@@ -1496,7 +1496,7 @@ sub_8129368: @ 8129368
b _081293A4
.align 2, 0
_08129398: .4byte 0x020192e4
-_0812939C: .4byte gUnknown_02039238
+_0812939C: .4byte gAIScriptPtr
_081293A0:
adds r0, r2, 0x5
str r0, [r3]
@@ -1511,7 +1511,7 @@ sub_81293AC: @ 81293AC
push {r4,lr}
bl contest_ai_get_move_excitement
ldr r0, _081293DC @ =0x020192e4
- ldr r3, _081293E0 @ =gUnknown_02039238
+ ldr r3, _081293E0 @ =gAIScriptPtr
ldr r2, [r3]
movs r4, 0x18
ldrsh r1, [r0, r4]
@@ -1533,7 +1533,7 @@ sub_81293AC: @ 81293AC
b _081293E8
.align 2, 0
_081293DC: .4byte 0x020192e4
-_081293E0: .4byte gUnknown_02039238
+_081293E0: .4byte gAIScriptPtr
_081293E4:
adds r0, r2, 0x5
str r0, [r3]
@@ -1548,7 +1548,7 @@ sub_81293F0: @ 81293F0
push {r4,lr}
bl contest_ai_get_move_excitement
ldr r0, _08129420 @ =0x020192e4
- ldr r3, _08129424 @ =gUnknown_02039238
+ ldr r3, _08129424 @ =gAIScriptPtr
ldr r2, [r3]
movs r4, 0x18
ldrsh r1, [r0, r4]
@@ -1570,7 +1570,7 @@ sub_81293F0: @ 81293F0
b _0812942C
.align 2, 0
_08129420: .4byte 0x020192e4
-_08129424: .4byte gUnknown_02039238
+_08129424: .4byte gAIScriptPtr
_08129428:
adds r0, r2, 0x5
str r0, [r3]
@@ -1599,7 +1599,7 @@ contest_ai_get_move_effect: @ 8129434
adds r0, r1
ldrb r0, [r0]
strh r0, [r3, 0x18]
- ldr r1, _0812946C @ =gUnknown_02039238
+ ldr r1, _0812946C @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
@@ -1608,7 +1608,7 @@ contest_ai_get_move_effect: @ 8129434
_08129460: .4byte gUnknown_02038570
_08129464: .4byte 0x020192e4
_08129468: .4byte gContestMoves
-_0812946C: .4byte gUnknown_02039238
+_0812946C: .4byte gAIScriptPtr
thumb_func_end contest_ai_get_move_effect
thumb_func_start sub_8129470
@@ -1618,7 +1618,7 @@ sub_8129470: @ 8129470
ldr r0, _081294A0 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _081294A4 @ =gUnknown_02039238
+ ldr r3, _081294A4 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -1637,7 +1637,7 @@ sub_8129470: @ 8129470
b _081294AC
.align 2, 0
_081294A0: .4byte 0x020192e4
-_081294A4: .4byte gUnknown_02039238
+_081294A4: .4byte gAIScriptPtr
_081294A8:
adds r0, r2, 0x5
str r0, [r3]
@@ -1653,7 +1653,7 @@ sub_81294B0: @ 81294B0
ldr r0, _081294E0 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _081294E4 @ =gUnknown_02039238
+ ldr r3, _081294E4 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -1672,7 +1672,7 @@ sub_81294B0: @ 81294B0
b _081294EC
.align 2, 0
_081294E0: .4byte 0x020192e4
-_081294E4: .4byte gUnknown_02039238
+_081294E4: .4byte gAIScriptPtr
_081294E8:
adds r0, r2, 0x5
str r0, [r3]
@@ -1704,7 +1704,7 @@ contest_ai_get_move_effect_type: @ 81294F0
adds r0, r2
ldrb r0, [r0]
strh r0, [r3, 0x18]
- ldr r1, _08129534 @ =gUnknown_02039238
+ ldr r1, _08129534 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
@@ -1714,7 +1714,7 @@ _08129524: .4byte gUnknown_02038570
_08129528: .4byte 0x020192e4
_0812952C: .4byte gContestEffects
_08129530: .4byte gContestMoves
-_08129534: .4byte gUnknown_02039238
+_08129534: .4byte gAIScriptPtr
thumb_func_end contest_ai_get_move_effect_type
thumb_func_start sub_8129538
@@ -1724,7 +1724,7 @@ sub_8129538: @ 8129538
ldr r0, _08129568 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _0812956C @ =gUnknown_02039238
+ ldr r3, _0812956C @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -1743,7 +1743,7 @@ sub_8129538: @ 8129538
b _08129574
.align 2, 0
_08129568: .4byte 0x020192e4
-_0812956C: .4byte gUnknown_02039238
+_0812956C: .4byte gAIScriptPtr
_08129570:
adds r0, r2, 0x5
str r0, [r3]
@@ -1759,7 +1759,7 @@ sub_8129578: @ 8129578
ldr r0, _081295A8 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _081295AC @ =gUnknown_02039238
+ ldr r3, _081295AC @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -1778,7 +1778,7 @@ sub_8129578: @ 8129578
b _081295B4
.align 2, 0
_081295A8: .4byte 0x020192e4
-_081295AC: .4byte gUnknown_02039238
+_081295AC: .4byte gAIScriptPtr
_081295B0:
adds r0, r2, 0x5
str r0, [r3]
@@ -1811,7 +1811,7 @@ contest_ai_check_move_has_highest_appeal: @ 81295B8
adds r0, r4
ldrb r7, [r0, 0x1]
movs r6, 0
- ldr r0, _08129620 @ =gUnknown_02039238
+ ldr r0, _08129620 @ =gAIScriptPtr
mov r12, r0
adds r1, r2
_081295EA:
@@ -1841,7 +1841,7 @@ _08129610: .4byte gUnknown_02038570
_08129614: .4byte 0x020192e4
_08129618: .4byte gContestEffects
_0812961C: .4byte gContestMoves
-_08129620: .4byte gUnknown_02039238
+_08129620: .4byte gAIScriptPtr
_08129624:
movs r0, 0
_08129626:
@@ -1864,7 +1864,7 @@ sub_8129638: @ 8129638
ldrsh r0, [r0, r1]
cmp r0, 0
beq _0812966C
- ldr r3, _08129668 @ =gUnknown_02039238
+ ldr r3, _08129668 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -1880,9 +1880,9 @@ sub_8129638: @ 8129638
b _08129674
.align 2, 0
_08129664: .4byte 0x020192e4
-_08129668: .4byte gUnknown_02039238
+_08129668: .4byte gAIScriptPtr
_0812966C:
- ldr r1, _08129678 @ =gUnknown_02039238
+ ldr r1, _08129678 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -1890,7 +1890,7 @@ _08129674:
pop {r0}
bx r0
.align 2, 0
-_08129678: .4byte gUnknown_02039238
+_08129678: .4byte gAIScriptPtr
thumb_func_end sub_8129638
thumb_func_start sub_812967C
@@ -1917,7 +1917,7 @@ sub_812967C: @ 812967C
adds r0, r4
ldrb r7, [r0, 0x2]
movs r6, 0
- ldr r0, _081296E4 @ =gUnknown_02039238
+ ldr r0, _081296E4 @ =gAIScriptPtr
mov r12, r0
adds r1, r2
_081296AE:
@@ -1947,7 +1947,7 @@ _081296D4: .4byte gUnknown_02038570
_081296D8: .4byte 0x020192e4
_081296DC: .4byte gContestEffects
_081296E0: .4byte gContestMoves
-_081296E4: .4byte gUnknown_02039238
+_081296E4: .4byte gAIScriptPtr
_081296E8:
movs r0, 0
_081296EA:
@@ -1970,7 +1970,7 @@ sub_81296FC: @ 81296FC
ldrsh r0, [r0, r1]
cmp r0, 0
beq _08129730
- ldr r3, _0812972C @ =gUnknown_02039238
+ ldr r3, _0812972C @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2, 0x1]
ldrb r0, [r2, 0x2]
@@ -1986,9 +1986,9 @@ sub_81296FC: @ 81296FC
b _08129738
.align 2, 0
_08129728: .4byte 0x020192e4
-_0812972C: .4byte gUnknown_02039238
+_0812972C: .4byte gAIScriptPtr
_08129730:
- ldr r1, _0812973C @ =gUnknown_02039238
+ ldr r1, _0812973C @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x5
str r0, [r1]
@@ -1996,7 +1996,7 @@ _08129738:
pop {r0}
bx r0
.align 2, 0
-_0812973C: .4byte gUnknown_02039238
+_0812973C: .4byte gAIScriptPtr
thumb_func_end sub_81296FC
thumb_func_start sub_8129740
@@ -2027,7 +2027,7 @@ sub_8129740: @ 8129740
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x18]
- ldr r1, _08129794 @ =gUnknown_02039238
+ ldr r1, _08129794 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
@@ -2039,7 +2039,7 @@ _08129784: .4byte gUnknown_02038570
_08129788: .4byte 0x020192e4
_0812978C: .4byte gContestEffects
_08129790: .4byte gContestMoves
-_08129794: .4byte gUnknown_02039238
+_08129794: .4byte gAIScriptPtr
thumb_func_end sub_8129740
thumb_func_start sub_8129798
@@ -2049,7 +2049,7 @@ sub_8129798: @ 8129798
ldr r0, _081297C8 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _081297CC @ =gUnknown_02039238
+ ldr r3, _081297CC @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -2068,7 +2068,7 @@ sub_8129798: @ 8129798
b _081297D4
.align 2, 0
_081297C8: .4byte 0x020192e4
-_081297CC: .4byte gUnknown_02039238
+_081297CC: .4byte gAIScriptPtr
_081297D0:
adds r0, r2, 0x5
str r0, [r3]
@@ -2084,7 +2084,7 @@ sub_81297D8: @ 81297D8
ldr r0, _08129808 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _0812980C @ =gUnknown_02039238
+ ldr r3, _0812980C @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -2103,7 +2103,7 @@ sub_81297D8: @ 81297D8
b _08129814
.align 2, 0
_08129808: .4byte 0x020192e4
-_0812980C: .4byte gUnknown_02039238
+_0812980C: .4byte gAIScriptPtr
_08129810:
adds r0, r2, 0x5
str r0, [r3]
@@ -2119,7 +2119,7 @@ sub_8129818: @ 8129818
ldr r0, _08129848 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _0812984C @ =gUnknown_02039238
+ ldr r3, _0812984C @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -2138,7 +2138,7 @@ sub_8129818: @ 8129818
b _08129854
.align 2, 0
_08129848: .4byte 0x020192e4
-_0812984C: .4byte gUnknown_02039238
+_0812984C: .4byte gAIScriptPtr
_08129850:
adds r0, r2, 0x5
str r0, [r3]
@@ -2154,7 +2154,7 @@ sub_8129858: @ 8129858
ldr r0, _08129888 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _0812988C @ =gUnknown_02039238
+ ldr r3, _0812988C @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -2173,7 +2173,7 @@ sub_8129858: @ 8129858
b _08129894
.align 2, 0
_08129888: .4byte 0x020192e4
-_0812988C: .4byte gUnknown_02039238
+_0812988C: .4byte gAIScriptPtr
_08129890:
adds r0, r2, 0x5
str r0, [r3]
@@ -2210,7 +2210,7 @@ sub_8129898: @ 8129898
lsls r0, 24
lsrs r0, 24
strh r0, [r4, 0x18]
- ldr r1, _081298EC @ =gUnknown_02039238
+ ldr r1, _081298EC @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
@@ -2222,7 +2222,7 @@ _081298DC: .4byte gUnknown_02038570
_081298E0: .4byte 0x020192e4
_081298E4: .4byte gContestEffects
_081298E8: .4byte gContestMoves
-_081298EC: .4byte gUnknown_02039238
+_081298EC: .4byte gAIScriptPtr
thumb_func_end sub_8129898
thumb_func_start sub_81298F0
@@ -2232,7 +2232,7 @@ sub_81298F0: @ 81298F0
ldr r0, _08129920 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08129924 @ =gUnknown_02039238
+ ldr r3, _08129924 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -2251,7 +2251,7 @@ sub_81298F0: @ 81298F0
b _0812992C
.align 2, 0
_08129920: .4byte 0x020192e4
-_08129924: .4byte gUnknown_02039238
+_08129924: .4byte gAIScriptPtr
_08129928:
adds r0, r2, 0x5
str r0, [r3]
@@ -2267,7 +2267,7 @@ sub_8129930: @ 8129930
ldr r0, _08129960 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08129964 @ =gUnknown_02039238
+ ldr r3, _08129964 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -2286,7 +2286,7 @@ sub_8129930: @ 8129930
b _0812996C
.align 2, 0
_08129960: .4byte 0x020192e4
-_08129964: .4byte gUnknown_02039238
+_08129964: .4byte gAIScriptPtr
_08129968:
adds r0, r2, 0x5
str r0, [r3]
@@ -2302,7 +2302,7 @@ sub_8129970: @ 8129970
ldr r0, _081299A0 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _081299A4 @ =gUnknown_02039238
+ ldr r3, _081299A4 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -2321,7 +2321,7 @@ sub_8129970: @ 8129970
b _081299AC
.align 2, 0
_081299A0: .4byte 0x020192e4
-_081299A4: .4byte gUnknown_02039238
+_081299A4: .4byte gAIScriptPtr
_081299A8:
adds r0, r2, 0x5
str r0, [r3]
@@ -2337,7 +2337,7 @@ sub_81299B0: @ 81299B0
ldr r0, _081299E0 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _081299E4 @ =gUnknown_02039238
+ ldr r3, _081299E4 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -2356,7 +2356,7 @@ sub_81299B0: @ 81299B0
b _081299EC
.align 2, 0
_081299E0: .4byte 0x020192e4
-_081299E4: .4byte gUnknown_02039238
+_081299E4: .4byte gAIScriptPtr
_081299E8:
adds r0, r2, 0x5
str r0, [r3]
@@ -2401,7 +2401,7 @@ _08129A28:
adds r0, 0x1
_08129A30:
strh r0, [r4, 0x18]
- ldr r1, _08129A40 @ =gUnknown_02039238
+ ldr r1, _08129A40 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
@@ -2409,7 +2409,7 @@ _08129A30:
pop {r0}
bx r0
.align 2, 0
-_08129A40: .4byte gUnknown_02039238
+_08129A40: .4byte gAIScriptPtr
thumb_func_end contest_ai_get_move_used_count
thumb_func_start sub_8129A44
@@ -2419,7 +2419,7 @@ sub_8129A44: @ 8129A44
ldr r0, _08129A74 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08129A78 @ =gUnknown_02039238
+ ldr r3, _08129A78 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -2438,7 +2438,7 @@ sub_8129A44: @ 8129A44
b _08129A80
.align 2, 0
_08129A74: .4byte 0x020192e4
-_08129A78: .4byte gUnknown_02039238
+_08129A78: .4byte gAIScriptPtr
_08129A7C:
adds r0, r2, 0x5
str r0, [r3]
@@ -2454,7 +2454,7 @@ sub_8129A84: @ 8129A84
ldr r0, _08129AB4 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08129AB8 @ =gUnknown_02039238
+ ldr r3, _08129AB8 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -2473,7 +2473,7 @@ sub_8129A84: @ 8129A84
b _08129AC0
.align 2, 0
_08129AB4: .4byte 0x020192e4
-_08129AB8: .4byte gUnknown_02039238
+_08129AB8: .4byte gAIScriptPtr
_08129ABC:
adds r0, r2, 0x5
str r0, [r3]
@@ -2489,7 +2489,7 @@ sub_8129AC4: @ 8129AC4
ldr r0, _08129AF4 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08129AF8 @ =gUnknown_02039238
+ ldr r3, _08129AF8 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -2508,7 +2508,7 @@ sub_8129AC4: @ 8129AC4
b _08129B00
.align 2, 0
_08129AF4: .4byte 0x020192e4
-_08129AF8: .4byte gUnknown_02039238
+_08129AF8: .4byte gAIScriptPtr
_08129AFC:
adds r0, r2, 0x5
str r0, [r3]
@@ -2524,7 +2524,7 @@ sub_8129B04: @ 8129B04
ldr r0, _08129B34 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08129B38 @ =gUnknown_02039238
+ ldr r3, _08129B38 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -2543,7 +2543,7 @@ sub_8129B04: @ 8129B04
b _08129B40
.align 2, 0
_08129B34: .4byte 0x020192e4
-_08129B38: .4byte gUnknown_02039238
+_08129B38: .4byte gAIScriptPtr
_08129B3C:
adds r0, r2, 0x5
str r0, [r3]
@@ -2600,7 +2600,7 @@ _08129B94:
_08129B96:
ldr r0, _08129BB0 @ =0x020192e4
strh r5, [r0, 0x18]
- ldr r1, _08129BB4 @ =gUnknown_02039238
+ ldr r1, _08129BB4 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
@@ -2612,7 +2612,7 @@ _08129B96:
.align 2, 0
_08129BAC: .4byte gUnknown_02038570
_08129BB0: .4byte 0x020192e4
-_08129BB4: .4byte gUnknown_02039238
+_08129BB4: .4byte gAIScriptPtr
thumb_func_end contest_ai_check_combo_starter
thumb_func_start sub_8129BB8
@@ -2624,7 +2624,7 @@ sub_8129BB8: @ 8129BB8
ldrsh r0, [r0, r1]
cmp r0, 0
beq _08129BEC
- ldr r3, _08129BE8 @ =gUnknown_02039238
+ ldr r3, _08129BE8 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -2640,9 +2640,9 @@ sub_8129BB8: @ 8129BB8
b _08129BF4
.align 2, 0
_08129BE4: .4byte 0x020192e4
-_08129BE8: .4byte gUnknown_02039238
+_08129BE8: .4byte gAIScriptPtr
_08129BEC:
- ldr r1, _08129BF8 @ =gUnknown_02039238
+ ldr r1, _08129BF8 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -2650,7 +2650,7 @@ _08129BF4:
pop {r0}
bx r0
.align 2, 0
-_08129BF8: .4byte gUnknown_02039238
+_08129BF8: .4byte gAIScriptPtr
thumb_func_end sub_8129BB8
thumb_func_start sub_8129BFC
@@ -2662,7 +2662,7 @@ sub_8129BFC: @ 8129BFC
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08129C30
- ldr r3, _08129C2C @ =gUnknown_02039238
+ ldr r3, _08129C2C @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -2678,9 +2678,9 @@ sub_8129BFC: @ 8129BFC
b _08129C38
.align 2, 0
_08129C28: .4byte 0x020192e4
-_08129C2C: .4byte gUnknown_02039238
+_08129C2C: .4byte gAIScriptPtr
_08129C30:
- ldr r1, _08129C3C @ =gUnknown_02039238
+ ldr r1, _08129C3C @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -2688,7 +2688,7 @@ _08129C38:
pop {r0}
bx r0
.align 2, 0
-_08129C3C: .4byte gUnknown_02039238
+_08129C3C: .4byte gAIScriptPtr
thumb_func_end sub_8129BFC
thumb_func_start contest_ai_check_combo_finisher
@@ -2738,7 +2738,7 @@ _08129C8E:
_08129C90:
ldr r0, _08129CAC @ =0x020192e4
strh r5, [r0, 0x18]
- ldr r1, _08129CB0 @ =gUnknown_02039238
+ ldr r1, _08129CB0 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
@@ -2750,7 +2750,7 @@ _08129C90:
.align 2, 0
_08129CA8: .4byte gUnknown_02038570
_08129CAC: .4byte 0x020192e4
-_08129CB0: .4byte gUnknown_02039238
+_08129CB0: .4byte gAIScriptPtr
thumb_func_end contest_ai_check_combo_finisher
thumb_func_start sub_8129CB4
@@ -2762,7 +2762,7 @@ sub_8129CB4: @ 8129CB4
ldrsh r0, [r0, r1]
cmp r0, 0
beq _08129CE8
- ldr r3, _08129CE4 @ =gUnknown_02039238
+ ldr r3, _08129CE4 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -2778,9 +2778,9 @@ sub_8129CB4: @ 8129CB4
b _08129CF0
.align 2, 0
_08129CE0: .4byte 0x020192e4
-_08129CE4: .4byte gUnknown_02039238
+_08129CE4: .4byte gAIScriptPtr
_08129CE8:
- ldr r1, _08129CF4 @ =gUnknown_02039238
+ ldr r1, _08129CF4 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -2788,7 +2788,7 @@ _08129CF0:
pop {r0}
bx r0
.align 2, 0
-_08129CF4: .4byte gUnknown_02039238
+_08129CF4: .4byte gAIScriptPtr
thumb_func_end sub_8129CB4
thumb_func_start sub_8129CF8
@@ -2800,7 +2800,7 @@ sub_8129CF8: @ 8129CF8
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08129D2C
- ldr r3, _08129D28 @ =gUnknown_02039238
+ ldr r3, _08129D28 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -2816,9 +2816,9 @@ sub_8129CF8: @ 8129CF8
b _08129D34
.align 2, 0
_08129D24: .4byte 0x020192e4
-_08129D28: .4byte gUnknown_02039238
+_08129D28: .4byte gAIScriptPtr
_08129D2C:
- ldr r1, _08129D38 @ =gUnknown_02039238
+ ldr r1, _08129D38 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -2826,7 +2826,7 @@ _08129D34:
pop {r0}
bx r0
.align 2, 0
-_08129D38: .4byte gUnknown_02039238
+_08129D38: .4byte gAIScriptPtr
thumb_func_end sub_8129CF8
thumb_func_start contest_ai_check_would_finish_combo
@@ -2864,7 +2864,7 @@ _08129D74:
movs r5, 0x1
_08129D7A:
strh r5, [r4, 0x18]
- ldr r1, _08129D94 @ =gUnknown_02039238
+ ldr r1, _08129D94 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
@@ -2874,7 +2874,7 @@ _08129D7A:
.align 2, 0
_08129D8C: .4byte gUnknown_02038570
_08129D90: .4byte 0x020192e4
-_08129D94: .4byte gUnknown_02039238
+_08129D94: .4byte gAIScriptPtr
thumb_func_end contest_ai_check_would_finish_combo
thumb_func_start sub_8129D98
@@ -2886,7 +2886,7 @@ sub_8129D98: @ 8129D98
ldrsh r0, [r0, r1]
cmp r0, 0
beq _08129DCC
- ldr r3, _08129DC8 @ =gUnknown_02039238
+ ldr r3, _08129DC8 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -2902,9 +2902,9 @@ sub_8129D98: @ 8129D98
b _08129DD4
.align 2, 0
_08129DC4: .4byte 0x020192e4
-_08129DC8: .4byte gUnknown_02039238
+_08129DC8: .4byte gAIScriptPtr
_08129DCC:
- ldr r1, _08129DD8 @ =gUnknown_02039238
+ ldr r1, _08129DD8 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -2912,7 +2912,7 @@ _08129DD4:
pop {r0}
bx r0
.align 2, 0
-_08129DD8: .4byte gUnknown_02039238
+_08129DD8: .4byte gAIScriptPtr
thumb_func_end sub_8129D98
thumb_func_start sub_8129DDC
@@ -2924,7 +2924,7 @@ sub_8129DDC: @ 8129DDC
ldrsh r0, [r0, r1]
cmp r0, 0
bne _08129E10
- ldr r3, _08129E0C @ =gUnknown_02039238
+ ldr r3, _08129E0C @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -2940,9 +2940,9 @@ sub_8129DDC: @ 8129DDC
b _08129E18
.align 2, 0
_08129E08: .4byte 0x020192e4
-_08129E0C: .4byte gUnknown_02039238
+_08129E0C: .4byte gAIScriptPtr
_08129E10:
- ldr r1, _08129E1C @ =gUnknown_02039238
+ ldr r1, _08129E1C @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -2950,13 +2950,13 @@ _08129E18:
pop {r0}
bx r0
.align 2, 0
-_08129E1C: .4byte gUnknown_02039238
+_08129E1C: .4byte gAIScriptPtr
thumb_func_end sub_8129DDC
thumb_func_start contest_ai_get_condition
contest_ai_get_condition: @ 8129E20
push {r4,r5,lr}
- ldr r4, _08129E5C @ =gUnknown_02039238
+ ldr r4, _08129E5C @ =gAIScriptPtr
ldr r0, [r4]
ldrb r0, [r0, 0x1]
bl sub_8128A7C
@@ -2983,7 +2983,7 @@ contest_ai_get_condition: @ 8129E20
pop {r0}
bx r0
.align 2, 0
-_08129E5C: .4byte gUnknown_02039238
+_08129E5C: .4byte gAIScriptPtr
_08129E60: .4byte 0x020192e4
thumb_func_end contest_ai_get_condition
@@ -2994,7 +2994,7 @@ sub_8129E64: @ 8129E64
ldr r0, _08129E94 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08129E98 @ =gUnknown_02039238
+ ldr r3, _08129E98 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -3013,7 +3013,7 @@ sub_8129E64: @ 8129E64
b _08129EA0
.align 2, 0
_08129E94: .4byte 0x020192e4
-_08129E98: .4byte gUnknown_02039238
+_08129E98: .4byte gAIScriptPtr
_08129E9C:
adds r0, r2, 0x5
str r0, [r3]
@@ -3029,7 +3029,7 @@ sub_8129EA4: @ 8129EA4
ldr r0, _08129ED4 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08129ED8 @ =gUnknown_02039238
+ ldr r3, _08129ED8 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -3048,7 +3048,7 @@ sub_8129EA4: @ 8129EA4
b _08129EE0
.align 2, 0
_08129ED4: .4byte 0x020192e4
-_08129ED8: .4byte gUnknown_02039238
+_08129ED8: .4byte gAIScriptPtr
_08129EDC:
adds r0, r2, 0x5
str r0, [r3]
@@ -3064,7 +3064,7 @@ sub_8129EE4: @ 8129EE4
ldr r0, _08129F14 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08129F18 @ =gUnknown_02039238
+ ldr r3, _08129F18 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -3083,7 +3083,7 @@ sub_8129EE4: @ 8129EE4
b _08129F20
.align 2, 0
_08129F14: .4byte 0x020192e4
-_08129F18: .4byte gUnknown_02039238
+_08129F18: .4byte gAIScriptPtr
_08129F1C:
adds r0, r2, 0x5
str r0, [r3]
@@ -3099,7 +3099,7 @@ sub_8129F24: @ 8129F24
ldr r0, _08129F54 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08129F58 @ =gUnknown_02039238
+ ldr r3, _08129F58 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -3118,7 +3118,7 @@ sub_8129F24: @ 8129F24
b _08129F60
.align 2, 0
_08129F54: .4byte 0x020192e4
-_08129F58: .4byte gUnknown_02039238
+_08129F58: .4byte gAIScriptPtr
_08129F5C:
adds r0, r2, 0x5
str r0, [r3]
@@ -3131,7 +3131,7 @@ _08129F60:
contest_ai_get_used_combo_starter: @ 8129F64
push {r4-r6,lr}
movs r6, 0
- ldr r5, _08129FAC @ =gUnknown_02039238
+ ldr r5, _08129FAC @ =gAIScriptPtr
ldr r0, [r5]
ldrb r0, [r0, 0x1]
bl sub_8128A7C
@@ -3165,7 +3165,7 @@ _08129F9C:
pop {r0}
bx r0
.align 2, 0
-_08129FAC: .4byte gUnknown_02039238
+_08129FAC: .4byte gAIScriptPtr
_08129FB0: .4byte gContestMoves
_08129FB4: .4byte 0x02019260
_08129FB8: .4byte 0x020192e4
@@ -3178,7 +3178,7 @@ sub_8129FBC: @ 8129FBC
ldr r0, _08129FEC @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _08129FF0 @ =gUnknown_02039238
+ ldr r3, _08129FF0 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -3197,7 +3197,7 @@ sub_8129FBC: @ 8129FBC
b _08129FF8
.align 2, 0
_08129FEC: .4byte 0x020192e4
-_08129FF0: .4byte gUnknown_02039238
+_08129FF0: .4byte gAIScriptPtr
_08129FF4:
adds r0, r2, 0x5
str r0, [r3]
@@ -3213,7 +3213,7 @@ sub_8129FFC: @ 8129FFC
ldr r0, _0812A02C @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _0812A030 @ =gUnknown_02039238
+ ldr r3, _0812A030 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -3232,7 +3232,7 @@ sub_8129FFC: @ 8129FFC
b _0812A038
.align 2, 0
_0812A02C: .4byte 0x020192e4
-_0812A030: .4byte gUnknown_02039238
+_0812A030: .4byte gAIScriptPtr
_0812A034:
adds r0, r2, 0x5
str r0, [r3]
@@ -3248,7 +3248,7 @@ sub_812A03C: @ 812A03C
ldr r0, _0812A06C @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _0812A070 @ =gUnknown_02039238
+ ldr r3, _0812A070 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -3267,7 +3267,7 @@ sub_812A03C: @ 812A03C
b _0812A078
.align 2, 0
_0812A06C: .4byte 0x020192e4
-_0812A070: .4byte gUnknown_02039238
+_0812A070: .4byte gAIScriptPtr
_0812A074:
adds r0, r2, 0x5
str r0, [r3]
@@ -3283,7 +3283,7 @@ sub_812A07C: @ 812A07C
ldr r0, _0812A0AC @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _0812A0B0 @ =gUnknown_02039238
+ ldr r3, _0812A0B0 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -3302,7 +3302,7 @@ sub_812A07C: @ 812A07C
b _0812A0B8
.align 2, 0
_0812A0AC: .4byte 0x020192e4
-_0812A0B0: .4byte gUnknown_02039238
+_0812A0B0: .4byte gAIScriptPtr
_0812A0B4:
adds r0, r2, 0x5
str r0, [r3]
@@ -3314,7 +3314,7 @@ _0812A0B8:
thumb_func_start contest_ai_check_can_participate
contest_ai_check_can_participate: @ 812A0BC
push {lr}
- ldr r0, _0812A0DC @ =gUnknown_02039238
+ ldr r0, _0812A0DC @ =gAIScriptPtr
ldr r0, [r0]
ldrb r0, [r0, 0x1]
bl sub_8128A7C
@@ -3328,14 +3328,14 @@ contest_ai_check_can_participate: @ 812A0BC
movs r0, 0
b _0812A0E8
.align 2, 0
-_0812A0DC: .4byte gUnknown_02039238
+_0812A0DC: .4byte gAIScriptPtr
_0812A0E0: .4byte 0x020192e4
_0812A0E4:
ldr r1, _0812A0F8 @ =0x020192e4
movs r0, 0x1
_0812A0E8:
strh r0, [r1, 0x18]
- ldr r1, _0812A0FC @ =gUnknown_02039238
+ ldr r1, _0812A0FC @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x2
str r0, [r1]
@@ -3343,7 +3343,7 @@ _0812A0E8:
bx r0
.align 2, 0
_0812A0F8: .4byte 0x020192e4
-_0812A0FC: .4byte gUnknown_02039238
+_0812A0FC: .4byte gAIScriptPtr
thumb_func_end contest_ai_check_can_participate
thumb_func_start sub_812A100
@@ -3355,7 +3355,7 @@ sub_812A100: @ 812A100
ldrsh r0, [r0, r1]
cmp r0, 0
beq _0812A134
- ldr r3, _0812A130 @ =gUnknown_02039238
+ ldr r3, _0812A130 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -3371,9 +3371,9 @@ sub_812A100: @ 812A100
b _0812A13C
.align 2, 0
_0812A12C: .4byte 0x020192e4
-_0812A130: .4byte gUnknown_02039238
+_0812A130: .4byte gAIScriptPtr
_0812A134:
- ldr r1, _0812A140 @ =gUnknown_02039238
+ ldr r1, _0812A140 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -3381,7 +3381,7 @@ _0812A13C:
pop {r0}
bx r0
.align 2, 0
-_0812A140: .4byte gUnknown_02039238
+_0812A140: .4byte gAIScriptPtr
thumb_func_end sub_812A100
thumb_func_start sub_812A144
@@ -3393,7 +3393,7 @@ sub_812A144: @ 812A144
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0812A178
- ldr r3, _0812A174 @ =gUnknown_02039238
+ ldr r3, _0812A174 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -3409,9 +3409,9 @@ sub_812A144: @ 812A144
b _0812A180
.align 2, 0
_0812A170: .4byte 0x020192e4
-_0812A174: .4byte gUnknown_02039238
+_0812A174: .4byte gAIScriptPtr
_0812A178:
- ldr r1, _0812A184 @ =gUnknown_02039238
+ ldr r1, _0812A184 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -3419,13 +3419,13 @@ _0812A180:
pop {r0}
bx r0
.align 2, 0
-_0812A184: .4byte gUnknown_02039238
+_0812A184: .4byte gAIScriptPtr
thumb_func_end sub_812A144
thumb_func_start contest_ai_get_val_812A188
contest_ai_get_val_812A188: @ 812A188
push {r4,lr}
- ldr r4, _0812A1BC @ =gUnknown_02039238
+ ldr r4, _0812A1BC @ =gAIScriptPtr
ldr r0, [r4]
ldrb r0, [r0, 0x1]
bl sub_8128A7C
@@ -3449,7 +3449,7 @@ contest_ai_get_val_812A188: @ 812A188
pop {r0}
bx r0
.align 2, 0
-_0812A1BC: .4byte gUnknown_02039238
+_0812A1BC: .4byte gAIScriptPtr
_0812A1C0: .4byte 0x020192e4
thumb_func_end contest_ai_get_val_812A188
@@ -3462,7 +3462,7 @@ sub_812A1C4: @ 812A1C4
ldrsh r0, [r0, r1]
cmp r0, 0
beq _0812A1F8
- ldr r3, _0812A1F4 @ =gUnknown_02039238
+ ldr r3, _0812A1F4 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -3478,9 +3478,9 @@ sub_812A1C4: @ 812A1C4
b _0812A200
.align 2, 0
_0812A1F0: .4byte 0x020192e4
-_0812A1F4: .4byte gUnknown_02039238
+_0812A1F4: .4byte gAIScriptPtr
_0812A1F8:
- ldr r1, _0812A204 @ =gUnknown_02039238
+ ldr r1, _0812A204 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -3488,7 +3488,7 @@ _0812A200:
pop {r0}
bx r0
.align 2, 0
-_0812A204: .4byte gUnknown_02039238
+_0812A204: .4byte gAIScriptPtr
thumb_func_end sub_812A1C4
thumb_func_start sub_812A208
@@ -3500,7 +3500,7 @@ sub_812A208: @ 812A208
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0812A23C
- ldr r3, _0812A238 @ =gUnknown_02039238
+ ldr r3, _0812A238 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -3516,9 +3516,9 @@ sub_812A208: @ 812A208
b _0812A244
.align 2, 0
_0812A234: .4byte 0x020192e4
-_0812A238: .4byte gUnknown_02039238
+_0812A238: .4byte gAIScriptPtr
_0812A23C:
- ldr r1, _0812A248 @ =gUnknown_02039238
+ ldr r1, _0812A248 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -3526,13 +3526,13 @@ _0812A244:
pop {r0}
bx r0
.align 2, 0
-_0812A248: .4byte gUnknown_02039238
+_0812A248: .4byte gAIScriptPtr
thumb_func_end sub_812A208
thumb_func_start sub_812A24C
sub_812A24C: @ 812A24C
push {r4,r5,lr}
- ldr r5, _0812A28C @ =gUnknown_02039238
+ ldr r5, _0812A28C @ =gAIScriptPtr
ldr r0, [r5]
ldrb r0, [r0, 0x1]
bl sub_8128A7C
@@ -3563,7 +3563,7 @@ sub_812A24C: @ 812A24C
pop {r0}
bx r0
.align 2, 0
-_0812A28C: .4byte gUnknown_02039238
+_0812A28C: .4byte gAIScriptPtr
_0812A290: .4byte 0x020192e4
thumb_func_end sub_812A24C
@@ -3576,7 +3576,7 @@ sub_812A294: @ 812A294
ldrsh r0, [r0, r1]
cmp r0, 0
bge _0812A2C8
- ldr r3, _0812A2C4 @ =gUnknown_02039238
+ ldr r3, _0812A2C4 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -3592,9 +3592,9 @@ sub_812A294: @ 812A294
b _0812A2D0
.align 2, 0
_0812A2C0: .4byte 0x020192e4
-_0812A2C4: .4byte gUnknown_02039238
+_0812A2C4: .4byte gAIScriptPtr
_0812A2C8:
- ldr r1, _0812A2D4 @ =gUnknown_02039238
+ ldr r1, _0812A2D4 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -3602,7 +3602,7 @@ _0812A2D0:
pop {r0}
bx r0
.align 2, 0
-_0812A2D4: .4byte gUnknown_02039238
+_0812A2D4: .4byte gAIScriptPtr
thumb_func_end sub_812A294
thumb_func_start sub_812A2D8
@@ -3614,7 +3614,7 @@ sub_812A2D8: @ 812A2D8
ldrsh r0, [r0, r1]
cmp r0, 0
ble _0812A30C
- ldr r3, _0812A308 @ =gUnknown_02039238
+ ldr r3, _0812A308 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -3630,9 +3630,9 @@ sub_812A2D8: @ 812A2D8
b _0812A314
.align 2, 0
_0812A304: .4byte 0x020192e4
-_0812A308: .4byte gUnknown_02039238
+_0812A308: .4byte gAIScriptPtr
_0812A30C:
- ldr r1, _0812A318 @ =gUnknown_02039238
+ ldr r1, _0812A318 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -3640,7 +3640,7 @@ _0812A314:
pop {r0}
bx r0
.align 2, 0
-_0812A318: .4byte gUnknown_02039238
+_0812A318: .4byte gAIScriptPtr
thumb_func_end sub_812A2D8
thumb_func_start sub_812A31C
@@ -3652,7 +3652,7 @@ sub_812A31C: @ 812A31C
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0812A350
- ldr r3, _0812A34C @ =gUnknown_02039238
+ ldr r3, _0812A34C @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -3668,9 +3668,9 @@ sub_812A31C: @ 812A31C
b _0812A358
.align 2, 0
_0812A348: .4byte 0x020192e4
-_0812A34C: .4byte gUnknown_02039238
+_0812A34C: .4byte gAIScriptPtr
_0812A350:
- ldr r1, _0812A35C @ =gUnknown_02039238
+ ldr r1, _0812A35C @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -3678,7 +3678,7 @@ _0812A358:
pop {r0}
bx r0
.align 2, 0
-_0812A35C: .4byte gUnknown_02039238
+_0812A35C: .4byte gAIScriptPtr
thumb_func_end sub_812A31C
thumb_func_start sub_812A360
@@ -3690,7 +3690,7 @@ sub_812A360: @ 812A360
ldrsh r0, [r0, r1]
cmp r0, 0
beq _0812A394
- ldr r3, _0812A390 @ =gUnknown_02039238
+ ldr r3, _0812A390 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -3706,9 +3706,9 @@ sub_812A360: @ 812A360
b _0812A39C
.align 2, 0
_0812A38C: .4byte 0x020192e4
-_0812A390: .4byte gUnknown_02039238
+_0812A390: .4byte gAIScriptPtr
_0812A394:
- ldr r1, _0812A3A0 @ =gUnknown_02039238
+ ldr r1, _0812A3A0 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -3716,13 +3716,13 @@ _0812A39C:
pop {r0}
bx r0
.align 2, 0
-_0812A3A0: .4byte gUnknown_02039238
+_0812A3A0: .4byte gAIScriptPtr
thumb_func_end sub_812A360
thumb_func_start sub_812A3A4
sub_812A3A4: @ 812A3A4
push {r4,lr}
- ldr r4, _0812A3D8 @ =gUnknown_02039238
+ ldr r4, _0812A3D8 @ =gAIScriptPtr
ldr r0, [r4]
ldrb r0, [r0, 0x1]
bl sub_8128A7C
@@ -3747,7 +3747,7 @@ sub_812A3A4: @ 812A3A4
pop {r0}
bx r0
.align 2, 0
-_0812A3D8: .4byte gUnknown_02039238
+_0812A3D8: .4byte gAIScriptPtr
_0812A3DC: .4byte 0x020192e4
_0812A3E0: .4byte gUnknown_02038670
thumb_func_end sub_812A3A4
@@ -3761,7 +3761,7 @@ sub_812A3E4: @ 812A3E4
ldrsh r0, [r0, r1]
cmp r0, 0
bge _0812A418
- ldr r3, _0812A414 @ =gUnknown_02039238
+ ldr r3, _0812A414 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -3777,9 +3777,9 @@ sub_812A3E4: @ 812A3E4
b _0812A420
.align 2, 0
_0812A410: .4byte 0x020192e4
-_0812A414: .4byte gUnknown_02039238
+_0812A414: .4byte gAIScriptPtr
_0812A418:
- ldr r1, _0812A424 @ =gUnknown_02039238
+ ldr r1, _0812A424 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -3787,7 +3787,7 @@ _0812A420:
pop {r0}
bx r0
.align 2, 0
-_0812A424: .4byte gUnknown_02039238
+_0812A424: .4byte gAIScriptPtr
thumb_func_end sub_812A3E4
thumb_func_start sub_812A428
@@ -3799,7 +3799,7 @@ sub_812A428: @ 812A428
ldrsh r0, [r0, r1]
cmp r0, 0
ble _0812A45C
- ldr r3, _0812A458 @ =gUnknown_02039238
+ ldr r3, _0812A458 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -3815,9 +3815,9 @@ sub_812A428: @ 812A428
b _0812A464
.align 2, 0
_0812A454: .4byte 0x020192e4
-_0812A458: .4byte gUnknown_02039238
+_0812A458: .4byte gAIScriptPtr
_0812A45C:
- ldr r1, _0812A468 @ =gUnknown_02039238
+ ldr r1, _0812A468 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -3825,7 +3825,7 @@ _0812A464:
pop {r0}
bx r0
.align 2, 0
-_0812A468: .4byte gUnknown_02039238
+_0812A468: .4byte gAIScriptPtr
thumb_func_end sub_812A428
thumb_func_start sub_812A46C
@@ -3837,7 +3837,7 @@ sub_812A46C: @ 812A46C
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0812A4A0
- ldr r3, _0812A49C @ =gUnknown_02039238
+ ldr r3, _0812A49C @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -3853,9 +3853,9 @@ sub_812A46C: @ 812A46C
b _0812A4A8
.align 2, 0
_0812A498: .4byte 0x020192e4
-_0812A49C: .4byte gUnknown_02039238
+_0812A49C: .4byte gAIScriptPtr
_0812A4A0:
- ldr r1, _0812A4AC @ =gUnknown_02039238
+ ldr r1, _0812A4AC @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -3863,7 +3863,7 @@ _0812A4A8:
pop {r0}
bx r0
.align 2, 0
-_0812A4AC: .4byte gUnknown_02039238
+_0812A4AC: .4byte gAIScriptPtr
thumb_func_end sub_812A46C
thumb_func_start sub_812A4B0
@@ -3875,7 +3875,7 @@ sub_812A4B0: @ 812A4B0
ldrsh r0, [r0, r1]
cmp r0, 0
beq _0812A4E4
- ldr r3, _0812A4E0 @ =gUnknown_02039238
+ ldr r3, _0812A4E0 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -3891,9 +3891,9 @@ sub_812A4B0: @ 812A4B0
b _0812A4EC
.align 2, 0
_0812A4DC: .4byte 0x020192e4
-_0812A4E0: .4byte gUnknown_02039238
+_0812A4E0: .4byte gAIScriptPtr
_0812A4E4:
- ldr r1, _0812A4F0 @ =gUnknown_02039238
+ ldr r1, _0812A4F0 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -3901,13 +3901,13 @@ _0812A4EC:
pop {r0}
bx r0
.align 2, 0
-_0812A4F0: .4byte gUnknown_02039238
+_0812A4F0: .4byte gAIScriptPtr
thumb_func_end sub_812A4B0
thumb_func_start sub_812A4F4
sub_812A4F4: @ 812A4F4
push {r4,lr}
- ldr r4, _0812A52C @ =gUnknown_02039238
+ ldr r4, _0812A52C @ =gAIScriptPtr
ldr r0, [r4]
ldrb r0, [r0, 0x1]
bl sub_8128A7C
@@ -3934,7 +3934,7 @@ sub_812A4F4: @ 812A4F4
pop {r0}
bx r0
.align 2, 0
-_0812A52C: .4byte gUnknown_02039238
+_0812A52C: .4byte gAIScriptPtr
_0812A530: .4byte 0x02019204
_0812A534: .4byte gContestMoves
thumb_func_end sub_812A4F4
@@ -3946,7 +3946,7 @@ sub_812A538: @ 812A538
ldr r0, _0812A568 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _0812A56C @ =gUnknown_02039238
+ ldr r3, _0812A56C @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -3965,7 +3965,7 @@ sub_812A538: @ 812A538
b _0812A574
.align 2, 0
_0812A568: .4byte 0x020192e4
-_0812A56C: .4byte gUnknown_02039238
+_0812A56C: .4byte gAIScriptPtr
_0812A570:
adds r0, r2, 0x5
str r0, [r3]
@@ -3981,7 +3981,7 @@ sub_812A578: @ 812A578
ldr r0, _0812A5A8 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _0812A5AC @ =gUnknown_02039238
+ ldr r3, _0812A5AC @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -4000,7 +4000,7 @@ sub_812A578: @ 812A578
b _0812A5B4
.align 2, 0
_0812A5A8: .4byte 0x020192e4
-_0812A5AC: .4byte gUnknown_02039238
+_0812A5AC: .4byte gAIScriptPtr
_0812A5B0:
adds r0, r2, 0x5
str r0, [r3]
@@ -4016,7 +4016,7 @@ sub_812A5B8: @ 812A5B8
ldr r0, _0812A5E8 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _0812A5EC @ =gUnknown_02039238
+ ldr r3, _0812A5EC @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -4035,7 +4035,7 @@ sub_812A5B8: @ 812A5B8
b _0812A5F4
.align 2, 0
_0812A5E8: .4byte 0x020192e4
-_0812A5EC: .4byte gUnknown_02039238
+_0812A5EC: .4byte gAIScriptPtr
_0812A5F0:
adds r0, r2, 0x5
str r0, [r3]
@@ -4051,7 +4051,7 @@ sub_812A5F8: @ 812A5F8
ldr r0, _0812A628 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _0812A62C @ =gUnknown_02039238
+ ldr r3, _0812A62C @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -4070,7 +4070,7 @@ sub_812A5F8: @ 812A5F8
b _0812A634
.align 2, 0
_0812A628: .4byte 0x020192e4
-_0812A62C: .4byte gUnknown_02039238
+_0812A62C: .4byte gAIScriptPtr
_0812A630:
adds r0, r2, 0x5
str r0, [r3]
@@ -4082,7 +4082,7 @@ _0812A634:
thumb_func_start sub_812A638
sub_812A638: @ 812A638
push {r4,lr}
- ldr r4, _0812A66C @ =gUnknown_02039238
+ ldr r4, _0812A66C @ =gAIScriptPtr
ldr r0, [r4]
ldrb r0, [r0, 0x1]
bl sub_8128A7C
@@ -4107,7 +4107,7 @@ sub_812A638: @ 812A638
pop {r0}
bx r0
.align 2, 0
-_0812A66C: .4byte gUnknown_02039238
+_0812A66C: .4byte gAIScriptPtr
_0812A670: .4byte 0x02019204
thumb_func_end sub_812A638
@@ -4118,7 +4118,7 @@ sub_812A674: @ 812A674
ldr r0, _0812A6A4 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _0812A6A8 @ =gUnknown_02039238
+ ldr r3, _0812A6A8 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -4137,7 +4137,7 @@ sub_812A674: @ 812A674
b _0812A6B0
.align 2, 0
_0812A6A4: .4byte 0x020192e4
-_0812A6A8: .4byte gUnknown_02039238
+_0812A6A8: .4byte gAIScriptPtr
_0812A6AC:
adds r0, r2, 0x5
str r0, [r3]
@@ -4153,7 +4153,7 @@ sub_812A6B4: @ 812A6B4
ldr r0, _0812A6E4 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _0812A6E8 @ =gUnknown_02039238
+ ldr r3, _0812A6E8 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -4172,7 +4172,7 @@ sub_812A6B4: @ 812A6B4
b _0812A6F0
.align 2, 0
_0812A6E4: .4byte 0x020192e4
-_0812A6E8: .4byte gUnknown_02039238
+_0812A6E8: .4byte gAIScriptPtr
_0812A6EC:
adds r0, r2, 0x5
str r0, [r3]
@@ -4188,7 +4188,7 @@ sub_812A6F4: @ 812A6F4
ldr r0, _0812A724 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _0812A728 @ =gUnknown_02039238
+ ldr r3, _0812A728 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -4207,7 +4207,7 @@ sub_812A6F4: @ 812A6F4
b _0812A730
.align 2, 0
_0812A724: .4byte 0x020192e4
-_0812A728: .4byte gUnknown_02039238
+_0812A728: .4byte gAIScriptPtr
_0812A72C:
adds r0, r2, 0x5
str r0, [r3]
@@ -4223,7 +4223,7 @@ sub_812A734: @ 812A734
ldr r0, _0812A764 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _0812A768 @ =gUnknown_02039238
+ ldr r3, _0812A768 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -4242,7 +4242,7 @@ sub_812A734: @ 812A734
b _0812A770
.align 2, 0
_0812A764: .4byte 0x020192e4
-_0812A768: .4byte gUnknown_02039238
+_0812A768: .4byte gAIScriptPtr
_0812A76C:
adds r0, r2, 0x5
str r0, [r3]
@@ -4254,7 +4254,7 @@ _0812A770:
thumb_func_start sub_812A774
sub_812A774: @ 812A774
push {r4,r5,lr}
- ldr r5, _0812A7B4 @ =gUnknown_02039238
+ ldr r5, _0812A7B4 @ =gAIScriptPtr
ldr r0, [r5]
ldrb r0, [r0, 0x1]
bl sub_8128A7C
@@ -4285,7 +4285,7 @@ sub_812A774: @ 812A774
pop {r0}
bx r0
.align 2, 0
-_0812A7B4: .4byte gUnknown_02039238
+_0812A7B4: .4byte gAIScriptPtr
_0812A7B8: .4byte 0x02019204
_0812A7BC: .4byte gContestEffects
_0812A7C0: .4byte gContestMoves
@@ -4298,7 +4298,7 @@ sub_812A7C4: @ 812A7C4
ldr r0, _0812A7F4 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _0812A7F8 @ =gUnknown_02039238
+ ldr r3, _0812A7F8 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -4317,7 +4317,7 @@ sub_812A7C4: @ 812A7C4
b _0812A800
.align 2, 0
_0812A7F4: .4byte 0x020192e4
-_0812A7F8: .4byte gUnknown_02039238
+_0812A7F8: .4byte gAIScriptPtr
_0812A7FC:
adds r0, r2, 0x5
str r0, [r3]
@@ -4333,7 +4333,7 @@ sub_812A804: @ 812A804
ldr r0, _0812A834 @ =0x020192e4
movs r1, 0x18
ldrsh r0, [r0, r1]
- ldr r3, _0812A838 @ =gUnknown_02039238
+ ldr r3, _0812A838 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
cmp r0, r1
@@ -4352,7 +4352,7 @@ sub_812A804: @ 812A804
b _0812A840
.align 2, 0
_0812A834: .4byte 0x020192e4
-_0812A838: .4byte gUnknown_02039238
+_0812A838: .4byte gAIScriptPtr
_0812A83C:
adds r0, r2, 0x5
str r0, [r3]
@@ -4365,7 +4365,7 @@ _0812A840:
sub_812A844: @ 812A844
push {r4,lr}
ldr r3, _0812A864 @ =0x020192e4
- ldr r4, _0812A868 @ =gUnknown_02039238
+ ldr r4, _0812A868 @ =gAIScriptPtr
ldr r2, [r4]
ldrb r0, [r2, 0x1]
lsls r0, 1
@@ -4381,14 +4381,14 @@ sub_812A844: @ 812A844
bx r0
.align 2, 0
_0812A864: .4byte 0x020192e4
-_0812A868: .4byte gUnknown_02039238
+_0812A868: .4byte gAIScriptPtr
thumb_func_end sub_812A844
thumb_func_start sub_812A86C
sub_812A86C: @ 812A86C
push {r4,lr}
ldr r0, _0812A890 @ =0x020192e4
- ldr r4, _0812A894 @ =gUnknown_02039238
+ ldr r4, _0812A894 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r2, [r3, 0x1]
lsls r2, 1
@@ -4406,14 +4406,14 @@ sub_812A86C: @ 812A86C
bx r0
.align 2, 0
_0812A890: .4byte 0x020192e4
-_0812A894: .4byte gUnknown_02039238
+_0812A894: .4byte gAIScriptPtr
thumb_func_end sub_812A86C
thumb_func_start sub_812A898
sub_812A898: @ 812A898
push {r4,lr}
ldr r0, _0812A8C4 @ =0x020192e4
- ldr r4, _0812A8C8 @ =gUnknown_02039238
+ ldr r4, _0812A8C8 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r2, [r3, 0x1]
lsls r2, 1
@@ -4434,14 +4434,14 @@ sub_812A898: @ 812A898
bx r0
.align 2, 0
_0812A8C4: .4byte 0x020192e4
-_0812A8C8: .4byte gUnknown_02039238
+_0812A8C8: .4byte gAIScriptPtr
thumb_func_end sub_812A898
thumb_func_start sub_812A8CC
sub_812A8CC: @ 812A8CC
push {r4,lr}
ldr r2, _0812A8F4 @ =0x020192e4
- ldr r4, _0812A8F8 @ =gUnknown_02039238
+ ldr r4, _0812A8F8 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3, 0x1]
lsls r1, 1
@@ -4461,14 +4461,14 @@ sub_812A8CC: @ 812A8CC
bx r0
.align 2, 0
_0812A8F4: .4byte 0x020192e4
-_0812A8F8: .4byte gUnknown_02039238
+_0812A8F8: .4byte gAIScriptPtr
thumb_func_end sub_812A8CC
thumb_func_start sub_812A8FC
sub_812A8FC: @ 812A8FC
push {r4,lr}
ldr r2, _0812A924 @ =0x020192e4
- ldr r4, _0812A928 @ =gUnknown_02039238
+ ldr r4, _0812A928 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3, 0x1]
lsls r1, 1
@@ -4488,14 +4488,14 @@ sub_812A8FC: @ 812A8FC
bx r0
.align 2, 0
_0812A924: .4byte 0x020192e4
-_0812A928: .4byte gUnknown_02039238
+_0812A928: .4byte gAIScriptPtr
thumb_func_end sub_812A8FC
thumb_func_start sub_812A92C
sub_812A92C: @ 812A92C
push {r4,lr}
ldr r1, _0812A964 @ =0x020192e4
- ldr r4, _0812A968 @ =gUnknown_02039238
+ ldr r4, _0812A968 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r0, [r3, 0x1]
lsls r0, 1
@@ -4523,7 +4523,7 @@ sub_812A92C: @ 812A92C
b _0812A972
.align 2, 0
_0812A964: .4byte 0x020192e4
-_0812A968: .4byte gUnknown_02039238
+_0812A968: .4byte gAIScriptPtr
_0812A96C:
adds r0, r3, 0
adds r0, 0x8
@@ -4538,7 +4538,7 @@ _0812A972:
sub_812A978: @ 812A978
push {r4,lr}
ldr r1, _0812A9B0 @ =0x020192e4
- ldr r4, _0812A9B4 @ =gUnknown_02039238
+ ldr r4, _0812A9B4 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r0, [r3, 0x1]
lsls r0, 1
@@ -4566,7 +4566,7 @@ sub_812A978: @ 812A978
b _0812A9BE
.align 2, 0
_0812A9B0: .4byte 0x020192e4
-_0812A9B4: .4byte gUnknown_02039238
+_0812A9B4: .4byte gAIScriptPtr
_0812A9B8:
adds r0, r3, 0
adds r0, 0x8
@@ -4581,7 +4581,7 @@ _0812A9BE:
sub_812A9C4: @ 812A9C4
push {r4,lr}
ldr r1, _0812A9FC @ =0x020192e4
- ldr r4, _0812AA00 @ =gUnknown_02039238
+ ldr r4, _0812AA00 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r0, [r3, 0x1]
lsls r0, 1
@@ -4609,7 +4609,7 @@ sub_812A9C4: @ 812A9C4
b _0812AA0A
.align 2, 0
_0812A9FC: .4byte 0x020192e4
-_0812AA00: .4byte gUnknown_02039238
+_0812AA00: .4byte gAIScriptPtr
_0812AA04:
adds r0, r3, 0
adds r0, 0x8
@@ -4624,7 +4624,7 @@ _0812AA0A:
sub_812AA10: @ 812AA10
push {r4,lr}
ldr r1, _0812AA48 @ =0x020192e4
- ldr r4, _0812AA4C @ =gUnknown_02039238
+ ldr r4, _0812AA4C @ =gAIScriptPtr
ldr r3, [r4]
ldrb r0, [r3, 0x1]
lsls r0, 1
@@ -4652,7 +4652,7 @@ sub_812AA10: @ 812AA10
b _0812AA56
.align 2, 0
_0812AA48: .4byte 0x020192e4
-_0812AA4C: .4byte gUnknown_02039238
+_0812AA4C: .4byte gAIScriptPtr
_0812AA50:
adds r0, r3, 0
adds r0, 0x8
@@ -4667,7 +4667,7 @@ _0812AA56:
sub_812AA5C: @ 812AA5C
push {r4,lr}
ldr r2, _0812AA98 @ =0x020192e4
- ldr r4, _0812AA9C @ =gUnknown_02039238
+ ldr r4, _0812AA9C @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3, 0x1]
lsls r1, 1
@@ -4696,7 +4696,7 @@ sub_812AA5C: @ 812AA5C
b _0812AAA4
.align 2, 0
_0812AA98: .4byte 0x020192e4
-_0812AA9C: .4byte gUnknown_02039238
+_0812AA9C: .4byte gAIScriptPtr
_0812AAA0:
adds r0, r3, 0x7
str r0, [r4]
@@ -4710,7 +4710,7 @@ _0812AAA4:
sub_812AAAC: @ 812AAAC
push {r4,lr}
ldr r2, _0812AAE8 @ =0x020192e4
- ldr r4, _0812AAEC @ =gUnknown_02039238
+ ldr r4, _0812AAEC @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3, 0x1]
lsls r1, 1
@@ -4739,7 +4739,7 @@ sub_812AAAC: @ 812AAAC
b _0812AAF4
.align 2, 0
_0812AAE8: .4byte 0x020192e4
-_0812AAEC: .4byte gUnknown_02039238
+_0812AAEC: .4byte gAIScriptPtr
_0812AAF0:
adds r0, r3, 0x7
str r0, [r4]
@@ -4753,7 +4753,7 @@ _0812AAF4:
sub_812AAFC: @ 812AAFC
push {r4,lr}
ldr r2, _0812AB38 @ =0x020192e4
- ldr r4, _0812AB3C @ =gUnknown_02039238
+ ldr r4, _0812AB3C @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3, 0x1]
lsls r1, 1
@@ -4782,7 +4782,7 @@ sub_812AAFC: @ 812AAFC
b _0812AB44
.align 2, 0
_0812AB38: .4byte 0x020192e4
-_0812AB3C: .4byte gUnknown_02039238
+_0812AB3C: .4byte gAIScriptPtr
_0812AB40:
adds r0, r3, 0x7
str r0, [r4]
@@ -4796,7 +4796,7 @@ _0812AB44:
sub_812AB4C: @ 812AB4C
push {r4,lr}
ldr r2, _0812AB88 @ =0x020192e4
- ldr r4, _0812AB8C @ =gUnknown_02039238
+ ldr r4, _0812AB8C @ =gAIScriptPtr
ldr r3, [r4]
ldrb r1, [r3, 0x1]
lsls r1, 1
@@ -4825,7 +4825,7 @@ sub_812AB4C: @ 812AB4C
b _0812AB94
.align 2, 0
_0812AB88: .4byte 0x020192e4
-_0812AB8C: .4byte gUnknown_02039238
+_0812AB8C: .4byte gAIScriptPtr
_0812AB90:
adds r0, r3, 0x7
str r0, [r4]
@@ -4842,7 +4842,7 @@ sub_812AB9C: @ 812AB9C
movs r2, 0xFF
ands r2, r0
ldr r1, _0812ABD4 @ =0x020192e4
- ldr r4, _0812ABD8 @ =gUnknown_02039238
+ ldr r4, _0812ABD8 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r0, [r3, 0x1]
lsls r0, 1
@@ -4866,7 +4866,7 @@ sub_812AB9C: @ 812AB9C
b _0812ABE0
.align 2, 0
_0812ABD4: .4byte 0x020192e4
-_0812ABD8: .4byte gUnknown_02039238
+_0812ABD8: .4byte gAIScriptPtr
_0812ABDC:
adds r0, r3, 0x6
str r0, [r4]
@@ -4883,7 +4883,7 @@ sub_812ABE8: @ 812ABE8
movs r2, 0xFF
ands r2, r0
ldr r1, _0812AC20 @ =0x020192e4
- ldr r4, _0812AC24 @ =gUnknown_02039238
+ ldr r4, _0812AC24 @ =gAIScriptPtr
ldr r3, [r4]
ldrb r0, [r3, 0x1]
lsls r0, 1
@@ -4907,7 +4907,7 @@ sub_812ABE8: @ 812ABE8
b _0812AC2C
.align 2, 0
_0812AC20: .4byte 0x020192e4
-_0812AC24: .4byte gUnknown_02039238
+_0812AC24: .4byte gAIScriptPtr
_0812AC28:
adds r0, r3, 0x6
str r0, [r4]
@@ -4919,7 +4919,7 @@ _0812AC2C:
thumb_func_start sub_812AC34
sub_812AC34: @ 812AC34
- ldr r3, _0812AC50 @ =gUnknown_02039238
+ ldr r3, _0812AC50 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2, 0x1]
ldrb r0, [r2, 0x2]
@@ -4934,13 +4934,13 @@ sub_812AC34: @ 812AC34
str r1, [r3]
bx lr
.align 2, 0
-_0812AC50: .4byte gUnknown_02039238
+_0812AC50: .4byte gAIScriptPtr
thumb_func_end sub_812AC34
thumb_func_start sub_812AC54
sub_812AC54: @ 812AC54
push {r4,lr}
- ldr r4, _0812AC80 @ =gUnknown_02039238
+ ldr r4, _0812AC80 @ =gAIScriptPtr
ldr r0, [r4]
adds r0, 0x5
bl sub_812ACA4
@@ -4960,7 +4960,7 @@ sub_812AC54: @ 812AC54
pop {r0}
bx r0
.align 2, 0
-_0812AC80: .4byte gUnknown_02039238
+_0812AC80: .4byte gAIScriptPtr
thumb_func_end sub_812AC54
thumb_func_start sub_812AC84
@@ -5019,7 +5019,7 @@ _0812ACDC: .4byte 0x020192e4
_0812ACE0:
subs r0, 0x1
strb r0, [r3]
- ldr r2, _0812ACF8 @ =gUnknown_02039238
+ ldr r2, _0812ACF8 @ =gAIScriptPtr
ldrb r0, [r3]
lsls r0, 2
adds r1, 0x20
@@ -5031,7 +5031,7 @@ _0812ACF4:
pop {r1}
bx r1
.align 2, 0
-_0812ACF8: .4byte gUnknown_02039238
+_0812ACF8: .4byte gAIScriptPtr
thumb_func_end sub_812ACC8
thumb_func_start contest_ai_check_for_exciting_move
@@ -5067,7 +5067,7 @@ _0812AD30:
_0812AD36:
ldr r0, _0812AD48 @ =0x020192e4
strh r5, [r0, 0x18]
- ldr r1, _0812AD4C @ =gUnknown_02039238
+ ldr r1, _0812AD4C @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
@@ -5076,7 +5076,7 @@ _0812AD36:
bx r0
.align 2, 0
_0812AD48: .4byte 0x020192e4
-_0812AD4C: .4byte gUnknown_02039238
+_0812AD4C: .4byte gAIScriptPtr
thumb_func_end contest_ai_check_for_exciting_move
thumb_func_start sub_812AD50
@@ -5088,7 +5088,7 @@ sub_812AD50: @ 812AD50
ldrsh r0, [r0, r1]
cmp r0, 0
beq _0812AD84
- ldr r3, _0812AD80 @ =gUnknown_02039238
+ ldr r3, _0812AD80 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -5104,9 +5104,9 @@ sub_812AD50: @ 812AD50
b _0812AD8C
.align 2, 0
_0812AD7C: .4byte 0x020192e4
-_0812AD80: .4byte gUnknown_02039238
+_0812AD80: .4byte gAIScriptPtr
_0812AD84:
- ldr r1, _0812AD90 @ =gUnknown_02039238
+ ldr r1, _0812AD90 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -5114,7 +5114,7 @@ _0812AD8C:
pop {r0}
bx r0
.align 2, 0
-_0812AD90: .4byte gUnknown_02039238
+_0812AD90: .4byte gAIScriptPtr
thumb_func_end sub_812AD50
thumb_func_start sub_812AD94
@@ -5126,7 +5126,7 @@ sub_812AD94: @ 812AD94
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0812ADC8
- ldr r3, _0812ADC4 @ =gUnknown_02039238
+ ldr r3, _0812ADC4 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -5142,9 +5142,9 @@ sub_812AD94: @ 812AD94
b _0812ADD0
.align 2, 0
_0812ADC0: .4byte 0x020192e4
-_0812ADC4: .4byte gUnknown_02039238
+_0812ADC4: .4byte gAIScriptPtr
_0812ADC8:
- ldr r1, _0812ADD4 @ =gUnknown_02039238
+ ldr r1, _0812ADD4 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -5152,14 +5152,14 @@ _0812ADD0:
pop {r0}
bx r0
.align 2, 0
-_0812ADD4: .4byte gUnknown_02039238
+_0812ADD4: .4byte gAIScriptPtr
thumb_func_end sub_812AD94
thumb_func_start sub_812ADD8
sub_812ADD8: @ 812ADD8
push {r4-r7,lr}
movs r6, 0
- ldr r2, _0812AE08 @ =gUnknown_02039238
+ ldr r2, _0812AE08 @ =gAIScriptPtr
ldr r0, [r2]
ldrb r4, [r0, 0x1]
ldrb r0, [r0, 0x2]
@@ -5182,7 +5182,7 @@ sub_812ADD8: @ 812ADD8
mov r12, r5
b _0812AE2E
.align 2, 0
-_0812AE08: .4byte gUnknown_02039238
+_0812AE08: .4byte gAIScriptPtr
_0812AE0C: .4byte gUnknown_02038570
_0812AE10: .4byte 0x020192e4
_0812AE14:
@@ -5223,7 +5223,7 @@ sub_812AE44: @ 812AE44
ldrsh r0, [r0, r1]
cmp r0, 0
beq _0812AE78
- ldr r3, _0812AE74 @ =gUnknown_02039238
+ ldr r3, _0812AE74 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -5239,9 +5239,9 @@ sub_812AE44: @ 812AE44
b _0812AE80
.align 2, 0
_0812AE70: .4byte 0x020192e4
-_0812AE74: .4byte gUnknown_02039238
+_0812AE74: .4byte gAIScriptPtr
_0812AE78:
- ldr r1, _0812AE84 @ =gUnknown_02039238
+ ldr r1, _0812AE84 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -5249,7 +5249,7 @@ _0812AE80:
pop {r0}
bx r0
.align 2, 0
-_0812AE84: .4byte gUnknown_02039238
+_0812AE84: .4byte gAIScriptPtr
thumb_func_end sub_812AE44
thumb_func_start sub_812AE88
@@ -5261,7 +5261,7 @@ sub_812AE88: @ 812AE88
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0812AEBC
- ldr r3, _0812AEB8 @ =gUnknown_02039238
+ ldr r3, _0812AEB8 @ =gAIScriptPtr
ldr r2, [r3]
ldrb r1, [r2]
ldrb r0, [r2, 0x1]
@@ -5277,9 +5277,9 @@ sub_812AE88: @ 812AE88
b _0812AEC4
.align 2, 0
_0812AEB4: .4byte 0x020192e4
-_0812AEB8: .4byte gUnknown_02039238
+_0812AEB8: .4byte gAIScriptPtr
_0812AEBC:
- ldr r1, _0812AEC8 @ =gUnknown_02039238
+ ldr r1, _0812AEC8 @ =gAIScriptPtr
ldr r0, [r1]
adds r0, 0x4
str r0, [r1]
@@ -5287,7 +5287,7 @@ _0812AEC4:
pop {r0}
bx r0
.align 2, 0
-_0812AEC8: .4byte gUnknown_02039238
+_0812AEC8: .4byte gAIScriptPtr
thumb_func_end sub_812AE88
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/contest_effect.s b/asm/contest_effect.s
index 028b56c0e..4ae5c7e41 100644
--- a/asm/contest_effect.s
+++ b/asm/contest_effect.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -2413,7 +2413,7 @@ ContestEffect_44: @ 80B8EBC
adds r0, r3
ldrb r0, [r0, 0x1]
lsls r0, 29
- ldr r1, _080B8EF8 @ =gUnknown_0203869C
+ ldr r1, _080B8EF8 @ =gScriptContestCategory
lsrs r0, 29
ldrh r1, [r1]
cmp r0, r1
@@ -2428,7 +2428,7 @@ _080B8EEA:
.align 2, 0
_080B8EF0: .4byte gContestMoves
_080B8EF4: .4byte 0x020192d0
-_080B8EF8: .4byte gUnknown_0203869C
+_080B8EF8: .4byte gScriptContestCategory
thumb_func_end ContestEffect_44
thumb_func_start ContestEffect_45
diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s
index 390902a18..d4b9a7c0f 100644
--- a/asm/contest_link_80C2020.s
+++ b/asm/contest_link_80C2020.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -1714,7 +1714,7 @@ sub_80C2E14: @ 80C2E14
bl sub_80BE284
movs r0, 0x2
bl sub_810FB10
- ldr r0, _080C2E88 @ =gUnknown_0203869E
+ ldr r0, _080C2E88 @ =gScriptContestRank
ldrb r0, [r0]
bl sub_80B2A7C
movs r0, 0xFE
@@ -1751,7 +1751,7 @@ sub_80C2E14: @ 80C2E14
.align 2, 0
_080C2E80: .4byte gUnknown_02038690
_080C2E84: .4byte gUnknown_02038695
-_080C2E88: .4byte gUnknown_0203869E
+_080C2E88: .4byte gScriptContestRank
_080C2E8C: .4byte 0x02000000
_080C2E90: .4byte 0x00015ddf
_080C2E94: .4byte 0x00015dde
@@ -2972,7 +2972,7 @@ _080C3808: .4byte gUnknown_0203869A
_080C380C: .4byte 0x0600e000
_080C3810: .4byte gUnknown_08E964B8
_080C3814:
- ldr r0, _080C3830 @ =gUnknown_0203869E
+ ldr r0, _080C3830 @ =gScriptContestRank
ldrh r2, [r0]
cmp r2, 0
bne _080C383C
@@ -2987,7 +2987,7 @@ _080C3814:
str r1, [sp, 0xC]
b _080C3870
.align 2, 0
-_080C3830: .4byte gUnknown_0203869E
+_080C3830: .4byte gScriptContestRank
_080C3834: .4byte 0x0600e000
_080C3838: .4byte gUnknown_08E964B8
_080C383C:
@@ -3041,7 +3041,7 @@ _080C3884:
bl sub_809D104
_080C389E:
adds r4, 0xD
- ldr r0, _080C38C8 @ =gUnknown_0203869C
+ ldr r0, _080C38C8 @ =gScriptContestCategory
ldrh r0, [r0]
cmp r0, 0
bne _080C38CC
@@ -3059,7 +3059,7 @@ _080C389E:
.align 2, 0
_080C38C0: .4byte 0x0600e000
_080C38C4: .4byte gUnknown_08E964B8
-_080C38C8: .4byte gUnknown_0203869C
+_080C38C8: .4byte gScriptContestCategory
_080C38CC:
cmp r0, 0x1
bne _080C38EC
@@ -4546,9 +4546,9 @@ sub_80C43F4: @ 80C43F4
adds r5, r0, 0
cmp r5, 0
beq _080C4422
- ldr r4, _080C4434 @ =gUnknown_0203869C
+ ldr r4, _080C4434 @ =gScriptContestCategory
ldrb r0, [r4]
- ldr r1, _080C4438 @ =gUnknown_0203869E
+ ldr r1, _080C4438 @ =gScriptContestRank
ldrb r1, [r1]
bl sub_80AE398
ldrb r0, [r4]
@@ -4562,8 +4562,8 @@ _080C4422:
.align 2, 0
_080C442C: .4byte gUnknown_02038694
_080C4430: .4byte gPlayerParty
-_080C4434: .4byte gUnknown_0203869C
-_080C4438: .4byte gUnknown_0203869E
+_080C4434: .4byte gScriptContestCategory
+_080C4438: .4byte gScriptContestRank
_080C443C: .4byte gScriptResult
thumb_func_end sub_80C43F4
@@ -4577,7 +4577,7 @@ sub_80C4440: @ 80C4440
muls r1, r0
ldr r0, _080C4468 @ =gPlayerParty
adds r2, r1, r0
- ldr r0, _080C446C @ =gUnknown_0203869C
+ ldr r0, _080C446C @ =gScriptContestCategory
ldrh r0, [r0]
cmp r0, 0x4
bhi _080C44B2
@@ -4589,7 +4589,7 @@ sub_80C4440: @ 80C4440
.align 2, 0
_080C4464: .4byte gUnknown_02038694
_080C4468: .4byte gPlayerParty
-_080C446C: .4byte gUnknown_0203869C
+_080C446C: .4byte gScriptContestCategory
_080C4470: .4byte _080C4474
.align 2, 0
_080C4474:
@@ -4619,7 +4619,7 @@ _080C44A0:
movs r1, 0x36
_080C44A4:
bl GetMonData
- ldr r1, _080C44BC @ =gUnknown_0203869E
+ ldr r1, _080C44BC @ =gScriptContestRank
ldrh r1, [r1]
cmp r0, r1
bls _080C44B2
@@ -4630,7 +4630,7 @@ _080C44B2:
pop {r1}
bx r1
.align 2, 0
-_080C44BC: .4byte gUnknown_0203869E
+_080C44BC: .4byte gScriptContestRank
thumb_func_end sub_80C4440
thumb_func_start sub_80C44C0
@@ -4646,7 +4646,7 @@ sub_80C44C0: @ 80C44C0
beq _080C44D4
b _080C465E
_080C44D4:
- ldr r0, _080C44F0 @ =gUnknown_0203869C
+ ldr r0, _080C44F0 @ =gScriptContestCategory
ldrh r0, [r0]
cmp r0, 0x4
bls _080C44DE
@@ -4660,7 +4660,7 @@ _080C44DE:
.align 2, 0
_080C44E8: .4byte gUnknown_02038690
_080C44EC: .4byte gUnknown_02038695
-_080C44F0: .4byte gUnknown_0203869C
+_080C44F0: .4byte gScriptContestCategory
_080C44F4: .4byte _080C44F8
.align 2, 0
_080C44F8:
@@ -4682,7 +4682,7 @@ _080C450C:
lsrs r1, r0, 24
mov r0, sp
strb r1, [r0]
- ldr r0, _080C4550 @ =gUnknown_0203869E
+ ldr r0, _080C4550 @ =gScriptContestRank
ldrh r0, [r0]
cmp r1, r0
bls _080C4530
@@ -4704,7 +4704,7 @@ _080C4538:
.align 2, 0
_080C4548: .4byte gUnknown_02038694
_080C454C: .4byte gPlayerParty
-_080C4550: .4byte gUnknown_0203869E
+_080C4550: .4byte gScriptContestRank
_080C4554:
mov r4, sp
ldr r7, _080C458C @ =gUnknown_02038694
@@ -4718,7 +4718,7 @@ _080C4554:
strb r0, [r4]
mov r0, sp
ldrb r2, [r0]
- ldr r0, _080C4594 @ =gUnknown_0203869E
+ ldr r0, _080C4594 @ =gScriptContestRank
ldrh r0, [r0]
cmp r2, r0
bhi _080C465E
@@ -4735,7 +4735,7 @@ _080C4554:
.align 2, 0
_080C458C: .4byte gUnknown_02038694
_080C4590: .4byte gPlayerParty
-_080C4594: .4byte gUnknown_0203869E
+_080C4594: .4byte gScriptContestRank
_080C4598:
mov r4, sp
ldr r7, _080C45D0 @ =gUnknown_02038694
@@ -4749,7 +4749,7 @@ _080C4598:
strb r0, [r4]
mov r0, sp
ldrb r2, [r0]
- ldr r0, _080C45D8 @ =gUnknown_0203869E
+ ldr r0, _080C45D8 @ =gScriptContestRank
ldrh r0, [r0]
cmp r2, r0
bhi _080C465E
@@ -4766,7 +4766,7 @@ _080C4598:
.align 2, 0
_080C45D0: .4byte gUnknown_02038694
_080C45D4: .4byte gPlayerParty
-_080C45D8: .4byte gUnknown_0203869E
+_080C45D8: .4byte gScriptContestRank
_080C45DC:
mov r4, sp
ldr r7, _080C4618 @ =gUnknown_02038694
@@ -4780,7 +4780,7 @@ _080C45DC:
strb r0, [r4]
mov r0, sp
ldrb r2, [r0]
- ldr r0, _080C4620 @ =gUnknown_0203869E
+ ldr r0, _080C4620 @ =gScriptContestRank
ldrh r0, [r0]
cmp r2, r0
bhi _080C465E
@@ -4800,7 +4800,7 @@ _080C4610:
.align 2, 0
_080C4618: .4byte gUnknown_02038694
_080C461C: .4byte gPlayerParty
-_080C4620: .4byte gUnknown_0203869E
+_080C4620: .4byte gScriptContestRank
_080C4624:
mov r4, sp
ldr r7, _080C4668 @ =gUnknown_02038694
@@ -4814,7 +4814,7 @@ _080C4624:
strb r0, [r4]
mov r0, sp
ldrb r2, [r0]
- ldr r0, _080C4670 @ =gUnknown_0203869E
+ ldr r0, _080C4670 @ =gScriptContestRank
ldrh r0, [r0]
cmp r2, r0
bhi _080C465E
@@ -4837,7 +4837,7 @@ _080C465E:
.align 2, 0
_080C4668: .4byte gUnknown_02038694
_080C466C: .4byte gPlayerParty
-_080C4670: .4byte gUnknown_0203869E
+_080C4670: .4byte gScriptContestRank
thumb_func_end sub_80C44C0
thumb_func_start sub_80C4674
@@ -4912,7 +4912,7 @@ sub_80C46EC: @ 80C46EC
cmp r0, 0
beq _080C4720
ldr r0, _080C4714 @ =gStringVar1
- ldr r1, _080C4718 @ =gUnknown_0202E8D0
+ ldr r1, _080C4718 @ =gSpecialVar_0x8006
ldrh r2, [r1]
lsls r1, r2, 3
subs r1, r2
@@ -4924,11 +4924,11 @@ sub_80C46EC: @ 80C46EC
.align 2, 0
_080C4710: .4byte gUnknown_0203869A
_080C4714: .4byte gStringVar1
-_080C4718: .4byte gUnknown_0202E8D0
+_080C4718: .4byte gSpecialVar_0x8006
_080C471C: .4byte gLinkPlayers + 0x8
_080C4720:
ldr r0, _080C4734 @ =gStringVar1
- ldr r1, _080C4738 @ =gUnknown_0202E8D0
+ ldr r1, _080C4738 @ =gSpecialVar_0x8006
ldrh r1, [r1]
lsls r1, 6
ldr r2, _080C473C @ =gUnknown_0203857D
@@ -4939,7 +4939,7 @@ _080C4730:
bx r0
.align 2, 0
_080C4734: .4byte gStringVar1
-_080C4738: .4byte gUnknown_0202E8D0
+_080C4738: .4byte gSpecialVar_0x8006
_080C473C: .4byte gUnknown_0203857D
thumb_func_end sub_80C46EC
@@ -4947,14 +4947,14 @@ _080C473C: .4byte gUnknown_0203857D
sub_80C4740: @ 80C4740
push {lr}
ldr r0, _080C4750 @ =gStringVar3
- ldr r1, _080C4754 @ =gUnknown_0202E8D0
+ ldr r1, _080C4754 @ =gSpecialVar_0x8006
ldrb r1, [r1]
bl sub_80C4698
pop {r0}
bx r0
.align 2, 0
_080C4750: .4byte gStringVar3
-_080C4754: .4byte gUnknown_0202E8D0
+_080C4754: .4byte gSpecialVar_0x8006
thumb_func_end sub_80C4740
thumb_func_start sub_80C4758
@@ -4962,9 +4962,9 @@ sub_80C4758: @ 80C4758
push {r4-r6,lr}
movs r1, 0
movs r2, 0
- ldr r5, _080C4794 @ =gUnknown_0202E8CC
+ ldr r5, _080C4794 @ =gSpecialVar_0x8004
ldr r4, _080C4798 @ =gUnknown_02038670
- ldr r0, _080C479C @ =gUnknown_0202E8D0
+ ldr r0, _080C479C @ =gSpecialVar_0x8006
ldrh r0, [r0]
lsls r0, 1
adds r0, r4
@@ -4991,16 +4991,16 @@ _080C4780:
pop {r0}
bx r0
.align 2, 0
-_080C4794: .4byte gUnknown_0202E8CC
+_080C4794: .4byte gSpecialVar_0x8004
_080C4798: .4byte gUnknown_02038670
-_080C479C: .4byte gUnknown_0202E8D0
+_080C479C: .4byte gSpecialVar_0x8006
thumb_func_end sub_80C4758
thumb_func_start sub_80C47A0
sub_80C47A0: @ 80C47A0
- ldr r2, _080C47B4 @ =gUnknown_0202E8CC
+ ldr r2, _080C47B4 @ =gSpecialVar_0x8004
ldr r1, _080C47B8 @ =gUnknown_02038670
- ldr r0, _080C47BC @ =gUnknown_0202E8D0
+ ldr r0, _080C47BC @ =gSpecialVar_0x8006
ldrh r0, [r0]
lsls r0, 1
adds r0, r1
@@ -5008,9 +5008,9 @@ sub_80C47A0: @ 80C47A0
strh r0, [r2]
bx lr
.align 2, 0
-_080C47B4: .4byte gUnknown_0202E8CC
+_080C47B4: .4byte gSpecialVar_0x8004
_080C47B8: .4byte gUnknown_02038670
-_080C47BC: .4byte gUnknown_0202E8D0
+_080C47BC: .4byte gSpecialVar_0x8006
thumb_func_end sub_80C47A0
thumb_func_start sub_80C47C0
@@ -5019,7 +5019,7 @@ sub_80C47C0: @ 80C47C0
movs r1, 0
ldr r2, _080C47E8 @ =gUnknown_02038690
ldrb r0, [r2]
- ldr r3, _080C47EC @ =gUnknown_0202E8CE
+ ldr r3, _080C47EC @ =gSpecialVar_0x8005
cmp r0, 0
beq _080C47E0
_080C47CE:
@@ -5038,7 +5038,7 @@ _080C47E0:
bx r0
.align 2, 0
_080C47E8: .4byte gUnknown_02038690
-_080C47EC: .4byte gUnknown_0202E8CE
+_080C47EC: .4byte gSpecialVar_0x8005
thumb_func_end sub_80C47C0
thumb_func_start sub_80C47F0
@@ -5181,9 +5181,9 @@ _080C48F0: .4byte sub_80C489C
thumb_func_start sub_80C48F4
sub_80C48F4: @ 80C48F4
- ldr r2, _080C4908 @ =gUnknown_0202E8CC
+ ldr r2, _080C4908 @ =gSpecialVar_0x8004
ldr r1, _080C490C @ =gUnknown_02038570
- ldr r0, _080C4910 @ =gUnknown_0202E8D0
+ ldr r0, _080C4910 @ =gSpecialVar_0x8006
ldrh r0, [r0]
lsls r0, 6
adds r0, r1
@@ -5191,9 +5191,9 @@ sub_80C48F4: @ 80C48F4
strh r0, [r2]
bx lr
.align 2, 0
-_080C4908: .4byte gUnknown_0202E8CC
+_080C4908: .4byte gSpecialVar_0x8004
_080C490C: .4byte gUnknown_02038570
-_080C4910: .4byte gUnknown_0202E8D0
+_080C4910: .4byte gSpecialVar_0x8006
thumb_func_end sub_80C48F4
thumb_func_start sub_80C4914
@@ -5243,13 +5243,13 @@ _080C4968: .4byte sub_80C4914
thumb_func_start sub_80C496C
sub_80C496C: @ 80C496C
- ldr r0, _080C4978 @ =gUnknown_0202E8CC
+ ldr r0, _080C4978 @ =gSpecialVar_0x8004
ldr r1, _080C497C @ =gUnknown_02038695
ldrb r1, [r1]
strh r1, [r0]
bx lr
.align 2, 0
-_080C4978: .4byte gUnknown_0202E8CC
+_080C4978: .4byte gSpecialVar_0x8004
_080C497C: .4byte gUnknown_02038695
thumb_func_end sub_80C496C
@@ -5362,7 +5362,7 @@ sub_80C4A44: @ 80C4A44
lsls r0, 24
lsrs r5, r0, 24
movs r3, 0
- ldr r0, _080C4AA0 @ =gUnknown_0202E8CC
+ ldr r0, _080C4AA0 @ =gSpecialVar_0x8004
mov r8, r0
add r1, sp, 0x4
mov r12, r1
@@ -5404,7 +5404,7 @@ _080C4A96:
movs r0, 0
b _080C4AAA
.align 2, 0
-_080C4AA0: .4byte gUnknown_0202E8CC
+_080C4AA0: .4byte gSpecialVar_0x8004
_080C4AA4: .4byte gTasks + 0x8
_080C4AA8:
movs r0, 0x1
@@ -5433,7 +5433,7 @@ _080C4AB8:
bl sub_80C4B34
ldr r1, _080C4AFC @ =gUnknown_0203869B
strb r0, [r1]
- ldr r0, _080C4B00 @ =gUnknown_0203869C
+ ldr r0, _080C4B00 @ =gScriptContestCategory
ldrb r0, [r0]
bl sub_80AE82C
ldr r1, _080C4B04 @ =sub_80C8EBC
@@ -5449,7 +5449,7 @@ _080C4AB8:
.align 2, 0
_080C4AF8: .4byte gTasks + 0x8
_080C4AFC: .4byte gUnknown_0203869B
-_080C4B00: .4byte gUnknown_0203869C
+_080C4B00: .4byte gScriptContestCategory
_080C4B04: .4byte sub_80C8EBC
_080C4B08: .4byte sub_80C4B0C
thumb_func_end sub_80C4A44
@@ -5504,7 +5504,7 @@ sub_80C4B5C: @ 80C4B5C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080C4B84 @ =gUnknown_0202E8CC
+ ldr r0, _080C4B84 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0x1
bne _080C4B90
@@ -5521,7 +5521,7 @@ sub_80C4B5C: @ 80C4B5C
str r0, [r1]
b _080C4B9E
.align 2, 0
-_080C4B84: .4byte gUnknown_0202E8CC
+_080C4B84: .4byte gSpecialVar_0x8004
_080C4B88: .4byte gTasks
_080C4B8C: .4byte sub_80C4BA4
_080C4B90:
diff --git a/asm/contest_link_80C857C.s b/asm/contest_link_80C857C.s
index 7a848f817..b44220769 100644
--- a/asm/contest_link_80C857C.s
+++ b/asm/contest_link_80C857C.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -39,7 +39,7 @@ sub_80C85AC: @ 80C85AC
lsls r1, 17
lsls r1, r0
lsrs r4, r1, 24
- bl GetBlockRecievedStatus
+ bl GetBlockReceivedStatus
adds r1, r4, 0
ands r1, r0
cmp r1, 0
@@ -61,7 +61,7 @@ sub_80C85D8: @ 80C85D8
push {r4,lr}
movs r4, 0
_080C85DC:
- bl GetBlockRecievedStatus
+ bl GetBlockReceivedStatus
lsls r0, 24
lsrs r0, 24
asrs r0, r4
diff --git a/asm/contest_painting.s b/asm/contest_painting.s
index 11f1ce69d..91ee2d547 100644
--- a/asm/contest_painting.s
+++ b/asm/contest_painting.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -194,7 +194,7 @@ _0810678C:
ldr r0, [r0, 0x8]
movs r0, 0x2
bl BeginFastPaletteFade
- ldr r0, _081067FC @ =sub_8106AAC
+ ldr r0, _081067FC @ =VBlankCB_ContestPainting
bl SetVBlankCallback
ldr r0, _08106800 @ =gUnknown_03000750
strb r4, [r0]
@@ -204,7 +204,7 @@ _0810678C:
lsls r2, 5
adds r0, r2, 0
strh r0, [r1]
- ldr r0, _08106804 @ =sub_8106808
+ ldr r0, _08106804 @ =CB2_HoldContestPainting
bl SetMainCallback2
_081067E0:
add sp, 0x4
@@ -324,7 +324,7 @@ _081068C0:
ands r0, r1
cmp r0, 0
bne _081068D2
- ldr r0, _081068F0 @ =sub_8106818
+ ldr r0, _081068F0 @ =CB2_QuitContestPainting
bl SetMainCallback2
_081068D2:
ldr r0, _081068F4 @ =gUnknown_03000756
diff --git a/asm/crt0.s b/asm/crt0.s
index f2c60b4e3..7a492ff17 100644
--- a/asm/crt0.s
+++ b/asm/crt0.s
@@ -1,4 +1,4 @@
- .include "constants/gba_constants.s"
+ .include "constants/gba_constants.inc"
.syntax unified
@@ -11,7 +11,7 @@
Start: @ 8000000
b Init
- .include "asm/rom_header.s"
+ .include "asm/rom_header.inc"
@ 80000C0
.word 0
diff --git a/asm/cute_sketch.s b/asm/cute_sketch.s
index 0f1b217a7..afacc19f6 100644
--- a/asm/cute_sketch.s
+++ b/asm/cute_sketch.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/daycare.s b/asm/daycare.s
index 072b646d1..68cae0daf 100644
--- a/asm/daycare.s
+++ b/asm/daycare.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -469,7 +469,7 @@ _08041644: .4byte gPlayerParty
sub_8041648: @ 8041648
push {lr}
ldr r0, _0804165C @ =gSaveBlock1 + 0x2F9C
- ldr r1, _08041660 @ =gUnknown_0202E8CC
+ ldr r1, _08041660 @ =gSpecialVar_0x8004
ldrb r1, [r1]
bl sub_8041570
lsls r0, 16
@@ -478,7 +478,7 @@ sub_8041648: @ 8041648
bx r1
.align 2, 0
_0804165C: .4byte gSaveBlock1 + 0x2F9C
-_08041660: .4byte gUnknown_0202E8CC
+_08041660: .4byte gSpecialVar_0x8004
thumb_func_end sub_8041648
thumb_func_start sub_8041664
@@ -619,17 +619,17 @@ _0804176C: .4byte gStringVar2
sub_8041770: @ 8041770
push {lr}
ldr r0, _08041784 @ =gSaveBlock1 + 0x2F9C
- ldr r1, _08041788 @ =gUnknown_0202E8CC
+ ldr r1, _08041788 @ =gSpecialVar_0x8004
ldrb r1, [r1]
bl sub_8041728
- ldr r1, _0804178C @ =gUnknown_0202E8CE
+ ldr r1, _0804178C @ =gSpecialVar_0x8005
strh r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08041784: .4byte gSaveBlock1 + 0x2F9C
-_08041788: .4byte gUnknown_0202E8CC
-_0804178C: .4byte gUnknown_0202E8CE
+_08041788: .4byte gSpecialVar_0x8004
+_0804178C: .4byte gSpecialVar_0x8005
thumb_func_end sub_8041770
thumb_func_start sub_8041790
@@ -657,7 +657,7 @@ _080417B4: .4byte 0x000030b0
thumb_func_start sub_80417B8
sub_80417B8: @ 80417B8
push {r4,r5,lr}
- ldr r5, _080417D8 @ =gUnknown_0202E8CC
+ ldr r5, _080417D8 @ =gSpecialVar_0x8004
ldrh r1, [r5]
lsls r0, r1, 2
adds r0, r1
@@ -671,7 +671,7 @@ sub_80417B8: @ 80417B8
movs r0, 0
b _080417EC
.align 2, 0
-_080417D8: .4byte gUnknown_0202E8CC
+_080417D8: .4byte gSpecialVar_0x8004
_080417DC: .4byte gSaveBlock1 + 0x2F9C
_080417E0:
ldrb r1, [r5]
@@ -2062,13 +2062,13 @@ _08042244:
str r0, [sp]
cmp r0, 0
bne _08042278
- ldr r0, _08042274 @ =gUnknown_0202E8CC
+ ldr r0, _08042274 @ =gSpecialVar_0x8004
strh r6, [r0]
movs r0, 0x1
b _08042292
.align 2, 0
_08042270: .4byte gPlayerParty
-_08042274: .4byte gUnknown_0202E8CC
+_08042274: .4byte gSpecialVar_0x8004
_08042278:
subs r0, 0x1
str r0, [sp]
@@ -2872,7 +2872,7 @@ ShowDaycareLevelMenu: @ 8042824
movs r2, 0x7
movs r3, 0x3
bl InitMenu
- ldr r0, _08042884 @ =sub_804272C
+ ldr r0, _08042884 @ =DaycareLevelMenuProcessKeyInput
movs r1, 0x3
bl CreateTask
add sp, 0x6C
diff --git a/asm/decoration.s b/asm/decoration.s
index ba4517877..c507b599d 100644
--- a/asm/decoration.s
+++ b/asm/decoration.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -66,7 +66,7 @@ DecorationPC: @ 80FE23C
adds r0, r4
lsls r0, 3
adds r0, r1
- ldr r1, _080FE260 @ =sub_80FE2EC
+ ldr r1, _080FE260 @ =Task_DecorationPCProcessMenuInput
str r1, [r0]
pop {r4}
pop {r0}
@@ -322,7 +322,7 @@ sub_80FE428: @ 80FE428
adds r0, r4
lsls r0, 3
adds r0, r1
- ldr r1, _080FE46C @ =sub_80FE2EC
+ ldr r1, _080FE46C @ =Task_DecorationPCProcessMenuInput
str r1, [r0]
add sp, 0x8
pop {r4}
@@ -711,7 +711,7 @@ sub_80FE758: @ 80FE758
bl sub_80FE1DC
bl MenuDisplayMessageBox
bl sub_80FE394
- ldr r0, _080FE798 @ =sub_80FE2EC
+ ldr r0, _080FE798 @ =Task_DecorationPCProcessMenuInput
str r0, [r5]
b _080FE7A2
.align 2, 0
@@ -2397,9 +2397,9 @@ sub_80FF474: @ 80FF474
movs r6, 0
ldr r0, _080FF54C @ =gMapHeader
mov r8, r0
- ldr r1, _080FF550 @ =gUnknown_0202E8CE
+ ldr r1, _080FF550 @ =gSpecialVar_0x8005
mov r9, r1
- ldr r2, _080FF554 @ =gUnknown_0202E8D0
+ ldr r2, _080FF554 @ =gSpecialVar_0x8006
mov r10, r2
ldr r7, _080FF558 @ =gSaveBlock1
_080FF490:
@@ -2472,7 +2472,7 @@ _080FF4E0:
strh r1, [r2]
ldr r1, _080FF568 @ =gUnknown_020391A6
ldrh r1, [r1]
- ldr r4, _080FF56C @ =gUnknown_0202E8D2
+ ldr r4, _080FF56C @ =gSpecialVar_0x8007
strh r1, [r4]
ldrb r1, [r7, 0x5]
ldrb r2, [r7, 0x4]
@@ -2495,14 +2495,14 @@ _080FF4E0:
b _080FF57A
.align 2, 0
_080FF54C: .4byte gMapHeader
-_080FF550: .4byte gUnknown_0202E8CE
-_080FF554: .4byte gUnknown_0202E8D0
+_080FF550: .4byte gSpecialVar_0x8005
+_080FF554: .4byte gSpecialVar_0x8006
_080FF558: .4byte gSaveBlock1
_080FF55C: .4byte 0x00003f20
_080FF560: .4byte gUnknown_02038900
_080FF564: .4byte gUnknown_020391A4
_080FF568: .4byte gUnknown_020391A6
-_080FF56C: .4byte gUnknown_0202E8D2
+_080FF56C: .4byte gSpecialVar_0x8007
_080FF570:
adds r0, r6, 0x1
lsls r0, 24
@@ -5255,12 +5255,12 @@ _08100A78: .4byte 0x0201f000
thumb_func_start sub_8100A7C
sub_8100A7C: @ 8100A7C
push {r4-r6,lr}
- ldr r6, _08100A9C @ =gUnknown_0202E8CE
+ ldr r6, _08100A9C @ =gSpecialVar_0x8005
movs r0, 0
strh r0, [r6]
ldr r2, _08100AA0 @ =gScriptResult
strh r0, [r2]
- ldr r4, _08100AA4 @ =gUnknown_0202E8CC
+ ldr r4, _08100AA4 @ =gSpecialVar_0x8004
ldr r1, _08100AA8 @ =gUnknown_02039234
ldrh r0, [r4]
ldrb r1, [r1]
@@ -5270,17 +5270,17 @@ sub_8100A7C: @ 8100A7C
strh r0, [r2]
b _08100B0A
.align 2, 0
-_08100A9C: .4byte gUnknown_0202E8CE
+_08100A9C: .4byte gSpecialVar_0x8005
_08100AA0: .4byte gScriptResult
-_08100AA4: .4byte gUnknown_0202E8CC
+_08100AA4: .4byte gSpecialVar_0x8004
_08100AA8: .4byte gUnknown_02039234
_08100AAC:
- ldr r1, _08100AB4 @ =gUnknown_0202E8D0
+ ldr r1, _08100AB4 @ =gSpecialVar_0x8006
ldrb r0, [r2]
strh r0, [r1]
b _08100B0A
.align 2, 0
-_08100AB4: .4byte gUnknown_0202E8D0
+_08100AB4: .4byte gSpecialVar_0x8006
_08100AB8:
ldr r3, _08100B10 @ =gDecorations
ldr r2, _08100B14 @ =0x0201f000
@@ -5345,9 +5345,9 @@ sub_8100B20: @ 8100B20
bcs _08100B64
adds r3, r0, 0
ldr r5, [r3, 0x4]
- ldr r0, _08100B50 @ =gUnknown_0202E8CC
+ ldr r0, _08100B50 @ =gSpecialVar_0x8004
ldrh r4, [r0]
- ldr r6, _08100B54 @ =gUnknown_0202E8CE
+ ldr r6, _08100B54 @ =gSpecialVar_0x8005
_08100B38:
lsls r0, r2, 1
adds r0, r2
@@ -5361,8 +5361,8 @@ _08100B38:
b _08100B64
.align 2, 0
_08100B4C: .4byte gMapHeader
-_08100B50: .4byte gUnknown_0202E8CC
-_08100B54: .4byte gUnknown_0202E8CE
+_08100B50: .4byte gSpecialVar_0x8004
+_08100B54: .4byte gSpecialVar_0x8005
_08100B58:
adds r0, r2, 0x1
lsls r0, 24
@@ -6799,7 +6799,7 @@ sub_8101648: @ 8101648
adds r1, r4
lsls r1, 3
adds r1, r0
- ldr r0, _08101674 @ =sub_80FE2EC
+ ldr r0, _08101674 @ =Task_DecorationPCProcessMenuInput
str r0, [r1]
_08101668:
pop {r4}
diff --git a/asm/dewford_trend.s b/asm/dewford_trend.s
deleted file mode 100644
index cdea62334..000000000
--- a/asm/dewford_trend.s
+++ /dev/null
@@ -1,939 +0,0 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80FA17C
-sub_80FA17C: @ 80FA17C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r6, 0
- ldr r7, _080FA1B4 @ =gSaveBlock1
- ldr r0, _080FA1B8 @ =0x00002dd4
- adds r0, r7
- mov r9, r0
- movs r1, 0x1
- mov r8, r1
-_080FA192:
- movs r0, 0xA
- bl sub_80EB72C
- lsls r4, r6, 3
- adds r5, r4, r7
- ldr r2, _080FA1BC @ =0x00002dd8
- adds r1, r5, r2
- strh r0, [r1]
- bl Random
- mov r1, r8
- ands r1, r0
- cmp r1, 0
- beq _080FA1C0
- movs r0, 0xC
- b _080FA1C2
- .align 2, 0
-_080FA1B4: .4byte gSaveBlock1
-_080FA1B8: .4byte 0x00002dd4
-_080FA1BC: .4byte 0x00002dd8
-_080FA1C0:
- movs r0, 0xD
-_080FA1C2:
- bl sub_80EB72C
- ldr r2, _080FA214 @ =0x00002dda
- adds r1, r5, r2
- strh r0, [r1]
- bl Random
- adds r3, r4, r7
- mov r2, r8
- ands r2, r0
- ldr r5, _080FA218 @ =0x00002dd5
- adds r3, r5
- lsls r2, 6
- ldrb r0, [r3]
- movs r5, 0x41
- negs r5, r5
- adds r1, r5, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3]
- mov r1, r9
- adds r0, r4, r1
- bl sub_80FA740
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x4
- bls _080FA192
- ldr r0, _080FA21C @ =gSaveBlock1 + 0x2DD4
- movs r1, 0x5
- movs r2, 0
- bl sub_80FA46C
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA214: .4byte 0x00002dda
-_080FA218: .4byte 0x00002dd5
-_080FA21C: .4byte gSaveBlock1 + 0x2DD4
- thumb_func_end sub_80FA17C
-
- thumb_func_start sub_80FA220
-sub_80FA220: @ 80FA220
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _080FA236
- b _080FA34E
-_080FA236:
- lsls r0, r1, 2
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- mov r10, r0
- movs r1, 0x7F
- mov r9, r1
- movs r2, 0x80
- negs r2, r2
- mov r8, r2
-_080FA24A:
- ldr r2, [sp]
- mov r4, r10
- lsls r0, r4, 3
- ldr r1, _080FA28C @ =gSaveBlock1 + 0x2DD4
- adds r5, r0, r1
- ldrb r6, [r5, 0x1]
- movs r0, 0x40
- ands r0, r6
- cmp r0, 0
- bne _080FA2A0
- ldrb r4, [r5]
- lsls r3, r4, 25
- lsrs r1, r3, 25
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r1, r0
- bcc _080FA290
- adds r0, r1, 0
- subs r0, r2
- mov r2, r9
- ands r0, r2
- mov r1, r8
- ands r1, r4
- orrs r1, r0
- strb r1, [r5]
- movs r0, 0x7F
- ands r1, r0
- cmp r1, 0
- bne _080FA336
- movs r0, 0x40
- orrs r0, r6
- b _080FA334
- .align 2, 0
-_080FA28C: .4byte gSaveBlock1 + 0x2DD4
-_080FA290:
- lsrs r0, r3, 25
- subs r2, r0
- mov r0, r8
- ands r0, r4
- strb r0, [r5]
- movs r0, 0x40
- orrs r0, r6
- strb r0, [r5, 0x1]
-_080FA2A0:
- ldrb r7, [r5]
- lsls r0, r7, 25
- lsrs r0, 25
- adds r4, r0, r2
- ldrh r0, [r5]
- lsls r6, r0, 18
- lsls r0, r4, 16
- lsrs r0, 16
- lsrs r1, r6, 25
- cmp r0, r1
- bls _080FA310
- adds r0, r4, 0
- bl __umodsi3
- adds r3, r0, 0
- lsrs r1, r6, 25
- adds r0, r4, 0
- str r3, [sp, 0x4]
- bl __udivsi3
- adds r4, r0, 0
- movs r0, 0x1
- eors r4, r0
- ands r4, r0
- lsls r2, r4, 6
- ldrb r0, [r5, 0x1]
- movs r4, 0x41
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x1]
- movs r1, 0x40
- ands r0, r1
- ldr r3, [sp, 0x4]
- cmp r0, 0
- beq _080FA2FA
- adds r1, r3, 0
- mov r0, r9
- ands r1, r0
- mov r0, r8
- ands r0, r7
- orrs r0, r1
- strb r0, [r5]
- b _080FA336
-_080FA2FA:
- ldrh r0, [r5]
- lsls r0, 18
- lsrs r0, 25
- subs r0, r3
- mov r1, r9
- ands r0, r1
- mov r1, r8
- ands r1, r7
- orrs r1, r0
- strb r1, [r5]
- b _080FA336
-_080FA310:
- mov r2, r9
- ands r4, r2
- mov r0, r8
- ands r0, r7
- orrs r0, r4
- strb r0, [r5]
- lsls r0, 25
- ldrh r1, [r5]
- lsls r1, 18
- lsrs r0, 25
- lsrs r1, 25
- cmp r0, r1
- bne _080FA336
- ldrb r0, [r5, 0x1]
- movs r4, 0x41
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
-_080FA334:
- strb r0, [r5, 0x1]
-_080FA336:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- cmp r0, 0x4
- bls _080FA24A
- ldr r0, _080FA360 @ =gSaveBlock1 + 0x2DD4
- movs r1, 0x5
- movs r2, 0
- bl sub_80FA46C
-_080FA34E:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA360: .4byte gSaveBlock1 + 0x2DD4
- thumb_func_end sub_80FA220
-
- thumb_func_start sub_80FA364
-sub_80FA364: @ 80FA364
- push {r4-r7,lr}
- sub sp, 0x8
- adds r4, r0, 0
- movs r0, 0
- movs r1, 0
- str r0, [sp]
- str r1, [sp, 0x4]
- adds r0, r4, 0
- bl sub_80FA7C8
- lsls r0, 24
- cmp r0, 0
- bne _080FA462
- ldr r5, _080FA3B4 @ =0x00000833
- adds r0, r5, 0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080FA3C8
- adds r0, r5, 0
- bl FlagSet
- ldr r0, _080FA3B8 @ =0x00000834
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080FA3C8
- ldr r1, _080FA3BC @ =gSaveBlock1
- ldrh r2, [r4]
- ldr r3, _080FA3C0 @ =0x00002dd8
- adds r0, r1, r3
- strh r2, [r0]
- ldrh r0, [r4, 0x2]
- ldr r2, _080FA3C4 @ =0x00002dda
- adds r1, r2
- strh r0, [r1]
- movs r0, 0x1
- b _080FA464
- .align 2, 0
-_080FA3B4: .4byte 0x00000833
-_080FA3B8: .4byte 0x00000834
-_080FA3BC: .4byte gSaveBlock1
-_080FA3C0: .4byte 0x00002dd8
-_080FA3C4: .4byte 0x00002dda
-_080FA3C8:
- ldrh r1, [r4, 0x2]
- lsls r1, 16
- ldrh r0, [r4]
- orrs r0, r1
- str r0, [sp, 0x4]
- movs r1, 0x80
- lsls r1, 7
- ldr r0, [sp]
- orrs r0, r1
- str r0, [sp]
- mov r0, sp
- bl sub_80FA740
- movs r6, 0
-_080FA3E4:
- lsls r4, r6, 3
- ldr r5, _080FA444 @ =gSaveBlock1 + 0x2DD4
- adds r1, r4, r5
- mov r0, sp
- movs r2, 0
- bl atk90_changetypestoenemyattacktype
- lsls r0, 24
- adds r7, r4, 0
- cmp r0, 0
- beq _080FA450
- movs r3, 0x4
- ldr r0, _080FA448 @ =0xffffd22c
- adds r0, r5
- mov r12, r0
- cmp r3, r6
- bls _080FA428
- mov r5, r12
- ldr r4, _080FA44C @ =0x00002dd4
-_080FA40A:
- lsls r2, r3, 3
- adds r2, r5
- adds r2, r4
- subs r3, 0x1
- lsls r0, r3, 3
- adds r0, r5
- adds r0, r4
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- lsls r3, 16
- lsrs r3, 16
- cmp r3, r6
- bhi _080FA40A
-_080FA428:
- mov r3, r12
- adds r2, r7, r3
- ldr r0, _080FA44C @ =0x00002dd4
- adds r2, r0
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- movs r0, 0
- cmp r6, 0
- bne _080FA464
- movs r0, 0x1
- b _080FA464
- .align 2, 0
-_080FA444: .4byte gSaveBlock1 + 0x2DD4
-_080FA448: .4byte 0xffffd22c
-_080FA44C: .4byte 0x00002dd4
-_080FA450:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x4
- bls _080FA3E4
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- str r0, [r5, 0x20]
- str r1, [r5, 0x24]
-_080FA462:
- movs r0, 0
-_080FA464:
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80FA364
-
- thumb_func_start sub_80FA46C
-sub_80FA46C: @ 80FA46C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r9, r0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- movs r2, 0
- cmp r2, r7
- bcs _080FA4D4
-_080FA488:
- adds r1, r2, 0x1
- lsls r0, r1, 16
- lsrs r5, r0, 16
- mov r8, r1
- cmp r5, r7
- bcs _080FA4CA
- lsls r0, r2, 3
- mov r1, r9
- adds r6, r1, r0
-_080FA49A:
- lsls r0, r5, 3
- mov r1, r9
- adds r4, r1, r0
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, r10
- bl atk90_changetypestoenemyattacktype
- lsls r0, 24
- cmp r0, 0
- beq _080FA4C0
- ldr r2, [r4]
- ldr r3, [r4, 0x4]
- ldr r0, [r6]
- ldr r1, [r6, 0x4]
- str r0, [r4]
- str r1, [r4, 0x4]
- str r2, [r6]
- str r3, [r6, 0x4]
-_080FA4C0:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r7
- bcc _080FA49A
-_080FA4CA:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r2, r0, 16
- cmp r2, r7
- bcc _080FA488
-_080FA4D4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80FA46C
-
- thumb_func_start sub_80FA4E4
-sub_80FA4E4: @ 80FA4E4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r6, r0, 0
- adds r5, r1, 0
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r4, 0
- cmp r4, r8
- bcs _080FA520
-_080FA500:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080FA554 @ =0x02007800
- adds r0, r1
- adds r1, r4, 0
- muls r1, r5
- adds r1, r6, r1
- movs r2, 0x28
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r8
- bcc _080FA500
-_080FA520:
- ldr r5, _080FA554 @ =0x02007800
- movs r0, 0x80
- lsls r0, 1
- adds r3, r5, r0
- movs r7, 0
- movs r4, 0
- cmp r4, r8
- bcs _080FA588
-_080FA530:
- movs r6, 0
-_080FA532:
- adds r0, r5, 0
- adds r1, r7, 0
- str r3, [sp]
- bl sub_80FA828
- lsls r0, 16
- asrs r0, 16
- ldr r3, [sp]
- cmp r0, 0
- bge _080FA558
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- stm r3!, {r0,r1}
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- b _080FA572
- .align 2, 0
-_080FA554: .4byte 0x02007800
-_080FA558:
- lsls r1, r0, 3
- ldr r0, _080FA5B4 @ =0x02007900
- adds r2, r1, r0
- ldrb r1, [r2]
- lsls r1, 25
- ldrb r0, [r5]
- lsls r0, 25
- cmp r1, r0
- bcs _080FA572
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
-_080FA572:
- adds r5, 0x8
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x4
- bls _080FA532
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r8
- bcc _080FA530
-_080FA588:
- ldr r4, _080FA5B4 @ =0x02007900
- adds r0, r4, 0
- adds r1, r7, 0
- movs r2, 0x2
- bl sub_80FA46C
- adds r5, r4, 0
- ldr r3, _080FA5B8 @ =gSaveBlock1 + 0x2DD4
- movs r4, 0
-_080FA59A:
- ldm r5!, {r0,r1}
- stm r3!, {r0,r1}
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _080FA59A
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA5B4: .4byte 0x02007900
-_080FA5B8: .4byte gSaveBlock1 + 0x2DD4
- thumb_func_end sub_80FA4E4
-
- thumb_func_start sub_80FA5BC
-sub_80FA5BC: @ 80FA5BC
- push {lr}
- ldr r0, _080FA5D8 @ =gUnknown_0202E8CC
- ldrh r1, [r0]
- lsls r1, 3
- ldr r0, _080FA5DC @ =gSaveBlock1 + 0x2DD4
- adds r1, r0
- ldr r0, _080FA5E0 @ =gStringVar1
- adds r1, 0x4
- movs r2, 0x2
- movs r3, 0x1
- bl ConvertEasyChatWordsToString
- pop {r0}
- bx r0
- .align 2, 0
-_080FA5D8: .4byte gUnknown_0202E8CC
-_080FA5DC: .4byte gSaveBlock1 + 0x2DD4
-_080FA5E0: .4byte gStringVar1
- thumb_func_end sub_80FA5BC
-
- thumb_func_start sub_80FA5E4
-sub_80FA5E4: @ 80FA5E4
- push {r4,lr}
- movs r4, 0
- ldr r3, _080FA630 @ =gSaveBlock1
- ldr r1, _080FA634 @ =0x00002dd4
- adds r0, r3, r1
- ldrb r1, [r0]
- lsls r1, 25
- lsrs r1, 25
- ldr r2, _080FA638 @ =0x00002ddc
- adds r0, r3, r2
- ldrb r0, [r0]
- lsls r0, 25
- lsrs r0, 25
- subs r1, r0
- cmp r1, 0x1
- bgt _080FA626
- ldr r1, _080FA63C @ =0x00002dd5
- adds r0, r3, r1
- ldrb r1, [r0]
- movs r2, 0x40
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080FA626
- ldr r1, _080FA640 @ =0x00002ddd
- adds r0, r3, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- negs r0, r0
- lsrs r4, r0, 31
-_080FA626:
- ldr r0, _080FA644 @ =gScriptResult
- strh r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA630: .4byte gSaveBlock1
-_080FA634: .4byte 0x00002dd4
-_080FA638: .4byte 0x00002ddc
-_080FA63C: .4byte 0x00002dd5
-_080FA640: .4byte 0x00002ddd
-_080FA644: .4byte gScriptResult
- thumb_func_end sub_80FA5E4
-
- thumb_func_start sub_80FA648
-sub_80FA648: @ 80FA648
- ldr r2, _080FA664 @ =gScriptResult
- ldr r0, _080FA668 @ =gSaveBlock1
- ldr r3, _080FA66C @ =0x00002dd8
- adds r1, r0, r3
- adds r3, 0x2
- adds r0, r3
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- movs r1, 0x7
- ands r0, r1
- strh r0, [r2]
- bx lr
- .align 2, 0
-_080FA664: .4byte gScriptResult
-_080FA668: .4byte gSaveBlock1
-_080FA66C: .4byte 0x00002dd8
- thumb_func_end sub_80FA648
-
- thumb_func_start atk90_changetypestoenemyattacktype
-atk90_changetypestoenemyattacktype: @ 80FA670
- push {r4,r5,lr}
- adds r3, r0, 0
- adds r5, r1, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r2, 0
- cmp r2, 0x1
- beq _080FA6B6
- cmp r2, 0x1
- bgt _080FA68A
- cmp r2, 0
- beq _080FA690
- b _080FA732
-_080FA68A:
- cmp r0, 0x2
- beq _080FA6E2
- b _080FA732
-_080FA690:
- ldrb r0, [r3]
- lsls r1, r0, 25
- ldrb r0, [r5]
- lsls r0, 25
- cmp r1, r0
- bhi _080FA72E
- cmp r1, r0
- bcc _080FA6DE
- ldrh r0, [r3]
- lsls r3, r0, 18
- ldrh r0, [r5]
- lsls r2, r0, 18
- lsrs r1, r3, 25
- lsrs r0, r2, 25
- cmp r1, r0
- bhi _080FA72E
- lsrs r1, r3, 25
- lsrs r0, r2, 25
- b _080FA6DA
-_080FA6B6:
- ldrh r0, [r3]
- lsls r4, r0, 18
- ldrh r0, [r5]
- lsls r2, r0, 18
- lsrs r1, r4, 25
- lsrs r0, r2, 25
- cmp r1, r0
- bhi _080FA72E
- lsrs r1, r4, 25
- lsrs r0, r2, 25
- cmp r1, r0
- bcc _080FA6DE
- ldrb r0, [r3]
- lsls r1, r0, 25
- ldrb r0, [r5]
- lsls r0, 25
- cmp r1, r0
- bhi _080FA72E
-_080FA6DA:
- cmp r1, r0
- bcs _080FA732
-_080FA6DE:
- movs r0, 0
- b _080FA73A
-_080FA6E2:
- ldrb r0, [r3]
- lsls r1, r0, 25
- ldrb r0, [r5]
- lsls r0, 25
- cmp r1, r0
- bhi _080FA72E
- cmp r1, r0
- bcc _080FA6DE
- ldrh r0, [r3]
- lsls r4, r0, 18
- ldrh r0, [r5]
- lsls r2, r0, 18
- lsrs r1, r4, 25
- lsrs r0, r2, 25
- cmp r1, r0
- bhi _080FA72E
- lsrs r1, r4, 25
- lsrs r0, r2, 25
- cmp r1, r0
- bcc _080FA6DE
- ldrh r1, [r3, 0x2]
- ldrh r0, [r5, 0x2]
- cmp r1, r0
- bhi _080FA72E
- cmp r1, r0
- bcc _080FA6DE
- ldrh r1, [r3, 0x4]
- ldrh r0, [r5, 0x4]
- cmp r1, r0
- bhi _080FA72E
- cmp r1, r0
- bcc _080FA6DE
- ldrh r1, [r3, 0x6]
- ldrh r0, [r5, 0x6]
- cmp r1, r0
- bhi _080FA72E
- cmp r1, r0
- bcc _080FA6DE
-_080FA72E:
- movs r0, 0x1
- b _080FA73A
-_080FA732:
- bl Random
- movs r1, 0x1
- ands r0, r1
-_080FA73A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end atk90_changetypestoenemyattacktype
-
- thumb_func_start sub_80FA740
-sub_80FA740: @ 80FA740
- push {r4,r5,lr}
- adds r5, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x62
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x32
- bls _080FA782
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x62
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x50
- bls _080FA782
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x62
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_080FA782:
- adds r1, r4, 0
- adds r1, 0x1E
- movs r0, 0x7F
- ands r1, r0
- lsls r1, 7
- ldrh r2, [r5]
- ldr r0, _080FA7C4 @ =0xffffc07f
- ands r0, r2
- orrs r0, r1
- strh r0, [r5]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0x1
- bl __modsi3
- adds r0, 0x1E
- movs r1, 0x7F
- ands r0, r1
- ldrb r2, [r5]
- movs r1, 0x80
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5]
- bl Random
- strh r0, [r5, 0x2]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080FA7C4: .4byte 0xffffc07f
- thumb_func_end sub_80FA740
-
- thumb_func_start sub_80FA7C8
-sub_80FA7C8: @ 80FA7C8
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r4, 0
-_080FA7CE:
- lsls r1, r4, 3
- ldr r0, _080FA7E4 @ =gSaveBlock1 + 0x2DD8
- adds r1, r0
- adds r0, r5, 0
- bl sub_80FA7FC
- lsls r0, 24
- cmp r0, 0
- beq _080FA7E8
- movs r0, 0x1
- b _080FA7F4
- .align 2, 0
-_080FA7E4: .4byte gSaveBlock1 + 0x2DD8
-_080FA7E8:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _080FA7CE
- movs r0, 0
-_080FA7F4:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80FA7C8
-
- thumb_func_start sub_80FA7FC
-sub_80FA7FC: @ 80FA7FC
- push {r4,lr}
- adds r3, r0, 0
- adds r2, r1, 0
- movs r4, 0
-_080FA804:
- ldrh r1, [r3]
- ldrh r0, [r2]
- adds r2, 0x2
- adds r3, 0x2
- cmp r1, r0
- beq _080FA814
- movs r0, 0
- b _080FA820
-_080FA814:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _080FA804
- movs r0, 0x1
-_080FA820:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80FA7FC
-
- thumb_func_start sub_80FA828
-sub_80FA828: @ 80FA828
- push {r4-r7,lr}
- adds r7, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r6, _080FA84C @ =0x02007900
- movs r4, 0
- cmp r4, r5
- bge _080FA862
-_080FA838:
- adds r1, r6, 0x4
- adds r0, r7, 0x4
- bl sub_80FA7FC
- lsls r0, 24
- cmp r0, 0
- beq _080FA850
- lsls r0, r4, 16
- asrs r0, 16
- b _080FA866
- .align 2, 0
-_080FA84C: .4byte 0x02007900
-_080FA850:
- adds r6, 0x8
- lsls r0, r4, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, r5
- blt _080FA838
-_080FA862:
- movs r0, 0x1
- negs r0, r0
-_080FA866:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80FA828
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
index 5b80f2da5..e98a76c8c 100644
--- a/asm/easy_chat.s
+++ b/asm/easy_chat.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -10,7 +10,7 @@
sub_80E60D8: @ 80E60D8
push {r4-r7,lr}
movs r4, 0x3
- ldr r0, _080E60F4 @ =gUnknown_0202E8CC
+ ldr r0, _080E60F4 @ =gSpecialVar_0x8004
ldrh r1, [r0]
adds r7, r0, 0
cmp r1, 0xD
@@ -23,7 +23,7 @@ _080E60E8:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080E60F4: .4byte gUnknown_0202E8CC
+_080E60F4: .4byte gSpecialVar_0x8004
_080E60F8: .4byte _080E60FC
.align 2, 0
_080E60FC:
@@ -62,7 +62,7 @@ _080E614C:
.align 2, 0
_080E6150: .4byte gSaveBlock1 + 0x2B40
_080E6154:
- ldr r0, _080E6164 @ =gUnknown_0202E8CE
+ ldr r0, _080E6164 @ =gSpecialVar_0x8005
ldrh r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -71,7 +71,7 @@ _080E6154:
adds r1, r0, r1
b _080E624C
.align 2, 0
-_080E6164: .4byte gUnknown_0202E8CE
+_080E6164: .4byte gSpecialVar_0x8005
_080E6168: .4byte gSaveBlock1 + 0x2B4C
_080E616C:
ldr r0, _080E6194 @ =gSaveBlock1 + 0x2D94
@@ -99,39 +99,39 @@ _080E617C:
_080E6194: .4byte gSaveBlock1 + 0x2D94
_080E6198: .4byte sub_80546B8
_080E619C:
- ldr r0, _080E61B0 @ =gUnknown_0202E8CE
+ ldr r0, _080E61B0 @ =gSpecialVar_0x8005
ldrh r1, [r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _080E61B4 @ =gSaveBlock1 + 0x273C
adds r1, r0, r1
- ldr r0, _080E61B8 @ =gUnknown_0202E8D0
+ ldr r0, _080E61B8 @ =gSpecialVar_0x8006
ldrb r4, [r0]
b _080E6276
.align 2, 0
-_080E61B0: .4byte gUnknown_0202E8CE
+_080E61B0: .4byte gSpecialVar_0x8005
_080E61B4: .4byte gSaveBlock1 + 0x273C
-_080E61B8: .4byte gUnknown_0202E8D0
+_080E61B8: .4byte gSpecialVar_0x8006
_080E61BC:
- ldr r0, _080E61D4 @ =gUnknown_0202E8CE
+ ldr r0, _080E61D4 @ =gSpecialVar_0x8005
ldrh r0, [r0]
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
ldr r0, _080E61D8 @ =gSaveBlock1 + 0x2754
adds r1, r0
- ldr r0, _080E61DC @ =gUnknown_0202E8D0
+ ldr r0, _080E61DC @ =gSpecialVar_0x8006
ldrh r0, [r0]
lsls r0, 1
adds r1, r0
b _080E624A
.align 2, 0
-_080E61D4: .4byte gUnknown_0202E8CE
+_080E61D4: .4byte gSpecialVar_0x8005
_080E61D8: .4byte gSaveBlock1 + 0x2754
-_080E61DC: .4byte gUnknown_0202E8D0
+_080E61DC: .4byte gSpecialVar_0x8006
_080E61E0:
- ldr r0, _080E61F4 @ =gUnknown_0202E8CE
+ ldr r0, _080E61F4 @ =gSpecialVar_0x8005
ldrh r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -141,7 +141,7 @@ _080E61E0:
movs r4, 0
b _080E6276
.align 2, 0
-_080E61F4: .4byte gUnknown_0202E8CE
+_080E61F4: .4byte gSpecialVar_0x8005
_080E61F8: .4byte gSaveBlock1 + 0x273A
_080E61FC:
movs r1, 0
@@ -156,25 +156,25 @@ _080E6200:
_080E620C: .4byte gSaveBlock1 + 0x2B16
_080E6210: .4byte 0x0000ffff
_080E6214:
- ldr r0, _080E6230 @ =gUnknown_0202E8CE
+ ldr r0, _080E6230 @ =gSpecialVar_0x8005
ldrh r0, [r0]
lsls r1, r0, 3
adds r1, r0
lsls r1, 2
ldr r0, _080E6234 @ =gSaveBlock1 + 0x273C
adds r1, r0
- ldr r0, _080E6238 @ =gUnknown_0202E8D0
+ ldr r0, _080E6238 @ =gSpecialVar_0x8006
ldrh r0, [r0]
lsls r0, 1
adds r1, r0
movs r4, 0
b _080E6276
.align 2, 0
-_080E6230: .4byte gUnknown_0202E8CE
+_080E6230: .4byte gSpecialVar_0x8005
_080E6234: .4byte gSaveBlock1 + 0x273C
-_080E6238: .4byte gUnknown_0202E8D0
+_080E6238: .4byte gSpecialVar_0x8006
_080E623C:
- ldr r0, _080E6254 @ =gUnknown_0202E8CE
+ ldr r0, _080E6254 @ =gSpecialVar_0x8005
ldrh r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -188,7 +188,7 @@ _080E624C:
mov r12, r0
b _080E627A
.align 2, 0
-_080E6254: .4byte gUnknown_0202E8CE
+_080E6254: .4byte gSpecialVar_0x8005
_080E6258: .4byte gSaveBlock1 + 0x2750
_080E625C: .4byte sub_80546B8
_080E6260:
@@ -1734,7 +1734,7 @@ _080E6E5C:
ldrb r0, [r5, 0x8]
cmp r0, 0
bne _080E6E82
- ldr r4, _080E6ECC @ =gUnknown_0202E8CC
+ ldr r4, _080E6ECC @ =gSpecialVar_0x8004
bl sub_80E8094
lsls r0, 24
lsrs r0, 24
@@ -1744,7 +1744,7 @@ _080E6E82:
cmp r0, 0x9
bne _080E6E9C
bl sub_80E81C0
- ldr r4, _080E6ECC @ =gUnknown_0202E8CC
+ ldr r4, _080E6ECC @ =gSpecialVar_0x8004
ldr r1, _080E6ED0 @ =0x00009c7c
adds r0, r5, r1
bl sub_80FA364
@@ -1765,7 +1765,7 @@ _080E6E9C:
_080E6EB0:
strh r6, [r7]
_080E6EB2:
- ldr r4, _080E6ECC @ =gUnknown_0202E8CC
+ ldr r4, _080E6ECC @ =gSpecialVar_0x8004
bl sub_80E810C
lsls r0, 24
lsrs r0, 24
@@ -1776,7 +1776,7 @@ _080E6EBE:
b _080E6F5E
.align 2, 0
_080E6EC8: .4byte gScriptResult
-_080E6ECC: .4byte gUnknown_0202E8CC
+_080E6ECC: .4byte gSpecialVar_0x8004
_080E6ED0: .4byte 0x00009c7c
_080E6ED4: .4byte 0x0000ffff
_080E6ED8: .4byte sub_80E752C
@@ -11279,7 +11279,7 @@ _080EB7BE:
thumb_func_start sub_80EB7C4
sub_80EB7C4: @ 80EB7C4
push {r4,r5,lr}
- ldr r0, _080EB7D8 @ =gUnknown_0202E8CC
+ ldr r0, _080EB7D8 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0x1
beq _080EB7F0
@@ -11289,7 +11289,7 @@ sub_80EB7C4: @ 80EB7C4
beq _080EB7E6
b _080EB82E
.align 2, 0
-_080EB7D8: .4byte gUnknown_0202E8CC
+_080EB7D8: .4byte gSpecialVar_0x8004
_080EB7DC:
cmp r0, 0x2
beq _080EB810
diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s
index ae27d6e31..b8dae1bba 100644
--- a/asm/egg_hatch.s
+++ b/asm/egg_hatch.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -245,13 +245,13 @@ _08042AA4: .4byte gStringVar1
thumb_func_start ScriptHatchMon
ScriptHatchMon: @ 8042AA8
push {lr}
- ldr r0, _08042AB8 @ =gUnknown_0202E8CC
+ ldr r0, _08042AB8 @ =gSpecialVar_0x8004
ldrb r0, [r0]
bl AddHatchedMonToParty
pop {r0}
bx r0
.align 2, 0
-_08042AB8: .4byte gUnknown_0202E8CC
+_08042AB8: .4byte gSpecialVar_0x8004
thumb_func_end ScriptHatchMon
thumb_func_start sub_8042ABC
@@ -325,7 +325,7 @@ _08042B42:
sub_8042B4C: @ 8042B4C
push {lr}
ldr r0, _08042B60 @ =gSaveBlock1 + 0x2F9C
- ldr r1, _08042B64 @ =gUnknown_0202E8CC
+ ldr r1, _08042B64 @ =gSpecialVar_0x8004
ldrb r1, [r1]
bl sub_8042ABC
lsls r0, 24
@@ -334,7 +334,7 @@ sub_8042B4C: @ 8042B4C
bx r1
.align 2, 0
_08042B60: .4byte gSaveBlock1 + 0x2F9C
-_08042B64: .4byte gUnknown_0202E8CC
+_08042B64: .4byte gSpecialVar_0x8004
thumb_func_end sub_8042B4C
thumb_func_start EggHatchCreateMonSprite
@@ -477,7 +477,7 @@ EggHatch: @ 8042C80
push {lr}
sub sp, 0x4
bl ScriptContext2_Enable
- ldr r0, _08042CA8 @ =sub_8042CAC
+ ldr r0, _08042CA8 @ =Task_EggHatch
movs r1, 0xA
bl CreateTask
movs r0, 0x1
@@ -505,7 +505,7 @@ Task_EggHatch: @ 8042CAC
ands r0, r1
cmp r0, 0
bne _08042CD0
- ldr r0, _08042CDC @ =sub_8042CE8
+ ldr r0, _08042CDC @ =CB2_EggHatch_0
bl SetMainCallback2
ldr r1, _08042CE0 @ =gUnknown_0300485C
ldr r0, _08042CE4 @ =sub_8080990
@@ -562,7 +562,7 @@ _08042D34:
ldr r1, _08042D74 @ =gUnknown_0300481C
ldr r0, _08042D78 @ =0x02018000
str r0, [r1]
- ldr r1, _08042D7C @ =gUnknown_0202E8CC
+ ldr r1, _08042D7C @ =gSpecialVar_0x8004
ldrh r1, [r1]
strb r1, [r0, 0x4]
adds r0, 0x3A
@@ -570,7 +570,7 @@ _08042D34:
bl ResetTasks
bl ResetSpriteData
bl FreeAllSpritePalettes
- ldr r0, _08042D80 @ =sub_8042C6C
+ ldr r0, _08042D80 @ =VBlankCB_EggHatch
bl SetVBlankCallback
ldr r1, _08042D84 @ =gMain
ldr r2, _08042D88 @ =0x0000043c
@@ -579,17 +579,17 @@ _08042D34:
adds r0, 0x1
strb r0, [r1]
bl GetCurrentMapMusic
- ldr r1, _08042D8C @ =gUnknown_0202E8CE
+ ldr r1, _08042D8C @ =gSpecialVar_0x8005
strh r0, [r1]
b _08042F6E
.align 2, 0
_08042D74: .4byte gUnknown_0300481C
_08042D78: .4byte 0x02018000
-_08042D7C: .4byte gUnknown_0202E8CC
+_08042D7C: .4byte gSpecialVar_0x8004
_08042D80: .4byte VBlankCB_EggHatch
_08042D84: .4byte gMain
_08042D88: .4byte 0x0000043c
-_08042D8C: .4byte gUnknown_0202E8CE
+_08042D8C: .4byte gSpecialVar_0x8005
_08042D90:
ldr r5, _08042DBC @ =gWindowConfig_81E6F84
adds r0, r5, 0
@@ -789,7 +789,7 @@ _08042F40:
strh r4, [r0]
adds r0, 0x2
strh r4, [r0]
- ldr r0, _08042F80 @ =sub_804300C
+ ldr r0, _08042F80 @ =CB2_EggHatch_1
bl SetMainCallback2
ldr r0, _08042F84 @ =gUnknown_0300481C
ldr r0, [r0]
@@ -809,7 +809,7 @@ _08042F84: .4byte gUnknown_0300481C
thumb_func_start EggHatchSetMonNickname
EggHatchSetMonNickname: @ 8042F88
push {lr}
- ldr r0, _08042FA8 @ =gUnknown_0202E8CC
+ ldr r0, _08042FA8 @ =gSpecialVar_0x8004
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
@@ -823,7 +823,7 @@ EggHatchSetMonNickname: @ 8042F88
pop {r0}
bx r0
.align 2, 0
-_08042FA8: .4byte gUnknown_0202E8CC
+_08042FA8: .4byte gSpecialVar_0x8004
_08042FAC: .4byte gPlayerParty
_08042FB0: .4byte gStringVar3
_08042FB4: .4byte c2_exit_to_overworld_2_switch
@@ -930,7 +930,7 @@ _08043068:
ldrb r0, [r1, 0x2]
adds r0, 0x1
strb r0, [r1, 0x2]
- ldr r0, _0804309C @ =c3_080472E4
+ ldr r0, _0804309C @ =Task_EggHatchPlayBGM
movs r1, 0x5
bl CreateTask
b _080432BA
@@ -977,7 +977,7 @@ _080430D2:
lsls r0, 2
adds r2, 0x1C
adds r0, r2
- ldr r1, _080430F4 @ =sub_80432E4
+ ldr r1, _080430F4 @ =SpriteCB_Egg_0
str r1, [r0]
b _080432BA
.align 2, 0
@@ -1148,7 +1148,7 @@ _080431DA:
movs r2, 0
bl GetMonData
str r0, [sp]
- ldr r0, _08043284 @ =sub_8042F88
+ ldr r0, _08043284 @ =EggHatchSetMonNickname
str r0, [sp, 0x4]
movs r0, 0x3
mov r1, r10
@@ -1217,7 +1217,7 @@ SpriteCB_Egg_0: @ 80432E4
asrs r0, 16
cmp r0, 0x14
ble _08043304
- ldr r0, _08043300 @ =sub_804333C
+ ldr r0, _08043300 @ =SpriteCB_Egg_1
str r0, [r4, 0x1C]
movs r0, 0
strh r0, [r4, 0x2E]
@@ -1270,7 +1270,7 @@ SpriteCB_Egg_1: @ 804333C
asrs r0, 16
cmp r0, 0x14
ble _0804336C
- ldr r0, _08043368 @ =sub_80433A0
+ ldr r0, _08043368 @ =SpriteCB_Egg_2
str r0, [r4, 0x1C]
strh r1, [r4, 0x2E]
strh r1, [r4, 0x32]
@@ -1322,7 +1322,7 @@ SpriteCB_Egg_2: @ 80433A0
asrs r0, 16
cmp r0, 0x26
ble _08043418
- ldr r0, _08043404 @ =sub_8043460
+ ldr r0, _08043404 @ =SpriteCB_Egg_3
str r0, [r4, 0x1C]
strh r6, [r4, 0x2E]
ldr r5, _08043408 @ =gUnknown_0300481C
@@ -1406,7 +1406,7 @@ SpriteCB_Egg_3: @ 8043460
asrs r0, 16
cmp r0, 0x32
ble _0804347A
- ldr r0, _08043480 @ =sub_8043484
+ ldr r0, _08043480 @ =SpriteCB_Egg_4
str r0, [r1, 0x1C]
movs r0, 0
strh r0, [r1, 0x2E]
@@ -1469,7 +1469,7 @@ _080434C0:
movs r1, 0x4
orrs r0, r1
strb r0, [r2]
- ldr r0, _08043500 @ =sub_8043504
+ ldr r0, _08043500 @ =SpriteCB_Egg_5
str r0, [r5, 0x1C]
strh r4, [r5, 0x2E]
_080434EE:
diff --git a/asm/evolution_scene.s b/asm/evolution_scene.s
index 8453e277f..9d009f567 100644
--- a/asm/evolution_scene.s
+++ b/asm/evolution_scene.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -97,7 +97,7 @@ BeginEvolutionScene: @ 8111924
lsrs r5, 24
lsls r6, 24
lsrs r6, 24
- ldr r0, _08111978 @ =sub_81118A4
+ ldr r0, _08111978 @ =Task_BeginEvolutionScene
movs r1, 0
bl CreateTask
lsls r0, 24
@@ -117,7 +117,7 @@ BeginEvolutionScene: @ 8111924
strh r4, [r1, 0x10]
strh r5, [r1, 0x12]
strh r6, [r1, 0x20]
- ldr r0, _08111980 @ =sub_8111894
+ ldr r0, _08111980 @ =CB2_BeginEvolutionScene
bl SetMainCallback2
pop {r3}
mov r8, r3
@@ -366,7 +366,7 @@ EvolutionScene: @ 8111984
orrs r0, r3
strb r0, [r1]
bl sub_8149954
- ldr r0, _08111C74 @ =sub_811240C
+ ldr r0, _08111C74 @ =Task_EvolutionScene
movs r1, 0
bl CreateTask
lsls r1, r0, 24
@@ -407,12 +407,12 @@ EvolutionScene: @ 8111984
lsls r2, 5
adds r0, r2, 0
strh r0, [r1]
- ldr r0, _08111C84 @ =nullsub_73
+ ldr r0, _08111C84 @ =HBlankCB_EvolutionScene
bl SetHBlankCallback
- ldr r0, _08111C88 @ =sub_8114FD4
+ ldr r0, _08111C88 @ =VBlankCB_EvolutionScene
bl SetVBlankCallback
bl m4aMPlayAllStop
- ldr r0, _08111C8C @ =sub_8112270
+ ldr r0, _08111C8C @ =CB2_EvolutionSceneUpdate_0
bl SetMainCallback2
add sp, 0x38
pop {r3-r5}
@@ -610,11 +610,11 @@ CB2_EvolutionSceneLoadGraphics: @ 8111C90
lsls r2, 5
adds r0, r2, 0
strh r0, [r1]
- ldr r0, _08111E74 @ =nullsub_73
+ ldr r0, _08111E74 @ =HBlankCB_EvolutionScene
bl SetHBlankCallback
- ldr r0, _08111E78 @ =sub_8114FD4
+ ldr r0, _08111E78 @ =VBlankCB_EvolutionScene
bl SetVBlankCallback
- ldr r0, _08111E7C @ =sub_8112270
+ ldr r0, _08111E7C @ =CB2_EvolutionSceneUpdate_0
bl SetMainCallback2
movs r0, 0x1
negs r0, r0
@@ -791,9 +791,9 @@ _08111F88:
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
- ldr r0, _08111FD4 @ =nullsub_73
+ ldr r0, _08111FD4 @ =HBlankCB_EvolutionScene
bl SetHBlankCallback
- ldr r0, _08111FD8 @ =sub_811505C
+ ldr r0, _08111FD8 @ =VBlankCB_TradeEvolutionScene
bl SetVBlankCallback
b _081120D6
.align 2, 0
@@ -904,7 +904,7 @@ _081120B4:
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
- ldr r0, _081120E0 @ =sub_8112290
+ ldr r0, _081120E0 @ =CB2_EvolutionSceneUpdate_1
bl SetMainCallback2
movs r1, 0x80
lsls r1, 19
@@ -1036,7 +1036,7 @@ TradeEvolutionScene: @ 81120E4
orrs r0, r2
strb r0, [r1]
bl sub_8149954
- ldr r0, _08112264 @ =sub_8112FE8
+ ldr r0, _08112264 @ =Task_TradeEvolutionScene
movs r1, 0
bl CreateTask
lsls r1, r0, 24
@@ -1066,7 +1066,7 @@ TradeEvolutionScene: @ 81120E4
strh r1, [r0, 0x1E]
mov r2, r10
strh r2, [r0, 0x20]
- ldr r0, _0811226C @ =sub_8112290
+ ldr r0, _0811226C @ =CB2_EvolutionSceneUpdate_1
bl SetMainCallback2
add sp, 0x24
pop {r3-r5}
@@ -2354,7 +2354,7 @@ _08112D4A:
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
- ldr r3, _08112D84 @ =sub_8111C90
+ ldr r3, _08112D84 @ =CB2_EvolutionSceneLoadGraphics
ldr r4, _08112D88 @ =word_2024E82
ldrh r4, [r4]
str r4, [sp]
@@ -2379,7 +2379,7 @@ _08112D8C:
b _08112FD0
_08112D9A:
ldr r1, [r4, 0x4]
- ldr r0, _08112DC4 @ =sub_8112270
+ ldr r0, _08112DC4 @ =CB2_EvolutionSceneUpdate_0
cmp r1, r0
beq _08112DA4
b _08112FD0
@@ -3645,7 +3645,7 @@ _0811388A:
subs r2, 0x1
lsls r2, 24
lsrs r2, 24
- ldr r3, _081138C4 @ =sub_8111E80
+ ldr r3, _081138C4 @ =CB2_TradeEvolutionSceneLoadGraphics
ldr r4, _081138C8 @ =word_2024E82
ldrh r4, [r4]
str r4, [sp]
@@ -3671,7 +3671,7 @@ _081138CC:
_081138DA:
ldr r0, _08113904 @ =gMain
ldr r1, [r0, 0x4]
- ldr r0, _08113908 @ =sub_8112290
+ ldr r0, _08113908 @ =CB2_EvolutionSceneUpdate_1
cmp r1, r0
beq _081138E6
b _08113B3A
diff --git a/asm/field_camera.s b/asm/field_camera.s
deleted file mode 100644
index 20187f062..000000000
--- a/asm/field_camera.s
+++ /dev/null
@@ -1,1330 +0,0 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
-
- .syntax unified
-
- .text
-
- thumb_func_start move_tilemap_camera_to_upper_left_corner_
-move_tilemap_camera_to_upper_left_corner_: @ 80579BC
- movs r1, 0
- strb r1, [r0, 0x2]
- strb r1, [r0, 0x3]
- strb r1, [r0]
- strb r1, [r0, 0x1]
- movs r1, 0x1
- strb r1, [r0, 0x4]
- bx lr
- thumb_func_end move_tilemap_camera_to_upper_left_corner_
-
- thumb_func_start tilemap_move_something
-tilemap_move_something: @ 80579CC
- ldrb r3, [r0, 0x2]
- adds r3, r1
- strb r3, [r0, 0x2]
- ldrb r1, [r0, 0x2]
- movs r3, 0x1F
- ands r1, r3
- strb r1, [r0, 0x2]
- ldrb r1, [r0, 0x3]
- adds r1, r2
- strb r1, [r0, 0x3]
- ldrb r1, [r0, 0x3]
- ands r1, r3
- strb r1, [r0, 0x3]
- bx lr
- thumb_func_end tilemap_move_something
-
- thumb_func_start coords8_add
-coords8_add: @ 80579E8
- ldrb r3, [r0]
- adds r3, r1
- strb r3, [r0]
- ldrb r1, [r0, 0x1]
- adds r1, r2
- strb r1, [r0, 0x1]
- bx lr
- thumb_func_end coords8_add
-
- thumb_func_start move_tilemap_camera_to_upper_left_corner
-move_tilemap_camera_to_upper_left_corner: @ 80579F8
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r0, _08057A44 @ =gUnknown_03000590
- bl move_tilemap_camera_to_upper_left_corner_
- mov r0, sp
- movs r6, 0
- strh r6, [r0]
- ldr r4, _08057A48 @ =gBG2TilemapBuffer
- ldr r5, _08057A4C @ =0x01000400
- adds r1, r4, 0
- adds r2, r5, 0
- bl CpuSet
- mov r0, sp
- adds r0, 0x2
- strh r6, [r0]
- ldr r2, _08057A50 @ =0xfffff800
- adds r1, r4, r2
- adds r2, r5, 0
- bl CpuSet
- add r0, sp, 0x4
- ldr r2, _08057A54 @ =0x00003014
- adds r1, r2, 0
- strh r1, [r0]
- movs r1, 0x80
- lsls r1, 4
- adds r4, r1
- adds r1, r4, 0
- adds r2, r5, 0
- bl CpuSet
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08057A44: .4byte gUnknown_03000590
-_08057A48: .4byte gBG2TilemapBuffer
-_08057A4C: .4byte 0x01000400
-_08057A50: .4byte 0xfffff800
-_08057A54: .4byte 0x00003014
- thumb_func_end move_tilemap_camera_to_upper_left_corner
-
- thumb_func_start sub_8057A58
-sub_8057A58: @ 8057A58
- push {r4-r7,lr}
- ldr r5, _08057AE8 @ =gBGHOffsetRegs
- ldr r1, [r5, 0x4]
- ldr r6, _08057AEC @ =gUnknown_03000590
- ldr r4, _08057AF0 @ =gUnknown_03000598
- ldrh r0, [r4]
- ldrb r2, [r6]
- adds r0, r2
- strh r0, [r1]
- ldr r3, _08057AF4 @ =gBGVOffsetRegs
- ldr r1, [r3, 0x4]
- ldr r2, _08057AF8 @ =gUnknown_0300059A
- ldrh r0, [r2]
- ldrb r7, [r6, 0x1]
- adds r0, r7
- adds r0, 0x8
- strh r0, [r1]
- ldr r1, [r5, 0x8]
- ldrh r0, [r4]
- ldrb r7, [r6]
- adds r0, r7
- strh r0, [r1]
- ldr r1, [r3, 0x8]
- ldrh r0, [r2]
- ldrb r7, [r6, 0x1]
- adds r0, r7
- adds r0, 0x8
- strh r0, [r1]
- ldr r1, [r5, 0xC]
- ldrh r0, [r4]
- ldrb r4, [r6]
- adds r0, r4
- strh r0, [r1]
- ldr r1, [r3, 0xC]
- ldrh r0, [r2]
- ldrb r7, [r6, 0x1]
- adds r0, r7
- adds r0, 0x8
- strh r0, [r1]
- ldrb r0, [r6, 0x4]
- cmp r0, 0
- beq _08057AE0
- ldr r0, _08057AFC @ =0x040000d4
- ldr r2, _08057B00 @ =gBG1TilemapBuffer
- str r2, [r0]
- ldr r1, _08057B04 @ =0x0600e800
- str r1, [r0, 0x4]
- ldr r3, _08057B08 @ =0x80000400
- str r3, [r0, 0x8]
- ldr r1, [r0, 0x8]
- movs r4, 0x80
- lsls r4, 4
- adds r1, r2, r4
- str r1, [r0]
- ldr r1, _08057B0C @ =0x0600e000
- str r1, [r0, 0x4]
- str r3, [r0, 0x8]
- ldr r1, [r0, 0x8]
- movs r7, 0x80
- lsls r7, 5
- adds r2, r7
- str r2, [r0]
- ldr r1, _08057B10 @ =0x0600f000
- str r1, [r0, 0x4]
- str r3, [r0, 0x8]
- ldr r0, [r0, 0x8]
- movs r0, 0
- strb r0, [r6, 0x4]
-_08057AE0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08057AE8: .4byte gBGHOffsetRegs
-_08057AEC: .4byte gUnknown_03000590
-_08057AF0: .4byte gUnknown_03000598
-_08057AF4: .4byte gBGVOffsetRegs
-_08057AF8: .4byte gUnknown_0300059A
-_08057AFC: .4byte 0x040000d4
-_08057B00: .4byte gBG1TilemapBuffer
-_08057B04: .4byte 0x0600e800
-_08057B08: .4byte 0x80000400
-_08057B0C: .4byte 0x0600e000
-_08057B10: .4byte 0x0600f000
- thumb_func_end sub_8057A58
-
- thumb_func_start sub_8057B14
-sub_8057B14: @ 8057B14
- push {r4,lr}
- ldr r3, _08057B34 @ =gUnknown_03000590
- ldr r2, _08057B38 @ =gUnknown_03000598
- ldrh r2, [r2]
- ldrb r4, [r3]
- adds r2, r4
- strh r2, [r0]
- ldr r0, _08057B3C @ =gUnknown_0300059A
- ldrh r0, [r0]
- ldrb r3, [r3, 0x1]
- adds r0, r3
- adds r0, 0x8
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08057B34: .4byte gUnknown_03000590
-_08057B38: .4byte gUnknown_03000598
-_08057B3C: .4byte gUnknown_0300059A
- thumb_func_end sub_8057B14
-
- thumb_func_start DrawWholeMapView
-DrawWholeMapView: @ 8057B40
- push {lr}
- ldr r1, _08057B60 @ =gSaveBlock1
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r2, 0x2
- ldrsh r1, [r1, r2]
- ldr r2, _08057B64 @ =gMapHeader
- ldr r2, [r2]
- bl DrawWholeMapViewInternal
- ldr r1, _08057B68 @ =gUnknown_03000590
- movs r0, 0x1
- strb r0, [r1, 0x4]
- pop {r0}
- bx r0
- .align 2, 0
-_08057B60: .4byte gSaveBlock1
-_08057B64: .4byte gMapHeader
-_08057B68: .4byte gUnknown_03000590
- thumb_func_end DrawWholeMapView
-
- thumb_func_start DrawWholeMapViewInternal
-DrawWholeMapViewInternal: @ 8057B6C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- mov r9, r1
- mov r8, r2
- movs r1, 0
-_08057B80:
- ldr r2, _08057BEC @ =gUnknown_03000590
- ldrb r0, [r2, 0x3]
- adds r0, r1, r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1F
- bls _08057B94
- subs r0, 0x20
- lsls r0, 24
- lsrs r0, 24
-_08057B94:
- lsls r6, r0, 5
- movs r4, 0
- adds r7, r1, 0x2
- str r7, [sp]
- lsrs r5, r1, 1
-_08057B9E:
- ldr r1, _08057BEC @ =gUnknown_03000590
- ldrb r0, [r1, 0x2]
- adds r0, r4, r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1F
- bls _08057BB2
- subs r0, 0x20
- lsls r0, 24
- lsrs r0, 24
-_08057BB2:
- adds r1, r6, r0
- lsls r1, 16
- lsrs r1, 16
- lsrs r2, r4, 1
- add r2, r10
- mov r0, r8
- mov r7, r9
- adds r3, r7, r5
- bl DrawMetatileAt
- adds r0, r4, 0x2
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1F
- bls _08057B9E
- ldr r1, [sp]
- lsls r0, r1, 24
- lsrs r1, r0, 24
- cmp r1, 0x1F
- bls _08057B80
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08057BEC: .4byte gUnknown_03000590
- thumb_func_end DrawWholeMapViewInternal
-
- thumb_func_start RedrawMapSlicesForCameraUpdate
-RedrawMapSlicesForCameraUpdate: @ 8057BF0
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- adds r7, r2, 0
- ldr r0, _08057C38 @ =gMapHeader
- ldr r4, [r0]
- cmp r6, 0
- ble _08057C08
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8057D48
-_08057C08:
- cmp r6, 0
- bge _08057C14
- adds r0, r5, 0
- adds r1, r4, 0
- bl RedrawMapSliceEast
-_08057C14:
- cmp r7, 0
- ble _08057C20
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8057C3C
-_08057C20:
- cmp r7, 0
- bge _08057C2C
- adds r0, r5, 0
- adds r1, r4, 0
- bl RedrawMapSliceSouth
-_08057C2C:
- movs r0, 0x1
- strb r0, [r5, 0x4]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08057C38: .4byte gMapHeader
- thumb_func_end RedrawMapSlicesForCameraUpdate
-
- thumb_func_start sub_8057C3C
-sub_8057C3C: @ 8057C3C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- mov r8, r1
- ldrb r0, [r5, 0x3]
- adds r0, 0x1C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1F
- bls _08057C58
- subs r0, 0x20
- lsls r0, 24
- lsrs r0, 24
-_08057C58:
- lsls r7, r0, 5
- movs r4, 0
- ldr r6, _08057CA0 @ =gSaveBlock1
-_08057C5E:
- ldrb r0, [r5, 0x2]
- adds r0, r4, r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1F
- bls _08057C70
- subs r0, 0x20
- lsls r0, 24
- lsrs r0, 24
-_08057C70:
- adds r1, r7, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0
- ldrsh r2, [r6, r0]
- lsrs r0, r4, 1
- adds r2, r0
- movs r0, 0x2
- ldrsh r3, [r6, r0]
- adds r3, 0xE
- mov r0, r8
- bl DrawMetatileAt
- adds r0, r4, 0x2
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1F
- bls _08057C5E
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08057CA0: .4byte gSaveBlock1
- thumb_func_end sub_8057C3C
-
- thumb_func_start RedrawMapSliceSouth
-RedrawMapSliceSouth: @ 8057CA4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- mov r8, r1
- ldrb r0, [r5, 0x3]
- lsls r7, r0, 5
- movs r4, 0
- ldr r6, _08057CF0 @ =gSaveBlock1
-_08057CB6:
- ldrb r0, [r5, 0x2]
- adds r0, r4, r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1F
- bls _08057CC8
- subs r0, 0x20
- lsls r0, 24
- lsrs r0, 24
-_08057CC8:
- adds r1, r7, r0
- movs r0, 0
- ldrsh r2, [r6, r0]
- lsrs r0, r4, 1
- adds r2, r0
- movs r0, 0x2
- ldrsh r3, [r6, r0]
- mov r0, r8
- bl DrawMetatileAt
- adds r0, r4, 0x2
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1F
- bls _08057CB6
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08057CF0: .4byte gSaveBlock1
- thumb_func_end RedrawMapSliceSouth
-
- thumb_func_start RedrawMapSliceEast
-RedrawMapSliceEast: @ 8057CF4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- mov r8, r1
- ldrb r6, [r5, 0x2]
- movs r4, 0
-_08057D02:
- ldrb r0, [r5, 0x3]
- adds r0, r4, r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1F
- bls _08057D14
- subs r0, 0x20
- lsls r0, 24
- lsrs r0, 24
-_08057D14:
- lsls r1, r0, 5
- adds r1, r6
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _08057D44 @ =gSaveBlock1
- movs r3, 0
- ldrsh r2, [r0, r3]
- movs r7, 0x2
- ldrsh r3, [r0, r7]
- lsrs r0, r4, 1
- adds r3, r0
- mov r0, r8
- bl DrawMetatileAt
- adds r0, r4, 0x2
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1F
- bls _08057D02
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08057D44: .4byte gSaveBlock1
- thumb_func_end RedrawMapSliceEast
-
- thumb_func_start sub_8057D48
-sub_8057D48: @ 8057D48
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- mov r8, r1
- ldrb r0, [r6, 0x2]
- adds r0, 0x1C
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1F
- bls _08057D66
- adds r0, r5, 0
- subs r0, 0x20
- lsls r0, 24
- lsrs r5, r0, 24
-_08057D66:
- movs r4, 0
- ldr r7, _08057DAC @ =gSaveBlock1
-_08057D6A:
- ldrb r0, [r6, 0x3]
- adds r0, r4, r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1F
- bls _08057D7C
- subs r0, 0x20
- lsls r0, 24
- lsrs r0, 24
-_08057D7C:
- lsls r1, r0, 5
- adds r1, r5
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0
- ldrsh r2, [r7, r0]
- adds r2, 0xE
- movs r0, 0x2
- ldrsh r3, [r7, r0]
- lsrs r0, r4, 1
- adds r3, r0
- mov r0, r8
- bl DrawMetatileAt
- adds r0, r4, 0x2
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1F
- bls _08057D6A
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08057DAC: .4byte gSaveBlock1
- thumb_func_end sub_8057D48
-
- thumb_func_start CurrentMapDrawMetatileAt
-CurrentMapDrawMetatileAt: @ 8057DB0
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r6, _08057DE4 @ =gUnknown_03000590
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl MapPosToBgTilemapOffset
- adds r1, r0, 0
- cmp r1, 0
- blt _08057DDC
- ldr r0, _08057DE8 @ =gMapHeader
- ldr r0, [r0]
- lsls r1, 16
- lsrs r1, 16
- adds r2, r4, 0
- adds r3, r5, 0
- bl DrawMetatileAt
- movs r0, 0x1
- strb r0, [r6, 0x4]
-_08057DDC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08057DE4: .4byte gUnknown_03000590
-_08057DE8: .4byte gMapHeader
- thumb_func_end CurrentMapDrawMetatileAt
-
- thumb_func_start DrawDoorMetatileAt
-DrawDoorMetatileAt: @ 8057DEC
- push {r4-r6,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- ldr r6, _08057E1C @ =gUnknown_03000590
- adds r0, r6, 0
- adds r1, r3, 0
- adds r2, r4, 0
- bl MapPosToBgTilemapOffset
- cmp r0, 0
- blt _08057E14
- lsls r2, r0, 16
- lsrs r2, 16
- movs r0, 0x1
- adds r1, r5, 0
- bl DrawMetatile
- movs r0, 0x1
- strb r0, [r6, 0x4]
-_08057E14:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08057E1C: .4byte gUnknown_03000590
- thumb_func_end DrawDoorMetatileAt
-
- thumb_func_start DrawMetatileAt
-DrawMetatileAt: @ 8057E20
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- adds r6, r2, 0
- adds r7, r3, 0
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- adds r0, r6, 0
- adds r1, r7, 0
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x80
- lsls r0, 3
- cmp r4, r0
- bls _08057E48
- movs r4, 0
-_08057E48:
- ldr r0, _08057E54 @ =0x000001ff
- cmp r4, r0
- bhi _08057E58
- ldr r0, [r5, 0x10]
- ldr r5, [r0, 0xC]
- b _08057E64
- .align 2, 0
-_08057E54: .4byte 0x000001ff
-_08057E58:
- ldr r0, [r5, 0x14]
- ldr r5, [r0, 0xC]
- ldr r1, _08057E84 @ =0xfffffe00
- adds r0, r4, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_08057E64:
- adds r0, r6, 0
- adds r1, r7, 0
- bl MapGridGetMetatileLayerTypeAt
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r4, 4
- adds r1, r5, r1
- mov r2, r8
- bl DrawMetatile
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08057E84: .4byte 0xfffffe00
- thumb_func_end DrawMetatileAt
-
- thumb_func_start DrawMetatile
-DrawMetatile: @ 8057E88
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r1, 0
- lsls r2, 16
- lsrs r6, r2, 16
- cmp r0, 0x1
- beq _08057F28
- cmp r0, 0x1
- bgt _08057EA6
- cmp r0, 0
- bne _08057EA4
- b _08057FA0
-_08057EA4:
- b _08058010
-_08057EA6:
- cmp r0, 0x2
- beq _08057EAC
- b _08058010
-_08057EAC:
- ldr r0, _08057F24 @ =gBG0TilemapBuffer
- mov r12, r0
- lsls r1, r6, 1
- mov r9, r1
- movs r5, 0xC0
- lsls r5, 5
- add r5, r12
- adds r1, r5
- ldrh r0, [r7]
- movs r2, 0
- mov r8, r2
- strh r0, [r1]
- adds r4, r6, 0x1
- lsls r4, 1
- adds r1, r4, r5
- ldrh r0, [r7, 0x2]
- strh r0, [r1]
- adds r3, r6, 0
- adds r3, 0x20
- lsls r3, 1
- adds r1, r3, r5
- ldrh r0, [r7, 0x4]
- strh r0, [r1]
- adds r2, r6, 0
- adds r2, 0x21
- lsls r2, 1
- adds r5, r2, r5
- ldrh r0, [r7, 0x6]
- strh r0, [r5]
- movs r1, 0x80
- lsls r1, 5
- add r1, r12
- mov r5, r9
- adds r0, r5, r1
- mov r5, r8
- strh r5, [r0]
- adds r0, r4, r1
- strh r5, [r0]
- adds r0, r3, r1
- strh r5, [r0]
- adds r1, r2, r1
- strh r5, [r1]
- movs r5, 0x80
- lsls r5, 4
- add r5, r12
- add r9, r5
- ldrh r0, [r7, 0x8]
- mov r1, r9
- strh r0, [r1]
- adds r4, r5
- ldrh r0, [r7, 0xA]
- strh r0, [r4]
- adds r3, r5
- ldrh r0, [r7, 0xC]
- strh r0, [r3]
- adds r2, r5
- ldrh r0, [r7, 0xE]
- strh r0, [r2]
- b _08058010
- .align 2, 0
-_08057F24: .4byte gBG0TilemapBuffer
-_08057F28:
- ldr r2, _08057F98 @ =gBG0TilemapBuffer
- mov r12, r2
- lsls r3, r6, 1
- mov r8, r3
- movs r2, 0xC0
- lsls r2, 5
- add r2, r12
- adds r1, r3, r2
- ldrh r0, [r7]
- movs r5, 0
- mov r9, r5
- strh r0, [r1]
- adds r5, r6, 0x1
- lsls r5, 1
- adds r1, r5, r2
- ldrh r0, [r7, 0x2]
- strh r0, [r1]
- adds r4, r6, 0
- adds r4, 0x20
- lsls r4, 1
- adds r1, r4, r2
- ldrh r0, [r7, 0x4]
- strh r0, [r1]
- adds r3, r6, 0
- adds r3, 0x21
- lsls r3, 1
- adds r2, r3, r2
- ldrh r0, [r7, 0x6]
- strh r0, [r2]
- movs r1, 0x80
- lsls r1, 5
- add r1, r12
- mov r0, r8
- adds r2, r0, r1
- ldrh r0, [r7, 0x8]
- strh r0, [r2]
- adds r2, r5, r1
- ldrh r0, [r7, 0xA]
- strh r0, [r2]
- adds r2, r4, r1
- ldrh r0, [r7, 0xC]
- strh r0, [r2]
- adds r1, r3, r1
- ldrh r0, [r7, 0xE]
- strh r0, [r1]
- ldr r1, _08057F9C @ =gBG1TilemapBuffer
- add r8, r1
- mov r0, r9
- mov r2, r8
- strh r0, [r2]
- adds r5, r1
- strh r0, [r5]
- adds r4, r1
- strh r0, [r4]
- adds r3, r1
- b _0805800E
- .align 2, 0
-_08057F98: .4byte gBG0TilemapBuffer
-_08057F9C: .4byte gBG1TilemapBuffer
-_08057FA0:
- ldr r1, _0805801C @ =gBG0TilemapBuffer
- mov r9, r1
- lsls r2, r6, 1
- mov r8, r2
- movs r1, 0xC0
- lsls r1, 5
- add r1, r9
- adds r0, r2, r1
- ldr r2, _08058020 @ =0x00003014
- strh r2, [r0]
- adds r5, r6, 0x1
- lsls r5, 1
- adds r0, r5, r1
- strh r2, [r0]
- adds r4, r6, 0
- adds r4, 0x20
- lsls r4, 1
- adds r0, r4, r1
- strh r2, [r0]
- adds r3, r6, 0
- adds r3, 0x21
- lsls r3, 1
- adds r1, r3, r1
- strh r2, [r1]
- movs r1, 0x80
- lsls r1, 5
- add r1, r9
- mov r0, r8
- adds r2, r0, r1
- ldrh r0, [r7]
- strh r0, [r2]
- adds r2, r5, r1
- ldrh r0, [r7, 0x2]
- strh r0, [r2]
- adds r2, r4, r1
- ldrh r0, [r7, 0x4]
- strh r0, [r2]
- adds r1, r3, r1
- ldrh r0, [r7, 0x6]
- strh r0, [r1]
- movs r2, 0x80
- lsls r2, 4
- add r2, r9
- add r8, r2
- ldrh r0, [r7, 0x8]
- mov r1, r8
- strh r0, [r1]
- adds r5, r2
- ldrh r0, [r7, 0xA]
- strh r0, [r5]
- adds r4, r2
- ldrh r0, [r7, 0xC]
- strh r0, [r4]
- adds r3, r2
- ldrh r0, [r7, 0xE]
-_0805800E:
- strh r0, [r3]
-_08058010:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805801C: .4byte gBG0TilemapBuffer
-_08058020: .4byte 0x00003014
- thumb_func_end DrawMetatile
-
- thumb_func_start MapPosToBgTilemapOffset
-MapPosToBgTilemapOffset: @ 8058024
- push {r4,r5,lr}
- adds r3, r0, 0
- ldr r4, _08058054 @ =gSaveBlock1
- movs r5, 0
- ldrsh r0, [r4, r5]
- subs r1, r0
- lsls r1, 1
- cmp r1, 0x1F
- bhi _0805804C
- ldrb r0, [r3, 0x2]
- adds r1, r0
- cmp r1, 0x1F
- ble _08058040
- subs r1, 0x20
-_08058040:
- movs r5, 0x2
- ldrsh r0, [r4, r5]
- subs r0, r2, r0
- lsls r2, r0, 1
- cmp r2, 0x1F
- bls _08058058
-_0805804C:
- movs r0, 0x1
- negs r0, r0
- b _08058066
- .align 2, 0
-_08058054: .4byte gSaveBlock1
-_08058058:
- ldrb r0, [r3, 0x3]
- adds r2, r0
- cmp r2, 0x1F
- ble _08058062
- subs r2, 0x20
-_08058062:
- lsls r0, r2, 5
- adds r0, r1
-_08058066:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end MapPosToBgTilemapOffset
-
- thumb_func_start CameraUpdateCallback
-CameraUpdateCallback: @ 805806C
- push {lr}
- adds r3, r0, 0
- ldr r2, [r3, 0x4]
- cmp r2, 0
- beq _0805808C
- ldr r1, _08058090 @ =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r2, 0x32
- ldrsh r1, [r0, r2]
- str r1, [r3, 0x8]
- movs r1, 0x34
- ldrsh r0, [r0, r1]
- str r0, [r3, 0xC]
-_0805808C:
- pop {r0}
- bx r0
- .align 2, 0
-_08058090: .4byte gSprites
- thumb_func_end CameraUpdateCallback
-
- thumb_func_start ResetCameraUpdateInfo
-ResetCameraUpdateInfo: @ 8058094
- ldr r1, _080580A8 @ =gUnknown_03004880
- movs r0, 0
- str r0, [r1, 0x8]
- str r0, [r1, 0xC]
- str r0, [r1, 0x10]
- str r0, [r1, 0x14]
- str r0, [r1, 0x4]
- str r0, [r1]
- bx lr
- .align 2, 0
-_080580A8: .4byte gUnknown_03004880
- thumb_func_end ResetCameraUpdateInfo
-
- thumb_func_start InitCameraUpdateCallback
-InitCameraUpdateCallback: @ 80580AC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080580E0 @ =gUnknown_03004880
- ldr r1, [r4, 0x4]
- cmp r1, 0
- beq _080580C8
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080580E4 @ =gSprites
- adds r0, r1
- bl DestroySprite
-_080580C8:
- adds r0, r5, 0
- bl AddCameraObject
- lsls r0, 24
- lsrs r0, 24
- str r0, [r4, 0x4]
- ldr r0, _080580E8 @ =CameraUpdateCallback
- str r0, [r4]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080580E0: .4byte gUnknown_03004880
-_080580E4: .4byte gSprites
-_080580E8: .4byte CameraUpdateCallback
- thumb_func_end InitCameraUpdateCallback
-
- thumb_func_start CameraUpdate
-CameraUpdate: @ 80580EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r6, _080581EC @ =gUnknown_03004880
- ldr r1, [r6]
- cmp r1, 0
- beq _08058100
- adds r0, r6, 0
- bl _call_via_r1
-_08058100:
- ldr r7, [r6, 0x8]
- 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 _0805811E
- cmp r7, 0
- beq _0805811E
- subs r4, 0x1
- cmp r7, 0
- ble _0805811E
- movs r4, 0x1
-_0805811E:
- cmp r0, 0
- bne _08058132
- mov r2, r8
- cmp r2, 0
- beq _08058132
- movs r5, 0x1
- negs r5, r5
- cmp r2, 0
- ble _08058132
- movs r5, 0x1
-_08058132:
- cmp r1, 0
- beq _08058144
- cmn r1, r7
- bne _08058144
- movs r4, 0x1
- negs r4, r4
- cmp r7, 0
- ble _08058144
- movs r4, 0x1
-_08058144:
- cmp r0, 0
- beq _08058158
- mov r3, r8
- cmn r0, r3
- bne _08058158
- movs r4, 0x1
- negs r4, r4
- cmp r3, 0
- ble _08058158
- movs r4, 0x1
-_08058158:
- ldr r2, _080581EC @ =gUnknown_03004880
- ldr r0, [r2, 0x10]
- adds r1, r0, r7
- str r1, [r2, 0x10]
- adds r0, r1, 0
- cmp r1, 0
- bge _08058168
- adds r0, 0xF
-_08058168:
- asrs r0, 4
- lsls 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 _08058180
- adds r0, 0xF
-_08058180:
- asrs r0, 4
- lsls r0, 4
- subs r0, r1, r0
- str r0, [r2, 0x14]
- cmp r4, 0
- bne _08058190
- cmp r5, 0
- beq _080581C6
-_08058190:
- adds r0, r4, 0
- adds r1, r5, 0
- bl CameraMove
- adds r0, r4, 0
- adds r1, r5, 0
- bl UpdateFieldObjectsForCameraUpdate
- adds r0, r4, 0
- adds r1, r5, 0
- bl RotatingGatePuzzleCameraUpdate
- bl ResetBerryTreeSparkleFlags
- ldr r6, _080581F0 @ =gUnknown_03000590
- lsls r4, 1
- lsls 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
-_080581C6:
- ldr r0, _080581F0 @ =gUnknown_03000590
- adds r1, r7, 0
- mov r2, r8
- bl coords8_add
- ldr r1, _080581F4 @ =gUnknown_0300489C
- ldrh r0, [r1]
- subs r0, r7
- strh r0, [r1]
- ldr r1, _080581F8 @ =gUnknown_03004898
- ldrh r0, [r1]
- mov r2, r8
- subs r0, r2
- strh r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080581EC: .4byte gUnknown_03004880
-_080581F0: .4byte gUnknown_03000590
-_080581F4: .4byte gUnknown_0300489C
-_080581F8: .4byte gUnknown_03004898
- thumb_func_end CameraUpdate
-
- thumb_func_start camera_move_and_redraw
-camera_move_and_redraw: @ 80581FC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl CameraMove
- lsls r0, r4, 16
- asrs r0, 16
- lsls r1, r5, 16
- asrs r1, 16
- bl UpdateFieldObjectsForCameraUpdate
- bl DrawWholeMapView
- ldr r1, _08058230 @ =gUnknown_0300489C
- lsls r4, 4
- ldrh r0, [r1]
- subs r0, r4
- strh r0, [r1]
- ldr r1, _08058234 @ =gUnknown_03004898
- lsls r5, 4
- ldrh r0, [r1]
- subs r0, r5
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08058230: .4byte gUnknown_0300489C
-_08058234: .4byte gUnknown_03004898
- thumb_func_end camera_move_and_redraw
-
- thumb_func_start SetCameraPanningCallback
-SetCameraPanningCallback: @ 8058238
- ldr r1, _08058240 @ =gUnknown_030005A0
- str r0, [r1]
- bx lr
- .align 2, 0
-_08058240: .4byte gUnknown_030005A0
- thumb_func_end SetCameraPanningCallback
-
- thumb_func_start SetCameraPanning
-SetCameraPanning: @ 8058244
- ldr r2, _08058254 @ =gUnknown_03000598
- strh r0, [r2]
- ldr r0, _08058258 @ =gUnknown_0300059A
- lsls r1, 16
- asrs r1, 16
- adds r1, 0x20
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08058254: .4byte gUnknown_03000598
-_08058258: .4byte gUnknown_0300059A
- thumb_func_end SetCameraPanning
-
- thumb_func_start InstallCameraPanAheadCallback
-InstallCameraPanAheadCallback: @ 805825C
- ldr r1, _08058278 @ =gUnknown_030005A0
- ldr r0, _0805827C @ =CameraPanningCB_PanAhead
- str r0, [r1]
- ldr r1, _08058280 @ =gUnknown_0300059C
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08058284 @ =gUnknown_03000598
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08058288 @ =gUnknown_0300059A
- movs r0, 0x20
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08058278: .4byte gUnknown_030005A0
-_0805827C: .4byte CameraPanningCB_PanAhead
-_08058280: .4byte gUnknown_0300059C
-_08058284: .4byte gUnknown_03000598
-_08058288: .4byte gUnknown_0300059A
- thumb_func_end InstallCameraPanAheadCallback
-
- thumb_func_start UpdateCameraPanning
-UpdateCameraPanning: @ 805828C
- push {lr}
- ldr r0, _080582BC @ =gUnknown_030005A0
- ldr r0, [r0]
- cmp r0, 0
- beq _0805829A
- bl _call_via_r0
-_0805829A:
- ldr r2, _080582C0 @ =gSpriteCoordOffsetX
- ldr r0, _080582C4 @ =gUnknown_0300489C
- ldr r1, _080582C8 @ =gUnknown_03000598
- ldrh r0, [r0]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r2]
- ldr r2, _080582CC @ =gSpriteCoordOffsetY
- ldr r0, _080582D0 @ =gUnknown_03004898
- ldr r1, _080582D4 @ =gUnknown_0300059A
- ldrh r0, [r0]
- ldrh r1, [r1]
- subs r0, r1
- subs r0, 0x8
- strh r0, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_080582BC: .4byte gUnknown_030005A0
-_080582C0: .4byte gSpriteCoordOffsetX
-_080582C4: .4byte gUnknown_0300489C
-_080582C8: .4byte gUnknown_03000598
-_080582CC: .4byte gSpriteCoordOffsetY
-_080582D0: .4byte gUnknown_03004898
-_080582D4: .4byte gUnknown_0300059A
- thumb_func_end UpdateCameraPanning
-
- thumb_func_start CameraPanningCB_PanAhead
-CameraPanningCB_PanAhead: @ 80582D8
- push {lr}
- ldr r0, _080582E8 @ =gUnknown_0202E854
- ldrb r0, [r0]
- cmp r0, 0
- bne _080582EC
- bl InstallCameraPanAheadCallback
- b _08058374
- .align 2, 0
-_080582E8: .4byte gUnknown_0202E854
-_080582EC:
- ldr r0, _08058304 @ =gPlayerAvatar
- ldrb r0, [r0, 0x3]
- cmp r0, 0x1
- bne _0805830C
- ldr r0, _08058308 @ =gUnknown_0300059C
- ldrb r1, [r0]
- movs r2, 0x1
- eors r1, r2
- strb r1, [r0]
- cmp r1, 0
- beq _08058374
- b _08058312
- .align 2, 0
-_08058304: .4byte gPlayerAvatar
-_08058308: .4byte gUnknown_0300059C
-_0805830C:
- ldr r1, _08058334 @ =gUnknown_0300059C
- movs r0, 0
- strb r0, [r1]
-_08058312:
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0805833C
- ldr r2, _08058338 @ =gUnknown_0300059A
- ldrh r3, [r2]
- movs r0, 0
- ldrsh r1, [r2, r0]
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- ble _08058374
- subs r0, r3, 0x2
- b _08058372
- .align 2, 0
-_08058334: .4byte gUnknown_0300059C
-_08058338: .4byte gUnknown_0300059A
-_0805833C:
- cmp r0, 0x1
- bne _08058358
- ldr r1, _08058354 @ =gUnknown_0300059A
- ldrh r2, [r1]
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0x47
- bgt _08058374
- adds r0, r2, 0x2
- strh r0, [r1]
- b _08058374
- .align 2, 0
-_08058354: .4byte gUnknown_0300059A
-_08058358:
- ldr r2, _08058368 @ =gUnknown_0300059A
- ldrh r0, [r2]
- movs r3, 0
- ldrsh r1, [r2, r3]
- cmp r1, 0x1F
- bgt _0805836C
- adds r0, 0x2
- b _08058372
- .align 2, 0
-_08058368: .4byte gUnknown_0300059A
-_0805836C:
- cmp r1, 0x20
- ble _08058374
- subs r0, 0x2
-_08058372:
- strh r0, [r2]
-_08058374:
- pop {r0}
- bx r0
- thumb_func_end CameraPanningCB_PanAhead
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_door.s b/asm/field_door.s
deleted file mode 100644
index 535874fbe..000000000
--- a/asm/field_door.s
+++ /dev/null
@@ -1,613 +0,0 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8058378
-sub_8058378: @ 8058378
- push {lr}
- ldr r1, _08058388 @ =0x06007f00
- movs r2, 0x40
- bl CpuFastSet
- pop {r0}
- bx r0
- .align 2, 0
-_08058388: .4byte 0x06007f00
- thumb_func_end sub_8058378
-
- thumb_func_start door_build_blockdef
-door_build_blockdef: @ 805838C
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- movs r4, 0
- adds r1, r6, 0
-_08058398:
- ldrb r0, [r2]
- lsls r0, 28
- lsrs r3, r0, 16
- adds r2, 0x1
- adds r0, r5, r4
- orrs r3, r0
- strh r3, [r1]
- adds r1, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _08058398
- cmp r4, 0x7
- bgt _080583C6
- lsls r0, r4, 1
- adds r1, r0, r6
-_080583B6:
- ldrb r0, [r2]
- lsls r3, r0, 12
- adds r2, 0x1
- strh r3, [r1]
- adds r1, 0x2
- adds r4, 0x1
- cmp r4, 0x7
- ble _080583B6
-_080583C6:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end door_build_blockdef
-
- thumb_func_start sub_80583CC
-sub_80583CC: @ 80583CC
- push {r4-r6,lr}
- sub sp, 0x10
- adds r5, r0, 0
- adds r6, r1, 0
- adds r4, r2, 0
- movs r1, 0xFE
- lsls r1, 2
- mov r0, sp
- bl door_build_blockdef
- subs r1, r6, 0x1
- adds r0, r5, 0
- mov r2, sp
- bl DrawDoorMetatileAt
- movs r1, 0xFF
- lsls r1, 2
- adds r4, 0x4
- mov r0, sp
- adds r2, r4, 0
- bl door_build_blockdef
- adds r0, r5, 0
- adds r1, r6, 0
- mov r2, sp
- bl DrawDoorMetatileAt
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80583CC
-
- thumb_func_start sub_805840C
-sub_805840C: @ 805840C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- subs r1, r5, 0x1
- bl CurrentMapDrawMetatileAt
- adds r0, r4, 0
- adds r1, r5, 0
- bl CurrentMapDrawMetatileAt
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_805840C
-
- thumb_func_start sub_8058428
-sub_8058428: @ 8058428
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- adds r7, r3, 0
- ldrh r1, [r4, 0x2]
- ldr r0, _08058444 @ =0x0000ffff
- cmp r1, r0
- bne _08058448
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_805840C
- b _0805845C
- .align 2, 0
-_08058444: .4byte 0x0000ffff
-_08058448:
- ldrh r1, [r4, 0x2]
- ldr r0, [r5, 0x4]
- adds r0, r1
- bl sub_8058378
- ldr r2, [r5, 0x8]
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_80583CC
-_0805845C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8058428
-
- thumb_func_start sub_8058464
-sub_8058464: @ 8058464
- push {r4-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 _0805848A
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- lsls 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 sub_8058428
-_0805848A:
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0]
- cmp r1, r0
- bne _080584B8
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0]
- cmp r0, 0
- bne _080584BE
- movs r0, 0
- b _080584C0
-_080584B8:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
-_080584BE:
- movs r0, 0x1
-_080584C0:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8058464
-
- thumb_func_start task50_overworld_door
-task50_overworld_door: @ 80584C8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r2, r4, 2
- adds r2, r4
- lsls r2, 3
- ldr r0, _080584FC @ =gTasks + 0x8
- adds r2, r0
- ldrh r1, [r2]
- lsls r1, 16
- ldrh r0, [r2, 0x2]
- orrs r1, r0
- ldrh r0, [r2, 0x4]
- lsls r0, 16
- ldrh r3, [r2, 0x6]
- orrs r0, r3
- bl sub_8058464
- cmp r0, 0
- bne _080584F6
- adds r0, r4, 0
- bl DestroyTask
-_080584F6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080584FC: .4byte gTasks + 0x8
- thumb_func_end task50_overworld_door
-
- thumb_func_start door_frame_last
-door_frame_last: @ 8058500
- push {lr}
- adds r1, r0, 0
- b _08058508
-_08058506:
- adds r1, 0x4
-_08058508:
- ldrb r0, [r1]
- cmp r0, 0
- bne _08058506
- subs r0, r1, 0x4
- pop {r1}
- bx r1
- thumb_func_end door_frame_last
-
- thumb_func_start door_find
-door_find: @ 8058514
- push {lr}
- adds r2, r0, 0
- lsls r1, 16
- lsrs r1, 16
- b _0805852A
-_0805851E:
- ldrh r0, [r2]
- cmp r0, r1
- bne _08058528
- adds r0, r2, 0
- b _08058532
-_08058528:
- adds r2, 0xC
-_0805852A:
- ldr r0, [r2, 0x4]
- cmp r0, 0
- bne _0805851E
- movs r0, 0
-_08058532:
- pop {r1}
- bx r1
- thumb_func_end door_find
-
- thumb_func_start task_overworld_door_add_if_inactive
-task_overworld_door_add_if_inactive: @ 8058538
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r5, r1, 0
- adds r7, r2, 0
- mov r8, r3
- ldr r4, _08058584 @ =task50_overworld_door
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0805858C
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r2, _08058588 @ =gTasks + 0x8
- adds r1, r2
- strh r7, [r1, 0xC]
- mov r2, r8
- strh r2, [r1, 0xE]
- strh r5, [r1, 0x2]
- lsrs r2, r5, 16
- strh r2, [r1]
- strh r6, [r1, 0x6]
- lsrs r2, r6, 16
- strh r2, [r1, 0x4]
- lsls r0, 24
- asrs r0, 24
- b _08058590
- .align 2, 0
-_08058584: .4byte task50_overworld_door
-_08058588: .4byte gTasks + 0x8
-_0805858C:
- movs r0, 0x1
- negs r0, r0
-_08058590:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end task_overworld_door_add_if_inactive
-
- thumb_func_start sub_805859C
-sub_805859C: @ 805859C
- push {lr}
- adds r0, r1, 0
- adds r1, r2, 0
- bl sub_805840C
- pop {r0}
- bx r0
- thumb_func_end sub_805859C
-
- thumb_func_start sub_80585AC
-sub_80585AC: @ 80585AC
- push {r4-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, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl door_find
- adds r4, r0, 0
- cmp r4, 0
- beq _080585E2
- ldr r1, _080585E8 @ =gUnknown_0830F87C
- adds r0, r1, 0
- bl door_frame_last
- adds r1, r0, 0
- adds r0, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_8058428
-_080585E2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080585E8: .4byte gUnknown_0830F87C
- thumb_func_end sub_80585AC
-
- thumb_func_start sub_80585EC
-sub_80585EC: @ 80585EC
- push {r4-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, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl door_find
- cmp r0, 0
- beq _08058620
- ldr r1, _0805861C @ =gUnknown_0830F87C
- adds r2, r5, 0
- adds r3, r6, 0
- bl task_overworld_door_add_if_inactive
- lsls r0, 24
- asrs r0, 24
- b _08058624
- .align 2, 0
-_0805861C: .4byte gUnknown_0830F87C
-_08058620:
- movs r0, 0x1
- negs r0, r0
-_08058624:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80585EC
-
- thumb_func_start sub_805862C
-sub_805862C: @ 805862C
- push {r4-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, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl door_find
- cmp r0, 0
- beq _08058660
- ldr r1, _0805865C @ =gUnknown_0830F890
- adds r2, r5, 0
- adds r3, r6, 0
- bl task_overworld_door_add_if_inactive
- lsls r0, 24
- asrs r0, 24
- b _08058664
- .align 2, 0
-_0805865C: .4byte gUnknown_0830F890
-_08058660:
- movs r0, 0x1
- negs r0, r0
-_08058664:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_805862C
-
- thumb_func_start cur_mapdata_get_door_x2_at
-cur_mapdata_get_door_x2_at: @ 805866C
- push {r4,lr}
- adds r4, r0, 0
- adds r0, r1, 0
- adds r1, r2, 0
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl door_find
- cmp r0, 0
- beq _08058690
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- b _08058694
-_08058690:
- movs r0, 0x1
- negs r0, r0
-_08058694:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end cur_mapdata_get_door_x2_at
-
- thumb_func_start unref_sub_805869C
-unref_sub_805869C: @ 805869C
- push {lr}
- adds r3, r0, 0
- adds r2, r1, 0
- ldr r0, _080586B0 @ =gDoorAnimGraphicsTable
- adds r1, r3, 0
- bl sub_80585EC
- pop {r0}
- bx r0
- .align 2, 0
-_080586B0: .4byte gDoorAnimGraphicsTable
- thumb_func_end unref_sub_805869C
-
- thumb_func_start sub_80586B4
-sub_80586B4: @ 80586B4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl sub_8056EAC
- lsls r0, 24
- cmp r0, 0
- beq _080586D6
- ldr r0, _080586DC @ =gDoorAnimGraphicsTable
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80585AC
-_080586D6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080586DC: .4byte gDoorAnimGraphicsTable
- thumb_func_end sub_80586B4
-
- thumb_func_start sub_80586E0
-sub_80586E0: @ 80586E0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl sub_8056EAC
- lsls r0, 24
- cmp r0, 0
- beq _08058702
- ldr r0, _08058708 @ =gDoorAnimGraphicsTable
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_805859C
-_08058702:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08058708: .4byte gDoorAnimGraphicsTable
- thumb_func_end sub_80586E0
-
- thumb_func_start sub_805870C
-sub_805870C: @ 805870C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl sub_8056EAC
- lsls r0, 24
- cmp r0, 0
- beq _08058738
- ldr r0, _08058734 @ =gDoorAnimGraphicsTable
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_805862C
- lsls r0, 24
- asrs r0, 24
- b _0805873C
- .align 2, 0
-_08058734: .4byte gDoorAnimGraphicsTable
-_08058738:
- movs r0, 0x1
- negs r0, r0
-_0805873C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_805870C
-
- thumb_func_start task_overworld_door_add_if_role_69_for_opening_door_at
-task_overworld_door_add_if_role_69_for_opening_door_at: @ 8058744
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl sub_8056EAC
- lsls r0, 24
- cmp r0, 0
- beq _08058770
- ldr r0, _0805876C @ =gDoorAnimGraphicsTable
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80585EC
- lsls r0, 24
- asrs r0, 24
- b _08058774
- .align 2, 0
-_0805876C: .4byte gDoorAnimGraphicsTable
-_08058770:
- movs r0, 0x1
- negs r0, r0
-_08058774:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end task_overworld_door_add_if_role_69_for_opening_door_at
-
- thumb_func_start sub_805877C
-sub_805877C: @ 805877C
- push {lr}
- ldr r0, _0805878C @ =task50_overworld_door
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0805878C: .4byte task50_overworld_door
- thumb_func_end sub_805877C
-
- thumb_func_start sub_8058790
-sub_8058790: @ 8058790
- push {lr}
- adds r3, r0, 0
- adds r2, r1, 0
- ldr r0, _080587A8 @ =gDoorAnimGraphicsTable
- adds r1, r3, 0
- bl cur_mapdata_get_door_x2_at
- lsls r0, 24
- cmp r0, 0
- beq _080587AC
- movs r0, 0x12
- b _080587AE
- .align 2, 0
-_080587A8: .4byte gDoorAnimGraphicsTable
-_080587AC:
- movs r0, 0x8
-_080587AE:
- pop {r1}
- bx r1
- thumb_func_end sub_8058790
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_effect.s b/asm/field_effect.s
deleted file mode 100644
index f7240cb38..000000000
--- a/asm/field_effect.s
+++ /dev/null
@@ -1,491 +0,0 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
-
- .syntax unified
-
- .text
-
- thumb_func_start FieldEffectStart
-FieldEffectStart: @ 8085668
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl FieldEffectActiveListAdd
- ldr r0, _080856A8 @ =gFieldEffectScriptPointers
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- str r0, [sp]
- add r4, sp, 0x4
- ldr r5, _080856AC @ =gUnknown_0839F0D4
-_08085686:
- ldr r0, [sp]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r5
- ldr r2, [r0]
- mov r0, sp
- adds r1, r4, 0
- bl _call_via_r2
- lsls r0, 24
- cmp r0, 0
- bne _08085686
- ldr r0, [sp, 0x4]
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080856A8: .4byte gFieldEffectScriptPointers
-_080856AC: .4byte gUnknown_0839F0D4
- thumb_func_end FieldEffectStart
-
- thumb_func_start FieldEffectCmd_loadtiles
-FieldEffectCmd_loadtiles: @ 80856B0
- push {lr}
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- bl FieldEffectScript_LoadTiles
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end FieldEffectCmd_loadtiles
-
- thumb_func_start FieldEffectCmd_loadfadedpal
-FieldEffectCmd_loadfadedpal: @ 80856C4
- push {lr}
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- bl FieldEffectScript_LoadFadedPalette
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end FieldEffectCmd_loadfadedpal
-
- thumb_func_start FieldEffectCmd_loadpal
-FieldEffectCmd_loadpal: @ 80856D8
- push {lr}
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- bl FieldEffectScript_LoadPalette
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end FieldEffectCmd_loadpal
-
- thumb_func_start FieldEffectCmd_callnative
-FieldEffectCmd_callnative: @ 80856EC
- push {lr}
- ldr r2, [r0]
- adds r2, 0x1
- str r2, [r0]
- bl FieldEffectScript_CallNative
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end FieldEffectCmd_callnative
-
- thumb_func_start sub_8085700
-sub_8085700: @ 8085700
- movs r0, 0
- bx lr
- thumb_func_end sub_8085700
-
- thumb_func_start FieldEffectCmd_loadgfx_callnative
-FieldEffectCmd_loadgfx_callnative: @ 8085704
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- adds r0, r4, 0
- bl FieldEffectScript_LoadTiles
- adds r0, r4, 0
- bl FieldEffectScript_LoadFadedPalette
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldEffectScript_CallNative
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end FieldEffectCmd_loadgfx_callnative
-
- thumb_func_start FieldEffectCmd_loadtiles_callnative
-FieldEffectCmd_loadtiles_callnative: @ 808572C
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- adds r0, r4, 0
- bl FieldEffectScript_LoadTiles
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldEffectScript_CallNative
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end FieldEffectCmd_loadtiles_callnative
-
- thumb_func_start FieldEffectCmd_loadfadedpal_callnative
-FieldEffectCmd_loadfadedpal_callnative: @ 8085750
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- adds r0, r4, 0
- bl FieldEffectScript_LoadFadedPalette
- adds r0, r4, 0
- adds r1, r5, 0
- bl FieldEffectScript_CallNative
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end FieldEffectCmd_loadfadedpal_callnative
-
- thumb_func_start FieldEffectScript_ReadWord
-FieldEffectScript_ReadWord: @ 8085774
- ldr r2, [r0]
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- ldrb r1, [r2, 0x2]
- lsls r1, 16
- adds r0, r1
- ldrb r1, [r2, 0x3]
- lsls r1, 24
- adds r0, r1
- bx lr
- thumb_func_end FieldEffectScript_ReadWord
-
- thumb_func_start FieldEffectScript_LoadTiles
-FieldEffectScript_LoadTiles: @ 808578C
- push {r4,r5,lr}
- adds r4, r0, 0
- bl FieldEffectScript_ReadWord
- adds r5, r0, 0
- ldrh r0, [r5, 0x6]
- bl GetSpriteTileStartByTag
- lsls r0, 16
- ldr r1, _080857B8 @ =0xffff0000
- cmp r0, r1
- bne _080857AA
- adds r0, r5, 0
- bl LoadSpriteSheet
-_080857AA:
- ldr r0, [r4]
- adds r0, 0x4
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080857B8: .4byte 0xffff0000
- thumb_func_end FieldEffectScript_LoadTiles
-
- thumb_func_start FieldEffectScript_LoadFadedPalette
-FieldEffectScript_LoadFadedPalette: @ 80857BC
- push {r4,r5,lr}
- adds r5, r0, 0
- bl FieldEffectScript_ReadWord
- adds r4, r0, 0
- bl LoadSpritePalette
- ldrh r0, [r4, 0x4]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- bl sub_807D78C
- ldr r0, [r5]
- adds r0, 0x4
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end FieldEffectScript_LoadFadedPalette
-
- thumb_func_start FieldEffectScript_LoadPalette
-FieldEffectScript_LoadPalette: @ 80857E4
- push {r4,lr}
- adds r4, r0, 0
- bl FieldEffectScript_ReadWord
- bl LoadSpritePalette
- ldr r0, [r4]
- adds r0, 0x4
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end FieldEffectScript_LoadPalette
-
- thumb_func_start FieldEffectScript_CallNative
-FieldEffectScript_CallNative: @ 80857FC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl FieldEffectScript_ReadWord
- bl _call_via_r0
- str r0, [r5]
- ldr r0, [r4]
- adds r0, 0x4
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end FieldEffectScript_CallNative
-
- thumb_func_start FieldEffectFreeGraphicsResources
-FieldEffectFreeGraphicsResources: @ 8085818
- push {r4,r5,lr}
- adds r1, r0, 0
- adds r1, 0x40
- ldrh r5, [r1]
- ldrb r4, [r0, 0x5]
- lsrs r4, 4
- bl DestroySprite
- adds r0, r5, 0
- bl FieldEffectFreeTilesIfUnused
- adds r0, r4, 0
- bl FieldEffectFreePaletteIfUnused
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end FieldEffectFreeGraphicsResources
-
- thumb_func_start FieldEffectStop
-FieldEffectStop: @ 808583C
- push {r4,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- bl FieldEffectFreeGraphicsResources
- adds r0, r4, 0
- bl FieldEffectActiveListRemove
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end FieldEffectStop
-
- thumb_func_start FieldEffectFreeTilesIfUnused
-FieldEffectFreeTilesIfUnused: @ 8085854
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl GetSpriteTileTagByTileStart
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r0, _080858B0 @ =0x0000ffff
- cmp r3, r0
- beq _080858A8
- movs r2, 0
- ldr r5, _080858B4 @ =gSprites
-_0808586E:
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r5
- adds r0, r1, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _08085898
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- bge _08085898
- adds r0, r1, 0
- adds r0, 0x40
- ldrh r0, [r0]
- cmp r4, r0
- beq _080858A8
-_08085898:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3F
- bls _0808586E
- adds r0, r3, 0
- bl FreeSpriteTilesByTag
-_080858A8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080858B0: .4byte 0x0000ffff
-_080858B4: .4byte gSprites
- thumb_func_end FieldEffectFreeTilesIfUnused
-
- thumb_func_start FieldEffectFreePaletteIfUnused
-FieldEffectFreePaletteIfUnused: @ 80858B8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl GetSpritePaletteTagByPaletteNum
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _08085908 @ =0x0000ffff
- cmp r5, r0
- beq _08085900
- movs r2, 0
- ldr r6, _0808590C @ =gSprites
- adds r3, r4, 0
-_080858D4:
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r6
- adds r0, r1, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _080858F0
- ldrb r0, [r1, 0x5]
- lsrs r0, 4
- cmp r0, r3
- beq _08085900
-_080858F0:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3F
- bls _080858D4
- adds r0, r5, 0
- bl FreeSpritePaletteByTag
-_08085900:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08085908: .4byte 0x0000ffff
-_0808590C: .4byte gSprites
- thumb_func_end FieldEffectFreePaletteIfUnused
-
- thumb_func_start FieldEffectActiveListClear
-FieldEffectActiveListClear: @ 8085910
- push {r4,lr}
- movs r2, 0
- ldr r4, _08085930 @ =gUnknown_030006E0
- movs r3, 0xFF
-_08085918:
- adds r0, r2, r4
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1F
- bls _08085918
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08085930: .4byte gUnknown_030006E0
- thumb_func_end FieldEffectActiveListClear
-
- thumb_func_start FieldEffectActiveListAdd
-FieldEffectActiveListAdd: @ 8085934
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r4, _0808594C @ =gUnknown_030006E0
-_0808593E:
- adds r1, r2, r4
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _08085950
- strb r3, [r1]
- b _0808595A
- .align 2, 0
-_0808594C: .4byte gUnknown_030006E0
-_08085950:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1F
- bls _0808593E
-_0808595A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end FieldEffectActiveListAdd
-
- thumb_func_start FieldEffectActiveListRemove
-FieldEffectActiveListRemove: @ 8085960
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r4, _0808597C @ =gUnknown_030006E0
- movs r5, 0xFF
-_0808596C:
- adds r1, r2, r4
- ldrb r0, [r1]
- cmp r0, r3
- bne _08085980
- orrs r0, r5
- strb r0, [r1]
- b _0808598A
- .align 2, 0
-_0808597C: .4byte gUnknown_030006E0
-_08085980:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1F
- bls _0808596C
-_0808598A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end FieldEffectActiveListRemove
-
- thumb_func_start FieldEffectActiveListContains
-FieldEffectActiveListContains: @ 8085990
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r3, _080859A8 @ =gUnknown_030006E0
-_0808599A:
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _080859AC
- movs r0, 0x1
- b _080859B8
- .align 2, 0
-_080859A8: .4byte gUnknown_030006E0
-_080859AC:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1F
- bls _0808599A
- movs r0, 0
-_080859B8:
- pop {r1}
- bx r1
- thumb_func_end FieldEffectActiveListContains
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s
index 90766a99b..68a1b02c9 100644
--- a/asm/field_effect_helpers.s
+++ b/asm/field_effect_helpers.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/field_ground_effect.s b/asm/field_ground_effect.s
index 0b7e8a983..c853d8c50 100644
--- a/asm/field_ground_effect.s
+++ b/asm/field_ground_effect.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index 58533b91e..b884252be 100644
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
deleted file mode 100644
index fc08732b0..000000000
--- a/asm/field_player_avatar.s
+++ /dev/null
@@ -1,4636 +0,0 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80587B4
-sub_80587B4: @ 80587B4
- push {lr}
- adds r1, r0, 0
- movs r0, 0x2E
- ldrsh r2, [r1, r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _080587D0 @ =gMapObjects
- adds r0, r2
- ldr r2, _080587D4 @ =sub_80587D8
- bl meta_step
- pop {r0}
- bx r0
- .align 2, 0
-_080587D0: .4byte gMapObjects
-_080587D4: .4byte sub_80587D8
- thumb_func_end sub_80587B4
-
- thumb_func_start sub_80587D8
-sub_80587D8: @ 80587D8
- movs r0, 0
- bx lr
- thumb_func_end sub_80587D8
-
- thumb_func_start player_step
-player_step: @ 80587DC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r6, r2, 16
- ldr r4, _0805884C @ =gPlayerAvatar
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08058850 @ =gMapObjects
- adds r5, r0, r1
- adds r0, r5, 0
- bl sub_8059D60
- ldrb r0, [r4, 0x6]
- cmp r0, 0
- bne _08058842
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_80E5B38
- adds r0, r5, 0
- mov r1, r8
- bl sub_8058854
- lsls r0, 24
- cmp r0, 0
- bne _08058842
- adds r0, r5, 0
- bl npc_clear_strange_bits
- bl DoPlayerAvatarTransition
- bl TryDoMetatileBehaviorForcedMovment
- lsls r0, 24
- cmp r0, 0
- bne _08058842
- mov r0, r8
- adds r1, r7, 0
- adds r2, r6, 0
- bl MovePlayerAvatarUsingKeypadInput
- bl PlayerAllowForcedMovementIfMovingSameDirection
-_08058842:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805884C: .4byte gPlayerAvatar
-_08058850: .4byte gMapObjects
- thumb_func_end player_step
-
- thumb_func_start sub_8058854
-sub_8058854: @ 8058854
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _0805889E
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- bne _0805889E
- adds r0, r4, 0
- bl FieldObjectGetSpecialAnim
- lsls r0, 24
- movs r1, 0xE7
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x3
- bhi _0805889A
- cmp r5, 0
- beq _0805889A
- ldrb r0, [r4, 0x18]
- lsrs r0, 4
- cmp r0, r5
- beq _0805889A
- adds r0, r4, 0
- bl FieldObjectClearAnim
- b _0805889E
-_0805889A:
- movs r0, 0x1
- b _080588A0
-_0805889E:
- movs r0, 0
-_080588A0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8058854
-
- thumb_func_start npc_clear_strange_bits
-npc_clear_strange_bits: @ 80588A8
- ldrb r2, [r0, 0x1]
- movs r1, 0x11
- negs r1, r1
- ands r1, r2
- movs r2, 0x5
- negs r2, r2
- ands r1, r2
- adds r2, 0x2
- ands r1, r2
- strb r1, [r0, 0x1]
- ldr r2, _080588C8 @ =gPlayerAvatar
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bx lr
- .align 2, 0
-_080588C8: .4byte gPlayerAvatar
- thumb_func_end npc_clear_strange_bits
-
- thumb_func_start MovePlayerAvatarUsingKeypadInput
-MovePlayerAvatarUsingKeypadInput: @ 80588CC
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- ldr r0, _080588F0 @ =gPlayerAvatar
- ldrb r1, [r0]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- beq _080588F4
- adds r0, r3, 0
- adds r1, r4, 0
- bl MovePlayerOnBike
- b _080588FC
- .align 2, 0
-_080588F0: .4byte gPlayerAvatar
-_080588F4:
- adds r0, r3, 0
- adds r1, r2, 0
- bl MovePlayerNotOnBike
-_080588FC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end MovePlayerAvatarUsingKeypadInput
-
- thumb_func_start PlayerAllowForcedMovementIfMovingSameDirection
-PlayerAllowForcedMovementIfMovingSameDirection: @ 8058904
- push {lr}
- ldr r2, _0805891C @ =gPlayerAvatar
- ldrb r0, [r2, 0x2]
- cmp r0, 0x2
- bne _08058916
- ldrb r1, [r2]
- movs r0, 0xDF
- ands r0, r1
- strb r0, [r2]
-_08058916:
- pop {r0}
- bx r0
- .align 2, 0
-_0805891C: .4byte gPlayerAvatar
- thumb_func_end PlayerAllowForcedMovementIfMovingSameDirection
-
- thumb_func_start TryDoMetatileBehaviorForcedMovment
-TryDoMetatileBehaviorForcedMovment: @ 8058920
- push {r4,lr}
- ldr r4, _08058940 @ =gUnknown_0830FBA0
- bl GetForcedMovementByMetatileBehavior
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08058940: .4byte gUnknown_0830FBA0
- thumb_func_end TryDoMetatileBehaviorForcedMovment
-
- thumb_func_start GetForcedMovementByMetatileBehavior
-GetForcedMovementByMetatileBehavior: @ 8058944
- push {r4-r6,lr}
- ldr r3, _08058980 @ =gPlayerAvatar
- ldrb r1, [r3]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08058996
- ldr r2, _08058984 @ =gMapObjects
- ldrb r1, [r3, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r5, [r0, 0x1E]
- movs r4, 0
- ldr r6, _08058988 @ =gUnknown_0830FB58
-_08058964:
- lsls r0, r4, 2
- adds r0, r6
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- beq _0805898C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r0, 24
- b _08058998
- .align 2, 0
-_08058980: .4byte gPlayerAvatar
-_08058984: .4byte gMapObjects
-_08058988: .4byte gUnknown_0830FB58
-_0805898C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x11
- bls _08058964
-_08058996:
- movs r0, 0
-_08058998:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetForcedMovementByMetatileBehavior
-
- thumb_func_start ForcedMovement_None
-ForcedMovement_None: @ 80589A0
- push {r4,lr}
- ldr r4, _080589E4 @ =gPlayerAvatar
- ldrb r1, [r4]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080589DA
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080589E8 @ =gMapObjects
- adds r0, r1
- ldrb r2, [r0, 0x1]
- movs r1, 0x3
- negs r1, r1
- ands r1, r2
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x1]
- ldrb r1, [r0, 0x18]
- lsls r1, 28
- lsrs r1, 28
- bl FieldObjectSetDirection
- ldrb r1, [r4]
- movs r0, 0xBF
- ands r0, r1
- strb r0, [r4]
-_080589DA:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080589E4: .4byte gPlayerAvatar
-_080589E8: .4byte gMapObjects
- thumb_func_end ForcedMovement_None
-
- thumb_func_start DoForcedMovement
-DoForcedMovement: @ 80589EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r9, r1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _08058A2C @ =gPlayerAvatar
- adds r0, r5, 0
- bl CheckForPlayerAvatarCollision
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- ldrb r0, [r6]
- movs r1, 0x40
- mov r10, r1
- movs r1, 0
- mov r8, r1
- mov r1, r10
- orrs r0, r1
- strb r0, [r6]
- cmp r4, 0
- beq _08058A48
- bl ForcedMovement_None
- cmp r4, 0x4
- bhi _08058A30
- movs r0, 0
- b _08058A54
- .align 2, 0
-_08058A2C: .4byte gPlayerAvatar
-_08058A30:
- cmp r7, 0x6
- bne _08058A3A
- adds r0, r5, 0
- bl PlayerJumpLedge
-_08058A3A:
- ldrb r0, [r6]
- mov r1, r10
- orrs r0, r1
- strb r0, [r6]
- movs r0, 0x2
- strb r0, [r6, 0x2]
- b _08058A52
-_08058A48:
- movs r0, 0x2
- strb r0, [r6, 0x2]
- adds r0, r5, 0
- bl _call_via_r9
-_08058A52:
- movs r0, 0x1
-_08058A54:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end DoForcedMovement
-
- thumb_func_start DoForcedMovementInCurrentDirection
-DoForcedMovementInCurrentDirection: @ 8058A64
- push {lr}
- adds r1, r0, 0
- ldr r0, _08058A90 @ =gPlayerAvatar
- ldrb r2, [r0, 0x5]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _08058A94 @ =gMapObjects
- adds r0, r2
- ldrb r2, [r0, 0x1]
- movs r3, 0x4
- orrs r2, r3
- strb r2, [r0, 0x1]
- ldrb r0, [r0, 0x18]
- lsrs r0, 4
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058A90: .4byte gPlayerAvatar
-_08058A94: .4byte gMapObjects
- thumb_func_end DoForcedMovementInCurrentDirection
-
- thumb_func_start ForcedMovement_Slip
-ForcedMovement_Slip: @ 8058A98
- push {lr}
- ldr r0, _08058AA8 @ =sub_80593C4
- bl DoForcedMovementInCurrentDirection
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058AA8: .4byte sub_80593C4
- thumb_func_end ForcedMovement_Slip
-
- thumb_func_start sub_8058AAC
-sub_8058AAC: @ 8058AAC
- push {lr}
- ldr r1, _08058AC0 @ =PlayerGoSpeed0
- movs r0, 0x1
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058AC0: .4byte PlayerGoSpeed0
- thumb_func_end sub_8058AAC
-
- thumb_func_start sub_8058AC4
-sub_8058AC4: @ 8058AC4
- push {lr}
- ldr r1, _08058AD8 @ =PlayerGoSpeed0
- movs r0, 0x2
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058AD8: .4byte PlayerGoSpeed0
- thumb_func_end sub_8058AC4
-
- thumb_func_start sub_8058ADC
-sub_8058ADC: @ 8058ADC
- push {lr}
- ldr r1, _08058AF0 @ =PlayerGoSpeed0
- movs r0, 0x3
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058AF0: .4byte PlayerGoSpeed0
- thumb_func_end sub_8058ADC
-
- thumb_func_start sub_8058AF4
-sub_8058AF4: @ 8058AF4
- push {lr}
- ldr r1, _08058B08 @ =PlayerGoSpeed0
- movs r0, 0x4
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058B08: .4byte PlayerGoSpeed0
- thumb_func_end sub_8058AF4
-
- thumb_func_start sub_8058B0C
-sub_8058B0C: @ 8058B0C
- push {lr}
- ldr r1, _08058B20 @ =npc_use_some_d2s
- movs r0, 0x1
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058B20: .4byte npc_use_some_d2s
- thumb_func_end sub_8058B0C
-
- thumb_func_start sub_8058B24
-sub_8058B24: @ 8058B24
- push {lr}
- ldr r1, _08058B38 @ =npc_use_some_d2s
- movs r0, 0x2
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058B38: .4byte npc_use_some_d2s
- thumb_func_end sub_8058B24
-
- thumb_func_start sub_8058B3C
-sub_8058B3C: @ 8058B3C
- push {lr}
- ldr r1, _08058B50 @ =npc_use_some_d2s
- movs r0, 0x3
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058B50: .4byte npc_use_some_d2s
- thumb_func_end sub_8058B3C
-
- thumb_func_start sub_8058B54
-sub_8058B54: @ 8058B54
- push {lr}
- ldr r1, _08058B68 @ =npc_use_some_d2s
- movs r0, 0x4
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058B68: .4byte npc_use_some_d2s
- thumb_func_end sub_8058B54
-
- thumb_func_start ForcedMovement_Slide
-ForcedMovement_Slide: @ 8058B6C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08058B9C @ =gPlayerAvatar
- ldrb r3, [r2, 0x5]
- lsls r2, r3, 3
- adds r2, r3
- lsls r2, 2
- ldr r3, _08058BA0 @ =gMapObjects
- adds r2, r3
- ldrb r3, [r2, 0x1]
- movs r4, 0x4
- orrs r3, r4
- movs r4, 0x2
- orrs r3, r4
- strb r3, [r2, 0x1]
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08058B9C: .4byte gPlayerAvatar
-_08058BA0: .4byte gMapObjects
- thumb_func_end ForcedMovement_Slide
-
- thumb_func_start ForcedMovement_SlideSouth
-ForcedMovement_SlideSouth: @ 8058BA4
- push {lr}
- ldr r1, _08058BB8 @ =sub_80593C4
- movs r0, 0x1
- bl ForcedMovement_Slide
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058BB8: .4byte sub_80593C4
- thumb_func_end ForcedMovement_SlideSouth
-
- thumb_func_start ForcedMovement_SlideNorth
-ForcedMovement_SlideNorth: @ 8058BBC
- push {lr}
- ldr r1, _08058BD0 @ =sub_80593C4
- movs r0, 0x2
- bl ForcedMovement_Slide
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058BD0: .4byte sub_80593C4
- thumb_func_end ForcedMovement_SlideNorth
-
- thumb_func_start ForcedMovement_SlideWest
-ForcedMovement_SlideWest: @ 8058BD4
- push {lr}
- ldr r1, _08058BE8 @ =sub_80593C4
- movs r0, 0x3
- bl ForcedMovement_Slide
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058BE8: .4byte sub_80593C4
- thumb_func_end ForcedMovement_SlideWest
-
- thumb_func_start ForcedMovement_SlideEast
-ForcedMovement_SlideEast: @ 8058BEC
- push {lr}
- ldr r1, _08058C00 @ =sub_80593C4
- movs r0, 0x4
- bl ForcedMovement_Slide
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08058C00: .4byte sub_80593C4
- thumb_func_end ForcedMovement_SlideEast
-
- thumb_func_start sub_8058C04
-sub_8058C04: @ 8058C04
- push {lr}
- bl sub_8059F94
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8058C04
-
- thumb_func_start sub_8058C10
-sub_8058C10: @ 8058C10
- push {lr}
- bl sub_805A06C
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8058C10
-
- thumb_func_start ForcedMovement_MuddySlope
-ForcedMovement_MuddySlope: @ 8058C1C
- push {r4,lr}
- ldr r0, _08058C60 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08058C64 @ =gMapObjects
- adds r4, r0, r1
- ldrb r1, [r4, 0x18]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0x20
- bne _08058C42
- bl sub_80E6034
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bgt _08058C6C
-_08058C42:
- movs r0, 0
- bl sub_80E6010
- ldrb r0, [r4, 0x1]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r1, _08058C68 @ =sub_80593C4
- movs r0, 0x1
- bl DoForcedMovement
- lsls r0, 24
- lsrs r0, 24
- b _08058C6E
- .align 2, 0
-_08058C60: .4byte gPlayerAvatar
-_08058C64: .4byte gMapObjects
-_08058C68: .4byte sub_80593C4
-_08058C6C:
- movs r0, 0
-_08058C6E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ForcedMovement_MuddySlope
-
- thumb_func_start MovePlayerNotOnBike
-MovePlayerNotOnBike: @ 8058C74
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 16
- lsrs r5, 16
- ldr r6, _08058CA0 @ =gUnknown_0830FBEC
- adds r0, r4, 0
- bl CheckMovementInputNotOnBike
- lsls r0, 24
- lsrs r0, 22
- adds r0, r6
- ldr r2, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl _call_via_r2
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08058CA0: .4byte gUnknown_0830FBEC
- thumb_func_end MovePlayerNotOnBike
-
- thumb_func_start CheckMovementInputNotOnBike
-CheckMovementInputNotOnBike: @ 8058CA4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08058CBC
- ldr r0, _08058CB8 @ =gPlayerAvatar
- strb r4, [r0, 0x2]
- movs r0, 0
- b _08058CDE
- .align 2, 0
-_08058CB8: .4byte gPlayerAvatar
-_08058CBC:
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- beq _08058CD8
- ldr r1, _08058CD4 @ =gPlayerAvatar
- ldrb r0, [r1, 0x2]
- cmp r0, 0x2
- beq _08058CD8
- movs r0, 0x1
- b _08058CDC
- .align 2, 0
-_08058CD4: .4byte gPlayerAvatar
-_08058CD8:
- ldr r1, _08058CE4 @ =gPlayerAvatar
- movs r0, 0x2
-_08058CDC:
- strb r0, [r1, 0x2]
-_08058CDE:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08058CE4: .4byte gPlayerAvatar
- thumb_func_end CheckMovementInputNotOnBike
-
- thumb_func_start PlayerNotOnBikeNotMoving
-PlayerNotOnBikeNotMoving: @ 8058CE8
- push {lr}
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl PlayerFaceDirection
- pop {r0}
- bx r0
- thumb_func_end PlayerNotOnBikeNotMoving
-
- thumb_func_start PlayerNotOnBikeTurningInPlace
-PlayerNotOnBikeTurningInPlace: @ 8058CFC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl PlayerTurnInPlace
- pop {r0}
- bx r0
- thumb_func_end PlayerNotOnBikeTurningInPlace
-
- thumb_func_start sub_8058D0C
-sub_8058D0C: @ 8058D0C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 16
- lsrs r4, r1, 16
- adds r0, r5, 0
- bl CheckForPlayerAvatarCollision
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0
- beq _08058D44
- cmp r0, 0x6
- bne _08058D32
- adds r0, r5, 0
- bl PlayerJumpLedge
- b _08058DAE
-_08058D32:
- subs r0, r1, 0x5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08058DAE
- adds r0, r5, 0
- bl PlayerNotOnBikeCollide
- b _08058DAE
-_08058D44:
- ldr r6, _08058D58 @ =gPlayerAvatar
- ldrb r1, [r6]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08058D5C
- adds r0, r5, 0
- bl sub_80593C4
- b _08058DAE
- .align 2, 0
-_08058D58: .4byte gPlayerAvatar
-_08058D5C:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08058DA8
- movs r0, 0x2
- ands r4, r0
- cmp r4, 0
- beq _08058DA8
- movs r0, 0x86
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08058DA8
- ldr r2, _08058DA4 @ =gMapObjects
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1E]
- bl sub_80E5DEC
- lsls r0, 24
- cmp r0, 0
- bne _08058DA8
- adds r0, r5, 0
- bl sub_805940C
- ldrb r1, [r6]
- movs r0, 0x80
- orrs r0, r1
- strb r0, [r6]
- b _08058DAE
- .align 2, 0
-_08058DA4: .4byte gMapObjects
-_08058DA8:
- adds r0, r5, 0
- bl PlayerGoSpeed0
-_08058DAE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8058D0C
-
- thumb_func_start CheckForPlayerAvatarCollision
-CheckForPlayerAvatarCollision: @ 8058DB4
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _08058E18 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08058E1C @ =gMapObjects
- adds r4, r0
- ldrh r1, [r4, 0x10]
- add r0, sp, 0x4
- strh r1, [r0]
- ldrh r0, [r4, 0x12]
- mov r5, sp
- adds r5, 0x6
- strh r0, [r5]
- adds r0, r6, 0
- add r1, sp, 0x4
- adds r2, r5, 0
- bl MoveCoords
- add r0, sp, 0x4
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- add r1, sp, 0x4
- movs r3, 0
- ldrsh r1, [r1, r3]
- movs r3, 0
- ldrsh r2, [r5, r3]
- str r0, [sp]
- adds r0, r4, 0
- adds r3, r6, 0
- bl CheckForFieldObjectCollision
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08058E18: .4byte gPlayerAvatar
-_08058E1C: .4byte gMapObjects
- thumb_func_end CheckForPlayerAvatarCollision
-
- thumb_func_start CheckForFieldObjectCollision
-CheckForFieldObjectCollision: @ 8058E20
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, [sp, 0x24]
- lsls r1, 16
- lsls r2, 16
- lsls r3, 24
- lsrs r6, r3, 24
- lsls r4, 24
- lsrs r4, 24
- mov r10, r4
- lsrs r7, r1, 16
- asrs r5, r1, 16
- lsrs r1, r2, 16
- mov r9, r1
- asrs r4, r2, 16
- adds r1, r5, 0
- adds r2, r4, 0
- adds r3, r6, 0
- bl npc_block_way
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- strb r0, [r1]
- cmp r0, 0x3
- bne _08058E70
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_8058EF0
- lsls r0, 24
- cmp r0, 0
- beq _08058E70
- movs r0, 0x5
- b _08058EDE
-_08058E70:
- lsls r5, r7, 16
- asrs r0, r5, 16
- mov r8, r0
- mov r1, r9
- lsls r4, r1, 16
- asrs r7, r4, 16
- adds r1, r7, 0
- adds r2, r6, 0
- bl ShouldJumpLedge
- lsls r0, 24
- cmp r0, 0
- beq _08058E94
- movs r0, 0x2B
- bl sav12_xor_increment
- movs r0, 0x6
- b _08058EDE
-_08058E94:
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _08058EB0
- mov r0, r8
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_8058F6C
- lsls r0, 24
- cmp r0, 0
- beq _08058EB0
- movs r0, 0x7
- b _08058EDE
-_08058EB0:
- mov r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- bne _08058EDA
- asrs r5, 16
- asrs r4, 16
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl CheckForRotatingGatePuzzleCollision
- cmp r0, 0
- beq _08058ECE
- movs r0, 0x8
- b _08058EDE
-_08058ECE:
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, r10
- mov r3, sp
- bl check_acro_bike_metatile
-_08058EDA:
- mov r0, sp
- ldrb r0, [r0]
-_08058EDE:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckForFieldObjectCollision
-
- thumb_func_start sub_8058EF0
-sub_8058EF0: @ 8058EF0
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r0, _08058F3C @ =gPlayerAvatar
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08058F40
- lsls r5, r3, 16
- asrs r0, r5, 16
- lsls r4, 16
- asrs r1, r4, 16
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _08058F40
- lsrs r0, r5, 16
- lsrs r1, r4, 16
- movs r2, 0x3
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- bne _08058F40
- adds r0, r6, 0
- bl sub_805A20C
- movs r0, 0x1
- b _08058F42
- .align 2, 0
-_08058F3C: .4byte gPlayerAvatar
-_08058F40:
- movs r0, 0
-_08058F42:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8058EF0
-
- thumb_func_start ShouldJumpLedge
-ShouldJumpLedge: @ 8058F48
- push {lr}
- lsls r2, 24
- lsrs r2, 24
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- bl GetLedgeJumpDirection
- lsls r0, 24
- cmp r0, 0
- bne _08058F64
- movs r0, 0
- b _08058F66
-_08058F64:
- movs r0, 0x1
-_08058F66:
- pop {r1}
- bx r1
- thumb_func_end ShouldJumpLedge
-
- thumb_func_start sub_8058F6C
-sub_8058F6C: @ 8058F6C
- push {r4-r7,lr}
- sub sp, 0x4
- mov r3, sp
- strh r0, [r3]
- mov r5, sp
- adds r5, 0x2
- strh r1, [r5]
- lsls r2, 24
- lsrs r7, r2, 24
- ldr r0, _08059004 @ =0x00000829
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0805900C
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl GetFieldObjectIdByXY
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x10
- beq _0805900C
- ldr r0, _08059008 @ =gMapObjects
- lsls r1, r6, 3
- adds r1, r6
- lsls r1, 2
- adds r4, r1, r0
- ldrb r0, [r4, 0x5]
- cmp r0, 0x57
- bne _0805900C
- 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 npc_block_way
- lsls r0, 24
- cmp r0, 0
- bne _0805900C
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl sub_8056F08
- lsls r0, 24
- cmp r0, 0
- bne _0805900C
- adds r0, r6, 0
- adds r1, r7, 0
- bl task_add_bump_boulder
- movs r0, 0x1
- b _0805900E
- .align 2, 0
-_08059004: .4byte 0x00000829
-_08059008: .4byte gMapObjects
-_0805900C:
- movs r0, 0
-_0805900E:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8058F6C
-
- thumb_func_start check_acro_bike_metatile
-check_acro_bike_metatile: @ 8059018
- push {r4-r7,lr}
- adds r6, r3, 0
- lsls r2, 24
- lsrs r5, r2, 24
- movs r4, 0
- ldr r7, _08059040 @ =gUnknown_0830FBF8
-_08059024:
- lsls r0, r4, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- beq _08059048
- ldr r0, _08059044 @ =gUnknown_0830FC0C
- adds r0, r4, r0
- ldrb r0, [r0]
- strb r0, [r6]
- b _08059052
- .align 2, 0
-_08059040: .4byte gUnknown_0830FBF8
-_08059044: .4byte gUnknown_0830FC0C
-_08059048:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _08059024
-_08059052:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end check_acro_bike_metatile
-
- thumb_func_start SetPlayerAvatarTransitionFlags
-SetPlayerAvatarTransitionFlags: @ 8059058
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08059070 @ =gPlayerAvatar
- ldrb r1, [r2, 0x1]
- orrs r0, r1
- strb r0, [r2, 0x1]
- bl DoPlayerAvatarTransition
- pop {r0}
- bx r0
- .align 2, 0
-_08059070: .4byte gPlayerAvatar
- thumb_func_end SetPlayerAvatarTransitionFlags
-
- thumb_func_start DoPlayerAvatarTransition
-DoPlayerAvatarTransition: @ 8059074
- push {r4,r5,lr}
- ldr r0, _080590BC @ =gPlayerAvatar
- ldrb r4, [r0, 0x1]
- cmp r4, 0
- beq _080590B4
- movs r5, 0
-_08059080:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080590A2
- ldr r0, _080590C0 @ =gUnknown_0830FC14
- lsls r2, r5, 2
- adds r2, r0
- ldr r0, _080590BC @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080590C4 @ =gMapObjects
- adds r0, r1
- ldr r1, [r2]
- bl _call_via_r1
-_080590A2:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- lsrs r4, 1
- cmp r5, 0x7
- bls _08059080
- ldr r1, _080590BC @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x1]
-_080590B4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080590BC: .4byte gPlayerAvatar
-_080590C0: .4byte gUnknown_0830FC14
-_080590C4: .4byte gMapObjects
- thumb_func_end DoPlayerAvatarTransition
-
- thumb_func_start nullsub_49
-nullsub_49: @ 80590C8
- bx lr
- thumb_func_end nullsub_49
-
- thumb_func_start PlayerAvatarTransition_Normal
-PlayerAvatarTransition_Normal: @ 80590CC
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl FieldObjectTurn
- movs r0, 0x1
- bl SetPlayerAvatarStateMask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerAvatarTransition_Normal
-
- thumb_func_start PlayerAvatarTransition_MachBike
-PlayerAvatarTransition_MachBike: @ 80590F8
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x1
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl FieldObjectTurn
- movs r0, 0x2
- bl SetPlayerAvatarStateMask
- movs r0, 0
- movs r1, 0
- bl sub_80E5FCC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerAvatarTransition_MachBike
-
- thumb_func_start PlayerAvatarTransition_AcroBike
-PlayerAvatarTransition_AcroBike: @ 805912C
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl FieldObjectTurn
- movs r0, 0x4
- bl SetPlayerAvatarStateMask
- movs r0, 0
- movs r1, 0
- bl sub_80E5FCC
- bl sub_80E6084
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerAvatarTransition_AcroBike
-
- thumb_func_start PlayerAvatarTransition_Surfing
-PlayerAvatarTransition_Surfing: @ 8059164
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x3
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl FieldObjectTurn
- movs r0, 0x8
- bl SetPlayerAvatarStateMask
- ldr r1, _080591B8 @ =gUnknown_0202FF84
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- str r0, [r1]
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- str r0, [r1, 0x4]
- ldr r0, _080591BC @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- str r0, [r1, 0x8]
- movs r0, 0x8
- bl FieldEffectStart
- lsls r0, 24
- lsrs r0, 24
- strb r0, [r4, 0x1A]
- movs r1, 0x1
- bl sub_8127ED0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080591B8: .4byte gUnknown_0202FF84
-_080591BC: .4byte gPlayerAvatar
- thumb_func_end PlayerAvatarTransition_Surfing
-
- thumb_func_start PlayerAvatarTransition_Underwater
-PlayerAvatarTransition_Underwater: @ 80591C0
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x4
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl FieldObjectTurn
- movs r0, 0x10
- bl SetPlayerAvatarStateMask
- ldrb r0, [r4, 0x4]
- bl sub_8128124
- strb r0, [r4, 0x1A]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerAvatarTransition_Underwater
-
- thumb_func_start sub_80591F4
-sub_80591F4: @ 80591F4
- ldr r2, _08059200 @ =gPlayerAvatar
- ldrb r1, [r2]
- movs r0, 0x20
- orrs r0, r1
- strb r0, [r2]
- bx lr
- .align 2, 0
-_08059200: .4byte gPlayerAvatar
- thumb_func_end sub_80591F4
-
- thumb_func_start sub_8059204
-sub_8059204: @ 8059204
- push {r4,lr}
- ldr r4, _08059230 @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r4, 0x3]
- bl PlayerIsAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _08059242
- bl PlayerCheckIfAnimFinishedOrInactive
- lsls r0, 24
- cmp r0, 0
- bne _08059234
- bl player_is_anim_in_certain_ranges
- lsls r0, 24
- cmp r0, 0
- bne _08059242
- movs r0, 0x1
- b _08059240
- .align 2, 0
-_08059230: .4byte gPlayerAvatar
-_08059234:
- bl sub_80592A4
- lsls r0, 24
- cmp r0, 0
- bne _08059242
- movs r0, 0x2
-_08059240:
- strb r0, [r4, 0x3]
-_08059242:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8059204
-
- thumb_func_start player_is_anim_in_certain_ranges
-player_is_anim_in_certain_ranges: @ 8059248
- push {lr}
- ldr r2, _08059294 @ =gMapObjects
- ldr r0, _08059298 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x1C]
- cmp r1, 0x3
- bls _0805928E
- adds r0, r1, 0
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _0805928E
- adds r0, r1, 0
- subs r0, 0x19
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xF
- bls _0805928E
- adds r0, r1, 0
- subs r0, 0x62
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xB
- bls _0805928E
- adds r0, r1, 0
- subs r0, 0x7A
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _0805929C
-_0805928E:
- movs r0, 0x1
- b _0805929E
- .align 2, 0
-_08059294: .4byte gMapObjects
-_08059298: .4byte gPlayerAvatar
-_0805929C:
- movs r0, 0
-_0805929E:
- pop {r1}
- bx r1
- thumb_func_end player_is_anim_in_certain_ranges
-
- thumb_func_start sub_80592A4
-sub_80592A4: @ 80592A4
- push {lr}
- bl player_is_anim_in_certain_ranges
- lsls r0, 24
- cmp r0, 0
- beq _080592C0
- ldr r0, _080592BC @ =gPlayerAvatar
- ldrb r0, [r0, 0x2]
- cmp r0, 0x1
- beq _080592C0
- movs r0, 0x1
- b _080592C2
- .align 2, 0
-_080592BC: .4byte gPlayerAvatar
-_080592C0:
- movs r0, 0
-_080592C2:
- pop {r1}
- bx r1
- thumb_func_end sub_80592A4
-
- thumb_func_start PlayerIsAnimActive
-PlayerIsAnimActive: @ 80592C8
- push {lr}
- ldr r0, _080592E4 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080592E8 @ =gMapObjects
- adds r0, r1
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080592E4: .4byte gPlayerAvatar
-_080592E8: .4byte gMapObjects
- thumb_func_end PlayerIsAnimActive
-
- thumb_func_start PlayerCheckIfAnimFinishedOrInactive
-PlayerCheckIfAnimFinishedOrInactive: @ 80592EC
- push {lr}
- ldr r0, _08059308 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805930C @ =gMapObjects
- adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08059308: .4byte gPlayerAvatar
-_0805930C: .4byte gMapObjects
- thumb_func_end PlayerCheckIfAnimFinishedOrInactive
-
- thumb_func_start player_set_x22
-player_set_x22: @ 8059310
- ldr r3, _08059324 @ =gMapObjects
- ldr r1, _08059328 @ =gPlayerAvatar
- ldrb r2, [r1, 0x5]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- adds r1, 0x22
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08059324: .4byte gMapObjects
-_08059328: .4byte gPlayerAvatar
- thumb_func_end player_set_x22
-
- thumb_func_start player_get_x22
-player_get_x22: @ 805932C
- ldr r2, _08059340 @ =gMapObjects
- ldr r0, _08059344 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x22
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08059340: .4byte gMapObjects
-_08059344: .4byte gPlayerAvatar
- thumb_func_end player_get_x22
-
- thumb_func_start sub_8059348
-sub_8059348: @ 8059348
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08059368 @ =gPlayerAvatar
- ldrb r2, [r0, 0x5]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- ldr r2, _0805936C @ =gMapObjects
- adds r0, r2
- bl FieldObjectForceSetSpecialAnim
- pop {r0}
- bx r0
- .align 2, 0
-_08059368: .4byte gPlayerAvatar
-_0805936C: .4byte gMapObjects
- thumb_func_end sub_8059348
-
- thumb_func_start player_npc_set_state_and_x22_etc
-player_npc_set_state_and_x22_etc: @ 8059370
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- bl PlayerIsAnimActive
- lsls r0, 24
- cmp r0, 0
- bne _0805939E
- adds r0, r4, 0
- bl player_set_x22
- ldr r0, _080593A4 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080593A8 @ =gMapObjects
- adds r0, r1
- adds r1, r5, 0
- bl FieldObjectSetSpecialAnim
-_0805939E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080593A4: .4byte gPlayerAvatar
-_080593A8: .4byte gMapObjects
- thumb_func_end player_npc_set_state_and_x22_etc
-
- thumb_func_start PlayerGoSpeed0
-PlayerGoSpeed0: @ 80593AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetGoSpeed0AnimId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end PlayerGoSpeed0
-
- thumb_func_start sub_80593C4
-sub_80593C4: @ 80593C4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8060744
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_80593C4
-
- thumb_func_start npc_use_some_d2s
-npc_use_some_d2s: @ 80593DC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl d2s_08064034
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end npc_use_some_d2s
-
- thumb_func_start sub_80593F4
-sub_80593F4: @ 80593F4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_806079C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_80593F4
-
- thumb_func_start sub_805940C
-sub_805940C: @ 805940C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80607F4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_805940C
-
- thumb_func_start PlayerOnBikeCollide
-PlayerOnBikeCollide: @ 8059424
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl PlayCollisionSoundIfNotFacingWarp
- adds r0, r4, 0
- bl GetStepInPlaceDelay16AnimId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerOnBikeCollide
-
- thumb_func_start PlayerNotOnBikeCollide
-PlayerNotOnBikeCollide: @ 8059448
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl PlayCollisionSoundIfNotFacingWarp
- adds r0, r4, 0
- bl GetStepInPlaceDelay32AnimId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerNotOnBikeCollide
-
- thumb_func_start PlayerFaceDirection
-PlayerFaceDirection: @ 805946C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetFaceDirectionAnimId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end PlayerFaceDirection
-
- thumb_func_start PlayerTurnInPlace
-PlayerTurnInPlace: @ 8059484
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetStepInPlaceDelay8AnimId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end PlayerTurnInPlace
-
- thumb_func_start PlayerJumpLedge
-PlayerJumpLedge: @ 805949C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0xA
- bl PlaySE
- adds r0, r4, 0
- bl GetJumpLedgeAnimId
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x8
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end PlayerJumpLedge
-
- thumb_func_start sub_80594C0
-sub_80594C0: @ 80594C0
- push {r4,lr}
- ldr r4, _080594FC @ =gPlayerAvatar
- ldrb r0, [r4, 0x3]
- cmp r0, 0x2
- beq _080594CE
- cmp r0, 0
- bne _080594F6
-_080594CE:
- bl player_should_look_direction_be_enforced_upon_movement
- lsls r0, 24
- cmp r0, 0
- beq _080594F6
- ldr r2, _08059500 @ =gMapObjects
- ldrb r1, [r4, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- lsls r0, 24
- lsrs r0, 24
- bl sub_8059348
-_080594F6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080594FC: .4byte gPlayerAvatar
-_08059500: .4byte gMapObjects
- thumb_func_end sub_80594C0
-
- thumb_func_start sub_8059504
-sub_8059504: @ 8059504
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_80609D8
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_8059504
-
- thumb_func_start sub_805951C
-sub_805951C: @ 805951C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8060A04
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_805951C
-
- thumb_func_start sub_8059534
-sub_8059534: @ 8059534
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8060A30
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_8059534
-
- thumb_func_start sub_805954C
-sub_805954C: @ 805954C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x22
- bl PlaySE
- adds r0, r4, 0
- bl sub_8060A5C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_805954C
-
- thumb_func_start sub_8059570
-sub_8059570: @ 8059570
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x22
- bl PlaySE
- adds r0, r4, 0
- bl sub_8060A88
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8059570
-
- thumb_func_start sub_8059594
-sub_8059594: @ 8059594
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x22
- bl PlaySE
- adds r0, r4, 0
- bl sub_8060AB4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x8
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8059594
-
- thumb_func_start sub_80595B8
-sub_80595B8: @ 80595B8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x22
- bl PlaySE
- adds r0, r4, 0
- bl sub_8060878
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80595B8
-
- thumb_func_start sub_80595DC
-sub_80595DC: @ 80595DC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x7
- bl PlaySE
- adds r0, r4, 0
- bl sub_8060AE0
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80595DC
-
- thumb_func_start sub_8059600
-sub_8059600: @ 8059600
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8060B0C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_8059600
-
- thumb_func_start sub_8059618
-sub_8059618: @ 8059618
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8060B38
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_8059618
-
- thumb_func_start sub_8059630
-sub_8059630: @ 8059630
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8060B64
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl player_npc_set_state_and_x22_etc
- pop {r0}
- bx r0
- thumb_func_end sub_8059630
-
- thumb_func_start PlayCollisionSoundIfNotFacingWarp
-PlayCollisionSoundIfNotFacingWarp: @ 8059648
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r2, _080596B8 @ =gMapObjects
- ldr r0, _080596BC @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1E]
- ldr r2, _080596C0 @ =gUnknown_0830FC34
- subs r1, r4, 0x1
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _080596B0
- cmp r4, 0x2
- bne _080596AA
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- movs r0, 0x2
- 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, 24
- lsrs r0, 24
- bl is_tile_x69_2_warp_door
- lsls r0, 24
- cmp r0, 0
- bne _080596B0
-_080596AA:
- movs r0, 0x7
- bl PlaySE
-_080596B0:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080596B8: .4byte gMapObjects
-_080596BC: .4byte gPlayerAvatar
-_080596C0: .4byte gUnknown_0830FC34
- thumb_func_end PlayCollisionSoundIfNotFacingWarp
-
- thumb_func_start GetXYCoordsOneStepInFrontOfPlayer
-GetXYCoordsOneStepInFrontOfPlayer: @ 80596C4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r3, _08059700 @ =gMapObjects
- ldr r2, _08059704 @ =gPlayerAvatar
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x10]
- strh r0, [r4]
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x12]
- strh r0, [r5]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- adds r2, r5, 0
- bl MoveCoords
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08059700: .4byte gMapObjects
-_08059704: .4byte gPlayerAvatar
- thumb_func_end GetXYCoordsOneStepInFrontOfPlayer
-
- thumb_func_start PlayerGetDestCoords
-PlayerGetDestCoords: @ 8059708
- push {r4,r5,lr}
- ldr r5, _08059730 @ =gMapObjects
- ldr r4, _08059734 @ =gPlayerAvatar
- ldrb r3, [r4, 0x5]
- lsls r2, r3, 3
- adds r2, r3
- lsls r2, 2
- adds r2, r5
- ldrh r2, [r2, 0x10]
- strh r2, [r0]
- ldrb r2, [r4, 0x5]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r0, r5
- ldrh r0, [r0, 0x12]
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08059730: .4byte gMapObjects
-_08059734: .4byte gPlayerAvatar
- thumb_func_end PlayerGetDestCoords
-
- thumb_func_start player_get_direction_lower_nybble
-player_get_direction_lower_nybble: @ 8059738
- ldr r2, _08059750 @ =gMapObjects
- ldr r0, _08059754 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bx lr
- .align 2, 0
-_08059750: .4byte gMapObjects
-_08059754: .4byte gPlayerAvatar
- thumb_func_end player_get_direction_lower_nybble
-
- thumb_func_start player_get_direction_upper_nybble
-player_get_direction_upper_nybble: @ 8059758
- ldr r2, _0805976C @ =gMapObjects
- ldr r0, _08059770 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x18]
- lsrs r0, 4
- bx lr
- .align 2, 0
-_0805976C: .4byte gMapObjects
-_08059770: .4byte gPlayerAvatar
- thumb_func_end player_get_direction_upper_nybble
-
- thumb_func_start PlayerGetZCoord
-PlayerGetZCoord: @ 8059774
- ldr r2, _08059788 @ =gMapObjects
- ldr r0, _0805978C @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0xB]
- lsrs r0, 4
- bx lr
- .align 2, 0
-_08059788: .4byte gMapObjects
-_0805978C: .4byte gPlayerAvatar
- thumb_func_end PlayerGetZCoord
-
- thumb_func_start unref_sub_8059790
-unref_sub_8059790: @ 8059790
- push {lr}
- adds r3, r0, 0
- adds r2, r1, 0
- ldr r0, _080597B8 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _080597BC @ =gMapObjects
- adds r0, r1
- lsls r3, 16
- asrs r3, 16
- lsls r2, 16
- asrs r2, 16
- adds r1, r3, 0
- bl sub_805C058
- pop {r0}
- bx r0
- .align 2, 0
-_080597B8: .4byte gPlayerAvatar
-_080597BC: .4byte gMapObjects
- thumb_func_end unref_sub_8059790
-
- thumb_func_start TestPlayerAvatarFlags
-TestPlayerAvatarFlags: @ 80597C0
- ldr r1, _080597CC @ =gPlayerAvatar
- ldrb r1, [r1]
- ands r1, r0
- adds r0, r1, 0
- bx lr
- .align 2, 0
-_080597CC: .4byte gPlayerAvatar
- thumb_func_end TestPlayerAvatarFlags
-
- thumb_func_start sub_80597D0
-sub_80597D0: @ 80597D0
- ldr r0, _080597D8 @ =gPlayerAvatar
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_080597D8: .4byte gPlayerAvatar
- thumb_func_end sub_80597D0
-
- thumb_func_start GetPlayerAvatarObjectId
-GetPlayerAvatarObjectId: @ 80597DC
- ldr r0, _080597E4 @ =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- bx lr
- .align 2, 0
-_080597E4: .4byte gPlayerAvatar
- thumb_func_end GetPlayerAvatarObjectId
-
- thumb_func_start sub_80597E8
-sub_80597E8: @ 80597E8
- push {lr}
- bl ForcedMovement_None
- pop {r0}
- bx r0
- thumb_func_end sub_80597E8
-
- thumb_func_start sub_80597F4
-sub_80597F4: @ 80597F4
- push {r4,lr}
- ldr r0, _08059834 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059838 @ =gMapObjects
- adds r4, r0
- adds r0, r4, 0
- bl npc_clear_strange_bits
- ldrb r1, [r4, 0x18]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl FieldObjectSetDirection
- movs r0, 0x6
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0805982C
- bl sub_80E6084
- movs r0, 0
- bl sub_80E6010
-_0805982C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08059834: .4byte gPlayerAvatar
-_08059838: .4byte gMapObjects
- thumb_func_end sub_80597F4
-
- thumb_func_start sub_805983C
-sub_805983C: @ 805983C
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08059850 @ =gUnknown_0830FC44
- lsrs r0, 23
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- bx lr
- .align 2, 0
-_08059850: .4byte gUnknown_0830FC44
- thumb_func_end sub_805983C
-
- thumb_func_start GetPlayerAvatarGraphicsIdByStateIdAndGender
-GetPlayerAvatarGraphicsIdByStateIdAndGender: @ 8059854
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08059868 @ =gUnknown_0830FC54
- lsrs r0, 23
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- bx lr
- .align 2, 0
-_08059868: .4byte gUnknown_0830FC54
- thumb_func_end GetPlayerAvatarGraphicsIdByStateIdAndGender
-
- thumb_func_start GetPlayerAvatarGraphicsIdByStateId
-GetPlayerAvatarGraphicsIdByStateId: @ 805986C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08059884 @ =gPlayerAvatar
- ldrb r1, [r1, 0x7]
- bl GetPlayerAvatarGraphicsIdByStateIdAndGender
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08059884: .4byte gPlayerAvatar
- thumb_func_end GetPlayerAvatarGraphicsIdByStateId
-
- thumb_func_start unref_sub_8059888
-unref_sub_8059888: @ 8059888
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x70
- beq _080598AA
- cmp r0, 0x70
- bgt _080598A2
- cmp r0, 0x6D
- bgt _080598AE
- cmp r0, 0x69
- blt _080598AE
- b _080598AA
-_080598A2:
- cmp r1, 0x8A
- beq _080598AA
- cmp r1, 0xC0
- bne _080598AE
-_080598AA:
- movs r0, 0x1
- b _080598B0
-_080598AE:
- movs r0, 0
-_080598B0:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8059888
-
- thumb_func_start GetPlayerAvatarGenderByGraphicsId
-GetPlayerAvatarGenderByGraphicsId: @ 80598B4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x70
- beq _080598D6
- cmp r0, 0x70
- bgt _080598CE
- cmp r0, 0x5D
- bgt _080598DA
- cmp r0, 0x59
- blt _080598DA
- b _080598D6
-_080598CE:
- cmp r1, 0x8A
- beq _080598D6
- cmp r1, 0xC0
- bne _080598DA
-_080598D6:
- movs r0, 0x1
- b _080598DC
-_080598DA:
- movs r0, 0
-_080598DC:
- pop {r1}
- bx r1
- thumb_func_end GetPlayerAvatarGenderByGraphicsId
-
- thumb_func_start PartyHasMonWithSurf
-PartyHasMonWithSurf: @ 80598E0
- push {r4,r5,lr}
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _08059924
- movs r5, 0
- b _0805990A
-_080598F2:
- adds r0, r4, 0
- movs r1, 0x39
- bl pokemon_has_move
- lsls r0, 24
- cmp r0, 0
- beq _08059904
- movs r0, 0x1
- b _08059926
-_08059904:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0805990A:
- cmp r5, 0x5
- bhi _08059924
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0805992C @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- bne _080598F2
-_08059924:
- movs r0, 0
-_08059926:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805992C: .4byte gPlayerParty
- thumb_func_end PartyHasMonWithSurf
-
- thumb_func_start IsPlayerSurfingNorth
-IsPlayerSurfingNorth: @ 8059930
- push {lr}
- bl player_get_direction_upper_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0805994E
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0805994E
- movs r0, 0x1
- b _08059950
-_0805994E:
- movs r0, 0
-_08059950:
- pop {r1}
- bx r1
- thumb_func_end IsPlayerSurfingNorth
-
- thumb_func_start IsPlayerFacingSurfableFishableWater
-IsPlayerFacingSurfableFishableWater: @ 8059954
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _080599CC @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _080599D0 @ =gMapObjects
- adds r4, r0
- ldrh r1, [r4, 0x10]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r4, 0x12]
- mov r5, sp
- adds r5, 0x2
- strh r0, [r5]
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- 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, 28
- lsrs r3, 28
- adds r0, r4, 0
- bl npc_block_way
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _080599D4
- bl PlayerGetZCoord
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _080599D4
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsSurfableFishableWater
- lsls r0, 24
- cmp r0, 0
- beq _080599D4
- movs r0, 0x1
- b _080599D6
- .align 2, 0
-_080599CC: .4byte gPlayerAvatar
-_080599D0: .4byte gMapObjects
-_080599D4:
- movs r0, 0
-_080599D6:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end IsPlayerFacingSurfableFishableWater
-
- thumb_func_start ClearPlayerAvatarInfo
-ClearPlayerAvatarInfo: @ 80599E0
- push {lr}
- ldr r0, _080599F0 @ =gPlayerAvatar
- movs r1, 0
- movs r2, 0x24
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_080599F0: .4byte gPlayerAvatar
- thumb_func_end ClearPlayerAvatarInfo
-
- thumb_func_start SetPlayerAvatarStateMask
-SetPlayerAvatarStateMask: @ 80599F4
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08059A08 @ =gPlayerAvatar
- ldrb r2, [r3]
- movs r1, 0xE0
- ands r1, r2
- orrs r0, r1
- strb r0, [r3]
- bx lr
- .align 2, 0
-_08059A08: .4byte gPlayerAvatar
- thumb_func_end SetPlayerAvatarStateMask
-
- thumb_func_start GetPlayerAvatarStateTransitionByGraphicsId
-GetPlayerAvatarStateTransitionByGraphicsId: @ 8059A0C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0
- ldr r3, _08059A34 @ =gUnknown_0830FC64
- lsls r0, r1, 2
- adds r0, r1
- lsls r4, r0, 1
- adds r6, r3, 0x1
-_08059A22:
- lsls r0, r2, 1
- adds r1, r0, r4
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r5
- bne _08059A38
- adds r0, r1, r6
- ldrb r0, [r0]
- b _08059A44
- .align 2, 0
-_08059A34: .4byte gUnknown_0830FC64
-_08059A38:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x4
- bls _08059A22
- movs r0, 0x1
-_08059A44:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetPlayerAvatarStateTransitionByGraphicsId
-
- thumb_func_start GetPlayerAvatarGraphicsIdByCurrentState
-GetPlayerAvatarGraphicsIdByCurrentState: @ 8059A4C
- push {r4-r6,lr}
- ldr r0, _08059A74 @ =gPlayerAvatar
- ldrb r5, [r0]
- movs r2, 0
- ldr r3, _08059A78 @ =gUnknown_0830FC64
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 2
- adds r0, r1
- lsls r4, r0, 1
- adds r6, r3, 0x1
-_08059A60:
- lsls r0, r2, 1
- adds r1, r0, r4
- adds r0, r1, r6
- ldrb r0, [r0]
- ands r0, r5
- cmp r0, 0
- beq _08059A7C
- adds r0, r1, r3
- ldrb r0, [r0]
- b _08059A88
- .align 2, 0
-_08059A74: .4byte gPlayerAvatar
-_08059A78: .4byte gUnknown_0830FC64
-_08059A7C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x4
- bls _08059A60
- movs r0, 0
-_08059A88:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetPlayerAvatarGraphicsIdByCurrentState
-
- thumb_func_start SetPlayerAvatarExtraStateTransition
-SetPlayerAvatarExtraStateTransition: @ 8059A90
- push {r4,r5,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08059ABC @ =gPlayerAvatar
- ldrb r1, [r5, 0x7]
- bl GetPlayerAvatarStateTransitionByGraphicsId
- lsls r0, 24
- lsrs r0, 24
- orrs r0, r4
- ldrb r1, [r5, 0x1]
- orrs r0, r1
- strb r0, [r5, 0x1]
- bl DoPlayerAvatarTransition
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08059ABC: .4byte gPlayerAvatar
- thumb_func_end SetPlayerAvatarExtraStateTransition
-
- thumb_func_start InitPlayerAvatar
-InitPlayerAvatar: @ 8059AC0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x18
- adds r4, r0, 0
- adds r5, r1, 0
- mov r9, r2
- mov r8, r3
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- mov r1, sp
- movs r0, 0xFF
- strb r0, [r1]
- movs r0, 0
- mov r1, r8
- bl GetPlayerAvatarGraphicsIdByStateIdAndGender
- mov r1, sp
- movs r3, 0
- strb r0, [r1, 0x1]
- mov r0, sp
- lsls r4, 16
- asrs r4, 16
- subs r4, 0x7
- movs r6, 0
- strh r4, [r0, 0x4]
- lsls r5, 16
- asrs r5, 16
- subs r5, 0x7
- strh r5, [r0, 0x6]
- strb r6, [r0, 0x8]
- movs r0, 0xB
- strb r0, [r1, 0x9]
- 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 SpawnSpecialFieldObject
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, r5, 3
- adds r4, r5
- lsls r4, 2
- ldr r0, _08059B80 @ =gMapObjects
- adds r4, r0
- ldrb r0, [r4, 0x2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x2]
- bl sub_8126B54
- strb r0, [r4, 0x1B]
- adds r0, r4, 0
- mov r1, r9
- bl FieldObjectTurn
- bl ClearPlayerAvatarInfo
- ldr r0, _08059B84 @ =gPlayerAvatar
- strb r6, [r0, 0x2]
- strb r6, [r0, 0x3]
- strb r5, [r0, 0x5]
- ldrb r1, [r4, 0x4]
- strb r1, [r0, 0x4]
- mov r1, r8
- strb r1, [r0, 0x7]
- movs r0, 0x21
- bl SetPlayerAvatarStateMask
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08059B80: .4byte gMapObjects
-_08059B84: .4byte gPlayerAvatar
- thumb_func_end InitPlayerAvatar
-
- thumb_func_start sub_8059B88
-sub_8059B88: @ 8059B88
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r6, _08059BE8 @ =gMapObjects
- ldr r5, _08059BEC @ =gPlayerAvatar
- ldrb r0, [r5, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- ands r4, r0
- lsls r3, r4, 5
- ldrb r2, [r1, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x1]
- movs r0, 0x8
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _08059BE0
- ldr r2, _08059BF0 @ =gSprites
- ldrb r1, [r5, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x1A]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- lsls r3, r4, 2
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r3
- strb r0, [r1]
-_08059BE0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08059BE8: .4byte gMapObjects
-_08059BEC: .4byte gPlayerAvatar
-_08059BF0: .4byte gSprites
- thumb_func_end sub_8059B88
-
- thumb_func_start sub_8059BF4
-sub_8059BF4: @ 8059BF4
- push {r4,r5,lr}
- ldr r5, _08059C30 @ =gPlayerAvatar
- ldrb r0, [r5, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059C34 @ =gMapObjects
- adds r4, r0
- movs r0, 0x5
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08059C38 @ =gSprites
- adds r0, r1
- movs r1, 0
- bl StartSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08059C30: .4byte gPlayerAvatar
-_08059C34: .4byte gMapObjects
-_08059C38: .4byte gSprites
- thumb_func_end sub_8059BF4
-
- thumb_func_start sub_8059C3C
-sub_8059C3C: @ 8059C3C
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _08059C88 @ =gPlayerAvatar
- ldrb r0, [r6, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059C8C @ =gMapObjects
- adds r4, r0
- movs r0, 0x6
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r0, [r6, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059C90 @ =gSprites
- adds r4, r0
- adds r0, r5, 0
- bl sub_805FDE8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08059C88: .4byte gPlayerAvatar
-_08059C8C: .4byte gMapObjects
-_08059C90: .4byte gSprites
- thumb_func_end sub_8059C3C
-
- thumb_func_start sub_8059C94
-sub_8059C94: @ 8059C94
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _08059CFC @ =gPlayerAvatar
- ldrb r0, [r6, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059D00 @ =gMapObjects
- adds r4, r0
- movs r0, 0x2
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r0, [r6, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059D04 @ =gSprites
- mov r8, r0
- add r4, r8
- adds r0, r5, 0
- bl sub_805FD98
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldrb r1, [r6, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- movs r1, 0x1
- bl SeekSpriteAnim
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08059CFC: .4byte gPlayerAvatar
-_08059D00: .4byte gMapObjects
-_08059D04: .4byte gSprites
- thumb_func_end sub_8059C94
-
- thumb_func_start sub_8059D08
-sub_8059D08: @ 8059D08
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _08059D54 @ =gPlayerAvatar
- ldrb r0, [r6, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059D58 @ =gMapObjects
- adds r4, r0
- movs r0, 0x7
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r0, [r6, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _08059D5C @ =gSprites
- adds r4, r0
- adds r0, r5, 0
- bl FieldObjectDirectionToImageAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08059D54: .4byte gPlayerAvatar
-_08059D58: .4byte gMapObjects
-_08059D5C: .4byte gSprites
- thumb_func_end sub_8059D08
-
- thumb_func_start sub_8059D60
-sub_8059D60: @ 8059D60
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrb r0, [r5, 0x1E]
- mov r8, r0
- movs r1, 0
- mov r0, sp
- strh r1, [r0]
- movs r6, 0x1
- ldr r1, _08059DC4 @ =gUnknown_0830FC78
- mov r9, r1
- mov r4, sp
- mov r7, sp
- adds r7, 0x2
-_08059D82:
- movs r1, 0
- ldrsh r0, [r4, r1]
- lsls r0, 2
- add r0, r9
- ldr r1, [r0]
- mov r0, r8
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- beq _08059DC8
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- cmp r6, r0
- bne _08059DC8
- 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 sub_8126BC4
- b _08059DE2
- .align 2, 0
-_08059DC4: .4byte gUnknown_0830FC78
-_08059DC8:
- ldrh r1, [r4]
- adds r1, 0x1
- strh r1, [r4]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x3
- ble _08059D82
- ldrb r0, [r5, 0x1B]
- bl objid_set_invisible
-_08059DE2:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8059D60
-
- thumb_func_start task_add_bump_boulder
-task_add_bump_boulder: @ 8059DF0
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _08059E24 @ =sub_8059E2C
- adds r0, r6, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08059E28 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- strh r5, [r1, 0xC]
- bl _call_via_r6
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08059E24: .4byte sub_8059E2C
-_08059E28: .4byte gTasks
- thumb_func_end task_add_bump_boulder
-
- thumb_func_start sub_8059E2C
-sub_8059E2C: @ 8059E2C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _08059E74 @ =gUnknown_0830FC88
- ldr r2, _08059E78 @ =gTasks
- ldr r5, _08059E7C @ =gMapObjects
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_08059E40:
- movs r0, 0x8
- ldrsh r3, [r4, r0]
- lsls r3, 2
- adds r3, r6
- ldr r0, _08059E80 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r2, r0, 3
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
- lsls r0, 24
- cmp r0, 0
- bne _08059E40
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08059E74: .4byte gUnknown_0830FC88
-_08059E78: .4byte gTasks
-_08059E7C: .4byte gMapObjects
-_08059E80: .4byte gPlayerAvatar
- thumb_func_end sub_8059E2C
-
- thumb_func_start sub_8059E84
-sub_8059E84: @ 8059E84
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptContext2_Enable
- ldr r1, _08059EA0 @ =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08059EA0: .4byte gPlayerAvatar
- thumb_func_end sub_8059E84
-
- thumb_func_start sub_8059EA4
-sub_8059EA4: @ 8059EA4
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- adds r0, r5, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- bne _08059F2E
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- bne _08059F2E
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- ldrb r0, [r6, 0xC]
- bl GetStepInPlaceDelay16AnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetSpecialAnim
- ldrb r0, [r6, 0xC]
- bl GetSimpleGoAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldr r2, _08059F38 @ =gUnknown_0202FF84
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- str r0, [r2]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- str r0, [r2, 0x4]
- ldrb r0, [r4, 0xB]
- lsrs r0, 4
- str r0, [r2, 0x8]
- ldr r3, _08059F3C @ =gSprites
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x5]
- lsls r0, 28
- lsrs r0, 30
- str r0, [r2, 0xC]
- movs r0, 0xA
- bl FieldEffectStart
- movs r0, 0xD6
- bl PlaySE
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_08059F2E:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08059F38: .4byte gUnknown_0202FF84
-_08059F3C: .4byte gSprites
- thumb_func_end sub_8059EA4
-
- thumb_func_start sub_8059F40
-sub_8059F40: @ 8059F40
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- adds r0, r4, 0
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- cmp r0, 0
- beq _08059F82
- adds r0, r5, 0
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- cmp r0, 0
- beq _08059F82
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- ldr r1, _08059F8C @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x6]
- bl ScriptContext2_Disable
- ldr r0, _08059F90 @ =sub_8059E2C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_08059F82:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08059F8C: .4byte gPlayerAvatar
-_08059F90: .4byte sub_8059E2C
- thumb_func_end sub_8059F40
-
- thumb_func_start sub_8059F94
-sub_8059F94: @ 8059F94
- push {r4,lr}
- ldr r4, _08059FB0 @ =sub_8059FB4
- adds r0, r4, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08059FB0: .4byte sub_8059FB4
- thumb_func_end sub_8059F94
-
- thumb_func_start sub_8059FB4
-sub_8059FB4: @ 8059FB4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08059FF0 @ =gUnknown_0830FC94
- ldr r2, _08059FF4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_08059FC6:
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- lsls r2, 2
- adds r2, r5
- ldr r0, _08059FF8 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _08059FFC @ =gMapObjects
- adds r1, r0
- ldr r2, [r2]
- adds r0, r4, 0
- bl _call_via_r2
- lsls r0, 24
- cmp r0, 0
- bne _08059FC6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08059FF0: .4byte gUnknown_0830FC94
-_08059FF4: .4byte gTasks
-_08059FF8: .4byte gPlayerAvatar
-_08059FFC: .4byte gMapObjects
- thumb_func_end sub_8059FB4
-
- thumb_func_start sub_805A000
-sub_805A000: @ 805A000
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- ldr r5, _0805A064 @ =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r5, 0x6]
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0805A05C
- movs r0, 0xA
- bl PlaySE
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_806084C
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r6, 0xA]
- adds r0, 0x1
- strh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0805A05C
- movs r0, 0
- strb r0, [r5, 0x6]
- ldrb r0, [r5, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r5, 0x1]
- ldr r0, _0805A068 @ =sub_8059FB4
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0805A05C:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A064: .4byte gPlayerAvatar
-_0805A068: .4byte sub_8059FB4
- thumb_func_end sub_805A000
-
- thumb_func_start sub_805A06C
-sub_805A06C: @ 805A06C
- push {r4,lr}
- ldr r4, _0805A088 @ =sub_805A08C
- adds r0, r4, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl _call_via_r4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0805A088: .4byte sub_805A08C
- thumb_func_end sub_805A06C
-
- thumb_func_start sub_805A08C
-sub_805A08C: @ 805A08C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0805A0C8 @ =gUnknown_0830FC98
- ldr r2, _0805A0CC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0805A09E:
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- lsls r2, 2
- adds r2, r5
- ldr r0, _0805A0D0 @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _0805A0D4 @ =gMapObjects
- adds r1, r0
- ldr r2, [r2]
- adds r0, r4, 0
- bl _call_via_r2
- lsls r0, 24
- cmp r0, 0
- bne _0805A09E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805A0C8: .4byte gUnknown_0830FC98
-_0805A0CC: .4byte gTasks
-_0805A0D0: .4byte gPlayerAvatar
-_0805A0D4: .4byte gMapObjects
- thumb_func_end sub_805A08C
-
- thumb_func_start sub_805A0D8
-sub_805A0D8: @ 805A0D8
- push {lr}
- ldrh r2, [r0, 0x8]
- adds r2, 0x1
- strh r2, [r0, 0x8]
- ldrb r1, [r1, 0x18]
- lsrs r1, 4
- strh r1, [r0, 0xA]
- ldr r1, _0805A0FC @ =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r1, 0x6]
- bl ScriptContext2_Enable
- movs r0, 0x2D
- bl PlaySE
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_0805A0FC: .4byte gPlayerAvatar
- thumb_func_end sub_805A0D8
-
- thumb_func_start sub_805A100
-sub_805A100: @ 805A100
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _0805A174 @ =gUnknown_0830FCA8
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0805A168
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- subs r0, 0x1
- add r0, sp
- ldrb r6, [r0]
- adds r0, r6, 0
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetSpecialAnim
- ldrb r0, [r4, 0xA]
- cmp r6, r0
- bne _0805A146
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_0805A146:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- ble _0805A168
- ldrb r0, [r4, 0xA]
- bl GetOppositeDirection
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bne _0805A168
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0805A168:
- movs r0, 0
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A174: .4byte gUnknown_0830FCA8
- thumb_func_end sub_805A100
-
- thumb_func_start sub_805A178
-sub_805A178: @ 805A178
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r1, _0805A1B4 @ =gUnknown_0830FCAC
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0805A1A8
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- add r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- movs r0, 0x1
- strh r0, [r5, 0x8]
-_0805A1A8:
- movs r0, 0
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A1B4: .4byte gUnknown_0830FCAC
- thumb_func_end sub_805A178
-
- thumb_func_start sub_805A1B8
-sub_805A1B8: @ 805A1B8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0805A1FC
- ldrb r0, [r4, 0xA]
- bl GetOppositeDirection
- lsls r0, 24
- lsrs r0, 24
- bl GetSimpleGoAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetSpecialAnim
- bl ScriptContext2_Disable
- ldr r1, _0805A204 @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x6]
- ldr r0, _0805A208 @ =sub_805A08C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0805A1FC:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A204: .4byte gPlayerAvatar
-_0805A208: .4byte sub_805A08C
- thumb_func_end sub_805A1B8
-
- thumb_func_start sub_805A20C
-sub_805A20C: @ 805A20C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ScriptContext2_Enable
- bl sav1_reset_battle_music_maybe
- bl sub_8053F84
- ldr r2, _0805A258 @ =gPlayerAvatar
- ldrb r1, [r2]
- movs r0, 0xF7
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
- strb r0, [r2, 0x6]
- ldr r5, _0805A25C @ =taskFF_0805D1D4
- adds r0, r5, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0805A260 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- bl _call_via_r5
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805A258: .4byte gPlayerAvatar
-_0805A25C: .4byte taskFF_0805D1D4
-_0805A260: .4byte gTasks
- thumb_func_end sub_805A20C
-
- thumb_func_start taskFF_0805D1D4
-taskFF_0805D1D4: @ 805A264
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0805A2C0 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805A2C4 @ =gMapObjects
- adds r5, r0, r1
- adds r0, r5, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _0805A290
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0805A2B8
-_0805A290:
- ldrb r0, [r5, 0x1A]
- movs r1, 0x2
- bl sub_8127ED0
- ldr r0, _0805A2C8 @ =gTasks
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x8]
- bl sub_80608D0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldObjectSetSpecialAnim
- ldr r0, _0805A2CC @ =sub_805A2D0
- str r0, [r4]
-_0805A2B8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0805A2C0: .4byte gPlayerAvatar
-_0805A2C4: .4byte gMapObjects
-_0805A2C8: .4byte gTasks
-_0805A2CC: .4byte sub_805A2D0
- thumb_func_end taskFF_0805D1D4
-
- thumb_func_start sub_805A2D0
-sub_805A2D0: @ 805A2D0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _0805A33C @ =gPlayerAvatar
- ldrb r1, [r6, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805A340 @ =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0805A336
- movs r0, 0
- bl GetPlayerAvatarGraphicsIdByStateId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- movs r0, 0
- strb r0, [r6, 0x6]
- bl ScriptContext2_Disable
- ldrb r1, [r4, 0x1A]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805A344 @ =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r5, 0
- bl DestroyTask
-_0805A336:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0805A33C: .4byte gPlayerAvatar
-_0805A340: .4byte gMapObjects
-_0805A344: .4byte gSprites
- thumb_func_end sub_805A2D0
-
- thumb_func_start StartFishing
-StartFishing: @ 805A348
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _0805A374 @ =sub_805A37C
- adds r0, r5, 0
- movs r1, 0xFF
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0805A378 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x26]
- bl _call_via_r5
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805A374: .4byte sub_805A37C
-_0805A378: .4byte gTasks
- thumb_func_end StartFishing
-
- thumb_func_start sub_805A37C
-sub_805A37C: @ 805A37C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0805A3AC @ =gUnknown_0830FCB4
- ldr r2, _0805A3B0 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0805A38E:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r5
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- cmp r0, 0
- bne _0805A38E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0805A3AC: .4byte gUnknown_0830FCB4
-_0805A3B0: .4byte gTasks
- thumb_func_end sub_805A37C
-
- thumb_func_start sub_805A3B4
-sub_805A3B4: @ 805A3B4
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptContext2_Enable
- ldr r1, _0805A3D0 @ =gPlayerAvatar
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A3D0: .4byte gPlayerAvatar
- thumb_func_end sub_805A3B4
-
- thumb_func_start fish1
-fish1: @ 805A3D4
- push {r4-r6,lr}
- sub sp, 0x10
- adds r5, r0, 0
- ldr r1, _0805A45C @ =gUnknown_0830FCF4
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- add r4, sp, 0x8
- ldr r1, _0805A460 @ =gUnknown_0830FCFA
- adds r0, r4, 0
- movs r2, 0x6
- bl memcpy
- movs r0, 0
- strh r0, [r5, 0x20]
- bl Random
- movs r2, 0x26
- ldrsh r1, [r5, r2]
- lsls r1, 1
- mov r2, sp
- adds r6, r2, r1
- lsls r0, 16
- lsrs r0, 16
- adds r4, r1
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl __modsi3
- ldrh r1, [r6]
- adds r1, r0
- strh r1, [r5, 0x22]
- ldr r3, _0805A464 @ =gMapObjects
- ldr r2, _0805A468 @ =gPlayerAvatar
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x5]
- strh r0, [r5, 0x24]
- ldrb r0, [r2, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- adds r4, r3
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimActive
- ldrb r0, [r4, 0x1]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_8059C3C
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- add sp, 0x10
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A45C: .4byte gUnknown_0830FCF4
-_0805A460: .4byte gUnknown_0830FCFA
-_0805A464: .4byte gMapObjects
-_0805A468: .4byte gPlayerAvatar
- thumb_func_end fish1
-
- thumb_func_start fish2
-fish2: @ 805A46C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_805A954
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3B
- ble _0805A488
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0805A488:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end fish2
-
- thumb_func_start fish3
-fish3: @ 805A490
- push {r4,lr}
- adds r4, r0, 0
- bl MenuDisplayMessageBox
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xA]
- strh r1, [r4, 0xC]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r1, r0, 0
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0805A4C4
- adds r0, r1, 0x4
- strh r0, [r4, 0xE]
-_0805A4C4:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x9
- ble _0805A4D0
- movs r0, 0xA
- strh r0, [r4, 0xE]
-_0805A4D0:
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end fish3
-
- thumb_func_start fish4
-fish4: @ 805A4D8
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r1, _0805A514 @ =gUnknown_0830FD00
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- bl sub_805A954
- ldrh r0, [r4, 0xA]
- adds r2, r0, 0x1
- strh r2, [r4, 0xA]
- ldr r0, _0805A518 @ =gMain
- ldrh r0, [r0, 0x2E]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0805A51C
- movs r0, 0xB
- strh r0, [r4, 0x8]
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0805A50E
- movs r0, 0xC
- strh r0, [r4, 0x8]
-_0805A50E:
- movs r0, 0x1
- b _0805A564
- .align 2, 0
-_0805A514: .4byte gUnknown_0830FD00
-_0805A518: .4byte gMain
-_0805A51C:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _0805A562
- strh r1, [r4, 0xA]
- ldrh r2, [r4, 0xC]
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- movs r3, 0xE
- ldrsh r0, [r4, r3]
- cmp r1, r0
- blt _0805A54E
- ldrh r0, [r4, 0x8]
- adds r1, r0, 0x1
- strh r1, [r4, 0x8]
- ldrh r2, [r4, 0x20]
- movs r3, 0x20
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0805A548
- adds r0, r1, 0x1
- strh r0, [r4, 0x8]
-_0805A548:
- adds r0, r2, 0x1
- strh r0, [r4, 0x20]
- b _0805A562
-_0805A54E:
- adds r1, r2, 0x4
- lsls r1, 24
- lsrs r1, 24
- mov r0, sp
- movs r2, 0xF
- bl MenuPrint
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_0805A562:
- movs r0, 0
-_0805A564:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end fish4
-
- thumb_func_start party_menu_update_status_condition_object
-party_menu_update_status_condition_object: @ 805A56C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_805A954
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- bl GetFishingWildMonListHeader
- lsls r0, 24
- cmp r0, 0
- beq _0805A590
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _0805A596
-_0805A590:
- movs r0, 0xB
- strh r0, [r4, 0x8]
- b _0805A5BC
-_0805A596:
- ldr r0, _0805A5C4 @ =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0805A5C8 @ =gSprites
- adds r4, r0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl sub_805FE08
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
-_0805A5BC:
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A5C4: .4byte gPlayerAvatar
-_0805A5C8: .4byte gSprites
- thumb_func_end party_menu_update_status_condition_object
-
- thumb_func_start sub_805A5CC
-sub_805A5CC: @ 805A5CC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_805A954
- ldr r0, _0805A5F0 @ =gOtherText_OhABite
- movs r1, 0x4
- movs r2, 0x11
- bl MenuPrint
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xA]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A5F0: .4byte gOtherText_OhABite
- thumb_func_end sub_805A5CC
-
- thumb_func_start fish7
-fish7: @ 805A5F4
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, _0805A628 @ =gUnknown_0830FD02
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- bl sub_805A954
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r0, 1
- add r0, sp
- lsls r1, 16
- asrs r1, 16
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r1, r0
- blt _0805A62C
- movs r0, 0xC
- b _0805A63C
- .align 2, 0
-_0805A628: .4byte gUnknown_0830FD02
-_0805A62C:
- ldr r0, _0805A648 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0805A63E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
-_0805A63C:
- strh r0, [r4, 0x8]
-_0805A63E:
- movs r0, 0
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A648: .4byte gMain
- thumb_func_end fish7
-
- thumb_func_start fish8
-fish8: @ 805A64C
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- ldr r1, _0805A6B0 @ =gUnknown_0830FD08
- mov r0, sp
- movs r2, 0xC
- bl memcpy
- bl sub_805A954
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _0805A6A2
- cmp r1, 0x1
- bgt _0805A6A6
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- movs r3, 0x20
- ldrsh r2, [r4, r3]
- lsls r2, 1
- movs r3, 0x26
- ldrsh r1, [r4, r3]
- lsls r1, 2
- adds r2, r1
- mov r3, sp
- adds r1, r3, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- lsls r0, 16
- asrs r0, 16
- cmp r1, r0
- ble _0805A6A6
-_0805A6A2:
- movs r0, 0x3
- strh r0, [r4, 0x8]
-_0805A6A6:
- movs r0, 0
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A6B0: .4byte gUnknown_0830FD08
- thumb_func_end fish8
-
- thumb_func_start sub_805A6B4
-sub_805A6B4: @ 805A6B4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_805A954
- ldr r0, _0805A6D8 @ =gOtherText_PokeOnHook
- bl sub_8072044
- bl MenuDisplayMessageBox
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xA]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A6D8: .4byte gOtherText_PokeOnHook
- thumb_func_end sub_805A6B4
-
- thumb_func_start sub_805A6DC
-sub_805A6DC: @ 805A6DC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0805A780
- bl sub_805A954
- movs r0, 0xA
- ldrsh r6, [r5, r0]
- cmp r6, 0
- bne _0805A780
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _0805A778
- ldr r7, _0805A76C @ =gPlayerAvatar
- ldrb r0, [r7, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r1, _0805A770 @ =gMapObjects
- mov r8, r1
- add r4, r8
- ldrh r1, [r5, 0x24]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl FieldObjectTurn
- ldrb r1, [r7]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0805A746
- ldrb r0, [r7, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r0, [r1, 0x1A]
- movs r1, 0
- movs r2, 0
- bl sub_8127F28
-_0805A746:
- ldr r2, _0805A774 @ =gSprites
- ldrb r1, [r7, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r6, [r0, 0x24]
- ldrb r1, [r7, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r6, [r0, 0x26]
- bl MenuZeroFillScreen
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- b _0805A7A8
- .align 2, 0
-_0805A76C: .4byte gPlayerAvatar
-_0805A770: .4byte gMapObjects
-_0805A774: .4byte gSprites
-_0805A778:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0805A7A8
-_0805A780:
- ldr r1, _0805A7B4 @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x6]
- bl ScriptContext2_Disable
- ldrh r0, [r5, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl FishingWildEncounter
- movs r0, 0x1
- bl sub_80BE97C
- ldr r0, _0805A7B8 @ =sub_805A37C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0805A7A8:
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A7B4: .4byte gPlayerAvatar
-_0805A7B8: .4byte sub_805A37C
- thumb_func_end sub_805A6DC
-
- thumb_func_start sub_805A7BC
-sub_805A7BC: @ 805A7BC
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_805A954
- ldr r0, _0805A7FC @ =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0805A800 @ =gSprites
- adds r4, r0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl sub_805FDF8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _0805A804 @ =gOtherText_NotEvenANibble
- bl sub_8072044
- movs r0, 0xD
- strh r0, [r5, 0x8]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A7FC: .4byte gPlayerAvatar
-_0805A800: .4byte gSprites
-_0805A804: .4byte gOtherText_NotEvenANibble
- thumb_func_end sub_805A7BC
-
- thumb_func_start sub_805A808
-sub_805A808: @ 805A808
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_805A954
- ldr r0, _0805A84C @ =gPlayerAvatar
- ldrb r0, [r0, 0x4]
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0805A850 @ =gSprites
- adds r4, r0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- bl sub_805FDF8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _0805A854 @ =gOtherText_ItGotAway
- bl sub_8072044
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A84C: .4byte gPlayerAvatar
-_0805A850: .4byte gSprites
-_0805A854: .4byte gOtherText_ItGotAway
- thumb_func_end sub_805A808
-
- thumb_func_start fishD
-fishD: @ 805A858
- push {r4,lr}
- adds r4, r0, 0
- bl sub_805A954
- bl MenuDisplayMessageBox
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end fishD
-
- thumb_func_start sub_805A874
-sub_805A874: @ 805A874
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- bl sub_805A954
- ldr r7, _0805A908 @ =gSprites
- ldr r5, _0805A90C @ =gPlayerAvatar
- ldrb r0, [r5, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- adds r1, 0x3F
- ldrb r0, [r1]
- lsls r0, 27
- cmp r0, 0
- bge _0805A8FA
- ldrb r0, [r5, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _0805A910 @ =gMapObjects
- mov r8, r0
- add r4, r8
- ldrh r1, [r6, 0x24]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r4, 0x18]
- lsrs r1, 4
- adds r0, r4, 0
- bl FieldObjectTurn
- ldrb r1, [r5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0805A8DA
- ldrb r0, [r5, 0x5]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r0, [r1, 0x1A]
- movs r1, 0
- movs r2, 0
- bl sub_8127F28
-_0805A8DA:
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- movs r2, 0
- strh r2, [r0, 0x24]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x26]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_0805A8FA:
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0805A908: .4byte gSprites
-_0805A90C: .4byte gPlayerAvatar
-_0805A910: .4byte gMapObjects
- thumb_func_end sub_805A874
-
- thumb_func_start fishF
-fishF: @ 805A914
- push {lr}
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _0805A946
- ldr r1, _0805A94C @ =gPlayerAvatar
- movs r0, 0
- strb r0, [r1, 0x6]
- bl ScriptContext2_Disable
- bl sub_806451C
- bl MenuZeroFillScreen
- movs r0, 0
- bl sub_80BE97C
- ldr r0, _0805A950 @ =sub_805A37C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0805A946:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0805A94C: .4byte gPlayerAvatar
-_0805A950: .4byte sub_805A37C
- thumb_func_end fishF
-
- thumb_func_start sub_805A954
-sub_805A954: @ 805A954
- push {r4-r7,lr}
- ldr r0, _0805AA40 @ =gPlayerAvatar
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0805AA44 @ =gSprites
- 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, r4
- mov r12, r0
- ldrb r0, [r0]
- ldr r1, [r4, 0x8]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r6, r5, 2
- adds r0, r6, r0
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r7, 0x1
- negs r7, r7
- cmp r0, r7
- beq _0805A9C6
- adds r3, r4, 0
- adds r3, 0x2C
- ldrb r2, [r3]
- lsls r1, r2, 26
- lsrs r1, 26
- adds r1, 0x1
- movs r0, 0x3F
- ands r1, r0
- movs r0, 0x40
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- mov r1, r12
- ldrb r0, [r1]
- ldr r1, [r4, 0x8]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- adds r0, r6, r0
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, r7
- bne _0805A9CC
-_0805A9C6:
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0805A9CC:
- adds r0, r4, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- ldr r1, [r4, 0x8]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r0, r1
- ldrb r5, [r0]
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bhi _0805A9FE
- movs r0, 0x8
- strh r0, [r4, 0x24]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0805A9FE
- ldr r0, _0805AA48 @ =0x0000fff8
- strh r0, [r4, 0x24]
-_0805A9FE:
- cmp r5, 0x5
- bne _0805AA06
- ldr r0, _0805AA48 @ =0x0000fff8
- strh r0, [r4, 0x26]
-_0805AA06:
- adds r0, r5, 0
- subs r0, 0xA
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0805AA16
- movs r0, 0x8
- strh r0, [r4, 0x26]
-_0805AA16:
- ldr r3, _0805AA40 @ =gPlayerAvatar
- ldrb r1, [r3]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0805AA3A
- ldr r2, _0805AA4C @ =gMapObjects
- ldrb r1, [r3, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1A]
- movs r1, 0x26
- ldrsh r2, [r4, r1]
- movs r1, 0x1
- bl sub_8127F28
-_0805AA3A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805AA40: .4byte gPlayerAvatar
-_0805AA44: .4byte gSprites
-_0805AA48: .4byte 0x0000fff8
-_0805AA4C: .4byte gMapObjects
- thumb_func_end sub_805A954
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_poison.s b/asm/field_poison.s
deleted file mode 100644
index f51c18cfe..000000000
--- a/asm/field_poison.s
+++ /dev/null
@@ -1,317 +0,0 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
-
- .syntax unified
-
- .text
-
- thumb_func_start CheckMonIsValid
-CheckMonIsValid: @ 80C5684
- push {lr}
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _080C569C
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bne _080C56A0
-_080C569C:
- movs r0, 0
- b _080C56A2
-_080C56A0:
- movs r0, 0x1
-_080C56A2:
- pop {r1}
- bx r1
- thumb_func_end CheckMonIsValid
-
- thumb_func_start CheckMonFainted
-CheckMonFainted: @ 80C56A8
- push {r4,r5,lr}
- ldr r4, _080C56C8 @ =gPlayerParty
- movs r5, 0
-_080C56AE:
- adds r0, r4, 0
- bl CheckMonIsValid
- cmp r0, 0
- beq _080C56CC
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080C56CC
- movs r0, 0
- b _080C56D6
- .align 2, 0
-_080C56C8: .4byte gPlayerParty
-_080C56CC:
- adds r5, 0x1
- adds r4, 0x64
- cmp r5, 0x5
- ble _080C56AE
- movs r0, 0x1
-_080C56D6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end CheckMonFainted
-
- thumb_func_start MonFaintFromPoisonOnField
-MonFaintFromPoisonOnField: @ 80C56DC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r0, _080C5720 @ =gPlayerParty
- adds r4, r0
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x7
- bl AdjustFriendship
- adds r0, r4, 0
- movs r1, 0x37
- mov r2, sp
- bl SetMonData
- ldr r5, _080C5724 @ =gStringVar1
- adds r0, r4, 0
- movs r1, 0x2
- adds r2, r5, 0
- bl GetMonData
- adds r0, r5, 0
- bl StringGetEnd10
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5720: .4byte gPlayerParty
-_080C5724: .4byte gStringVar1
- thumb_func_end MonFaintFromPoisonOnField
-
- thumb_func_start CheckMonFaintedFromPoison
-CheckMonFaintedFromPoison: @ 80C5728
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r1, r0
- ldr r0, _080C5764 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- bl CheckMonIsValid
- cmp r0, 0
- beq _080C5768
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _080C5768
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C5768
- movs r0, 0x1
- b _080C576A
- .align 2, 0
-_080C5764: .4byte gPlayerParty
-_080C5768:
- movs r0, 0
-_080C576A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end CheckMonFaintedFromPoison
-
- thumb_func_start Task_WhiteOut
-Task_WhiteOut: @ 80C5770
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C5794 @ =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080C57CA
- cmp r0, 0x1
- bgt _080C5798
- cmp r0, 0
- beq _080C579E
- b _080C581A
- .align 2, 0
-_080C5794: .4byte gTasks + 0x8
-_080C5798:
- cmp r0, 0x2
- beq _080C57DC
- b _080C581A
-_080C579E:
- ldrh r1, [r4, 0x2]
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- cmp r0, 0x5
- bgt _080C57C4
-_080C57A8:
- lsls r0, r1, 24
- lsrs r0, 24
- bl CheckMonFaintedFromPoison
- cmp r0, 0
- bne _080C57F4
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- adds r1, r0, 0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080C57A8
-_080C57C4:
- movs r0, 0x2
- strh r0, [r4]
- b _080C581A
-_080C57CA:
- bl IsFieldMessageBoxHidden
- lsls r0, 24
- cmp r0, 0
- beq _080C581A
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- b _080C581A
-_080C57DC:
- bl CheckMonFainted
- adds r1, r0, 0
- cmp r1, 0
- beq _080C580C
- ldr r1, _080C57F0 @ =gScriptResult
- movs r0, 0x1
- strh r0, [r1]
- b _080C5810
- .align 2, 0
-_080C57F0: .4byte gScriptResult
-_080C57F4:
- ldrb r0, [r4, 0x2]
- bl MonFaintFromPoisonOnField
- ldr r0, _080C5808 @ =UnknownString_81A1132
- bl ShowFieldMessage
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080C581A
- .align 2, 0
-_080C5808: .4byte UnknownString_81A1132
-_080C580C:
- ldr r0, _080C5820 @ =gScriptResult
- strh r1, [r0]
-_080C5810:
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
-_080C581A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C5820: .4byte gScriptResult
- thumb_func_end Task_WhiteOut
-
- thumb_func_start DoWhiteOut
-DoWhiteOut: @ 80C5824
- push {lr}
- ldr r0, _080C5838 @ =sub_80C5770
- movs r1, 0x50
- bl CreateTask
- bl ScriptContext1_Stop
- pop {r0}
- bx r0
- .align 2, 0
-_080C5838: .4byte Task_WhiteOut
- thumb_func_end DoWhiteOut
-
- thumb_func_start overworld_poison
-overworld_poison: @ 80C583C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r4, _080C58A8 @ =gPlayerParty
- movs r7, 0
- movs r6, 0
- movs r5, 0x5
-_080C5848:
- adds r0, r4, 0
- movs r1, 0x5
- bl GetMonData
- cmp r0, 0
- beq _080C588C
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- bl pokemon_ailments_get_primary
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C588C
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- str r0, [sp]
- cmp r0, 0
- beq _080C587E
- subs r0, 0x1
- str r0, [sp]
- cmp r0, 0
- bne _080C5880
-_080C587E:
- adds r6, 0x1
-_080C5880:
- adds r0, r4, 0
- movs r1, 0x39
- mov r2, sp
- bl SetMonData
- adds r7, 0x1
-_080C588C:
- adds r4, 0x64
- subs r5, 0x1
- cmp r5, 0
- bge _080C5848
- cmp r6, 0
- bne _080C589C
- cmp r7, 0
- beq _080C58A0
-_080C589C:
- bl DoFieldPoisonEffect
-_080C58A0:
- cmp r6, 0
- beq _080C58AC
- movs r0, 0x2
- b _080C58B6
- .align 2, 0
-_080C58A8: .4byte gPlayerParty
-_080C58AC:
- cmp r7, 0
- bne _080C58B4
- movs r0, 0
- b _080C58B6
-_080C58B4:
- movs r0, 0x1
-_080C58B6:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end overworld_poison
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/fieldmap.s b/asm/fieldmap.s
index d92bc82a2..5d914c422 100644
--- a/asm/fieldmap.s
+++ b/asm/fieldmap.s
@@ -1,5 +1,5 @@
- .include "constants/gba_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/fldeff_80C5CD4.s b/asm/fldeff_80C5CD4.s
index 1e62f5516..cab7524b2 100644
--- a/asm/fldeff_80C5CD4.s
+++ b/asm/fldeff_80C5CD4.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -1962,7 +1962,7 @@ DoDecorationSoundEffect: @ 80C6C30
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
- ldr r0, _080C6C5C @ =sub_80C6AAC
+ ldr r0, _080C6C5C @ =Task_DecorationSoundEffect
movs r1, 0x5
bl CreateTask
lsls r0, 24
@@ -2076,7 +2076,7 @@ DoYellowCave4Sparkle: @ 80C6C90
strb r0, [r4, 0x5]
adds r3, 0x1C
adds r2, r3
- ldr r0, _080C6D38 @ =sub_80C6C64
+ ldr r0, _080C6D38 @ =SpriteCB_YellowCave4Sparkle
str r0, [r2]
movs r0, 0
strh r0, [r4, 0x2E]
@@ -2280,7 +2280,7 @@ _080C6EAA:
bl CurrentMapDrawMetatileAt
movs r0, 0
strh r0, [r5, 0x2E]
- ldr r0, _080C6EE0 @ =sub_80C6EE4
+ ldr r0, _080C6EE0 @ =SpriteCB_SandPillar_1
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
@@ -2314,7 +2314,7 @@ _080C6EF8:
bl CurrentMapDrawMetatileAt
movs r0, 0
strh r0, [r5, 0x2E]
- ldr r0, _080C6F24 @ =sub_80C6F28
+ ldr r0, _080C6F24 @ =SpriteCB_SandPillar_2
str r0, [r5, 0x1C]
_080C6F14:
pop {r4,r5}
@@ -2501,7 +2501,7 @@ DoFieldPoisonEffect: @ 80C7074
push {lr}
movs r0, 0x4F
bl PlaySE
- ldr r0, _080C7088 @ =task50_overworld_posion_effect
+ ldr r0, _080C7088 @ =Task_FieldPoisonEffect
movs r1, 0x50
bl CreateTask
pop {r0}
@@ -2513,7 +2513,7 @@ _080C7088: .4byte Task_FieldPoisonEffect
thumb_func_start FieldPoisonEffectIsRunning
FieldPoisonEffectIsRunning: @ 80C708C
push {lr}
- ldr r0, _080C709C @ =task50_overworld_posion_effect
+ ldr r0, _080C709C @ =Task_FieldPoisonEffect
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
@@ -2532,7 +2532,7 @@ Task_WateringBerryTreeAnim_0: @ 80C70A0
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r0, _080C70B8 @ =sub_80C70BC
+ ldr r0, _080C70B8 @ =Task_WateringBerryTreeAnim_1
str r0, [r1]
bx lr
.align 2, 0
@@ -2581,7 +2581,7 @@ _080C70E8:
adds r0, r5
lsls r0, 3
adds r0, r1
- ldr r1, _080C712C @ =sub_80C7130
+ ldr r1, _080C712C @ =Task_WateringBerryTreeAnim_2
str r1, [r0]
_080C711A:
pop {r4,r5}
@@ -2638,7 +2638,7 @@ _080C7184: .4byte gPlayerAvatar
_080C7188: .4byte gMapObjects
_080C718C: .4byte gTasks
_080C7190:
- ldr r0, _080C719C @ =sub_80C71A0
+ ldr r0, _080C719C @ =Task_WateringBerryTreeAnim_3
str r0, [r2]
_080C7194:
pop {r4,r5}
@@ -2669,7 +2669,7 @@ Task_WateringBerryTreeAnim_3: @ 80C71A0
thumb_func_start DoWateringBerryTreeAnim
DoWateringBerryTreeAnim: @ 80C71C4
push {lr}
- ldr r0, _080C71D4 @ =sub_80C70A0
+ ldr r0, _080C71D4 @ =Task_WateringBerryTreeAnim_0
movs r1, 0x50
bl CreateTask
pop {r0}
diff --git a/asm/fldeff_strength.s b/asm/fldeff_strength.s
index 3e811cd88..e595a5fc9 100644
--- a/asm/fldeff_strength.s
+++ b/asm/fldeff_strength.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/heal_location.s b/asm/heal_location.s
deleted file mode 100644
index 6e8181b45..000000000
--- a/asm/heal_location.s
+++ /dev/null
@@ -1,86 +0,0 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
-
- .syntax unified
-
- .text
-
- thumb_func_start GetHealLocationIndexByMap
-GetHealLocationIndexByMap: @ 80FA86C
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r1, 16
- movs r3, 0
- ldr r2, _080FA890 @ =gHealLocations
-_080FA87A:
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, r4
- bne _080FA894
- movs r0, 0x1
- ldrsb r0, [r2, r0]
- cmp r0, r1
- bne _080FA894
- adds r0, r3, 0x1
- b _080FA89E
- .align 2, 0
-_080FA890: .4byte gHealLocations
-_080FA894:
- adds r2, 0x8
- adds r3, 0x1
- cmp r3, 0x15
- bls _080FA87A
- movs r0, 0
-_080FA89E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetHealLocationIndexByMap
-
- thumb_func_start GetHealLocationByMap
-GetHealLocationByMap: @ 80FA8A4
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- bl GetHealLocationIndexByMap
- cmp r0, 0
- beq _080FA8C4
- lsls r0, 3
- ldr r1, _080FA8C0 @ =gHealLocations - 0x8
- adds r0, r1
- b _080FA8C6
- .align 2, 0
-_080FA8C0: .4byte gHealLocations - 0x8
-_080FA8C4:
- movs r0, 0
-_080FA8C6:
- pop {r1}
- bx r1
- thumb_func_end GetHealLocationByMap
-
- thumb_func_start GetHealLocation
-GetHealLocation: @ 80FA8CC
- push {lr}
- cmp r0, 0
- beq _080FA8E4
- cmp r0, 0x16
- bhi _080FA8E4
- lsls r0, 3
- ldr r1, _080FA8E0 @ =gHealLocations - 0x8
- adds r0, r1
- b _080FA8E6
- .align 2, 0
-_080FA8E0: .4byte gHealLocations - 0x8
-_080FA8E4:
- movs r0, 0
-_080FA8E6:
- pop {r1}
- bx r1
- thumb_func_end GetHealLocation
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/item.s b/asm/item.s
deleted file mode 100644
index 7616abe97..000000000
--- a/asm/item.s
+++ /dev/null
@@ -1,1308 +0,0 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
-
- .syntax unified
-
- .text
-
- thumb_func_start CopyItemName
-CopyItemName: @ 80A9224
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _080A924C
- movs r0, 0x2B
- bl GetBerryInfo
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
- ldr r1, _080A9248 @ =gOtherText_Berry2
- adds r0, r4, 0
- bl StringAppend
- b _080A9258
- .align 2, 0
-_080A9248: .4byte gOtherText_Berry2
-_080A924C:
- bl ItemId_GetItem
- adds r1, r0, 0
- adds r0, r4, 0
- bl StringCopy
-_080A9258:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end CopyItemName
-
- thumb_func_start CountUsedBagPocketSlots
-CountUsedBagPocketSlots: @ 80A9260
- push {lr}
- lsls r0, 24
- movs r2, 0
- ldr r1, _080A9284 @ =gBagPockets
- lsrs r0, 21
- adds r0, r1
- ldrb r1, [r0, 0x4]
- cmp r2, r1
- bcs _080A9292
- ldr r3, [r0]
-_080A9274:
- lsls r0, r2, 2
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, 0
- bne _080A9288
- lsls r0, r2, 24
- asrs r0, 24
- b _080A9296
- .align 2, 0
-_080A9284: .4byte gBagPockets
-_080A9288:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r1
- bcc _080A9274
-_080A9292:
- movs r0, 0x1
- negs r0, r0
-_080A9296:
- pop {r1}
- bx r1
- thumb_func_end CountUsedBagPocketSlots
-
- thumb_func_start IsBagPocketNonEmpty
-IsBagPocketNonEmpty: @ 80A929C
- push {lr}
- lsls r0, 24
- movs r2, 0
- ldr r1, _080A92C0 @ =gBagPockets
- lsrs r0, 21
- subs r0, 0x8
- adds r0, r1
- ldrb r1, [r0, 0x4]
- cmp r2, r1
- bcs _080A92CE
- ldr r3, [r0]
-_080A92B2:
- lsls r0, r2, 2
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, 0
- beq _080A92C4
- movs r0, 0x1
- b _080A92D0
- .align 2, 0
-_080A92C0: .4byte gBagPockets
-_080A92C4:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r1
- bcc _080A92B2
-_080A92CE:
- movs r0, 0
-_080A92D0:
- pop {r1}
- bx r1
- thumb_func_end IsBagPocketNonEmpty
-
- thumb_func_start CheckBagHasItem
-CheckBagHasItem: @ 80A92D4
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- adds r0, r5, 0
- bl ItemId_GetPocket
- lsls r0, 24
- cmp r0, 0
- bne _080A92F0
- b _080A9336
-_080A92EC:
- movs r0, 0x1
- b _080A9338
-_080A92F0:
- adds r0, r5, 0
- bl ItemId_GetPocket
- subs r0, 0x1
- lsls r0, 24
- movs r3, 0
- ldr r6, _080A9340 @ =gBagPockets
- lsrs r2, r0, 21
- adds r0, r2, r6
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcs _080A9336
- adds r7, r6, 0
-_080A930A:
- adds r0, r2, r7
- ldr r1, [r0]
- lsls r0, r3, 2
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, r5
- bne _080A9328
- ldrh r0, [r1, 0x2]
- cmp r0, r4
- bcs _080A92EC
- subs r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _080A92EC
-_080A9328:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r2, r6
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcc _080A930A
-_080A9336:
- movs r0, 0
-_080A9338:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9340: .4byte gBagPockets
- thumb_func_end CheckBagHasItem
-
- thumb_func_start CheckBagHasSpace
-CheckBagHasSpace: @ 80A9344
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- adds r0, r6, 0
- bl ItemId_GetPocket
- lsls r0, 24
- cmp r0, 0
- beq _080A9408
- adds r0, r6, 0
- bl ItemId_GetPocket
- subs r0, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r5, _080A940C @ =0x000003e7
- cmp r1, 0x3
- beq _080A9376
- movs r5, 0x63
-_080A9376:
- movs r3, 0
- ldr r0, _080A9410 @ =gBagPockets
- mov r8, r0
- lsls r2, r1, 3
- adds r0, r2, r0
- mov r12, r8
- mov r9, r2
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcs _080A93CA
- mov r10, r12
- subs r0, r1, 0x2
- lsls r0, 24
- lsrs r7, r0, 24
-_080A9392:
- mov r1, r10
- adds r0, r2, r1
- ldr r1, [r0]
- lsls r0, r3, 2
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, r6
- bne _080A93BA
- ldrh r1, [r1, 0x2]
- adds r0, r1, r4
- cmp r0, r5
- ble _080A9414
- cmp r7, 0x1
- bls _080A9408
- subs r0, r5, r1
- subs r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _080A9414
-_080A93BA:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- mov r1, r8
- adds r0, r2, r1
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcc _080A9392
-_080A93CA:
- cmp r4, 0
- beq _080A9414
- movs r3, 0
- mov r6, r12
- mov r2, r9
- adds r0, r2, r6
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcs _080A9404
- adds r7, r6, 0
-_080A93DE:
- adds r0, r2, r7
- ldr r1, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _080A93F6
- cmp r4, r5
- bls _080A9414
- subs r0, r4, r5
- lsls r0, 16
- lsrs r4, r0, 16
-_080A93F6:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r2, r6
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcc _080A93DE
-_080A9404:
- cmp r4, 0
- beq _080A9414
-_080A9408:
- movs r0, 0
- b _080A9416
- .align 2, 0
-_080A940C: .4byte 0x000003e7
-_080A9410: .4byte gBagPockets
-_080A9414:
- movs r0, 0x1
-_080A9416:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckBagHasSpace
-
- thumb_func_start AddBagItem
-AddBagItem: @ 80A9424
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x100
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r1, 16
- lsrs r4, r1, 16
- bl ItemId_GetPocket
- lsls r0, 24
- cmp r0, 0
- beq _080A9510
- mov r0, r8
- bl ItemId_GetPocket
- subs r0, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080A94F8 @ =gBagPockets
- lsls r0, r6, 3
- adds r5, r0, r1
- ldr r1, [r5]
- ldrb r2, [r5, 0x4]
- lsls r2, 2
- mov r0, sp
- bl memcpy
- ldr r7, _080A94FC @ =0x000003e7
- cmp r6, 0x3
- beq _080A9468
- movs r7, 0x63
-_080A9468:
- movs r1, 0
- ldrb r0, [r5, 0x4]
- cmp r1, r0
- bcs _080A94B2
- subs r0, r6, 0x2
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
-_080A9478:
- lsls r0, r1, 2
- mov r2, sp
- adds r3, r2, r0
- ldrh r0, [r3]
- cmp r0, r8
- bne _080A94A6
- ldrh r2, [r3, 0x2]
- adds r0, r2, r4
- cmp r0, r7
- ble _080A9500
- mov r0, r12
- cmp r0, 0x1
- bls _080A9510
- subs r0, r7, r2
- subs r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- strh r7, [r3, 0x2]
- ldr r2, _080A94F8 @ =gBagPockets
- mov r9, r2
- lsls r3, r6, 3
- cmp r4, 0
- beq _080A9516
-_080A94A6:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- ldrb r0, [r5, 0x4]
- cmp r1, r0
- bcc _080A9478
-_080A94B2:
- ldr r2, _080A94F8 @ =gBagPockets
- mov r9, r2
- lsls r3, r6, 3
- cmp r4, 0
- beq _080A9516
- movs r1, 0
- adds r0, r3, r2
- ldrb r0, [r0, 0x4]
- cmp r1, r0
- bcs _080A94F2
- mov r6, r9
- adds r5, r3, r6
-_080A94CA:
- lsls r0, r1, 2
- mov r6, sp
- adds r2, r6, r0
- ldrh r0, [r2]
- cmp r0, 0
- bne _080A94E6
- mov r0, r8
- strh r0, [r2]
- cmp r4, r7
- bls _080A9514
- subs r0, r4, r7
- lsls r0, 16
- lsrs r4, r0, 16
- strh r7, [r2, 0x2]
-_080A94E6:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- ldrb r2, [r5, 0x4]
- cmp r1, r2
- bcc _080A94CA
-_080A94F2:
- cmp r4, 0
- beq _080A9516
- b _080A9510
- .align 2, 0
-_080A94F8: .4byte gBagPockets
-_080A94FC: .4byte 0x000003e7
-_080A9500:
- strh r0, [r3, 0x2]
- ldr r0, _080A950C @ =gBagPockets
- lsls r1, r6, 3
- adds r1, r0
- b _080A951A
- .align 2, 0
-_080A950C: .4byte gBagPockets
-_080A9510:
- movs r0, 0
- b _080A9528
-_080A9514:
- strh r4, [r2, 0x2]
-_080A9516:
- mov r6, r9
- adds r1, r3, r6
-_080A951A:
- ldr r0, [r1]
- ldrb r2, [r1, 0x4]
- lsls r2, 2
- mov r1, sp
- bl memcpy
- movs r0, 0x1
-_080A9528:
- add sp, 0x100
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end AddBagItem
-
- thumb_func_start RemoveBagItem
-RemoveBagItem: @ 80A9538
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- movs r7, 0
- adds r0, r6, 0
- bl ItemId_GetPocket
- lsls r0, 24
- cmp r0, 0
- beq _080A959E
- cmp r6, 0
- beq _080A959E
- adds r0, r6, 0
- bl ItemId_GetPocket
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- movs r5, 0
- ldr r1, _080A95A4 @ =gBagPockets
- lsls r2, r0, 3
- adds r0, r2, r1
- ldrb r0, [r0, 0x4]
- cmp r5, r0
- bcs _080A959A
- mov r8, r1
-_080A9576:
- mov r0, r8
- adds r3, r2, r0
- ldr r0, [r3]
- lsls r1, r5, 2
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, r6
- bne _080A958E
- ldrh r0, [r1, 0x2]
- adds r0, r7, r0
- lsls r0, 16
- lsrs r7, r0, 16
-_080A958E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldrb r3, [r3, 0x4]
- cmp r5, r3
- bcc _080A9576
-_080A959A:
- cmp r7, r4
- bcs _080A95A8
-_080A959E:
- movs r0, 0
- b _080A9664
- .align 2, 0
-_080A95A4: .4byte gBagPockets
-_080A95A8:
- ldr r0, _080A95DC @ =gBagPockets
- mov r2, r12
- lsls r1, r2, 3
- adds r5, r1, r0
- ldr r2, _080A95E0 @ =gUnknown_02038560
- ldrb r3, [r5, 0x4]
- mov r8, r0
- adds r7, r1, 0
- ldrb r0, [r2]
- cmp r3, r0
- bls _080A9606
- ldrb r0, [r2]
- ldr r1, [r5]
- lsls r0, 2
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, r6
- bne _080A9606
- ldrh r0, [r1, 0x2]
- cmp r0, r4
- bcc _080A95E4
- subs r0, r4
- strh r0, [r1, 0x2]
- movs r4, 0
- b _080A95EE
- .align 2, 0
-_080A95DC: .4byte gBagPockets
-_080A95E0: .4byte gUnknown_02038560
-_080A95E4:
- subs r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0
- strh r0, [r1, 0x2]
-_080A95EE:
- mov r1, r8
- adds r0, r7, r1
- ldrb r1, [r2]
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _080A9602
- strh r0, [r1]
-_080A9602:
- cmp r4, 0
- beq _080A9662
-_080A9606:
- movs r5, 0
- adds r1, r7, 0
- mov r2, r8
- adds r0, r1, r2
- ldrb r2, [r0, 0x4]
- cmp r5, r2
- bcs _080A9662
- mov r12, r8
- adds r3, r0, 0
-_080A9618:
- mov r2, r12
- adds r0, r1, r2
- ldr r0, [r0]
- lsls r1, r5, 2
- adds r2, r1, r0
- ldrh r0, [r2]
- cmp r0, r6
- bne _080A9650
- ldrh r0, [r2, 0x2]
- cmp r0, r4
- bcc _080A9636
- subs r0, r4
- strh r0, [r2, 0x2]
- movs r4, 0
- b _080A9640
-_080A9636:
- subs r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0
- strh r0, [r2, 0x2]
-_080A9640:
- ldr r0, [r3]
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _080A964C
- strh r0, [r1]
-_080A964C:
- cmp r4, 0
- beq _080A9662
-_080A9650:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r1, r7, 0
- mov r2, r8
- adds r0, r1, r2
- ldrb r0, [r0, 0x4]
- cmp r5, r0
- bcc _080A9618
-_080A9662:
- movs r0, 0x1
-_080A9664:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end RemoveBagItem
-
- thumb_func_start GetPocketByItemId
-GetPocketByItemId: @ 80A9670
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl ItemId_GetPocket
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetPocketByItemId
-
- thumb_func_start ClearItemSlots
-ClearItemSlots: @ 80A9684
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- movs r2, 0
- lsrs r1, 24
- cmp r2, r1
- bcs _080A96A6
- movs r3, 0
-_080A9694:
- lsls r0, r2, 2
- adds r0, r4
- strh r3, [r0]
- strh r3, [r0, 0x2]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r1
- bcc _080A9694
-_080A96A6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ClearItemSlots
-
- thumb_func_start FindFreePCItemSlot
-FindFreePCItemSlot: @ 80A96AC
- push {lr}
- movs r1, 0
- ldr r3, _080A96CC @ =gSaveBlock1
- movs r2, 0x93
- lsls r2, 3
-_080A96B6:
- lsls r0, r1, 24
- asrs r1, r0, 24
- lsls r0, r1, 2
- adds r0, r3
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, 0
- bne _080A96D0
- adds r0, r1, 0
- b _080A96E0
- .align 2, 0
-_080A96CC: .4byte gSaveBlock1
-_080A96D0:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- asrs r0, 24
- cmp r0, 0x31
- ble _080A96B6
- movs r0, 0x1
- negs r0, r0
-_080A96E0:
- pop {r1}
- bx r1
- thumb_func_end FindFreePCItemSlot
-
- thumb_func_start CountUsedPCItemSlots
-CountUsedPCItemSlots: @ 80A96E4
- push {r4,lr}
- movs r2, 0
- movs r1, 0
- ldr r4, _080A9714 @ =gSaveBlock1
- movs r3, 0x93
- lsls r3, 3
-_080A96F0:
- lsls r0, r1, 2
- adds r0, r4
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, 0
- beq _080A9702
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_080A9702:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x31
- bls _080A96F0
- adds r0, r2, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9714: .4byte gSaveBlock1
- thumb_func_end CountUsedPCItemSlots
-
- thumb_func_start CheckPCHasItem
-CheckPCHasItem: @ 80A9718
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r1, 16
- movs r3, 0
- ldr r7, _080A9744 @ =gSaveBlock1
- movs r6, 0x93
- lsls r6, 3
- ldr r5, _080A9748 @ =0x0000049a
-_080A972C:
- lsls r0, r3, 2
- adds r2, r0, r7
- adds r0, r2, r6
- ldrh r0, [r0]
- cmp r0, r4
- bne _080A974C
- adds r0, r2, r5
- ldrh r0, [r0]
- cmp r0, r1
- bcc _080A974C
- movs r0, 0x1
- b _080A9758
- .align 2, 0
-_080A9744: .4byte gSaveBlock1
-_080A9748: .4byte 0x0000049a
-_080A974C:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x31
- bls _080A972C
- movs r0, 0
-_080A9758:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckPCHasItem
-
- thumb_func_start AddPCItem
-AddPCItem: @ 80A9760
- push {r4-r7,lr}
- sub sp, 0xC8
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- ldr r1, _080A97C4 @ =gSaveBlock1 + 0x498
- mov r0, sp
- movs r2, 0xC8
- bl memcpy
- movs r5, 0
- ldr r0, _080A97C8 @ =0x0000fc19
- adds r7, r0, 0
-_080A977C:
- lsls r0, r5, 2
- mov r1, sp
- adds r2, r1, r0
- ldrh r0, [r2]
- cmp r0, r6
- bne _080A97A0
- ldrh r1, [r2, 0x2]
- adds r0, r1, r4
- ldr r3, _080A97CC @ =0x000003e7
- cmp r0, r3
- ble _080A97D0
- adds r0, r4, r7
- adds r0, r1, r0
- lsls r0, 16
- lsrs r4, r0, 16
- strh r3, [r2, 0x2]
- cmp r4, 0
- beq _080A97DC
-_080A97A0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x31
- bls _080A977C
- cmp r4, 0
- beq _080A97DC
- bl FindFreePCItemSlot
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _080A97D4
- movs r0, 0
- b _080A97E8
- .align 2, 0
-_080A97C4: .4byte gSaveBlock1 + 0x498
-_080A97C8: .4byte 0x0000fc19
-_080A97CC: .4byte 0x000003e7
-_080A97D0:
- strh r0, [r2, 0x2]
- b _080A97DC
-_080A97D4:
- lsls r0, r1, 2
- add r0, sp
- strh r6, [r0]
- strh r4, [r0, 0x2]
-_080A97DC:
- ldr r0, _080A97F0 @ =gSaveBlock1 + 0x498
- mov r1, sp
- movs r2, 0xC8
- bl memcpy
- movs r0, 0x1
-_080A97E8:
- add sp, 0xC8
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080A97F0: .4byte gSaveBlock1 + 0x498
- thumb_func_end AddPCItem
-
- thumb_func_start RemovePCItem
-RemovePCItem: @ 80A97F4
- push {lr}
- lsls r0, 24
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _080A9824 @ =gSaveBlock1
- lsrs r0, 22
- adds r3, r0, r2
- ldr r0, _080A9828 @ =0x0000049a
- adds r2, r3, r0
- ldrh r0, [r2]
- subs r0, r1
- strh r0, [r2]
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _080A9820
- movs r2, 0x93
- lsls r2, 3
- adds r0, r3, r2
- strh r1, [r0]
- bl CompactPCItems
-_080A9820:
- pop {r0}
- bx r0
- .align 2, 0
-_080A9824: .4byte gSaveBlock1
-_080A9828: .4byte 0x0000049a
- thumb_func_end RemovePCItem
-
- thumb_func_start CompactPCItems
-CompactPCItems: @ 80A982C
- push {r4-r7,lr}
- movs r2, 0
- ldr r0, _080A987C @ =gSaveBlock1
- mov r12, r0
-_080A9834:
- adds r1, r2, 0x1
- lsls r0, r1, 16
- lsrs r3, r0, 16
- adds r7, r1, 0
- cmp r3, 0x31
- bhi _080A986C
- lsls r1, r2, 2
- mov r2, r12
- adds r0, r1, r2
- movs r2, 0x93
- lsls r2, 3
- adds r5, r0, r2
- ldr r6, _080A9880 @ =gSaveBlock1 + 0x498
- adds r4, r1, r6
-_080A9850:
- ldrh r0, [r5]
- cmp r0, 0
- bne _080A9862
- ldr r2, [r4]
- lsls r1, r3, 2
- adds r1, r6
- ldr r0, [r1]
- str r0, [r4]
- str r2, [r1]
-_080A9862:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x31
- bls _080A9850
-_080A986C:
- lsls r0, r7, 16
- lsrs r2, r0, 16
- cmp r2, 0x30
- bls _080A9834
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080A987C: .4byte gSaveBlock1
-_080A9880: .4byte gSaveBlock1 + 0x498
- thumb_func_end CompactPCItems
-
- thumb_func_start SwapRegisteredBike
-SwapRegisteredBike: @ 80A9884
- push {lr}
- ldr r0, _080A98A0 @ =gSaveBlock1
- ldr r1, _080A98A4 @ =0x00000496
- adds r2, r0, r1
- ldrh r1, [r2]
- ldr r3, _080A98A8 @ =0x00000103
- cmp r1, r3
- beq _080A98AC
- movs r0, 0x88
- lsls r0, 1
- cmp r1, r0
- beq _080A98B4
- b _080A98B6
- .align 2, 0
-_080A98A0: .4byte gSaveBlock1
-_080A98A4: .4byte 0x00000496
-_080A98A8: .4byte 0x00000103
-_080A98AC:
- movs r0, 0x88
- lsls r0, 1
- strh r0, [r2]
- b _080A98B6
-_080A98B4:
- strh r3, [r2]
-_080A98B6:
- pop {r0}
- bx r0
- thumb_func_end SwapRegisteredBike
-
- thumb_func_start SanitizeItemId
-SanitizeItemId: @ 80A98BC
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- movs r0, 0xAE
- lsls r0, 1
- cmp r1, r0
- bhi _080A98CE
- adds r0, r1, 0
- b _080A98D0
-_080A98CE:
- movs r0, 0
-_080A98D0:
- pop {r1}
- bx r1
- thumb_func_end SanitizeItemId
-
- thumb_func_start ItemId_GetItem
-ItemId_GetItem: @ 80A98D4
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- ldr r1, _080A98F0 @ =gItems
- adds r0, r1
- pop {r1}
- bx r1
- .align 2, 0
-_080A98F0: .4byte gItems
- thumb_func_end ItemId_GetItem
-
- thumb_func_start ItemId_GetId
-ItemId_GetId: @ 80A98F4
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A9914 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrh r0, [r0, 0xE]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9914: .4byte gItems
- thumb_func_end ItemId_GetId
-
- thumb_func_start ItemId_GetPrice
-ItemId_GetPrice: @ 80A9918
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A9938 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrh r0, [r0, 0x10]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9938: .4byte gItems
- thumb_func_end ItemId_GetPrice
-
- thumb_func_start ItemId_GetHoldEffect
-ItemId_GetHoldEffect: @ 80A993C
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A995C @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrb r0, [r0, 0x12]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A995C: .4byte gItems
- thumb_func_end ItemId_GetHoldEffect
-
- thumb_func_start ItemId_GetHoldEffectParam
-ItemId_GetHoldEffectParam: @ 80A9960
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A9980 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrb r0, [r0, 0x13]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9980: .4byte gItems
- thumb_func_end ItemId_GetHoldEffectParam
-
- thumb_func_start ItemId_GetDescription
-ItemId_GetDescription: @ 80A9984
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A99A4 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r4, 0x14
- adds r0, r4
- ldr r0, [r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A99A4: .4byte gItems
- thumb_func_end ItemId_GetDescription
-
- thumb_func_start ItemId_CopyDescription
-ItemId_CopyDescription: @ 80A99A8
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r0, r1, 0
- adds r5, r2, 0x1
- ldr r4, _080A99E4 @ =gItems
- lsls r0, 16
- lsrs r0, 16
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r4, 0x14
- adds r0, r4
- ldr r3, [r0]
- adds r2, r6, 0
-_080A99CA:
- ldrb r1, [r3]
- adds r0, r1, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _080A99FA
- subs r5, 0x1
- cmp r5, 0
- bne _080A99E8
- movs r0, 0xFF
- strb r0, [r2]
- movs r0, 0x1
- b _080A9A02
- .align 2, 0
-_080A99E4: .4byte gItems
-_080A99E8:
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080A99F4
- movs r0, 0
- b _080A9A02
-_080A99F4:
- adds r2, r6, 0
- adds r3, 0x1
- b _080A99CA
-_080A99FA:
- strb r1, [r2]
- adds r3, 0x1
- adds r2, 0x1
- b _080A99CA
-_080A9A02:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end ItemId_CopyDescription
-
- thumb_func_start ItemId_GetImportance
-ItemId_GetImportance: @ 80A9A08
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A9A28 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrb r0, [r0, 0x18]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9A28: .4byte gItems
- thumb_func_end ItemId_GetImportance
-
- thumb_func_start ItemId_GetUnknownValue
-ItemId_GetUnknownValue: @ 80A9A2C
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A9A4C @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrb r0, [r0, 0x19]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9A4C: .4byte gItems
- thumb_func_end ItemId_GetUnknownValue
-
- thumb_func_start ItemId_GetPocket
-ItemId_GetPocket: @ 80A9A50
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A9A70 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrb r0, [r0, 0x1A]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9A70: .4byte gItems
- thumb_func_end ItemId_GetPocket
-
- thumb_func_start ItemId_GetType
-ItemId_GetType: @ 80A9A74
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A9A94 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- ldrb r0, [r0, 0x1B]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9A94: .4byte gItems
- thumb_func_end ItemId_GetType
-
- thumb_func_start ItemId_GetFieldFunc
-ItemId_GetFieldFunc: @ 80A9A98
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A9AB8 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r4, 0x1C
- adds r0, r4
- ldr r0, [r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9AB8: .4byte gItems
- thumb_func_end ItemId_GetFieldFunc
-
- thumb_func_start ItemId_GetBattleUsage
-ItemId_GetBattleUsage: @ 80A9ABC
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A9ADC @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9ADC: .4byte gItems
- thumb_func_end ItemId_GetBattleUsage
-
- thumb_func_start ItemId_GetBattleFunc
-ItemId_GetBattleFunc: @ 80A9AE0
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A9B00 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r4, 0x24
- adds r0, r4
- ldr r0, [r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9B00: .4byte gItems
- thumb_func_end ItemId_GetBattleFunc
-
- thumb_func_start ItemId_GetSecondaryId
-ItemId_GetSecondaryId: @ 80A9B04
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080A9B24 @ =gItems
- bl SanitizeItemId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2C
- muls r0, r1
- adds r0, r4
- adds r0, 0x28
- ldrb r0, [r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080A9B24: .4byte gItems
- thumb_func_end ItemId_GetSecondaryId
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/item_menu.s b/asm/item_menu.s
index d35feb54f..e2abfe960 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -24,7 +24,7 @@ sub_80A3134: @ 80A3134
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
- ldr r1, _080A3168 @ =gBG1TilemapBuffer
+ ldr r1, _080A3168 @ =gBGTilemapBuffers + 0x800
ldr r2, _080A316C @ =0x06002000
ldr r0, _080A3170 @ =0x040000d4
str r1, [r0]
@@ -43,7 +43,7 @@ sub_80A3134: @ 80A3134
pop {r0}
bx r0
.align 2, 0
-_080A3168: .4byte gBG1TilemapBuffer
+_080A3168: .4byte gBGTilemapBuffers + 0x800
_080A316C: .4byte 0x06002000
_080A3170: .4byte 0x040000d4
_080A3174: .4byte 0x80000400
@@ -230,7 +230,7 @@ _080A3328:
ldr r1, _080A3378 @ =gUnknown_0203855A
movs r0, 0x10
strb r0, [r1]
- ldr r4, _080A337C @ =gBG2TilemapBuffer
+ ldr r4, _080A337C @ =gBGTilemapBuffers + 0x1000
ldr r5, _080A3380 @ =gUnknown_02038559
ldrb r1, [r5]
adds r1, 0x1
@@ -261,7 +261,7 @@ _080A3328:
b _080A3464
.align 2, 0
_080A3378: .4byte gUnknown_0203855A
-_080A337C: .4byte gBG2TilemapBuffer
+_080A337C: .4byte gBGTilemapBuffers + 0x1000
_080A3380: .4byte gUnknown_02038559
_080A3384: .4byte gBagPockets
_080A3388: .4byte gUnknown_03005D24
@@ -486,14 +486,14 @@ _080A3568: .4byte gBagScreen_Gfx
_080A356C: .4byte 0x06004000
_080A3570:
ldr r0, _080A3580 @ =gUnknown_08E77004
- ldr r1, _080A3584 @ =gBG2TilemapBuffer
+ ldr r1, _080A3584 @ =gBGTilemapBuffers + 0x1000
movs r2, 0x80
lsls r2, 3
bl CpuSet
b _080A35EA
.align 2, 0
_080A3580: .4byte gUnknown_08E77004
-_080A3584: .4byte gBG2TilemapBuffer
+_080A3584: .4byte gBGTilemapBuffers + 0x1000
_080A3588:
ldr r0, _080A35A4 @ =gSaveBlock2
ldrb r0, [r0, 0x8]
@@ -837,7 +837,7 @@ sub_80A37F8: @ 80A37F8
bhi _080A3868
adds r0, r5, 0x1
strb r0, [r6]
- ldr r4, _080A3858 @ =gBG2TilemapBuffer
+ ldr r4, _080A3858 @ =gBGTilemapBuffers + 0x1000
ldrb r2, [r6]
adds r0, r4, 0
adds r1, r5, 0
@@ -873,7 +873,7 @@ sub_80A37F8: @ 80A37F8
b _080A3932
.align 2, 0
_080A3854: .4byte gUnknown_0203855A
-_080A3858: .4byte gBG2TilemapBuffer
+_080A3858: .4byte gBGTilemapBuffers + 0x1000
_080A385C: .4byte gUnknown_02038559
_080A3860: .4byte gTasks
_080A3864: .4byte gUnknown_02038558
@@ -1915,7 +1915,7 @@ sub_80A4008: @ 80A4008
thumb_func_start sub_80A4030
sub_80A4030: @ 80A4030
- ldr r1, _080A4058 @ =gBG2TilemapBuffer + 0xB4
+ ldr r1, _080A4058 @ =gBGTilemapBuffers + 0x1000 + 0xB4
lsls r0, 7
adds r1, r0, r1
movs r0, 0x5A
@@ -1936,7 +1936,7 @@ sub_80A4030: @ 80A4030
strh r0, [r1]
bx lr
.align 2, 0
-_080A4058: .4byte gBG2TilemapBuffer + 0xB4
+_080A4058: .4byte gBGTilemapBuffers + 0x1000 + 0xB4
thumb_func_end sub_80A4030
thumb_func_start sub_80A405C
@@ -1944,7 +1944,7 @@ sub_80A405C: @ 80A405C
push {r4,lr}
lsls r0, 24
lsrs r3, r0, 24
- ldr r2, _080A40A8 @ =gBG2TilemapBuffer + 0xB4
+ ldr r2, _080A40A8 @ =gBGTilemapBuffers + 0x1000 + 0xB4
movs r0, 0
adds r4, r2, 0
movs r1, 0x4F
@@ -1980,13 +1980,13 @@ _080A406A:
pop {r0}
bx r0
.align 2, 0
-_080A40A8: .4byte gBG2TilemapBuffer + 0xB4
+_080A40A8: .4byte gBGTilemapBuffers + 0x1000 + 0xB4
thumb_func_end sub_80A405C
thumb_func_start sub_80A40AC
sub_80A40AC: @ 80A40AC
lsls r0, 24
- ldr r1, _080A40CC @ =gBG2TilemapBuffer + 0xB4
+ ldr r1, _080A40CC @ =gBGTilemapBuffers + 0x1000 + 0xB4
lsrs r0, 17
adds r1, r0, r1
movs r2, 0x4F
@@ -2002,7 +2002,7 @@ sub_80A40AC: @ 80A40AC
strh r2, [r1]
bx lr
.align 2, 0
-_080A40CC: .4byte gBG2TilemapBuffer + 0xB4
+_080A40CC: .4byte gBGTilemapBuffers + 0x1000 + 0xB4
thumb_func_end sub_80A40AC
thumb_func_start sub_80A40D0
@@ -2302,7 +2302,7 @@ sub_80A42B0: @ 80A42B0
adds r2, r5, 0
bl MenuPrint
lsls r0, r5, 6
- ldr r1, _080A435C @ =gBG2TilemapBuffer + 0x1C
+ ldr r1, _080A435C @ =gBGTilemapBuffers + 0x1000 + 0x1C
adds r0, r1
movs r2, 0x4F
strh r2, [r0]
@@ -2339,7 +2339,7 @@ _080A434C: .4byte gUnknown_02038559
_080A4350: .4byte gUnknown_03000701
_080A4354: .4byte gStringVar1
_080A4358: .4byte gOtherText_CloseBag
-_080A435C: .4byte gBG2TilemapBuffer + 0x1C
+_080A435C: .4byte gBGTilemapBuffers + 0x1000 + 0x1C
_080A4360:
adds r1, r5, 0x2
lsls r1, 24
@@ -2601,11 +2601,11 @@ sub_80A4548: @ 80A4548
lsls r1, 24
lsrs r1, 24
mov r8, r1
- ldr r0, _080A456C @ =gBG2TilemapBuffer
+ ldr r0, _080A456C @ =gBGTilemapBuffers + 0x1000
mov r9, r0
b _080A46C2
.align 2, 0
-_080A456C: .4byte gBG2TilemapBuffer
+_080A456C: .4byte gBGTilemapBuffers + 0x1000
_080A4570:
ldr r1, _080A461C @ =gUnknown_03005D10
ldr r0, _080A4620 @ =gUnknown_02038559
@@ -2809,7 +2809,7 @@ sub_80A46FC: @ 80A46FC
str r0, [sp, 0x4]
lsls r1, 24
lsrs r6, r1, 24
- ldr r0, _080A4724 @ =gBG2TilemapBuffer
+ ldr r0, _080A4724 @ =gBGTilemapBuffers + 0x1000
mov r10, r0
ldr r1, _080A4728 @ =gStringVar2
mov r9, r1
@@ -2817,7 +2817,7 @@ sub_80A46FC: @ 80A46FC
mov r8, r0
b _080A47B4
.align 2, 0
-_080A4724: .4byte gBG2TilemapBuffer
+_080A4724: .4byte gBGTilemapBuffers + 0x1000
_080A4728: .4byte gStringVar2
_080A472C: .4byte gUnknown_03005D24
_080A4730:
@@ -3487,7 +3487,7 @@ _080A4C40:
_080A4C4C:
cmp r6, 0
bne _080A4C68
- ldr r0, _080A4C64 @ =word_203855E
+ ldr r0, _080A4C64 @ =gScriptItemId
ldrh r0, [r0]
bl sub_80A4B90
adds r3, r0, 0
@@ -3495,7 +3495,7 @@ _080A4C4C:
.align 2, 0
_080A4C5C: .4byte gUnknown_02038564
_080A4C60: .4byte gUnknown_083C1640
-_080A4C64: .4byte word_203855E
+_080A4C64: .4byte gScriptItemId
_080A4C68:
ldr r0, _080A4CC4 @ =gUnknown_03000704
ldr r0, [r0]
@@ -3718,7 +3718,7 @@ sub_80A4DD8: @ 80A4DD8
lsrs r3, 24
adds r0, r4, 0
bl MenuDrawTextWindow
- ldr r0, _080A4E88 @ =gBG1TilemapBuffer
+ ldr r0, _080A4E88 @ =gBGTilemapBuffers + 0x800
adds r4, 0x1
lsls r4, 24
lsrs r4, 24
@@ -3757,7 +3757,7 @@ sub_80A4DD8: @ 80A4DD8
bx r0
.align 2, 0
_080A4E84: .4byte gTasks
-_080A4E88: .4byte gBG1TilemapBuffer
+_080A4E88: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80A4DD8
thumb_func_start sub_80A4E8C
@@ -3791,7 +3791,7 @@ sub_80A4E8C: @ 80A4E8C
bl sub_80F996C
movs r0, 0x3
bl sub_80F996C
- ldr r5, _080A4F04 @ =gBG2TilemapBuffer
+ ldr r5, _080A4F04 @ =gBGTilemapBuffers + 0x1000
lsls r4, 24
asrs r4, 24
adds r0, r5, 0
@@ -3809,7 +3809,7 @@ sub_80A4E8C: @ 80A4E8C
pop {r0}
bx r0
.align 2, 0
-_080A4F04: .4byte gBG2TilemapBuffer
+_080A4F04: .4byte gBGTilemapBuffers + 0x1000
_080A4F08: .4byte gUnknown_02038559
thumb_func_end sub_80A4E8C
@@ -4155,7 +4155,7 @@ _080A5190:
ldrsh r1, [r5, r0]
cmp r1, 0
bne _080A51E8
- ldr r0, _080A51DC @ =word_203855E
+ ldr r0, _080A51DC @ =gScriptItemId
strh r1, [r0]
ldr r1, _080A51E0 @ =gUnknown_083C16BC
ldr r0, _080A51E4 @ =gUnknown_03000701
@@ -4170,7 +4170,7 @@ _080A5190:
.align 2, 0
_080A51D4: .4byte gUnknown_03005D10
_080A51D8: .4byte gUnknown_02038559
-_080A51DC: .4byte word_203855E
+_080A51DC: .4byte gScriptItemId
_080A51E0: .4byte gUnknown_083C16BC
_080A51E4: .4byte gUnknown_03000701
_080A51E8:
@@ -4193,7 +4193,7 @@ _080A51F0:
ldrb r1, [r1, 0x1]
adds r0, r1
strb r0, [r2]
- ldr r3, _080A5254 @ =word_203855E
+ ldr r3, _080A5254 @ =gScriptItemId
ldrb r0, [r2]
ldr r1, _080A5258 @ =gUnknown_03005D24
ldr r1, [r1]
@@ -4221,7 +4221,7 @@ _080A51F0:
b _080A526A
.align 2, 0
_080A5250: .4byte gUnknown_02038560
-_080A5254: .4byte word_203855E
+_080A5254: .4byte gScriptItemId
_080A5258: .4byte gUnknown_03005D24
_080A525C: .4byte gUnknown_083C16BC
_080A5260: .4byte gUnknown_03000701
@@ -4245,7 +4245,7 @@ _080A5272:
ldrb r0, [r2]
cmp r0, 0x5
beq _080A52B6
- ldr r0, _080A52A8 @ =word_203855E
+ ldr r0, _080A52A8 @ =gScriptItemId
strh r1, [r0]
ldr r1, _080A52AC @ =gUnknown_083C16BC
ldrb r0, [r2]
@@ -4258,7 +4258,7 @@ _080A5272:
b _080A52B6
.align 2, 0
_080A52A4: .4byte gUnknown_03000701
-_080A52A8: .4byte word_203855E
+_080A52A8: .4byte gScriptItemId
_080A52AC: .4byte gUnknown_083C16BC
_080A52B0:
adds r0, r4, 0
@@ -4594,7 +4594,7 @@ _080A5500:
adds r0, r4, 0
adds r1, r2, 0
bl sub_80A48E8
- ldr r0, _080A557C @ =gBG1TilemapBuffer
+ ldr r0, _080A557C @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
ldr r1, _080A5580 @ =gUnknown_083C1640
ldr r0, _080A5584 @ =gUnknown_03000704
@@ -4624,7 +4624,7 @@ _080A5552:
_080A5570: .4byte gTasks
_080A5574: .4byte gUnknown_03005D10
_080A5578: .4byte gUnknown_02038559
-_080A557C: .4byte gBG1TilemapBuffer
+_080A557C: .4byte gBGTilemapBuffers + 0x800
_080A5580: .4byte gUnknown_083C1640
_080A5584: .4byte gUnknown_03000704
_080A5588: .4byte gUnknown_03000701
@@ -4636,7 +4636,7 @@ _080A5590:
lsls r0, 3
adds r0, r1
strh r5, [r0, 0x1C]
- ldr r0, _080A55C4 @ =gBG1TilemapBuffer
+ ldr r0, _080A55C4 @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
ldr r1, _080A55C8 @ =gUnknown_083C1640
ldr r0, _080A55CC @ =gUnknown_03000700
@@ -4654,7 +4654,7 @@ _080A5590:
b _080A5552
.align 2, 0
_080A55C0: .4byte gTasks
-_080A55C4: .4byte gBG1TilemapBuffer
+_080A55C4: .4byte gBGTilemapBuffers + 0x800
_080A55C8: .4byte gUnknown_083C1640
_080A55CC: .4byte gUnknown_03000700
_080A55D0: .4byte gUnknown_03000704
@@ -4821,7 +4821,7 @@ _080A56E4:
adds r0, r4, 0
adds r1, r2, 0
bl sub_80A48E8
- ldr r0, _080A5758 @ =gBG1TilemapBuffer
+ ldr r0, _080A5758 @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
ldr r1, _080A575C @ =gUnknown_083C1640
ldr r0, _080A5760 @ =gUnknown_03000704
@@ -4847,7 +4847,7 @@ _080A5736:
_080A574C: .4byte gTasks
_080A5750: .4byte gUnknown_03005D10
_080A5754: .4byte gUnknown_02038559
-_080A5758: .4byte gBG1TilemapBuffer
+_080A5758: .4byte gBGTilemapBuffers + 0x800
_080A575C: .4byte gUnknown_083C1640
_080A5760: .4byte gUnknown_03000704
_080A5764: .4byte gUnknown_03000700
@@ -4858,7 +4858,7 @@ _080A5768:
lsls r0, 3
adds r0, r1
strh r5, [r0, 0x1C]
- ldr r0, _080A579C @ =gBG1TilemapBuffer
+ ldr r0, _080A579C @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
ldr r1, _080A57A0 @ =gUnknown_083C1640
ldr r0, _080A57A4 @ =gUnknown_03000700
@@ -4876,7 +4876,7 @@ _080A5768:
b _080A5736
.align 2, 0
_080A5798: .4byte gTasks
-_080A579C: .4byte gBG1TilemapBuffer
+_080A579C: .4byte gBGTilemapBuffers + 0x800
_080A57A0: .4byte gUnknown_083C1640
_080A57A4: .4byte gUnknown_03000700
_080A57A8: .4byte gUnknown_03000704
@@ -4923,7 +4923,7 @@ _080A57F0: .4byte gUnknown_02038559
_080A57F4: .4byte gUnknown_083C16AE
_080A57F8: .4byte gUnknown_02038564
_080A57FC:
- ldr r0, _080A581C @ =word_203855E
+ ldr r0, _080A581C @ =gScriptItemId
ldrh r0, [r0]
bl sub_80F92F4
lsls r0, 24
@@ -4938,7 +4938,7 @@ _080A57FC:
movs r5, 0x9
b _080A582C
.align 2, 0
-_080A581C: .4byte word_203855E
+_080A581C: .4byte gScriptItemId
_080A5820: .4byte gUnknown_02038564
_080A5824:
ldr r1, _080A5880 @ =gUnknown_02038564
@@ -4947,7 +4947,7 @@ _080A5824:
movs r5, 0x7
_080A582C:
adds r6, r1, 0
- ldr r0, _080A5884 @ =gBG1TilemapBuffer
+ ldr r0, _080A5884 @ =gBGTilemapBuffers + 0x800
adds r4, r5, 0x1
ldrb r1, [r6]
lsls r1, 25
@@ -4985,7 +4985,7 @@ _080A582C:
bx r0
.align 2, 0
_080A5880: .4byte gUnknown_02038564
-_080A5884: .4byte gBG1TilemapBuffer
+_080A5884: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80A57C4
thumb_func_start sub_80A5888
@@ -5062,7 +5062,7 @@ _080A58F4:
adds r0, r4, 0
adds r1, r2, 0
bl sub_80A48E8
- ldr r0, _080A5954 @ =gBG1TilemapBuffer
+ ldr r0, _080A5954 @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
ldr r1, _080A5958 @ =gUnknown_083C1640
ldr r0, _080A595C @ =gUnknown_03000700
@@ -5082,7 +5082,7 @@ _080A58F4:
_080A5948: .4byte gTasks
_080A594C: .4byte gUnknown_03005D10
_080A5950: .4byte gUnknown_02038559
-_080A5954: .4byte gBG1TilemapBuffer
+_080A5954: .4byte gBGTilemapBuffers + 0x800
_080A5958: .4byte gUnknown_083C1640
_080A595C: .4byte gUnknown_03000700
_080A5960: .4byte gUnknown_03000704
@@ -5097,7 +5097,7 @@ _080A5964:
lsls r0, 3
adds r0, r1
strh r2, [r0, 0x1C]
- ldr r0, _080A5994 @ =gBG1TilemapBuffer
+ ldr r0, _080A5994 @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
ldr r0, _080A5998 @ =gUnknown_083C1640
ldr r1, [r0, 0x14]
@@ -5109,7 +5109,7 @@ _080A5988:
bx r0
.align 2, 0
_080A5990: .4byte gTasks
-_080A5994: .4byte gBG1TilemapBuffer
+_080A5994: .4byte gBGTilemapBuffers + 0x800
_080A5998: .4byte gUnknown_083C1640
thumb_func_end sub_80A5888
@@ -5200,7 +5200,7 @@ _080A5A48: .4byte gUnknown_03005D10
_080A5A4C: .4byte gUnknown_02038559
_080A5A50: .4byte sub_80A5888
_080A5A54:
- ldr r0, _080A5A7C @ =gBG1TilemapBuffer
+ ldr r0, _080A5A7C @ =gBGTilemapBuffers + 0x800
bl sub_80A4BF0
ldr r0, _080A5A80 @ =gUnknown_02038559
ldrb r0, [r0]
@@ -5220,7 +5220,7 @@ _080A5A6E:
ldr r0, _080A5A8C @ =sub_80A5414
b _080A5A9A
.align 2, 0
-_080A5A7C: .4byte gBG1TilemapBuffer
+_080A5A7C: .4byte gBGTilemapBuffers + 0x800
_080A5A80: .4byte gUnknown_02038559
_080A5A84: .4byte gUnknown_03000701
_080A5A88: .4byte gTasks
@@ -5355,7 +5355,7 @@ sub_80A5B78: @ 80A5B78
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r5, _080A5BB0 @ =word_203855E
+ ldr r5, _080A5BB0 @ =gScriptItemId
ldrh r0, [r5]
bl ItemId_GetFieldFunc
cmp r0, 0
@@ -5376,7 +5376,7 @@ sub_80A5B78: @ 80A5B78
bl sub_80A5BF8
b _080A5BF2
.align 2, 0
-_080A5BB0: .4byte word_203855E
+_080A5BB0: .4byte gScriptItemId
_080A5BB4:
ldr r1, _080A5BE0 @ =gTasks
lsls r0, r4, 2
@@ -5391,7 +5391,7 @@ _080A5BB4:
asrs r0, 24
cmp r0, 0x3
beq _080A5BEC
- ldr r0, _080A5BE8 @ =word_203855E
+ ldr r0, _080A5BE8 @ =gScriptItemId
ldrh r0, [r0]
bl ItemId_GetFieldFunc
adds r1, r0, 0
@@ -5401,7 +5401,7 @@ _080A5BB4:
.align 2, 0
_080A5BE0: .4byte gTasks
_080A5BE4: .4byte gUnknown_02038559
-_080A5BE8: .4byte word_203855E
+_080A5BE8: .4byte gScriptItemId
_080A5BEC:
adds r0, r4, 0
bl sub_80C9C7C
@@ -5457,7 +5457,7 @@ sub_80A5C48: @ 80A5C48
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080A5C90 @ =gBG1TilemapBuffer
+ ldr r0, _080A5C90 @ =gBGTilemapBuffers + 0x800
movs r1, 0x1F
str r1, [sp]
movs r1, 0
@@ -5486,7 +5486,7 @@ sub_80A5C48: @ 80A5C48
pop {r0}
bx r0
.align 2, 0
-_080A5C90: .4byte gBG1TilemapBuffer
+_080A5C90: .4byte gBGTilemapBuffers + 0x800
_080A5C94: .4byte gTasks
_080A5C98: .4byte sub_80A5C24
thumb_func_end sub_80A5C48
@@ -5588,7 +5588,7 @@ sub_80A5D38: @ 80A5D38
adds r0, r1
movs r1, 0
strh r1, [r0, 0xA]
- ldr r0, _080A5D74 @ =gBG1TilemapBuffer
+ ldr r0, _080A5D74 @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
movs r0, 0
bl sub_80A7528
@@ -5602,14 +5602,14 @@ sub_80A5D38: @ 80A5D38
bx r0
.align 2, 0
_080A5D70: .4byte gTasks
-_080A5D74: .4byte gBG1TilemapBuffer
+_080A5D74: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80A5D38
thumb_func_start sub_80A5D78
sub_80A5D78: @ 80A5D78
push {lr}
sub sp, 0x4
- ldr r0, _080A5D9C @ =gBG1TilemapBuffer
+ ldr r0, _080A5D9C @ =gBGTilemapBuffers + 0x800
movs r1, 0x4
str r1, [sp]
movs r1, 0x8
@@ -5624,7 +5624,7 @@ sub_80A5D78: @ 80A5D78
pop {r0}
bx r0
.align 2, 0
-_080A5D9C: .4byte gBG1TilemapBuffer
+_080A5D9C: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80A5D78
thumb_func_start sub_80A5DA0
@@ -5654,7 +5654,7 @@ _080A5DCC:
movs r3, 0x2
bl ConvertIntToDecimalStringN
_080A5DD8:
- ldr r0, _080A5DF4 @ =gBG1TilemapBuffer
+ ldr r0, _080A5DF4 @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
movs r0, 0x5
bl sub_80A7528
@@ -5664,13 +5664,13 @@ _080A5DD8:
bx r0
.align 2, 0
_080A5DF0: .4byte gStringVar2
-_080A5DF4: .4byte gBG1TilemapBuffer
+_080A5DF4: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80A5DA0
thumb_func_start sub_80A5DF8
sub_80A5DF8: @ 80A5DF8
push {lr}
- ldr r0, _080A5E18 @ =gBG1TilemapBuffer
+ ldr r0, _080A5E18 @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
movs r0, 0x7
movs r1, 0x6
@@ -5682,7 +5682,7 @@ sub_80A5DF8: @ 80A5DF8
pop {r0}
bx r0
.align 2, 0
-_080A5E18: .4byte gBG1TilemapBuffer
+_080A5E18: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80A5DF8
thumb_func_start sub_80A5E1C
@@ -5775,7 +5775,7 @@ sub_80A5EA0: @ 80A5EA0
beq _080A5EF8
movs r0, 0x5
bl PlaySE
- ldr r0, _080A5EEC @ =word_203855E
+ ldr r0, _080A5EEC @ =gScriptItemId
ldrh r0, [r0]
ldr r2, _080A5EF0 @ =gTasks
lsls r1, r4, 2
@@ -5790,7 +5790,7 @@ sub_80A5EA0: @ 80A5EA0
b _080A5F0C
.align 2, 0
_080A5EE8: .4byte gMain
-_080A5EEC: .4byte word_203855E
+_080A5EEC: .4byte gScriptItemId
_080A5EF0: .4byte gTasks
_080A5EF4: .4byte gUnknown_083C16F4
_080A5EF8:
@@ -5891,7 +5891,7 @@ sub_80A5FAC: @ 80A5FAC
ldr r0, _080A5FD0 @ =gSaveBlock1
ldr r1, _080A5FD4 @ =0x00000496
adds r4, r0, r1
- ldr r5, _080A5FD8 @ =word_203855E
+ ldr r5, _080A5FD8 @ =gScriptItemId
ldrh r0, [r4]
ldrh r1, [r5]
cmp r0, r1
@@ -5902,7 +5902,7 @@ sub_80A5FAC: @ 80A5FAC
.align 2, 0
_080A5FD0: .4byte gSaveBlock1
_080A5FD4: .4byte 0x00000496
-_080A5FD8: .4byte word_203855E
+_080A5FD8: .4byte gScriptItemId
_080A5FDC:
bl sub_80A413C
ldrh r0, [r5]
@@ -5950,7 +5950,7 @@ sub_80A6024: @ 80A6024
ands r0, r1
cmp r0, 0
beq _080A6062
- ldr r0, _080A6070 @ =gBG1TilemapBuffer
+ ldr r0, _080A6070 @ =gBGTilemapBuffers + 0x800
movs r1, 0x1F
str r1, [sp]
movs r1, 0
@@ -5976,7 +5976,7 @@ _080A6062:
bx r0
.align 2, 0
_080A606C: .4byte gMain
-_080A6070: .4byte gBG1TilemapBuffer
+_080A6070: .4byte gBGTilemapBuffers + 0x800
_080A6074: .4byte gTasks
_080A6078: .4byte sub_80A6000
thumb_func_end sub_80A6024
@@ -5988,7 +5988,7 @@ DisplayCannotBeHeldMessage: @ 80A607C
lsls r4, 24
lsrs r4, 24
bl sub_80A73FC
- ldr r0, _080A60B4 @ =word_203855E
+ ldr r0, _080A60B4 @ =gScriptItemId
ldrh r0, [r0]
ldr r1, _080A60B8 @ =gStringVar1
bl CopyItemName
@@ -6006,7 +6006,7 @@ DisplayCannotBeHeldMessage: @ 80A607C
pop {r0}
bx r0
.align 2, 0
-_080A60B4: .4byte word_203855E
+_080A60B4: .4byte gScriptItemId
_080A60B8: .4byte gStringVar1
_080A60BC: .4byte gStringVar4
_080A60C0: .4byte gOtherText_CantBeHeld
@@ -6022,7 +6022,7 @@ ItemMenu_Give: @ 80A60C8
adds r6, r4, 0
movs r0, 0x5
bl PlaySE
- ldr r5, _080A60FC @ =word_203855E
+ ldr r5, _080A60FC @ =gScriptItemId
ldrh r0, [r5]
bl sub_80F931C
lsls r0, 24
@@ -6037,7 +6037,7 @@ ItemMenu_Give: @ 80A60C8
bl DisplayCannotUseItemMessage
b _080A616E
.align 2, 0
-_080A60FC: .4byte word_203855E
+_080A60FC: .4byte gScriptItemId
_080A6100: .4byte gOtherText_CantWriteMail
_080A6104: .4byte sub_80A6024
_080A6108:
@@ -6185,7 +6185,7 @@ sub_80A6214: @ 80A6214
adds r0, 0x1
lsls r0, 24
lsrs r6, r0, 24
- ldr r4, _080A6248 @ =word_203855E
+ ldr r4, _080A6248 @ =gScriptItemId
ldrh r0, [r4]
bl sub_80F931C
lsls r0, 24
@@ -6199,7 +6199,7 @@ sub_80A6214: @ 80A6214
b _080A6280
.align 2, 0
_080A6244: .4byte gUnknown_02038559
-_080A6248: .4byte word_203855E
+_080A6248: .4byte gScriptItemId
_080A624C: .4byte gOtherText_CantWriteMail
_080A6250: .4byte sub_80A6024
_080A6254:
@@ -6355,7 +6355,7 @@ sub_80A6354: @ 80A6354
adds r1, r2, 0
bl sub_80A48E8
bl sub_80A73FC
- ldr r4, _080A63D0 @ =word_203855E
+ ldr r4, _080A63D0 @ =gScriptItemId
ldrh r0, [r4]
ldr r1, _080A63D4 @ =gStringVar2
bl CopyItemName
@@ -6378,7 +6378,7 @@ sub_80A6354: @ 80A6354
_080A63C4: .4byte gTasks
_080A63C8: .4byte gUnknown_03005D10
_080A63CC: .4byte gUnknown_02038559
-_080A63D0: .4byte word_203855E
+_080A63D0: .4byte gScriptItemId
_080A63D4: .4byte gStringVar2
_080A63D8: .4byte gStringVar4
_080A63DC: .4byte gOtherText_CantBuyThat
@@ -6437,7 +6437,7 @@ sub_80A6444: @ 80A6444
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080A6480 @ =gBG1TilemapBuffer
+ ldr r0, _080A6480 @ =gBGTilemapBuffers + 0x800
movs r1, 0x1F
str r1, [sp]
movs r1, 0
@@ -6461,7 +6461,7 @@ sub_80A6444: @ 80A6444
pop {r0}
bx r0
.align 2, 0
-_080A6480: .4byte gBG1TilemapBuffer
+_080A6480: .4byte gBGTilemapBuffers + 0x800
_080A6484: .4byte gTasks
_080A6488: .4byte sub_80A640C
thumb_func_end sub_80A6444
@@ -6479,7 +6479,7 @@ sub_80A648C: @ 80A648C
adds r4, r1
ldr r0, _080A64EC @ =Task_BuyHowManyDialogueHandleInput
str r0, [r4]
- ldr r0, _080A64F0 @ =gBG1TilemapBuffer
+ ldr r0, _080A64F0 @ =gBGTilemapBuffers + 0x800
movs r5, 0x2
str r5, [sp]
movs r1, 0x1
@@ -6513,7 +6513,7 @@ sub_80A648C: @ 80A648C
.align 2, 0
_080A64E8: .4byte gTasks
_080A64EC: .4byte Task_BuyHowManyDialogueHandleInput
-_080A64F0: .4byte gBG1TilemapBuffer
+_080A64F0: .4byte gBGTilemapBuffers + 0x800
_080A64F4: .4byte gUnknown_02038559
_080A64F8:
str r5, [sp]
@@ -6523,7 +6523,7 @@ _080A64F8:
movs r3, 0xB
bl sub_80A418C
_080A6506:
- ldr r0, _080A651C @ =word_203855E
+ ldr r0, _080A651C @ =gScriptItemId
ldrh r0, [r0]
movs r1, 0x1
bl BuyMenuDisplayMessage
@@ -6533,7 +6533,7 @@ _080A6506:
pop {r0}
bx r0
.align 2, 0
-_080A651C: .4byte word_203855E
+_080A651C: .4byte gScriptItemId
thumb_func_end sub_80A648C
thumb_func_start sub_80A6520
@@ -6590,7 +6590,7 @@ sub_80A6574: @ 80A6574
lsrs r5, 24
movs r0, 0x5F
bl PlaySE
- ldr r0, _080A65A0 @ =word_203855E
+ ldr r0, _080A65A0 @ =gScriptItemId
ldrh r0, [r0]
ldr r1, _080A65A4 @ =gTasks
lsls r4, r5, 2
@@ -6605,7 +6605,7 @@ sub_80A6574: @ 80A6574
pop {r0}
bx r0
.align 2, 0
-_080A65A0: .4byte word_203855E
+_080A65A0: .4byte gScriptItemId
_080A65A4: .4byte gTasks
_080A65A8: .4byte sub_80A6548
thumb_func_end sub_80A6574
@@ -6622,14 +6622,14 @@ sub_80A65AC: @ 80A65AC
movs r2, 0xD
movs r3, 0xC
bl MenuZeroFillWindowRect
- ldr r0, _080A6600 @ =gBG1TilemapBuffer
+ ldr r0, _080A6600 @ =gBGTilemapBuffers + 0x800
movs r1, 0x6
str r1, [sp]
movs r1, 0x7
movs r2, 0x6
movs r3, 0x6
bl sub_80A36B8
- ldr r0, _080A6604 @ =word_203855E
+ ldr r0, _080A6604 @ =gScriptItemId
ldrh r0, [r0]
ldr r1, _080A6608 @ =gStringVar2
bl CopyItemName
@@ -6649,8 +6649,8 @@ sub_80A65AC: @ 80A65AC
pop {r0}
bx r0
.align 2, 0
-_080A6600: .4byte gBG1TilemapBuffer
-_080A6604: .4byte word_203855E
+_080A6600: .4byte gBGTilemapBuffers + 0x800
+_080A6604: .4byte gScriptItemId
_080A6608: .4byte gStringVar2
_080A660C: .4byte gStringVar4
_080A6610: .4byte gOtherText_SoldItem
@@ -6669,7 +6669,7 @@ sub_80A6618: @ 80A6618
movs r2, 0xD
movs r3, 0xC
bl MenuZeroFillWindowRect
- ldr r0, _080A664C @ =gBG1TilemapBuffer
+ ldr r0, _080A664C @ =gBGTilemapBuffers + 0x800
movs r1, 0x6
str r1, [sp]
movs r1, 0x7
@@ -6683,7 +6683,7 @@ sub_80A6618: @ 80A6618
pop {r0}
bx r0
.align 2, 0
-_080A664C: .4byte gBG1TilemapBuffer
+_080A664C: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80A6618
thumb_func_start sub_80A6650
@@ -6721,7 +6721,7 @@ Task_BuyHowManyDialogueHandleInput: @ 80A6670
movs r2, 0xC
movs r3, 0xB
bl MenuZeroFillWindowRect
- ldr r0, _080A66AC @ =word_203855E
+ ldr r0, _080A66AC @ =gScriptItemId
ldrh r0, [r0]
ldr r2, _080A66B0 @ =gTasks
lsls r1, r5, 2
@@ -6732,7 +6732,7 @@ Task_BuyHowManyDialogueHandleInput: @ 80A6670
bl BuyMenuDisplayMessage
b _080A6758
.align 2, 0
-_080A66AC: .4byte word_203855E
+_080A66AC: .4byte gScriptItemId
_080A66B0: .4byte gTasks
_080A66B4:
ldr r0, _080A6724 @ =gMain
@@ -6748,7 +6748,7 @@ _080A66B4:
movs r2, 0xD
movs r3, 0xD
bl MenuZeroFillWindowRect
- ldr r0, _080A6728 @ =gBG1TilemapBuffer
+ ldr r0, _080A6728 @ =gBGTilemapBuffers + 0x800
movs r1, 0x3
str r1, [sp]
movs r1, 0
@@ -6756,7 +6756,7 @@ _080A66B4:
movs r3, 0xD
bl sub_80A36B8
ldr r4, _080A672C @ =gStringVar1
- ldr r0, _080A6730 @ =word_203855E
+ ldr r0, _080A6730 @ =gScriptItemId
ldrh r0, [r0]
bl ItemId_GetPrice
lsls r0, 16
@@ -6785,9 +6785,9 @@ _080A66B4:
b _080A6758
.align 2, 0
_080A6724: .4byte gMain
-_080A6728: .4byte gBG1TilemapBuffer
+_080A6728: .4byte gBGTilemapBuffers + 0x800
_080A672C: .4byte gStringVar1
-_080A6730: .4byte word_203855E
+_080A6730: .4byte gScriptItemId
_080A6734: .4byte gTasks
_080A6738: .4byte gStringVar4
_080A673C: .4byte gOtherText_CanPay
@@ -6842,7 +6842,7 @@ BuyMenuPrintItemQuantityAndPrice: @ 80A6798
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080A67E8 @ =gBG1TilemapBuffer
+ ldr r0, _080A67E8 @ =gBGTilemapBuffers + 0x800
movs r1, 0x1F
str r1, [sp]
movs r1, 0
@@ -6874,7 +6874,7 @@ BuyMenuPrintItemQuantityAndPrice: @ 80A6798
pop {r0}
bx r0
.align 2, 0
-_080A67E8: .4byte gBG1TilemapBuffer
+_080A67E8: .4byte gBGTilemapBuffers + 0x800
_080A67EC: .4byte gTasks
_080A67F0: .4byte sub_80A6760
thumb_func_end BuyMenuPrintItemQuantityAndPrice
@@ -6927,7 +6927,7 @@ sub_80A683C: @ 80A683C
movs r1, 0
movs r2, 0
bl sub_80B7C14
- ldr r0, _080A686C @ =gBG1TilemapBuffer
+ ldr r0, _080A686C @ =gBGTilemapBuffers + 0x800
movs r1, 0x2
str r1, [sp]
movs r1, 0x1
@@ -6939,7 +6939,7 @@ sub_80A683C: @ 80A683C
bx r0
.align 2, 0
_080A6868: .4byte gSaveBlock1
-_080A686C: .4byte gBG1TilemapBuffer
+_080A686C: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80A683C
thumb_func_start sub_80A6870
@@ -7238,9 +7238,9 @@ sub_80A6A84: @ 80A6A84
ldr r6, _080A6AE8 @ =gTasks + 0x8
adds r0, r4, r6
mov r8, r0
- ldr r0, _080A6AEC @ =gBG1TilemapBuffer
+ ldr r0, _080A6AEC @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
- ldr r0, _080A6AF0 @ =word_203855E
+ ldr r0, _080A6AF0 @ =gScriptItemId
ldrh r0, [r0]
ldr r1, _080A6AF4 @ =gStringVar1
bl CopyItemName
@@ -7271,8 +7271,8 @@ sub_80A6A84: @ 80A6A84
bx r0
.align 2, 0
_080A6AE8: .4byte gTasks + 0x8
-_080A6AEC: .4byte gBG1TilemapBuffer
-_080A6AF0: .4byte word_203855E
+_080A6AEC: .4byte gBGTilemapBuffers + 0x800
+_080A6AF0: .4byte gScriptItemId
_080A6AF4: .4byte gStringVar1
_080A6AF8: .4byte gStringVar2
_080A6AFC: .4byte sub_80A5E1C
@@ -7339,7 +7339,7 @@ sub_80A6B64: @ 80A6B64
lsls r5, r0, 3
ldr r6, _080A6B9C @ =gTasks + 0x8
adds r7, r5, r6
- ldr r0, _080A6BA0 @ =word_203855E
+ ldr r0, _080A6BA0 @ =gScriptItemId
mov r8, r0
ldrh r0, [r0]
bl ItemId_GetImportance
@@ -7357,7 +7357,7 @@ sub_80A6B64: @ 80A6B64
b _080A6BD2
.align 2, 0
_080A6B9C: .4byte gTasks + 0x8
-_080A6BA0: .4byte word_203855E
+_080A6BA0: .4byte gScriptItemId
_080A6BA4: .4byte sub_80A6B00
_080A6BA8:
mov r1, r8
@@ -7409,14 +7409,14 @@ sub_80A6BE0: @ 80A6BE0
beq _080A6C20
movs r0, 0x5
bl PlaySE
- ldr r0, _080A6C1C @ =gBG1TilemapBuffer
+ ldr r0, _080A6C1C @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
adds r0, r4, 0
bl sub_80A6B64
b _080A6C58
.align 2, 0
_080A6C18: .4byte gMain
-_080A6C1C: .4byte gBG1TilemapBuffer
+_080A6C1C: .4byte gBGTilemapBuffers + 0x800
_080A6C20:
movs r0, 0x2
ands r0, r1
@@ -7556,7 +7556,7 @@ sub_80A6D1C: @ 80A6D1C
bl player_bitmagic
bl sub_80594C0
bl sub_80597F4
- ldr r1, _080A6D78 @ =word_203855E
+ ldr r1, _080A6D78 @ =gScriptItemId
ldrh r0, [r4]
strh r0, [r1]
ldrh r0, [r4]
@@ -7575,7 +7575,7 @@ sub_80A6D1C: @ 80A6D1C
.align 2, 0
_080A6D70: .4byte gSaveBlock1
_080A6D74: .4byte 0x00000496
-_080A6D78: .4byte word_203855E
+_080A6D78: .4byte gScriptItemId
_080A6D7C: .4byte gTasks
_080A6D80:
movs r0, 0
@@ -7801,7 +7801,7 @@ _080A6F14:
adds r0, r4, 0
adds r1, r2, 0
bl sub_80A48E8
- ldr r0, _080A6F74 @ =gBG1TilemapBuffer
+ ldr r0, _080A6F74 @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
ldr r1, _080A6F78 @ =gUnknown_083C1640
ldr r0, _080A6F7C @ =gUnknown_03000700
@@ -7821,7 +7821,7 @@ _080A6F14:
_080A6F68: .4byte gTasks
_080A6F6C: .4byte gUnknown_03005D10
_080A6F70: .4byte gUnknown_02038559
-_080A6F74: .4byte gBG1TilemapBuffer
+_080A6F74: .4byte gBGTilemapBuffers + 0x800
_080A6F78: .4byte gUnknown_083C1640
_080A6F7C: .4byte gUnknown_03000700
_080A6F80: .4byte gUnknown_03000704
@@ -7847,7 +7847,7 @@ _080A6F84:
adds r0, r5, 0
adds r1, r2, 0
bl sub_80A48E8
- ldr r0, _080A6FD4 @ =gBG1TilemapBuffer
+ ldr r0, _080A6FD4 @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
ldr r0, _080A6FD8 @ =gUnknown_083C1640
ldr r1, [r0, 0x2C]
@@ -7861,14 +7861,14 @@ _080A6FC0:
_080A6FC8: .4byte gTasks
_080A6FCC: .4byte gUnknown_03005D10
_080A6FD0: .4byte gUnknown_02038559
-_080A6FD4: .4byte gBG1TilemapBuffer
+_080A6FD4: .4byte gBGTilemapBuffers + 0x800
_080A6FD8: .4byte gUnknown_083C1640
thumb_func_end sub_80A6EB8
thumb_func_start sub_80A6FDC
sub_80A6FDC: @ 80A6FDC
push {lr}
- ldr r0, _080A6FF8 @ =word_203855E
+ ldr r0, _080A6FF8 @ =gScriptItemId
ldrh r0, [r0]
bl ItemId_GetBattleUsage
lsls r0, 24
@@ -7881,7 +7881,7 @@ sub_80A6FDC: @ 80A6FDC
movs r0, 0x2
b _080A7012
.align 2, 0
-_080A6FF8: .4byte word_203855E
+_080A6FF8: .4byte gScriptItemId
_080A6FFC: .4byte gUnknown_03000704
_080A7000: .4byte gUnknown_083C1708
_080A7004: .4byte gUnknown_02038564
@@ -7936,7 +7936,7 @@ sub_80A7024: @ 80A7024
adds r1, r2, 0
bl sub_80A48E8
bl sub_80A73FC
- ldr r0, _080A708C @ =gBG1TilemapBuffer
+ ldr r0, _080A708C @ =gBGTilemapBuffers + 0x800
bl sub_80A6DF0
ldr r0, _080A7090 @ =sub_80A6EB8
str r0, [r4]
@@ -7948,7 +7948,7 @@ _080A707C: .4byte gUnknown_03000700
_080A7080: .4byte gTasks
_080A7084: .4byte gUnknown_03005D10
_080A7088: .4byte gUnknown_02038559
-_080A708C: .4byte gBG1TilemapBuffer
+_080A708C: .4byte gBGTilemapBuffers + 0x800
_080A7090: .4byte sub_80A6EB8
thumb_func_end sub_80A7024
@@ -8006,7 +8006,7 @@ ItemMenu_UseInBattle: @ 80A70F4
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r4, _080A7120 @ =word_203855E
+ ldr r4, _080A7120 @ =gScriptItemId
ldrh r0, [r4]
bl ItemId_GetBattleFunc
cmp r0, 0
@@ -8023,7 +8023,7 @@ _080A711A:
pop {r0}
bx r0
.align 2, 0
-_080A7120: .4byte word_203855E
+_080A7120: .4byte gScriptItemId
thumb_func_end ItemMenu_UseInBattle
thumb_func_start sub_80A7124
@@ -8196,7 +8196,7 @@ _080A727A:
bl sub_80F98A4
movs r0, 0x3
bl sub_80F98A4
- ldr r1, _080A72D8 @ =word_203855E
+ ldr r1, _080A72D8 @ =gScriptItemId
movs r0, 0x4
strh r0, [r1]
ldr r1, _080A72DC @ =gUnknown_03000704
@@ -8227,21 +8227,21 @@ _080A727A:
adds r1, r2, 0
bl sub_80A48E8
bl sub_80A73FC
- ldr r0, _080A72F0 @ =gBG1TilemapBuffer
+ ldr r0, _080A72F0 @ =gBGTilemapBuffers + 0x800
bl sub_80A6DF0
b _080A7358
.align 2, 0
-_080A72D8: .4byte word_203855E
+_080A72D8: .4byte gScriptItemId
_080A72DC: .4byte gUnknown_03000704
_080A72E0: .4byte gUnknown_083C1708
_080A72E4: .4byte gUnknown_02038564
_080A72E8: .4byte gUnknown_03005D10
_080A72EC: .4byte gUnknown_02038559
-_080A72F0: .4byte gBG1TilemapBuffer
+_080A72F0: .4byte gBGTilemapBuffers + 0x800
_080A72F4:
movs r0, 0x5
bl PlaySE
- ldr r0, _080A7344 @ =gBG1TilemapBuffer
+ ldr r0, _080A7344 @ =gBGTilemapBuffers + 0x800
bl sub_80A4DA4
ldr r4, _080A7348 @ =gSaveBlock1 + 0x560
ldr r5, _080A734C @ =0x0201e000
@@ -8275,7 +8275,7 @@ _080A72F4:
bl BeginNormalPaletteFade
b _080A735E
.align 2, 0
-_080A7344: .4byte gBG1TilemapBuffer
+_080A7344: .4byte gBGTilemapBuffers + 0x800
_080A7348: .4byte gSaveBlock1 + 0x560
_080A734C: .4byte 0x0201e000
_080A7350: .4byte sub_802E424
@@ -8913,13 +8913,13 @@ _080A77B0: .4byte gUnknown_03000704
_080A77B4:
cmp r1, 0x1
bne _080A77C8
- ldr r0, _080A77C4 @ =word_203855E
+ ldr r0, _080A77C4 @ =gScriptItemId
ldrh r0, [r0]
bl sub_80A4B90
adds r3, r0, 0
b _080A77DC
.align 2, 0
-_080A77C4: .4byte word_203855E
+_080A77C4: .4byte gScriptItemId
_080A77C8:
ldr r2, _080A781C @ =gUnknown_083C1640
ldrb r0, [r4, 0x1]
diff --git a/asm/item_use.s b/asm/item_use.s
index 3b2e27b46..65953583e 100644
--- a/asm/item_use.s
+++ b/asm/item_use.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -11,7 +11,7 @@ sub_80C8FAC: @ 80C8FAC
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r1, _080C8FD0 @ =word_203855E
+ ldr r1, _080C8FD0 @ =gScriptItemId
ldrh r0, [r1]
cmp r0, 0xAF
bne _080C8FD8
@@ -26,7 +26,7 @@ sub_80C8FAC: @ 80C8FAC
lsrs r3, r0, 24
b _080C8FE6
.align 2, 0
-_080C8FD0: .4byte word_203855E
+_080C8FD0: .4byte gScriptItemId
_080C8FD4: .4byte gTasks
_080C8FD8:
ldrh r0, [r1]
@@ -243,7 +243,7 @@ sub_80C9154: @ 80C9154
cmp r0, 0
bne _080C9180
mov r1, sp
- ldr r0, _080C918C @ =word_203855E
+ ldr r0, _080C918C @ =gScriptItemId
ldrh r0, [r0]
strh r0, [r1, 0x20]
ldr r1, _080C9190 @ =sub_80A5D04
@@ -259,7 +259,7 @@ _080C9180:
bx r0
.align 2, 0
_080C9188: .4byte gPaletteFade
-_080C918C: .4byte word_203855E
+_080C918C: .4byte gScriptItemId
_080C9190: .4byte sub_80A5D04
thumb_func_end sub_80C9154
@@ -395,7 +395,7 @@ ItemUseOnFieldCB_Bike: @ 80C929C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
- ldr r4, _080C92E0 @ =word_203855E
+ ldr r4, _080C92E0 @ =gScriptItemId
ldrh r0, [r4]
bl ItemId_GetSecondaryId
lsls r0, 24
@@ -421,7 +421,7 @@ _080C92CA:
pop {r0}
bx r0
.align 2, 0
-_080C92E0: .4byte word_203855E
+_080C92E0: .4byte gScriptItemId
thumb_func_end ItemUseOnFieldCB_Bike
thumb_func_start CanFish
@@ -537,7 +537,7 @@ ItemUseOnFieldCB_Rod: @ 80C93B8
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080C93DC @ =word_203855E
+ ldr r0, _080C93DC @ =gScriptItemId
ldrh r0, [r0]
bl ItemId_GetSecondaryId
lsls r0, 24
@@ -549,7 +549,7 @@ ItemUseOnFieldCB_Rod: @ 80C93B8
pop {r0}
bx r0
.align 2, 0
-_080C93DC: .4byte word_203855E
+_080C93DC: .4byte gScriptItemId
thumb_func_end ItemUseOnFieldCB_Rod
thumb_func_start ItemUseOutOfBattle_Itemfinder
@@ -1666,7 +1666,7 @@ unref_sub_80C9BF8: @ 80C9BF8
movs r3, 0x14
bl MenuZeroFillWindowRect
ldr r4, _080C9C40 @ =gUnknown_083D61DC
- ldr r0, _080C9C44 @ =word_203855E
+ ldr r0, _080C9C44 @ =gScriptItemId
ldrh r0, [r0]
bl ItemId_GetSecondaryId
lsls r0, 24
@@ -1681,11 +1681,11 @@ unref_sub_80C9BF8: @ 80C9BF8
.align 2, 0
_080C9C3C: .4byte gTasks
_080C9C40: .4byte gUnknown_083D61DC
-_080C9C44: .4byte word_203855E
+_080C9C44: .4byte gScriptItemId
_080C9C48: .4byte sub_80C9BB8
_080C9C4C:
ldr r4, _080C9C70 @ =gUnknown_083D61DC
- ldr r0, _080C9C74 @ =word_203855E
+ ldr r0, _080C9C74 @ =gScriptItemId
ldrh r0, [r0]
bl ItemId_GetSecondaryId
lsls r0, 24
@@ -1702,7 +1702,7 @@ _080C9C68:
bx r0
.align 2, 0
_080C9C70: .4byte gUnknown_083D61DC
-_080C9C74: .4byte word_203855E
+_080C9C74: .4byte gScriptItemId
_080C9C78: .4byte sub_80C9BD8
thumb_func_end unref_sub_80C9BF8
@@ -1752,7 +1752,7 @@ _080C9CD8: .4byte gTasks
_080C9CDC: .4byte c2_exit_to_overworld_2_switch
_080C9CE0: .4byte sub_80A5B00
_080C9CE4:
- ldr r0, _080C9CFC @ =word_203855E
+ ldr r0, _080C9CFC @ =gScriptItemId
ldrh r0, [r0]
bl ItemId_GetFieldFunc
adds r1, r0, 0
@@ -1764,7 +1764,7 @@ _080C9CF4:
pop {r0}
bx r0
.align 2, 0
-_080C9CFC: .4byte word_203855E
+_080C9CFC: .4byte gScriptItemId
thumb_func_end sub_80C9C7C
thumb_func_start sub_80C9D00
@@ -1773,7 +1773,7 @@ sub_80C9D00: @ 80C9D00
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080C9D28 @ =word_203855E
+ ldr r0, _080C9D28 @ =gScriptItemId
ldrh r0, [r0]
movs r1, 0x1
bl RemoveBagItem
@@ -1786,7 +1786,7 @@ sub_80C9D00: @ 80C9D00
pop {r0}
bx r0
.align 2, 0
-_080C9D28: .4byte word_203855E
+_080C9D28: .4byte gScriptItemId
_080C9D2C: .4byte gUnknown_081A1654
thumb_func_end sub_80C9D00
@@ -1989,7 +1989,7 @@ ItemUseOutOfBattle_TMHM: @ 80C9E90
movs r2, 0xD
movs r3, 0x14
bl MenuZeroFillWindowRect
- ldr r0, _080C9EBC @ =word_203855E
+ ldr r0, _080C9EBC @ =gScriptItemId
ldrh r1, [r0]
movs r0, 0xA9
lsls r0, 1
@@ -2002,7 +2002,7 @@ ItemUseOutOfBattle_TMHM: @ 80C9E90
bl DisplayItemMessageOnField
b _080C9ED4
.align 2, 0
-_080C9EBC: .4byte word_203855E
+_080C9EBC: .4byte gScriptItemId
_080C9EC0: .4byte gOtherText_BootedHM
_080C9EC4: .4byte sub_80C9EE4
_080C9EC8:
@@ -2060,7 +2060,7 @@ sub_80C9F10: @ 80C9F10
beq _080C9F5C
_080C9F2A:
ldr r4, _080C9F68 @ =gStringVar1
- ldr r0, _080C9F6C @ =word_203855E
+ ldr r0, _080C9F6C @ =gScriptItemId
ldrh r0, [r0]
bl ItemIdToBattleMoveId
lsls r0, 16
@@ -2087,7 +2087,7 @@ _080C9F5C:
.align 2, 0
_080C9F64: .4byte gMain
_080C9F68: .4byte gStringVar1
-_080C9F6C: .4byte word_203855E
+_080C9F6C: .4byte gScriptItemId
_080C9F70: .4byte gMoveNames
_080C9F74: .4byte gStringVar4
_080C9F78: .4byte gOtherText_ContainsMove
@@ -2105,7 +2105,7 @@ sub_80C9F80: @ 80C9F80
movs r1, 0x7
movs r2, 0x1
bl DisplayYesNoMenu
- ldr r0, _080C9FB8 @ =gBG1TilemapBuffer
+ ldr r0, _080C9FB8 @ =gBGTilemapBuffers + 0x800
movs r1, 0x4
str r1, [sp]
movs r1, 0x1
@@ -2122,7 +2122,7 @@ sub_80C9F80: @ 80C9F80
pop {r0}
bx r0
.align 2, 0
-_080C9FB8: .4byte gBG1TilemapBuffer
+_080C9FB8: .4byte gBGTilemapBuffers + 0x800
_080C9FBC: .4byte gUnknown_083D61F4
thumb_func_end sub_80C9F80
@@ -2145,7 +2145,7 @@ _080C9FD8: .4byte sub_806F06C
thumb_func_start sub_80C9FDC
sub_80C9FDC: @ 80C9FDC
push {r4,lr}
- ldr r4, _080CA004 @ =word_203855E
+ ldr r4, _080CA004 @ =gScriptItemId
ldrh r0, [r4]
movs r1, 0x1
bl RemoveBagItem
@@ -2160,7 +2160,7 @@ sub_80C9FDC: @ 80C9FDC
pop {r0}
bx r0
.align 2, 0
-_080CA004: .4byte word_203855E
+_080CA004: .4byte gScriptItemId
_080CA008: .4byte gStringVar2
_080CA00C: .4byte gStringVar4
_080CA010: .4byte gOtherText_UsedItem
@@ -2177,7 +2177,7 @@ ItemUseOutOfBattle_Repel: @ 80CA014
lsls r0, 16
cmp r0, 0
bne _080CA060
- ldr r0, _080CA054 @ =word_203855E
+ ldr r0, _080CA054 @ =gScriptItemId
ldrh r0, [r0]
bl ItemId_GetHoldEffectParam
adds r1, r0, 0
@@ -2194,7 +2194,7 @@ ItemUseOutOfBattle_Repel: @ 80CA014
b _080CA06C
.align 2, 0
_080CA050: .4byte 0x00004021
-_080CA054: .4byte word_203855E
+_080CA054: .4byte gScriptItemId
_080CA058: .4byte gStringVar4
_080CA05C: .4byte sub_80A5C48
_080CA060:
@@ -2216,14 +2216,14 @@ _080CA078: .4byte sub_80A5C48
sub_80CA07C: @ 80CA07C
push {lr}
bl sub_80A3E0C
- ldr r0, _080CA090 @ =word_203855E
+ ldr r0, _080CA090 @ =gScriptItemId
ldrh r0, [r0]
ldr r1, _080CA094 @ =gStringVar2
bl CopyItemName
pop {r0}
bx r0
.align 2, 0
-_080CA090: .4byte word_203855E
+_080CA090: .4byte gScriptItemId
_080CA094: .4byte gStringVar2
thumb_func_end sub_80CA07C
@@ -2267,7 +2267,7 @@ ItemUseOutOfBattle_BlackWhiteFlute: @ 80CA0DC
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
- ldr r0, _080CA10C @ =word_203855E
+ ldr r0, _080CA10C @ =gScriptItemId
ldrh r0, [r0]
cmp r0, 0x2B
bne _080CA124
@@ -2284,7 +2284,7 @@ ItemUseOutOfBattle_BlackWhiteFlute: @ 80CA0DC
adds r0, r4
b _080CA146
.align 2, 0
-_080CA10C: .4byte word_203855E
+_080CA10C: .4byte gScriptItemId
_080CA110: .4byte 0x0000084d
_080CA114: .4byte 0x0000084e
_080CA118: .4byte gStringVar4
@@ -2447,7 +2447,7 @@ ItemUseInBattle_PokeBall: @ 80CA244
lsls r0, 24
cmp r0, 0
bne _080CA26C
- ldr r0, _080CA268 @ =word_203855E
+ ldr r0, _080CA268 @ =gScriptItemId
ldrh r0, [r0]
movs r1, 0x1
bl RemoveBagItem
@@ -2455,7 +2455,7 @@ ItemUseInBattle_PokeBall: @ 80CA244
bl sub_80A7094
b _080CA284
.align 2, 0
-_080CA268: .4byte word_203855E
+_080CA268: .4byte gScriptItemId
_080CA26C:
movs r0, 0
movs r1, 0xD
@@ -2520,7 +2520,7 @@ sub_80CA2BC: @ 80CA2BC
ble _080CA2FC
movs r0, 0x1
bl PlaySE
- ldr r4, _080CA308 @ =word_203855E
+ ldr r4, _080CA308 @ =gScriptItemId
ldrh r0, [r4]
movs r1, 0x1
bl RemoveBagItem
@@ -2537,7 +2537,7 @@ _080CA2FC:
bx r0
.align 2, 0
_080CA304: .4byte gTasks
-_080CA308: .4byte word_203855E
+_080CA308: .4byte gScriptItemId
_080CA30C: .4byte sub_80CA294
thumb_func_end sub_80CA2BC
@@ -2561,7 +2561,7 @@ ItemUseInBattle_StatIncrease: @ 80CA310
muls r0, r4
ldr r1, _080CA364 @ =gPlayerParty
adds r0, r1
- ldr r1, _080CA368 @ =word_203855E
+ ldr r1, _080CA368 @ =gScriptItemId
ldrh r1, [r1]
lsls r4, 24
lsrs r4, 24
@@ -2582,7 +2582,7 @@ ItemUseInBattle_StatIncrease: @ 80CA310
_080CA35C: .4byte gUnknown_02024A6A
_080CA360: .4byte gUnknown_02024E6C
_080CA364: .4byte gPlayerParty
-_080CA368: .4byte word_203855E
+_080CA368: .4byte gScriptItemId
_080CA36C: .4byte gOtherText_WontHaveAnyEffect
_080CA370: .4byte sub_80A5C48
_080CA374:
@@ -2712,7 +2712,7 @@ unref_sub_80CA448: @ 80CA448
movs r2, 0xD
movs r3, 0x14
bl MenuZeroFillWindowRect
- ldr r4, _080CA494 @ =word_203855E
+ ldr r4, _080CA494 @ =gScriptItemId
ldrh r1, [r4]
movs r0, 0
movs r2, 0
@@ -2737,7 +2737,7 @@ unref_sub_80CA448: @ 80CA448
bl DisplayItemMessageOnField
b _080CA4B8
.align 2, 0
-_080CA494: .4byte word_203855E
+_080CA494: .4byte gScriptItemId
_080CA498: .4byte gPlayerParty
_080CA49C: .4byte gStringVar1
_080CA4A0: .4byte gStringVar4
@@ -2807,7 +2807,7 @@ ItemUseOutOfBattle_EnigmaBerry: @ 80CA520
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080CA544 @ =word_203855E
+ ldr r0, _080CA544 @ =gScriptItemId
ldrh r0, [r0]
bl sub_8070E48
lsls r0, 24
@@ -2823,7 +2823,7 @@ _080CA53A:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080CA544: .4byte word_203855E
+_080CA544: .4byte gScriptItemId
_080CA548: .4byte _080CA54C
.align 2, 0
_080CA54C:
@@ -2936,7 +2936,7 @@ ItemUseInBattle_EnigmaBerry: @ 80CA64C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _080CA66C @ =word_203855E
+ ldr r0, _080CA66C @ =gScriptItemId
ldrh r0, [r0]
bl sub_8070E48
lsls r0, 24
@@ -2949,7 +2949,7 @@ ItemUseInBattle_EnigmaBerry: @ 80CA64C
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080CA66C: .4byte word_203855E
+_080CA66C: .4byte gScriptItemId
_080CA670: .4byte _080CA674
.align 2, 0
_080CA674:
diff --git a/asm/landmark.s b/asm/landmark.s
deleted file mode 100644
index 05f509dfe..000000000
--- a/asm/landmark.s
+++ /dev/null
@@ -1,132 +0,0 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
-
- .syntax unified
-
- .text
-
- thumb_func_start GetLandmarkName
-GetLandmarkName: @ 811A8CC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- bl GetLandmarkList
- adds r4, r0, 0
- cmp r4, 0
- bne _0811A8E8
-_0811A8E4:
- movs r0, 0
- b _0811A91A
-_0811A8E8:
- ldr r6, _0811A8EC @ =0x0000ffff
- b _0811A8FE
- .align 2, 0
-_0811A8EC: .4byte 0x0000ffff
-_0811A8F0:
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0811A8F6:
- adds r4, 0x4
- ldr r0, [r4]
- cmp r0, 0
- beq _0811A8E4
-_0811A8FE:
- ldr r1, [r4]
- ldrh r0, [r1, 0x4]
- cmp r0, r6
- beq _0811A912
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0811A8F6
-_0811A912:
- cmp r5, 0
- bne _0811A8F0
- ldr r0, [r4]
- ldr r0, [r0]
-_0811A91A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end GetLandmarkName
-
- thumb_func_start GetLandmarkList
-GetLandmarkList: @ 811A920
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- movs r2, 0
- ldr r0, _0811A964 @ =gLandmarkLists
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x58
- beq _0811A990
- adds r1, r4, 0
-_0811A938:
- lsls r0, r2, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, r3
- bhi _0811A990
- cmp r0, r3
- beq _0811A956
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r0, r2, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x58
- bne _0811A938
-_0811A956:
- lsls r0, r2, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x58
- bne _0811A970
- b _0811A990
- .align 2, 0
-_0811A964: .4byte gLandmarkLists
-_0811A968:
- adds r0, r4, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- b _0811A992
-_0811A970:
- cmp r0, r3
- bne _0811A990
- ldr r5, _0811A998 @ =gLandmarkLists
-_0811A976:
- lsls r1, r2, 3
- adds r0, r1, r5
- ldrb r0, [r0, 0x1]
- cmp r0, r6
- beq _0811A968
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r0, r2, 3
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, r3
- beq _0811A976
-_0811A990:
- movs r0, 0
-_0811A992:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811A998: .4byte gLandmarkLists
- thumb_func_end GetLandmarkList
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/libagbsyscall.s b/asm/libagbsyscall.s
index bdb642327..3b59592b6 100644
--- a/asm/libagbsyscall.s
+++ b/asm/libagbsyscall.s
@@ -1,4 +1,4 @@
- .include "asm/macros.s"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/libgcnmultiboot.s b/asm/libgcnmultiboot.s
index 3dd4fe8ab..87003abbc 100644
--- a/asm/libgcnmultiboot.s
+++ b/asm/libgcnmultiboot.s
@@ -1,8 +1,8 @@
@ This library can be used to download and execute a multi-boot image from
@ a GameCube using the JOY Bus protocol over the link cable.
- .include "asm/macros.s"
- .include "constants/constants.s"
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
.equiv GCMB_STRUCT_BASE_DEST_PTR, 0x20
.equiv GCMB_STRUCT_CUR_DEST_PTR, 0x24
diff --git a/asm/load_save.s b/asm/load_save.s
index 66fa16959..09a9ea969 100644
--- a/asm/load_save.s
+++ b/asm/load_save.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/m4a_1.s b/asm/m4a_1.s
index 3f449c9fe..ffe2ca885 100644
--- a/asm/m4a_1.s
+++ b/asm/m4a_1.s
@@ -1,6 +1,6 @@
- .include "asm/macros.s"
- .include "constants/gba_constants.s"
- .include "constants/m4a_constants.s"
+ .include "asm/macros.inc"
+ .include "constants/gba_constants.inc"
+ .include "constants/m4a_constants.inc"
.syntax unified
@@ -678,7 +678,7 @@ sub_81DD520:
ldr r1, [r4, o_SoundChannel_wav]
add r2, r2, r1
add r2, r2, 0x10
- ldr r5, =0x030007b8
+ ldr r5, =gUnknown_030007B8
ldr r6, =gDeltaEncodingTable
mov r7, 0x40
ldrb lr, [r2], 1
@@ -699,7 +699,7 @@ _081DD57C:
subs r7, r7, 2
bgt _081DD568
_081DD594:
- ldr r5, =0x030007b8
+ ldr r5, =gUnknown_030007B8
and r0, r3, 0x3F
ldrsb r1, [r5, r0]
pop {r0,r2,r5-r7,pc}
diff --git a/asm/m4a_3.s b/asm/m4a_3.s
index 68cd8803a..a842ae925 100644
--- a/asm/m4a_3.s
+++ b/asm/m4a_3.s
@@ -1,6 +1,6 @@
- .include "asm/macros.s"
- .include "constants/gba_constants.s"
- .include "constants/m4a_constants.s"
+ .include "asm/macros.inc"
+ .include "constants/gba_constants.inc"
+ .include "constants/m4a_constants.inc"
.syntax unified
diff --git a/asm/macros.s b/asm/macros.inc
index 42c35026e..6d8657892 100644
--- a/asm/macros.s
+++ b/asm/macros.inc
@@ -1,9 +1,9 @@
- .include "asm/macros/asm.s"
- .include "asm/macros/function.s"
- .include "asm/macros/movement.s"
- .include "asm/macros/pokemon_data.s"
- .include "asm/macros/ec.s"
- .include "asm/macros/map.s"
+ .include "asm/macros/asm.inc"
+ .include "asm/macros/function.inc"
+ .include "asm/macros/movement.inc"
+ .include "asm/macros/pokemon_data.inc"
+ .include "asm/macros/ec.inc"
+ .include "asm/macros/map.inc"
.macro region_map_location x, y, width, height, name
.byte \x
diff --git a/asm/macros/asm.s b/asm/macros/asm.inc
index 4ac003fab..4ac003fab 100644
--- a/asm/macros/asm.s
+++ b/asm/macros/asm.inc
diff --git a/asm/macros/battle_ai_script.s b/asm/macros/battle_ai_script.inc
index 38a44ddfb..38a44ddfb 100644
--- a/asm/macros/battle_ai_script.s
+++ b/asm/macros/battle_ai_script.inc
diff --git a/asm/macros/battle_anim.s b/asm/macros/battle_anim.inc
index fc2777326..fc2777326 100644
--- a/asm/macros/battle_anim.s
+++ b/asm/macros/battle_anim.inc
diff --git a/asm/macros/battle_script.s b/asm/macros/battle_script.inc
index 5dd1d5a1a..5dd1d5a1a 100644
--- a/asm/macros/battle_script.s
+++ b/asm/macros/battle_script.inc
diff --git a/asm/macros/contest_ai_script.s b/asm/macros/contest_ai_script.inc
index 05d70e351..05d70e351 100755..100644
--- a/asm/macros/contest_ai_script.s
+++ b/asm/macros/contest_ai_script.inc
diff --git a/asm/macros/ec.s b/asm/macros/ec.inc
index 44c974e53..44c974e53 100644
--- a/asm/macros/ec.s
+++ b/asm/macros/ec.inc
diff --git a/asm/macros/event.s b/asm/macros/event.inc
index e3caa0c4f..e3caa0c4f 100644
--- a/asm/macros/event.s
+++ b/asm/macros/event.inc
diff --git a/asm/macros/field_effect_script.s b/asm/macros/field_effect_script.inc
index d5895b0ef..d5895b0ef 100644
--- a/asm/macros/field_effect_script.s
+++ b/asm/macros/field_effect_script.inc
diff --git a/asm/macros/function.s b/asm/macros/function.inc
index 67fb373a8..67fb373a8 100644
--- a/asm/macros/function.s
+++ b/asm/macros/function.inc
diff --git a/asm/macros/m4a.s b/asm/macros/m4a.inc
index 6c5abc09b..6c5abc09b 100644
--- a/asm/macros/m4a.s
+++ b/asm/macros/m4a.inc
diff --git a/asm/macros/map.s b/asm/macros/map.inc
index 41844b5cd..41844b5cd 100644
--- a/asm/macros/map.s
+++ b/asm/macros/map.inc
diff --git a/asm/macros/movement.s b/asm/macros/movement.inc
index 674ce7169..674ce7169 100644
--- a/asm/macros/movement.s
+++ b/asm/macros/movement.inc
diff --git a/asm/macros/music_voice.s b/asm/macros/music_voice.inc
index b7a9e7f8d..b7a9e7f8d 100644
--- a/asm/macros/music_voice.s
+++ b/asm/macros/music_voice.inc
diff --git a/asm/macros/pokemon_data.s b/asm/macros/pokemon_data.inc
index b0a5f22e3..b0a5f22e3 100644
--- a/asm/macros/pokemon_data.s
+++ b/asm/macros/pokemon_data.inc
diff --git a/asm/mail.s b/asm/mail.s
index 5a3efbf69..a08571018 100644
--- a/asm/mail.s
+++ b/asm/mail.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/matuda_debug_menu.s b/asm/matuda_debug_menu.s
index fe76a8eb6..c2fb1f004 100644
--- a/asm/matuda_debug_menu.s
+++ b/asm/matuda_debug_menu.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -322,7 +322,7 @@ _080A9D6E:
bl sub_80C4B34
ldr r1, _080A9DAC @ =gUnknown_0203869B
strb r0, [r1]
- ldr r0, _080A9DB0 @ =gUnknown_0203869C
+ ldr r0, _080A9DB0 @ =gScriptContestCategory
ldrb r0, [r0]
bl sub_80AE82C
movs r0, 0
@@ -338,7 +338,7 @@ _080A9D6E:
.align 2, 0
_080A9DA8: .4byte gTasks
_080A9DAC: .4byte gUnknown_0203869B
-_080A9DB0: .4byte gUnknown_0203869C
+_080A9DB0: .4byte gScriptContestCategory
_080A9DB4: .4byte sub_80C8EBC
_080A9DB8: .4byte sub_80A9DBC
thumb_func_end sub_80A9D58
@@ -828,8 +828,8 @@ _080AA17A:
lsrs r5, r0, 24
cmp r5, 0x5
bls _080AA17A
- ldr r1, _080AA258 @ =gUnknown_0203869C
- ldr r4, _080AA25C @ =gUnknown_0203869E
+ ldr r1, _080AA258 @ =gScriptContestCategory
+ ldr r4, _080AA25C @ =gScriptContestRank
movs r0, 0
strh r0, [r4]
strh r0, [r1]
@@ -899,8 +899,8 @@ _080AA248: .4byte gUnknown_02038570
_080AA24C: .4byte gUnknown_083C9276
_080AA250: .4byte gUnknown_083C9364
_080AA254: .4byte gMenuWindow
-_080AA258: .4byte gUnknown_0203869C
-_080AA25C: .4byte gUnknown_0203869E
+_080AA258: .4byte gScriptContestCategory
+_080AA25C: .4byte gScriptContestRank
_080AA260: .4byte gUnknown_083C9337
_080AA264: .4byte gUnknown_083C933B
_080AA268: .4byte gUnknown_083C92B4
@@ -2174,11 +2174,11 @@ _080AAC1A:
bl sub_80AA5BC
asrs r4, 24
strh r4, [r5, 0x34]
- ldr r0, _080AAC54 @ =gUnknown_0203869C
+ ldr r0, _080AAC54 @ =gScriptContestCategory
strh r4, [r0]
lsls r4, 24
lsrs r4, 24
- ldr r0, _080AAC58 @ =gUnknown_0203869E
+ ldr r0, _080AAC58 @ =gScriptContestRank
ldrb r1, [r0]
adds r0, r4, 0
bl sub_80AE398
@@ -2194,8 +2194,8 @@ _080AAC1A:
pop {r0}
bx r0
.align 2, 0
-_080AAC54: .4byte gUnknown_0203869C
-_080AAC58: .4byte gUnknown_0203869E
+_080AAC54: .4byte gScriptContestCategory
+_080AAC58: .4byte gScriptContestRank
thumb_func_end sub_80AABF0
thumb_func_start sub_80AAC5C
@@ -2205,16 +2205,16 @@ sub_80AAC5C: @ 80AAC5C
lsls r1, 24
cmp r1, 0
ble _080AAC78
- ldr r1, _080AAC74 @ =gUnknown_0203869E
+ ldr r1, _080AAC74 @ =gScriptContestRank
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
adds r4, r1, 0
b _080AAC86
.align 2, 0
-_080AAC74: .4byte gUnknown_0203869E
+_080AAC74: .4byte gScriptContestRank
_080AAC78:
- ldr r0, _080AACBC @ =gUnknown_0203869E
+ ldr r0, _080AACBC @ =gScriptContestRank
ldrh r2, [r0]
adds r4, r0, 0
cmp r2, 0
@@ -2231,7 +2231,7 @@ _080AAC86:
_080AAC92:
ldrb r0, [r4]
bl sub_80AA5E8
- ldr r0, _080AACC0 @ =gUnknown_0203869C
+ ldr r0, _080AACC0 @ =gScriptContestCategory
ldrb r0, [r0]
ldrb r1, [r4]
bl sub_80AE398
@@ -2247,8 +2247,8 @@ _080AAC92:
pop {r0}
bx r0
.align 2, 0
-_080AACBC: .4byte gUnknown_0203869E
-_080AACC0: .4byte gUnknown_0203869C
+_080AACBC: .4byte gScriptContestRank
+_080AACC0: .4byte gScriptContestCategory
thumb_func_end sub_80AAC5C
thumb_func_start sub_80AACC4
@@ -2328,7 +2328,7 @@ sub_80AAD44: @ 80AAD44
_080AAD56:
lsls r0, r4, 24
lsrs r0, 24
- ldr r1, _080AAD7C @ =gUnknown_0203869C
+ ldr r1, _080AAD7C @ =gScriptContestCategory
ldrb r1, [r1]
bl sub_80AE770
strh r0, [r5]
@@ -2344,7 +2344,7 @@ _080AAD72:
bx r0
.align 2, 0
_080AAD78: .4byte gUnknown_02038670
-_080AAD7C: .4byte gUnknown_0203869C
+_080AAD7C: .4byte gScriptContestCategory
_080AAD80: .4byte sub_805469C
thumb_func_end sub_80AAD44
@@ -2707,7 +2707,7 @@ _080AB044:
subs r2, 0x1
cmp r2, r5
bgt _080AB044
- ldr r1, _080AB080 @ =gUnknown_0203869C
+ ldr r1, _080AB080 @ =gScriptContestCategory
movs r0, 0
strh r0, [r1]
adds r4, r1, 0
@@ -2729,7 +2729,7 @@ _080AB058:
.align 2, 0
_080AB078: .4byte gUnknown_02038695
_080AB07C: .4byte gUnknown_02038690
-_080AB080: .4byte gUnknown_0203869C
+_080AB080: .4byte gScriptContestCategory
thumb_func_end sub_80AB02C
thumb_func_start unref_sub_80AB084
diff --git a/asm/mauville_old_man.s b/asm/mauville_old_man.s
index afd35a3f8..7dfaa890e 100644
--- a/asm/mauville_old_man.s
+++ b/asm/mauville_old_man.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -219,7 +219,7 @@ _080F7B9C: .4byte gSaveBlock2
sub_80F7BA0: @ 80F7BA0
push {r4-r7,lr}
ldr r1, _080F7C48 @ =gSaveBlock1 + 0x2D94
- ldr r0, _080F7C4C @ =gUnknown_0202E8CC
+ ldr r0, _080F7C4C @ =gSpecialVar_0x8004
ldrh r0, [r0]
adds r5, r1, 0
adds r5, 0xE
@@ -312,14 +312,14 @@ _080F7C3A:
bx r0
.align 2, 0
_080F7C48: .4byte gSaveBlock1 + 0x2D94
-_080F7C4C: .4byte gUnknown_0202E8CC
+_080F7C4C: .4byte gSpecialVar_0x8004
_080F7C50: .4byte gStringVar4
thumb_func_end sub_80F7BA0
thumb_func_start sub_80F7C54
sub_80F7C54: @ 80F7C54
push {lr}
- ldr r0, _080F7C6C @ =gUnknown_0202E8CC
+ ldr r0, _080F7C6C @ =gSpecialVar_0x8004
ldrb r0, [r0]
bl sub_80F7F80
bl MenuDisplayMessageBox
@@ -327,7 +327,7 @@ sub_80F7C54: @ 80F7C54
pop {r0}
bx r0
.align 2, 0
-_080F7C6C: .4byte gUnknown_0202E8CC
+_080F7C6C: .4byte gSpecialVar_0x8004
thumb_func_end sub_80F7C54
thumb_func_start sub_80F7C70
@@ -789,7 +789,7 @@ _080F7FCC:
.4byte _080F817A
_080F7FE4:
ldr r2, _080F8034 @ =gSaveBlock1 + 0x2D94
- ldr r0, _080F8038 @ =gUnknown_0202E8CC
+ ldr r0, _080F8038 @ =gSpecialVar_0x8004
ldrh r0, [r0]
adds r1, r2, 0
adds r1, 0xE
@@ -833,7 +833,7 @@ _080F8016:
b _080F817A
.align 2, 0
_080F8034: .4byte gSaveBlock1 + 0x2D94
-_080F8038: .4byte gUnknown_0202E8CC
+_080F8038: .4byte gSpecialVar_0x8004
_080F803C: .4byte 0x0000ffff
_080F8040:
ldrb r1, [r6]
diff --git a/asm/menu_cursor.s b/asm/menu_cursor.s
deleted file mode 100644
index 8fb1c969c..000000000
--- a/asm/menu_cursor.s
+++ /dev/null
@@ -1,1118 +0,0 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_814A590
-sub_814A590: @ 814A590
- ldr r0, _0814A5AC @ =gUnknown_0203A3D0
- movs r1, 0x40
- strb r1, [r0]
- ldr r0, _0814A5B0 @ =gUnknown_0203A3D1
- strb r1, [r0]
- ldr r0, _0814A5B4 @ =gUnknown_0203A3D2
- strb r1, [r0]
- ldr r0, _0814A5B8 @ =gUnknown_0203A3D3
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0814A5BC @ =gUnknown_0203A3D4
- strb r1, [r0]
- bx lr
- .align 2, 0
-_0814A5AC: .4byte gUnknown_0203A3D0
-_0814A5B0: .4byte gUnknown_0203A3D1
-_0814A5B4: .4byte gUnknown_0203A3D2
-_0814A5B8: .4byte gUnknown_0203A3D3
-_0814A5BC: .4byte gUnknown_0203A3D4
- thumb_func_end sub_814A590
-
- thumb_func_start sub_814A5C0
-sub_814A5C0: @ 814A5C0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r4, [sp, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 16
- lsrs r7, r3, 16
- lsls r4, 24
- lsrs r4, 24
- mov r9, r4
- ldr r0, _0814A678 @ =gUnknown_0203A3D0
- ldrb r0, [r0]
- cmp r0, 0x40
- bne _0814A5F2
- ldr r0, _0814A67C @ =gUnknown_0203A3D1
- ldrb r0, [r0]
- cmp r0, 0x40
- beq _0814A5F6
-_0814A5F2:
- bl sub_814A7FC
-_0814A5F6:
- movs r4, 0x1
- ldr r0, _0814A680 @ =0x0000ffff
- cmp r6, r0
- bne _0814A61C
- ldr r1, _0814A684 @ =gUnknown_0203A360
- movs r0, 0xF
- ands r0, r5
- lsls r0, 1
- adds r0, r1
- strh r7, [r0]
- ldr r0, _0814A688 @ =gUnknown_0842F240
- bl LoadSpritePalette
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0814A61C
- ldr r6, _0814A68C @ =0x0000fff0
- movs r4, 0
-_0814A61C:
- movs r7, 0xF
- adds r0, r5, 0
- ands r0, r7
- lsls r0, 3
- ldr r1, _0814A690 @ =gUnknown_0842F140
- adds r0, r1
- bl LoadSpriteSheetDeferred
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r4, _0814A694 @ =gSpriteTemplate_842F250
- adds r0, r4
- movs r1, 0
- movs r2, 0xA0
- mov r3, r8
- bl CreateSprite
- ldr r5, _0814A678 @ =gUnknown_0203A3D0
- strb r0, [r5]
- adds r4, 0x30
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0xA0
- mov r3, r8
- bl CreateSprite
- ldr r1, _0814A67C @ =gUnknown_0203A3D1
- strb r0, [r1]
- ldrb r0, [r5]
- cmp r0, 0x40
- beq _0814A6AE
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A698 @ =gSprites
- adds r4, r0, r1
- ldr r0, _0814A680 @ =0x0000ffff
- cmp r6, r0
- bne _0814A69C
- ldrb r1, [r4, 0x5]
- adds r0, r7, 0
- ands r0, r1
- strb r0, [r4, 0x5]
- b _0814A6AE
- .align 2, 0
-_0814A678: .4byte gUnknown_0203A3D0
-_0814A67C: .4byte gUnknown_0203A3D1
-_0814A680: .4byte 0x0000ffff
-_0814A684: .4byte gUnknown_0203A360
-_0814A688: .4byte gUnknown_0842F240
-_0814A68C: .4byte 0x0000fff0
-_0814A690: .4byte gUnknown_0842F140
-_0814A694: .4byte gSpriteTemplate_842F250
-_0814A698: .4byte gSprites
-_0814A69C:
- adds r0, r6, 0
- bl IndexOfSpritePaletteTag
- lsls r0, 4
- ldrb r2, [r4, 0x5]
- adds r1, r7, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
-_0814A6AE:
- ldr r1, _0814A6D4 @ =gUnknown_0203A3D1
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814A72C
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A6D8 @ =gSprites
- adds r4, r0, r1
- ldr r0, _0814A6DC @ =0x0000ffff
- cmp r6, r0
- bne _0814A6E0
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- strb r0, [r4, 0x5]
- b _0814A6F2
- .align 2, 0
-_0814A6D4: .4byte gUnknown_0203A3D1
-_0814A6D8: .4byte gSprites
-_0814A6DC: .4byte 0x0000ffff
-_0814A6E0:
- adds r0, r6, 0
- bl IndexOfSpritePaletteTag
- lsls r0, 4
- ldrb r2, [r4, 0x5]
- movs r1, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
-_0814A6F2:
- movs r3, 0x80
- lsls r3, 19
- ldrh r1, [r3]
- movs r0, 0xC0
- lsls r0, 7
- ands r0, r1
- cmp r0, 0
- bne _0814A70C
- ldr r0, _0814A744 @ =REG_WINOUT
- ldrb r1, [r0]
- movs r2, 0x1F
- orrs r1, r2
- strb r1, [r0]
-_0814A70C:
- ldr r1, _0814A748 @ =gUnknown_0203A3D3
- ldrh r0, [r3]
- lsrs r0, 15
- strb r0, [r1]
- ldr r1, _0814A74C @ =gUnknown_0203A3D4
- ldr r2, _0814A750 @ =0x0400004b
- ldrb r0, [r2]
- strb r0, [r1]
- ldrh r0, [r3]
- movs r4, 0x80
- lsls r4, 8
- adds r1, r4, 0
- orrs r0, r1
- strh r0, [r3]
- movs r0, 0x10
- strb r0, [r2]
-_0814A72C:
- mov r0, r9
- bl sub_814A958
- ldr r0, _0814A754 @ =gUnknown_0203A3D0
- ldrb r0, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0814A744: .4byte REG_WINOUT
-_0814A748: .4byte gUnknown_0203A3D3
-_0814A74C: .4byte gUnknown_0203A3D4
-_0814A750: .4byte 0x0400004b
-_0814A754: .4byte gUnknown_0203A3D0
- thumb_func_end sub_814A5C0
-
- thumb_func_start sub_814A758
-sub_814A758: @ 814A758
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp]
- movs r1, 0
- movs r3, 0
- bl sub_814A5C0
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- cmp r4, 0x40
- beq _0814A79A
- ldr r0, _0814A7A4 @ =gUnknown_0203A3D0
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0814A7A8 @ =gSprites
- adds r1, r0
- lsls r3, r5, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
-_0814A79A:
- adds r0, r4, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0814A7A4: .4byte gUnknown_0203A3D0
-_0814A7A8: .4byte gSprites
- thumb_func_end sub_814A758
-
- thumb_func_start unref_sub_814A7AC
-unref_sub_814A7AC: @ 814A7AC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 24
- lsrs r7, r2, 24
- movs r3, 0
- movs r2, 0xF
- movs r1, 0
- ldr r6, _0814A7F8 @ =gPlttBufferUnfaded
- movs r5, 0xF
-_0814A7C6:
- lsls r0, r1, 1
- adds r0, r6
- ldrh r0, [r0]
- cmp r0, r4
- bne _0814A7DA
- lsrs r0, r1, 4
- lsls r0, 24
- lsrs r3, r0, 24
- adds r2, r1, 0
- ands r2, r5
-_0814A7DA:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xFF
- bls _0814A7C6
- mov r0, r12
- adds r1, r3, 0
- adds r3, r7, 0
- bl sub_814A758
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0814A7F8: .4byte gPlttBufferUnfaded
- thumb_func_end unref_sub_814A7AC
-
- thumb_func_start sub_814A7FC
-sub_814A7FC: @ 814A7FC
- push {r4,lr}
- ldr r4, _0814A860 @ =gUnknown_0203A3D0
- ldrb r0, [r4]
- cmp r0, 0x40
- beq _0814A820
- ldr r0, _0814A864 @ =gUnknown_0842F140
- bl LoadTilesForSpriteSheet
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A868 @ =gSprites
- adds r0, r1
- bl DestroySpriteAndFreeResources
- movs r0, 0x40
- strb r0, [r4]
-_0814A820:
- ldr r4, _0814A86C @ =gUnknown_0203A3D1
- ldrb r0, [r4]
- cmp r0, 0x40
- beq _0814A858
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A868 @ =gSprites
- adds r0, r1
- bl DestroySpriteAndFreeResources
- movs r0, 0x40
- strb r0, [r4]
- ldr r0, _0814A870 @ =gUnknown_0203A3D3
- ldrb r0, [r0]
- cmp r0, 0
- bne _0814A850
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _0814A874 @ =0x00007fff
- ands r0, r1
- strh r0, [r2]
-_0814A850:
- ldr r0, _0814A878 @ =0x0400004b
- ldr r1, _0814A87C @ =gUnknown_0203A3D4
- ldrb r1, [r1]
- strb r1, [r0]
-_0814A858:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A860: .4byte gUnknown_0203A3D0
-_0814A864: .4byte gUnknown_0842F140
-_0814A868: .4byte gSprites
-_0814A86C: .4byte gUnknown_0203A3D1
-_0814A870: .4byte gUnknown_0203A3D3
-_0814A874: .4byte 0x00007fff
-_0814A878: .4byte 0x0400004b
-_0814A87C: .4byte gUnknown_0203A3D4
- thumb_func_end sub_814A7FC
-
- thumb_func_start sub_814A880
-sub_814A880: @ 814A880
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- lsls r1, 24
- lsrs r4, r1, 24
- adds r6, r4, 0
- ldr r1, _0814A8F8 @ =gUnknown_0203A3D0
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814A8C0
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A8FC @ =gSprites
- adds r2, r0, r1
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- adds r0, r2, 0
- adds r0, 0x28
- movs r1, 0
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- strh r5, [r2, 0x20]
- strh r4, [r2, 0x22]
-_0814A8C0:
- ldr r1, _0814A900 @ =gUnknown_0203A3D1
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814A8F2
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A8FC @ =gSprites
- adds r2, r0, r1
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- adds r0, r2, 0
- adds r0, 0x28
- movs r1, 0
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- strh r7, [r2, 0x20]
- strh r6, [r2, 0x22]
-_0814A8F2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A8F8: .4byte gUnknown_0203A3D0
-_0814A8FC: .4byte gSprites
-_0814A900: .4byte gUnknown_0203A3D1
- thumb_func_end sub_814A880
-
- thumb_func_start sub_814A904
-sub_814A904: @ 814A904
- push {lr}
- ldr r1, _0814A94C @ =gUnknown_0203A3D0
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814A926
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A950 @ =gSprites
- adds r0, r1
- adds r2, r0, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0814A926:
- ldr r1, _0814A954 @ =gUnknown_0203A3D1
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814A946
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A950 @ =gSprites
- adds r0, r1
- adds r2, r0, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0814A946:
- pop {r0}
- bx r0
- .align 2, 0
-_0814A94C: .4byte gUnknown_0203A3D0
-_0814A950: .4byte gSprites
-_0814A954: .4byte gUnknown_0203A3D1
- thumb_func_end sub_814A904
-
- thumb_func_start sub_814A958
-sub_814A958: @ 814A958
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- ldr r4, _0814A9C4 @ =gSubspriteTable_203A380
- ldr r2, _0814A9C8 @ =0x0000ffff
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0
- movs r1, 0
- movs r1, 0x2
- str r0, [r4]
- str r1, [r4, 0x4]
- strh r2, [r4]
- adds r4, 0x8
- movs r7, 0x1
- movs r2, 0x1
- ldr r1, [sp]
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _0814AA3A
- ldr r0, _0814A9CC @ =gUnknown_0842F780
- mov r12, r0
- mov r8, r1
- movs r1, 0x8
- negs r1, r1
- mov r10, r1
- ldr r5, _0814A9D0 @ =gUnknown_0842F788
- mov r9, r5
-_0814A99E:
- lsls r0, r3, 16
- asrs r3, r0, 16
- cmp r3, 0x1F
- ble _0814A9D4
- mov r6, r12
- ldr r0, [r6]
- ldr r1, [r6, 0x4]
- str r0, [r4]
- str r1, [r4, 0x4]
- strh r2, [r4]
- lsls r0, r2, 16
- movs r1, 0x80
- lsls r1, 14
- adds r0, r1
- lsrs r2, r0, 16
- ldr r3, [sp]
- lsls r5, r3, 16
- b _0814AA20
- .align 2, 0
-_0814A9C4: .4byte gSubspriteTable_203A380
-_0814A9C8: .4byte 0x0000ffff
-_0814A9CC: .4byte gUnknown_0842F780
-_0814A9D0: .4byte gUnknown_0842F788
-_0814A9D4:
- ldr r6, [sp]
- lsls r5, r6, 16
- mov r0, r8
- cmp r0, 0x27
- ble _0814AA0A
- cmp r3, 0x8
- ble _0814AA0A
- mov r6, r12
- ldr r0, [r6]
- ldr r1, [r6, 0x4]
- str r0, [r4]
- str r1, [r4, 0x4]
- lsls r1, r2, 16
- asrs r1, 16
- adds r2, r1, 0
- subs r2, 0x20
- adds r0, r3, 0
- mov r6, r10
- ands r0, r6
- adds r2, r0
- strh r2, [r4]
- movs r0, 0x18
- ands r0, r3
- adds r1, r0
- lsls r1, 16
- lsrs r2, r1, 16
- b _0814AA20
-_0814AA0A:
- mov r3, r9
- ldr r0, [r3]
- ldr r1, [r3, 0x4]
- str r0, [r4]
- str r1, [r4, 0x4]
- strh r2, [r4]
- lsls r0, r2, 16
- movs r6, 0x80
- lsls r6, 12
- adds r0, r6
- lsrs r2, r0, 16
-_0814AA20:
- adds r4, 0x8
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- asrs r1, r5, 16
- lsls r0, r2, 16
- asrs r0, 16
- subs r1, r0
- lsls r1, 16
- lsrs r3, r1, 16
- asrs r1, 16
- cmp r1, 0x7
- bgt _0814A99E
-_0814AA3A:
- ldr r5, _0814AAA8 @ =gUnknown_0842F790
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- str r0, [r4]
- str r1, [r4, 0x4]
- lsls r1, r2, 16
- asrs r1, 16
- subs r1, 0x7
- lsls r0, r3, 16
- asrs r0, 16
- adds r0, r1
- strh r0, [r4]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r6, _0814AAAC @ =gUnknown_0203A3D0
- ldrb r0, [r6]
- cmp r0, 0x40
- beq _0814AA78
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AAB0 @ =gSprites
- adds r2, r0, r1
- lsls r1, r7, 3
- ldr r0, _0814AAB4 @ =gSubspriteTables_842F5C0
- adds r1, r0
- adds r0, r2, 0
- bl SetSubspriteTables
-_0814AA78:
- ldr r1, _0814AAB8 @ =gUnknown_0203A3D1
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814AA98
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AAB0 @ =gSprites
- adds r2, r0, r1
- lsls r1, r7, 3
- ldr r0, _0814AAB4 @ =gSubspriteTables_842F5C0
- adds r1, r0
- adds r0, r2, 0
- bl SetSubspriteTables
-_0814AA98:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814AAA8: .4byte gUnknown_0842F790
-_0814AAAC: .4byte gUnknown_0203A3D0
-_0814AAB0: .4byte gSprites
-_0814AAB4: .4byte gSubspriteTables_842F5C0
-_0814AAB8: .4byte gUnknown_0203A3D1
- thumb_func_end sub_814A958
-
- thumb_func_start sub_814AABC
-sub_814AABC: @ 814AABC
- push {lr}
- adds r2, r0, 0
- ldr r1, _0814AAEC @ =gUnknown_0203A3D0
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814AAD4
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0814AAF0 @ =gSprites
- adds r1, r0
- str r2, [r1, 0x1C]
-_0814AAD4:
- ldr r1, _0814AAF4 @ =gUnknown_0203A3D1
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814AAE8
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0814AAF0 @ =gSprites
- adds r1, r0
- str r2, [r1, 0x1C]
-_0814AAE8:
- pop {r0}
- bx r0
- .align 2, 0
-_0814AAEC: .4byte gUnknown_0203A3D0
-_0814AAF0: .4byte gSprites
-_0814AAF4: .4byte gUnknown_0203A3D1
- thumb_func_end sub_814AABC
-
- thumb_func_start sub_814AAF8
-sub_814AAF8: @ 814AAF8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- ldr r1, _0814AB70 @ =gUnknown_0203A3D0
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814AB66
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AB74 @ =gSprites
- adds r4, r0, r1
- ldr r0, [r4, 0x14]
- ldrh r1, [r0, 0x2]
- ldr r0, _0814AB78 @ =0x0000ffff
- cmp r1, r0
- bne _0814AB66
- movs r2, 0
- movs r3, 0xF
- movs r1, 0
- ldrb r5, [r4, 0x5]
- ldr r0, _0814AB7C @ =gUnknown_0842F140
- mov r8, r0
- ldr r7, _0814AB80 @ =gPlttBufferUnfaded
- movs r6, 0xF
-_0814AB32:
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- cmp r0, r12
- bne _0814AB46
- lsrs r0, r1, 4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r3, r1, 0
- ands r3, r6
-_0814AB46:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xFF
- bls _0814AB32
- lsls r2, 4
- movs r1, 0xF
- adds r0, r1, 0
- ands r0, r5
- orrs r0, r2
- strb r0, [r4, 0x5]
- ands r3, r1
- lsls r0, r3, 3
- add r0, r8
- bl RequestSpriteSheetCopy
-_0814AB66:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814AB70: .4byte gUnknown_0203A3D0
-_0814AB74: .4byte gSprites
-_0814AB78: .4byte 0x0000ffff
-_0814AB7C: .4byte gUnknown_0842F140
-_0814AB80: .4byte gPlttBufferUnfaded
- thumb_func_end sub_814AAF8
-
- thumb_func_start sub_814AB84
-sub_814AB84: @ 814AB84
- push {r4,r5,lr}
- ldr r5, _0814ABCC @ =gUnknown_0203A3D1
- ldrb r0, [r5]
- cmp r0, 0x40
- beq _0814ABC4
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0814ABD0 @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- movs r0, 0x40
- strb r0, [r5]
- ldr r0, _0814ABD4 @ =gUnknown_0203A3D3
- ldrb r0, [r0]
- cmp r0, 0
- bne _0814ABBC
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _0814ABD8 @ =0x00007fff
- ands r0, r1
- strh r0, [r2]
-_0814ABBC:
- ldr r0, _0814ABDC @ =0x0400004b
- ldr r1, _0814ABE0 @ =gUnknown_0203A3D4
- ldrb r1, [r1]
- strb r1, [r0]
-_0814ABC4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814ABCC: .4byte gUnknown_0203A3D1
-_0814ABD0: .4byte gSprites
-_0814ABD4: .4byte gUnknown_0203A3D3
-_0814ABD8: .4byte 0x00007fff
-_0814ABDC: .4byte 0x0400004b
-_0814ABE0: .4byte gUnknown_0203A3D4
- thumb_func_end sub_814AB84
-
- thumb_func_start unref_sub_814ABE4
-unref_sub_814ABE4: @ 814ABE4
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0814AC40 @ =gUnknown_0842F5BC
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _0814AC44 @ =gSubspriteTable_203A380
- movs r2, 0x28
- bl CpuSet
- ldr r1, _0814AC48 @ =gUnknown_0203A3D0
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814AC18
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AC4C @ =gSprites
- adds r2, r0, r1
- lsls r1, r4, 3
- ldr r0, _0814AC50 @ =gUnknown_0842F758
- adds r1, r0
- adds r0, r2, 0
- bl SetSubspriteTables
-_0814AC18:
- ldr r1, _0814AC54 @ =gUnknown_0203A3D1
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814AC38
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AC4C @ =gSprites
- adds r2, r0, r1
- lsls r1, r4, 3
- ldr r0, _0814AC50 @ =gUnknown_0842F758
- adds r1, r0
- adds r0, r2, 0
- bl SetSubspriteTables
-_0814AC38:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814AC40: .4byte gUnknown_0842F5BC
-_0814AC44: .4byte gSubspriteTable_203A380
-_0814AC48: .4byte gUnknown_0203A3D0
-_0814AC4C: .4byte gSprites
-_0814AC50: .4byte gUnknown_0842F758
-_0814AC54: .4byte gUnknown_0203A3D1
- thumb_func_end unref_sub_814ABE4
-
- thumb_func_start CreateBlendedOutlineCursor
-CreateBlendedOutlineCursor: @ 814AC58
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r4, [sp, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 16
- lsrs r6, r3, 16
- lsls r4, 24
- lsrs r4, 24
- mov r9, r4
- ldr r0, _0814ACF8 @ =gUnknown_0203A3D2
- ldrb r0, [r0]
- cmp r0, 0x40
- beq _0814AC86
- bl sub_814AD44
-_0814AC86:
- movs r4, 0x1
- ldr r0, _0814ACFC @ =0x0000ffff
- cmp r5, r0
- bne _0814ACAC
- ldr r1, _0814AD00 @ =gUnknown_0203A360
- movs r0, 0xF
- ands r0, r7
- lsls r0, 1
- adds r0, r1
- strh r6, [r0]
- ldr r0, _0814AD04 @ =gUnknown_0842F248
- bl LoadSpritePalette
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0814ACAC
- ldr r5, _0814AD08 @ =0x0000fff1
- movs r4, 0
-_0814ACAC:
- movs r6, 0xF
- adds r0, r7, 0
- ands r0, r6
- lsls r0, 3
- ldr r1, _0814AD0C @ =gUnknown_0842F1C0
- adds r0, r1
- bl LoadSpriteSheetDeferred
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r1, _0814AD10 @ =gSpriteTemplate_842F298
- adds r0, r1
- movs r1, 0
- movs r2, 0xA0
- mov r3, r8
- bl CreateSprite
- ldr r1, _0814ACF8 @ =gUnknown_0203A3D2
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0814AD2A
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AD14 @ =gSprites
- adds r4, r0, r1
- ldr r0, _0814ACFC @ =0x0000ffff
- cmp r5, r0
- bne _0814AD18
- ldrb r1, [r4, 0x5]
- adds r0, r6, 0
- ands r0, r1
- strb r0, [r4, 0x5]
- b _0814AD2A
- .align 2, 0
-_0814ACF8: .4byte gUnknown_0203A3D2
-_0814ACFC: .4byte 0x0000ffff
-_0814AD00: .4byte gUnknown_0203A360
-_0814AD04: .4byte gUnknown_0842F248
-_0814AD08: .4byte 0x0000fff1
-_0814AD0C: .4byte gUnknown_0842F1C0
-_0814AD10: .4byte gSpriteTemplate_842F298
-_0814AD14: .4byte gSprites
-_0814AD18:
- adds r0, r5, 0
- bl IndexOfSpritePaletteTag
- lsls r0, 4
- ldrb r2, [r4, 0x5]
- adds r1, r6, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
-_0814AD2A:
- mov r0, r9
- bl sub_814ADF4
- ldr r0, _0814AD40 @ =gUnknown_0203A3D2
- ldrb r0, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0814AD40: .4byte gUnknown_0203A3D2
- thumb_func_end CreateBlendedOutlineCursor
-
- thumb_func_start sub_814AD44
-sub_814AD44: @ 814AD44
- push {r4,lr}
- ldr r4, _0814AD70 @ =gUnknown_0203A3D2
- ldrb r0, [r4]
- cmp r0, 0x40
- beq _0814AD68
- ldr r0, _0814AD74 @ =gUnknown_0842F1C0
- bl LoadTilesForSpriteSheet
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AD78 @ =gSprites
- adds r0, r1
- bl DestroySpriteAndFreeResources
- movs r0, 0x40
- strb r0, [r4]
-_0814AD68:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814AD70: .4byte gUnknown_0203A3D2
-_0814AD74: .4byte gUnknown_0842F1C0
-_0814AD78: .4byte gSprites
- thumb_func_end sub_814AD44
-
- thumb_func_start sub_814AD7C
-sub_814AD7C: @ 814AD7C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r1, _0814ADC0 @ =gUnknown_0203A3D2
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814ADB8
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814ADC4 @ =gSprites
- adds r2, r0, r1
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- adds r0, r2, 0
- adds r0, 0x28
- movs r1, 0
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- strh r5, [r2, 0x20]
- strh r4, [r2, 0x22]
-_0814ADB8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814ADC0: .4byte gUnknown_0203A3D2
-_0814ADC4: .4byte gSprites
- thumb_func_end sub_814AD7C
-
- thumb_func_start sub_814ADC8
-sub_814ADC8: @ 814ADC8
- push {lr}
- ldr r1, _0814ADEC @ =gUnknown_0203A3D2
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814ADE8
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814ADF0 @ =gSprites
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_0814ADE8:
- pop {r0}
- bx r0
- .align 2, 0
-_0814ADEC: .4byte gUnknown_0203A3D2
-_0814ADF0: .4byte gSprites
- thumb_func_end sub_814ADC8
-
- thumb_func_start sub_814ADF4
-sub_814ADF4: @ 814ADF4
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x12
- bls _0814AE00
- movs r2, 0
-_0814AE00:
- ldr r1, _0814AE24 @ =gUnknown_0203A3D2
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814AE1E
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AE28 @ =gSprites
- adds r0, r1
- lsls r1, r2, 3
- ldr r2, _0814AE2C @ =gUnknown_0842F6C0
- adds r1, r2
- bl SetSubspriteTables
-_0814AE1E:
- pop {r0}
- bx r0
- .align 2, 0
-_0814AE24: .4byte gUnknown_0203A3D2
-_0814AE28: .4byte gSprites
-_0814AE2C: .4byte gUnknown_0842F6C0
- thumb_func_end sub_814ADF4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s
index 28f8a2959..0b95b553e 100644
--- a/asm/menu_helpers.s
+++ b/asm/menu_helpers.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -9,7 +9,7 @@
thumb_func_start sub_80F9020
sub_80F9020: @ 80F9020
push {r4,r5,lr}
- ldr r4, _080F9054 @ =gBG1TilemapBuffer
+ ldr r4, _080F9054 @ =gBGTilemapBuffers + 0x800
movs r5, 0x80
lsls r5, 4
adds r0, r4, 0
@@ -31,7 +31,7 @@ sub_80F9020: @ 80F9020
pop {r0}
bx r0
.align 2, 0
-_080F9054: .4byte gBG1TilemapBuffer
+_080F9054: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80F9020
thumb_func_start sav2_get_text_speed
@@ -44,7 +44,7 @@ sav2_get_text_speed: @ 80F9058
bl MenuDisplayMessageBox
cmp r4, 0
beq _080F907C
- ldr r0, _080F908C @ =gBG1TilemapBuffer
+ ldr r0, _080F908C @ =gBGTilemapBuffers + 0x800
movs r1, 0x4
str r1, [sp]
str r4, [sp, 0x4]
@@ -60,7 +60,7 @@ _080F907C:
pop {r0}
bx r0
.align 2, 0
-_080F908C: .4byte gBG1TilemapBuffer
+_080F908C: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sav2_get_text_speed
thumb_func_start sub_80F9090
diff --git a/asm/metatile_behavior.s b/asm/metatile_behavior.s
index 2607b8b3b..f81e3c0d4 100644
--- a/asm/metatile_behavior.s
+++ b/asm/metatile_behavior.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -212,8 +212,8 @@ _08056EA8:
bx r1
thumb_func_end is_tile_x69_2_warp_door
- thumb_func_start sub_8056EAC
-sub_8056EAC: @ 8056EAC
+ thumb_func_start MetatileBehavior_IsDoor
+MetatileBehavior_IsDoor: @ 8056EAC
push {lr}
lsls r0, 24
lsrs r0, 24
@@ -229,7 +229,7 @@ _08056EBE:
_08056EC0:
pop {r1}
bx r1
- thumb_func_end sub_8056EAC
+ thumb_func_end MetatileBehavior_IsDoor
thumb_func_start MetatileBehavior_IsEscalator
MetatileBehavior_IsEscalator: @ 8056EC4
diff --git a/asm/mon_markings.s b/asm/mon_markings.s
index 762135a92..6d5322b91 100644
--- a/asm/mon_markings.s
+++ b/asm/mon_markings.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/money.s b/asm/money.s
index c194bf238..65d8b87a1 100644
--- a/asm/money.s
+++ b/asm/money.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -451,7 +451,7 @@ sub_80B7CE8: @ 80B7CE8
lsls r1, 3
adds r0, r1
ldr r0, [r0]
- ldr r1, _080B7D08 @ =gUnknown_0202E8CE
+ ldr r1, _080B7D08 @ =gSpecialVar_0x8005
ldrh r1, [r1]
bl IsEnoughMoney
lsls r0, 24
@@ -460,21 +460,21 @@ sub_80B7CE8: @ 80B7CE8
bx r1
.align 2, 0
_080B7D04: .4byte gSaveBlock1
-_080B7D08: .4byte gUnknown_0202E8CE
+_080B7D08: .4byte gSpecialVar_0x8005
thumb_func_end sub_80B7CE8
thumb_func_start sub_80B7D0C
sub_80B7D0C: @ 80B7D0C
push {lr}
ldr r0, _080B7D1C @ =gSaveBlock1 + 0x490
- ldr r1, _080B7D20 @ =gUnknown_0202E8CE
+ ldr r1, _080B7D20 @ =gSpecialVar_0x8005
ldrh r1, [r1]
bl sub_80B79E0
pop {r0}
bx r0
.align 2, 0
_080B7D1C: .4byte gSaveBlock1 + 0x490
-_080B7D20: .4byte gUnknown_0202E8CE
+_080B7D20: .4byte gSpecialVar_0x8005
thumb_func_end sub_80B7D0C
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/mori_debug_menu.s b/asm/mori_debug_menu.s
deleted file mode 100644
index 37374b9ea..000000000
--- a/asm/mori_debug_menu.s
+++ /dev/null
@@ -1,322 +0,0 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8083D4C
-sub_8083D4C: @ 8083D4C
- push {lr}
- ldr r0, _08083D60 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08083D64
- movs r0, 0
- b _08083D6A
- .align 2, 0
-_08083D60: .4byte gMain
-_08083D64:
- bl sub_8071C20
- movs r0, 0x1
-_08083D6A:
- pop {r1}
- bx r1
- thumb_func_end sub_8083D4C
-
- thumb_func_start MoriDebugMenu_SearchChild
-MoriDebugMenu_SearchChild: @ 8083D70
- push {r4-r6,lr}
- sub sp, 0x34
- ldr r0, _08083DE4 @ =gPlayerParty
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- bl sub_8041870
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- movs r6, 0xB
- adds r1, r4, 0
- muls r1, r6
- ldr r4, _08083DE8 @ =gSpeciesNames
- adds r1, r4
- mov r0, sp
- bl StringCopy
- ldr r1, _08083DEC @ =gUnknown_0839B24D
- mov r0, sp
- bl StringAppend
- adds r1, r5, 0
- muls r1, r6
- adds r1, r4
- mov r0, sp
- bl StringAppend
- ldr r1, _08083DF0 @ =gUnknown_0839B255
- mov r0, sp
- bl StringAppend
- bl MenuZeroFillScreen
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1E
- movs r3, 0x13
- bl MenuDrawTextWindow
- mov r0, sp
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _08083DF4 @ =gCallback_03004AE8
- ldr r0, _08083DF8 @ =sub_8083D4C
- str r0, [r1]
- movs r0, 0
- add sp, 0x34
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08083DE4: .4byte gPlayerParty
-_08083DE8: .4byte gSpeciesNames
-_08083DEC: .4byte gUnknown_0839B24D
-_08083DF0: .4byte gUnknown_0839B255
-_08083DF4: .4byte gCallback_03004AE8
-_08083DF8: .4byte sub_8083D4C
- thumb_func_end MoriDebugMenu_SearchChild
-
- thumb_func_start MoriDebugMenu_Egg
-MoriDebugMenu_Egg: @ 8083DFC
- push {lr}
- ldr r0, _08083E24 @ =gSaveBlock1 + 0x2F9C
- bl daycare_count_pokemon
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08083E1A
- bl daycare_relationship_score_from_savegame
- lsls r0, 24
- cmp r0, 0
- beq _08083E1A
- bl sub_8041940
-_08083E1A:
- bl sub_8071C20
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_08083E24: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end MoriDebugMenu_Egg
-
- thumb_func_start MoriDebugMenu_MaleEgg
-MoriDebugMenu_MaleEgg: @ 8083E28
- push {lr}
- ldr r0, _08083E50 @ =gSaveBlock1 + 0x2F9C
- bl daycare_count_pokemon
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08083E46
- bl daycare_relationship_score_from_savegame
- lsls r0, 24
- cmp r0, 0
- beq _08083E46
- bl sub_8041950
-_08083E46:
- bl sub_8071C20
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_08083E50: .4byte gSaveBlock1 + 0x2F9C
- thumb_func_end MoriDebugMenu_MaleEgg
-
- thumb_func_start MoriDebugMenu_1000Steps
-MoriDebugMenu_1000Steps: @ 8083E54
- push {lr}
- movs r0, 0xFA
- lsls r0, 2
- bl sub_8041790
- bl sub_8071C20
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end MoriDebugMenu_1000Steps
-
- thumb_func_start MoriDebugMenu_10000Steps
-MoriDebugMenu_10000Steps: @ 8083E68
- push {lr}
- ldr r0, _08083E7C @ =0x00002710
- bl sub_8041790
- bl sub_8071C20
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_08083E7C: .4byte 0x00002710
- thumb_func_end MoriDebugMenu_10000Steps
-
- thumb_func_start MoriDebugMenu_MoveTutor
-MoriDebugMenu_MoveTutor: @ 8083E80
- push {lr}
- bl sub_8132670
- bl sub_8071C20
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end MoriDebugMenu_MoveTutor
-
- thumb_func_start MoriDebugMenu_BreedEgg
-MoriDebugMenu_BreedEgg: @ 8083E90
- push {r4-r6,lr}
- sub sp, 0x4
- movs r5, 0
- movs r6, 0
-_08083E98:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08083EE0 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _08083EBC
- mov r0, sp
- strb r6, [r0]
- adds r0, r4, 0
- movs r1, 0x20
- mov r2, sp
- bl SetMonData
-_08083EBC:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08083E98
- ldr r0, _08083EE4 @ =gSaveBlock1
- ldr r1, _08083EE8 @ =0x000030b6
- adds r0, r1
- movs r1, 0xFD
- strb r1, [r0]
- bl sub_8071C20
- movs r0, 0x1
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08083EE0: .4byte gPlayerParty
-_08083EE4: .4byte gSaveBlock1
-_08083EE8: .4byte 0x000030b6
- thumb_func_end MoriDebugMenu_BreedEgg
-
- thumb_func_start MoriDebugMenu_LongName
-MoriDebugMenu_LongName: @ 8083EEC
- push {lr}
- ldr r0, _08083F04 @ =gPlayerParty
- ldr r2, _08083F08 @ =gUnknown_0839B257
- movs r1, 0x2
- bl SetMonData
- bl sub_8071C20
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_08083F04: .4byte gPlayerParty
-_08083F08: .4byte gUnknown_0839B257
- thumb_func_end MoriDebugMenu_LongName
-
- thumb_func_start MoriDebugMenu_PokeblockCase
-MoriDebugMenu_PokeblockCase: @ 8083F0C
- push {r4,lr}
- movs r4, 0
-_08083F10:
- lsls r0, r4, 24
- lsrs r0, 24
- bl sub_810CA6C
- adds r4, 0x1
- cmp r4, 0x27
- ble _08083F10
- bl sub_8071C20
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end MoriDebugMenu_PokeblockCase
-
- thumb_func_start MoriDebugMenuProcessInput
-MoriDebugMenuProcessInput: @ 8083F2C
- push {lr}
- bl ProcessMenuInput
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _08083F52
- adds r0, 0x1
- cmp r1, r0
- beq _08083F60
- ldr r2, _08083F58 @ =gCallback_03004AE8
- ldr r0, _08083F5C @ =gMoriDebugMenuActions
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2]
-_08083F52:
- movs r0, 0
- b _08083F66
- .align 2, 0
-_08083F58: .4byte gCallback_03004AE8
-_08083F5C: .4byte gMoriDebugMenuActions
-_08083F60:
- bl sub_8071C20
- movs r0, 0x1
-_08083F66:
- pop {r1}
- bx r1
- thumb_func_end MoriDebugMenuProcessInput
-
- thumb_func_start InitMoriDebugMenu
-InitMoriDebugMenu: @ 8083F6C
- push {lr}
- sub sp, 0x8
- bl MenuZeroFillScreen
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r3, _08083FB0 @ =gMoriDebugMenuActions
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x9
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x9
- bl InitMenu
- ldr r1, _08083FB4 @ =gCallback_03004AE8
- ldr r0, _08083FB8 @ =MoriDebugMenuProcessInput
- str r0, [r1]
- movs r0, 0
- add sp, 0x8
- pop {r1}
- bx r1
- .align 2, 0
-_08083FB0: .4byte gMoriDebugMenuActions
-_08083FB4: .4byte gCallback_03004AE8
-_08083FB8: .4byte MoriDebugMenuProcessInput
- thumb_func_end InitMoriDebugMenu
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/mystery_event_menu.s b/asm/mystery_event_menu.s
index ae4a03f93..6331199de 100644
--- a/asm/mystery_event_menu.s
+++ b/asm/mystery_event_menu.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -397,7 +397,7 @@ _08146C64:
_08146C70:
b _08146D7C
_08146C72:
- bl GetBlockRecievedStatus
+ bl GetBlockReceivedStatus
lsls r0, 24
cmp r0, 0
bne _08146C7E
diff --git a/asm/mystery_event_script.s b/asm/mystery_event_script.s
index 057517bb2..4b8717bac 100644
--- a/asm/mystery_event_script.s
+++ b/asm/mystery_event_script.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -631,7 +631,7 @@ sub_81264F0: @ 81264F0
ldrb r1, [r2]
adds r2, 0x1
str r2, [r4, 0x8]
- bl GiveSpecialRibbonToParty
+ bl GiveGiftRibbonToParty
ldr r0, _0812651C @ =gStringVar4
ldr r1, _08126520 @ =gOtherText_SpecialRibbonReceived
bl StringExpandPlaceholders
@@ -822,7 +822,7 @@ _08126680: .4byte gPlayerPartyCount
_08126684: .4byte gStringVar4
_08126688: .4byte gOtherText_PartyIsFull
_0812668C:
- ldr r7, _08126708 @ =gUnknown_03004554
+ ldr r7, _08126708 @ =gPlayerParty + 5 * 0x64
adds r0, r7, 0
adds r1, r5, 0
movs r2, 0x64
@@ -876,7 +876,7 @@ _081266F6:
pop {r1}
bx r1
.align 2, 0
-_08126708: .4byte gUnknown_03004554
+_08126708: .4byte gPlayerParty + 5 * 0x64
_0812670C: .4byte gStringVar4
_08126710: .4byte gOtherText_PokeWasSentOver
thumb_func_end sub_8126608
diff --git a/asm/naming_screen.s b/asm/naming_screen.s
index e8ea18e34..121b44790 100644
--- a/asm/naming_screen.s
+++ b/asm/naming_screen.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/party_menu.s b/asm/party_menu.s
index b63af2e13..8f1d9d5b7 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -803,7 +803,7 @@ sub_806B548: @ 806B548
ldrb r3, [r4]
cmp r3, 0
beq _0806B56E
- ldr r1, _0806B57C @ =gBG2TilemapBuffer
+ ldr r1, _0806B57C @ =gBGTilemapBuffers + 0x1000
ldr r2, _0806B580 @ =0x06003000
ldr r0, _0806B584 @ =0x040000d4
str r1, [r0]
@@ -822,7 +822,7 @@ _0806B56E:
.align 2, 0
_0806B574: .4byte 0x0201b000
_0806B578: .4byte 0x00000261
-_0806B57C: .4byte gBG2TilemapBuffer
+_0806B57C: .4byte gBGTilemapBuffers + 0x1000
_0806B580: .4byte 0x06003000
_0806B584: .4byte 0x040000d4
_0806B588: .4byte 0x80000400
@@ -892,14 +892,14 @@ _0806B5F0:
.4byte _0806B8C6
.4byte _0806B8E8
_0806B614:
- ldr r0, _0806B624 @ =gBG2TilemapBuffer
+ ldr r0, _0806B624 @ =gBGTilemapBuffers + 0x1000
movs r2, 0x80
lsls r2, 4
movs r1, 0
bl memset
b _0806B900
.align 2, 0
-_0806B624: .4byte gBG2TilemapBuffer
+_0806B624: .4byte gBGTilemapBuffers + 0x1000
_0806B628:
ldrb r0, [r4]
ldrb r1, [r4, 0x1]
@@ -982,7 +982,7 @@ _0806B6C2:
lsrs r0, 24
cmp r0, 0x1
bne _0806B6F6
- ldr r0, _0806B6EC @ =gUnknown_03004428
+ ldr r0, _0806B6EC @ =gPlayerParty + 2 * 0x64
movs r1, 0xB
bl GetMonData
cmp r0, 0
@@ -996,7 +996,7 @@ _0806B6C2:
movs r1, 0x2
b _0806B8A8
.align 2, 0
-_0806B6EC: .4byte gUnknown_03004428
+_0806B6EC: .4byte gPlayerParty + 2 * 0x64
_0806B6F0:
ldrb r0, [r4, 0x4]
ldrb r1, [r4, 0x5]
@@ -1049,7 +1049,7 @@ _0806B74A:
lsrs r0, 24
cmp r0, 0x1
bne _0806B77E
- ldr r0, _0806B774 @ =gUnknown_0300448C
+ ldr r0, _0806B774 @ =gPlayerParty + 3 * 0x64
movs r1, 0xB
bl GetMonData
cmp r0, 0
@@ -1063,7 +1063,7 @@ _0806B74A:
movs r1, 0x3
b _0806B8A8
.align 2, 0
-_0806B774: .4byte gUnknown_0300448C
+_0806B774: .4byte gPlayerParty + 3 * 0x64
_0806B778:
ldrb r0, [r4, 0x6]
ldrb r1, [r4, 0x7]
@@ -1117,7 +1117,7 @@ _0806B7D2:
lsrs r0, 24
cmp r0, 0x1
bne _0806B80A
- ldr r0, _0806B800 @ =gUnknown_030044F0
+ ldr r0, _0806B800 @ =gPlayerParty + 4 * 0x64
movs r1, 0xB
bl GetMonData
cmp r0, 0
@@ -1133,7 +1133,7 @@ _0806B7D2:
movs r2, 0x4
b _0806B8AA
.align 2, 0
-_0806B800: .4byte gUnknown_030044F0
+_0806B800: .4byte gPlayerParty + 4 * 0x64
_0806B804:
ldrb r0, [r4, 0x8]
ldrb r1, [r4, 0x9]
@@ -1176,7 +1176,7 @@ _0806B84C:
lsrs r0, 24
cmp r0, 0x1
bne _0806B88E
- ldr r0, _0806B87C @ =gUnknown_03004554
+ ldr r0, _0806B87C @ =gPlayerParty + 5 * 0x64
movs r1, 0xB
bl GetMonData
cmp r0, 0
@@ -1192,7 +1192,7 @@ _0806B84C:
movs r2, 0x4
b _0806B8AA
.align 2, 0
-_0806B87C: .4byte gUnknown_03004554
+_0806B87C: .4byte gPlayerParty + 5 * 0x64
_0806B880:
ldrb r0, [r4, 0xA]
ldrb r1, [r4, 0xB]
@@ -1269,7 +1269,7 @@ _0806B902:
thumb_func_start sub_806B908
sub_806B908: @ 806B908
push {r4,r5,lr}
- ldr r0, _0806B948 @ =gBG2TilemapBuffer
+ ldr r0, _0806B948 @ =gBGTilemapBuffers + 0x1000
movs r2, 0x80
lsls r2, 4
movs r1, 0
@@ -1280,7 +1280,7 @@ sub_806B908: @ 806B908
ldr r0, _0806B950 @ =gUnknown_083769A8
adds r4, r0, 0
adds r4, 0x24
- ldr r5, _0806B954 @ =gUnknown_030043C4
+ ldr r5, _0806B954 @ =gPlayerParty + 1 * 0x64
ldrb r0, [r4]
ldrb r1, [r4, 0x1]
movs r2, 0x3
@@ -1297,10 +1297,10 @@ sub_806B908: @ 806B908
bl sub_806BA94
b _0806B964
.align 2, 0
-_0806B948: .4byte gBG2TilemapBuffer
+_0806B948: .4byte gBGTilemapBuffers + 0x1000
_0806B94C: .4byte gUnknown_0202E8FA
_0806B950: .4byte gUnknown_083769A8
-_0806B954: .4byte gUnknown_030043C4
+_0806B954: .4byte gPlayerParty + 1 * 0x64
_0806B958:
ldrb r0, [r4, 0x4]
ldrb r1, [r4, 0x5]
@@ -1372,7 +1372,7 @@ _0806B9CA:
lsls r0, r1, 5
ldr r4, [sp, 0x4]
adds r6, r4, r0
- ldr r0, _0806BA30 @ =gBG2TilemapBuffer
+ ldr r0, _0806BA30 @ =gBGTilemapBuffers + 0x1000
mov r12, r0
ldr r4, [sp]
lsls r5, r4, 12
@@ -1415,7 +1415,7 @@ _0806BA12:
bx r0
.align 2, 0
_0806BA2C: .4byte gUnknown_083769D8
-_0806BA30: .4byte gBG2TilemapBuffer
+_0806BA30: .4byte gBGTilemapBuffers + 0x1000
thumb_func_end sub_806B9A4
thumb_func_start sub_806BA34
@@ -1440,7 +1440,7 @@ _0806BA48:
lsls r0, r1, 5
mov r5, r8
adds r1, r5, r0
- ldr r6, _0806BA90 @ =gBG2TilemapBuffer
+ ldr r6, _0806BA90 @ =gBGTilemapBuffers + 0x1000
movs r5, 0
_0806BA5E:
adds r0, r3, r2
@@ -1470,7 +1470,7 @@ _0806BA7C:
pop {r0}
bx r0
.align 2, 0
-_0806BA90: .4byte gBG2TilemapBuffer
+_0806BA90: .4byte gBGTilemapBuffers + 0x1000
thumb_func_end sub_806BA34
thumb_func_start sub_806BA94
@@ -1515,7 +1515,7 @@ _0806BACC:
lsls r0, r1, 5
ldr r4, [sp, 0x4]
adds r6, r4, r0
- ldr r0, _0806BB38 @ =gBG2TilemapBuffer
+ ldr r0, _0806BB38 @ =gBGTilemapBuffers + 0x1000
mov r8, r0
ldr r4, [sp]
lsls r5, r4, 12
@@ -1560,7 +1560,7 @@ _0806BB16:
.align 2, 0
_0806BB30: .4byte gUnknown_08376A5E
_0806BB34: .4byte gUnknown_08376A25
-_0806BB38: .4byte gBG2TilemapBuffer
+_0806BB38: .4byte gBGTilemapBuffers + 0x1000
thumb_func_end sub_806BA94
thumb_func_start sub_806BB3C
@@ -1585,7 +1585,7 @@ _0806BB50:
lsls r0, r1, 5
mov r5, r8
adds r1, r5, r0
- ldr r6, _0806BB98 @ =gBG2TilemapBuffer
+ ldr r6, _0806BB98 @ =gBGTilemapBuffers + 0x1000
movs r5, 0
_0806BB66:
adds r0, r3, r2
@@ -1615,7 +1615,7 @@ _0806BB84:
pop {r0}
bx r0
.align 2, 0
-_0806BB98: .4byte gBG2TilemapBuffer
+_0806BB98: .4byte gBGTilemapBuffers + 0x1000
thumb_func_end sub_806BB3C
thumb_func_start sub_806BB9C
@@ -2957,7 +2957,7 @@ _0806C57C:
lsrs r0, 16
cmp r0, 0x1
bls _0806C5E2
- ldr r5, _0806C5B0 @ =gUnknown_03004428
+ ldr r5, _0806C5B0 @ =gPlayerParty + 2 * 0x64
adds r0, r5, 0
movs r1, 0xB
bl GetMonData
@@ -2968,7 +2968,7 @@ _0806C57C:
b _0806C64E
.align 2, 0
_0806C5AC: .4byte gSprites
-_0806C5B0: .4byte gUnknown_03004428
+_0806C5B0: .4byte gPlayerParty + 2 * 0x64
_0806C5B4:
adds r0, r5, 0
adds r0, 0x64
@@ -2999,7 +2999,7 @@ _0806C5E2:
.align 2, 0
_0806C5E8: .4byte gSprites
_0806C5EC:
- ldr r5, _0806C600 @ =gUnknown_030044F0
+ ldr r5, _0806C600 @ =gPlayerParty + 4 * 0x64
adds r0, r5, 0
movs r1, 0xB
bl GetMonData
@@ -3009,7 +3009,7 @@ _0806C5EC:
strh r0, [r4, 0x2E]
b _0806C64E
.align 2, 0
-_0806C600: .4byte gUnknown_030044F0
+_0806C600: .4byte gPlayerParty + 4 * 0x64
_0806C604:
adds r0, r5, 0
adds r0, 0x64
diff --git a/asm/player_pc.s b/asm/player_pc.s
index 83b706fe3..da2792564 100644
--- a/asm/player_pc.s
+++ b/asm/player_pc.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -69,7 +69,7 @@ BedroomPC: @ 8139C74
lsls r0, 24
lsrs r0, 24
ldr r1, _08139CAC @ =gOtherText_WhatWillYouDo
- ldr r2, _08139CB0 @ =sub_8139CF4
+ ldr r2, _08139CB0 @ =InitPlayerPCMenu
movs r3, 0
bl DisplayItemMessageOnField
pop {r0}
@@ -98,7 +98,7 @@ PlayerPC: @ 8139CB4
lsls r0, 24
lsrs r0, 24
ldr r1, _08139CEC @ =gOtherText_WhatWillYouDo
- ldr r2, _08139CF0 @ =sub_8139CF4
+ ldr r2, _08139CF0 @ =InitPlayerPCMenu
movs r3, 0
bl DisplayItemMessageOnField
pop {r0}
@@ -151,7 +151,7 @@ InitPlayerPCMenu: @ 8139CF4
adds r0, r4
lsls r0, 3
adds r0, r1
- ldr r1, _08139D60 @ =sub_8139D64
+ ldr r1, _08139D60 @ =PlayerPCProcessMenuInput
str r1, [r0]
add sp, 0x8
pop {r4,r5}
@@ -260,7 +260,7 @@ ReshowPlayerPC: @ 8139E24
lsls r0, 24
lsrs r0, 24
ldr r1, _08139E38 @ =gOtherText_WhatWillYouDo
- ldr r2, _08139E3C @ =sub_8139CF4
+ ldr r2, _08139E3C @ =InitPlayerPCMenu
movs r3, 0
bl DisplayItemMessageOnField
pop {r0}
@@ -283,7 +283,7 @@ PlayerPC_ItemStorage: @ 8139E40
adds r0, r4
lsls r0, 3
adds r0, r1
- ldr r1, _08139E68 @ =sub_8139FD4
+ ldr r1, _08139E68 @ =ItemStorageMenuProcessInput
str r1, [r0]
pop {r4}
pop {r0}
@@ -311,7 +311,7 @@ PlayerPC_Mailbox: @ 8139E6C
cmp r0, 0
bne _08139EA8
ldr r1, _08139EA0 @ =gOtherText_NoMailHere
- ldr r2, _08139EA4 @ =sub_8139E24
+ ldr r2, _08139EA4 @ =ReshowPlayerPC
adds r0, r4, 0
movs r3, 0
bl DisplayItemMessageOnField
@@ -581,7 +581,7 @@ ItemStorage_Deposit: @ 813A0A0
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r0, _0813A0C4 @ =sub_813A078
+ ldr r0, _0813A0C4 @ =Task_ItemStorage_Deposit
str r0, [r1]
movs r0, 0x1
movs r1, 0
@@ -608,7 +608,7 @@ sub_813A0C8: @ 813A0C8
adds r1, r4
lsls r1, 3
adds r1, r0
- ldr r0, _0813A0F4 @ =sub_8139FD4
+ ldr r0, _0813A0F4 @ =ItemStorageMenuProcessInput
str r0, [r1]
_0813A0E8:
pop {r4}
@@ -682,7 +682,7 @@ _0813A174: .4byte gTasks + 0x8
_0813A178: .4byte sub_813A280
_0813A17C:
ldr r1, _0813A190 @ =gOtherText_NoItems
- ldr r2, _0813A194 @ =sub_8139E40
+ ldr r2, _0813A194 @ =PlayerPC_ItemStorage
adds r0, r5, 0
movs r3, 0
bl DisplayItemMessageOnField
@@ -743,7 +743,7 @@ _0813A1F8: .4byte gTasks + 0x8
_0813A1FC: .4byte sub_813A280
_0813A200:
ldr r1, _0813A214 @ =gOtherText_NoItems
- ldr r2, _0813A218 @ =sub_8139E40
+ ldr r2, _0813A218 @ =PlayerPC_ItemStorage
adds r0, r5, 0
movs r3, 0
bl DisplayItemMessageOnField
@@ -1077,7 +1077,7 @@ sub_813A468: @ 813A468
adds r4, r0
ldrb r0, [r4, 0x14]
bl InitItemStorageMenu
- ldr r0, _0813A4B0 @ =sub_8139FD4
+ ldr r0, _0813A4B0 @ =ItemStorageMenuProcessInput
str r0, [r4]
pop {r4,r5}
pop {r0}
diff --git a/asm/pokedex.s b/asm/pokedex.s
index 0c9f97432..fe069bcf8 100644
--- a/asm/pokedex.s
+++ b/asm/pokedex.s
@@ -1,2718 +1,11 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
.text
- thumb_func_start sub_808F0B4
-sub_808F0B4: @ 808F0B4
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r1, _0808F0D8 @ =gUnknown_0202FFB4
- ldr r0, [r1]
- ldr r2, _0808F0DC @ =0x0000064a
- adds r0, r2
- ldrb r0, [r0]
- adds r7, r1, 0
- cmp r0, 0
- beq _0808F0E0
- cmp r0, 0x3
- beq _0808F0E0
- adds r0, r6, 0
- bl DestroySprite
- b _0808F158
- .align 2, 0
-_0808F0D8: .4byte gUnknown_0202FFB4
-_0808F0DC: .4byte 0x0000064a
-_0808F0E0:
- ldr r0, [r7]
- ldr r5, _0808F160 @ =0x0000062c
- adds r0, r5
- ldrb r1, [r0]
- ldrh r0, [r6, 0x30]
- adds r1, r0
- lsls r1, 24
- lsrs r1, 24
- ldr r4, _0808F164 @ =gSineTable
- lsls r0, r1, 1
- adds r0, r4
- ldrh r3, [r0]
- adds r1, 0x40
- lsls r1, 1
- adds r1, r4
- ldrh r0, [r6, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r1]
- lsls r3, 16
- lsrs r2, r3, 16
- negs r3, r3
- lsrs r3, 16
- str r1, [sp]
- bl SetOamMatrix
- ldr r1, [r7]
- adds r1, r5
- ldrh r0, [r6, 0x30]
- adds r0, 0x40
- ldrb r1, [r1]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r4
- ldrh r3, [r1]
- adds r0, 0x40
- lsls r0, 1
- adds r0, r4
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- cmp r0, 0
- bge _0808F140
- adds r0, 0xFF
-_0808F140:
- asrs r0, 8
- strh r0, [r6, 0x24]
- lsls r1, r3, 16
- asrs r1, 16
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- cmp r0, 0
- bge _0808F154
- adds r0, 0xFF
-_0808F154:
- asrs r0, 8
- strh r0, [r6, 0x26]
-_0808F158:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808F160: .4byte 0x0000062c
-_0808F164: .4byte gSineTable
- thumb_func_end sub_808F0B4
-
- thumb_func_start sub_808F168
-sub_808F168: @ 808F168
- push {r4,lr}
- adds r3, r0, 0
- ldr r1, _0808F188 @ =gUnknown_0202FFB4
- ldr r0, [r1]
- ldr r2, _0808F18C @ =0x0000064a
- adds r0, r2
- ldrb r2, [r0]
- cmp r2, 0
- beq _0808F190
- cmp r2, 0x3
- beq _0808F190
- adds r0, r3, 0
- bl DestroySprite
- b _0808F208
- .align 2, 0
-_0808F188: .4byte gUnknown_0202FFB4
-_0808F18C: .4byte 0x0000064a
-_0808F190:
- ldr r4, [r1]
- ldr r1, _0808F1F0 @ =0x0000064a
- adds r0, r4, r1
- ldrb r0, [r0]
- movs r1, 0x60
- cmp r0, 0
- bne _0808F1A0
- movs r1, 0x50
-_0808F1A0:
- movs r2, 0xCA
- lsls r2, 3
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0808F1FC
- adds r2, 0x4
- adds r0, r4, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, r1
- bne _0808F1FC
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r1, _0808F1F4 @ =0x00000652
- adds r0, r4, r1
- ldrh r0, [r0]
- lsls r0, 4
- strh r0, [r3, 0x26]
- ldr r1, _0808F1F8 @ =gSineTable
- ldrh r2, [r3, 0x32]
- lsls r0, r2, 24
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0808F1E4
- adds r0, 0x3F
-_0808F1E4:
- asrs r0, 6
- strh r0, [r3, 0x24]
- adds r0, r2, 0
- adds r0, 0x8
- strh r0, [r3, 0x32]
- b _0808F208
- .align 2, 0
-_0808F1F0: .4byte 0x0000064a
-_0808F1F4: .4byte 0x00000652
-_0808F1F8: .4byte gSineTable
-_0808F1FC:
- adds r0, r3, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_0808F208:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_808F168
-
- thumb_func_start sub_808F210
-sub_808F210: @ 808F210
- push {r4,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r1, _0808F244 @ =gUnknown_0202FFBC
- str r0, [r1]
- ldr r0, _0808F248 @ =sub_808F2B0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0808F24C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r3, 0
- strh r3, [r1, 0x8]
- movs r2, 0x1
- strh r2, [r1, 0xA]
- strh r3, [r1, 0xC]
- strh r3, [r1, 0xE]
- strh r4, [r1, 0x10]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0808F244: .4byte gUnknown_0202FFBC
-_0808F248: .4byte sub_808F2B0
-_0808F24C: .4byte gTasks
- thumb_func_end sub_808F210
-
- thumb_func_start sub_808F250
-sub_808F250: @ 808F250
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0808F274 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0808F27C
- ldr r1, [r1]
- ldr r0, _0808F278 @ =sub_808F6CC
- cmp r1, r0
- bne _0808F27C
- movs r0, 0
- b _0808F27E
- .align 2, 0
-_0808F274: .4byte gTasks
-_0808F278: .4byte sub_808F6CC
-_0808F27C:
- movs r0, 0x1
-_0808F27E:
- pop {r1}
- bx r1
- thumb_func_end sub_808F250
-
- thumb_func_start sub_808F284
-sub_808F284: @ 808F284
- adds r2, r0, 0
- lsls r0, r1, 24
- lsrs r0, 24
- ldr r1, _0808F2A8 @ =gUnknown_0202FFBC
- str r2, [r1]
- ldr r2, _0808F2AC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r3, 0
- movs r2, 0x1
- strh r2, [r1, 0x8]
- strh r3, [r1, 0xA]
- strh r3, [r1, 0xC]
- strh r3, [r1, 0xE]
- bx lr
- .align 2, 0
-_0808F2A8: .4byte gUnknown_0202FFBC
-_0808F2AC: .4byte gTasks
- thumb_func_end sub_808F284
-
- thumb_func_start sub_808F2B0
-sub_808F2B0: @ 808F2B0
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0808F2D0 @ =gMain
- ldr r2, _0808F2D4 @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0xA
- bhi _0808F308
- lsls r0, 2
- ldr r1, _0808F2D8 @ =_0808F2DC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0808F2D0: .4byte gMain
-_0808F2D4: .4byte 0x0000043c
-_0808F2D8: .4byte _0808F2DC
- .align 2, 0
-_0808F2DC:
- .4byte _0808F308
- .4byte _0808F38C
- .4byte _0808F3D0
- .4byte _0808F3F4
- .4byte _0808F418
- .4byte _0808F52C
- .4byte _0808F578
- .4byte _0808F5D4
- .4byte _0808F614
- .4byte _0808F672
- .4byte _0808F694
-_0808F308:
- ldr r0, _0808F370 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0808F31A
- b _0808F6B6
-_0808F31A:
- ldr r1, _0808F374 @ =gUnknown_0202FFB4
- ldr r0, [r1]
- ldr r3, _0808F378 @ =0x0000064a
- adds r0, r3
- movs r6, 0x1
- strb r6, [r0]
- ldr r0, [r1]
- ldr r1, _0808F37C @ =0x0000064e
- adds r0, r1
- strb r2, [r0]
- ldr r1, _0808F380 @ =gUnknown_03005CEC
- ldr r0, [r5, 0xC]
- str r0, [r1]
- movs r0, 0
- bl SetVBlankCallback
- movs r2, 0
- ldr r1, _0808F384 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0808F352
- movs r2, 0x80
- lsls r2, 5
-_0808F352:
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0808F362
- movs r1, 0x80
- lsls r1, 2
- adds r0, r1, 0
- orrs r2, r0
-_0808F362:
- adds r0, r2, 0
- bl sub_8091060
- ldr r2, _0808F388 @ =0x0000043c
- adds r0, r5, r2
- strb r6, [r0]
- b _0808F6B6
- .align 2, 0
-_0808F370: .4byte gPaletteFade
-_0808F374: .4byte gUnknown_0202FFB4
-_0808F378: .4byte 0x0000064a
-_0808F37C: .4byte 0x0000064e
-_0808F380: .4byte gUnknown_03005CEC
-_0808F384: .4byte gTasks
-_0808F388: .4byte 0x0000043c
-_0808F38C:
- ldr r0, _0808F3B8 @ =gPokedexMenu_Gfx
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _0808F3BC @ =gUnknown_08E96BD4
- ldr r1, _0808F3C0 @ =0x06007800
- bl LZ77UnCompVram
- ldr r0, _0808F3C4 @ =gUnknown_0202FFBC
- ldr r0, [r0]
- ldrh r0, [r0]
- movs r2, 0xFF
- lsls r2, 2
- movs r1, 0x2
- bl sub_8091738
- ldr r1, _0808F3C8 @ =gMain
- ldr r3, _0808F3CC @ =0x0000043c
- adds r1, r3
- b _0808F682
- .align 2, 0
-_0808F3B8: .4byte gPokedexMenu_Gfx
-_0808F3BC: .4byte gUnknown_08E96BD4
-_0808F3C0: .4byte 0x06007800
-_0808F3C4: .4byte gUnknown_0202FFBC
-_0808F3C8: .4byte gMain
-_0808F3CC: .4byte 0x0000043c
-_0808F3D0:
- movs r0, 0xD
- bl sub_80904FC
- ldr r0, _0808F3EC @ =gUnknown_0202FFB4
- ldr r0, [r0]
- ldr r1, _0808F3F0 @ =0x0000064d
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0xD
- bl sub_8090584
- bl sub_808D640
- b _0808F67C
- .align 2, 0
-_0808F3EC: .4byte gUnknown_0202FFB4
-_0808F3F0: .4byte 0x0000064d
-_0808F3F4:
- ldr r4, _0808F40C @ =gWindowConfig_81E7064
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r1, _0808F410 @ =gMain
- ldr r3, _0808F414 @ =0x0000043c
- adds r1, r3
- b _0808F682
- .align 2, 0
-_0808F40C: .4byte gWindowConfig_81E7064
-_0808F410: .4byte gMain
-_0808F414: .4byte 0x0000043c
-_0808F418:
- ldr r0, _0808F440 @ =gUnknown_0202FFB4
- ldr r0, [r0]
- ldr r1, _0808F444 @ =0x00000612
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _0808F44C
- ldr r0, _0808F448 @ =gUnknown_0202FFBC
- ldr r0, [r0]
- ldrh r0, [r0]
- bl NationalToHoennOrder
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- movs r2, 0x3
- bl sub_8091154
- b _0808F45A
- .align 2, 0
-_0808F440: .4byte gUnknown_0202FFB4
-_0808F444: .4byte 0x00000612
-_0808F448: .4byte gUnknown_0202FFBC
-_0808F44C:
- ldr r0, _0808F4F8 @ =gUnknown_0202FFBC
- ldr r0, [r0]
- ldrh r0, [r0]
- movs r1, 0xD
- movs r2, 0x3
- bl sub_8091154
-_0808F45A:
- ldr r5, _0808F4F8 @ =gUnknown_0202FFBC
- ldr r0, [r5]
- ldrh r0, [r0]
- movs r1, 0x10
- movs r2, 0x3
- bl sub_80911C8
- ldr r0, _0808F4FC @ =gDexText_UnknownPoke
- movs r1, 0xB
- movs r2, 0x5
- bl MenuPrint
- ldr r0, _0808F500 @ =gDexText_UnknownHeight
- movs r1, 0x10
- movs r2, 0x7
- bl MenuPrint
- ldr r0, _0808F504 @ =gDexText_UnknownWeight
- movs r1, 0x10
- movs r2, 0x9
- bl MenuPrint
- ldr r2, [r5]
- ldrb r1, [r2, 0x2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0808F50C
- ldrh r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r4, _0808F508 @ =gPokedexEntries
- adds r0, r4
- movs r1, 0xB
- movs r2, 0x5
- bl sub_8091304
- ldr r0, [r5]
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0xC]
- movs r1, 0x10
- movs r2, 0x7
- bl sub_8091458
- ldr r0, [r5]
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0xE]
- movs r1, 0x10
- movs r2, 0x9
- bl sub_8091564
- ldr r0, [r5]
- ldrh r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r4, 0x10
- adds r0, r4
- ldr r0, [r0]
- movs r1, 0x2
- movs r2, 0xD
- bl MenuPrint
- movs r1, 0xFF
- lsls r1, 2
- movs r0, 0xE
- bl sub_80917CC
- b _0808F67C
- .align 2, 0
-_0808F4F8: .4byte gUnknown_0202FFBC
-_0808F4FC: .4byte gDexText_UnknownPoke
-_0808F500: .4byte gDexText_UnknownHeight
-_0808F504: .4byte gDexText_UnknownWeight
-_0808F508: .4byte gPokedexEntries
-_0808F50C:
- ldr r0, _0808F524 @ =gUnknown_083A05F8
- movs r1, 0x2
- movs r2, 0xD
- bl MenuPrint
- ldr r0, _0808F528 @ =gPlttBufferUnfaded + 0x2
- movs r1, 0x31
- movs r2, 0x1E
- bl LoadPalette
- b _0808F67C
- .align 2, 0
-_0808F524: .4byte gUnknown_083A05F8
-_0808F528: .4byte gPlttBufferUnfaded + 0x2
-_0808F52C:
- ldr r0, _0808F56C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r4, r1, r0
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0808F540
- b _0808F67C
-_0808F540:
- ldr r0, _0808F570 @ =gUnknown_0202FFBC
- ldr r0, [r0]
- ldrh r0, [r0]
- movs r1, 0x30
- movs r2, 0x38
- movs r3, 0
- bl sub_80918EC
- strh r0, [r4, 0x10]
- ldr r2, _0808F574 @ =gSprites
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
- b _0808F67C
- .align 2, 0
-_0808F56C: .4byte gTasks
-_0808F570: .4byte gUnknown_0202FFBC
-_0808F574: .4byte gSprites
-_0808F578:
- movs r3, 0
- ldr r0, _0808F5C8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0xC
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0808F58E
- movs r3, 0x14
-_0808F58E:
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0808F5B0
- ldr r2, _0808F5CC @ =gSprites
- movs r0, 0x10
- ldrsh r1, [r1, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- orrs r3, r0
-_0808F5B0:
- mvns r0, r3
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _0808F5D0 @ =gUnknown_03005CEC
- ldr r0, [r0]
- bl SetVBlankCallback
- b _0808F67C
- .align 2, 0
-_0808F5C8: .4byte gTasks
-_0808F5CC: .4byte gSprites
-_0808F5D0: .4byte gUnknown_03005CEC
-_0808F5D4:
- ldr r0, _0808F604 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _0808F608 @ =REG_BG3CNT
- ldr r3, _0808F60C @ =0x00000f03
- adds r0, r3, 0
- strh r0, [r1]
- subs r1, 0x4
- movs r2, 0xD0
- lsls r2, 4
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- movs r3, 0xF2
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _0808F610 @ =0x0000043c
- adds r1, r5, r0
- b _0808F682
- .align 2, 0
-_0808F604: .4byte REG_BLDCNT
-_0808F608: .4byte REG_BG3CNT
-_0808F60C: .4byte 0x00000f03
-_0808F610: .4byte 0x0000043c
-_0808F614:
- ldr r0, _0808F65C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808F6B6
- ldr r1, _0808F660 @ =0x0000043c
- adds r2, r5, r1
- ldrb r0, [r2]
- adds r3, r0, 0x1
- strb r3, [r2]
- ldr r1, _0808F664 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0xE
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0808F66C
- bl StopCryAndClearCrySongs
- ldr r0, _0808F668 @ =gUnknown_0202FFBC
- ldr r0, [r0]
- ldrh r0, [r0]
- bl NationalPokedexNumToSpecies
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- movs r2, 0x7D
- movs r3, 0xA
- bl PlayCry2
- b _0808F6B6
- .align 2, 0
-_0808F65C: .4byte gPaletteFade
-_0808F660: .4byte 0x0000043c
-_0808F664: .4byte gTasks
-_0808F668: .4byte gUnknown_0202FFBC
-_0808F66C:
- adds r0, r3, 0x1
- strb r0, [r2]
- b _0808F6B6
-_0808F672:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- bne _0808F6B6
-_0808F67C:
- ldr r1, _0808F68C @ =gMain
- ldr r2, _0808F690 @ =0x0000043c
- adds r1, r2
-_0808F682:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0808F6B6
- .align 2, 0
-_0808F68C: .4byte gMain
-_0808F690: .4byte 0x0000043c
-_0808F694:
- ldr r1, _0808F6C0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0
- strh r1, [r0, 0x8]
- strh r1, [r0, 0xA]
- movs r1, 0x1
- strh r1, [r0, 0xC]
- strh r1, [r0, 0xE]
- ldr r1, _0808F6C4 @ =sub_808F6CC
- str r1, [r0]
- ldr r3, _0808F6C8 @ =0x0000043c
- adds r0, r5, r3
- strb r2, [r0]
-_0808F6B6:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0808F6C0: .4byte gTasks
-_0808F6C4: .4byte sub_808F6CC
-_0808F6C8: .4byte 0x0000043c
- thumb_func_end sub_808F2B0
-
- thumb_func_start sub_808F6CC
-sub_808F6CC: @ 808F6CC
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0808F704 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- movs r0, 0x8
- ldrsh r4, [r5, r0]
- cmp r4, 0
- beq _0808F70C
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0808F708 @ =sub_808F888
- str r0, [r5]
- movs r0, 0x6C
- bl PlaySE
- b _0808F874
- .align 2, 0
-_0808F704: .4byte gTasks
-_0808F708: .4byte sub_808F888
-_0808F70C:
- ldr r1, _0808F73C @ =gMain
- ldrh r2, [r1, 0x2E]
- movs r6, 0x2
- adds r0, r6, 0
- ands r0, r2
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _0808F744
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0808F740 @ =sub_808F8B8
- str r0, [r5]
- movs r0, 0x3
- bl PlaySE
- b _0808F874
- .align 2, 0
-_0808F73C: .4byte gMain
-_0808F740: .4byte sub_808F8B8
-_0808F744:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _0808F7E8
- ldr r0, _0808F764 @ =gUnknown_0202FFB4
- ldr r0, [r0]
- ldr r1, _0808F768 @ =0x0000064d
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0808F77C
- cmp r0, 0x1
- bgt _0808F76C
- cmp r0, 0
- beq _0808F776
- b _0808F874
- .align 2, 0
-_0808F764: .4byte gUnknown_0202FFB4
-_0808F768: .4byte 0x0000064d
-_0808F76C:
- cmp r0, 0x2
- beq _0808F794
- cmp r0, 0x3
- beq _0808F7AC
- b _0808F874
-_0808F776:
- bl sub_8090C68
- b _0808F874
-_0808F77C:
- movs r0, 0x15
- negs r0, r0
- str r3, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0808F790 @ =sub_808F8D8
- b _0808F7DA
- .align 2, 0
-_0808F790: .4byte sub_808F8D8
-_0808F794:
- movs r0, 0x15
- negs r0, r0
- str r3, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0808F7A8 @ =sub_808FA64
- b _0808F7DA
- .align 2, 0
-_0808F7A8: .4byte sub_808FA64
-_0808F7AC:
- ldr r0, _0808F7C4 @ =gUnknown_0202FFBC
- ldr r0, [r0]
- ldrb r1, [r0, 0x2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _0808F7C8
- movs r0, 0x20
- bl PlaySE
- b _0808F874
- .align 2, 0
-_0808F7C4: .4byte gUnknown_0202FFBC
-_0808F7C8:
- movs r0, 0x15
- negs r0, r0
- str r3, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0808F7E4 @ =sub_8090070
-_0808F7DA:
- str r0, [r5]
- movs r0, 0x15
- bl PlaySE
- b _0808F874
- .align 2, 0
-_0808F7E4: .4byte sub_8090070
-_0808F7E8:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- bne _0808F802
- movs r0, 0x80
- lsls r0, 2
- ands r0, r2
- cmp r0, 0
- beq _0808F834
- ldr r0, _0808F828 @ =gSaveBlock2
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0808F834
-_0808F802:
- ldr r3, _0808F82C @ =gUnknown_0202FFB4
- ldr r0, [r3]
- ldr r4, _0808F830 @ =0x0000064d
- adds r2, r0, r4
- ldrb r0, [r2]
- cmp r0, 0
- beq _0808F834
- subs r0, 0x1
- strb r0, [r2]
- ldr r0, [r3]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0xD
- bl sub_8090584
- movs r0, 0x6D
- bl PlaySE
- b _0808F874
- .align 2, 0
-_0808F828: .4byte gSaveBlock2
-_0808F82C: .4byte gUnknown_0202FFB4
-_0808F830: .4byte 0x0000064d
-_0808F834:
- ldrh r1, [r1, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0808F850
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _0808F874
- ldr r0, _0808F87C @ =gSaveBlock2
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0808F874
-_0808F850:
- ldr r2, _0808F880 @ =gUnknown_0202FFB4
- ldr r0, [r2]
- ldr r3, _0808F884 @ =0x0000064d
- adds r1, r0, r3
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _0808F874
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- movs r1, 0xD
- bl sub_8090584
- movs r0, 0x6D
- bl PlaySE
-_0808F874:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0808F87C: .4byte gSaveBlock2
-_0808F880: .4byte gUnknown_0202FFB4
-_0808F884: .4byte 0x0000064d
- thumb_func_end sub_808F6CC
-
- thumb_func_start sub_808F888
-sub_808F888: @ 808F888
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0808F8AC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808F8A8
- ldr r0, _0808F8B0 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808F8B4 @ =sub_808F2B0
- str r0, [r1]
-_0808F8A8:
- pop {r0}
- bx r0
- .align 2, 0
-_0808F8AC: .4byte gPaletteFade
-_0808F8B0: .4byte gTasks
-_0808F8B4: .4byte sub_808F2B0
- thumb_func_end sub_808F888
-
- thumb_func_start sub_808F8B8
-sub_808F8B8: @ 808F8B8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0808F8D4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808F8D0
- adds r0, r2, 0
- bl DestroyTask
-_0808F8D0:
- pop {r0}
- bx r0
- .align 2, 0
-_0808F8D4: .4byte gPaletteFade
- thumb_func_end sub_808F8B8
-
- thumb_func_start sub_808F8D8
-sub_808F8D8: @ 808F8D8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _0808F92C @ =gMain
- ldr r0, _0808F930 @ =0x0000043c
- adds r6, r2, r0
- ldrb r0, [r6]
- cmp r0, 0x1
- beq _0808F948
- cmp r0, 0x1
- ble _0808F8F2
- cmp r0, 0x2
- beq _0808F970
-_0808F8F2:
- ldr r0, _0808F934 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808F9AA
- ldr r4, _0808F938 @ =gUnknown_0202FFB4
- ldr r0, [r4]
- ldr r1, _0808F93C @ =0x0000064a
- adds r0, r1
- movs r1, 0x5
- strb r1, [r0]
- ldr r1, _0808F940 @ =gUnknown_03005CEC
- ldr r0, [r2, 0xC]
- str r0, [r1]
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x80
- lsls r0, 2
- bl sub_8091060
- ldr r0, [r4]
- ldr r2, _0808F944 @ =0x0000064d
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- strb r1, [r6]
- b _0808F9AA
- .align 2, 0
-_0808F92C: .4byte gMain
-_0808F930: .4byte 0x0000043c
-_0808F934: .4byte gPaletteFade
-_0808F938: .4byte gUnknown_0202FFB4
-_0808F93C: .4byte 0x0000064a
-_0808F940: .4byte gUnknown_03005CEC
-_0808F944: .4byte 0x0000064d
-_0808F948:
- movs r0, 0xD
- bl sub_8090540
- movs r0, 0x1
- movs r1, 0xD
- bl sub_8090644
- bl sub_808D640
- ldr r1, _0808F96C @ =REG_BG1CNT
- movs r2, 0xD0
- lsls r2, 4
- adds r0, r2, 0
- strh r0, [r1]
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- b _0808F9AA
- .align 2, 0
-_0808F96C: .4byte REG_BG1CNT
-_0808F970:
- ldr r0, _0808F9B0 @ =gUnknown_0202FFBC
- ldr r0, [r0]
- ldrh r0, [r0]
- bl NationalPokedexNumToSpecies
- lsls r0, 16
- lsrs r0, 16
- ldr r5, _0808F9B4 @ =gUnknown_0202FFB4
- ldr r1, [r5]
- ldr r4, _0808F9B8 @ =0x0000064f
- adds r1, r4
- bl ShowPokedexAreaScreen
- ldr r0, _0808F9BC @ =gUnknown_03005CEC
- ldr r0, [r0]
- bl SetVBlankCallback
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0
- strb r1, [r0]
- strb r1, [r6]
- ldr r1, _0808F9C0 @ =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808F9C4 @ =sub_808F9C8
- str r1, [r0]
-_0808F9AA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808F9B0: .4byte gUnknown_0202FFBC
-_0808F9B4: .4byte gUnknown_0202FFB4
-_0808F9B8: .4byte 0x0000064f
-_0808F9BC: .4byte gUnknown_03005CEC
-_0808F9C0: .4byte gTasks
-_0808F9C4: .4byte sub_808F9C8
- thumb_func_end sub_808F8D8
-
- thumb_func_start sub_808F9C8
-sub_808F9C8: @ 808F9C8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0808F9F0 @ =gUnknown_0202FFB4
- ldr r0, [r0]
- ldr r1, _0808F9F4 @ =0x0000064f
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0808F9EA
- ldr r0, _0808F9F8 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808F9FC @ =sub_808FA00
- str r0, [r1]
-_0808F9EA:
- pop {r0}
- bx r0
- .align 2, 0
-_0808F9F0: .4byte gUnknown_0202FFB4
-_0808F9F4: .4byte 0x0000064f
-_0808F9F8: .4byte gTasks
-_0808F9FC: .4byte sub_808FA00
- thumb_func_end sub_808F9C8
-
- thumb_func_start sub_808FA00
-sub_808FA00: @ 808FA00
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0808FA34 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0808FA56
- ldr r0, _0808FA38 @ =gUnknown_0202FFB4
- ldr r0, [r0]
- ldr r1, _0808FA3C @ =0x0000064f
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0808FA24
- cmp r0, 0x2
- beq _0808FA48
-_0808FA24:
- ldr r0, _0808FA40 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808FA44 @ =sub_808F2B0
- b _0808FA54
- .align 2, 0
-_0808FA34: .4byte gPaletteFade
-_0808FA38: .4byte gUnknown_0202FFB4
-_0808FA3C: .4byte 0x0000064f
-_0808FA40: .4byte gTasks
-_0808FA44: .4byte sub_808F2B0
-_0808FA48:
- ldr r0, _0808FA5C @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _0808FA60 @ =sub_808FA64
-_0808FA54:
- str r0, [r1]
-_0808FA56:
- pop {r0}
- bx r0
- .align 2, 0
-_0808FA5C: .4byte gTasks
-_0808FA60: .4byte sub_808FA64
- thumb_func_end sub_808FA00
-
- thumb_func_start sub_808FA64
-sub_808FA64: @ 808FA64
- push {r4,r5,lr}
- sub sp, 0x18
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0808FA84 @ =gMain
- ldr r2, _0808FA88 @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0xA
- bhi _0808FABC
- lsls r0, 2
- ldr r1, _0808FA8C @ =_0808FA90
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0808FA84: .4byte gMain
-_0808FA88: .4byte 0x0000043c
-_0808FA8C: .4byte _0808FA90
- .align 2, 0
-_0808FA90:
- .4byte _0808FABC
- .4byte _0808FB28
- .4byte _0808FB58
- .4byte _0808FB9C
- .4byte _0808FBC4
- .4byte _0808FBF8
- .4byte _0808FC54
- .4byte _0808FCD4
- .4byte _0808FD40
- .4byte _0808FD6C
- .4byte _0808FDBC
-_0808FABC:
- ldr r0, _0808FB08 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0808FACA
- b _0808FDDC
-_0808FACA:
- ldr r0, _0808FB0C @ =gMPlay_BGM
- bl m4aMPlayStop
- ldr r5, _0808FB10 @ =gUnknown_0202FFB4
- ldr r0, [r5]
- ldr r3, _0808FB14 @ =0x0000064a
- adds r0, r3
- movs r1, 0x6
- strb r1, [r0]
- ldr r1, _0808FB18 @ =gUnknown_03005CEC
- ldr r4, _0808FB1C @ =gMain
- ldr r0, [r4, 0xC]
- str r0, [r1]
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x80
- lsls r0, 2
- bl sub_8091060
- ldr r0, [r5]
- ldr r1, _0808FB20 @ =0x0000064d
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- ldr r2, _0808FB24 @ =0x0000043c
- adds r4, r2
- movs r0, 0x1
- strb r0, [r4]
- b _0808FDDC
- .align 2, 0
-_0808FB08: .4byte gPaletteFade
-_0808FB0C: .4byte gMPlay_BGM
-_0808FB10: .4byte gUnknown_0202FFB4
-_0808FB14: .4byte 0x0000064a
-_0808FB18: .4byte gUnknown_03005CEC
-_0808FB1C: .4byte gMain
-_0808FB20: .4byte 0x0000064d
-_0808FB24: .4byte 0x0000043c
-_0808FB28:
- ldr r0, _0808FB44 @ =gPokedexMenu_Gfx
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _0808FB48 @ =gUnknown_0839F8A0
- ldr r1, _0808FB4C @ =0x06007000
- bl LZ77UnCompVram
- ldr r1, _0808FB50 @ =gMain
- ldr r3, _0808FB54 @ =0x0000043c
- adds r1, r3
- b _0808FDA0
- .align 2, 0
-_0808FB44: .4byte gPokedexMenu_Gfx
-_0808FB48: .4byte gUnknown_0839F8A0
-_0808FB4C: .4byte 0x06007000
-_0808FB50: .4byte gMain
-_0808FB54: .4byte 0x0000043c
-_0808FB58:
- movs r0, 0xD
- bl sub_8090540
- movs r0, 0x2
- movs r1, 0xD
- bl sub_8090644
- bl sub_808D640
- ldr r2, _0808FB88 @ =0x0600f800
- add r1, sp, 0x4
- movs r0, 0
- strh r0, [r1]
- ldr r0, _0808FB8C @ =0x040000d4
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0808FB90 @ =0x81000280
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r1, _0808FB94 @ =gMain
- ldr r4, _0808FB98 @ =0x0000043c
- adds r1, r4
- b _0808FDA0
- .align 2, 0
-_0808FB88: .4byte 0x0600f800
-_0808FB8C: .4byte 0x040000d4
-_0808FB90: .4byte 0x81000280
-_0808FB94: .4byte gMain
-_0808FB98: .4byte 0x0000043c
-_0808FB9C:
- ldr r4, _0808FBB8 @ =gWindowConfig_81E702C
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl ResetPaletteFade
- ldr r1, _0808FBBC @ =gMain
- ldr r0, _0808FBC0 @ =0x0000043c
- adds r1, r0
- b _0808FDA0
- .align 2, 0
-_0808FBB8: .4byte gWindowConfig_81E702C
-_0808FBBC: .4byte gMain
-_0808FBC0: .4byte 0x0000043c
-_0808FBC4:
- ldr r0, _0808FBE8 @ =gDexText_CryOf
- movs r1, 0xA
- movs r2, 0x4
- bl MenuPrint
- ldr r0, _0808FBEC @ =gUnknown_0202FFBC
- ldr r0, [r0]
- ldrh r0, [r0]
- movs r1, 0xA
- movs r2, 0x6
- movs r3, 0x2
- bl sub_8091260
- ldr r1, _0808FBF0 @ =gMain
- ldr r2, _0808FBF4 @ =0x0000043c
- adds r1, r2
- b _0808FDA0
- .align 2, 0
-_0808FBE8: .4byte gDexText_CryOf
-_0808FBEC: .4byte gUnknown_0202FFBC
-_0808FBF0: .4byte gMain
-_0808FBF4: .4byte 0x0000043c
-_0808FBF8:
- ldr r0, _0808FC3C @ =gUnknown_0202FFBC
- ldr r0, [r0]
- ldrh r0, [r0]
- movs r1, 0x30
- movs r2, 0x38
- movs r3, 0
- bl sub_80918EC
- ldr r2, _0808FC40 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- movs r3, 0
- strh r0, [r1, 0x10]
- ldr r2, _0808FC44 @ =gSprites
- movs r4, 0x10
- ldrsh r0, [r1, r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
- ldr r0, _0808FC48 @ =gUnknown_03005E98
- strb r3, [r0]
- ldr r1, _0808FC4C @ =gMain
- ldr r0, _0808FC50 @ =0x0000043c
- adds r1, r0
- b _0808FDA0
- .align 2, 0
-_0808FC3C: .4byte gUnknown_0202FFBC
-_0808FC40: .4byte gTasks
-_0808FC44: .4byte gSprites
-_0808FC48: .4byte gUnknown_03005E98
-_0808FC4C: .4byte gMain
-_0808FC50: .4byte 0x0000043c
-_0808FC54:
- ldr r1, _0808FCB0 @ =0xffff0000
- ldr r0, [sp, 0x8]
- ands r0, r1
- ldr r1, _0808FCB4 @ =0x00004020
- orrs r0, r1
- ldr r1, _0808FCB8 @ =0xff00ffff
- ands r0, r1
- movs r1, 0xF8
- lsls r1, 13
- orrs r0, r1
- ldr r1, _0808FCBC @ =0x00ffffff
- ands r0, r1
- movs r1, 0x80
- lsls r1, 20
- orrs r0, r1
- str r0, [sp, 0x8]
- ldr r2, _0808FCC0 @ =0xffff00ff
- add r0, sp, 0x8
- ldr r1, [r0, 0x4]
- ands r1, r2
- movs r2, 0xF0
- lsls r2, 5
- orrs r1, r2
- ldr r2, _0808FCC4 @ =0xffffff00
- ands r1, r2
- movs r2, 0xC
- orrs r1, r2
- str r1, [r0, 0x4]
- movs r1, 0
- bl sub_8119E3C
- lsls r0, 24
- cmp r0, 0
- bne _0808FC9A
- b _0808FDDC
-_0808FC9A:
- ldr r1, _0808FCC8 @ =gMain
- ldr r2, _0808FCCC @ =0x0000043c
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r0, _0808FCD0 @ =gUnknown_03005E98
- strb r2, [r0]
- b _0808FDDC
- .align 2, 0
-_0808FCB0: .4byte 0xffff0000
-_0808FCB4: .4byte 0x00004020
-_0808FCB8: .4byte 0xff00ffff
-_0808FCBC: .4byte 0x00ffffff
-_0808FCC0: .4byte 0xffff00ff
-_0808FCC4: .4byte 0xffffff00
-_0808FCC8: .4byte gMain
-_0808FCCC: .4byte 0x0000043c
-_0808FCD0: .4byte gUnknown_03005E98
-_0808FCD4:
- ldr r1, _0808FD24 @ =0xffff0000
- ldr r0, [sp, 0x10]
- ands r0, r1
- movs r1, 0xC0
- lsls r1, 6
- orrs r0, r1
- ldr r1, _0808FD28 @ =0xff00ffff
- ands r0, r1
- movs r1, 0xE0
- lsls r1, 12
- orrs r0, r1
- ldr r1, _0808FD2C @ =0x00ffffff
- ands r0, r1
- movs r1, 0x90
- lsls r1, 20
- orrs r0, r1
- str r0, [sp, 0x10]
- ldr r2, _0808FD30 @ =0xffffff00
- add r0, sp, 0x10
- ldr r1, [r0, 0x4]
- ands r1, r2
- movs r2, 0x12
- orrs r1, r2
- ldr r2, _0808FD34 @ =0xffff00ff
- ands r1, r2
- movs r2, 0xC0
- lsls r2, 2
- orrs r1, r2
- str r1, [r0, 0x4]
- movs r1, 0x1
- bl ShowPokedexCryScreen
- lsls r0, 24
- cmp r0, 0
- beq _0808FDDC
- ldr r1, _0808FD38 @ =gMain
- ldr r3, _0808FD3C @ =0x0000043c
- adds r1, r3
- b _0808FDA0
- .align 2, 0
-_0808FD24: .4byte 0xffff0000
-_0808FD28: .4byte 0xff00ffff
-_0808FD2C: .4byte 0x00ffffff
-_0808FD30: .4byte 0xffffff00
-_0808FD34: .4byte 0xffff00ff
-_0808FD38: .4byte gMain
-_0808FD3C: .4byte 0x0000043c
-_0808FD40:
- movs r0, 0x15
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _0808FD60 @ =gUnknown_03005CEC
- ldr r0, [r0]
- bl SetVBlankCallback
- ldr r1, _0808FD64 @ =gMain
- ldr r4, _0808FD68 @ =0x0000043c
- adds r1, r4
- b _0808FDA0
- .align 2, 0
-_0808FD60: .4byte gUnknown_03005CEC
-_0808FD64: .4byte gMain
-_0808FD68: .4byte 0x0000043c
-_0808FD6C:
- ldr r0, _0808FDA8 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _0808FDAC @ =REG_BG2CNT
- ldr r3, _0808FDB0 @ =0x00000e02
- adds r0, r3, 0
- strh r0, [r1]
- subs r1, 0x4
- ldr r4, _0808FDB4 @ =0x00001f07
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0xD0
- lsls r3, 4
- adds r0, r3, 0
- strh r0, [r1]
- subs r1, 0xA
- adds r4, 0x39
- adds r0, r4, 0
- strh r0, [r1]
- ldr r0, _0808FDB8 @ =0x0000043c
- adds r1, r2, r0
-_0808FDA0:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0808FDDC
- .align 2, 0
-_0808FDA8: .4byte REG_BLDCNT
-_0808FDAC: .4byte REG_BG2CNT
-_0808FDB0: .4byte 0x00000e02
-_0808FDB4: .4byte 0x00001f07
-_0808FDB8: .4byte 0x0000043c
-_0808FDBC:
- ldr r0, _0808FDE4 @ =gUnknown_0202FFB4
- ldr r0, [r0]
- ldr r1, _0808FDE8 @ =0x0000064f
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r3, _0808FDEC @ =0x0000043c
- adds r0, r2, r3
- strb r1, [r0]
- ldr r1, _0808FDF0 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808FDF4 @ =sub_808FDF8
- str r1, [r0]
-_0808FDDC:
- add sp, 0x18
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808FDE4: .4byte gUnknown_0202FFB4
-_0808FDE8: .4byte 0x0000064f
-_0808FDEC: .4byte 0x0000043c
-_0808FDF0: .4byte gTasks
-_0808FDF4: .4byte sub_808FDF8
- thumb_func_end sub_808FA64
-
- thumb_func_start sub_808FDF8
-sub_808FDF8: @ 808FDF8
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- bl sub_8119F88
- bl IsCryPlaying
- lsls r0, 24
- cmp r0, 0
- beq _0808FE18
- movs r0, 0x1
- bl sub_8090040
- b _0808FE1E
-_0808FE18:
- movs r0, 0
- bl sub_8090040
-_0808FE1E:
- ldr r1, _0808FE48 @ =gMain
- ldrh r2, [r1, 0x2E]
- movs r0, 0x1
- ands r0, r2
- adds r5, r1, 0
- cmp r0, 0
- beq _0808FE50
- movs r0, 0x1
- bl sub_8090040
- ldr r0, _0808FE4C @ =gUnknown_0202FFBC
- ldr r0, [r0]
- ldrh r0, [r0]
- bl NationalPokedexNumToSpecies
- lsls r0, 16
- lsrs r0, 16
- bl sub_811A050
- b _0808FF9E
- .align 2, 0
-_0808FE48: .4byte gMain
-_0808FE4C: .4byte gUnknown_0202FFBC
-_0808FE50:
- ldr r0, _0808FEA8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0808FE62
- b _0808FF9E
-_0808FE62:
- movs r0, 0x2
- ands r0, r2
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0
- beq _0808FEC0
- movs r0, 0x15
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0808FEAC @ =gMPlay_BGM
- bl m4aMPlayContinue
- ldr r0, _0808FEB0 @ =gUnknown_0202FFB4
- ldr r0, [r0]
- ldr r1, _0808FEB4 @ =0x0000064f
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, _0808FEB8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808FEBC @ =sub_808FFBC
- str r1, [r0]
- movs r0, 0x3
- bl PlaySE
- b _0808FF9E
- .align 2, 0
-_0808FEA8: .4byte gPaletteFade
-_0808FEAC: .4byte gMPlay_BGM
-_0808FEB0: .4byte gUnknown_0202FFB4
-_0808FEB4: .4byte 0x0000064f
-_0808FEB8: .4byte gTasks
-_0808FEBC: .4byte sub_808FFBC
-_0808FEC0:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- bne _0808FEDA
- movs r0, 0x80
- lsls r0, 2
- ands r0, r2
- cmp r0, 0
- beq _0808FF2C
- ldr r0, _0808FF14 @ =gSaveBlock2
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0808FF2C
-_0808FEDA:
- movs r0, 0x15
- negs r0, r0
- str r3, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0808FF18 @ =gMPlay_BGM
- bl m4aMPlayContinue
- ldr r0, _0808FF1C @ =gUnknown_0202FFB4
- ldr r0, [r0]
- ldr r1, _0808FF20 @ =0x0000064f
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- ldr r1, _0808FF24 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808FF28 @ =sub_808FFBC
- str r1, [r0]
- movs r0, 0x6D
- bl PlaySE
- b _0808FF9E
- .align 2, 0
-_0808FF14: .4byte gSaveBlock2
-_0808FF18: .4byte gMPlay_BGM
-_0808FF1C: .4byte gUnknown_0202FFB4
-_0808FF20: .4byte 0x0000064f
-_0808FF24: .4byte gTasks
-_0808FF28: .4byte sub_808FFBC
-_0808FF2C:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0808FF48
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _0808FF9E
- ldr r0, _0808FF60 @ =gSaveBlock2
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0808FF9E
-_0808FF48:
- ldr r0, _0808FF64 @ =gUnknown_0202FFBC
- ldr r0, [r0]
- ldrb r1, [r0, 0x2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0808FF68
- movs r0, 0x20
- bl PlaySE
- b _0808FF9E
- .align 2, 0
-_0808FF60: .4byte gSaveBlock2
-_0808FF64: .4byte gUnknown_0202FFBC
-_0808FF68:
- movs r0, 0x15
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0808FFA8 @ =gMPlay_BGM
- bl m4aMPlayContinue
- ldr r0, _0808FFAC @ =gUnknown_0202FFB4
- ldr r0, [r0]
- ldr r1, _0808FFB0 @ =0x0000064f
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- ldr r1, _0808FFB4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0808FFB8 @ =sub_808FFBC
- str r1, [r0]
- movs r0, 0x6D
- bl PlaySE
-_0808FF9E:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808FFA8: .4byte gMPlay_BGM
-_0808FFAC: .4byte gUnknown_0202FFB4
-_0808FFB0: .4byte 0x0000064f
-_0808FFB4: .4byte gTasks
-_0808FFB8: .4byte sub_808FFBC
- thumb_func_end sub_808FDF8
-
- thumb_func_start sub_808FFBC
-sub_808FFBC: @ 808FFBC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0808FFF8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08090032
- bl DestroyCryMeterNeedleSprite
- ldr r0, _0808FFFC @ =gUnknown_0202FFB4
- ldr r0, [r0]
- ldr r1, _08090000 @ =0x0000064f
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0809000C
- cmp r0, 0x2
- ble _0808FFE8
- cmp r0, 0x3
- beq _08090024
-_0808FFE8:
- ldr r0, _08090004 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08090008 @ =sub_808F2B0
- b _08090030
- .align 2, 0
-_0808FFF8: .4byte gPaletteFade
-_0808FFFC: .4byte gUnknown_0202FFB4
-_08090000: .4byte 0x0000064f
-_08090004: .4byte gTasks
-_08090008: .4byte sub_808F2B0
-_0809000C:
- ldr r0, _0809001C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08090020 @ =sub_808F8D8
- b _08090030
- .align 2, 0
-_0809001C: .4byte gTasks
-_08090020: .4byte sub_808F8D8
-_08090024:
- ldr r0, _08090038 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0809003C @ =sub_8090070
-_08090030:
- str r0, [r1]
-_08090032:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08090038: .4byte gTasks
-_0809003C: .4byte sub_8090070
- thumb_func_end sub_808FFBC
-
- thumb_func_start sub_8090040
-sub_8090040: @ 8090040
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- cmp r0, 0
- beq _08090054
- ldr r1, _08090050 @ =0x00000392
- b _08090056
- .align 2, 0
-_08090050: .4byte 0x00000392
-_08090054:
- ldr r1, _0809006C @ =0x000002af
-_08090056:
- mov r0, sp
- strh r1, [r0]
- mov r0, sp
- movs r1, 0x5D
- movs r2, 0x2
- bl LoadPalette
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0809006C: .4byte 0x000002af
- thumb_func_end sub_8090040
-
- thumb_func_start sub_8090070
-sub_8090070: @ 8090070
- push {r4,r5,lr}
- sub sp, 0x2C
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _08090090 @ =gMain
- ldr r2, _08090094 @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0x9
- bhi _080900C4
- lsls r0, 2
- ldr r1, _08090098 @ =_0809009C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08090090: .4byte gMain
-_08090094: .4byte 0x0000043c
-_08090098: .4byte _0809009C
- .align 2, 0
-_0809009C:
- .4byte _080900C4
- .4byte _08090120
- .4byte _08090150
- .4byte _08090174
- .4byte _080901C0
- .4byte _080901D4
- .4byte _08090278
- .4byte _08090318
- .4byte _08090344
- .4byte _08090380
-_080900C4:
- ldr r0, _08090108 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080900D2
- b _080903AE
-_080900D2:
- ldr r4, _0809010C @ =gUnknown_0202FFB4
- ldr r0, [r4]
- ldr r1, _08090110 @ =0x0000064a
- adds r0, r1
- movs r1, 0x7
- strb r1, [r0]
- ldr r1, _08090114 @ =gUnknown_03005CEC
- ldr r0, [r5, 0xC]
- str r0, [r1]
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x80
- lsls r0, 2
- bl sub_8091060
- ldr r0, [r4]
- ldr r2, _08090118 @ =0x0000064d
- adds r0, r2
- movs r1, 0x3
- strb r1, [r0]
- ldr r0, _0809011C @ =0x0000043c
- adds r1, r5, r0
- movs r0, 0x1
- strb r0, [r1]
- b _080903AE
- .align 2, 0
-_08090108: .4byte gPaletteFade
-_0809010C: .4byte gUnknown_0202FFB4
-_08090110: .4byte 0x0000064a
-_08090114: .4byte gUnknown_03005CEC
-_08090118: .4byte 0x0000064d
-_0809011C: .4byte 0x0000043c
-_08090120:
- ldr r0, _0809013C @ =gPokedexMenu_Gfx
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08090140 @ =gUnknown_0839F988
- ldr r1, _08090144 @ =0x06007000
- bl LZ77UnCompVram
- ldr r1, _08090148 @ =gMain
- ldr r2, _0809014C @ =0x0000043c
- adds r1, r2
- b _08090368
- .align 2, 0
-_0809013C: .4byte gPokedexMenu_Gfx
-_08090140: .4byte gUnknown_0839F988
-_08090144: .4byte 0x06007000
-_08090148: .4byte gMain
-_0809014C: .4byte 0x0000043c
-_08090150:
- movs r0, 0xD
- bl sub_8090540
- movs r0, 0x3
- movs r1, 0xD
- bl sub_8090644
- bl sub_808D640
- ldr r1, _0809016C @ =gMain
- ldr r0, _08090170 @ =0x0000043c
- adds r1, r0
- b _08090368
- .align 2, 0
-_0809016C: .4byte gMain
-_08090170: .4byte 0x0000043c
-_08090174:
- ldr r4, _080901AC @ =gWindowConfig_81E702C
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- add r1, sp, 0x4
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _080901B0 @ =gDexText_SizeComparedTo
- add r0, sp, 0x4
- bl StringAppend
- ldr r1, _080901B4 @ =gSaveBlock2
- add r0, sp, 0x4
- bl StringAppend
- add r0, sp, 0x4
- movs r1, 0x3
- movs r2, 0xF
- movs r3, 0xC0
- bl sub_8072BD8
- ldr r1, _080901B8 @ =gMain
- ldr r2, _080901BC @ =0x0000043c
- adds r1, r2
- b _08090368
- .align 2, 0
-_080901AC: .4byte gWindowConfig_81E702C
-_080901B0: .4byte gDexText_SizeComparedTo
-_080901B4: .4byte gSaveBlock2
-_080901B8: .4byte gMain
-_080901BC: .4byte 0x0000043c
-_080901C0:
- bl ResetPaletteFade
- ldr r1, _080901CC @ =gMain
- ldr r0, _080901D0 @ =0x0000043c
- adds r1, r0
- b _08090368
- .align 2, 0
-_080901CC: .4byte gMain
-_080901D0: .4byte 0x0000043c
-_080901D4:
- ldr r0, _0809025C @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- movs r1, 0x98
- movs r2, 0x38
- movs r3, 0
- bl sub_8091A4C
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _08090260 @ =gSprites
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r4, r0
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4, 0x3]
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x5]
- ldr r3, _08090264 @ =gPokedexEntries
- ldr r0, _08090268 @ =gUnknown_0202FFBC
- ldr r2, [r0]
- ldrh r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x20]
- strh r0, [r4, 0x26]
- ldrh r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x1E]
- str r1, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldr r0, _0809026C @ =gUnknown_083B4EC4
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _08090270 @ =gMain
- ldr r2, _08090274 @ =0x0000043c
- adds r1, r2
- b _08090368
- .align 2, 0
-_0809025C: .4byte gSaveBlock2
-_08090260: .4byte gSprites
-_08090264: .4byte gPokedexEntries
-_08090268: .4byte gUnknown_0202FFBC
-_0809026C: .4byte gUnknown_083B4EC4
-_08090270: .4byte gMain
-_08090274: .4byte 0x0000043c
-_08090278:
- ldr r5, _08090300 @ =gUnknown_0202FFBC
- ldr r0, [r5]
- ldrh r0, [r0]
- movs r1, 0x58
- movs r2, 0x38
- movs r3, 0x1
- bl sub_80918EC
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _08090304 @ =gSprites
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r4, r0
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4, 0x3]
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x5]
- ldr r3, _08090308 @ =gPokedexEntries
- ldr r2, [r5]
- ldrh r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x1C]
- strh r0, [r4, 0x26]
- ldrh r1, [r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r0, 0x1A]
- str r1, [sp]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldr r0, _0809030C @ =gUnknown_083B4EC4
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _08090310 @ =gMain
- ldr r0, _08090314 @ =0x0000043c
- adds r1, r0
- b _08090368
- .align 2, 0
-_08090300: .4byte gUnknown_0202FFBC
-_08090304: .4byte gSprites
-_08090308: .4byte gPokedexEntries
-_0809030C: .4byte gUnknown_083B4EC4
-_08090310: .4byte gMain
-_08090314: .4byte 0x0000043c
-_08090318:
- movs r0, 0x15
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _08090338 @ =gUnknown_03005CEC
- ldr r0, [r0]
- bl SetVBlankCallback
- ldr r1, _0809033C @ =gMain
- ldr r2, _08090340 @ =0x0000043c
- adds r1, r2
- b _08090368
- .align 2, 0
-_08090338: .4byte gUnknown_03005CEC
-_0809033C: .4byte gMain
-_08090340: .4byte 0x0000043c
-_08090344:
- ldr r0, _08090370 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _08090374 @ =REG_BG2CNT
- ldr r2, _08090378 @ =0x00000e03
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xC
- movs r2, 0xF2
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0809037C @ =0x0000043c
- adds r1, r5, r0
-_08090368:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080903AE
- .align 2, 0
-_08090370: .4byte REG_BLDCNT
-_08090374: .4byte REG_BG2CNT
-_08090378: .4byte 0x00000e03
-_0809037C: .4byte 0x0000043c
-_08090380:
- ldr r0, _080903B8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080903AE
- ldr r0, _080903BC @ =gUnknown_0202FFB4
- ldr r0, [r0]
- ldr r1, _080903C0 @ =0x0000064f
- adds r0, r1
- strb r2, [r0]
- ldr r1, _080903C4 @ =0x0000043c
- adds r0, r5, r1
- strb r2, [r0]
- ldr r1, _080903C8 @ =gTasks
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldr r1, _080903CC @ =sub_80903D0
- str r1, [r0]
-_080903AE:
- add sp, 0x2C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080903B8: .4byte gPaletteFade
-_080903BC: .4byte gUnknown_0202FFB4
-_080903C0: .4byte 0x0000064f
-_080903C4: .4byte 0x0000043c
-_080903C8: .4byte gTasks
-_080903CC: .4byte sub_80903D0
- thumb_func_end sub_8090070
-
- thumb_func_start sub_80903D0
-sub_80903D0: @ 80903D0
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r0, _0809041C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08090430
- movs r0, 0x15
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08090420 @ =gUnknown_0202FFB4
- ldr r0, [r0]
- ldr r1, _08090424 @ =0x0000064f
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, _08090428 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0809042C @ =sub_8090498
- str r1, [r0]
- movs r0, 0x3
- bl PlaySE
- b _0809047A
- .align 2, 0
-_0809041C: .4byte gMain
-_08090420: .4byte gUnknown_0202FFB4
-_08090424: .4byte 0x0000064f
-_08090428: .4byte gTasks
-_0809042C: .4byte sub_8090498
-_08090430:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0809044A
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0809047A
- ldr r0, _08090484 @ =gSaveBlock2
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0809047A
-_0809044A:
- movs r0, 0x15
- negs r0, r0
- str r2, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08090488 @ =gUnknown_0202FFB4
- ldr r0, [r0]
- ldr r1, _0809048C @ =0x0000064f
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- ldr r1, _08090490 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08090494 @ =sub_8090498
- str r1, [r0]
- movs r0, 0x6D
- bl PlaySE
-_0809047A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08090484: .4byte gSaveBlock2
-_08090488: .4byte gUnknown_0202FFB4
-_0809048C: .4byte 0x0000064f
-_08090490: .4byte gTasks
-_08090494: .4byte sub_8090498
- thumb_func_end sub_80903D0
-
- thumb_func_start sub_8090498
-sub_8090498: @ 8090498
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080904CC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080904EE
- ldr r0, _080904D0 @ =gUnknown_0202FFB4
- ldr r0, [r0]
- ldr r1, _080904D4 @ =0x0000064f
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080904BC
- cmp r0, 0x2
- beq _080904E0
-_080904BC:
- ldr r0, _080904D8 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _080904DC @ =sub_808F2B0
- b _080904EC
- .align 2, 0
-_080904CC: .4byte gPaletteFade
-_080904D0: .4byte gUnknown_0202FFB4
-_080904D4: .4byte 0x0000064f
-_080904D8: .4byte gTasks
-_080904DC: .4byte sub_808F2B0
-_080904E0:
- ldr r0, _080904F4 @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _080904F8 @ =sub_808FA64
-_080904EC:
- str r0, [r1]
-_080904EE:
- pop {r0}
- bx r0
- .align 2, 0
-_080904F4: .4byte gTasks
-_080904F8: .4byte sub_808FA64
- thumb_func_end sub_8090498
-
- thumb_func_start sub_80904FC
-sub_80904FC: @ 80904FC
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 16
- ldr r0, _08090530 @ =gUnknown_08E96ACC
- lsrs r4, 5
- movs r2, 0xC0
- lsls r2, 19
- adds r1, r4, r2
- bl LZ77UnCompVram
- ldr r0, _08090534 @ =0x060000c0
- adds r4, r0
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08090538 @ =0x040000d4
- str r1, [r0]
- str r4, [r0, 0x4]
- ldr r1, _0809053C @ =0x81000220
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08090530: .4byte gUnknown_08E96ACC
-_08090534: .4byte 0x060000c0
-_08090538: .4byte 0x040000d4
-_0809053C: .4byte 0x81000220
- thumb_func_end sub_80904FC
-
- thumb_func_start sub_8090540
-sub_8090540: @ 8090540
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 16
- ldr r0, _08090574 @ =gUnknown_08E96B58
- lsrs r4, 5
- movs r2, 0xC0
- lsls r2, 19
- adds r1, r4, r2
- bl LZ77UnCompVram
- ldr r0, _08090578 @ =0x060000c0
- adds r4, r0
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r0, _0809057C @ =0x040000d4
- str r1, [r0]
- str r4, [r0, 0x4]
- ldr r1, _08090580 @ =0x81000220
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08090574: .4byte gUnknown_08E96B58
-_08090578: .4byte 0x060000c0
-_0809057C: .4byte 0x040000d4
-_08090580: .4byte 0x81000220
- thumb_func_end sub_8090540
-
- thumb_func_start sub_8090584
-sub_8090584: @ 8090584
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- movs r1, 0
-_0809059C:
- lsls r0, r1, 2
- adds r0, r1
- adds r0, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- movs r6, 0x80
- lsls r6, 7
- cmp r1, r10
- bne _080905B2
- movs r6, 0x80
- lsls r6, 6
-_080905B2:
- movs r3, 0
- mov r0, r9
- lsls r0, 11
- mov r12, r0
- adds r1, 0x1
- mov r8, r1
- mov r5, r12
- ldr r4, _08090634 @ =0x00000fff
-_080905C2:
- adds r0, r7, r3
- lsls r0, 1
- adds r0, r5, r0
- movs r2, 0xC0
- lsls r2, 19
- adds r1, r0, r2
- ldrh r2, [r1]
- ands r2, r4
- orrs r2, r6
- strh r2, [r1]
- ldr r1, _08090638 @ =0x06000040
- adds r0, r1
- ldrh r2, [r0]
- ands r2, r4
- orrs r2, r6
- strh r2, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x4
- bls _080905C2
- mov r2, r8
- lsls r0, r2, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _0809059C
- movs r6, 0x80
- lsls r6, 7
- movs r3, 0
- mov r5, r12
- ldr r4, _08090634 @ =0x00000fff
-_08090600:
- lsls r0, r3, 1
- adds r0, r5, r0
- ldr r2, _0809063C @ =0x06000032
- adds r1, r0, r2
- ldrh r2, [r1]
- ands r2, r4
- orrs r2, r6
- strh r2, [r1]
- ldr r1, _08090640 @ =0x06000072
- adds r0, r1
- ldrh r2, [r0]
- ands r2, r4
- orrs r2, r6
- strh r2, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x4
- bls _08090600
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08090634: .4byte 0x00000fff
-_08090638: .4byte 0x06000040
-_0809063C: .4byte 0x06000032
-_08090640: .4byte 0x06000072
- thumb_func_end sub_8090584
-
- thumb_func_start sub_8090644
-sub_8090644: @ 8090644
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- movs r1, 0
-_0809065C:
- lsls r0, r1, 2
- adds r0, r1
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r1, r10
- beq _08090670
- cmp r1, 0
- bne _08090676
-_08090670:
- movs r5, 0x80
- lsls r5, 6
- b _0809067A
-_08090676:
- movs r5, 0x80
- lsls r5, 7
-_0809067A:
- movs r3, 0
- mov r0, r9
- lsls r7, r0, 11
- adds r1, 0x1
- mov r12, r1
- adds r6, r7, 0
- ldr r4, _080906FC @ =0x00000fff
-_08090688:
- mov r1, r8
- adds r0, r1, r3
- lsls r0, 1
- adds r0, r6, r0
- movs r2, 0xC0
- lsls r2, 19
- adds r1, r0, r2
- ldrh r2, [r1]
- ands r2, r4
- orrs r2, r5
- strh r2, [r1]
- ldr r1, _08090700 @ =0x06000040
- adds r0, r1
- ldrh r2, [r0]
- ands r2, r4
- orrs r2, r5
- strh r2, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x4
- bls _08090688
- mov r2, r12
- lsls r0, r2, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _0809065C
- movs r5, 0x80
- lsls r5, 7
- movs r3, 0
- adds r6, r7, 0
- ldr r4, _080906FC @ =0x00000fff
-_080906C8:
- lsls r0, r3, 1
- adds r0, r6, r0
- ldr r2, _08090704 @ =0x06000032
- adds r1, r0, r2
- ldrh r2, [r1]
- ands r2, r4
- orrs r2, r5
- strh r2, [r1]
- ldr r1, _08090708 @ =0x06000072
- adds r0, r1
- ldrh r2, [r0]
- ands r2, r4
- orrs r2, r5
- strh r2, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x4
- bls _080906C8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080906FC: .4byte 0x00000fff
-_08090700: .4byte 0x06000040
-_08090704: .4byte 0x06000032
-_08090708: .4byte 0x06000072
- thumb_func_end sub_8090644
-
- thumb_func_start sub_809070C
-sub_809070C: @ 809070C
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08090748 @ =sub_8090750
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0809074C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x8]
- strh r4, [r1, 0xA]
- strh r5, [r1, 0x20]
- lsrs r5, 16
- strh r5, [r1, 0x22]
- strh r6, [r1, 0x24]
- lsrs r6, 16
- strh r6, [r1, 0x26]
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08090748: .4byte sub_8090750
-_0809074C: .4byte gTasks
- thumb_func_end sub_809070C
-
thumb_func_start sub_8090750
sub_8090750: @ 8090750
push {r4-r7,lr}
@@ -3322,7 +615,7 @@ sub_8090C68: @ 8090C68
ands r0, r1
cmp r0, 0
beq _08090D2A
- ldr r5, _08090CD4 @ =gUnknown_0202FFB4
+ ldr r5, _08090CD4 @ =gPokedexView
ldr r0, [r5]
ldr r1, _08090CD8 @ =0x0000064e
adds r0, r1
@@ -3364,7 +657,7 @@ sub_8090C68: @ 8090C68
b _08090D2A
.align 2, 0
_08090CD0: .4byte gUnknown_0202FFBC
-_08090CD4: .4byte gUnknown_0202FFB4
+_08090CD4: .4byte gPokedexView
_08090CD8: .4byte 0x0000064e
_08090CDC: .4byte gPokedexEntries
_08090CE0: .4byte 0x06007aca
@@ -5240,11 +2533,11 @@ sub_8091AF8: @ 8091AF8
lsls r5, 24
lsrs r5, 24
mov r10, r5
- bl sub_808D690
+ bl SortPokedex
movs r5, 0
movs r6, 0
ldr r4, _08091D08 @ =0x00000181
- ldr r3, _08091D0C @ =gUnknown_0202FFB4
+ ldr r3, _08091D0C @ =gPokedexView
_08091B32:
ldr r2, [r3]
lsls r0, r5, 2
@@ -5266,7 +2559,7 @@ _08091B4E:
lsrs r5, r0, 16
cmp r5, r4
bls _08091B32
- ldr r1, _08091D0C @ =gUnknown_0202FFB4
+ ldr r1, _08091D0C @ =gPokedexView
ldr r0, [r1]
ldr r2, _08091D10 @ =0x0000060c
adds r0, r2
@@ -5288,7 +2581,7 @@ _08091B4E:
adds r0, r7
mov r9, r0
_08091B82:
- ldr r1, _08091D0C @ =gUnknown_0202FFB4
+ ldr r1, _08091D0C @ =gPokedexView
ldr r0, [r1]
lsls r4, r5, 2
adds r0, r4
@@ -5329,7 +2622,7 @@ _08091BBA:
cmp r3, r1
bge _08091BE6
_08091BD2:
- ldr r2, _08091D0C @ =gUnknown_0202FFB4
+ ldr r2, _08091D0C @ =gPokedexView
ldr r0, [r2]
lsls r1, r6, 2
adds r1, r0, r1
@@ -5343,7 +2636,7 @@ _08091BE6:
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
- ldr r1, _08091D0C @ =gUnknown_0202FFB4
+ ldr r1, _08091D0C @ =gPokedexView
ldr r0, [r1]
ldr r2, _08091D10 @ =0x0000060c
adds r0, r2
@@ -5351,7 +2644,7 @@ _08091BE6:
cmp r5, r0
bcc _08091B82
_08091BFA:
- ldr r1, _08091D0C @ =gUnknown_0202FFB4
+ ldr r1, _08091D0C @ =gPokedexView
ldr r0, [r1]
ldr r2, _08091D10 @ =0x0000060c
adds r0, r2
@@ -5362,7 +2655,7 @@ _08091C04:
beq _08091C74
movs r5, 0
movs r6, 0
- ldr r1, _08091D0C @ =gUnknown_0202FFB4
+ ldr r1, _08091D0C @ =gPokedexView
ldr r0, [r1]
ldr r2, _08091D10 @ =0x0000060c
adds r0, r2
@@ -5410,7 +2703,7 @@ _08091C58:
cmp r5, r0
bcc _08091C22
_08091C6A:
- ldr r1, _08091D0C @ =gUnknown_0202FFB4
+ ldr r1, _08091D0C @ =gPokedexView
ldr r0, [r1]
ldr r2, _08091D10 @ =0x0000060c
adds r0, r2
@@ -5434,7 +2727,7 @@ _08091C8A:
bne _08091D20
movs r5, 0
movs r6, 0
- ldr r2, _08091D0C @ =gUnknown_0202FFB4
+ ldr r2, _08091D0C @ =gPokedexView
ldr r0, [r2]
ldr r1, _08091D10 @ =0x0000060c
adds r0, r1
@@ -5496,7 +2789,7 @@ _08091CF2:
b _08091D9C
.align 2, 0
_08091D08: .4byte 0x00000181
-_08091D0C: .4byte gUnknown_0202FFB4
+_08091D0C: .4byte gPokedexView
_08091D10: .4byte 0x0000060c
_08091D14: .4byte gUnknown_083B57BC
_08091D18: .4byte gSpeciesNames
@@ -5504,7 +2797,7 @@ _08091D1C: .4byte gBaseStats
_08091D20:
movs r5, 0
movs r6, 0
- ldr r1, _08091E0C @ =gUnknown_0202FFB4
+ ldr r1, _08091E0C @ =gPokedexView
ldr r0, [r1]
ldr r2, _08091E10 @ =0x0000060c
adds r0, r2
@@ -5546,7 +2839,7 @@ _08091D6A:
cmp r0, r1
bne _08091D88
_08091D74:
- ldr r2, _08091E0C @ =gUnknown_0202FFB4
+ ldr r2, _08091E0C @ =gPokedexView
ldr r0, [r2]
lsls r1, r6, 2
adds r1, r0, r1
@@ -5560,7 +2853,7 @@ _08091D88:
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
- ldr r1, _08091E0C @ =gUnknown_0202FFB4
+ ldr r1, _08091E0C @ =gPokedexView
ldr r0, [r1]
ldr r2, _08091E10 @ =0x0000060c
adds r0, r2
@@ -5568,13 +2861,13 @@ _08091D88:
cmp r5, r0
bcc _08091D34
_08091D9C:
- ldr r1, _08091E0C @ =gUnknown_0202FFB4
+ ldr r1, _08091E0C @ =gPokedexView
ldr r0, [r1]
ldr r2, _08091E10 @ =0x0000060c
adds r0, r2
strh r6, [r0]
_08091DA6:
- ldr r1, _08091E0C @ =gUnknown_0202FFB4
+ ldr r1, _08091E0C @ =gPokedexView
ldr r0, [r1]
ldr r2, _08091E10 @ =0x0000060c
adds r1, r0, r2
@@ -5585,7 +2878,7 @@ _08091DA6:
ldr r0, _08091E18 @ =0x00000181
cmp r5, r0
bhi _08091DFA
- ldr r4, _08091E0C @ =gUnknown_0202FFB4
+ ldr r4, _08091E0C @ =gPokedexView
movs r1, 0x2
negs r1, r1
mov r10, r1
@@ -5628,7 +2921,7 @@ _08091DFA:
pop {r1}
bx r1
.align 2, 0
-_08091E0C: .4byte gUnknown_0202FFB4
+_08091E0C: .4byte gPokedexView
_08091E10: .4byte 0x0000060c
_08091E14: .4byte gBaseStats
_08091E18: .4byte 0x00000181
@@ -5706,7 +2999,7 @@ _08091E98:
beq _08091EA6
b _08092030
_08091EA6:
- ldr r0, _08091F20 @ =gUnknown_0202FFB4
+ ldr r0, _08091F20 @ =gPokedexView
ldr r0, [r0]
ldr r1, _08091F24 @ =0x0000064a
adds r0, r1
@@ -5764,7 +3057,7 @@ _08091F10:
b _08092030
.align 2, 0
_08091F1C: .4byte gPaletteFade
-_08091F20: .4byte gUnknown_0202FFB4
+_08091F20: .4byte gPokedexView
_08091F24: .4byte 0x0000064a
_08091F28: .4byte gPokedexMenuSearch_Gfx
_08091F2C: .4byte gUnknown_08E96D2C
@@ -6148,7 +3441,7 @@ _08092230:
ldr r1, _080922B8 @ =gUnknown_0202FFBA
movs r0, 0x40
strb r0, [r1]
- ldr r7, _080922BC @ =gUnknown_0202FFB4
+ ldr r7, _080922BC @ =gPokedexView
ldr r1, [r7]
ldr r0, _080922C0 @ =0x0000062a
adds r2, r1, r0
@@ -6194,7 +3487,7 @@ _08092288:
.align 2, 0
_080922B4: .4byte gTasks
_080922B8: .4byte gUnknown_0202FFBA
-_080922BC: .4byte gUnknown_0202FFB4
+_080922BC: .4byte gPokedexView
_080922C0: .4byte 0x0000062a
_080922C4: .4byte gUnknown_0202FFB8
_080922C8: .4byte gSaveBlock2
@@ -6430,7 +3723,7 @@ sub_80924A4: @ 80924A4
lsls r0, 24
cmp r0, 0
bne _080924F6
- ldr r0, _080924D0 @ =gUnknown_0202FFB4
+ ldr r0, _080924D0 @ =gPokedexView
ldr r0, [r0]
ldr r1, _080924D4 @ =0x0000060c
adds r0, r1
@@ -6443,7 +3736,7 @@ sub_80924A4: @ 80924A4
bl sub_8091E20
b _080924E8
.align 2, 0
-_080924D0: .4byte gUnknown_0202FFB4
+_080924D0: .4byte gPokedexView
_080924D4: .4byte 0x0000060c
_080924D8: .4byte gDexText_SearchComplete
_080924DC:
@@ -6481,7 +3774,7 @@ sub_8092508: @ 8092508
ands r0, r1
cmp r0, 0
beq _080925A4
- ldr r5, _08092574 @ =gUnknown_0202FFB4
+ ldr r5, _08092574 @ =gPokedexView
ldr r1, [r5]
ldr r3, _08092578 @ =0x0000060c
adds r0, r1, r3
@@ -6522,7 +3815,7 @@ sub_8092508: @ 8092508
b _080925A4
.align 2, 0
_08092570: .4byte gMain
-_08092574: .4byte gUnknown_0202FFB4
+_08092574: .4byte gPokedexView
_08092578: .4byte 0x0000060c
_0809257C: .4byte 0x0000064f
_08092580: .4byte 0x00000612
@@ -7681,7 +4974,7 @@ sub_8092EB0: @ 8092EB0
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
- ldr r1, _08092ED0 @ =gUnknown_0202FFB4
+ ldr r1, _08092ED0 @ =gPokedexView
ldr r0, [r1]
ldr r2, _08092ED4 @ =0x00000614
adds r0, r2
@@ -7695,7 +4988,7 @@ _08092ECA:
movs r3, 0
b _08092EDA
.align 2, 0
-_08092ED0: .4byte gUnknown_0202FFB4
+_08092ED0: .4byte gPokedexView
_08092ED4: .4byte 0x00000614
_08092ED8:
movs r3, 0x1
diff --git a/asm/pokedex_area_screen.s b/asm/pokedex_area_screen.s
index 7aba42bfd..bd8db8a2c 100644
--- a/asm/pokedex_area_screen.s
+++ b/asm/pokedex_area_screen.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -13,7 +13,7 @@ UnusedPokedexAreaScreen: @ 8110664
str r1, [r3, 0x4]
str r2, [r3, 0x8]
strh r0, [r3, 0xE]
- ldr r0, _0811067C @ =sub_8110680
+ ldr r0, _0811067C @ =CB2_UnusedPokedexAreaScreen
bl SetMainCallback2
pop {r0}
bx r0
@@ -1761,7 +1761,7 @@ ShowPokedexAreaScreen: @ 81113AC
adds r2, r0
str r1, [r2]
strb r3, [r1]
- ldr r0, _081113E4 @ =sub_81113EC
+ ldr r0, _081113E4 @ =Task_PokedexAreaScreen_0
movs r1, 0
bl CreateTask
lsls r0, 24
@@ -1927,7 +1927,7 @@ _08111528:
adds r0, r5
lsls r0, 3
adds r0, r2
- ldr r1, _0811153C @ =sub_811155C
+ ldr r1, _0811153C @ =Task_PokedexAreaScreen_1
str r1, [r0]
movs r1, 0
strh r1, [r0, 0x8]
diff --git a/asm/pokedex_cry_screen.s b/asm/pokedex_cry_screen.s
index 42c21c16c..bded77228 100644
--- a/asm/pokedex_cry_screen.s
+++ b/asm/pokedex_cry_screen.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/pokenav.s b/asm/pokenav.s
index c324201d5..968386bd1 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/porthole.s b/asm/porthole.s
index 6c880748d..5936433e6 100644
--- a/asm/porthole.s
+++ b/asm/porthole.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/record_mixing.s b/asm/record_mixing.s
index 2df37cb74..1c981d167 100644
--- a/asm/record_mixing.s
+++ b/asm/record_mixing.s
@@ -1,1248 +1,11 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
.text
- thumb_func_start sub_80B929C
-sub_80B929C: @ 80B929C
- push {lr}
- ldr r0, _080B92A8 @ =sub_80B9484
- bl sub_8083A84
- pop {r0}
- bx r0
- .align 2, 0
-_080B92A8: .4byte sub_80B9484
- thumb_func_end sub_80B929C
-
- thumb_func_start sub_80B92AC
-sub_80B92AC: @ 80B92AC
- push {r4-r6,lr}
- bl sub_80BC300
- bl sub_80C045C
- ldr r6, _080B9364 @ =0x02018000
- ldr r0, _080B9368 @ =gUnknown_083D026C
- ldr r1, [r0]
- movs r2, 0xC8
- lsls r2, 4
- adds r0, r6, 0
- bl memcpy
- movs r1, 0xC8
- lsls r1, 4
- adds r0, r6, r1
- ldr r1, _080B936C @ =gUnknown_083D0270
- ldr r1, [r1]
- movs r2, 0xE1
- lsls r2, 2
- bl memcpy
- ldr r2, _080B9370 @ =0x00001004
- adds r0, r6, r2
- ldr r1, _080B9374 @ =gUnknown_083D0274
- ldr r1, [r1]
- movs r2, 0x40
- bl memcpy
- ldr r1, _080B9378 @ =0x00001044
- adds r0, r6, r1
- ldr r1, _080B937C @ =gUnknown_083D0278
- ldr r1, [r1]
- movs r2, 0x40
- bl memcpy
- ldr r2, _080B9380 @ =0x00001084
- adds r0, r6, r2
- ldr r1, _080B9384 @ =gUnknown_083D027C
- ldr r1, [r1]
- movs r2, 0x28
- bl memcpy
- ldr r5, _080B9388 @ =gUnknown_02038738
- ldr r4, _080B938C @ =gSaveBlock1
- ldr r0, _080B9390 @ =0x0000303c
- adds r1, r4, r0
- adds r0, r5, 0
- movs r2, 0x38
- bl memcpy
- ldr r2, _080B9394 @ =0x00003074
- adds r1, r4, r2
- adds r0, r5, 0
- adds r0, 0x38
- movs r2, 0x38
- bl memcpy
- ldr r0, _080B9398 @ =0x00002f9c
- adds r4, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8041324
- ldr r1, _080B939C @ =0x000010ac
- adds r0, r6, r1
- ldr r1, _080B93A0 @ =gUnknown_083D0280
- ldr r1, [r1]
- movs r2, 0x78
- bl memcpy
- ldr r2, _080B93A4 @ =0x00001124
- adds r0, r6, r2
- ldr r1, _080B93A8 @ =gUnknown_083D0284
- ldr r1, [r1]
- movs r2, 0xA4
- bl memcpy
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080B935C
- bl sub_8126338
- ldr r2, _080B93AC @ =0x000011c8
- adds r1, r6, r2
- strh r0, [r1]
-_080B935C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9364: .4byte 0x02018000
-_080B9368: .4byte gUnknown_083D026C
-_080B936C: .4byte gUnknown_083D0270
-_080B9370: .4byte 0x00001004
-_080B9374: .4byte gUnknown_083D0274
-_080B9378: .4byte 0x00001044
-_080B937C: .4byte gUnknown_083D0278
-_080B9380: .4byte 0x00001084
-_080B9384: .4byte gUnknown_083D027C
-_080B9388: .4byte gUnknown_02038738
-_080B938C: .4byte gSaveBlock1
-_080B9390: .4byte 0x0000303c
-_080B9394: .4byte 0x00003074
-_080B9398: .4byte 0x00002f9c
-_080B939C: .4byte 0x000010ac
-_080B93A0: .4byte gUnknown_083D0280
-_080B93A4: .4byte 0x00001124
-_080B93A8: .4byte gUnknown_083D0284
-_080B93AC: .4byte 0x000011c8
- thumb_func_end sub_80B92AC
-
- thumb_func_start sub_80B93B0
-sub_80B93B0: @ 80B93B0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- ldr r5, _080B9430 @ =0x02008000
- ldr r6, _080B9434 @ =0x00001230
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80BD674
- movs r0, 0xC8
- lsls r0, 4
- adds r0, r5
- mov r8, r0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80BFD44
- ldr r1, _080B9438 @ =0x00001004
- adds r0, r5, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80C0514
- ldr r1, _080B943C @ =0x00001044
- adds r0, r5, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80B9B1C
- ldr r1, _080B9440 @ =0x00001084
- adds r0, r5, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80FA4E4
- ldr r1, _080B9444 @ =0x000010ac
- adds r0, r5, r1
- adds r1, r6, 0
- adds r2, r4, 0
- mov r3, r8
- bl sub_80B9C6C
- ldr r1, _080B9448 @ =0x00001124
- adds r0, r5, r1
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_80B9B70
- ldr r0, _080B944C @ =0x000011c8
- adds r5, r0
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80B9F3C
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9430: .4byte 0x02008000
-_080B9434: .4byte 0x00001230
-_080B9438: .4byte 0x00001004
-_080B943C: .4byte 0x00001044
-_080B9440: .4byte 0x00001084
-_080B9444: .4byte 0x000010ac
-_080B9448: .4byte 0x00001124
-_080B944C: .4byte 0x000011c8
- thumb_func_end sub_80B93B0
-
- thumb_func_start sub_80B9450
-sub_80B9450: @ 80B9450
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B9480 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x32
- bne _080B9478
- movs r0, 0xE2
- bl PlaySE
- movs r0, 0
- strh r0, [r4, 0x8]
-_080B9478:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9480: .4byte gTasks
- thumb_func_end sub_80B9450
-
- thumb_func_start sub_80B9484
-sub_80B9484: @ 80B9484
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080B94A8 @ =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bls _080B949E
- b _080B95E6
-_080B949E:
- lsls r0, 2
- ldr r1, _080B94AC @ =_080B94B0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B94A8: .4byte gTasks + 0x8
-_080B94AC: .4byte _080B94B0
- .align 2, 0
-_080B94B0:
- .4byte _080B94C8
- .4byte _080B951C
- .4byte _080B9550
- .4byte _080B9570
- .4byte _080B95AC
- .4byte _080B95C0
-_080B94C8:
- ldr r0, _080B950C @ =gUnknown_0202E8CE
- ldrb r0, [r0]
- bl sub_8007270
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x1
- bl VarSet
- ldr r1, _080B9510 @ =gUnknown_03000718
- movs r0, 0
- strb r0, [r1]
- bl sub_80B92AC
- bl CreateRecordMixingSprite
- movs r0, 0x1
- strh r0, [r4]
- ldr r0, _080B9514 @ =sub_80B95F0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- ldr r0, _080B9518 @ =sub_80B9450
- movs r1, 0x51
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x1E]
- b _080B95E6
- .align 2, 0
-_080B950C: .4byte gUnknown_0202E8CE
-_080B9510: .4byte gUnknown_03000718
-_080B9514: .4byte sub_80B95F0
-_080B9518: .4byte sub_80B9450
-_080B951C:
- ldr r2, _080B9548 @ =gTasks
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _080B95E6
- movs r0, 0x2
- strh r0, [r4]
- ldr r0, _080B954C @ =0x00000834
- bl FlagSet
- bl DestroyRecordMixingSprite
- ldrb r0, [r4, 0x1E]
- bl DestroyTask
- b _080B95E6
- .align 2, 0
-_080B9548: .4byte gTasks
-_080B954C: .4byte 0x00000834
-_080B9550:
- ldr r0, _080B956C @ =sub_80BA00C
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- movs r0, 0x3
- strh r0, [r4]
- movs r0, 0xE0
- bl PlaySE
- b _080B95E6
- .align 2, 0
-_080B956C: .4byte sub_80BA00C
-_080B9570:
- ldr r2, _080B95A4 @ =gTasks
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r5, [r0, 0x4]
- cmp r5, 0
- bne _080B95E6
- movs r0, 0x4
- strh r0, [r4]
- bl sub_8083664
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- bl sub_80720B0
- ldr r0, _080B95A8 @ =gOtherText_MixingComplete
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- strh r5, [r4, 0x10]
- b _080B95E6
- .align 2, 0
-_080B95A4: .4byte gTasks
-_080B95A8: .4byte gOtherText_MixingComplete
-_080B95AC:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080B95E6
- movs r0, 0x5
- strh r0, [r4]
- b _080B95E6
-_080B95C0:
- ldr r2, _080B95EC @ =gTasks
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _080B95E6
- bl sub_8055588
- bl MenuZeroFillScreen
- adds r0, r5, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080B95E6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080B95EC: .4byte gTasks
- thumb_func_end sub_80B9484
-
- thumb_func_start sub_80B95F0
-sub_80B95F0: @ 80B95F0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r7, _080B961C @ =gTasks
- adds r5, r0, r7
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- cmp r1, 0x64
- beq _080B9678
- cmp r1, 0x64
- bgt _080B962E
- cmp r1, 0x1
- bne _080B9612
- b _080B9734
-_080B9612:
- cmp r1, 0x1
- bgt _080B9620
- cmp r1, 0
- beq _080B9650
- b _080B97D6
- .align 2, 0
-_080B961C: .4byte gTasks
-_080B9620:
- cmp r1, 0x2
- bne _080B9626
- b _080B9760
-_080B9626:
- cmp r1, 0x5
- bne _080B962C
- b _080B97C0
-_080B962C:
- b _080B97D6
-_080B962E:
- cmp r1, 0xC9
- beq _080B96D0
- cmp r1, 0xC9
- bgt _080B963C
- cmp r1, 0x65
- beq _080B9690
- b _080B97D6
-_080B963C:
- ldr r0, _080B964C @ =0x0000012d
- cmp r1, r0
- beq _080B9706
- adds r0, 0x63
- cmp r1, r0
- beq _080B971C
- b _080B97D6
- .align 2, 0
-_080B964C: .4byte 0x0000012d
-_080B9650:
- bl sub_80B9A78
- bl MenuDisplayMessageBox
- ldr r0, _080B9674 @ =gOtherText_MixingRecordsWithFriend
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- movs r0, 0xE1
- lsls r0, 3
- strh r0, [r5, 0x18]
- movs r0, 0xC8
- lsls r0, 1
- strh r0, [r5, 0x8]
- bl ClearLinkCallback_2
- b _080B97D6
- .align 2, 0
-_080B9674: .4byte gOtherText_MixingRecordsWithFriend
-_080B9678:
- ldrh r0, [r5, 0x20]
- adds r0, 0x1
- strh r0, [r5, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bgt _080B9688
- b _080B97D6
-_080B9688:
- movs r0, 0
- strh r0, [r5, 0x20]
- movs r0, 0x65
- b _080B97D4
-_080B9690:
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsLinkMaster
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B96C2
- bl sub_800820C
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- beq _080B96B2
- b _080B97D6
-_080B96B2:
- movs r0, 0x15
- bl PlaySE
- movs r1, 0
- movs r0, 0xC9
- strh r0, [r5, 0x8]
- strh r1, [r5, 0x20]
- b _080B97D6
-_080B96C2:
- movs r0, 0x16
- bl PlaySE
- ldr r0, _080B96CC @ =0x0000012d
- b _080B97D4
- .align 2, 0
-_080B96CC: .4byte 0x0000012d
-_080B96D0:
- bl sub_800820C
- adds r4, r0, 0
- bl GetLinkPlayerCount_2
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080B97D6
- ldrh r4, [r5, 0x20]
- adds r4, 0x1
- strh r4, [r5, 0x20]
- lsls r4, 16
- asrs r4, 16
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- cmp r4, r1
- ble _080B97D6
- bl sub_8007F4C
- movs r0, 0x1
- b _080B97D4
-_080B9706:
- bl sub_800820C
- adds r4, r0, 0
- bl GetLinkPlayerCount_2
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080B97D6
- movs r0, 0x1
- b _080B97D4
-_080B971C:
- ldrh r0, [r5, 0x20]
- adds r0, 0x1
- strh r0, [r5, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080B97D6
- movs r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- strh r0, [r5, 0x20]
- b _080B97D6
-_080B9734:
- ldr r0, _080B9758 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B97D6
- ldr r4, _080B975C @ =gStringVar1
- bl sub_80B9A58
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- movs r0, 0x5
- b _080B97D4
- .align 2, 0
-_080B9758: .4byte gReceivedRemoteLinkPlayers
-_080B975C: .4byte gStringVar1
-_080B9760:
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- strh r0, [r5, 0x14]
- strh r1, [r5, 0x8]
- bl sub_80B9A58
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x12]
- ldr r0, _080B97B0 @ =sub_80B97DC
- str r0, [r5]
- ldr r4, _080B97B4 @ =0x02018000
- adds r1, r5, 0
- adds r1, 0xC
- adds r0, r4, 0
- bl sub_80B9A50
- ldr r0, _080B97B8 @ =sub_80B9890
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x1C]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r0, r1, r7
- strh r6, [r0, 0x8]
- ldr r0, _080B97BC @ =0xffff0000
- adds r4, r0
- adds r1, r7, r1
- adds r1, 0x12
- adds r0, r4, 0
- bl sub_80B9A50
- b _080B97D6
- .align 2, 0
-_080B97B0: .4byte sub_80B97DC
-_080B97B4: .4byte 0x02018000
-_080B97B8: .4byte sub_80B9890
-_080B97BC: .4byte 0xffff0000
-_080B97C0:
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _080B97D6
- movs r0, 0
- strh r0, [r5, 0x1C]
- movs r0, 0x2
-_080B97D4:
- strh r0, [r5, 0x8]
-_080B97D6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80B95F0
-
- thumb_func_start sub_80B97DC
-sub_80B97DC: @ 80B97DC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080B9800 @ =gTasks
- adds r4, r1, r0
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- adds r2, r0, 0
- cmp r1, 0x4
- bhi _080B9884
- lsls r0, r1, 2
- ldr r1, _080B9804 @ =_080B9808
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080B9800: .4byte gTasks
-_080B9804: .4byte _080B9808
- .align 2, 0
-_080B9808:
- .4byte _080B981C
- .4byte _080B9840
- .4byte _080B9884
- .4byte _080B9852
- .4byte _080B986E
-_080B981C:
- adds r0, r4, 0
- adds r0, 0xC
- bl sub_80B9A44
- adds r1, r0, 0
- movs r0, 0x10
- ldrsh r2, [r4, r0]
- movs r0, 0xC8
- muls r0, r2
- adds r1, r0
- ldr r0, _080B983C @ =gBlockSendBuffer
- movs r2, 0xC8
- bl memcpy
- b _080B9860
- .align 2, 0
-_080B983C: .4byte gBlockSendBuffer
-_080B9840:
- bl GetMultiplayerId
- lsls r0, 24
- cmp r0, 0
- bne _080B9860
- movs r0, 0x1
- bl sub_8007E9C
- b _080B9860
-_080B9852:
- ldrh r0, [r4, 0x10]
- adds r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x18
- bne _080B9868
-_080B9860:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B9884
-_080B9868:
- movs r0, 0
- strh r0, [r4, 0x8]
- b _080B9884
-_080B986E:
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- bne _080B9884
- ldr r0, _080B988C @ =sub_80B9A1C
- str r0, [r4]
-_080B9884:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B988C: .4byte sub_80B9A1C
- thumb_func_end sub_80B97DC
-
- thumb_func_start sub_80B9890
-sub_80B9890: @ 80B9890
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r0, 2
- ldr r1, [sp]
- adds r0, r1
- lsls r0, 3
- ldr r1, _080B98D0 @ =gTasks
- adds r0, r1
- mov r10, r0
- bl GetBlockRecievedStatus
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r2, 0
- str r2, [sp, 0x8]
- bl sub_8008198
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [sp, 0x4]
- cmp r3, r0
- bne _080B998A
- movs r0, 0
- b _080B9966
- .align 2, 0
-_080B98D0: .4byte gTasks
-_080B98D4:
- ldr r1, [sp, 0x4]
- mov r2, r9
- asrs r1, r2
- movs r0, 0x1
- ands r1, r0
- movs r3, 0x1
- add r3, r9
- mov r8, r3
- cmp r1, 0
- beq _080B9960
- mov r0, r10
- adds r0, 0x12
- bl sub_80B9A44
- mov r1, r8
- lsls r4, r1, 1
- mov r5, r10
- adds r5, 0x8
- adds r4, r5, r4
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0xC8
- muls r1, r3
- adds r0, r1
- ldr r7, _080B9930 @ =0x00001230
- mov r1, r9
- muls r1, r7
- adds r6, r0, r1
- mov r0, r9
- str r3, [sp, 0xC]
- bl sub_80B9A68
- adds r1, r0, 0
- movs r0, 0
- ldrsh r2, [r4, r0]
- adds r0, r2, 0x1
- ldr r3, [sp, 0xC]
- muls r0, r3
- cmp r0, r7
- bls _080B9934
- muls r2, r3
- subs r2, r7, r2
- adds r0, r6, 0
- bl memcpy
- b _080B993C
- .align 2, 0
-_080B9930: .4byte 0x00001230
-_080B9934:
- adds r0, r6, 0
- movs r2, 0xC8
- bl memcpy
-_080B993C:
- mov r0, r9
- bl ResetBlockReceivedFlag
- mov r2, r8
- lsls r1, r2, 1
- adds r1, r5, r1
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x18
- bne _080B9960
- ldr r0, [sp, 0x8]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
-_080B9960:
- mov r3, r8
- lsls r0, r3, 24
- lsrs r0, 24
-_080B9966:
- mov r9, r0
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r9, r0
- bcc _080B98D4
- ldr r2, _080B99B0 @ =gTasks
- mov r0, r10
- movs r3, 0x8
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
-_080B998A:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp, 0x8]
- cmp r1, r0
- bne _080B999E
- ldr r0, [sp]
- bl DestroyTask
-_080B999E:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080B99B0: .4byte gTasks
- thumb_func_end sub_80B9890
-
- thumb_func_start sub_80B99B4
-sub_80B99B4: @ 80B99B4
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r2, _080B99E4 @ =gTasks
- adds r0, r2
- movs r4, 0x1C
- ldrsh r1, [r0, r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _080B99DC
- adds r0, r3, 0
- bl DestroyTask
-_080B99DC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B99E4: .4byte gTasks
- thumb_func_end sub_80B99B4
-
- thumb_func_start sub_80B99E8
-sub_80B99E8: @ 80B99E8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080B9A10 @ =gTasks
- adds r1, r0
- ldr r0, _080B9A14 @ =sub_80B99B4
- str r0, [r1]
- ldr r0, _080B9A18 @ =gUnknown_03000718
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080B9A0C
- movs r2, 0x12
- ldrsh r0, [r1, r2]
- bl sub_80B93B0
-_080B9A0C:
- pop {r0}
- bx r0
- .align 2, 0
-_080B9A10: .4byte gTasks
-_080B9A14: .4byte sub_80B99B4
-_080B9A18: .4byte gUnknown_03000718
- thumb_func_end sub_80B99E8
-
- thumb_func_start sub_80B9A1C
-sub_80B9A1C: @ 80B9A1C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080B9A38 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080B9A3C @ =sub_80B99E8
- str r0, [r1]
- ldr r1, _080B9A40 @ =gUnknown_03000718
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080B9A38: .4byte gTasks
-_080B9A3C: .4byte sub_80B99E8
-_080B9A40: .4byte gUnknown_03000718
- thumb_func_end sub_80B9A1C
-
- thumb_func_start sub_80B9A44
-sub_80B9A44: @ 80B9A44
- adds r1, r0, 0
- ldrh r0, [r1]
- ldrh r1, [r1, 0x2]
- lsls r1, 16
- orrs r0, r1
- bx lr
- thumb_func_end sub_80B9A44
-
- thumb_func_start sub_80B9A50
-sub_80B9A50: @ 80B9A50
- strh r0, [r1]
- lsrs r0, 16
- strh r0, [r1, 0x2]
- bx lr
- thumb_func_end sub_80B9A50
-
- thumb_func_start sub_80B9A58
-sub_80B9A58: @ 80B9A58
- push {lr}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_80B9A58
-
- thumb_func_start sub_80B9A68
-sub_80B9A68: @ 80B9A68
- lsls r0, 24
- lsrs r0, 16
- ldr r1, _080B9A74 @ =gBlockRecvBuffer
- adds r0, r1
- bx lr
- .align 2, 0
-_080B9A74: .4byte gBlockRecvBuffer
- thumb_func_end sub_80B9A68
-
- thumb_func_start sub_80B9A78
-sub_80B9A78: @ 80B9A78
- ldr r1, _080B9A80 @ =gUnknown_03005D2C
- ldr r0, _080B9A84 @ =0x00001230
- str r0, [r1]
- bx lr
- .align 2, 0
-_080B9A80: .4byte gUnknown_03005D2C
-_080B9A84: .4byte 0x00001230
- thumb_func_end sub_80B9A78
-
- thumb_func_start sub_80B9A88
-sub_80B9A88: @ 80B9A88
- push {r4,lr}
- adds r4, r0, 0
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _080B9AC0
- cmp r0, 0x3
- bhi _080B9AA2
- cmp r0, 0x2
- beq _080B9AA8
- b _080B9B10
-_080B9AA2:
- cmp r0, 0x4
- beq _080B9AEC
- b _080B9B10
-_080B9AA8:
- movs r2, 0
- ldr r3, _080B9ABC @ =gUnknown_083D0288
-_080B9AAC:
- adds r0, r4, r2
- adds r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x1
- bls _080B9AAC
- b _080B9B10
- .align 2, 0
-_080B9ABC: .4byte gUnknown_083D0288
-_080B9AC0:
- movs r0, 0
- bl GetLinkPlayerTrainerId
- adds r3, r0, 0
- movs r0, 0x1
- ands r3, r0
- movs r2, 0
- ldr r1, _080B9AE8 @ =gUnknown_083D028A
- lsls r0, r3, 1
- adds r0, r3
- adds r3, r0, r1
-_080B9AD6:
- adds r1, r4, r2
- ldrb r0, [r3]
- strb r0, [r1]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x2
- bls _080B9AD6
- b _080B9B10
- .align 2, 0
-_080B9AE8: .4byte gUnknown_083D028A
-_080B9AEC:
- movs r0, 0
- bl GetLinkPlayerTrainerId
- movs r1, 0x9
- bl __umodsi3
- adds r3, r0, 0
- movs r2, 0
- ldr r1, _080B9B18 @ =gUnknown_083D0290
- lsls r0, r3, 2
- adds r3, r0, r1
-_080B9B02:
- adds r1, r4, r2
- ldrb r0, [r3]
- strb r0, [r1]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x3
- bls _080B9B02
-_080B9B10:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9B18: .4byte gUnknown_083D0290
- thumb_func_end sub_80B9A88
-
- thumb_func_start sub_80B9B1C
-sub_80B9B1C: @ 80B9B1C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- adds r5, r0, 0
- mov r8, r1
- lsls r4, r2, 24
- lsrs r4, 24
- mov r0, sp
- bl sub_80B9A88
- mov r0, r8
- muls r0, r4
- adds r0, r5, r0
- ldr r1, _080B9B6C @ =gUnknown_083D0278
- ldr r6, [r1]
- adds r1, r6, 0
- movs r2, 0x40
- bl memcpy
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r5, r0
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x40
- bl memcpy
- bl sub_80F7F30
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9B6C: .4byte gUnknown_083D0278
- thumb_func_end sub_80B9B1C
-
- thumb_func_start sub_80B9B70
-sub_80B9B70: @ 80B9B70
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- adds r6, r0, 0
- mov r9, r1
- lsls r4, r2, 24
- lsrs r4, 24
- ldr r0, _080B9BB8 @ =gUnknown_0300071C
- mov r8, r0
- bl sub_80B9A88
- mov r5, r9
- muls r5, r4
- adds r5, r6, r5
- add r4, r8
- ldrb r0, [r4]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- adds r6, r0
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0xA4
- bl memcpy
- adds r0, r5, 0
- bl sub_8134AC0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080B9BB8: .4byte gUnknown_0300071C
- thumb_func_end sub_80B9B70
-
- thumb_func_start sub_80B9BBC
-sub_80B9BBC: @ 80B9BBC
- ldrh r0, [r0, 0x20]
- lsls r0, 24
- lsrs r0, 24
- bx lr
- thumb_func_end sub_80B9BBC
-
- thumb_func_start sub_80B9BC4
-sub_80B9BC4: @ 80B9BC4
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x38
- mov r8, r0
- mov r10, r1
- mov r9, r2
- adds r4, r3, 0
- ldr r5, [sp, 0x54]
- lsls r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsrs r4, 23
- add r4, r9
- ldrb r0, [r4]
- mov r6, r10
- muls r6, r0
- add r6, r8
- ldrb r0, [r4, 0x1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 3
- adds r1, r6, r1
- mov r0, sp
- movs r2, 0x38
- bl memcpy
- lsls r5, 1
- add r5, r9
- ldrb r0, [r5]
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- add r8, r0
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 3
- adds r6, r0
- ldrb r0, [r5, 0x1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 3
- add r1, r8
- adds r0, r6, 0
- movs r2, 0x38
- bl memcpy
- ldrb r1, [r5, 0x1]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 3
- add r8, r0
- mov r0, r8
- mov r1, sp
- movs r2, 0x38
- bl memcpy
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80B9BC4
-
- thumb_func_start sub_80B9C4C
-sub_80B9C4C: @ 80B9C4C
- push {lr}
- adds r3, r0, 0
- movs r2, 0
- movs r1, 0
-_080B9C54:
- adds r0, r3, r1
- ldrb r0, [r0]
- adds r0, r2, r0
- lsls r0, 24
- lsrs r2, r0, 24
- adds r1, 0x1
- cmp r1, 0xFF
- ble _080B9C54
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80B9C4C
-
thumb_func_start sub_80B9C6C
sub_80B9C6C: @ 80B9C6C
push {r4-r7,lr}
diff --git a/asm/region_map.s b/asm/region_map.s
index 373b20d97..61449ba53 100644
--- a/asm/region_map.s
+++ b/asm/region_map.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/reset_rtc_screen.s b/asm/reset_rtc_screen.s
new file mode 100644
index 000000000..082ebf465
--- /dev/null
+++ b/asm/reset_rtc_screen.s
@@ -0,0 +1,1300 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start SpriteCB_ResetRtcCusor0
+SpriteCB_ResetRtcCusor0: @ 806A480
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, _0806A4B0 @ =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0xC
+ ldrsh r1, [r0, r2]
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r1, r0
+ beq _0806A596
+ strh r1, [r3, 0x30]
+ subs r0, r1, 0x1
+ cmp r0, 0x5
+ bhi _0806A596
+ lsls r0, 2
+ ldr r1, _0806A4B4 @ =_0806A4B8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806A4B0: .4byte gTasks
+_0806A4B4: .4byte _0806A4B8
+ .align 2, 0
+_0806A4B8:
+ .4byte _0806A4D0
+ .4byte _0806A4F4
+ .4byte _0806A518
+ .4byte _0806A53C
+ .4byte _0806A566
+ .4byte _0806A590
+_0806A4D0:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r1, r3, 0
+ adds r1, 0x2A
+ movs r0, 0x1
+ strb r0, [r1]
+ subs r2, 0x12
+ ldrb r1, [r2]
+ subs r0, 0x41
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x35
+ b _0806A55E
+_0806A4F4:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r1, r3, 0
+ adds r1, 0x2A
+ movs r0, 0x1
+ strb r0, [r1]
+ subs r2, 0x12
+ ldrb r1, [r2]
+ subs r0, 0x41
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x56
+ b _0806A55E
+_0806A518:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r1, r3, 0
+ adds r1, 0x2A
+ movs r0, 0x1
+ strb r0, [r1]
+ subs r2, 0x12
+ ldrb r1, [r2]
+ subs r0, 0x41
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x6B
+ b _0806A55E
+_0806A53C:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r1, r3, 0
+ adds r1, 0x2A
+ movs r0, 0x1
+ strb r0, [r1]
+ subs r2, 0x12
+ ldrb r1, [r2]
+ subs r0, 0x41
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x80
+_0806A55E:
+ strh r0, [r3, 0x20]
+ movs r0, 0x44
+ strh r0, [r3, 0x22]
+ b _0806A596
+_0806A566:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r1, r3, 0
+ adds r1, 0x2A
+ movs r0, 0x2
+ 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 _0806A596
+_0806A590:
+ adds r0, r3, 0
+ bl DestroySprite
+_0806A596:
+ pop {r0}
+ bx r0
+ thumb_func_end SpriteCB_ResetRtcCusor0
+
+ thumb_func_start SpriteCB_ResetRtcCusor1
+SpriteCB_ResetRtcCusor1: @ 806A59C
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, _0806A5CC @ =gTasks
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0xC
+ ldrsh r1, [r0, r2]
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r1, r0
+ beq _0806A696
+ strh r1, [r3, 0x30]
+ subs r0, r1, 0x1
+ cmp r0, 0x5
+ bhi _0806A696
+ lsls r0, 2
+ ldr r1, _0806A5D0 @ =_0806A5D4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806A5CC: .4byte gTasks
+_0806A5D0: .4byte _0806A5D4
+ .align 2, 0
+_0806A5D4:
+ .4byte _0806A5EC
+ .4byte _0806A610
+ .4byte _0806A634
+ .4byte _0806A658
+ .4byte _0806A682
+ .4byte _0806A690
+_0806A5EC:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ 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, 0x35
+ b _0806A67A
+_0806A610:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ 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, 0x56
+ b _0806A67A
+_0806A634:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ 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, 0x6B
+ b _0806A67A
+_0806A658:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ 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, 0x80
+_0806A67A:
+ strh r0, [r3, 0x20]
+ movs r0, 0x5C
+ strh r0, [r3, 0x22]
+ b _0806A696
+_0806A682:
+ adds r0, r3, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0806A696
+_0806A690:
+ adds r0, r3, 0
+ bl DestroySprite
+_0806A696:
+ pop {r0}
+ bx r0
+ thumb_func_end SpriteCB_ResetRtcCusor1
+
+ thumb_func_start ResetRtcScreen_CreateCursor
+ResetRtcScreen_CreateCursor: @ 806A69C
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0806A70C @ =gUnknown_083764BC
+ bl LoadSpritePalette
+ ldr r0, _0806A710 @ =gSpriteTemplate_83764E8
+ mov r8, r0
+ movs r1, 0x35
+ movs r2, 0x44
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r6, _0806A714 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r6, 0
+ adds r4, 0x1C
+ adds r2, r0, r4
+ ldr r1, _0806A718 @ =SpriteCB_ResetRtcCusor0
+ str r1, [r2]
+ adds r0, r6
+ strh r5, [r0, 0x2E]
+ ldr r1, _0806A71C @ =0x0000ffff
+ strh r1, [r0, 0x30]
+ mov r0, r8
+ movs r1, 0x35
+ movs r2, 0x44
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r0, r4
+ ldr r1, _0806A720 @ =SpriteCB_ResetRtcCusor1
+ str r1, [r4]
+ adds r0, r6
+ strh r5, [r0, 0x2E]
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0, 0x30]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806A70C: .4byte gUnknown_083764BC
+_0806A710: .4byte gSpriteTemplate_83764E8
+_0806A714: .4byte gSprites
+_0806A718: .4byte SpriteCB_ResetRtcCusor0
+_0806A71C: .4byte 0x0000ffff
+_0806A720: .4byte SpriteCB_ResetRtcCusor1
+ thumb_func_end ResetRtcScreen_CreateCursor
+
+ thumb_func_start ResetRtcScreen_FreeCursorPalette
+ResetRtcScreen_FreeCursorPalette: @ 806A724
+ push {lr}
+ ldr r0, _0806A734 @ =gUnknown_083764BC
+ ldrh r0, [r0, 0x4]
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806A734: .4byte gUnknown_083764BC
+ thumb_func_end ResetRtcScreen_FreeCursorPalette
+
+ thumb_func_start ResetRtcScreen_HideChooseTimeWindow
+ResetRtcScreen_HideChooseTimeWindow: @ 806A738
+ push {lr}
+ movs r0, 0x3
+ movs r1, 0x8
+ movs r2, 0x19
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ pop {r0}
+ bx r0
+ thumb_func_end ResetRtcScreen_HideChooseTimeWindow
+
+ thumb_func_start ResetRtcScreen_PrintTime
+ResetRtcScreen_PrintTime: @ 806A74C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r10, r0
+ adds r0, r2, 0
+ adds r4, r3, 0
+ ldr r6, [sp, 0x24]
+ ldr r2, [sp, 0x28]
+ mov r9, r2
+ mov r2, r10
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r1, r9
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ ldr r7, _0806A83C @ =gStringVar4
+ ldr r1, _0806A840 @ =0x00002710
+ bl __umodsi3
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ movs r1, 0x18
+ bl __umodsi3
+ mov r8, r0
+ mov r2, r8
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ adds r0, r6, 0
+ movs r1, 0x3C
+ bl __umodsi3
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r9
+ movs r1, 0x3C
+ bl __umodsi3
+ mov r9, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r4, _0806A844 @ =gStringVar1
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x18
+ movs r3, 0x1
+ bl sub_8072C44
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl StringCopy
+ adds r7, r0, 0
+ ldr r1, _0806A848 @ =gOtherText_Day
+ bl StringCopy
+ adds r7, r0, 0
+ adds r0, r4, 0
+ mov r1, r8
+ movs r2, 0x12
+ movs r3, 0x1
+ bl sub_8072C44
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl StringCopy
+ adds r7, r0, 0
+ ldr r4, _0806A84C @ =gUnknown_08376500
+ adds r1, r4, 0
+ bl StringCopy
+ adds r7, r0, 0
+ adds r1, r6, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r7, r0, 0
+ adds r1, r4, 0
+ bl StringCopy
+ adds r7, r0, 0
+ mov r1, r9
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, _0806A83C @ =gStringVar4
+ mov r1, r10
+ ldr r2, [sp]
+ bl MenuPrint
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806A83C: .4byte gStringVar4
+_0806A840: .4byte 0x00002710
+_0806A844: .4byte gStringVar1
+_0806A848: .4byte gOtherText_Day
+_0806A84C: .4byte gUnknown_08376500
+ thumb_func_end ResetRtcScreen_PrintTime
+
+ thumb_func_start ResetRtcScreen_ShowChooseTimeWindow
+ResetRtcScreen_ShowChooseTimeWindow: @ 806A850
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x8
+ adds r6, r0, 0
+ mov r8, r1
+ adds r4, r2, 0
+ adds r5, r3, 0
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x3
+ movs r1, 0x8
+ movs r2, 0x19
+ movs r3, 0xB
+ bl MenuDrawTextWindow
+ ldr r0, _0806A8A8 @ =gOtherText_OK
+ movs r1, 0x14
+ movs r2, 0x9
+ bl MenuPrint
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r0, 0x4
+ movs r1, 0x9
+ adds r2, r6, 0
+ mov r3, r8
+ bl ResetRtcScreen_PrintTime
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806A8A8: .4byte gOtherText_OK
+ thumb_func_end ResetRtcScreen_ShowChooseTimeWindow
+
+ thumb_func_start ResetRtcScreen_MoveTimeUpDown
+ResetRtcScreen_MoveTimeUpDown: @ 806A8AC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r3, 16
+ lsrs r3, 16
+ adds r1, r3, 0
+ movs r0, 0x80
+ ands r0, r3
+ cmp r0, 0
+ beq _0806A8C6
+ ldrh r0, [r4]
+ subs r0, 0x1
+ b _0806A8E0
+_0806A8C6:
+ movs r0, 0x40
+ ands r0, r3
+ cmp r0, 0
+ beq _0806A8D4
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _0806A8FE
+_0806A8D4:
+ movs r0, 0x20
+ ands r0, r3
+ cmp r0, 0
+ beq _0806A8EE
+ ldrh r0, [r4]
+ subs r0, 0xA
+_0806A8E0:
+ strh r0, [r4]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, r5
+ bge _0806A90A
+ strh r2, [r4]
+ b _0806A90A
+_0806A8EE:
+ movs r0, 0x10
+ ands r1, r0
+ cmp r1, 0
+ bne _0806A8FA
+ movs r0, 0
+ b _0806A90C
+_0806A8FA:
+ ldrh r0, [r4]
+ adds r0, 0xA
+_0806A8FE:
+ strh r0, [r4]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, r2
+ ble _0806A90A
+ strh r5, [r4]
+_0806A90A:
+ movs r0, 0x1
+_0806A90C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end ResetRtcScreen_MoveTimeUpDown
+
+ thumb_func_start Task_ResetRtc_3
+Task_ResetRtc_3: @ 806A914
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0806A928 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0x1
+ strh r0, [r1, 0x8]
+ bx lr
+ .align 2, 0
+_0806A928: .4byte gTasks
+ thumb_func_end Task_ResetRtc_3
+
+ thumb_func_start Task_ResetRtc_2
+Task_ResetRtc_2: @ 806A92C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl ResetRtcScreen_HideChooseTimeWindow
+ bl ResetRtcScreen_FreeCursorPalette
+ ldr r1, _0806A950 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806A954 @ =Task_ResetRtc_3
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806A950: .4byte gTasks
+_0806A954: .4byte Task_ResetRtc_3
+ thumb_func_end Task_ResetRtc_2
+
+ thumb_func_start Task_ResetRtc_1
+Task_ResetRtc_1: @ 806A958
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r7, r0, 3
+ ldr r0, _0806A99C @ =gTasks + 0x8
+ mov r8, r0
+ adds r5, r7, r0
+ ldrb r4, [r5, 0x4]
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0806A9A0 @ =gUnknown_08376414
+ adds r2, r0, r1
+ ldr r1, _0806A9A4 @ =gMain
+ ldrh r3, [r1, 0x2E]
+ movs r0, 0x2
+ ands r0, r3
+ mov r12, r1
+ cmp r0, 0
+ beq _0806A9AC
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r7, r0
+ ldr r1, _0806A9A8 @ =Task_ResetRtc_2
+ str r1, [r0]
+ movs r0, 0
+ strh r0, [r5, 0x2]
+ movs r0, 0x6
+ b _0806A9CC
+ .align 2, 0
+_0806A99C: .4byte gTasks + 0x8
+_0806A9A0: .4byte gUnknown_08376414
+_0806A9A4: .4byte gMain
+_0806A9A8: .4byte Task_ResetRtc_2
+_0806A9AC:
+ movs r0, 0x10
+ ands r0, r3
+ cmp r0, 0
+ beq _0806A9BA
+ ldrb r0, [r2, 0x7]
+ cmp r0, 0
+ bne _0806A9CC
+_0806A9BA:
+ mov r3, r12
+ ldrh r1, [r3, 0x2E]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0806A9D6
+ ldrb r0, [r2, 0x6]
+ cmp r0, 0
+ beq _0806A9D6
+_0806A9CC:
+ strh r0, [r5, 0x4]
+ movs r0, 0x5
+ bl PlaySE
+ b _0806AA58
+_0806A9D6:
+ cmp r4, 0x5
+ bne _0806AA24
+ mov r0, r12
+ ldrh r1, [r0, 0x2E]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0806AA58
+ ldr r1, _0806AA18 @ =gLocalTime
+ ldrh r0, [r5, 0x6]
+ strh r0, [r1]
+ ldrh r0, [r5, 0x8]
+ strb r0, [r1, 0x2]
+ ldrh r0, [r5, 0xA]
+ strb r0, [r1, 0x3]
+ ldrh r0, [r5, 0xC]
+ strb r0, [r1, 0x4]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0806AA1C @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806AA20 @ =Task_ResetRtc_2
+ str r1, [r0]
+ strh r4, [r5, 0x2]
+ movs r0, 0x6
+ strh r0, [r5, 0x4]
+ b _0806AA58
+ .align 2, 0
+_0806AA18: .4byte gLocalTime
+_0806AA1C: .4byte gTasks
+_0806AA20: .4byte Task_ResetRtc_2
+_0806AA24:
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r5, r0
+ ldrh r1, [r2, 0x2]
+ ldrh r2, [r2, 0x4]
+ mov r3, r12
+ ldrh r4, [r3, 0x30]
+ movs r3, 0xC0
+ ands r3, r4
+ bl ResetRtcScreen_MoveTimeUpDown
+ cmp r0, 0
+ beq _0806AA58
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r2, [r5, 0x6]
+ ldrb r3, [r5, 0x8]
+ ldrb r0, [r5, 0xA]
+ str r0, [sp]
+ ldrb r0, [r5, 0xC]
+ str r0, [sp, 0x4]
+ movs r0, 0x4
+ movs r1, 0x9
+ bl ResetRtcScreen_PrintTime
+_0806AA58:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end Task_ResetRtc_1
+
+ thumb_func_start Task_ResetRtc_0
+Task_ResetRtc_0: @ 806AA64
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, r5, 2
+ adds r6, r5
+ lsls r6, 3
+ ldr r0, _0806AACC @ =gTasks + 0x8
+ mov r8, r0
+ adds r4, r6, r0
+ movs r0, 0
+ strh r0, [r4]
+ ldr r3, _0806AAD0 @ =gLocalTime
+ ldrh r0, [r3]
+ strh r0, [r4, 0x6]
+ movs r1, 0x2
+ ldrsb r1, [r3, r1]
+ strh r1, [r4, 0x8]
+ movs r2, 0x3
+ ldrsb r2, [r3, r2]
+ strh r2, [r4, 0xA]
+ ldrb r3, [r3, 0x4]
+ lsls r3, 24
+ asrs r3, 24
+ strh r3, [r4, 0xC]
+ ldrh r0, [r4, 0x6]
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ bl ResetRtcScreen_ShowChooseTimeWindow
+ adds r0, r5, 0
+ bl ResetRtcScreen_CreateCursor
+ movs r0, 0x2
+ strh r0, [r4, 0x4]
+ movs r0, 0x8
+ negs r0, r0
+ add r8, r0
+ add r6, r8
+ ldr r0, _0806AAD4 @ =Task_ResetRtc_1
+ str r0, [r6]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806AACC: .4byte gTasks + 0x8
+_0806AAD0: .4byte gLocalTime
+_0806AAD4: .4byte Task_ResetRtc_1
+ thumb_func_end Task_ResetRtc_0
+
+ thumb_func_start CB2_InitResetRtcScreen
+CB2_InitResetRtcScreen: @ 806AAD8
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r0, 0x80
+ lsls r0, 19
+ movs r4, 0
+ strh r4, [r0]
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r2, 0xA0
+ lsls r2, 19
+ mov r0, sp
+ strh r4, [r0]
+ ldr r1, _0806AB94 @ =0x040000d4
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _0806AB98 @ =0x81000200
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0xC0
+ lsls r3, 9
+ mov r4, sp
+ movs r6, 0
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _0806AB9C @ =0x81000800
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_0806AB16:
+ strh r6, [r4]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r5
+ subs r3, r5
+ cmp r3, r5
+ bhi _0806AB16
+ strh r6, [r4]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 1
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0
+ movs r1, 0x80
+ bl ResetOamRange
+ bl LoadOam
+ bl remove_some_task
+ bl dp12_8087EA4
+ bl ResetSpriteData
+ bl ResetTasks
+ bl ResetPaletteFade
+ ldr r4, _0806ABA0 @ =gWindowConfig_81E6CE4
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x88
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0806ABA4 @ =VBlankCB_ResetRtcScreen
+ bl SetVBlankCallback
+ ldr r0, _0806ABA8 @ =CB2_ResetRtcScreen
+ bl SetMainCallback2
+ ldr r0, _0806ABAC @ =Task_ResetRtcScreen
+ movs r1, 0x50
+ bl CreateTask
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806AB94: .4byte 0x040000d4
+_0806AB98: .4byte 0x81000200
+_0806AB9C: .4byte 0x81000800
+_0806ABA0: .4byte gWindowConfig_81E6CE4
+_0806ABA4: .4byte VBlankCB_ResetRtcScreen
+_0806ABA8: .4byte CB2_ResetRtcScreen
+_0806ABAC: .4byte Task_ResetRtcScreen
+ thumb_func_end CB2_InitResetRtcScreen
+
+ thumb_func_start CB2_ResetRtcScreen
+CB2_ResetRtcScreen: @ 806ABB0
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end CB2_ResetRtcScreen
+
+ thumb_func_start VBlankCB_ResetRtcScreen
+VBlankCB_ResetRtcScreen: @ 806ABC8
+ push {lr}
+ bl ProcessSpriteCopyRequests
+ bl LoadOam
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end VBlankCB_ResetRtcScreen
+
+ thumb_func_start ResetRtcScreen_ShowMessage
+ResetRtcScreen_ShowMessage: @ 806ABDC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl MenuDisplayMessageBox
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end ResetRtcScreen_ShowMessage
+
+ thumb_func_start Task_ShowResetRtcPrompt
+Task_ShowResetRtcPrompt: @ 806ABF4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _0806AC14 @ =gTasks + 0x8
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0806AC18
+ cmp r0, 0x1
+ beq _0806AC80
+ b _0806ACC4
+ .align 2, 0
+_0806AC14: .4byte gTasks + 0x8
+_0806AC18:
+ bl MenuZeroFillScreen
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x14
+ movs r3, 0xA
+ bl MenuDrawTextWindow
+ ldr r0, _0806AC98 @ =gSystemText_PresentTime
+ movs r1, 0x1
+ movs r2, 0x1
+ bl MenuPrint
+ ldr r0, _0806AC9C @ =gLocalTime
+ ldrh r2, [r0]
+ ldrb r3, [r0, 0x2]
+ ldrb r1, [r0, 0x3]
+ str r1, [sp]
+ ldrb r0, [r0, 0x4]
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0x3
+ bl ResetRtcScreen_PrintTime
+ ldr r0, _0806ACA0 @ =gSystemText_PreviousTime
+ movs r1, 0x1
+ movs r2, 0x5
+ bl MenuPrint
+ ldr r1, _0806ACA4 @ =gSaveBlock2
+ adds r0, r1, 0
+ adds r0, 0xA0
+ ldrh r2, [r0]
+ adds r0, 0x2
+ ldrb r3, [r0]
+ adds r0, 0x1
+ ldrb r0, [r0]
+ str r0, [sp]
+ adds r0, r1, 0
+ adds r0, 0xA4
+ ldrb r0, [r0]
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0x7
+ bl ResetRtcScreen_PrintTime
+ ldr r0, _0806ACA8 @ =gSystemText_ResetRTCPrompt
+ bl ResetRtcScreen_ShowMessage
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_0806AC80:
+ ldr r0, _0806ACAC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0806ACB0
+ adds r0, r5, 0
+ bl DestroyTask
+ bl DoSoftReset
+ b _0806ACC4
+ .align 2, 0
+_0806AC98: .4byte gSystemText_PresentTime
+_0806AC9C: .4byte gLocalTime
+_0806ACA0: .4byte gSystemText_PreviousTime
+_0806ACA4: .4byte gSaveBlock2
+_0806ACA8: .4byte gSystemText_ResetRTCPrompt
+_0806ACAC: .4byte gMain
+_0806ACB0:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0806ACC4
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ bl DestroyTask
+_0806ACC4:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end Task_ShowResetRtcPrompt
+
+ thumb_func_start Task_ResetRtcScreen
+Task_ResetRtcScreen: @ 806ACCC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0806ACF4 @ =gTasks + 0x8
+ adds r5, r0, r1
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x6
+ bls _0806ACE8
+ b _0806AEC4
+_0806ACE8:
+ lsls r0, 2
+ ldr r1, _0806ACF8 @ =_0806ACFC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806ACF4: .4byte gTasks + 0x8
+_0806ACF8: .4byte _0806ACFC
+ .align 2, 0
+_0806ACFC:
+ .4byte _0806AD18
+ .4byte _0806AD34
+ .4byte _0806AD80
+ .4byte _0806ADD8
+ .4byte _0806AE5C
+ .4byte _0806AE8C
+ .4byte _0806AEAE
+_0806AD18:
+ movs r0, 0x1
+ negs r0, r0
+ ldr r1, _0806AD30 @ =0x0000ffff
+ str r1, [sp]
+ movs r1, 0x1
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r0, 0x1
+ strh r0, [r5]
+ b _0806AEC4
+ .align 2, 0
+_0806AD30: .4byte 0x0000ffff
+_0806AD34:
+ ldr r0, _0806AD5C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0806AD42
+ b _0806AEC4
+_0806AD42:
+ ldr r0, _0806AD60 @ =gSaveFileStatus
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0806AD4E
+ cmp r0, 0x2
+ bne _0806AD68
+_0806AD4E:
+ ldr r0, _0806AD64 @ =gSystemText_NoSaveFileNoTime
+ bl ResetRtcScreen_ShowMessage
+ movs r0, 0x5
+ strh r0, [r5]
+ b _0806AEC4
+ .align 2, 0
+_0806AD5C: .4byte gPaletteFade
+_0806AD60: .4byte gSaveFileStatus
+_0806AD64: .4byte gSystemText_NoSaveFileNoTime
+_0806AD68:
+ bl RtcCalcLocalTime
+ ldr r0, _0806AD7C @ =Task_ShowResetRtcPrompt
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x2]
+ b _0806ADFC
+ .align 2, 0
+_0806AD7C: .4byte Task_ShowResetRtcPrompt
+_0806AD80:
+ ldr r2, _0806ADC4 @ =gTasks
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x1
+ bne _0806AD96
+ b _0806AEC4
+_0806AD96:
+ bl MenuZeroFillScreen
+ ldr r0, _0806ADC8 @ =gSystemText_PleaseResetTime
+ bl ResetRtcScreen_ShowMessage
+ ldr r2, _0806ADCC @ =gLocalTime
+ ldr r0, _0806ADD0 @ =gSaveBlock2
+ adds r0, 0xA0
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _0806ADD4 @ =Task_ResetRtc_0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x2]
+ movs r0, 0x3
+ strh r0, [r5]
+ b _0806AEC4
+ .align 2, 0
+_0806ADC4: .4byte gTasks
+_0806ADC8: .4byte gSystemText_PleaseResetTime
+_0806ADCC: .4byte gLocalTime
+_0806ADD0: .4byte gSaveBlock2
+_0806ADD4: .4byte Task_ResetRtc_0
+_0806ADD8:
+ ldr r2, _0806AE04 @ =gTasks
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r0, r2
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _0806AEC4
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0806AE08
+ ldrb r0, [r5, 0x2]
+ bl DestroyTask
+_0806ADFC:
+ movs r0, 0x2
+ strh r0, [r5]
+ b _0806AEC4
+ .align 2, 0
+_0806AE04: .4byte gTasks
+_0806AE08:
+ ldrb r0, [r5, 0x2]
+ bl DestroyTask
+ bl RtcReset
+ ldr r4, _0806AE4C @ =gLocalTime
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x2
+ ldrsb r1, [r4, r1]
+ movs r2, 0x3
+ ldrsb r2, [r4, r2]
+ movs r3, 0x4
+ ldrsb r3, [r4, r3]
+ bl RtcCalcLocalTimeOffset
+ ldr r2, _0806AE50 @ =gSaveBlock2
+ adds r2, 0xA0
+ ldr r0, [r4]
+ ldr r1, [r4, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _0806AE54 @ =0x00004040
+ ldrh r1, [r4]
+ bl VarSet
+ bl sub_80691A0
+ ldr r0, _0806AE58 @ =gSystemText_ClockResetDataSave
+ bl ResetRtcScreen_ShowMessage
+ movs r0, 0x4
+ strh r0, [r5]
+ b _0806AEC4
+ .align 2, 0
+_0806AE4C: .4byte gLocalTime
+_0806AE50: .4byte gSaveBlock2
+_0806AE54: .4byte 0x00004040
+_0806AE58: .4byte gSystemText_ClockResetDataSave
+_0806AE5C:
+ movs r0, 0
+ bl sub_8125D44
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806AE7C
+ ldr r0, _0806AE78 @ =gSystemText_SaveCompleted
+ bl ResetRtcScreen_ShowMessage
+ movs r0, 0x49
+ bl PlaySE
+ b _0806AE88
+ .align 2, 0
+_0806AE78: .4byte gSystemText_SaveCompleted
+_0806AE7C:
+ ldr r0, _0806AECC @ =gSystemText_SaveFailed
+ bl ResetRtcScreen_ShowMessage
+ movs r0, 0x16
+ bl PlaySE
+_0806AE88:
+ movs r0, 0x5
+ strh r0, [r5]
+_0806AE8C:
+ ldr r0, _0806AED0 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0806AEC4
+ movs r0, 0x1
+ negs r0, r0
+ ldr r1, _0806AED4 @ =0x0000ffff
+ str r1, [sp]
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r0, 0x6
+ strh r0, [r5]
+_0806AEAE:
+ ldr r0, _0806AED8 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0806AEC4
+ adds r0, r4, 0
+ bl DestroyTask
+ bl DoSoftReset
+_0806AEC4:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806AECC: .4byte gSystemText_SaveFailed
+_0806AED0: .4byte gMain
+_0806AED4: .4byte 0x0000ffff
+_0806AED8: .4byte gPaletteFade
+ thumb_func_end Task_ResetRtcScreen
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom3.s b/asm/rom3.s
index c562583e9..823ac4e0c 100644
--- a/asm/rom3.s
+++ b/asm/rom3.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -1415,7 +1415,7 @@ _0800C394: .4byte gLinkPlayers
_0800C398: .4byte 0x00002211
_0800C39C: .4byte gBlockRecvBuffer
_0800C3A0:
- bl GetBlockRecievedStatus
+ bl GetBlockReceivedStatus
lsls r0, 24
lsrs r0, 24
ldr r2, _0800C468 @ =gBitTable
@@ -3408,89204 +3408,4 @@ dp01_build_cmdbuf_x37_a: @ 800D218
_0800D234: .4byte gUnknown_03004040
thumb_func_end dp01_build_cmdbuf_x37_a
- thumb_func_start sub_800D238
-sub_800D238: @ 800D238
- push {lr}
- bl LZ77UnCompWram
- pop {r0}
- bx r0
- thumb_func_end sub_800D238
-
- thumb_func_start LZDecompressVram
-LZDecompressVram: @ 800D244
- push {lr}
- bl LZ77UnCompVram
- pop {r0}
- bx r0
- thumb_func_end LZDecompressVram
-
- thumb_func_start LoadCompressedObjectPic
-LoadCompressedObjectPic: @ 800D250
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, [r4]
- movs r5, 0x80
- lsls r5, 18
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp]
- ldrh r1, [r4, 0x6]
- lsls r1, 16
- ldrh r0, [r4, 0x4]
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end LoadCompressedObjectPic
-
- thumb_func_start LoadCompressedObjectPicOverrideBuffer
-LoadCompressedObjectPicOverrideBuffer: @ 800D27C
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, [r4]
- bl LZ77UnCompWram
- str r5, [sp]
- ldrh r1, [r4, 0x6]
- lsls r1, 16
- ldrh r0, [r4, 0x4]
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end LoadCompressedObjectPicOverrideBuffer
-
- thumb_func_start LoadCompressedObjectPalette
-LoadCompressedObjectPalette: @ 800D2A4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r0, [r5]
- movs r4, 0x80
- lsls r4, 18
- adds r1, r4, 0
- bl LZ77UnCompWram
- str r4, [sp]
- ldrh r2, [r5, 0x4]
- ldr r1, _0800D2D4 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpritePalette
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800D2D4: .4byte 0xffff0000
- thumb_func_end LoadCompressedObjectPalette
-
- thumb_func_start LoadCompressedObjectPaletteOverrideBuffer
-LoadCompressedObjectPaletteOverrideBuffer: @ 800D2D8
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r0, [r5]
- bl LZ77UnCompWram
- str r4, [sp]
- ldrh r2, [r5, 0x4]
- ldr r1, _0800D304 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpritePalette
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800D304: .4byte 0xffff0000
- thumb_func_end LoadCompressedObjectPaletteOverrideBuffer
-
- thumb_func_start DecompressPicFromTable_2
-DecompressPicFromTable_2: @ 800D308
- push {lr}
- adds r2, r0, 0
- ldr r3, [sp, 0x4]
- ldr r1, [sp, 0x8]
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- ble _0800D328
- ldr r0, _0800D324 @ =gMonFrontPicTable
- ldr r0, [r0]
- adds r1, r3, 0
- bl LZ77UnCompWram
- b _0800D330
- .align 2, 0
-_0800D324: .4byte gMonFrontPicTable
-_0800D328:
- ldr r0, [r2]
- adds r1, r3, 0
- bl LZ77UnCompWram
-_0800D330:
- pop {r0}
- bx r0
- thumb_func_end DecompressPicFromTable_2
-
- thumb_func_start sub_800D334
-sub_800D334: @ 800D334
- push {r4-r6,lr}
- sub sp, 0x10
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- ldr r2, [sp, 0x20]
- ldr r1, _0800D354 @ =gUnknown_081FAF4C
- ldr r0, [r1]
- cmp r2, r0
- beq _0800D34E
- ldr r0, [r1, 0x8]
- cmp r2, r0
- bne _0800D358
-_0800D34E:
- movs r1, 0
- b _0800D35A
- .align 2, 0
-_0800D354: .4byte gUnknown_081FAF4C
-_0800D358:
- movs r1, 0x1
-_0800D35A:
- str r2, [sp]
- ldr r0, [sp, 0x24]
- str r0, [sp, 0x4]
- ldr r0, [sp, 0x28]
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_800D378
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_800D334
-
- thumb_func_start sub_800D378
-sub_800D378: @ 800D378
- push {r4-r7,lr}
- adds r1, r0, 0
- ldr r5, [sp, 0x14]
- ldr r6, [sp, 0x18]
- ldr r4, [sp, 0x1C]
- ldr r0, [sp, 0x20]
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r6, SPECIES_UNOWN
- bne _0800D3EC
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r4
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r4
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r4
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r4
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _0800D3C0
- movs r1, SPECIES_UNOWN
- b _0800D3CA
-_0800D3C0:
- movs r2, 0xCE
- lsls r2, 1
- adds r0, r1, r2
- lsls r0, 16
- lsrs r1, r0, 16
-_0800D3CA:
- cmp r7, 0
- bne _0800D3DC
- ldr r0, _0800D3D8 @ =gMonBackPicTable
- lsls r1, 3
- adds r1, r0
- ldr r0, [r1]
- b _0800D3F8
- .align 2, 0
-_0800D3D8: .4byte gMonBackPicTable
-_0800D3DC:
- ldr r0, _0800D3E8 @ =gMonFrontPicTable
- lsls r1, 3
- adds r1, r0
- ldr r0, [r1]
- b _0800D3F8
- .align 2, 0
-_0800D3E8: .4byte gMonFrontPicTable
-_0800D3EC:
- movs r0, 0xCE
- lsls r0, 1
- cmp r6, r0
- ble _0800D404
- ldr r0, _0800D400 @ =gMonFrontPicTable
- ldr r0, [r0]
-_0800D3F8:
- adds r1, r5, 0
- bl LZ77UnCompWram
- b _0800D40C
- .align 2, 0
-_0800D400: .4byte gMonFrontPicTable
-_0800D404:
- ldr r0, [r1]
- adds r1, r5, 0
- bl LZ77UnCompWram
-_0800D40C:
- lsls r0, r6, 16
- lsrs r0, 16
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r7, 0
- bl DrawSpindaSpots
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_800D378
-
- thumb_func_start Unused_LZDecompressWramIndirect
-Unused_LZDecompressWramIndirect: @ 800D420
- push {lr}
- ldr r0, [r0]
- bl LZ77UnCompWram
- pop {r0}
- bx r0
- thumb_func_end Unused_LZDecompressWramIndirect
-
- thumb_func_start unref_sub_800D42C
-unref_sub_800D42C: @ 800D42C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- mov r9, r0
- str r1, [sp]
- str r2, [sp, 0x4]
- adds r5, r3, 0
- movs r0, 0x1
- mov r1, r9
- ands r0, r1
- cmp r0, 0
- bne _0800D44C
- b _0800D5E4
-_0800D44C:
- asrs r0, r1, 1
- adds r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- movs r0, 0
- ldr r2, [sp]
- cmp r0, r2
- blt _0800D460
- b _0800D674
-_0800D460:
- movs r4, 0x8
- subs r1, r4, r1
- str r1, [sp, 0x10]
-_0800D466:
- movs r7, 0
- adds r0, 0x1
- str r0, [sp, 0x14]
- ldr r0, [sp, 0x10]
- cmp r7, r0
- bge _0800D4E2
- ldr r1, [sp, 0x8]
- lsls r1, 8
- str r1, [sp, 0x18]
- movs r2, 0
- mov r10, r2
- mov r0, r9
- movs r4, 0x8
- subs r0, r4, r0
- str r0, [sp, 0xC]
-_0800D484:
- movs r3, 0
- asrs r0, r7, 1
- adds r1, r7, 0
- movs r2, 0x1
- ands r1, r2
- str r1, [sp, 0x20]
- lsls r0, 8
- mov r8, r0
- mov r12, r5
-_0800D496:
- lsls r1, r3, 5
- ldr r4, [sp, 0x18]
- adds r0, r5, r4
- adds r0, r1
- mov r1, r8
- adds r2, r0, r1
- mov r1, r12
- add r1, r8
- movs r6, 0xF
-_0800D4A8:
- ldr r4, [sp, 0x20]
- cmp r4, 0
- bne _0800D4B8
- strb r4, [r1]
- add r4, sp, 0x20
- ldrb r4, [r4]
- strb r4, [r2, 0x10]
- b _0800D4C6
-_0800D4B8:
- mov r0, r10
- strb r0, [r1, 0x10]
- movs r4, 0x80
- lsls r4, 1
- adds r4, r2, r4
- str r4, [sp, 0x1C]
- strb r0, [r4]
-_0800D4C6:
- adds r2, 0x1
- adds r1, 0x1
- subs r6, 0x1
- cmp r6, 0
- bge _0800D4A8
- movs r0, 0x20
- add r12, r0
- adds r3, 0x1
- cmp r3, 0x7
- ble _0800D496
- adds r7, 0x1
- ldr r1, [sp, 0xC]
- cmp r7, r1
- blt _0800D484
-_0800D4E2:
- movs r7, 0
- movs r2, 0
-_0800D4E6:
- movs r6, 0
- adds r4, r7, 0x1
- mov r8, r4
- lsls r4, r7, 5
-_0800D4EE:
- adds r0, r6, 0x1
- mov r10, r0
- lsls r1, r6, 8
- adds r0, r1, 0
- adds r0, 0xC0
- adds r0, r5, r0
- adds r0, r4
- adds r1, r5, r1
- adds r1, r4
- movs r3, 0x1F
-_0800D502:
- strb r2, [r1]
- strb r2, [r0]
- adds r0, 0x1
- adds r1, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _0800D502
- mov r6, r10
- cmp r6, 0x7
- ble _0800D4EE
- mov r7, r8
- cmp r7, 0x1
- ble _0800D4E6
- mov r1, r9
- cmp r1, 0x5
- bne _0800D528
- movs r2, 0x90
- lsls r2, 1
- adds r5, r2
-_0800D528:
- movs r7, 0
- cmp r7, r9
- bge _0800D5BE
-_0800D52E:
- movs r3, 0
- adds r7, 0x1
- mov r8, r7
- cmp r3, r9
- bge _0800D59E
-_0800D538:
- adds r3, 0x1
- mov r10, r3
- ldr r4, [sp, 0x4]
- adds r4, 0x20
- adds r7, r5, 0
- adds r7, 0x20
- movs r0, 0x12
- adds r0, r5
- mov r12, r0
- ldr r2, [sp, 0x4]
- adds r3, r5, 0
- movs r6, 0x3
-_0800D550:
- ldrb r0, [r2]
- mov r1, r12
- strb r0, [r1]
- ldrb r0, [r2, 0x1]
- strb r0, [r1, 0x1]
- ldrb r0, [r2, 0x2]
- strb r0, [r1, 0x1E]
- ldrb r0, [r2, 0x3]
- strb r0, [r1, 0x1F]
- movs r0, 0x81
- lsls r0, 1
- adds r1, r3, r0
- ldrb r0, [r2, 0x10]
- strb r0, [r1]
- ldr r0, _0800D5A8 @ =0x00000103
- adds r1, r3, r0
- ldrb r0, [r2, 0x11]
- strb r0, [r1]
- movs r0, 0x90
- lsls r0, 1
- adds r1, r3, r0
- ldrb r0, [r2, 0x12]
- strb r0, [r1]
- ldr r0, _0800D5AC @ =0x00000121
- adds r1, r3, r0
- ldrb r0, [r2, 0x13]
- strb r0, [r1]
- movs r1, 0x4
- add r12, r1
- adds r2, 0x4
- adds r3, 0x4
- subs r6, 0x1
- cmp r6, 0
- bge _0800D550
- str r4, [sp, 0x4]
- adds r5, r7, 0
- mov r3, r10
- cmp r3, r9
- blt _0800D538
-_0800D59E:
- mov r2, r9
- cmp r2, 0x7
- bne _0800D5B0
- adds r5, 0x20
- b _0800D5B8
- .align 2, 0
-_0800D5A8: .4byte 0x00000103
-_0800D5AC: .4byte 0x00000121
-_0800D5B0:
- mov r4, r9
- cmp r4, 0x5
- bne _0800D5B8
- adds r5, 0x60
-_0800D5B8:
- mov r7, r8
- cmp r7, r9
- blt _0800D52E
-_0800D5BE:
- mov r0, r9
- cmp r0, 0x7
- bne _0800D5CC
- movs r1, 0x80
- lsls r1, 1
- adds r5, r1
- b _0800D5D8
-_0800D5CC:
- mov r2, r9
- cmp r2, 0x5
- bne _0800D5D8
- movs r4, 0xF0
- lsls r4, 1
- adds r5, r4
-_0800D5D8:
- ldr r0, [sp, 0x14]
- ldr r1, [sp]
- cmp r0, r1
- bge _0800D5E2
- b _0800D466
-_0800D5E2:
- b _0800D674
-_0800D5E4:
- movs r6, 0
- ldr r2, [sp]
- cmp r6, r2
- bge _0800D674
-_0800D5EC:
- adds r6, 0x1
- mov r10, r6
- mov r4, r9
- cmp r4, 0x6
- bne _0800D604
- movs r0, 0
- movs r3, 0xFF
-_0800D5FA:
- strb r0, [r5]
- adds r5, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _0800D5FA
-_0800D604:
- movs r7, 0
- cmp r7, r9
- bge _0800D658
-_0800D60A:
- adds r7, 0x1
- mov r8, r7
- mov r1, r9
- lsls r0, r1, 5
- cmp r1, 0x6
- bne _0800D624
- movs r1, 0
- movs r3, 0x1F
-_0800D61A:
- strb r1, [r5]
- adds r5, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _0800D61A
-_0800D624:
- adds r1, r0, 0
- cmp r1, 0
- ble _0800D63E
- adds r3, r1, 0
-_0800D62C:
- ldr r2, [sp, 0x4]
- ldrb r0, [r2]
- strb r0, [r5]
- adds r2, 0x1
- str r2, [sp, 0x4]
- adds r5, 0x1
- subs r3, 0x1
- cmp r3, 0
- bne _0800D62C
-_0800D63E:
- mov r4, r9
- cmp r4, 0x6
- bne _0800D652
- movs r0, 0
- movs r3, 0x1F
-_0800D648:
- strb r0, [r5]
- adds r5, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _0800D648
-_0800D652:
- mov r7, r8
- cmp r7, r9
- blt _0800D60A
-_0800D658:
- mov r0, r9
- cmp r0, 0x6
- bne _0800D66C
- movs r0, 0
- movs r3, 0xFF
-_0800D662:
- strb r0, [r5]
- adds r5, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _0800D662
-_0800D66C:
- mov r6, r10
- ldr r1, [sp]
- cmp r6, r1
- blt _0800D5EC
-_0800D674:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_800D42C
-
- thumb_func_start unref_sub_800D684
-unref_sub_800D684: @ 800D684
- push {lr}
- bl ResetSpriteData
- ldr r0, _0800D6B8 @ =gSpriteTemplate_81F96D0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0800D6BC @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldr r0, _0800D6C0 @ =sub_800D6C4
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0800D6B8: .4byte gSpriteTemplate_81F96D0
-_0800D6BC: .4byte gSprites
-_0800D6C0: .4byte sub_800D6C4
- thumb_func_end unref_sub_800D684
-
- thumb_func_start sub_800D6C4
-sub_800D6C4: @ 800D6C4
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_800D6C4
-
- thumb_func_start sub_800D6D4
-sub_800D6D4: @ 800D6D4
- push {r4,r5,lr}
- ldr r3, _0800D72C @ =0x04000208
- ldrh r2, [r3]
- movs r5, 0
- strh r5, [r3]
- ldr r4, _0800D730 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r1, _0800D734 @ =REG_DISPSTAT
- movs r0, 0x8
- strh r0, [r1]
- adds r1, 0x4
- movs r2, 0x98
- lsls r2, 8
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0800D738 @ =0x00009c04
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0800D73C @ =0x00005e05
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0800D740 @ =0x00005a0b
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0800D744 @ =REG_BLDCNT
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- subs r1, 0xE
- ldr r2, _0800D748 @ =0x0000bf40
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800D72C: .4byte 0x04000208
-_0800D730: .4byte 0x04000200
-_0800D734: .4byte REG_DISPSTAT
-_0800D738: .4byte 0x00009c04
-_0800D73C: .4byte 0x00005e05
-_0800D740: .4byte 0x00005a0b
-_0800D744: .4byte REG_BLDCNT
-_0800D748: .4byte 0x0000bf40
- thumb_func_end sub_800D6D4
-
- thumb_func_start sub_800D74C
-sub_800D74C: @ 800D74C
- push {r4,lr}
- movs r0, 0x12
- bl SetTextWindowBaseTileNum
- ldr r4, _0800D79C @ =gUnknown_03004210
- adds r0, r4, 0
- movs r1, 0x1
- bl LoadTextWindowGraphics_OverridePalSlot
- movs r0, 0x22
- bl SetTextWindowBaseTileNum
- adds r0, r4, 0
- movs r1, 0x1
- bl LoadTextWindowGraphics_OverridePalSlot
- ldr r3, _0800D7A0 @ =gPlttBufferUnfaded
- adds r0, r3, 0
- adds r0, 0xB8
- ldr r1, _0800D7A4 @ =0x00007fe0
- strh r1, [r0]
- adds r2, r3, 0
- adds r2, 0xBA
- ldr r1, _0800D7A8 @ =0x00002529
- strh r1, [r2]
- adds r2, 0x2
- ldr r1, _0800D7AC @ =0x00007fff
- strh r1, [r2]
- adds r2, 0x2
- ldr r1, _0800D7B0 @ =0x0000675a
- strh r1, [r2]
- ldr r1, _0800D7B4 @ =gPlttBufferFaded + 0xB8
- movs r2, 0x4
- bl CpuSet
- bl sub_8032A38
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800D79C: .4byte gUnknown_03004210
-_0800D7A0: .4byte gPlttBufferUnfaded
-_0800D7A4: .4byte 0x00007fe0
-_0800D7A8: .4byte 0x00002529
-_0800D7AC: .4byte 0x00007fff
-_0800D7B0: .4byte 0x0000675a
-_0800D7B4: .4byte gPlttBufferFaded + 0xB8
- thumb_func_end sub_800D74C
-
- thumb_func_start sub_800D7B8
-sub_800D7B8: @ 800D7B8
- push {r4,r5,lr}
- ldr r0, _0800D7DC @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0800D7E0 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- beq _0800D7F8
- ldr r0, _0800D7E4 @ =gBattleTerrainTiles_Building
- ldr r1, _0800D7E8 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800D7EC @ =gBattleTerrainTilemap_Building
- ldr r1, _0800D7F0 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800D7F4 @ =gBattleTerrainPalette_BattleTower
- b _0800DA66
- .align 2, 0
-_0800D7DC: .4byte gUnknown_020239F8
-_0800D7E0: .4byte 0x00000902
-_0800D7E4: .4byte gBattleTerrainTiles_Building
-_0800D7E8: .4byte 0x06008000
-_0800D7EC: .4byte gBattleTerrainTilemap_Building
-_0800D7F0: .4byte 0x0600d000
-_0800D7F4: .4byte gBattleTerrainPalette_BattleTower
-_0800D7F8:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _0800D860
- ldr r0, _0800D820 @ =gGameVersion
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0800D838
- ldr r0, _0800D824 @ =gBattleTerrainTiles_Cave
- ldr r1, _0800D828 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800D82C @ =gBattleTerrainTilemap_Cave
- ldr r1, _0800D830 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800D834 @ =gBattleTerrainPalette_Groudon
- b _0800DA66
- .align 2, 0
-_0800D820: .4byte gGameVersion
-_0800D824: .4byte gBattleTerrainTiles_Cave
-_0800D828: .4byte 0x06008000
-_0800D82C: .4byte gBattleTerrainTilemap_Cave
-_0800D830: .4byte 0x0600d000
-_0800D834: .4byte gBattleTerrainPalette_Groudon
-_0800D838:
- ldr r0, _0800D84C @ =gBattleTerrainTiles_Water
- ldr r1, _0800D850 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800D854 @ =gBattleTerrainTilemap_Water
- ldr r1, _0800D858 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800D85C @ =gBattleTerrainPalette_Kyogre
- b _0800DA66
- .align 2, 0
-_0800D84C: .4byte gBattleTerrainTiles_Water
-_0800D850: .4byte 0x06008000
-_0800D854: .4byte gBattleTerrainTilemap_Water
-_0800D858: .4byte 0x0600d000
-_0800D85C: .4byte gBattleTerrainPalette_Kyogre
-_0800D860:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0800D8D8
- ldr r2, _0800D890 @ =gTrainers
- ldr r0, _0800D894 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0x19
- bne _0800D8AC
- ldr r0, _0800D898 @ =gBattleTerrainTiles_Building
- ldr r1, _0800D89C @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800D8A0 @ =gBattleTerrainTilemap_Building
- ldr r1, _0800D8A4 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800D8A8 @ =gBattleTerrainPalette_BuildingLeader
- b _0800DA66
- .align 2, 0
-_0800D890: .4byte gTrainers
-_0800D894: .4byte gTrainerBattleOpponent
-_0800D898: .4byte gBattleTerrainTiles_Building
-_0800D89C: .4byte 0x06008000
-_0800D8A0: .4byte gBattleTerrainTilemap_Building
-_0800D8A4: .4byte 0x0600d000
-_0800D8A8: .4byte gBattleTerrainPalette_BuildingLeader
-_0800D8AC:
- cmp r0, 0x20
- bne _0800D8D8
- ldr r0, _0800D8C4 @ =gBattleTerrainTiles_Stadium
- ldr r1, _0800D8C8 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800D8CC @ =gBattleTerrainTilemap_Stadium
- ldr r1, _0800D8D0 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800D8D4 @ =gBattleTerrainPalette_StadiumSteven
- b _0800DA66
- .align 2, 0
-_0800D8C4: .4byte gBattleTerrainTiles_Stadium
-_0800D8C8: .4byte 0x06008000
-_0800D8CC: .4byte gBattleTerrainTilemap_Stadium
-_0800D8D0: .4byte 0x0600d000
-_0800D8D4: .4byte gBattleTerrainPalette_StadiumSteven
-_0800D8D8:
- bl sav1_map_get_battletype
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- bls _0800D8E6
- b _0800DA9E
-_0800D8E6:
- lsls r0, 2
- ldr r1, _0800D8F0 @ =_0800D8F4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800D8F0: .4byte _0800D8F4
- .align 2, 0
-_0800D8F4:
- .4byte _0800D918
- .4byte _0800D964
- .4byte _0800D98C
- .4byte _0800D9B4
- .4byte _0800D9DC
- .4byte _0800DA04
- .4byte _0800DA2C
- .4byte _0800DA54
- .4byte _0800DA84
-_0800D918:
- ldr r4, _0800D954 @ =gBattleTerrainTable
- ldr r5, _0800D958 @ =gUnknown_0300428C
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ldr r1, _0800D95C @ =0x06008000
- bl LZDecompressVram
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0x4
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _0800D960 @ =0x0600d000
- bl LZDecompressVram
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r4, 0x10
- adds r0, r4
- ldr r0, [r0]
- b _0800DA66
- .align 2, 0
-_0800D954: .4byte gBattleTerrainTable
-_0800D958: .4byte gUnknown_0300428C
-_0800D95C: .4byte 0x06008000
-_0800D960: .4byte 0x0600d000
-_0800D964:
- ldr r0, _0800D978 @ =gBattleTerrainTiles_Building
- ldr r1, _0800D97C @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800D980 @ =gBattleTerrainTilemap_Building
- ldr r1, _0800D984 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800D988 @ =gBattleTerrainPalette_BuildingGym
- b _0800DA66
- .align 2, 0
-_0800D978: .4byte gBattleTerrainTiles_Building
-_0800D97C: .4byte 0x06008000
-_0800D980: .4byte gBattleTerrainTilemap_Building
-_0800D984: .4byte 0x0600d000
-_0800D988: .4byte gBattleTerrainPalette_BuildingGym
-_0800D98C:
- ldr r0, _0800D9A0 @ =gBattleTerrainTiles_Stadium
- ldr r1, _0800D9A4 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800D9A8 @ =gBattleTerrainTilemap_Stadium
- ldr r1, _0800D9AC @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800D9B0 @ =gBattleTerrainPalette_StadiumMagma
- b _0800DA66
- .align 2, 0
-_0800D9A0: .4byte gBattleTerrainTiles_Stadium
-_0800D9A4: .4byte 0x06008000
-_0800D9A8: .4byte gBattleTerrainTilemap_Stadium
-_0800D9AC: .4byte 0x0600d000
-_0800D9B0: .4byte gBattleTerrainPalette_StadiumMagma
-_0800D9B4:
- ldr r0, _0800D9C8 @ =gBattleTerrainTiles_Stadium
- ldr r1, _0800D9CC @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800D9D0 @ =gBattleTerrainTilemap_Stadium
- ldr r1, _0800D9D4 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800D9D8 @ =gBattleTerrainPalette_StadiumAqua
- b _0800DA66
- .align 2, 0
-_0800D9C8: .4byte gBattleTerrainTiles_Stadium
-_0800D9CC: .4byte 0x06008000
-_0800D9D0: .4byte gBattleTerrainTilemap_Stadium
-_0800D9D4: .4byte 0x0600d000
-_0800D9D8: .4byte gBattleTerrainPalette_StadiumAqua
-_0800D9DC:
- ldr r0, _0800D9F0 @ =gBattleTerrainTiles_Stadium
- ldr r1, _0800D9F4 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800D9F8 @ =gBattleTerrainTilemap_Stadium
- ldr r1, _0800D9FC @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800DA00 @ =gBattleTerrainPalette_StadiumSidney
- b _0800DA66
- .align 2, 0
-_0800D9F0: .4byte gBattleTerrainTiles_Stadium
-_0800D9F4: .4byte 0x06008000
-_0800D9F8: .4byte gBattleTerrainTilemap_Stadium
-_0800D9FC: .4byte 0x0600d000
-_0800DA00: .4byte gBattleTerrainPalette_StadiumSidney
-_0800DA04:
- ldr r0, _0800DA18 @ =gBattleTerrainTiles_Stadium
- ldr r1, _0800DA1C @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800DA20 @ =gBattleTerrainTilemap_Stadium
- ldr r1, _0800DA24 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800DA28 @ =gBattleTerrainPalette_StadiumPhoebe
- b _0800DA66
- .align 2, 0
-_0800DA18: .4byte gBattleTerrainTiles_Stadium
-_0800DA1C: .4byte 0x06008000
-_0800DA20: .4byte gBattleTerrainTilemap_Stadium
-_0800DA24: .4byte 0x0600d000
-_0800DA28: .4byte gBattleTerrainPalette_StadiumPhoebe
-_0800DA2C:
- ldr r0, _0800DA40 @ =gBattleTerrainTiles_Stadium
- ldr r1, _0800DA44 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800DA48 @ =gBattleTerrainTilemap_Stadium
- ldr r1, _0800DA4C @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800DA50 @ =gBattleTerrainPalette_StadiumGlacia
- b _0800DA66
- .align 2, 0
-_0800DA40: .4byte gBattleTerrainTiles_Stadium
-_0800DA44: .4byte 0x06008000
-_0800DA48: .4byte gBattleTerrainTilemap_Stadium
-_0800DA4C: .4byte 0x0600d000
-_0800DA50: .4byte gBattleTerrainPalette_StadiumGlacia
-_0800DA54:
- ldr r0, _0800DA70 @ =gBattleTerrainTiles_Stadium
- ldr r1, _0800DA74 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800DA78 @ =gBattleTerrainTilemap_Stadium
- ldr r1, _0800DA7C @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800DA80 @ =gBattleTerrainPalette_StadiumDrake
-_0800DA66:
- movs r1, 0x20
- movs r2, 0x60
- bl LoadCompressedPalette
- b _0800DA9E
- .align 2, 0
-_0800DA70: .4byte gBattleTerrainTiles_Stadium
-_0800DA74: .4byte 0x06008000
-_0800DA78: .4byte gBattleTerrainTilemap_Stadium
-_0800DA7C: .4byte 0x0600d000
-_0800DA80: .4byte gBattleTerrainPalette_StadiumDrake
-_0800DA84:
- ldr r0, _0800DAA4 @ =gBattleTerrainTiles_Building
- ldr r1, _0800DAA8 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800DAAC @ =gBattleTerrainTilemap_Building
- ldr r1, _0800DAB0 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800DAB4 @ =gBattleTerrainPalette_BattleTower
- movs r1, 0x20
- movs r2, 0x60
- bl LoadCompressedPalette
-_0800DA9E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800DAA4: .4byte gBattleTerrainTiles_Building
-_0800DAA8: .4byte 0x06008000
-_0800DAAC: .4byte gBattleTerrainTilemap_Building
-_0800DAB0: .4byte 0x0600d000
-_0800DAB4: .4byte gBattleTerrainPalette_BattleTower
- thumb_func_end sub_800D7B8
-
- thumb_func_start sub_800DAB8
-sub_800DAB8: @ 800DAB8
- push {lr}
- ldr r0, _0800DAE8 @ =gUnknown_08D00000
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- ldr r0, _0800DAEC @ =gUnknown_08D00524
- ldr r1, _0800DAF0 @ =0x0600c000
- movs r2, 0x80
- lsls r2, 4
- bl CpuSet
- ldr r0, _0800DAF4 @ =gUnknown_08D004E0
- movs r1, 0
- movs r2, 0x40
- bl LoadCompressedPalette
- bl sub_800D74C
- bl sub_800D7B8
- pop {r0}
- bx r0
- .align 2, 0
-_0800DAE8: .4byte gUnknown_08D00000
-_0800DAEC: .4byte gUnknown_08D00524
-_0800DAF0: .4byte 0x0600c000
-_0800DAF4: .4byte gUnknown_08D004E0
- thumb_func_end sub_800DAB8
-
- thumb_func_start sub_800DAF8
-sub_800DAF8: @ 800DAF8
- push {r4-r7,lr}
- sub sp, 0xC
- adds r7, r2, 0
- lsls r0, 24
- lsrs r2, r0, 24
- adds r5, r2, 0
- lsls r1, 24
- lsrs r3, r1, 24
- movs r4, 0
- ldr r0, _0800DB38 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800DBB4
- ldr r0, _0800DB3C @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- movs r2, 0x12
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0800DB52
- cmp r3, 0x1
- beq _0800DB7A
- cmp r3, 0x1
- bgt _0800DB40
- cmp r3, 0
- beq _0800DB4A
- b _0800DB84
- .align 2, 0
-_0800DB38: .4byte gUnknown_020239F8
-_0800DB3C: .4byte gTasks
-_0800DB40:
- cmp r3, 0x2
- beq _0800DB4E
- cmp r3, 0x3
- beq _0800DB6E
- b _0800DB84
-_0800DB4A:
- ldrh r0, [r1, 0xE]
- b _0800DB70
-_0800DB4E:
- ldrh r1, [r1, 0xE]
- b _0800DB7C
-_0800DB52:
- cmp r3, 0x1
- beq _0800DB6E
- cmp r3, 0x1
- bgt _0800DB60
- cmp r3, 0
- beq _0800DB6A
- b _0800DB84
-_0800DB60:
- cmp r3, 0x2
- beq _0800DB76
- cmp r3, 0x3
- beq _0800DB7A
- b _0800DB84
-_0800DB6A:
- ldrh r0, [r1, 0xE]
- b _0800DB70
-_0800DB6E:
- ldrh r0, [r1, 0x10]
-_0800DB70:
- movs r4, 0x3F
- ands r4, r0
- b _0800DB84
-_0800DB76:
- ldrh r1, [r1, 0xE]
- b _0800DB7C
-_0800DB7A:
- ldrh r1, [r1, 0x10]
-_0800DB7C:
- movs r0, 0xFC
- lsls r0, 4
- ands r0, r1
- lsrs r4, r0, 6
-_0800DB84:
- movs r3, 0
- movs r6, 0x3
- ldr r0, _0800DBB0 @ =0x00006001
- adds r5, r0, 0
- mov r2, sp
-_0800DB8E:
- lsls r1, r3, 1
- adds r0, r6, 0
- lsls r0, r1
- ands r0, r4
- asrs r0, r1
- adds r0, r5
- strh r0, [r2]
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x2
- ble _0800DB8E
- mov r0, sp
- adds r1, r7, 0
- movs r2, 0x3
- bl CpuSet
- b _0800DC12
- .align 2, 0
-_0800DBB0: .4byte 0x00006001
-_0800DBB4:
- ldr r0, _0800DBD0 @ =0x02000000
- ldr r1, _0800DBD4 @ =0x000160cb
- adds r0, r1
- ldrb r0, [r0]
- cmp r3, r0
- bne _0800DBDC
- ldr r1, _0800DBD8 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldrh r4, [r0, 0xE]
- b _0800DBE8
- .align 2, 0
-_0800DBD0: .4byte 0x02000000
-_0800DBD4: .4byte 0x000160cb
-_0800DBD8: .4byte gTasks
-_0800DBDC:
- ldr r1, _0800DC1C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r4, [r0, 0x10]
-_0800DBE8:
- movs r3, 0
- movs r6, 0x3
- ldr r2, _0800DC20 @ =0x00006001
- adds r5, r2, 0
- mov r2, sp
-_0800DBF2:
- lsls r1, r3, 1
- adds r0, r6, 0
- lsls r0, r1
- ands r0, r4
- asrs r0, r1
- adds r0, r5
- strh r0, [r2]
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x5
- ble _0800DBF2
- mov r0, sp
- adds r1, r7, 0
- movs r2, 0x6
- bl CpuSet
-_0800DC12:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800DC1C: .4byte gTasks
-_0800DC20: .4byte 0x00006001
- thumb_func_end sub_800DAF8
-
- thumb_func_start sub_800DC24
-sub_800DC24: @ 800DC24
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _0800DC40 @ =gUnknown_02024D26
- ldrb r2, [r0]
- cmp r2, 0x3
- bne _0800DC4C
- ldr r4, _0800DC44 @ =gUnknown_03004210
- ldr r1, _0800DC48 @ =gUnknown_08400E57
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0xD
- b _0800DDCA
- .align 2, 0
-_0800DC40: .4byte gUnknown_02024D26
-_0800DC44: .4byte gUnknown_03004210
-_0800DC48: .4byte gUnknown_08400E57
-_0800DC4C:
- ldr r0, _0800DC80 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800DD38
- cmp r2, 0x1
- bne _0800DCCC
- ldr r2, _0800DC84 @ =gLinkPlayers
- ldr r0, _0800DC88 @ =0x02000000
- ldr r1, _0800DC8C @ =0x000160cb
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0x1
- beq _0800DC9C
- cmp r0, 0x1
- bgt _0800DC90
- cmp r0, 0
- bne _0800DC7E
- b _0800DDA8
-_0800DC7E:
- b _0800DE1C
- .align 2, 0
-_0800DC80: .4byte gUnknown_020239F8
-_0800DC84: .4byte gLinkPlayers
-_0800DC88: .4byte 0x02000000
-_0800DC8C: .4byte 0x000160cb
-_0800DC90:
- cmp r0, 0x2
- bne _0800DC96
- b _0800DDA8
-_0800DC96:
- cmp r0, 0x3
- beq _0800DC9C
- b _0800DE1C
-_0800DC9C:
- ldr r4, _0800DCC0 @ =gUnknown_03004210
- ldr r1, _0800DCC4 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x15
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DCC8 @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x6
- b _0800DDCA
- .align 2, 0
-_0800DCC0: .4byte gUnknown_03004210
-_0800DCC4: .4byte gUnknown_08400E48
-_0800DCC8: .4byte gUnknown_08400E4F
-_0800DCCC:
- ldr r2, _0800DCF0 @ =gLinkPlayers
- ldr r0, _0800DCF4 @ =0x02000000
- ldr r1, _0800DCF8 @ =0x000160cb
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0x1
- beq _0800DDA8
- cmp r0, 0x1
- bgt _0800DCFC
- cmp r0, 0
- beq _0800DD08
- b _0800DE1C
- .align 2, 0
-_0800DCF0: .4byte gLinkPlayers
-_0800DCF4: .4byte 0x02000000
-_0800DCF8: .4byte 0x000160cb
-_0800DCFC:
- cmp r0, 0x2
- beq _0800DD08
- cmp r0, 0x3
- beq _0800DD06
- b _0800DE1C
-_0800DD06:
- b _0800DDA8
-_0800DD08:
- ldr r4, _0800DD2C @ =gUnknown_03004210
- ldr r1, _0800DD30 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x15
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DD34 @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x6
- b _0800DDCA
- .align 2, 0
-_0800DD2C: .4byte gUnknown_03004210
-_0800DD30: .4byte gUnknown_08400E48
-_0800DD34: .4byte gUnknown_08400E4F
-_0800DD38:
- cmp r2, 0x1
- bne _0800DD90
- ldr r2, _0800DD78 @ =gLinkPlayers
- ldr r0, _0800DD7C @ =0x02000000
- ldr r1, _0800DD80 @ =0x000160cb
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0
- beq _0800DDA8
- ldr r4, _0800DD84 @ =gUnknown_03004210
- ldr r1, _0800DD88 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x15
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DD8C @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x6
- b _0800DDCA
- .align 2, 0
-_0800DD78: .4byte gLinkPlayers
-_0800DD7C: .4byte 0x02000000
-_0800DD80: .4byte 0x000160cb
-_0800DD84: .4byte gUnknown_03004210
-_0800DD88: .4byte gUnknown_08400E48
-_0800DD8C: .4byte gUnknown_08400E4F
-_0800DD90:
- ldr r2, _0800DDD8 @ =gLinkPlayers
- ldr r0, _0800DDDC @ =0x02000000
- ldr r1, _0800DDE0 @ =0x000160cb
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0
- beq _0800DDF0
-_0800DDA8:
- ldr r4, _0800DDE4 @ =gUnknown_03004210
- ldr r1, _0800DDE8 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x6
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DDEC @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x15
-_0800DDCA:
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- b _0800DE1C
- .align 2, 0
-_0800DDD8: .4byte gLinkPlayers
-_0800DDDC: .4byte 0x02000000
-_0800DDE0: .4byte 0x000160cb
-_0800DDE4: .4byte gUnknown_03004210
-_0800DDE8: .4byte gUnknown_08400E48
-_0800DDEC: .4byte gUnknown_08400E4F
-_0800DDF0:
- ldr r4, _0800DE24 @ =gUnknown_03004210
- ldr r1, _0800DE28 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x15
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DE2C @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x6
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
-_0800DE1C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800DE24: .4byte gUnknown_03004210
-_0800DE28: .4byte gUnknown_08400E48
-_0800DE2C: .4byte gUnknown_08400E4F
- thumb_func_end sub_800DC24
-
- thumb_func_start sub_800DE30
-sub_800DE30: @ 800DE30
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _0800DE64 @ =gTasks
- lsls r0, 2
- mov r10, r0
- add r0, r9
- lsls r0, 3
- adds r6, r0, r1
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _0800DE58
- b _0800DF9C
-_0800DE58:
- cmp r0, 0x1
- bgt _0800DE68
- cmp r0, 0
- beq _0800DE70
- b _0800E212
- .align 2, 0
-_0800DE64: .4byte gTasks
-_0800DE68:
- cmp r0, 0x2
- bne _0800DE6E
- b _0800E03C
-_0800DE6E:
- b _0800E212
-_0800DE70:
- ldr r0, _0800DED0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800DEE0
- ldr r0, _0800DED4 @ =gLinkPlayers
- ldr r2, _0800DED8 @ =gUnknown_081F9680
- mov r8, r2
- adds r7, r0, 0
- adds r7, 0x8
- movs r5, 0x3
-_0800DE88:
- ldrb r0, [r7, 0x10]
- movs r1, 0x3
- ands r1, r0
- str r1, [sp, 0x8]
- lsls r4, r1, 1
- adds r4, r1
- lsls r4, 2
- mov r2, r8
- adds r0, r4, r2
- ldr r1, [r0]
- str r1, [sp, 0xC]
- ldrh r2, [r0, 0x4]
- ldrb r3, [r0, 0x6]
- ldrb r0, [r0, 0x7]
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- adds r0, r1, 0
- adds r1, r7, 0
- bl sub_8002E4C
- ldr r0, [sp, 0xC]
- bl sub_8002F44
- ldr r2, _0800DEDC @ =gUnknown_081F9680 + 0x8
- adds r4, r2
- ldr r2, [r4]
- mov r0, r9
- ldr r1, [sp, 0x8]
- bl sub_800DAF8
- adds r7, 0x1C
- subs r5, 0x1
- cmp r5, 0
- bge _0800DE88
- b _0800DF70
- .align 2, 0
-_0800DED0: .4byte gUnknown_020239F8
-_0800DED4: .4byte gLinkPlayers
-_0800DED8: .4byte gUnknown_081F9680
-_0800DEDC: .4byte gUnknown_081F9680 + 0x8
-_0800DEE0:
- ldr r0, _0800DF84 @ =0x02000000
- ldr r5, _0800DF88 @ =0x000160cb
- adds r0, r5
- ldrb r7, [r0]
- movs r0, 0x1
- adds r6, r7, 0
- eors r6, r0
- adds r1, r6, 0
- ldr r2, _0800DF8C @ =gLinkPlayers
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0
- beq _0800DF04
- adds r6, r7, 0
- adds r7, r1, 0
-_0800DF04:
- ldr r0, _0800DF90 @ =gUnknown_081F9680
- mov r8, r0
- adds r0, 0x30
- mov r1, r8
- ldr r4, [r1, 0x30]
- lsls r1, r7, 3
- subs r1, r7
- lsls r1, 2
- ldr r2, _0800DF94 @ =gLinkPlayers + 0x8
- adds r1, r2
- ldrh r2, [r0, 0x4]
- ldrb r3, [r0, 0x6]
- ldrb r0, [r0, 0x7]
- str r0, [sp]
- movs r5, 0x1
- str r5, [sp, 0x4]
- adds r0, r4, 0
- bl sub_8002E4C
- adds r0, r4, 0
- bl sub_8002F44
- mov r0, r8
- ldr r2, [r0, 0x38]
- mov r0, r9
- adds r1, r7, 0
- bl sub_800DAF8
- mov r0, r8
- adds r0, 0x3C
- mov r1, r8
- ldr r4, [r1, 0x3C]
- lsls r1, r6, 3
- subs r1, r6
- lsls r1, 2
- ldr r2, _0800DF94 @ =gLinkPlayers + 0x8
- adds r1, r2
- ldrh r2, [r0, 0x4]
- ldrb r3, [r0, 0x6]
- ldrb r0, [r0, 0x7]
- str r0, [sp]
- str r5, [sp, 0x4]
- adds r0, r4, 0
- bl sub_8002E4C
- adds r0, r4, 0
- bl sub_8002F44
- mov r5, r8
- ldr r2, [r5, 0x44]
- mov r0, r9
- adds r1, r6, 0
- bl sub_800DAF8
-_0800DF70:
- ldr r0, _0800DF98 @ =gTasks
- mov r1, r10
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0800E212
- .align 2, 0
-_0800DF84: .4byte 0x02000000
-_0800DF88: .4byte 0x000160cb
-_0800DF8C: .4byte gLinkPlayers
-_0800DF90: .4byte gUnknown_081F9680
-_0800DF94: .4byte gLinkPlayers + 0x8
-_0800DF98: .4byte gTasks
-_0800DF9C:
- ldr r0, _0800E010 @ =0x00002710
- bl AllocSpritePalette
- lsls r0, 24
- ldr r2, _0800E014 @ =gPlttBufferUnfaded
- lsrs r0, 19
- ldr r1, _0800E018 @ =0x0000021e
- adds r0, r1
- adds r2, r0, r2
- ldr r1, _0800E01C @ =gPlttBufferFaded
- adds r0, r1
- ldr r1, _0800E020 @ =0x00007fff
- strh r1, [r0]
- strh r1, [r2]
- ldr r0, _0800E024 @ =gSpriteTemplate_81F9574
- movs r1, 0x6C
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- ldr r4, _0800E028 @ =0x02000000
- ldr r2, _0800E02C @ =0x0001608a
- adds r7, r4, r2
- strb r0, [r7]
- ldr r0, _0800E030 @ =gSpriteTemplate_81F958C
- movs r1, 0x84
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- ldr r5, _0800E034 @ =0x0001608b
- adds r4, r5
- strb r0, [r4]
- ldr r3, _0800E038 @ =gSprites
- ldrb r1, [r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _0800E212
- .align 2, 0
-_0800E010: .4byte 0x00002710
-_0800E014: .4byte gPlttBufferUnfaded
-_0800E018: .4byte 0x0000021e
-_0800E01C: .4byte gPlttBufferFaded
-_0800E020: .4byte 0x00007fff
-_0800E024: .4byte gSpriteTemplate_81F9574
-_0800E028: .4byte 0x02000000
-_0800E02C: .4byte 0x0001608a
-_0800E030: .4byte gSpriteTemplate_81F958C
-_0800E034: .4byte 0x0001608b
-_0800E038: .4byte gSprites
-_0800E03C:
- movs r1, 0x12
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _0800E0A4
- ldr r4, _0800E090 @ =gUnknown_030042C0
- ldrh r0, [r6, 0xA]
- bl Sin2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0800E056
- adds r0, 0x1F
-_0800E056:
- asrs r1, r0, 5
- movs r2, 0x14
- negs r2, r2
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r4]
- ldr r4, _0800E094 @ =gUnknown_03004288
- ldrh r0, [r6, 0xC]
- bl Sin2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0800E074
- adds r0, 0x1F
-_0800E074:
- asrs r1, r0, 5
- movs r5, 0x8C
- negs r5, r5
- adds r0, r5, 0
- subs r0, r1
- strh r0, [r4]
- ldr r0, _0800E098 @ =gUnknown_030041B4
- ldr r2, _0800E09C @ =0x0000ffdc
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _0800E0A0 @ =gUnknown_03004280
- strh r1, [r0]
- b _0800E110
- .align 2, 0
-_0800E090: .4byte gUnknown_030042C0
-_0800E094: .4byte gUnknown_03004288
-_0800E098: .4byte gUnknown_030041B4
-_0800E09C: .4byte 0x0000ffdc
-_0800E0A0: .4byte gUnknown_03004280
-_0800E0A4:
- ldr r4, _0800E134 @ =gUnknown_030042C0
- ldrh r0, [r6, 0xA]
- bl Sin2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0800E0B6
- adds r0, 0x1F
-_0800E0B6:
- asrs r1, r0, 5
- movs r5, 0x14
- negs r5, r5
- adds r0, r5, 0
- subs r0, r1
- strh r0, [r4]
- ldr r4, _0800E138 @ =gUnknown_030041B4
- ldrh r0, [r6, 0xA]
- bl Cos2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0800E0D4
- adds r0, 0x1F
-_0800E0D4:
- asrs r0, 5
- subs r0, 0xA4
- strh r0, [r4]
- ldr r4, _0800E13C @ =gUnknown_03004288
- ldrh r0, [r6, 0xC]
- bl Sin2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0800E0EC
- adds r0, 0x1F
-_0800E0EC:
- asrs r1, r0, 5
- movs r2, 0x8C
- negs r2, r2
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r4]
- ldr r4, _0800E140 @ =gUnknown_03004280
- ldrh r0, [r6, 0xC]
- bl Cos2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0800E10A
- adds r0, 0x1F
-_0800E10A:
- asrs r0, 5
- subs r0, 0xA4
- strh r0, [r4]
-_0800E110:
- ldr r1, _0800E144 @ =gTasks
- mov r5, r9
- lsls r0, r5, 2
- add r0, r9
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xC]
- movs r2, 0xC
- ldrsh r7, [r1, r2]
- cmp r7, 0
- beq _0800E148
- subs r0, 0x2
- strh r0, [r1, 0xC]
- ldrh r0, [r1, 0xA]
- adds r0, 0x2
- strh r0, [r1, 0xA]
- b _0800E212
- .align 2, 0
-_0800E134: .4byte gUnknown_030042C0
-_0800E138: .4byte gUnknown_030041B4
-_0800E13C: .4byte gUnknown_03004288
-_0800E140: .4byte gUnknown_03004280
-_0800E144: .4byte gTasks
-_0800E148:
- movs r5, 0x12
- ldrsh r0, [r1, r5]
- cmp r0, 0
- beq _0800E154
- bl sub_800DC24
-_0800E154:
- movs r0, 0x78
- bl PlaySE
- mov r0, r9
- bl DestroyTask
- ldr r4, _0800E224 @ =gSprites
- ldr r0, _0800E228 @ =0x02000000
- mov r8, r0
- ldr r1, _0800E22C @ =0x0001608a
- add r1, r8
- mov r9, r1
- ldrb r0, [r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- ldr r5, _0800E230 @ =0x0001608b
- add r8, r5
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- mov r1, r8
- ldrb r0, [r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x40
- ldr r5, _0800E234 @ =0x000003ff
- adds r0, r5, 0
- ands r1, r0
- ldr r0, _0800E238 @ =0xfffffc00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
- mov r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r7, [r0, 0x2E]
- mov r2, r8
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- strh r1, [r0, 0x2E]
- mov r5, r9
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x20]
- strh r1, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x20]
- strh r1, [r0, 0x30]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r7, [r0, 0x32]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r7, [r0, 0x32]
-_0800E212:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800E224: .4byte gSprites
-_0800E228: .4byte 0x02000000
-_0800E22C: .4byte 0x0001608a
-_0800E230: .4byte 0x0001608b
-_0800E234: .4byte 0x000003ff
-_0800E238: .4byte 0xfffffc00
- thumb_func_end sub_800DE30
-
- thumb_func_start sub_800E23C
-sub_800E23C: @ 800E23C
- push {r4,r5,lr}
- ldr r0, _0800E29C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0800E2DC
- ldr r0, _0800E2A0 @ =gVersusFrameGfx
- ldr r1, _0800E2A4 @ =0x06004000
- bl LZDecompressVram
- ldr r4, _0800E2A8 @ =gVersusFrameTilemap
- ldr r1, _0800E2AC @ =0x0600e000
- adds r0, r4, 0
- bl LZDecompressVram
- ldr r1, _0800E2B0 @ =0x0600f000
- adds r0, r4, 0
- bl LZDecompressVram
- ldr r0, _0800E2B4 @ =gUnknown_08E5DC2C
- ldr r1, _0800E2B8 @ =0x06010000
- bl LZDecompressVram
- ldr r0, _0800E2BC @ =gVersusFramePal
- movs r1, 0x60
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r1, _0800E2C0 @ =REG_BG1CNT
- ldr r2, _0800E2C4 @ =0x00005c04
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0800E2C8 @ =REG_WININ
- movs r1, 0x36
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r0, _0800E2CC @ =gUnknown_030041B4
- ldr r2, _0800E2D0 @ =0x0000ff5c
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _0800E2D4 @ =gUnknown_03004280
- strh r1, [r0]
- ldr r0, _0800E2D8 @ =gUnknown_081F95A4
- bl LoadCompressedObjectPic
- b _0800E3FC
- .align 2, 0
-_0800E29C: .4byte gUnknown_020239F8
-_0800E2A0: .4byte gVersusFrameGfx
-_0800E2A4: .4byte 0x06004000
-_0800E2A8: .4byte gVersusFrameTilemap
-_0800E2AC: .4byte 0x0600e000
-_0800E2B0: .4byte 0x0600f000
-_0800E2B4: .4byte gUnknown_08E5DC2C
-_0800E2B8: .4byte 0x06010000
-_0800E2BC: .4byte gVersusFramePal
-_0800E2C0: .4byte REG_BG1CNT
-_0800E2C4: .4byte 0x00005c04
-_0800E2C8: .4byte REG_WININ
-_0800E2CC: .4byte gUnknown_030041B4
-_0800E2D0: .4byte 0x0000ff5c
-_0800E2D4: .4byte gUnknown_03004280
-_0800E2D8: .4byte gUnknown_081F95A4
-_0800E2DC:
- ldr r0, _0800E2F0 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- beq _0800E300
- ldr r0, _0800E2F4 @ =gBattleTerrainAnimTiles_Building
- ldr r1, _0800E2F8 @ =0x06004000
- bl LZDecompressVram
- ldr r0, _0800E2FC @ =gBattleTerrainAnimTilemap_Building
- b _0800E3D2
- .align 2, 0
-_0800E2F0: .4byte 0x00000902
-_0800E2F4: .4byte gBattleTerrainAnimTiles_Building
-_0800E2F8: .4byte 0x06004000
-_0800E2FC: .4byte gBattleTerrainAnimTilemap_Building
-_0800E300:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _0800E348
- ldr r0, _0800E320 @ =gGameVersion
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0800E330
- ldr r0, _0800E324 @ =gBattleTerrainAnimTiles_Cave
- ldr r1, _0800E328 @ =0x06004000
- bl LZDecompressVram
- ldr r0, _0800E32C @ =gBattleTerrainAnimTilemap_Cave
- b _0800E3D2
- .align 2, 0
-_0800E320: .4byte gGameVersion
-_0800E324: .4byte gBattleTerrainAnimTiles_Cave
-_0800E328: .4byte 0x06004000
-_0800E32C: .4byte gBattleTerrainAnimTilemap_Cave
-_0800E330:
- ldr r0, _0800E33C @ =gBattleTerrainAnimTiles_Underwater
- ldr r1, _0800E340 @ =0x06004000
- bl LZDecompressVram
- ldr r0, _0800E344 @ =gBattleTerrainAnimTilemap_Underwater
- b _0800E3D2
- .align 2, 0
-_0800E33C: .4byte gBattleTerrainAnimTiles_Underwater
-_0800E340: .4byte 0x06004000
-_0800E344: .4byte gBattleTerrainAnimTilemap_Underwater
-_0800E348:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0800E3A0
- ldr r2, _0800E370 @ =gTrainers
- ldr r0, _0800E374 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0x19
- bne _0800E384
- ldr r0, _0800E378 @ =gBattleTerrainAnimTiles_Building
- ldr r1, _0800E37C @ =0x06004000
- bl LZDecompressVram
- ldr r0, _0800E380 @ =gBattleTerrainAnimTilemap_Building
- b _0800E3D2
- .align 2, 0
-_0800E370: .4byte gTrainers
-_0800E374: .4byte gTrainerBattleOpponent
-_0800E378: .4byte gBattleTerrainAnimTiles_Building
-_0800E37C: .4byte 0x06004000
-_0800E380: .4byte gBattleTerrainAnimTilemap_Building
-_0800E384:
- cmp r0, 0x20
- bne _0800E3A0
- ldr r0, _0800E394 @ =gBattleTerrainAnimTiles_Building
- ldr r1, _0800E398 @ =0x06004000
- bl LZDecompressVram
- ldr r0, _0800E39C @ =gBattleTerrainAnimTilemap_Building
- b _0800E3D2
- .align 2, 0
-_0800E394: .4byte gBattleTerrainAnimTiles_Building
-_0800E398: .4byte 0x06004000
-_0800E39C: .4byte gBattleTerrainAnimTilemap_Building
-_0800E3A0:
- bl sav1_map_get_battletype
- lsls r0, 24
- cmp r0, 0
- bne _0800E3EC
- ldr r4, _0800E3DC @ =gBattleTerrainTable
- ldr r5, _0800E3E0 @ =gUnknown_0300428C
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x8
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _0800E3E4 @ =0x06004000
- bl LZDecompressVram
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r4, 0xC
- adds r0, r4
- ldr r0, [r0]
-_0800E3D2:
- ldr r1, _0800E3E8 @ =0x0600e000
- bl LZDecompressVram
- b _0800E3FC
- .align 2, 0
-_0800E3DC: .4byte gBattleTerrainTable
-_0800E3E0: .4byte gUnknown_0300428C
-_0800E3E4: .4byte 0x06004000
-_0800E3E8: .4byte 0x0600e000
-_0800E3EC:
- ldr r0, _0800E404 @ =gBattleTerrainAnimTiles_Building
- ldr r1, _0800E408 @ =0x06004000
- bl LZDecompressVram
- ldr r0, _0800E40C @ =gBattleTerrainAnimTilemap_Building
- ldr r1, _0800E410 @ =0x0600e000
- bl LZDecompressVram
-_0800E3FC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800E404: .4byte gBattleTerrainAnimTiles_Building
-_0800E408: .4byte 0x06004000
-_0800E40C: .4byte gBattleTerrainAnimTilemap_Building
-_0800E410: .4byte 0x0600e000
- thumb_func_end sub_800E23C
-
- thumb_func_start sub_800E414
-sub_800E414: @ 800E414
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- cmp r0, 0x6
- bls _0800E422
- b _0800E7BA
-_0800E422:
- lsls r0, 2
- ldr r1, _0800E42C @ =_0800E430
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800E42C: .4byte _0800E430
- .align 2, 0
-_0800E430:
- .4byte _0800E44C
- .4byte _0800E45C
- .4byte _0800E474
- .4byte _0800E484
- .4byte _0800E590
- .4byte _0800E69C
- .4byte _0800E7B4
-_0800E44C:
- ldr r0, _0800E458 @ =gUnknown_08D00000
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- b _0800E7BC
- .align 2, 0
-_0800E458: .4byte gUnknown_08D00000
-_0800E45C:
- ldr r0, _0800E46C @ =gUnknown_08D00524
- ldr r1, _0800E470 @ =0x0600c000
- movs r2, 0x80
- lsls r2, 4
- bl CpuSet
- b _0800E7BC
- .align 2, 0
-_0800E46C: .4byte gUnknown_08D00524
-_0800E470: .4byte 0x0600c000
-_0800E474:
- ldr r0, _0800E480 @ =gUnknown_08D004E0
- movs r1, 0
- movs r2, 0x40
- bl LoadCompressedPalette
- b _0800E7BC
- .align 2, 0
-_0800E480: .4byte gUnknown_08D004E0
-_0800E484:
- ldr r0, _0800E4A8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0800E4AC @ =0x00000902
- ands r0, r1
- cmp r0, 0
- beq _0800E492
- b _0800E57C
-_0800E492:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _0800E4C0
- ldr r0, _0800E4B0 @ =gGameVersion
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0800E4B8
- ldr r0, _0800E4B4 @ =gBattleTerrainTiles_Cave
- b _0800E57E
- .align 2, 0
-_0800E4A8: .4byte gUnknown_020239F8
-_0800E4AC: .4byte 0x00000902
-_0800E4B0: .4byte gGameVersion
-_0800E4B4: .4byte gBattleTerrainTiles_Cave
-_0800E4B8:
- ldr r0, _0800E4BC @ =gBattleTerrainTiles_Water
- b _0800E57E
- .align 2, 0
-_0800E4BC: .4byte gBattleTerrainTiles_Water
-_0800E4C0:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0800E4F0
- ldr r2, _0800E4E4 @ =gTrainers
- ldr r0, _0800E4E8 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0x19
- beq _0800E57C
- cmp r0, 0x20
- bne _0800E4F0
- ldr r0, _0800E4EC @ =gBattleTerrainTiles_Stadium
- b _0800E57E
- .align 2, 0
-_0800E4E4: .4byte gTrainers
-_0800E4E8: .4byte gTrainerBattleOpponent
-_0800E4EC: .4byte gBattleTerrainTiles_Stadium
-_0800E4F0:
- bl sav1_map_get_battletype
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- bls _0800E4FE
- b _0800E7BC
-_0800E4FE:
- lsls r0, 2
- ldr r1, _0800E508 @ =_0800E50C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800E508: .4byte _0800E50C
- .align 2, 0
-_0800E50C:
- .4byte _0800E530
- .4byte _0800E57C
- .4byte _0800E54C
- .4byte _0800E554
- .4byte _0800E55C
- .4byte _0800E564
- .4byte _0800E56C
- .4byte _0800E574
- .4byte _0800E57C
-_0800E530:
- ldr r2, _0800E544 @ =gBattleTerrainTable
- ldr r0, _0800E548 @ =gUnknown_0300428C
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- b _0800E57E
- .align 2, 0
-_0800E544: .4byte gBattleTerrainTable
-_0800E548: .4byte gUnknown_0300428C
-_0800E54C:
- ldr r0, _0800E550 @ =gBattleTerrainTiles_Stadium
- b _0800E57E
- .align 2, 0
-_0800E550: .4byte gBattleTerrainTiles_Stadium
-_0800E554:
- ldr r0, _0800E558 @ =gBattleTerrainTiles_Stadium
- b _0800E57E
- .align 2, 0
-_0800E558: .4byte gBattleTerrainTiles_Stadium
-_0800E55C:
- ldr r0, _0800E560 @ =gBattleTerrainTiles_Stadium
- b _0800E57E
- .align 2, 0
-_0800E560: .4byte gBattleTerrainTiles_Stadium
-_0800E564:
- ldr r0, _0800E568 @ =gBattleTerrainTiles_Stadium
- b _0800E57E
- .align 2, 0
-_0800E568: .4byte gBattleTerrainTiles_Stadium
-_0800E56C:
- ldr r0, _0800E570 @ =gBattleTerrainTiles_Stadium
- b _0800E57E
- .align 2, 0
-_0800E570: .4byte gBattleTerrainTiles_Stadium
-_0800E574:
- ldr r0, _0800E578 @ =gBattleTerrainTiles_Stadium
- b _0800E57E
- .align 2, 0
-_0800E578: .4byte gBattleTerrainTiles_Stadium
-_0800E57C:
- ldr r0, _0800E588 @ =gBattleTerrainTiles_Building
-_0800E57E:
- ldr r1, _0800E58C @ =0x06008000
- bl LZDecompressVram
- b _0800E7BC
- .align 2, 0
-_0800E588: .4byte gBattleTerrainTiles_Building
-_0800E58C: .4byte 0x06008000
-_0800E590:
- ldr r0, _0800E5B4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0800E5B8 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- beq _0800E59E
- b _0800E688
-_0800E59E:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _0800E5CC
- ldr r0, _0800E5BC @ =gGameVersion
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0800E5C4
- ldr r0, _0800E5C0 @ =gBattleTerrainTilemap_Cave
- b _0800E68A
- .align 2, 0
-_0800E5B4: .4byte gUnknown_020239F8
-_0800E5B8: .4byte 0x00000902
-_0800E5BC: .4byte gGameVersion
-_0800E5C0: .4byte gBattleTerrainTilemap_Cave
-_0800E5C4:
- ldr r0, _0800E5C8 @ =gBattleTerrainTilemap_Water
- b _0800E68A
- .align 2, 0
-_0800E5C8: .4byte gBattleTerrainTilemap_Water
-_0800E5CC:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0800E5FC
- ldr r2, _0800E5F0 @ =gTrainers
- ldr r0, _0800E5F4 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0x19
- beq _0800E688
- cmp r0, 0x20
- bne _0800E5FC
- ldr r0, _0800E5F8 @ =gBattleTerrainTilemap_Stadium
- b _0800E68A
- .align 2, 0
-_0800E5F0: .4byte gTrainers
-_0800E5F4: .4byte gTrainerBattleOpponent
-_0800E5F8: .4byte gBattleTerrainTilemap_Stadium
-_0800E5FC:
- bl sav1_map_get_battletype
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- bls _0800E60A
- b _0800E7BC
-_0800E60A:
- lsls r0, 2
- ldr r1, _0800E614 @ =_0800E618
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800E614: .4byte _0800E618
- .align 2, 0
-_0800E618:
- .4byte _0800E63C
- .4byte _0800E688
- .4byte _0800E658
- .4byte _0800E660
- .4byte _0800E668
- .4byte _0800E670
- .4byte _0800E678
- .4byte _0800E680
- .4byte _0800E688
-_0800E63C:
- ldr r2, _0800E650 @ =gBattleTerrainTable
- ldr r0, _0800E654 @ =gUnknown_0300428C
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r0, r2
- ldr r0, [r0]
- b _0800E68A
- .align 2, 0
-_0800E650: .4byte gBattleTerrainTable
-_0800E654: .4byte gUnknown_0300428C
-_0800E658:
- ldr r0, _0800E65C @ =gBattleTerrainTilemap_Stadium
- b _0800E68A
- .align 2, 0
-_0800E65C: .4byte gBattleTerrainTilemap_Stadium
-_0800E660:
- ldr r0, _0800E664 @ =gBattleTerrainTilemap_Stadium
- b _0800E68A
- .align 2, 0
-_0800E664: .4byte gBattleTerrainTilemap_Stadium
-_0800E668:
- ldr r0, _0800E66C @ =gBattleTerrainTilemap_Stadium
- b _0800E68A
- .align 2, 0
-_0800E66C: .4byte gBattleTerrainTilemap_Stadium
-_0800E670:
- ldr r0, _0800E674 @ =gBattleTerrainTilemap_Stadium
- b _0800E68A
- .align 2, 0
-_0800E674: .4byte gBattleTerrainTilemap_Stadium
-_0800E678:
- ldr r0, _0800E67C @ =gBattleTerrainTilemap_Stadium
- b _0800E68A
- .align 2, 0
-_0800E67C: .4byte gBattleTerrainTilemap_Stadium
-_0800E680:
- ldr r0, _0800E684 @ =gBattleTerrainTilemap_Stadium
- b _0800E68A
- .align 2, 0
-_0800E684: .4byte gBattleTerrainTilemap_Stadium
-_0800E688:
- ldr r0, _0800E694 @ =gBattleTerrainTilemap_Building
-_0800E68A:
- ldr r1, _0800E698 @ =0x0600d000
- bl LZDecompressVram
- b _0800E7BC
- .align 2, 0
-_0800E694: .4byte gBattleTerrainTilemap_Building
-_0800E698: .4byte 0x0600d000
-_0800E69C:
- ldr r0, _0800E6C0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0800E6C4 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- beq _0800E6AA
- b _0800E7A4
-_0800E6AA:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _0800E6D8
- ldr r0, _0800E6C8 @ =gGameVersion
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0800E6D0
- ldr r0, _0800E6CC @ =gBattleTerrainPalette_Groudon
- b _0800E7A6
- .align 2, 0
-_0800E6C0: .4byte gUnknown_020239F8
-_0800E6C4: .4byte 0x00000902
-_0800E6C8: .4byte gGameVersion
-_0800E6CC: .4byte gBattleTerrainPalette_Groudon
-_0800E6D0:
- ldr r0, _0800E6D4 @ =gBattleTerrainPalette_Kyogre
- b _0800E7A6
- .align 2, 0
-_0800E6D4: .4byte gBattleTerrainPalette_Kyogre
-_0800E6D8:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0800E710
- ldr r2, _0800E6F8 @ =gTrainers
- ldr r0, _0800E6FC @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0x19
- bne _0800E704
- ldr r0, _0800E700 @ =gBattleTerrainPalette_BuildingLeader
- b _0800E7A6
- .align 2, 0
-_0800E6F8: .4byte gTrainers
-_0800E6FC: .4byte gTrainerBattleOpponent
-_0800E700: .4byte gBattleTerrainPalette_BuildingLeader
-_0800E704:
- cmp r0, 0x20
- bne _0800E710
- ldr r0, _0800E70C @ =gBattleTerrainPalette_StadiumSteven
- b _0800E7A6
- .align 2, 0
-_0800E70C: .4byte gBattleTerrainPalette_StadiumSteven
-_0800E710:
- bl sav1_map_get_battletype
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- bhi _0800E7BC
- lsls r0, 2
- ldr r1, _0800E728 @ =_0800E72C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800E728: .4byte _0800E72C
- .align 2, 0
-_0800E72C:
- .4byte _0800E750
- .4byte _0800E76C
- .4byte _0800E774
- .4byte _0800E77C
- .4byte _0800E784
- .4byte _0800E78C
- .4byte _0800E794
- .4byte _0800E79C
- .4byte _0800E7A4
-_0800E750:
- ldr r2, _0800E764 @ =gBattleTerrainTable
- ldr r0, _0800E768 @ =gUnknown_0300428C
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x10
- adds r0, r2
- ldr r0, [r0]
- b _0800E7A6
- .align 2, 0
-_0800E764: .4byte gBattleTerrainTable
-_0800E768: .4byte gUnknown_0300428C
-_0800E76C:
- ldr r0, _0800E770 @ =gBattleTerrainPalette_BuildingGym
- b _0800E7A6
- .align 2, 0
-_0800E770: .4byte gBattleTerrainPalette_BuildingGym
-_0800E774:
- ldr r0, _0800E778 @ =gBattleTerrainPalette_StadiumMagma
- b _0800E7A6
- .align 2, 0
-_0800E778: .4byte gBattleTerrainPalette_StadiumMagma
-_0800E77C:
- ldr r0, _0800E780 @ =gBattleTerrainPalette_StadiumAqua
- b _0800E7A6
- .align 2, 0
-_0800E780: .4byte gBattleTerrainPalette_StadiumAqua
-_0800E784:
- ldr r0, _0800E788 @ =gBattleTerrainPalette_StadiumSidney
- b _0800E7A6
- .align 2, 0
-_0800E788: .4byte gBattleTerrainPalette_StadiumSidney
-_0800E78C:
- ldr r0, _0800E790 @ =gBattleTerrainPalette_StadiumPhoebe
- b _0800E7A6
- .align 2, 0
-_0800E790: .4byte gBattleTerrainPalette_StadiumPhoebe
-_0800E794:
- ldr r0, _0800E798 @ =gBattleTerrainPalette_StadiumGlacia
- b _0800E7A6
- .align 2, 0
-_0800E798: .4byte gBattleTerrainPalette_StadiumGlacia
-_0800E79C:
- ldr r0, _0800E7A0 @ =gBattleTerrainPalette_StadiumDrake
- b _0800E7A6
- .align 2, 0
-_0800E7A0: .4byte gBattleTerrainPalette_StadiumDrake
-_0800E7A4:
- ldr r0, _0800E7B0 @ =gBattleTerrainPalette_BattleTower
-_0800E7A6:
- movs r1, 0x20
- movs r2, 0x60
- bl LoadCompressedPalette
- b _0800E7BC
- .align 2, 0
-_0800E7B0: .4byte gBattleTerrainPalette_BattleTower
-_0800E7B4:
- bl sub_800D74C
- b _0800E7BC
-_0800E7BA:
- movs r4, 0x1
-_0800E7BC:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_800E414
-
- thumb_func_start sub_800E7C4
-sub_800E7C4: @ 800E7C4
- push {lr}
- ldr r0, _0800E7E4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800E7F0
- bl sub_800B858
- ldr r0, _0800E7E8 @ =sub_800F104
- bl SetMainCallback2
- ldr r1, _0800E7EC @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1]
- b _0800E7F4
- .align 2, 0
-_0800E7E4: .4byte gUnknown_020239F8
-_0800E7E8: .4byte sub_800F104
-_0800E7EC: .4byte gUnknown_02024D1E
-_0800E7F0:
- bl sub_800E7F8
-_0800E7F4:
- pop {r0}
- bx r0
- thumb_func_end sub_800E7C4
-
- thumb_func_start sub_800E7F8
-sub_800E7F8: @ 800E7F8
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r4, 0
- str r4, [sp]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _0800E90C @ =0x05006000
- mov r0, sp
- bl CpuSet
- ldr r0, _0800E910 @ =REG_MOSAIC
- strh r4, [r0]
- subs r0, 0xC
- movs r2, 0xF0
- strh r2, [r0]
- adds r0, 0x4
- ldr r3, _0800E914 @ =0x00005051
- adds r1, r3, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r0, _0800E918 @ =gUnknown_030042C4
- strh r2, [r0]
- ldr r0, _0800E91C @ =gUnknown_03004240
- strh r1, [r0]
- bl dp12_8087EA4
- ldr r0, _0800E920 @ =gUnknown_03004DE0
- movs r3, 0xF0
- movs r5, 0xF0
- lsls r5, 3
- adds r2, r0, r5
- movs r1, 0x4F
-_0800E84A:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _0800E84A
- movs r1, 0x50
- ldr r4, _0800E924 @ =gUnknown_081F9674
- ldr r0, _0800E920 @ =gUnknown_03004DE0
- ldr r3, _0800E928 @ =0x0000ff10
- movs r5, 0x82
- lsls r5, 4
- adds r2, r0, r5
- adds r0, 0xA0
-_0800E868:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- adds r1, 0x1
- cmp r1, 0x9F
- ble _0800E868
- ldr r0, [r4]
- ldr r1, [r4, 0x4]
- ldr r2, [r4, 0x8]
- bl sub_80895F8
- ldr r4, _0800E92C @ =gWindowConfig_81E6C58
- adds r0, r4, 0
- bl SetUpWindowConfig
- bl ResetPaletteFade
- ldr r0, _0800E930 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0800E934 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r0, _0800E938 @ =gUnknown_030042C0
- strh r1, [r0]
- ldr r0, _0800E93C @ =gUnknown_030041B4
- strh r1, [r0]
- ldr r0, _0800E940 @ =gUnknown_03004288
- strh r1, [r0]
- ldr r0, _0800E944 @ =gUnknown_03004280
- strh r1, [r0]
- ldr r0, _0800E948 @ =gUnknown_030041B0
- strh r1, [r0]
- ldr r0, _0800E94C @ =gUnknown_030041B8
- strh r1, [r0]
- bl sub_8081D3C
- ldr r1, _0800E950 @ =gUnknown_0300428C
- strb r0, [r1]
- ldr r0, _0800E954 @ =gUnknown_03004210
- adds r1, r4, 0
- bl InitWindowFromConfig
- ldr r0, _0800E958 @ =gUnknown_030041D0
- ldr r1, _0800E95C @ =gWindowConfig_81E71D0
- bl InitWindowFromConfig
- ldr r0, _0800E960 @ =gUnknown_03004250
- ldr r1, _0800E964 @ =gWindowConfig_81E71EC
- bl InitWindowFromConfig
- bl sub_800D6D4
- bl sub_800DAB8
- bl ResetSpriteData
- bl ResetTasks
- bl sub_800E23C
- bl FreeAllSpritePalettes
- ldr r1, _0800E968 @ =gReservedSpritePaletteCount
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _0800E96C @ =sub_800FCFC
- bl SetVBlankCallback
- bl sub_800B884
- ldr r0, _0800E970 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800E978
- ldr r0, _0800E974 @ =sub_800F298
- bl SetMainCallback2
- b _0800E97E
- .align 2, 0
-_0800E90C: .4byte 0x05006000
-_0800E910: .4byte REG_MOSAIC
-_0800E914: .4byte 0x00005051
-_0800E918: .4byte gUnknown_030042C4
-_0800E91C: .4byte gUnknown_03004240
-_0800E920: .4byte gUnknown_03004DE0
-_0800E924: .4byte gUnknown_081F9674
-_0800E928: .4byte 0x0000ff10
-_0800E92C: .4byte gWindowConfig_81E6C58
-_0800E930: .4byte gUnknown_030042A4
-_0800E934: .4byte gUnknown_030042A0
-_0800E938: .4byte gUnknown_030042C0
-_0800E93C: .4byte gUnknown_030041B4
-_0800E940: .4byte gUnknown_03004288
-_0800E944: .4byte gUnknown_03004280
-_0800E948: .4byte gUnknown_030041B0
-_0800E94C: .4byte gUnknown_030041B8
-_0800E950: .4byte gUnknown_0300428C
-_0800E954: .4byte gUnknown_03004210
-_0800E958: .4byte gUnknown_030041D0
-_0800E95C: .4byte gWindowConfig_81E71D0
-_0800E960: .4byte gUnknown_03004250
-_0800E964: .4byte gWindowConfig_81E71EC
-_0800E968: .4byte gReservedSpritePaletteCount
-_0800E96C: .4byte sub_800FCFC
-_0800E970: .4byte gUnknown_020239F8
-_0800E974: .4byte sub_800F298
-_0800E978:
- ldr r0, _0800E9CC @ =sub_800EC9C
- bl SetMainCallback2
-_0800E97E:
- ldr r0, _0800E9D0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0800E998
- ldr r0, _0800E9D4 @ =gEnemyParty
- ldr r1, _0800E9D8 @ =gTrainerBattleOpponent
- ldrh r1, [r1]
- bl sub_800F8E8
- bl sub_8040C38
-_0800E998:
- ldr r0, _0800E9DC @ =gMain
- ldr r1, _0800E9E0 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- ldr r4, _0800E9E4 @ =gPlayerParty
- movs r3, 0xFA
- lsls r3, 1
- adds r5, r4, r3
-_0800E9AE:
- adds r0, r4, 0
- movs r1, 0x3
- bl AdjustFriendship
- adds r4, 0x64
- cmp r4, r5
- ble _0800E9AE
- movs r1, 0
- ldr r0, _0800E9E8 @ =gUnknown_02024D1E
- strb r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800E9CC: .4byte sub_800EC9C
-_0800E9D0: .4byte gUnknown_020239F8
-_0800E9D4: .4byte gEnemyParty
-_0800E9D8: .4byte gTrainerBattleOpponent
-_0800E9DC: .4byte gMain
-_0800E9E0: .4byte 0x0000043d
-_0800E9E4: .4byte gPlayerParty
-_0800E9E8: .4byte gUnknown_02024D1E
- thumb_func_end sub_800E7F8
-
- thumb_func_start sub_800E9EC
-sub_800E9EC: @ 800E9EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- mov r9, r6
- movs r0, 0xCE
- lsls r0, 1
- mov r10, r0
- mov r8, r6
-_0800EA02:
- movs r0, 0x64
- mov r4, r9
- muls r4, r0
- ldr r0, _0800EAA4 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- cmp r5, 0
- beq _0800EA7E
- cmp r5, r10
- beq _0800EA4A
- cmp r7, 0
- beq _0800EA4A
- cmp r1, 0
- bne _0800EA4A
- movs r0, 0x1
- mov r2, r8
- lsls r0, r2
- orrs r6, r0
- lsls r0, r6, 16
- lsrs r6, r0, 16
-_0800EA4A:
- cmp r5, 0
- beq _0800EA7E
- cmp r7, 0
- beq _0800EA66
- cmp r5, r10
- beq _0800EA5A
- cmp r1, 0
- beq _0800EA66
-_0800EA5A:
- movs r0, 0x2
- mov r1, r8
- lsls r0, r1
- orrs r6, r0
- lsls r0, r6, 16
- lsrs r6, r0, 16
-_0800EA66:
- cmp r5, 0
- beq _0800EA7E
- cmp r5, r10
- beq _0800EA7E
- cmp r7, 0
- bne _0800EA7E
- movs r0, 0x3
- mov r2, r8
- lsls r0, r2
- orrs r6, r0
- lsls r0, r6, 16
- lsrs r6, r0, 16
-_0800EA7E:
- movs r0, 0x2
- add r8, r0
- movs r1, 0x1
- add r9, r1
- mov r2, r9
- cmp r2, 0x5
- ble _0800EA02
- ldr r1, _0800EAA8 @ =0x02000000
- strb r6, [r1, 0x2]
- lsrs r0, r6, 8
- strb r0, [r1, 0x3]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800EAA4: .4byte gPlayerParty
-_0800EAA8: .4byte 0x02000000
- thumb_func_end sub_800E9EC
-
- thumb_func_start sub_800EAAC
-sub_800EAAC: @ 800EAAC
- push {r4-r6,lr}
- ldr r4, _0800EAF4 @ =0x02000004
- movs r2, 0
- ldr r6, _0800EAF8 @ =gSaveBlock1
- ldr r0, _0800EAFC @ =0x00003160
- adds r3, r6, r0
-_0800EAB8:
- adds r0, r4, r2
- adds r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x6
- ble _0800EAB8
- movs r2, 0
- adds r3, r4, 0
- adds r3, 0x8
- ldr r5, _0800EB00 @ =gSaveBlock1 + 0x3676
-_0800EACE:
- adds r0, r3, r2
- adds r1, r2, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x11
- ble _0800EACE
- ldr r1, _0800EB04 @ =0x00003688
- adds r0, r6, r1
- ldrb r0, [r0]
- strb r0, [r4, 0x7]
- adds r1, 0x1
- adds r0, r6, r1
- ldrb r0, [r0]
- strb r0, [r4, 0x1A]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800EAF4: .4byte 0x02000004
-_0800EAF8: .4byte gSaveBlock1
-_0800EAFC: .4byte 0x00003160
-_0800EB00: .4byte gSaveBlock1 + 0x3676
-_0800EB04: .4byte 0x00003688
- thumb_func_end sub_800EAAC
-
- thumb_func_start sub_800EB08
-sub_800EB08: @ 800EB08
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0800EB84 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0800EBA4
- movs r3, 0
- ldr r5, _0800EB88 @ =gEnigmaBerries
- ldr r0, _0800EB8C @ =gSaveBlock1
- mov r12, r0
- adds r7, r5, 0
- ldr r6, _0800EB90 @ =0x00003160
- add r6, r12
- adds r4, r5, 0
- adds r4, 0x38
-_0800EB30:
- adds r1, r3, r7
- adds r2, r3, r6
- ldrb r0, [r2]
- strb r0, [r1]
- adds r1, r3, r4
- ldrb r0, [r2]
- strb r0, [r1]
- adds r3, 0x1
- cmp r3, 0x6
- ble _0800EB30
- movs r3, 0
- ldr r4, _0800EB94 @ =gUnknown_02024DF8
- ldr r7, _0800EB98 @ =gSaveBlock1 + 0x3676
- adds r6, r4, 0
- adds r6, 0x38
-_0800EB4E:
- adds r1, r3, r4
- adds r2, r3, r7
- ldrb r0, [r2]
- strb r0, [r1]
- adds r1, r3, r6
- ldrb r0, [r2]
- strb r0, [r1]
- adds r3, 0x1
- cmp r3, 0x11
- ble _0800EB4E
- ldr r1, _0800EB9C @ =0x00003688
- add r1, r12
- ldrb r0, [r1]
- strb r0, [r5, 0x7]
- ldrb r0, [r1]
- adds r1, r5, 0
- adds r1, 0x3F
- strb r0, [r1]
- ldr r1, _0800EBA0 @ =0x00003689
- add r1, r12
- ldrb r0, [r1]
- strb r0, [r5, 0x1A]
- ldrb r1, [r1]
- adds r0, r5, 0
- adds r0, 0x52
- strb r1, [r0]
- b _0800EC28
- .align 2, 0
-_0800EB84: .4byte gUnknown_020239F8
-_0800EB88: .4byte gEnigmaBerries
-_0800EB8C: .4byte gSaveBlock1
-_0800EB90: .4byte 0x00003160
-_0800EB94: .4byte gUnknown_02024DF8
-_0800EB98: .4byte gSaveBlock1 + 0x3676
-_0800EB9C: .4byte 0x00003688
-_0800EBA0: .4byte 0x00003689
-_0800EBA4:
- movs r0, 0x40
- ands r0, r1
- movs r1, 0x2
- mov r8, r1
- cmp r0, 0
- beq _0800EBB4
- movs r0, 0x4
- mov r8, r0
-_0800EBB4:
- movs r3, 0
- cmp r3, r8
- bge _0800EC28
- ldr r1, _0800EC38 @ =gEnigmaBerries
- mov r12, r1
- ldr r0, _0800EC3C @ =gBlockRecvBuffer + 0x4
- mov r10, r0
- movs r1, 0x8
- add r1, r12
- mov r9, r1
-_0800EBC8:
- lsls r0, r3, 8
- mov r1, r10
- adds r5, r0, r1
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- ldr r1, _0800EC40 @ =gLinkPlayers
- adds r0, r1
- ldrb r4, [r0, 0x18]
- movs r2, 0
- adds r7, r3, 0x1
- lsls r1, r4, 3
- subs r0, r1, r4
- adds r6, r1, 0
- lsls r0, 2
- mov r1, r12
- adds r3, r0, r1
-_0800EBEA:
- adds r0, r5, r2
- ldrb r0, [r0]
- strb r0, [r3]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x6
- ble _0800EBEA
- movs r2, 0
- subs r0, r6, r4
- lsls r0, 2
- mov r1, r9
- adds r3, r0, r1
- adds r1, r5, 0
- adds r1, 0x8
-_0800EC06:
- adds r0, r1, r2
- ldrb r0, [r0]
- strb r0, [r3]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x11
- ble _0800EC06
- subs r0, r6, r4
- lsls r0, 2
- add r0, r12
- ldrb r1, [r5, 0x7]
- strb r1, [r0, 0x7]
- ldrb r1, [r5, 0x1A]
- strb r1, [r0, 0x1A]
- adds r3, r7, 0
- cmp r3, r8
- blt _0800EBC8
-_0800EC28:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800EC38: .4byte gEnigmaBerries
-_0800EC3C: .4byte gBlockRecvBuffer + 0x4
-_0800EC40: .4byte gLinkPlayers
- thumb_func_end sub_800EB08
-
- thumb_func_start shedinja_something
-shedinja_something: @ 800EC44
- push {r4,r5,lr}
- sub sp, 0x10
- adds r4, r0, 0
- add r5, sp, 0xC
- movs r0, 0x1
- strb r0, [r5]
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- ldr r1, _0800EC94 @ =0x0000012f
- cmp r0, r1
- bne _0800EC8C
- adds r0, r4, 0
- movs r1, 0x3
- bl GetMonData
- ldrb r1, [r5]
- cmp r0, r1
- beq _0800EC8C
- adds r0, r4, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- ldr r1, _0800EC98 @ =gUnknown_081F96C8
- mov r0, sp
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _0800EC8C
- adds r0, r4, 0
- movs r1, 0x3
- adds r2, r5, 0
- bl SetMonData
-_0800EC8C:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800EC94: .4byte 0x0000012f
-_0800EC98: .4byte gUnknown_081F96C8
- thumb_func_end shedinja_something
-
- thumb_func_start sub_800EC9C
-sub_800EC9C: @ 800EC9C
- push {r4-r7,lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0800ECD4 @ =0x02000000
- ldr r1, _0800ECD8 @ =0x000160cb
- adds r0, r1
- strb r4, [r0]
- movs r0, 0x1
- adds r5, r4, 0
- eors r5, r0
- ldr r0, _0800ECDC @ =gUnknown_02024D1E
- ldrb r0, [r0]
- cmp r0, 0x9
- bls _0800ECCA
- b _0800F008
-_0800ECCA:
- lsls r0, 2
- ldr r1, _0800ECE0 @ =_0800ECE4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800ECD4: .4byte 0x02000000
-_0800ECD8: .4byte 0x000160cb
-_0800ECDC: .4byte gUnknown_02024D1E
-_0800ECE0: .4byte _0800ECE4
- .align 2, 0
-_0800ECE4:
- .4byte _0800ED0C
- .4byte _0800ED7C
- .4byte _0800EE88
- .4byte _0800EEAC
- .4byte _0800EED8
- .4byte _0800EEFC
- .4byte _0800EF28
- .4byte _0800EF48
- .4byte _0800EFB4
- .4byte _0800EFCC
-_0800ED0C:
- ldr r2, _0800ED54 @ =gUnknown_020239F8
- ldrh r1, [r2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0800ED64
- ldr r0, _0800ED58 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800ED22
- b _0800F008
-_0800ED22:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0800ED2E
- b _0800F008
-_0800ED2E:
- ldr r4, _0800ED5C @ =0x02000000
- movs r5, 0x1
- strb r5, [r4]
- strb r5, [r4, 0x1]
- bl sub_800E9EC
- bl sub_800EAAC
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- movs r2, 0x20
- bl SendBlock
- ldr r0, _0800ED60 @ =gUnknown_02024D1E
- strb r5, [r0]
- b _0800F008
- .align 2, 0
-_0800ED54: .4byte gUnknown_020239F8
-_0800ED58: .4byte gReceivedRemoteLinkPlayers
-_0800ED5C: .4byte 0x02000000
-_0800ED60: .4byte gUnknown_02024D1E
-_0800ED64:
- movs r0, 0x4
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0800ED78 @ =gUnknown_02024D1E
- movs r0, 0x8
- strb r0, [r1]
- bl sub_800EB08
- b _0800F008
- .align 2, 0
-_0800ED78: .4byte gUnknown_02024D1E
-_0800ED7C:
- bl GetBlockRecievedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- beq _0800ED8A
- b _0800F008
-_0800ED8A:
- bl ResetBlockReceivedFlags
- movs r3, 0
- ldr r0, _0800EDA8 @ =gBlockRecvBuffer
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- bne _0800EDBC
- cmp r4, 0
- bne _0800EDB0
- ldr r0, _0800EDAC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0xC
- b _0800EDB6
- .align 2, 0
-_0800EDA8: .4byte gBlockRecvBuffer
-_0800EDAC: .4byte gUnknown_020239F8
-_0800EDB0:
- ldr r0, _0800EDE0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0x8
-_0800EDB6:
- orrs r1, r2
- strh r1, [r0]
- adds r3, 0x1
-_0800EDBC:
- lsls r7, r5, 8
- cmp r3, 0
- bne _0800EE38
- ldr r0, _0800EDE4 @ =gBlockRecvBuffer
- movs r1, 0x80
- lsls r1, 1
- adds r2, r0, r1
- ldrh r1, [r0]
- adds r6, r0, 0
- ldrh r2, [r2]
- cmp r1, r2
- bne _0800EDF4
- cmp r4, 0
- bne _0800EDE8
- ldr r0, _0800EDE0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0xC
- b _0800EDEE
- .align 2, 0
-_0800EDE0: .4byte gUnknown_020239F8
-_0800EDE4: .4byte gBlockRecvBuffer
-_0800EDE8:
- ldr r0, _0800EE04 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0x8
-_0800EDEE:
- orrs r1, r2
- strh r1, [r0]
- adds r3, 0x1
-_0800EDF4:
- lsls r7, r5, 8
- cmp r3, 0
- bne _0800EE38
- ldrh r1, [r6]
- ldr r0, _0800EE08 @ =0x00000101
- ldr r2, _0800EE04 @ =gUnknown_020239F8
- b _0800EE1A
- .align 2, 0
-_0800EE04: .4byte gUnknown_020239F8
-_0800EE08: .4byte 0x00000101
-_0800EE0C:
- adds r3, 0x1
- cmp r3, 0x1
- bgt _0800EE22
- lsls r0, r3, 8
- adds r0, r6
- ldrh r1, [r0]
- ldr r0, _0800EE2C @ =0x00000101
-_0800EE1A:
- cmp r1, r0
- bls _0800EE0C
- cmp r3, r4
- beq _0800EE0C
-_0800EE22:
- cmp r3, 0x2
- bne _0800EE30
- ldrh r0, [r2]
- movs r1, 0xC
- b _0800EE34
- .align 2, 0
-_0800EE2C: .4byte 0x00000101
-_0800EE30:
- ldrh r0, [r2]
- movs r1, 0x8
-_0800EE34:
- orrs r0, r1
- strh r0, [r2]
-_0800EE38:
- bl sub_800EB08
- ldr r0, _0800EE78 @ =sub_800DE30
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800EE7C @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r1
- movs r1, 0
- movs r0, 0x87
- lsls r0, 1
- strh r0, [r2, 0xA]
- movs r0, 0x5A
- strh r0, [r2, 0xC]
- strh r1, [r2, 0x12]
- ldr r0, _0800EE80 @ =0x02000000
- ldrb r1, [r0, 0x2]
- ldrb r0, [r0, 0x3]
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2, 0xE]
- ldr r0, _0800EE84 @ =gBlockRecvBuffer
- adds r0, 0x2
- adds r0, r7, r0
- ldrh r0, [r0]
- strh r0, [r2, 0x10]
- b _0800EF96
- .align 2, 0
-_0800EE78: .4byte sub_800DE30
-_0800EE7C: .4byte gTasks
-_0800EE80: .4byte 0x02000000
-_0800EE84: .4byte gBlockRecvBuffer
-_0800EE88:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0800EE94
- b _0800F008
-_0800EE94:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800EEA8 @ =gPlayerParty
- movs r2, 0xC8
- bl SendBlock
- b _0800EF96
- .align 2, 0
-_0800EEA8: .4byte gPlayerParty
-_0800EEAC:
- bl GetBlockRecievedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- beq _0800EEBA
- b _0800F008
-_0800EEBA:
- bl ResetBlockReceivedFlags
- ldr r0, _0800EED0 @ =gEnemyParty
- lsls r1, r5, 8
- ldr r2, _0800EED4 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0xC8
- bl memcpy
- b _0800EF96
- .align 2, 0
-_0800EED0: .4byte gEnemyParty
-_0800EED4: .4byte gBlockRecvBuffer
-_0800EED8:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0800EEE4
- b _0800F008
-_0800EEE4:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800EEF8 @ =gUnknown_03004428
- movs r2, 0xC8
- bl SendBlock
- b _0800EF96
- .align 2, 0
-_0800EEF8: .4byte gUnknown_03004428
-_0800EEFC:
- bl GetBlockRecievedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- beq _0800EF0A
- b _0800F008
-_0800EF0A:
- bl ResetBlockReceivedFlags
- ldr r0, _0800EF20 @ =gUnknown_03004688
- lsls r1, r5, 8
- ldr r2, _0800EF24 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0xC8
- bl memcpy
- b _0800EF96
- .align 2, 0
-_0800EF20: .4byte gUnknown_03004688
-_0800EF24: .4byte gBlockRecvBuffer
-_0800EF28:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _0800F008
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800EF44 @ =gUnknown_030044F0
- movs r2, 0xC8
- bl SendBlock
- b _0800EF96
- .align 2, 0
-_0800EF44: .4byte gUnknown_030044F0
-_0800EF48:
- bl GetBlockRecievedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- bne _0800F008
- bl ResetBlockReceivedFlags
- ldr r4, _0800EFA0 @ =gUnknown_03004750
- lsls r1, r5, 8
- ldr r0, _0800EFA4 @ =gBlockRecvBuffer
- adds r1, r0
- adds r0, r4, 0
- movs r2, 0xC8
- bl memcpy
- ldr r1, _0800EFA8 @ =0xfffffe70
- adds r0, r4, r1
- bl shedinja_something
- ldr r1, _0800EFAC @ =0xfffffed4
- adds r0, r4, r1
- bl shedinja_something
- adds r0, r4, 0
- subs r0, 0xC8
- bl shedinja_something
- adds r0, r4, 0
- subs r0, 0x64
- bl shedinja_something
- adds r0, r4, 0
- bl shedinja_something
- adds r0, r4, 0
- adds r0, 0x64
- bl shedinja_something
-_0800EF96:
- ldr r1, _0800EFB0 @ =gUnknown_02024D1E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0800F008
- .align 2, 0
-_0800EFA0: .4byte gUnknown_03004750
-_0800EFA4: .4byte gBlockRecvBuffer
-_0800EFA8: .4byte 0xfffffe70
-_0800EFAC: .4byte 0xfffffed4
-_0800EFB0: .4byte gUnknown_02024D1E
-_0800EFB4:
- bl sub_800B950
- ldr r0, _0800EFC8 @ =gUnknown_02024D1E
- ldrb r1, [r0]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r0]
- strb r2, [r0, 0x1]
- strb r2, [r0, 0x2]
- b _0800F008
- .align 2, 0
-_0800EFC8: .4byte gUnknown_02024D1E
-_0800EFCC:
- ldr r0, _0800F010 @ =gUnknown_02024D1F
- adds r1, r0, 0x1
- bl battle_load_something
- lsls r0, 24
- cmp r0, 0
- beq _0800F008
- ldr r2, _0800F014 @ =gUnknown_030042D0
- ldr r1, _0800F018 @ =gMain
- ldr r0, [r1]
- str r0, [r2]
- ldr r0, _0800F01C @ =sub_8010824
- str r0, [r1]
- ldr r0, _0800F020 @ =sub_800F808
- bl SetMainCallback2
- ldr r3, _0800F024 @ =gUnknown_020239F8
- ldrh r2, [r3]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0800F008
- ldr r1, _0800F028 @ =gTrainerBattleOpponent
- movs r4, 0x80
- lsls r4, 4
- adds r0, r4, 0
- strh r0, [r1]
- movs r0, 0x20
- orrs r0, r2
- strh r0, [r3]
-_0800F008:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F010: .4byte gUnknown_02024D1F
-_0800F014: .4byte gUnknown_030042D0
-_0800F018: .4byte gMain
-_0800F01C: .4byte sub_8010824
-_0800F020: .4byte sub_800F808
-_0800F024: .4byte gUnknown_020239F8
-_0800F028: .4byte gTrainerBattleOpponent
- thumb_func_end sub_800EC9C
-
- thumb_func_start sub_800F02C
-sub_800F02C: @ 800F02C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
- mov r8, r0
- ldr r7, _0800F0F8 @ =gUnknown_02023A04
- mov r10, r7
-_0800F03E:
- mov r1, r8
- lsls r6, r1, 5
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- ldr r0, _0800F0FC @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- movs r1, 0x4
- negs r1, r1
- add r1, r10
- mov r9, r1
- adds r5, r6, r1
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- strh r0, [r5, 0x2]
- adds r0, r4, 0
- movs r1, 0x2
- adds r2, r7, 0
- bl GetMonData
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- strb r0, [r5, 0xF]
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5, 0x10]
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r5, 0x12]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- mov r1, r10
- adds r1, 0x10
- adds r6, r1
- str r0, [r6]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [r7, 0x14]
- adds r0, r4, 0
- bl GetMonGender
- strb r0, [r5, 0x1C]
- adds r0, r7, 0
- bl StripExtCtrlCodes
- adds r0, r4, 0
- movs r1, 0x3
- bl GetMonData
- strb r0, [r5, 0x1D]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0800F0D4
- adds r0, r7, 0
- movs r1, 0
- bl sub_814A518
-_0800F0D4:
- adds r7, 0x20
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x2
- ble _0800F03E
- ldr r0, _0800F100 @ =0x02000000
- mov r1, r9
- movs r2, 0x60
- bl memcpy
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F0F8: .4byte gUnknown_02023A04
-_0800F0FC: .4byte gPlayerParty
-_0800F100: .4byte 0x02000000
- thumb_func_end sub_800F02C
-
- thumb_func_start sub_800F104
-sub_800F104: @ 800F104
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _0800F148 @ =0x02000000
- ldr r1, _0800F14C @ =0x000160cb
- adds r0, r4, r1
- strb r6, [r0]
- ldr r2, _0800F150 @ =0x000160c4
- adds r2, r4
- mov r9, r2
- ldr r0, _0800F154 @ =0x000160c2
- adds r0, r4
- mov r8, r0
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r5, _0800F158 @ =gUnknown_02024D1E
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _0800F1A0
- cmp r0, 0x1
- bgt _0800F15C
- cmp r0, 0
- beq _0800F168
- b _0800F27A
- .align 2, 0
-_0800F148: .4byte 0x02000000
-_0800F14C: .4byte 0x000160cb
-_0800F150: .4byte 0x000160c4
-_0800F154: .4byte 0x000160c2
-_0800F158: .4byte gUnknown_02024D1E
-_0800F15C:
- cmp r0, 0x2
- beq _0800F240
- cmp r0, 0x3
- bne _0800F166
- b _0800F25C
-_0800F166:
- b _0800F27A
-_0800F168:
- ldr r0, _0800F19C @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800F172
- b _0800F27A
-_0800F172:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0800F17E
- b _0800F27A
-_0800F17E:
- bl sub_800F02C
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- movs r2, 0x60
- bl SendBlock
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _0800F27A
- .align 2, 0
-_0800F19C: .4byte gReceivedRemoteLinkPlayers
-_0800F1A0:
- bl GetBlockRecievedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- bne _0800F27A
- bl ResetBlockReceivedFlags
- movs r4, 0
- lsls r0, r6, 3
- subs r0, r6
- lsls r5, r0, 2
- movs r7, 0
-_0800F1BA:
- cmp r4, r6
- beq _0800F1FA
- ldr r2, _0800F1DC @ =gLinkPlayers
- adds r0, r7, r2
- ldrh r1, [r0, 0x18]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0800F1E0
- adds r0, r5, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800F1EC
- b _0800F1FA
- .align 2, 0
-_0800F1DC: .4byte gLinkPlayers
-_0800F1E0:
- adds r0, r5, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800F1FA
-_0800F1EC:
- lsls r1, r4, 8
- ldr r0, _0800F228 @ =gBlockRecvBuffer
- adds r1, r0
- ldr r0, _0800F22C @ =gUnknown_02023A00
- movs r2, 0x60
- bl memcpy
-_0800F1FA:
- adds r7, 0x1C
- adds r4, 0x1
- cmp r4, 0x3
- ble _0800F1BA
- ldr r1, _0800F230 @ =gUnknown_02024D1E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _0800F234 @ =gMain
- ldr r0, [r1, 0x8]
- mov r2, r9
- str r0, [r2]
- ldr r0, _0800F238 @ =gUnknown_020239F8
- ldrh r0, [r0]
- mov r2, r8
- strh r0, [r2]
- ldr r0, _0800F23C @ =sub_800F104
- str r0, [r1, 0x8]
- movs r0, 0x5
- movs r1, 0
- bl OpenPartyMenu
- b _0800F27A
- .align 2, 0
-_0800F228: .4byte gBlockRecvBuffer
-_0800F22C: .4byte gUnknown_02023A00
-_0800F230: .4byte gUnknown_02024D1E
-_0800F234: .4byte gMain
-_0800F238: .4byte gUnknown_020239F8
-_0800F23C: .4byte sub_800F104
-_0800F240:
- ldr r0, _0800F258 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0800F27A
- movs r0, 0x3
- strb r0, [r5]
- bl sub_800832C
- b _0800F27A
- .align 2, 0
-_0800F258: .4byte gPaletteFade
-_0800F25C:
- ldr r0, _0800F288 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800F27A
- ldr r1, _0800F28C @ =gUnknown_020239F8
- mov r2, r8
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r1, _0800F290 @ =gMain
- mov r2, r9
- ldr r0, [r2]
- str r0, [r1, 0x8]
- ldr r0, _0800F294 @ =sub_800E7F8
- bl SetMainCallback2
-_0800F27A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F288: .4byte gReceivedRemoteLinkPlayers
-_0800F28C: .4byte gUnknown_020239F8
-_0800F290: .4byte gMain
-_0800F294: .4byte sub_800E7F8
- thumb_func_end sub_800F104
-
- thumb_func_start sub_800F298
-sub_800F298: @ 800F298
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0800F2D0 @ =0x02000000
- ldr r1, _0800F2D4 @ =0x000160cb
- adds r0, r1
- strb r6, [r0]
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _0800F2D8 @ =gUnknown_02024D1E
- ldrb r0, [r0]
- cmp r0, 0x7
- bls _0800F2C4
- b _0800F7E0
-_0800F2C4:
- lsls r0, 2
- ldr r1, _0800F2DC @ =_0800F2E0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800F2D0: .4byte 0x02000000
-_0800F2D4: .4byte 0x000160cb
-_0800F2D8: .4byte gUnknown_02024D1E
-_0800F2DC: .4byte _0800F2E0
- .align 2, 0
-_0800F2E0:
- .4byte _0800F300
- .4byte _0800F340
- .4byte _0800F4DE
- .4byte _0800F504
- .4byte _0800F5F8
- .4byte _0800F61C
- .4byte _0800F78C
- .4byte _0800F7A4
-_0800F300:
- ldr r0, _0800F338 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800F30A
- b _0800F7E0
-_0800F30A:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0800F316
- b _0800F7E0
-_0800F316:
- ldr r4, _0800F33C @ =0x02000000
- movs r0, 0x1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- bl sub_800E9EC
- bl sub_800EAAC
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- movs r2, 0x20
- bl SendBlock
- b _0800F770
- .align 2, 0
-_0800F338: .4byte gReceivedRemoteLinkPlayers
-_0800F33C: .4byte 0x02000000
-_0800F340:
- bl GetBlockRecievedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- beq _0800F34E
- b _0800F7E0
-_0800F34E:
- bl ResetBlockReceivedFlags
- movs r4, 0
- ldr r0, _0800F36C @ =gBlockRecvBuffer
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- bne _0800F380
- cmp r6, 0
- bne _0800F374
- ldr r0, _0800F370 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0xC
- b _0800F37A
- .align 2, 0
-_0800F36C: .4byte gBlockRecvBuffer
-_0800F370: .4byte gUnknown_020239F8
-_0800F374:
- ldr r0, _0800F3B0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0x8
-_0800F37A:
- orrs r1, r2
- strh r1, [r0]
- adds r4, 0x1
-_0800F380:
- cmp r4, 0
- bne _0800F41C
- movs r2, 0
- ldr r1, _0800F3B4 @ =gBlockRecvBuffer
- adds r5, r1, 0
- movs r3, 0x80
- lsls r3, 1
-_0800F38E:
- adds r1, r3
- adds r2, 0x1
- cmp r2, 0x3
- bgt _0800F39E
- ldrh r0, [r5]
- ldrh r7, [r1]
- cmp r0, r7
- beq _0800F38E
-_0800F39E:
- cmp r2, 0x4
- bne _0800F3C4
- cmp r6, 0
- bne _0800F3B8
- ldr r0, _0800F3B0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0xC
- b _0800F3BE
- .align 2, 0
-_0800F3B0: .4byte gUnknown_020239F8
-_0800F3B4: .4byte gBlockRecvBuffer
-_0800F3B8:
- ldr r0, _0800F408 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0x8
-_0800F3BE:
- orrs r1, r2
- strh r1, [r0]
- adds r4, 0x1
-_0800F3C4:
- cmp r4, 0
- bne _0800F41C
- ldr r0, _0800F40C @ =gBlockRecvBuffer
- ldrh r2, [r0]
- ldr r1, _0800F410 @ =0x00000101
- adds r3, r0, 0
- ldr r5, _0800F408 @ =gUnknown_020239F8
- cmp r2, r1
- beq _0800F3F6
-_0800F3D6:
- lsls r0, r4, 8
- adds r0, r3
- ldrh r0, [r0]
- ldr r1, _0800F410 @ =0x00000101
- cmp r0, r1
- bls _0800F3E6
- cmp r4, r6
- bne _0800F3FE
-_0800F3E6:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _0800F3FE
- lsls r0, r4, 8
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r1
- bne _0800F3D6
-_0800F3F6:
- cmp r4, r6
- beq _0800F3D6
- cmp r4, r6
- bge _0800F3D6
-_0800F3FE:
- cmp r4, 0x4
- bne _0800F414
- ldrh r0, [r5]
- movs r1, 0xC
- b _0800F418
- .align 2, 0
-_0800F408: .4byte gUnknown_020239F8
-_0800F40C: .4byte gBlockRecvBuffer
-_0800F410: .4byte 0x00000101
-_0800F414:
- ldrh r0, [r5]
- movs r1, 0x8
-_0800F418:
- orrs r0, r1
- strh r0, [r5]
-_0800F41C:
- bl sub_800EB08
- ldr r0, _0800F474 @ =0x0201d000
- ldr r1, _0800F478 @ =gPlayerParty
- movs r2, 0x96
- lsls r2, 1
- bl memcpy
- ldr r0, _0800F47C @ =sub_800DE30
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0800F480 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- movs r0, 0x87
- lsls r0, 1
- strh r0, [r1, 0xA]
- movs r0, 0x5A
- strh r0, [r1, 0xC]
- strh r2, [r1, 0x12]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
- adds r2, r1, 0
- ldr r0, _0800F484 @ =gBlockRecvBuffer
- adds r3, r0, 0x2
- ldr r6, _0800F488 @ =gLinkPlayers
- movs r5, 0x3F
- movs r7, 0x80
- lsls r7, 1
- movs r4, 0x3
-_0800F464:
- ldrh r0, [r6, 0x18]
- cmp r0, 0x1
- beq _0800F49E
- cmp r0, 0x1
- bgt _0800F48C
- cmp r0, 0
- beq _0800F496
- b _0800F4C4
- .align 2, 0
-_0800F474: .4byte 0x0201d000
-_0800F478: .4byte gPlayerParty
-_0800F47C: .4byte sub_800DE30
-_0800F480: .4byte gTasks
-_0800F484: .4byte gBlockRecvBuffer
-_0800F488: .4byte gLinkPlayers
-_0800F48C:
- cmp r0, 0x2
- beq _0800F4A6
- cmp r0, 0x3
- beq _0800F4B6
- b _0800F4C4
-_0800F496:
- ldrh r0, [r3]
- adds r1, r5, 0
- ands r1, r0
- b _0800F4AE
-_0800F49E:
- ldrh r0, [r3]
- adds r1, r5, 0
- ands r1, r0
- b _0800F4BE
-_0800F4A6:
- ldrh r0, [r3]
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 6
-_0800F4AE:
- ldrh r0, [r2, 0xE]
- orrs r1, r0
- strh r1, [r2, 0xE]
- b _0800F4C4
-_0800F4B6:
- ldrh r0, [r3]
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 6
-_0800F4BE:
- ldrh r0, [r2, 0x10]
- orrs r1, r0
- strh r1, [r2, 0x10]
-_0800F4C4:
- adds r3, r7
- adds r6, 0x1C
- subs r4, 0x1
- cmp r4, 0
- bge _0800F464
- bl ZeroPlayerPartyMons
- bl ZeroEnemyPartyMons
- ldr r1, _0800F4FC @ =gUnknown_02024D1E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0800F4DE:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0800F4EA
- b _0800F7E0
-_0800F4EA:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800F500 @ =0x0201d000
- movs r2, 0xC8
- bl SendBlock
- b _0800F770
- .align 2, 0
-_0800F4FC: .4byte gUnknown_02024D1E
-_0800F500: .4byte 0x0201d000
-_0800F504:
- bl GetBlockRecievedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- beq _0800F512
- b _0800F7E0
-_0800F512:
- bl ResetBlockReceivedFlags
- movs r4, 0
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- mov r8, r0
- ldr r5, _0800F53C @ =gBlockRecvBuffer
- movs r7, 0
-_0800F524:
- cmp r4, r6
- bne _0800F558
- ldr r0, _0800F540 @ =gLinkPlayers
- adds r0, r7, r0
- ldrh r0, [r0, 0x18]
- cmp r0, 0x2
- bgt _0800F544
- cmp r0, 0x1
- bge _0800F550
- cmp r0, 0
- beq _0800F548
- b _0800F5E2
- .align 2, 0
-_0800F53C: .4byte gBlockRecvBuffer
-_0800F540: .4byte gLinkPlayers
-_0800F544:
- cmp r0, 0x3
- bne _0800F5E2
-_0800F548:
- ldr r0, _0800F54C @ =gPlayerParty
- b _0800F5C8
- .align 2, 0
-_0800F54C: .4byte gPlayerParty
-_0800F550:
- ldr r0, _0800F554 @ =gUnknown_0300448C
- b _0800F5C8
- .align 2, 0
-_0800F554: .4byte gUnknown_0300448C
-_0800F558:
- ldr r2, _0800F578 @ =gLinkPlayers
- adds r0, r7, r2
- ldrh r1, [r0, 0x18]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0800F57C
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800F58A
- b _0800F5B0
- .align 2, 0
-_0800F578: .4byte gLinkPlayers
-_0800F57C:
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800F5B0
-_0800F58A:
- adds r0, r7, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _0800F59C
- cmp r2, 0x1
- bge _0800F5A8
- cmp r2, 0
- beq _0800F5A0
- b _0800F5E2
-_0800F59C:
- cmp r2, 0x3
- bne _0800F5E2
-_0800F5A0:
- ldr r0, _0800F5A4 @ =gPlayerParty
- b _0800F5C8
- .align 2, 0
-_0800F5A4: .4byte gPlayerParty
-_0800F5A8:
- ldr r0, _0800F5AC @ =gUnknown_0300448C
- b _0800F5C8
- .align 2, 0
-_0800F5AC: .4byte gUnknown_0300448C
-_0800F5B0:
- adds r0, r7, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _0800F5C2
- cmp r2, 0x1
- bge _0800F5D8
- cmp r2, 0
- beq _0800F5C6
- b _0800F5E2
-_0800F5C2:
- cmp r2, 0x3
- bne _0800F5E2
-_0800F5C6:
- ldr r0, _0800F5D4 @ =gEnemyParty
-_0800F5C8:
- adds r1, r5, 0
- movs r2, 0xC8
- bl memcpy
- b _0800F5E2
- .align 2, 0
-_0800F5D4: .4byte gEnemyParty
-_0800F5D8:
- ldr r0, _0800F5F4 @ =gUnknown_030046EC
- adds r1, r5, 0
- movs r2, 0xC8
- bl memcpy
-_0800F5E2:
- movs r0, 0x80
- lsls r0, 1
- adds r5, r0
- adds r7, 0x1C
- adds r4, 0x1
- cmp r4, 0x3
- ble _0800F524
- b _0800F770
- .align 2, 0
-_0800F5F4: .4byte gUnknown_030046EC
-_0800F5F8:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0800F604
- b _0800F7E0
-_0800F604:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800F618 @ =0x0201d0c8
- movs r2, 0x64
- bl SendBlock
- b _0800F770
- .align 2, 0
-_0800F618: .4byte 0x0201d0c8
-_0800F61C:
- bl GetBlockRecievedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- beq _0800F62A
- b _0800F7E0
-_0800F62A:
- bl ResetBlockReceivedFlags
- movs r4, 0
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- mov r8, r0
- ldr r5, _0800F654 @ =gBlockRecvBuffer
- movs r7, 0
-_0800F63C:
- cmp r4, r6
- bne _0800F670
- ldr r0, _0800F658 @ =gLinkPlayers
- adds r0, r7, r0
- ldrh r0, [r0, 0x18]
- cmp r0, 0x2
- bgt _0800F65C
- cmp r0, 0x1
- bge _0800F668
- cmp r0, 0
- beq _0800F660
- b _0800F6FA
- .align 2, 0
-_0800F654: .4byte gBlockRecvBuffer
-_0800F658: .4byte gLinkPlayers
-_0800F65C:
- cmp r0, 0x3
- bne _0800F6FA
-_0800F660:
- ldr r0, _0800F664 @ =gUnknown_03004428
- b _0800F6E0
- .align 2, 0
-_0800F664: .4byte gUnknown_03004428
-_0800F668:
- ldr r0, _0800F66C @ =gUnknown_03004554
- b _0800F6E0
- .align 2, 0
-_0800F66C: .4byte gUnknown_03004554
-_0800F670:
- ldr r2, _0800F690 @ =gLinkPlayers
- adds r0, r7, r2
- ldrh r1, [r0, 0x18]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0800F694
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800F6A2
- b _0800F6C8
- .align 2, 0
-_0800F690: .4byte gLinkPlayers
-_0800F694:
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800F6C8
-_0800F6A2:
- adds r0, r7, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _0800F6B4
- cmp r2, 0x1
- bge _0800F6C0
- cmp r2, 0
- beq _0800F6B8
- b _0800F6FA
-_0800F6B4:
- cmp r2, 0x3
- bne _0800F6FA
-_0800F6B8:
- ldr r0, _0800F6BC @ =gUnknown_03004428
- b _0800F6E0
- .align 2, 0
-_0800F6BC: .4byte gUnknown_03004428
-_0800F6C0:
- ldr r0, _0800F6C4 @ =gUnknown_03004554
- b _0800F6E0
- .align 2, 0
-_0800F6C4: .4byte gUnknown_03004554
-_0800F6C8:
- adds r0, r7, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _0800F6DA
- cmp r2, 0x1
- bge _0800F6F0
- cmp r2, 0
- beq _0800F6DE
- b _0800F6FA
-_0800F6DA:
- cmp r2, 0x3
- bne _0800F6FA
-_0800F6DE:
- ldr r0, _0800F6EC @ =gUnknown_03004688
-_0800F6E0:
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- b _0800F6FA
- .align 2, 0
-_0800F6EC: .4byte gUnknown_03004688
-_0800F6F0:
- ldr r0, _0800F77C @ =gUnknown_030047B4
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
-_0800F6FA:
- movs r0, 0x80
- lsls r0, 1
- adds r5, r0
- adds r7, 0x1C
- adds r4, 0x1
- cmp r4, 0x3
- ble _0800F63C
- ldr r4, _0800F780 @ =gPlayerParty
- adds r0, r4, 0
- bl shedinja_something
- adds r0, r4, 0
- adds r0, 0x64
- bl shedinja_something
- adds r0, r4, 0
- adds r0, 0xC8
- bl shedinja_something
- movs r1, 0x96
- lsls r1, 1
- adds r0, r4, r1
- bl shedinja_something
- movs r7, 0xC8
- lsls r7, 1
- adds r0, r4, r7
- bl shedinja_something
- movs r1, 0xFA
- lsls r1, 1
- adds r0, r4, r1
- bl shedinja_something
- ldr r4, _0800F784 @ =gEnemyParty
- adds r0, r4, 0
- bl shedinja_something
- adds r0, r4, 0
- adds r0, 0x64
- bl shedinja_something
- adds r0, r4, 0
- adds r0, 0xC8
- bl shedinja_something
- subs r7, 0x64
- adds r0, r4, r7
- bl shedinja_something
- movs r1, 0xC8
- lsls r1, 1
- adds r0, r4, r1
- bl shedinja_something
- adds r7, 0xC8
- adds r0, r4, r7
- bl shedinja_something
-_0800F770:
- ldr r1, _0800F788 @ =gUnknown_02024D1E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0800F7E0
- .align 2, 0
-_0800F77C: .4byte gUnknown_030047B4
-_0800F780: .4byte gPlayerParty
-_0800F784: .4byte gEnemyParty
-_0800F788: .4byte gUnknown_02024D1E
-_0800F78C:
- bl sub_800B950
- ldr r0, _0800F7A0 @ =gUnknown_02024D1E
- ldrb r1, [r0]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r0]
- strb r2, [r0, 0x1]
- strb r2, [r0, 0x2]
- b _0800F7E0
- .align 2, 0
-_0800F7A0: .4byte gUnknown_02024D1E
-_0800F7A4:
- ldr r0, _0800F7EC @ =gUnknown_02024D1F
- adds r1, r0, 0x1
- bl battle_load_something
- lsls r0, 24
- cmp r0, 0
- beq _0800F7E0
- ldr r2, _0800F7F0 @ =gUnknown_030042D0
- ldr r1, _0800F7F4 @ =gMain
- ldr r0, [r1]
- str r0, [r2]
- ldr r0, _0800F7F8 @ =sub_8010824
- str r0, [r1]
- ldr r0, _0800F7FC @ =sub_800F808
- bl SetMainCallback2
- ldr r3, _0800F800 @ =gUnknown_020239F8
- ldrh r2, [r3]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0800F7E0
- ldr r1, _0800F804 @ =gTrainerBattleOpponent
- movs r4, 0x80
- lsls r4, 4
- adds r0, r4, 0
- strh r0, [r1]
- movs r0, 0x20
- orrs r0, r2
- strh r0, [r3]
-_0800F7E0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F7EC: .4byte gUnknown_02024D1F
-_0800F7F0: .4byte gUnknown_030042D0
-_0800F7F4: .4byte gMain
-_0800F7F8: .4byte sub_8010824
-_0800F7FC: .4byte sub_800F808
-_0800F800: .4byte gUnknown_020239F8
-_0800F804: .4byte gTrainerBattleOpponent
- thumb_func_end sub_800F298
-
- thumb_func_start sub_800F808
-sub_800F808: @ 800F808
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _0800F824 @ =gUnknown_03004210
- bl sub_800374C
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- .align 2, 0
-_0800F824: .4byte gUnknown_03004210
- thumb_func_end sub_800F808
-
- thumb_func_start sub_800F828
-sub_800F828: @ 800F828
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r1, _0800F834 @ =sub_800F838
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_0800F834: .4byte sub_800F838
- thumb_func_end sub_800F828
-
- thumb_func_start sub_800F838
-sub_800F838: @ 800F838
- push {r4,r5,lr}
- adds r3, r0, 0
- ldr r5, _0800F850 @ =0x02000000
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- cmp r1, 0x1
- beq _0800F86C
- cmp r1, 0x1
- bgt _0800F854
- cmp r1, 0
- beq _0800F85A
- b _0800F8DC
- .align 2, 0
-_0800F850: .4byte 0x02000000
-_0800F854:
- cmp r1, 0x2
- beq _0800F8C8
- b _0800F8DC
-_0800F85A:
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- strh r1, [r3, 0x30]
- ldr r0, _0800F8C4 @ =0x00000281
- strh r0, [r3, 0x32]
- strh r1, [r3, 0x34]
- movs r0, 0x1
- strh r0, [r3, 0x36]
-_0800F86C:
- ldrh r0, [r3, 0x36]
- subs r0, 0x1
- strh r0, [r3, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _0800F8DC
- movs r0, 0x2
- strh r0, [r3, 0x36]
- movs r4, 0x30
- ldrsh r2, [r3, r4]
- movs r0, 0x34
- ldrsh r1, [r3, r0]
- lsls r1, 5
- adds r2, r1
- movs r4, 0x32
- ldrsh r0, [r3, r4]
- subs r0, r1
- movs r4, 0x3D
- lsls r0, 1
- adds r0, r5
- lsls r2, 1
- adds r2, r5
- movs r1, 0x1C
-_0800F89A:
- strh r4, [r2]
- strh r4, [r0]
- adds r0, 0x4
- adds r2, 0x4
- subs r1, 0x2
- cmp r1, 0
- bge _0800F89A
- ldrh r0, [r3, 0x34]
- adds r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _0800F8DC
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- movs r0, 0x20
- strh r0, [r3, 0x30]
- b _0800F8DC
- .align 2, 0
-_0800F8C4: .4byte 0x00000281
-_0800F8C8:
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _0800F8DC
- ldr r0, _0800F8E4 @ =sub_800E7C4
- bl SetMainCallback2
-_0800F8DC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F8E4: .4byte sub_800E7C4
- thumb_func_end sub_800F838
-
- thumb_func_start sub_800F8E8
-sub_800F8E8: @ 800F8E8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- str r0, [sp, 0x10]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x14]
- movs r0, 0
- mov r9, r0
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _0800F90C
- movs r0, 0
- b _0800FCB4
-_0800F90C:
- ldr r0, _0800F93C @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0800F940 @ =0x00000908
- ands r0, r1
- ldr r1, [sp, 0x14]
- lsls r1, 2
- str r1, [sp, 0x20]
- cmp r0, 0x8
- beq _0800F920
- b _0800FCA4
-_0800F920:
- bl ZeroEnemyPartyMons
- movs r2, 0
- str r2, [sp, 0x18]
- ldr r2, _0800F944 @ =gTrainers
- ldr r1, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r2
- adds r0, 0x20
- ldr r4, [sp, 0x18]
- b _0800FC86
- .align 2, 0
-_0800F93C: .4byte gUnknown_020239F8
-_0800F940: .4byte 0x00000908
-_0800F944: .4byte gTrainers
-_0800F948:
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r0, 3
- adds r1, r0, r2
- ldrb r0, [r1, 0x18]
- cmp r0, 0x1
- bne _0800F95C
- movs r4, 0x80
- mov r10, r4
- b _0800F96E
-_0800F95C:
- ldrb r1, [r1, 0x2]
- movs r0, 0x80
- ands r0, r1
- movs r1, 0x88
- mov r10, r1
- cmp r0, 0
- beq _0800F96E
- movs r2, 0x78
- mov r10, r2
-_0800F96E:
- movs r6, 0
- ldr r0, _0800F9C4 @ =gTrainers
- ldr r2, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r1, r2, r3
- lsls r1, 3
- adds r3, r0, 0x4
- adds r1, r3
- ldrb r1, [r1]
- adds r4, r0, 0
- ldr r0, [sp, 0x18]
- adds r0, 0x1
- str r0, [sp, 0x1C]
- cmp r1, 0xFF
- beq _0800F9A6
-_0800F98C:
- ldr r0, [sp, 0x14]
- adds r1, r2, r0
- lsls r1, 3
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0800F98C
-_0800F9A6:
- adds r2, r4, 0
- ldr r1, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r1, r0, 3
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0800FA5C
- cmp r0, 0x1
- bgt _0800F9C8
- cmp r0, 0
- beq _0800F9D6
- b _0800FC74
- .align 2, 0
-_0800F9C4: .4byte gTrainers
-_0800F9C8:
- cmp r0, 0x2
- bne _0800F9CE
- b _0800FB1C
-_0800F9CE:
- cmp r0, 0x3
- bne _0800F9D4
- b _0800FBB0
-_0800F9D4:
- b _0800FC74
-_0800F9D6:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r4, [r0]
- movs r6, 0
- ldr r0, [sp, 0x18]
- lsls r2, r0, 3
- adds r0, r2, r4
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _0800FA58 @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- adds r5, r2, 0
- cmp r0, 0xFF
- beq _0800FA18
- adds r3, r1, 0
- movs r7, 0xB
-_0800F9FC:
- adds r0, r2, r4
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r7
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0800F9FC
-_0800FA18:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- adds r4, r5, r4
- ldrh r1, [r4]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, [sp, 0x18]
- movs r1, 0x64
- adds r0, r3, 0
- muls r0, r1
- ldr r2, [sp, 0x10]
- adds r0, r2, r0
- ldrh r1, [r4, 0x4]
- ldrb r2, [r4, 0x2]
- movs r3, 0x1
- str r3, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r3, 0x2
- str r3, [sp, 0x8]
- movs r3, 0
- str r3, [sp, 0xC]
- adds r3, r6, 0
- bl CreateMon
- b _0800FC74
- .align 2, 0
-_0800FA58: .4byte gSpeciesNames
-_0800FA5C:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r7, [r0]
- movs r6, 0
- ldr r4, [sp, 0x18]
- lsls r2, r4, 4
- adds r0, r2, r7
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _0800FB14 @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- mov r8, r2
- cmp r0, 0xFF
- beq _0800FA9E
- adds r3, r1, 0
- movs r4, 0xB
-_0800FA82:
- adds r0, r2, r7
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r4
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0800FA82
-_0800FA9E:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- mov r3, r8
- adds r4, r3, r7
- ldrh r1, [r4]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x18]
- movs r1, 0x64
- adds r5, r0, 0
- muls r5, r1
- ldr r2, [sp, 0x10]
- adds r5, r2, r5
- ldrh r1, [r4, 0x4]
- ldrb r2, [r4, 0x2]
- movs r0, 0x1
- str r0, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- 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, 0x6
- adds r4, r7, r0
-_0800FAE8:
- 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, r0
- lsls r2, 2
- ldr r0, _0800FB18 @ =gBattleMoves + 0x4 @ PP offset
- adds r2, r0
- adds r0, r5, 0
- bl SetMonData
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0800FAE8
- b _0800FC74
- .align 2, 0
-_0800FB14: .4byte gSpeciesNames
-_0800FB18: .4byte gBattleMoves + 0x4 @ PP offset
-_0800FB1C:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r4, [r0]
- movs r6, 0
- ldr r0, [sp, 0x18]
- lsls r2, r0, 3
- adds r0, r2, r4
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _0800FBAC @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- adds r5, r2, 0
- cmp r0, 0xFF
- beq _0800FB5E
- adds r3, r1, 0
- movs r7, 0xB
-_0800FB42:
- adds r0, r2, r4
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r7
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0800FB42
-_0800FB5E:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- adds r5, r4
- ldrh r1, [r5]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, [sp, 0x18]
- movs r0, 0x64
- adds r4, r3, 0
- muls r4, r0
- ldr r1, [sp, 0x10]
- adds r4, r1, r4
- ldrh r1, [r5, 0x4]
- ldrb r2, [r5, 0x2]
- movs r0, 0x1
- str r0, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r4, 0
- adds r3, r6, 0
- bl CreateMon
- adds r5, 0x6
- adds r0, r4, 0
- movs r1, 0xC
- adds r2, r5, 0
- bl SetMonData
- b _0800FC74
- .align 2, 0
-_0800FBAC: .4byte gSpeciesNames
-_0800FBB0:
- adds r0, r4, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r7, [r0]
- movs r6, 0
- ldr r4, [sp, 0x18]
- lsls r2, r4, 4
- adds r0, r2, r7
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _0800FCC4 @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- mov r8, r2
- cmp r0, 0xFF
- beq _0800FBF2
- adds r3, r1, 0
- movs r4, 0xB
-_0800FBD6:
- adds r0, r2, r7
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r4
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0800FBD6
-_0800FBF2:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- mov r3, r8
- adds r5, r3, r7
- ldrh r1, [r5]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x18]
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r2, [sp, 0x10]
- adds r4, r2, r4
- ldrh r1, [r5, 0x4]
- ldrb r2, [r5, 0x2]
- movs r0, 0x1
- str r0, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r4, 0
- adds r3, r6, 0
- bl CreateMon
- adds r5, 0x6
- 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, 0x8
- adds r4, r7, r0
-_0800FC4A:
- 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, r0
- lsls r2, 2
- ldr r0, _0800FCC8 @ =gBattleMoves + 0x4 @ PP offset
- adds r2, r0
- adds r0, r5, 0
- bl SetMonData
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0800FC4A
-_0800FC74:
- ldr r4, [sp, 0x1C]
- str r4, [sp, 0x18]
- ldr r2, _0800FCCC @ =gTrainers
- ldr r1, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r2
- adds r0, 0x20
-_0800FC86:
- ldrb r0, [r0]
- cmp r4, r0
- bge _0800FC8E
- b _0800F948
-_0800FC8E:
- ldr r2, _0800FCD0 @ =gUnknown_020239F8
- ldr r1, _0800FCCC @ =gTrainers
- ldr r4, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r4, r3
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x18]
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
-_0800FCA4:
- ldr r0, _0800FCCC @ =gTrainers
- ldr r4, [sp, 0x20]
- ldr r2, [sp, 0x14]
- adds r1, r4, r2
- lsls r1, 3
- adds r1, r0
- adds r1, 0x20
- ldrb r0, [r1]
-_0800FCB4:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0800FCC4: .4byte gSpeciesNames
-_0800FCC8: .4byte gBattleMoves + 0x4 @ PP offset
-_0800FCCC: .4byte gTrainers
-_0800FCD0: .4byte gUnknown_020239F8
- thumb_func_end sub_800F8E8
-
- thumb_func_start sub_800FCD4
-sub_800FCD4: @ 800FCD4
- push {lr}
- ldr r0, _0800FCF4 @ =REG_VCOUNT
- ldrh r0, [r0]
- subs r0, 0x6F
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x30
- bhi _0800FCEE
- ldr r1, _0800FCF8 @ =REG_BG0CNT
- movs r2, 0x98
- lsls r2, 8
- adds r0, r2, 0
- strh r0, [r1]
-_0800FCEE:
- pop {r0}
- bx r0
- .align 2, 0
-_0800FCF4: .4byte REG_VCOUNT
-_0800FCF8: .4byte REG_BG0CNT
- thumb_func_end sub_800FCD4
-
- thumb_func_start sub_800FCFC
-sub_800FCFC: @ 800FCFC
- push {lr}
- bl Random
- ldr r1, _0800FD78 @ =REG_BG0HOFS
- ldr r0, _0800FD7C @ =gUnknown_030042A4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0800FD80 @ =gUnknown_030042A0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0800FD84 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0800FD88 @ =gUnknown_030041B4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0800FD8C @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0800FD90 @ =gUnknown_03004280
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0800FD94 @ =gUnknown_030041B0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0800FD98 @ =gUnknown_030041B8
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x22
- ldr r0, _0800FD9C @ =gUnknown_030042C4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- ldr r0, _0800FDA0 @ =gUnknown_03004240
- ldrh r0, [r0]
- strh r0, [r1]
- subs r1, 0x2
- ldr r0, _0800FDA4 @ =gUnknown_03004200
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- ldr r0, _0800FDA8 @ =gUnknown_03004244
- ldrh r0, [r0]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_8089668
- pop {r0}
- bx r0
- .align 2, 0
-_0800FD78: .4byte REG_BG0HOFS
-_0800FD7C: .4byte gUnknown_030042A4
-_0800FD80: .4byte gUnknown_030042A0
-_0800FD84: .4byte gUnknown_030042C0
-_0800FD88: .4byte gUnknown_030041B4
-_0800FD8C: .4byte gUnknown_03004288
-_0800FD90: .4byte gUnknown_03004280
-_0800FD94: .4byte gUnknown_030041B0
-_0800FD98: .4byte gUnknown_030041B8
-_0800FD9C: .4byte gUnknown_030042C4
-_0800FDA0: .4byte gUnknown_03004240
-_0800FDA4: .4byte gUnknown_03004200
-_0800FDA8: .4byte gUnknown_03004244
- thumb_func_end sub_800FCFC
-
- thumb_func_start nullsub_36
-nullsub_36: @ 800FDAC
- bx lr
- thumb_func_end nullsub_36
-
- thumb_func_start sub_800FDB0
-sub_800FDB0: @ 800FDB0
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0800FDD0
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- lsrs r0, 8
- ldrh r1, [r5, 0x30]
- adds r0, r1
- strh r0, [r5, 0x20]
- b _0800FDE2
-_0800FDD0:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- asrs r0, 8
- ldrh r1, [r5, 0x30]
- subs r1, r0
- strh r1, [r5, 0x20]
-_0800FDE2:
- movs r1, 0xC0
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r5, 0x32]
- adds 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 _0800FE16
- ldr r4, _0800FE1C @ =0x00002710
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- adds r0, r5, 0
- bl FreeSpriteOamMatrix
- adds r0, r5, 0
- bl DestroySprite
-_0800FE16:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800FE1C: .4byte 0x00002710
- thumb_func_end sub_800FDB0
-
- thumb_func_start sub_800FE20
-sub_800FE20: @ 800FE20
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _0800FE3C @ =sub_800FDB0
- str r0, [r4, 0x1C]
- movs r0, 0x68
- bl PlaySE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800FE3C: .4byte sub_800FDB0
- thumb_func_end sub_800FE20
-
- thumb_func_start sub_800FE40
-sub_800FE40: @ 800FE40
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- ldr r0, _0800FE88 @ =0x02000000
- ldr r2, _0800FE8C @ =0x000160cb
- adds r0, r2
- ldrb r2, [r0]
- ldr r0, _0800FE90 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800FEB4
- ldr r1, _0800FE94 @ =gLinkPlayers
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x18]
- cmp r0, 0x1
- beq _0800FEA0
- cmp r0, 0x1
- bgt _0800FE98
- cmp r0, 0
- beq _0800FEB4
- b _0800FEBC
- .align 2, 0
-_0800FE88: .4byte 0x02000000
-_0800FE8C: .4byte 0x000160cb
-_0800FE90: .4byte gUnknown_020239F8
-_0800FE94: .4byte gLinkPlayers
-_0800FE98:
- cmp r0, 0x2
- beq _0800FEB4
- cmp r0, 0x3
- bne _0800FEBC
-_0800FEA0:
- ldr r1, _0800FEAC @ =gEnemyParty
- str r1, [sp, 0x4]
- ldr r2, _0800FEB0 @ =gPlayerParty
- str r2, [sp, 0x8]
- b _0800FEBC
- .align 2, 0
-_0800FEAC: .4byte gEnemyParty
-_0800FEB0: .4byte gPlayerParty
-_0800FEB4:
- ldr r3, _08010008 @ =gPlayerParty
- str r3, [sp, 0x4]
- ldr r0, _0801000C @ =gEnemyParty
- str r0, [sp, 0x8]
-_0800FEBC:
- movs r7, 0
- movs r1, 0
- mov r8, r1
- ldr r2, [sp]
- lsls r2, 2
- str r2, [sp, 0xC]
- movs r3, 0xCE
- lsls r3, 1
- mov r10, r3
- mov r9, r1
-_0800FED0:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- ldr r0, [sp, 0x4]
- adds r4, r0, r4
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- cmp r5, 0
- beq _0800FF40
- cmp r5, r10
- beq _0800FF14
- cmp r6, 0
- beq _0800FF14
- cmp r1, 0
- bne _0800FF14
- movs r0, 0x1
- mov r2, r9
- lsls r0, r2
- orrs r7, r0
-_0800FF14:
- cmp r5, 0
- beq _0800FF40
- cmp r6, 0
- beq _0800FF2C
- cmp r5, r10
- beq _0800FF24
- cmp r1, 0
- beq _0800FF2C
-_0800FF24:
- movs r0, 0x2
- mov r3, r9
- lsls r0, r3
- orrs r7, r0
-_0800FF2C:
- cmp r5, 0
- beq _0800FF40
- cmp r5, r10
- beq _0800FF40
- cmp r6, 0
- bne _0800FF40
- movs r0, 0x3
- mov r1, r9
- lsls r0, r1
- orrs r7, r0
-_0800FF40:
- movs r2, 0x2
- add r9, r2
- movs r3, 0x1
- add r8, r3
- mov r0, r8
- cmp r0, 0x5
- ble _0800FED0
- ldr r1, _08010010 @ =gTasks
- ldr r2, [sp, 0xC]
- ldr r3, [sp]
- adds r0, r2, r3
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0xE]
- movs r7, 0
- movs r0, 0
- mov r8, r0
- movs r1, 0xCE
- lsls r1, 1
- mov r10, r1
- mov r9, r0
-_0800FF6A:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- ldr r2, [sp, 0x8]
- adds r4, r2, r4
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- cmp r5, 0
- beq _0800FFDA
- cmp r5, r10
- beq _0800FFAE
- cmp r6, 0
- beq _0800FFAE
- cmp r1, 0
- bne _0800FFAE
- movs r0, 0x1
- mov r3, r9
- lsls r0, r3
- orrs r7, r0
-_0800FFAE:
- cmp r5, 0
- beq _0800FFDA
- cmp r6, 0
- beq _0800FFC6
- cmp r5, r10
- beq _0800FFBE
- cmp r1, 0
- beq _0800FFC6
-_0800FFBE:
- movs r0, 0x2
- mov r1, r9
- lsls r0, r1
- orrs r7, r0
-_0800FFC6:
- cmp r5, 0
- beq _0800FFDA
- cmp r5, r10
- beq _0800FFDA
- cmp r6, 0
- bne _0800FFDA
- movs r0, 0x3
- mov r2, r9
- lsls r0, r2
- orrs r7, r0
-_0800FFDA:
- movs r3, 0x2
- add r9, r3
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x5
- ble _0800FF6A
- ldr r1, _08010010 @ =gTasks
- ldr r2, [sp, 0xC]
- ldr r3, [sp]
- adds r0, r2, r3
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0x10]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08010008: .4byte gPlayerParty
-_0801000C: .4byte gEnemyParty
-_08010010: .4byte gTasks
- thumb_func_end sub_800FE40
-
- thumb_func_start c2_8011A1C
-c2_8011A1C: @ 8010014
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r4, 0
- str r4, [sp]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _08010144 @ =0x05006000
- mov r0, sp
- bl CpuSet
- ldr r0, _08010148 @ =REG_MOSAIC
- strh r4, [r0]
- subs r0, 0xC
- movs r2, 0xF0
- strh r2, [r0]
- adds r0, 0x4
- ldr r3, _0801014C @ =0x00005051
- adds r1, r3, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r0, _08010150 @ =gUnknown_030042C4
- strh r2, [r0]
- ldr r0, _08010154 @ =gUnknown_03004240
- strh r1, [r0]
- bl dp12_8087EA4
- ldr r0, _08010158 @ =gUnknown_03004DE0
- movs r3, 0xF0
- movs r4, 0xF0
- lsls r4, 3
- adds r2, r0, r4
- movs r1, 0x4F
-_08010066:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _08010066
- movs r1, 0x50
- ldr r5, _0801015C @ =gWindowConfig_81E6C58
- ldr r0, _08010158 @ =gUnknown_03004DE0
- ldr r3, _08010160 @ =0x0000ff10
- movs r4, 0x82
- lsls r4, 4
- adds r2, r0, r4
- adds r0, 0xA0
-_08010084:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- adds r1, 0x1
- cmp r1, 0x9F
- ble _08010084
- adds r0, r5, 0
- bl SetUpWindowConfig
- bl ResetPaletteFade
- ldr r0, _08010164 @ =gUnknown_030042A4
- movs r4, 0
- strh r4, [r0]
- ldr r0, _08010168 @ =gUnknown_030042A0
- strh r4, [r0]
- ldr r0, _0801016C @ =gUnknown_030042C0
- strh r4, [r0]
- ldr r0, _08010170 @ =gUnknown_030041B4
- strh r4, [r0]
- ldr r0, _08010174 @ =gUnknown_03004288
- strh r4, [r0]
- ldr r0, _08010178 @ =gUnknown_03004280
- strh r4, [r0]
- ldr r0, _0801017C @ =gUnknown_030041B0
- strh r4, [r0]
- ldr r0, _08010180 @ =gUnknown_030041B8
- strh r4, [r0]
- ldr r0, _08010184 @ =gUnknown_03004210
- adds r1, r5, 0
- bl InitWindowFromConfig
- ldr r0, _08010188 @ =gUnknown_030041D0
- ldr r1, _0801018C @ =gWindowConfig_81E71D0
- bl InitWindowFromConfig
- ldr r0, _08010190 @ =gUnknown_03004250
- ldr r1, _08010194 @ =gWindowConfig_81E71EC
- bl InitWindowFromConfig
- bl sub_800D6D4
- ldr r0, _08010198 @ =gUnknown_08D004E0
- movs r1, 0
- movs r2, 0x40
- bl LoadCompressedPalette
- bl sub_800D74C
- bl ResetSpriteData
- bl ResetTasks
- bl sub_800E23C
- ldr r1, _0801019C @ =REG_WINOUT
- movs r0, 0x37
- strh r0, [r1]
- bl FreeAllSpritePalettes
- ldr r1, _080101A0 @ =gReservedSpritePaletteCount
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _080101A4 @ =sub_800FCFC
- bl SetVBlankCallback
- ldr r0, _080101A8 @ =sub_800DE30
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080101AC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x87
- lsls r2, 1
- strh r2, [r1, 0xA]
- movs r2, 0x5A
- strh r2, [r1, 0xC]
- movs r2, 0x1
- strh r2, [r1, 0x12]
- bl sub_800FE40
- ldr r0, _080101B0 @ =sub_80101B8
- bl SetMainCallback2
- ldr r0, _080101B4 @ =gUnknown_02024D1E
- strb r4, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08010144: .4byte 0x05006000
-_08010148: .4byte REG_MOSAIC
-_0801014C: .4byte 0x00005051
-_08010150: .4byte gUnknown_030042C4
-_08010154: .4byte gUnknown_03004240
-_08010158: .4byte gUnknown_03004DE0
-_0801015C: .4byte gWindowConfig_81E6C58
-_08010160: .4byte 0x0000ff10
-_08010164: .4byte gUnknown_030042A4
-_08010168: .4byte gUnknown_030042A0
-_0801016C: .4byte gUnknown_030042C0
-_08010170: .4byte gUnknown_030041B4
-_08010174: .4byte gUnknown_03004288
-_08010178: .4byte gUnknown_03004280
-_0801017C: .4byte gUnknown_030041B0
-_08010180: .4byte gUnknown_030041B8
-_08010184: .4byte gUnknown_03004210
-_08010188: .4byte gUnknown_030041D0
-_0801018C: .4byte gWindowConfig_81E71D0
-_08010190: .4byte gUnknown_03004250
-_08010194: .4byte gWindowConfig_81E71EC
-_08010198: .4byte gUnknown_08D004E0
-_0801019C: .4byte REG_WINOUT
-_080101A0: .4byte gReservedSpritePaletteCount
-_080101A4: .4byte sub_800FCFC
-_080101A8: .4byte sub_800DE30
-_080101AC: .4byte gTasks
-_080101B0: .4byte sub_80101B8
-_080101B4: .4byte gUnknown_02024D1E
- thumb_func_end c2_8011A1C
-
- thumb_func_start sub_80101B8
-sub_80101B8: @ 80101B8
- push {lr}
- bl c2_081284E0
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- thumb_func_end sub_80101B8
-
- thumb_func_start c2_081284E0
-c2_081284E0: @ 80101D4
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _080101EC @ =gUnknown_02024D1E
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _080101FC
- cmp r0, 0x1
- bgt _080101F0
- cmp r0, 0
- beq _080101F6
- b _08010236
- .align 2, 0
-_080101EC: .4byte gUnknown_02024D1E
-_080101F0:
- cmp r0, 0x2
- beq _08010222
- b _08010236
-_080101F6:
- movs r0, 0xFF
- strb r0, [r4, 0x1]
- b _0801021A
-_080101FC:
- ldrb r0, [r4, 0x1]
- subs r0, 0x1
- strb r0, [r4, 0x1]
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08010236
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0801021A:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08010236
-_08010222:
- ldr r0, _08010240 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08010236
- ldr r0, _08010244 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_08010236:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08010240: .4byte gPaletteFade
-_08010244: .4byte gMain
- thumb_func_end c2_081284E0
-
- thumb_func_start oac_poke_opponent
-oac_poke_opponent: @ 8010248
- push {lr}
- sub sp, 0x4
- ldr r1, _08010270 @ =sub_8010278
- str r1, [r0, 0x1C]
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- movs r0, 0x80
- lsls r0, 10
- ldr r1, _08010274 @ =0x00003def
- str r1, [sp]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0xA
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08010270: .4byte sub_8010278
-_08010274: .4byte 0x00003def
- thumb_func_end oac_poke_opponent
-
- thumb_func_start sub_8010278
-sub_8010278: @ 8010278
- push {lr}
- adds r2, r0, 0
- ldr r0, _080102A4 @ =gUnknown_02024DE8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080102A0
- ldrh r0, [r2, 0x24]
- adds r0, 0x2
- strh r0, [r2, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _080102A0
- ldr r0, _080102A8 @ =sub_80102AC
- str r0, [r2, 0x1C]
- ldrh r0, [r2, 0x32]
- movs r1, 0x19
- bl PlayCry1
-_080102A0:
- pop {r0}
- bx r0
- .align 2, 0
-_080102A4: .4byte gUnknown_02024DE8
-_080102A8: .4byte sub_80102AC
- thumb_func_end sub_8010278
-
- thumb_func_start sub_80102AC
-sub_80102AC: @ 80102AC
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080102F4
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- bl sub_804777C
- ldr r1, _080102FC @ =gUnknown_03004340
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DFC
- ldr r0, _08010300 @ =nullsub_37
- str r0, [r4, 0x1C]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- movs r0, 0x80
- lsls r0, 10
- ldr r1, _08010304 @ =0x00003def
- str r1, [sp]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl BeginNormalPaletteFade
-_080102F4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080102FC: .4byte gUnknown_03004340
-_08010300: .4byte nullsub_37
-_08010304: .4byte 0x00003def
- thumb_func_end sub_80102AC
-
- thumb_func_start nullsub_37
-nullsub_37: @ 8010308
- bx lr
- thumb_func_end nullsub_37
-
- thumb_func_start unref_sub_801030C
-unref_sub_801030C: @ 801030C
- movs r1, 0x6
- strh r1, [r0, 0x34]
- movs r1, 0x1
- strh r1, [r0, 0x36]
- ldr r1, _0801031C @ =sub_8010320
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_0801031C: .4byte sub_8010320
- thumb_func_end unref_sub_801030C
-
- thumb_func_start sub_8010320
-sub_8010320: @ 8010320
- push {r4,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x36]
- subs r0, 0x1
- strh r0, [r3, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _08010374
- movs r0, 0x8
- strh r0, [r3, 0x36]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r4, 0x5
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x34]
- subs r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bne _08010374
- ldrb r1, [r1]
- adds r0, r4, 0
- ands r0, r1
- mov r1, r12
- strb r0, [r1]
- ldr r0, _0801037C @ =nullsub_37
- str r0, [r3, 0x1C]
- ldr r0, _08010380 @ =gUnknown_03004284
- str r2, [r0]
-_08010374:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801037C: .4byte nullsub_37
-_08010380: .4byte gUnknown_03004284
- thumb_func_end sub_8010320
-
- thumb_func_start sub_8010384
-sub_8010384: @ 8010384
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r0
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, r6, 2
- ldr r0, _080103A4 @ =0x02017800
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- beq _080103A8
- adds r4, r0, 0
- b _080103AC
- .align 2, 0
-_080103A4: .4byte 0x02017800
-_080103A8:
- mov r0, r9
- ldrh r4, [r0, 0x32]
-_080103AC:
- ldr r1, _08010414 @ =gUnknown_02024A6A
- lsls r0, r6, 1
- adds r5, r0, r1
- ldrh r0, [r5]
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r7, _08010418 @ =gEnemyParty
- adds r0, r7
- movs r1, 0
- bl GetMonData
- cmp r4, SPECIES_UNOWN
- bne _08010430
- ldrh r0, [r5]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0
- bl GetMonData
- adds r2, r0, 0
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r2
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r2
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r2
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r2
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0801041C
- movs r0, SPECIES_UNOWN
- b _08010426
- .align 2, 0
-_08010414: .4byte gUnknown_02024A6A
-_08010418: .4byte gEnemyParty
-_0801041C:
- movs r1, 0xCE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
-_08010426:
- ldr r1, _0801042C @ =gMonFrontPicCoords
- lsls r0, 2
- b _08010468
- .align 2, 0
-_0801042C: .4byte gMonFrontPicCoords
-_08010430:
- ldr r0, _08010448 @ =SPECIES_CASTFORM
- cmp r4, r0 @ Check if pokemon species is Castform
- bne _08010454
- ldr r0, _0801044C @ =gUnknownCastformCoords_0837F598
- ldr r1, _08010450 @ =gUnknown_02024E84
- adds r1, r6, r1
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- b _0801046C
- .align 2, 0
-_08010448: .4byte SPECIES_CASTFORM
-_0801044C: .4byte gUnknownCastformCoords_0837F598
-_08010450: .4byte gUnknown_02024E84
-_08010454:
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bls _08010464
- ldr r0, _08010460 @ =gMonFrontPicCoords
- b _0801046A
- .align 2, 0
-_08010460: .4byte gMonFrontPicCoords
-_08010464:
- ldr r1, _0801048C @ =gMonFrontPicCoords
- lsls r0, r4, 2
-_08010468:
- adds r0, r1
-_0801046A:
- ldrb r0, [r0, 0x1]
-_0801046C:
- lsrs r1, r0, 3
- movs r0, 0x8
- subs r0, r1
- mov r1, r9
- strh r0, [r1, 0x34]
- movs r0, 0x1
- strh r0, [r1, 0x36]
- ldr r0, _08010490 @ =sub_8010494
- str r0, [r1, 0x1C]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801048C: .4byte gMonFrontPicCoords
-_08010490: .4byte sub_8010494
- thumb_func_end sub_8010384
-
- thumb_func_start sub_8010494
-sub_8010494: @ 8010494
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x36]
- subs r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _08010510
- movs r0, 0x2
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x26]
- adds r0, 0x8
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- cmp r0, 0
- bge _080104C8
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- b _08010510
-_080104C8:
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_per_side_status
- ldr r1, _08010518 @ =gUnknown_081FAF4C
- lsls r0, 24
- lsrs r0, 22
- adds r0, r1
- ldr r2, _0801051C @ =gUnknown_02024E84
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 11
- ldr r2, [r0]
- adds r2, r1
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 8
- adds r2, r0
- movs r1, 0
- movs r0, 0xFF
-_080104F6:
- strb r1, [r2]
- adds r2, 0x1
- subs r0, 0x1
- cmp r0, 0
- bge _080104F6
- ldr r0, _0801051C @ =gUnknown_02024E84
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- adds r1, r0
- ldrb r1, [r1]
- adds r0, r4, 0
- bl StartSpriteAnim
-_08010510:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08010518: .4byte gUnknown_081FAF4C
-_0801051C: .4byte gUnknown_02024E84
- thumb_func_end sub_8010494
-
- thumb_func_start sub_8010520
-sub_8010520: @ 8010520
- movs r1, 0x8
- strh r1, [r0, 0x34]
- adds r1, r0, 0
- adds r1, 0x3E
- ldrb r1, [r1]
- lsls r1, 29
- lsrs r1, 31
- strh r1, [r0, 0x36]
- ldr r1, _08010538 @ =sub_801053C
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_08010538: .4byte sub_801053C
- thumb_func_end sub_8010520
-
- thumb_func_start sub_801053C
-sub_801053C: @ 801053C
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x34]
- subs r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- cmp r0, 0
- bne _0801056E
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- movs r0, 0x8
- strh r0, [r3, 0x34]
-_0801056E:
- pop {r0}
- bx r0
- thumb_func_end sub_801053C
-
- thumb_func_start sub_8010574
-sub_8010574: @ 8010574
- movs r1, 0x3E
- adds r1, r0
- mov r12, r1
- movs r1, 0x1
- ldrh r2, [r0, 0x36]
- ands r2, r1
- lsls r2, 2
- mov r1, r12
- ldrb r3, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- movs r1, 0
- strh r1, [r0, 0x36]
- ldr r1, _0801059C @ =nullsub_37
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_0801059C: .4byte nullsub_37
- thumb_func_end sub_8010574
-
- thumb_func_start sub_80105A0
-sub_80105A0: @ 80105A0
- ldr r1, _080105A8 @ =oac_poke_ally_
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080105A8: .4byte oac_poke_ally_
- thumb_func_end sub_80105A0
-
- thumb_func_start oac_poke_ally_
-oac_poke_ally_: @ 80105AC
- push {lr}
- adds r2, r0, 0
- ldr r0, _080105D4 @ =gUnknown_02024DE8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080105D0
- ldrh r0, [r2, 0x24]
- subs r0, 0x2
- strh r0, [r2, 0x24]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- bne _080105D0
- ldr r0, _080105D8 @ =nullsub_86
- str r0, [r2, 0x1C]
- strh r1, [r2, 0x30]
-_080105D0:
- pop {r0}
- bx r0
- .align 2, 0
-_080105D4: .4byte gUnknown_02024DE8
-_080105D8: .4byte nullsub_86
- thumb_func_end oac_poke_ally_
-
- thumb_func_start sub_80105DC
-sub_80105DC: @ 80105DC
- ldr r1, _080105E4 @ =nullsub_86
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080105E4: .4byte nullsub_86
- thumb_func_end sub_80105DC
-
- thumb_func_start nullsub_86
-nullsub_86: @ 80105E8
- bx lr
- thumb_func_end nullsub_86
-
- thumb_func_start sub_80105EC
-sub_80105EC: @ 80105EC
- push {lr}
- adds r2, r0, 0
- ldr r0, _08010610 @ =gUnknown_02024DE8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0801060C
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x26]
- adds r0, r1
- strh r0, [r2, 0x26]
-_0801060C:
- pop {r0}
- bx r0
- .align 2, 0
-_08010610: .4byte gUnknown_02024DE8
- thumb_func_end sub_80105EC
-
- thumb_func_start dp11b_obj_instanciate
-dp11b_obj_instanciate: @ 8010614
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- cmp r1, 0
- beq _0801064C
- lsls r2, r4, 1
- adds r0, r2, r4
- lsls r0, 2
- ldr r1, _08010648 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- b _0801065A
- .align 2, 0
-_08010648: .4byte 0x02017810
-_0801064C:
- lsls r2, r4, 1
- adds r0, r2, r4
- lsls r0, 2
- ldr r1, _08010698 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
-_0801065A:
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- bne _080106FA
- ldr r0, _0801069C @ =objc_dp11b_pingpong
- bl object_new_hidden_with_callback
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r8
- cmp r0, 0x1
- bne _080106A8
- ldr r0, _080106A0 @ =gUnknown_03004340
- adds r0, r4, r0
- ldrb r7, [r0]
- adds r0, r6, r4
- lsls r0, 2
- ldr r1, _08010698 @ =0x02017810
- adds r0, r1
- strb r5, [r0, 0x2]
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- ldr r2, _080106A4 @ =gSprites
- lsls r3, r5, 4
- adds r0, r3, r5
- lsls r0, 2
- adds r0, r2
- movs r1, 0x80
- b _080106CC
- .align 2, 0
-_08010698: .4byte 0x02017810
-_0801069C: .4byte objc_dp11b_pingpong
-_080106A0: .4byte gUnknown_03004340
-_080106A4: .4byte gSprites
-_080106A8:
- ldr r0, _08010708 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r7, [r0]
- adds r0, r6, r4
- lsls r0, 2
- ldr r1, _0801070C @ =0x02017810
- adds r0, r1
- strb r5, [r0, 0x3]
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r2, _08010710 @ =gSprites
- lsls r3, r5, 4
- adds r0, r3, r5
- lsls r0, 2
- adds r0, r2
- movs r1, 0xC0
-_080106CC:
- strh r1, [r0, 0x2E]
- adds r4, r2, 0
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r4
- mov r2, r9
- lsls r0, r2, 24
- asrs r0, 24
- movs r2, 0
- strh r0, [r1, 0x30]
- mov r3, r10
- lsls r0, r3, 24
- asrs r0, 24
- strh r0, [r1, 0x32]
- strh r7, [r1, 0x34]
- mov r0, r8
- strh r0, [r1, 0x36]
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x24]
- strh r2, [r0, 0x26]
-_080106FA:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08010708: .4byte gUnknown_02024BE0
-_0801070C: .4byte 0x02017810
-_08010710: .4byte gSprites
- thumb_func_end dp11b_obj_instanciate
-
- thumb_func_start dp11b_obj_free
-dp11b_obj_free: @ 8010714
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x1
- bne _0801075C
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _08010754 @ =0x02017810
- adds r5, r0, r1
- ldrb r1, [r5]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080107A0
- ldr r2, _08010758 @ =gSprites
- ldrb r1, [r5, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x34]
- lsls r1, 24
- lsrs r4, r1, 24
- bl DestroySprite
- ldrb r1, [r5]
- movs r0, 0x3
- negs r0, r0
- b _0801078C
- .align 2, 0
-_08010754: .4byte 0x02017810
-_08010758: .4byte gSprites
-_0801075C:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _080107A8 @ =0x02017810
- adds r5, r0, r1
- ldrb r1, [r5]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080107A0
- ldr r2, _080107AC @ =gSprites
- ldrb r1, [r5, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x34]
- lsls r1, 24
- lsrs r4, r1, 24
- bl DestroySprite
- ldrb r1, [r5]
- movs r0, 0x5
- negs r0, r0
-_0801078C:
- ands r0, r1
- strb r0, [r5]
- ldr r0, _080107AC @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x24]
- strh r0, [r1, 0x26]
-_080107A0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080107A8: .4byte 0x02017810
-_080107AC: .4byte gSprites
- thumb_func_end dp11b_obj_free
-
- thumb_func_start objc_dp11b_pingpong
-objc_dp11b_pingpong: @ 80107B0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080107C8
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- b _080107CC
-_080107C8:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
-_080107CC:
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- ldr r2, _080107F8 @ =gSprites
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r2
- ldrh r2, [r4, 0x32]
- adds r0, r2
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x2E]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080107F8: .4byte gSprites
- thumb_func_end objc_dp11b_pingpong
-
- thumb_func_start nullsub_41
-nullsub_41: @ 80107FC
- bx lr
- thumb_func_end nullsub_41
-
- thumb_func_start sub_8010800
-sub_8010800: @ 8010800
- push {lr}
- bl sub_8010874
- ldr r1, _08010818 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x1]
- ldr r1, _0801081C @ =gUnknown_030042D4
- ldr r0, _08010820 @ =bc_8012FAC
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08010818: .4byte gUnknown_02024D1E
-_0801081C: .4byte gUnknown_030042D4
-_08010820: .4byte bc_8012FAC
- thumb_func_end sub_8010800
-
- thumb_func_start sub_8010824
-sub_8010824: @ 8010824
- push {r4,r5,lr}
- ldr r0, _08010864 @ =gUnknown_030042D4
- ldr r0, [r0]
- bl _call_via_r0
- ldr r1, _08010868 @ =gUnknown_02024A60
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0801086C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801085E
- ldr r5, _08010870 @ =gUnknown_03004330
- adds r4, r1, 0
-_08010840:
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r5
- ldr r0, [r0]
- bl _call_via_r0
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _0801086C @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08010840
-_0801085E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08010864: .4byte gUnknown_030042D4
-_08010868: .4byte gUnknown_02024A60
-_0801086C: .4byte gUnknown_02024A68
-_08010870: .4byte gUnknown_03004330
- thumb_func_end sub_8010824
-
- thumb_func_start sub_8010874
-sub_8010874: @ 8010874
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
- bl sub_801365C
- bl sub_801377C
- movs r2, 0
- movs r3, 0
- ldr r0, _08010AC8 @ =gUnknown_02024C4C
- mov r10, r0
- ldr r1, _08010ACC @ =gUnknown_02024C44
- mov r9, r1
- ldr r4, _08010AD0 @ =gUnknown_02024C3C
- mov r8, r4
- ldr r0, _08010AD4 @ =gUnknown_02024C34
- mov r12, r0
- ldr r4, _08010AD8 @ =gUnknown_02024CA8
- movs r5, 0
- ldr r7, _08010ADC @ =gUnknown_02024C2C
- ldr r6, _08010AE0 @ =gUnknown_02024C54
-_080108A4:
- ldr r0, _08010AE4 @ =gUnknown_02024C98
- adds r0, r5, r0
- str r3, [r0]
- movs r1, 0
-_080108AC:
- adds r0, r4, r1
- strb r3, [r0]
- adds r1, 0x1
- cmp r1, 0x1B
- bls _080108AC
- movs r0, 0x2
- strb r0, [r4, 0x16]
- ldr r1, _08010AE8 @ =gUnknown_02024C70
- adds r0, r2, r1
- strb r3, [r0]
- mov r0, r12
- strh r3, [r0]
- mov r1, r8
- strh r3, [r1]
- mov r0, r9
- strh r3, [r0]
- mov r1, r10
- strh r3, [r1]
- ldr r0, _08010AEC @ =gUnknown_02024C5C
- adds r1, r2, r0
- movs r0, 0xFF
- strb r0, [r1]
- strh r3, [r6]
- strh r3, [r7]
- ldr r1, _08010AF0 @ =0x02017100
- adds r0, r5, r1
- str r3, [r0]
- movs r0, 0x2
- add r10, r0
- add r9, r0
- add r8, r0
- add r12, r0
- adds r4, 0x1C
- adds r5, 0x4
- adds r7, 0x2
- adds r6, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- ble _080108A4
- movs r5, 0
- ldr r3, _08010AF4 @ =gUnknown_02024C80
- ldr r4, _08010AF8 @ =gUnknown_02024C7A
- movs r2, 0x1
-_08010902:
- strh r5, [r4]
- movs r1, 0
-_08010906:
- adds r0, r3, r1
- strb r5, [r0]
- adds r1, 0x1
- cmp r1, 0xB
- bls _08010906
- adds r3, 0xC
- adds r4, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08010902
- movs r1, 0
- ldr r2, _08010AFC @ =gUnknown_02024C07
- strb r1, [r2]
- ldr r3, _08010B00 @ =gUnknown_02024C08
- strb r1, [r3]
- ldr r4, _08010B04 @ =word_2024DB8
- strh r1, [r4]
- ldr r1, _08010B08 @ =gUnknown_02024DBC
- movs r2, 0
- movs r3, 0
-_0801092E:
- adds r0, r1, r2
- strb r3, [r0]
- adds r2, 0x1
- cmp r2, 0x2B
- bls _0801092E
- movs r0, 0
- ldr r1, _08010B0C @ =gUnknown_02024C6C
- str r0, [r1]
- ldr r2, _08010B10 @ =gUnknown_020239F8
- ldrh r1, [r2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0801095C
- ldr r3, _08010B14 @ =gSaveBlock2
- ldrb r1, [r3, 0x15]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801095C
- movs r0, 0x80
- ldr r4, _08010B0C @ =gUnknown_02024C6C
- str r0, [r4]
-_0801095C:
- ldr r1, _08010B14 @ =gSaveBlock2
- ldrb r0, [r1, 0x15]
- lsls r0, 30
- lsrs r0, 31
- ldr r3, _08010B18 @ =0x02000000
- ldr r4, _08010B1C @ =0x00016084
- adds r2, r3, r4
- movs r1, 0
- strb r0, [r2]
- ldr r0, _08010B20 @ =gUnknown_02024C0E
- strb r1, [r0]
- ldr r2, _08010B24 @ =gUnknown_02024D26
- strb r1, [r2]
- ldr r3, _08010B28 @ =gUnknown_02024A64
- str r1, [r3]
- movs r2, 0
- ldr r4, _08010B2C @ =gUnknown_02024D1A
- strh r1, [r4]
- ldr r1, _08010B18 @ =0x02000000
- ldr r3, _08010B30 @ =0x00017130
- adds r0, r1, r3
- strb r2, [r0]
- ldr r4, _08010B34 @ =0x00017160
- adds r0, r1, r4
- strb r2, [r0]
- ldr r1, _08010B38 @ =gUnknown_02024D1E
- movs r2, 0
- adds r0, r1, 0x7
-_08010994:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08010994
- movs r5, 0
- ldr r0, _08010B3C @ =gUnknown_02024D18
- strh r5, [r0]
- movs r0, 0
- ldr r1, _08010B40 @ =gUnknown_02024BEC
- str r0, [r1]
- ldr r2, _08010B44 @ =gUnknown_02024DE8
- strh r0, [r2]
- ldr r4, _08010B18 @ =0x02000000
- ldr r3, _08010B48 @ =0x00016002
- adds r0, r4, r3
- strb r5, [r0]
- ldr r1, _08010B4C @ =0x000160a1
- adds r0, r4, r1
- strb r5, [r0]
- ldr r2, _08010B50 @ =gUnknown_03004324
- strb r5, [r2]
- ldr r3, _08010B54 @ =gUnknown_02024C0C
- strb r5, [r3]
- subs r1, 0x29
- adds r0, r4, r1
- strb r5, [r0]
- ldr r2, _08010B58 @ =0x00016086
- adds r0, r4, r2
- strb r5, [r0]
- ldr r3, _08010B5C @ =0x00016087
- adds r0, r4, r3
- strb r5, [r0]
- ldr r0, _08010B60 @ =gEnemyParty
- movs r1, 0xB
- bl GetMonData
- ldr r2, _08010B64 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x8]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08010B68 @ =0x000004fb
- bl __divsi3
- ldr r2, _08010B6C @ =0x00016089
- adds r1, r4, r2
- strb r0, [r1]
- ldr r3, _08010B70 @ =0x00016088
- adds r1, r4, r3
- movs r0, 0x3
- strb r0, [r1]
- ldr r1, _08010B74 @ =0x0001601b
- adds r0, r4, r1
- strb r5, [r0]
- subs r2, 0x33
- adds r1, r4, r2
- movs r0, 0x1
- strb r0, [r1]
- movs r2, 0
- movs r1, 0
-_08010A12:
- ldr r3, _08010B78 @ =0x000160ac
- adds r0, r2, r3
- adds r0, r4
- strb r1, [r0]
- adds r3, 0x20
- adds r0, r2, r3
- adds r0, r4
- strb r1, [r0]
- adds r3, 0x1C
- adds r0, r2, r3
- adds r0, r4
- strb r1, [r0]
- adds r3, 0x8
- adds r0, r2, r3
- adds r0, r4
- strb r1, [r0]
- adds r3, 0x10
- adds r0, r2, r3
- adds r0, r4
- strb r1, [r0]
- adds r3, 0x8
- adds r0, r2, r3
- adds r0, r4
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x7
- ble _08010A12
- ldr r4, _08010B18 @ =0x02000000
- ldr r1, _08010B7C @ =0x000160c8
- adds r0, r4, r1
- movs r2, 0
- movs r1, 0x6
- strb r1, [r0]
- subs r3, 0x3F
- adds r0, r4, r3
- strb r1, [r0]
- ldr r1, _08010B80 @ =0x00016113
- adds r0, r4, r1
- strb r2, [r0]
- ldr r3, _08010B84 @ =gUnknown_030042E0
- movs r1, 0
- movs r2, 0xA
- adds r0, r3, 0
- adds r0, 0x40
-_08010A6A:
- strb r1, [r0]
- subs r0, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _08010A6A
- movs r1, 0
- strb r1, [r3, 0x13]
- strb r1, [r3]
- strb r1, [r3, 0x1]
- strb r1, [r3, 0x2]
- strb r1, [r3, 0x3]
- strb r1, [r3, 0x4]
- ldrb r2, [r3, 0x5]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- movs r2, 0x3
- negs r2, r2
- ands r0, r2
- strb r0, [r3, 0x5]
- strh r1, [r3, 0x20]
- strh r1, [r3, 0x22]
- strh r1, [r3, 0x24]
- strh r1, [r3, 0x6]
- strh r1, [r3, 0x26]
- strh r1, [r3, 0x28]
- movs r2, 0
- adds r5, r3, 0
- adds r5, 0x8
- movs r4, 0
- adds r1, r3, 0
- adds r1, 0x14
-_08010AAA:
- adds r0, r2, r5
- strb r4, [r0]
- strb r4, [r1]
- strb r4, [r1, 0x16]
- adds r1, 0x1
- adds r2, 0x1
- cmp r2, 0x9
- ble _08010AAA
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08010AC8: .4byte gUnknown_02024C4C
-_08010ACC: .4byte gUnknown_02024C44
-_08010AD0: .4byte gUnknown_02024C3C
-_08010AD4: .4byte gUnknown_02024C34
-_08010AD8: .4byte gUnknown_02024CA8
-_08010ADC: .4byte gUnknown_02024C2C
-_08010AE0: .4byte gUnknown_02024C54
-_08010AE4: .4byte gUnknown_02024C98
-_08010AE8: .4byte gUnknown_02024C70
-_08010AEC: .4byte gUnknown_02024C5C
-_08010AF0: .4byte 0x02017100
-_08010AF4: .4byte gUnknown_02024C80
-_08010AF8: .4byte gUnknown_02024C7A
-_08010AFC: .4byte gUnknown_02024C07
-_08010B00: .4byte gUnknown_02024C08
-_08010B04: .4byte word_2024DB8
-_08010B08: .4byte gUnknown_02024DBC
-_08010B0C: .4byte gUnknown_02024C6C
-_08010B10: .4byte gUnknown_020239F8
-_08010B14: .4byte gSaveBlock2
-_08010B18: .4byte 0x02000000
-_08010B1C: .4byte 0x00016084
-_08010B20: .4byte gUnknown_02024C0E
-_08010B24: .4byte gUnknown_02024D26
-_08010B28: .4byte gUnknown_02024A64
-_08010B2C: .4byte gUnknown_02024D1A
-_08010B30: .4byte 0x00017130
-_08010B34: .4byte 0x00017160
-_08010B38: .4byte gUnknown_02024D1E
-_08010B3C: .4byte gUnknown_02024D18
-_08010B40: .4byte gUnknown_02024BEC
-_08010B44: .4byte gUnknown_02024DE8
-_08010B48: .4byte 0x00016002
-_08010B4C: .4byte 0x000160a1
-_08010B50: .4byte gUnknown_03004324
-_08010B54: .4byte gUnknown_02024C0C
-_08010B58: .4byte 0x00016086
-_08010B5C: .4byte 0x00016087
-_08010B60: .4byte gEnemyParty
-_08010B64: .4byte gBaseStats
-_08010B68: .4byte 0x000004fb
-_08010B6C: .4byte 0x00016089
-_08010B70: .4byte 0x00016088
-_08010B74: .4byte 0x0001601b
-_08010B78: .4byte 0x000160ac
-_08010B7C: .4byte 0x000160c8
-_08010B80: .4byte 0x00016113
-_08010B84: .4byte gUnknown_030042E0
- thumb_func_end sub_8010874
-
- thumb_func_start sub_8010B88
-sub_8010B88: @ 8010B88
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- ldr r4, _08010CEC @ =gUnknown_02024CA8
- ldr r5, _08010CF0 @ =gUnknown_02024A60
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r1, sp
- adds r0, r4
- 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 r2, _08010CF4 @ =gBattleMoves
- ldr r3, _08010CF8 @ =gUnknown_02024BE6
- ldrh r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- mov r10, r4
- adds r7, r5, 0
- ldr r1, _08010CFC @ =gBattleMons
- mov r8, r1
- ldr r2, _08010D00 @ =gUnknown_02024C98
- mov r12, r2
- cmp r0, 0x7F
- beq _08010C66
- movs r5, 0
- adds r4, r7, 0
- movs r3, 0x58
- mov r2, r8
- adds r2, 0x18
- movs r1, 0x6
-_08010BDC:
- ldrb r0, [r4]
- muls r0, r3
- adds r0, r5, r0
- adds r0, r2
- strb r1, [r0]
- adds r5, 0x1
- cmp r5, 0x7
- ble _08010BDC
- movs r5, 0
- ldr r3, _08010D04 @ =gUnknown_02024A68
- ldrb r3, [r3]
- cmp r5, r3
- bge _08010C52
- ldr r6, _08010D08 @ =gUnknown_02024AD0
- mov r9, r6
- ldr r3, _08010CEC @ =gUnknown_02024CA8
- ldr r4, _08010D00 @ =gUnknown_02024C98
-_08010BFE:
- movs r0, 0x58
- muls r0, r5
- add r0, r9
- str r0, [sp, 0x20]
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 19
- ands r0, r1
- cmp r0, 0
- beq _08010C24
- ldrb r0, [r3, 0x14]
- ldr r2, _08010CF0 @ =gUnknown_02024A60
- ldrb r2, [r2]
- cmp r0, r2
- bne _08010C24
- ldr r0, _08010D0C @ =0xfbffffff
- ands r1, r0
- ldr r6, [sp, 0x20]
- str r1, [r6]
-_08010C24:
- ldr r1, [r4]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _08010C44
- ldrb r0, [r3, 0x15]
- ldr r2, _08010CF0 @ =gUnknown_02024A60
- ldrb r2, [r2]
- cmp r0, r2
- bne _08010C44
- movs r0, 0x19
- negs r0, r0
- ands r1, r0
- str r1, [r4]
- movs r0, 0
- strb r0, [r3, 0x15]
-_08010C44:
- adds r3, 0x1C
- adds r4, 0x4
- adds r5, 0x1
- ldr r6, _08010D04 @ =gUnknown_02024A68
- ldrb r6, [r6]
- cmp r5, r6
- blt _08010BFE
-_08010C52:
- ldr r1, _08010CF8 @ =gUnknown_02024BE6
- ldrh r0, [r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, _08010CF4 @ =gBattleMoves
- adds r1, r2
- ldrb r0, [r1]
- cmp r0, 0x7F
- bne _08010D18
-_08010C66:
- ldrb r1, [r7]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r8
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _08010D10 @ =0x15100007
- ands r0, r1
- str r0, [r2]
- ldrb r1, [r7]
- lsls r1, 2
- add r1, r12
- ldr r0, [r1]
- ldr r2, _08010D14 @ =0x0003043f
- ands r0, r2
- str r0, [r1]
- movs r5, 0
- ldr r3, _08010D04 @ =gUnknown_02024A68
- ldrb r3, [r3]
- cmp r5, r3
- bge _08010D30
- movs r6, 0
-_08010C96:
- ldrb r0, [r7]
- bl battle_side_get_owner
- adds r4, r0, 0
- lsls r0, r5, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _08010CD6
- ldr r1, _08010D00 @ =gUnknown_02024C98
- lsls r0, r5, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _08010CD6
- ldr r0, _08010CEC @ =gUnknown_02024CA8
- adds r0, r6, r0
- ldrb r0, [r0, 0x15]
- ldrb r3, [r7]
- cmp r0, r3
- bne _08010CD6
- movs r0, 0x19
- negs r0, r0
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- str r1, [r2]
-_08010CD6:
- adds r6, 0x1C
- adds r5, 0x1
- ldr r0, _08010D04 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- blt _08010C96
- ldr r6, _08010CEC @ =gUnknown_02024CA8
- mov r10, r6
- ldr r7, _08010CF0 @ =gUnknown_02024A60
- b _08010D30
- .align 2, 0
-_08010CEC: .4byte gUnknown_02024CA8
-_08010CF0: .4byte gUnknown_02024A60
-_08010CF4: .4byte gBattleMoves
-_08010CF8: .4byte gUnknown_02024BE6
-_08010CFC: .4byte gBattleMons
-_08010D00: .4byte gUnknown_02024C98
-_08010D04: .4byte gUnknown_02024A68
-_08010D08: .4byte gUnknown_02024AD0
-_08010D0C: .4byte 0xfbffffff
-_08010D10: .4byte 0x15100007
-_08010D14: .4byte 0x0003043f
-_08010D18:
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- mov r1, r8
- adds r1, 0x50
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- add r0, r12
- str r1, [r0]
-_08010D30:
- movs r5, 0
- ldr r6, _08010EFC @ =0x02000000
- ldr r0, _08010F00 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- bge _08010D92
- ldr r1, _08010F04 @ =gUnknown_02024AD0
- mov r9, r1
- ldr r2, _08010F08 @ =gBitTable
- mov r8, r2
- ldr r4, _08010F0C @ =gUnknown_02024A60
- mov r12, r6
-_08010D48:
- movs r0, 0x58
- muls r0, r5
- mov r1, r9
- adds r3, r0, r1
- ldrb r0, [r4]
- lsls r0, 2
- add r0, r8
- ldr r0, [r0]
- lsls r2, r0, 16
- ldr r1, [r3]
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _08010D68
- bics r1, r2
- str r1, [r3]
-_08010D68:
- ldr r1, [r3]
- movs r0, 0xE0
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08010D88
- ldr r2, _08010F10 @ =0x00016020
- adds r0, r5, r2
- add r0, r12
- ldrb r0, [r0]
- ldrb r2, [r4]
- cmp r0, r2
- bne _08010D88
- ldr r0, _08010F14 @ =0xffff1fff
- ands r1, r0
- str r1, [r3]
-_08010D88:
- adds r5, 0x1
- ldr r3, _08010F00 @ =gUnknown_02024A68
- ldrb r3, [r3]
- cmp r5, r3
- blt _08010D48
-_08010D92:
- ldrb r0, [r7]
- ldr r1, _08010F18 @ =gUnknown_02024E60
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldrb r0, [r7]
- ldr r2, _08010F1C @ =gUnknown_02024E64
- adds r0, r2
- strb r1, [r0]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r3, r10
- adds r1, r0, r3
- movs r5, 0
- movs r2, 0
-_08010DB4:
- adds r0, r1, r5
- strb r2, [r0]
- adds r5, 0x1
- cmp r5, 0x1B
- bls _08010DB4
- ldr r1, _08010F20 @ =gUnknown_02024BE6
- ldrh r0, [r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, _08010F24 @ =gBattleMoves
- adds r1, r2
- ldrb r0, [r1]
- cmp r0, 0x7F
- bne _08010E2C
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r10
- mov r1, sp
- ldrb r1, [r1, 0xA]
- strb r1, [r0, 0xA]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r10
- mov r1, sp
- ldrb r1, [r1, 0x15]
- strb r1, [r0, 0x15]
- ldrb r0, [r7]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r10
- mov r0, sp
- ldrb r2, [r0, 0xF]
- lsls r2, 28
- movs r4, 0xF
- lsrs r2, 28
- ldrb r3, [r1, 0xF]
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xF]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r10
- mov r1, sp
- ldrb r1, [r1, 0xF]
- lsrs r1, 4
- lsls r1, 4
- ldrb r2, [r0, 0xF]
- ands r4, r2
- orrs r4, r1
- strb r4, [r0, 0xF]
-_08010E2C:
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r10
- movs r3, 0
- movs r1, 0x2
- strb r1, [r0, 0x16]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08010F28 @ =gUnknown_02024C34
- adds r0, r1
- movs r2, 0
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08010F2C @ =gUnknown_02024C3C
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08010F30 @ =gUnknown_02024C44
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08010F34 @ =gUnknown_02024C4C
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08010F38 @ =gUnknown_02024C2C
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- ldr r1, _08010F3C @ =gUnknown_02024C5C
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08010F40 @ =0x000160ac
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x53
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x1
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x1
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x1
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- subs r1, 0x1B
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldr r2, _08010F44 @ =0x00017100
- adds r1, r6, r2
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- str r3, [r0]
- ldr r6, _08010F20 @ =gUnknown_02024BE6
- strh r3, [r6]
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08010EFC: .4byte 0x02000000
-_08010F00: .4byte gUnknown_02024A68
-_08010F04: .4byte gUnknown_02024AD0
-_08010F08: .4byte gBitTable
-_08010F0C: .4byte gUnknown_02024A60
-_08010F10: .4byte 0x00016020
-_08010F14: .4byte 0xffff1fff
-_08010F18: .4byte gUnknown_02024E60
-_08010F1C: .4byte gUnknown_02024E64
-_08010F20: .4byte gUnknown_02024BE6
-_08010F24: .4byte gBattleMoves
-_08010F28: .4byte gUnknown_02024C34
-_08010F2C: .4byte gUnknown_02024C3C
-_08010F30: .4byte gUnknown_02024C44
-_08010F34: .4byte gUnknown_02024C4C
-_08010F38: .4byte gUnknown_02024C2C
-_08010F3C: .4byte gUnknown_02024C5C
-_08010F40: .4byte 0x000160ac
-_08010F44: .4byte 0x00017100
- thumb_func_end sub_8010B88
-
- thumb_func_start sub_8010F48
-sub_8010F48: @ 8010F48
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r4, 0
- ldr r7, _08011268 @ =gUnknown_02024A60
- ldr r0, _0801126C @ =gUnknown_02024C98
- mov r9, r0
- ldr r1, _08011270 @ =gUnknown_02024A68
- mov r8, r1
- ldr r2, _08011274 @ =0x02000000
- mov r12, r2
- ldr r6, _08011278 @ =gUnknown_02024D28
- adds r5, r7, 0
- movs r3, 0x58
- ldr r2, _0801127C @ =gBattleMons
- adds r2, 0x18
- movs r1, 0x6
-_08010F70:
- ldrb r0, [r5]
- muls r0, r3
- adds r0, r4, r0
- adds r0, r2
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x7
- ble _08010F70
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- ldr r2, _0801127C @ =gBattleMons
- adds r2, 0x50
- adds r0, r2
- movs r1, 0
- str r1, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- add r0, r9
- str r1, [r0]
- movs r4, 0
- mov r0, r8
- ldrb r0, [r0]
- cmp r4, r0
- bge _08011012
- adds r3, r2, 0
- movs r5, 0
- ldr r1, _08011280 @ =gBitTable
- mov r10, r1
- ldr r2, _08011274 @ =0x02000000
- mov r9, r2
-_08010FAE:
- ldr r1, [r3]
- movs r0, 0x80
- lsls r0, 19
- ands r0, r1
- cmp r0, 0
- beq _08010FCC
- ldr r2, _08011284 @ =gUnknown_02024CA8
- adds r0, r5, r2
- ldrb r0, [r0, 0x14]
- ldrb r2, [r7]
- cmp r0, r2
- bne _08010FCC
- ldr r0, _08011288 @ =0xfbffffff
- ands r1, r0
- str r1, [r3]
-_08010FCC:
- ldrb r0, [r7]
- lsls r0, 2
- add r0, r10
- ldr r0, [r0]
- lsls r2, r0, 16
- ldr r1, [r3]
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _08010FE4
- bics r1, r2
- str r1, [r3]
-_08010FE4:
- ldr r1, [r3]
- movs r0, 0xE0
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08011004
- ldr r2, _0801128C @ =0x00016020
- adds r0, r4, r2
- add r0, r9
- ldrb r0, [r0]
- ldrb r2, [r7]
- cmp r0, r2
- bne _08011004
- ldr r0, _08011290 @ =0xffff1fff
- ands r1, r0
- str r1, [r3]
-_08011004:
- adds r3, 0x58
- adds r5, 0x1C
- adds r4, 0x1
- mov r0, r8
- ldrb r0, [r0]
- cmp r4, r0
- blt _08010FAE
-_08011012:
- ldrb r0, [r7]
- ldr r1, _08011294 @ =gUnknown_02024E60
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldrb r0, [r7]
- ldr r2, _08011298 @ =gUnknown_02024E64
- adds r0, r2
- strb r1, [r0]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r2, _08011284 @ =gUnknown_02024CA8
- adds r1, r0, r2
- movs r4, 0
- movs r2, 0
-_08011034:
- adds r0, r1, r4
- strb r2, [r0]
- adds r4, 0x1
- cmp r4, 0x1B
- bls _08011034
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x2
- negs r0, r0
- mov r9, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- mov r8, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- mov r10, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r5, 0x21
- negs r5, r5
- adds r0, r5, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r4, 0x41
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1, 0x1]
- mov r0, r9
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1, 0x1]
- mov r0, r8
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1, 0x1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1, 0x1]
- movs r0, 0x19
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r6
- ldrb r1, [r0, 0x1]
- ands r5, r1
- strb r5, [r0, 0x1]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r6
- ldrb r1, [r0, 0x1]
- ands r4, r1
- strb r4, [r0, 0x1]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r6
- ldrb r1, [r0, 0x1]
- ands r3, r1
- strb r3, [r0, 0x1]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r6
- ldrb r1, [r0, 0x2]
- mov r2, r9
- ands r2, r1
- strb r2, [r0, 0x2]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r6
- ldrb r1, [r0, 0x2]
- mov r2, r8
- ands r2, r1
- strb r2, [r0, 0x2]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r6
- ldrb r1, [r0, 0x2]
- movs r2, 0x5
- negs r2, r2
- ands r2, r1
- strb r2, [r0, 0x2]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r6
- ldrb r1, [r0, 0x2]
- mov r2, r10
- ands r2, r1
- strb r2, [r0, 0x2]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _08011284 @ =gUnknown_02024CA8
- adds r0, r1
- movs r3, 0
- movs r1, 0x2
- strb r1, [r0, 0x16]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r2, _0801129C @ =gUnknown_02024C34
- adds r0, r2
- movs r2, 0
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _080112A0 @ =gUnknown_02024C3C
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _080112A4 @ =gUnknown_02024C44
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _080112A8 @ =gUnknown_02024C4C
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _080112AC @ =gUnknown_02024C2C
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- ldr r1, _080112B0 @ =gUnknown_02024C5C
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _080112B4 @ =0x000160e8
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- subs r1, 0x3D
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x53
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x1
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x1
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x1
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldr r1, _080112B8 @ =0x00017100
- add r1, r12
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- str r3, [r0]
- ldrb r0, [r7]
- movs r3, 0x58
- adds r1, r0, 0
- muls r1, r3
- ldr r2, _0801127C @ =gBattleMons
- adds r1, r2
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- ldr r2, _080112BC @ =gBaseStats
- adds r0, r2
- ldrb r0, [r0, 0x6]
- adds r1, 0x21
- strb r0, [r1]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r3
- ldr r0, _0801127C @ =gBattleMons
- adds r1, r0
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- ldr r2, _080112BC @ =gBaseStats
- adds r0, r2
- ldrb r0, [r0, 0x7]
- adds r1, 0x22
- strb r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08011268: .4byte gUnknown_02024A60
-_0801126C: .4byte gUnknown_02024C98
-_08011270: .4byte gUnknown_02024A68
-_08011274: .4byte 0x02000000
-_08011278: .4byte gUnknown_02024D28
-_0801127C: .4byte gBattleMons
-_08011280: .4byte gBitTable
-_08011284: .4byte gUnknown_02024CA8
-_08011288: .4byte 0xfbffffff
-_0801128C: .4byte 0x00016020
-_08011290: .4byte 0xffff1fff
-_08011294: .4byte gUnknown_02024E60
-_08011298: .4byte gUnknown_02024E64
-_0801129C: .4byte gUnknown_02024C34
-_080112A0: .4byte gUnknown_02024C3C
-_080112A4: .4byte gUnknown_02024C44
-_080112A8: .4byte gUnknown_02024C4C
-_080112AC: .4byte gUnknown_02024C2C
-_080112B0: .4byte gUnknown_02024C5C
-_080112B4: .4byte 0x000160e8
-_080112B8: .4byte 0x00017100
-_080112BC: .4byte gBaseStats
- thumb_func_end sub_8010F48
-
- thumb_func_start bc_8012FAC
-bc_8012FAC: @ 80112C0
- push {r4,r5,lr}
- ldr r5, _080112D0 @ =gUnknown_02024D1E
- ldrb r0, [r5]
- cmp r0, 0
- beq _080112D4
- cmp r0, 0x1
- beq _080112F8
- b _0801132E
- .align 2, 0
-_080112D0: .4byte gUnknown_02024D1E
-_080112D4:
- ldr r4, _080112F4 @ =gUnknown_02024A60
- ldrb r0, [r5, 0x1]
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl dp01_build_cmdbuf_x00_a_b_0
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _0801132E
- .align 2, 0
-_080112F4: .4byte gUnknown_02024A60
-_080112F8:
- ldr r0, _0801131C @ =gUnknown_02024A64
- ldr r2, [r0]
- cmp r2, 0
- bne _0801132E
- ldrb r0, [r5, 0x1]
- adds r0, 0x1
- strb r0, [r5, 0x1]
- ldr r1, _08011320 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _0801132C
- ldr r1, _08011324 @ =gUnknown_030042D4
- ldr r0, _08011328 @ =bc_load_battlefield
- str r0, [r1]
- b _0801132E
- .align 2, 0
-_0801131C: .4byte gUnknown_02024A64
-_08011320: .4byte gUnknown_02024A68
-_08011324: .4byte gUnknown_030042D4
-_08011328: .4byte bc_load_battlefield
-_0801132C:
- strb r2, [r5]
-_0801132E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end bc_8012FAC
-
- thumb_func_start bc_load_battlefield
-bc_load_battlefield: @ 8011334
- push {r4,r5,lr}
- ldr r0, _0801136C @ =gUnknown_02024A64
- ldr r5, [r0]
- cmp r5, 0
- bne _08011364
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r4, _08011370 @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r0, _08011374 @ =gUnknown_0300428C
- ldrb r1, [r0]
- movs r0, 0
- bl dp01_build_cmdbuf_x2E_a
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08011378 @ =gUnknown_030042D4
- ldr r0, _0801137C @ =sub_8011384
- str r0, [r1]
- ldr r0, _08011380 @ =gUnknown_02024D1E
- strb r5, [r0]
- strb r5, [r0, 0x1]
-_08011364:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801136C: .4byte gUnknown_02024A64
-_08011370: .4byte gUnknown_02024A60
-_08011374: .4byte gUnknown_0300428C
-_08011378: .4byte gUnknown_030042D4
-_0801137C: .4byte sub_8011384
-_08011380: .4byte gUnknown_02024D1E
- thumb_func_end bc_load_battlefield
-
- thumb_func_start sub_8011384
-sub_8011384: @ 8011384
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _080113E0 @ =gUnknown_02024A64
- ldr r1, [r0]
- cmp r1, 0
- beq _08011396
- b _080115DA
-_08011396:
- ldr r2, _080113E4 @ =gUnknown_02024A60
- strb r1, [r2]
- ldr r0, _080113E8 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r1, r0
- bcc _080113A4
- b _080115D4
-_080113A4:
- movs r7, 0x58
- ldr r0, _080113EC @ =gBattleMons
- mov r9, r0
- mov r8, r2
-_080113AC:
- ldr r0, _080113F0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080113F4
- ldr r4, _080113E4 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080113F4
- ldrb r0, [r4]
- muls r0, r7
- mov r1, r9
- adds r3, r0, r1
- movs r2, 0
- movs r1, 0
-_080113D2:
- adds r0, r3, r2
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x57
- bls _080113D2
- b _080114BE
- .align 2, 0
-_080113E0: .4byte gUnknown_02024A64
-_080113E4: .4byte gUnknown_02024A60
-_080113E8: .4byte gUnknown_02024A68
-_080113EC: .4byte gBattleMons
-_080113F0: .4byte gUnknown_020239F8
-_080113F4:
- mov r2, r8
- ldrb r0, [r2]
- muls r0, r7
- mov r1, r9
- adds r3, r0, r1
- movs r2, 0
- ldr r6, _08011530 @ =gBaseStats
- ldr r5, _08011534 @ =gUnknown_02024260
- ldr r4, _08011538 @ =gUnknown_02024A60
-_08011406:
- adds r0, r3, r2
- ldrb r1, [r4]
- lsls r1, 9
- adds r1, 0x4
- adds r1, r2, r1
- adds r1, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x57
- bls _08011406
- mov r2, r8
- ldrb r0, [r2]
- adds r2, r0, 0
- muls r2, r7
- add r2, r9
- ldrh r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x6]
- adds r2, 0x21
- strb r0, [r2]
- mov r1, r8
- ldrb r0, [r1]
- adds r2, r0, 0
- muls r2, r7
- add r2, r9
- ldrh r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x7]
- adds r2, 0x22
- strb r0, [r2]
- mov r2, r8
- ldrb r0, [r2]
- adds r1, r0, 0
- muls r1, r7
- add r1, r9
- ldrh r0, [r1]
- ldrb r1, [r1, 0x17]
- lsrs r1, 7
- bl GetAbilityBySpecies
- mov r2, r8
- ldrb r1, [r2]
- muls r1, r7
- add r1, r9
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r2]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 23
- ldr r1, _0801153C @ =0x020160bc
- adds r0, r1
- mov r2, r8
- ldrb r1, [r2]
- muls r1, r7
- add r1, r9
- ldrh r1, [r1, 0x28]
- strh r1, [r0]
- movs r2, 0
- ldr r4, _08011538 @ =gUnknown_02024A60
- movs r5, 0x58
- ldr r1, _08011540 @ =gUnknown_02024A98
- adds r6, r4, 0
- movs r0, 0x18
- negs r0, r0
- adds r0, r1
- mov r12, r0
- movs r3, 0x6
-_0801149E:
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r2, r0
- adds r0, r1
- strb r3, [r0]
- adds r2, 0x1
- cmp r2, 0x7
- ble _0801149E
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r7
- mov r0, r12
- adds r0, 0x50
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_080114BE:
- ldr r4, _08011538 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- cmp r0, 0
- bne _080114D8
- movs r0, 0
- bl dp01_build_cmdbuf_x07_7_7_7
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080114D8:
- ldr r5, _08011544 @ =gUnknown_020239F8
- ldrh r1, [r5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801154C
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080114FE
- movs r0, 0
- bl dp01_build_cmdbuf_x07_7_7_7
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080114FE:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08011588
- ldrh r1, [r5]
- ldr r2, _08011548 @ =0x00000902
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08011588
- ldrb r0, [r4]
- muls r0, r7
- add r0, r9
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl sub_8090D90
- b _08011588
- .align 2, 0
-_08011530: .4byte gBaseStats
-_08011534: .4byte gUnknown_02024260
-_08011538: .4byte gUnknown_02024A60
-_0801153C: .4byte 0x020160bc
-_08011540: .4byte gUnknown_02024A98
-_08011544: .4byte gUnknown_020239F8
-_08011548: .4byte 0x00000902
-_0801154C:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08011588
- ldrh r1, [r5]
- ldr r2, _080115E8 @ =0x00000902
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08011588
- ldrb r0, [r4]
- muls r0, r7
- add r0, r9
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl sub_8090D90
- movs r0, 0
- bl dp01_build_cmdbuf_x04_4_4_4
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08011588:
- ldr r0, _080115EC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080115BE
- ldr r4, _080115F0 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _080115B2
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _080115BE
-_080115B2:
- movs r0, 0
- bl dp01_build_cmdbuf_x07_7_7_7
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080115BE:
- mov r1, r8
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _080115F4 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcs _080115D4
- b _080113AC
-_080115D4:
- ldr r1, _080115F8 @ =gUnknown_030042D4
- ldr r0, _080115FC @ =bc_801333C
- str r0, [r1]
-_080115DA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080115E8: .4byte 0x00000902
-_080115EC: .4byte gUnknown_020239F8
-_080115F0: .4byte gUnknown_02024A60
-_080115F4: .4byte gUnknown_02024A68
-_080115F8: .4byte gUnknown_030042D4
-_080115FC: .4byte bc_801333C
- thumb_func_end sub_8011384
-
- thumb_func_start bc_801333C
-bc_801333C: @ 8011600
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x30
- ldr r0, _08011658 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _08011612
- b _0801178C
-_08011612:
- ldr r0, _0801165C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08011620
- b _0801172C
-_08011620:
- movs r7, 0
- add r0, sp, 0x4
- mov r8, r0
- mov r6, r8
- mov r5, sp
-_0801162A:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _08011660 @ =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08011650
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _08011668
-_08011650:
- ldr r0, _08011664 @ =0x0000ffff
- strh r0, [r5]
- movs r0, 0
- b _0801167A
- .align 2, 0
-_08011658: .4byte gUnknown_02024A64
-_0801165C: .4byte gUnknown_020239F8
-_08011660: .4byte gEnemyParty
-_08011664: .4byte 0x0000ffff
-_08011668:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
-_0801167A:
- str r0, [r6]
- adds r6, 0x8
- adds r5, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _0801162A
- movs r0, 0x1
- bl battle_get_side_with_given_state
- ldr r4, _080116D4 @ =gUnknown_02024A60
- strb r0, [r4]
- movs r0, 0
- mov r1, sp
- movs r2, 0x80
- bl dp01_build_cmdbuf_x30_TODO
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- movs r7, 0
- mov r6, r8
- mov r5, sp
-_080116A6:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _080116D8 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _080116CC
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _080116E0
-_080116CC:
- ldr r0, _080116DC @ =0x0000ffff
- strh r0, [r5]
- movs r0, 0
- b _080116F2
- .align 2, 0
-_080116D4: .4byte gUnknown_02024A60
-_080116D8: .4byte gPlayerParty
-_080116DC: .4byte 0x0000ffff
-_080116E0:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
-_080116F2:
- str r0, [r6]
- adds r6, 0x8
- adds r5, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _080116A6
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r4, _08011720 @ =gUnknown_02024A60
- strb r0, [r4]
- movs r0, 0
- mov r1, sp
- movs r2, 0x80
- bl dp01_build_cmdbuf_x30_TODO
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08011724 @ =gUnknown_030042D4
- ldr r0, _08011728 @ =bc_battle_begin_message
- b _0801178A
- .align 2, 0
-_08011720: .4byte gUnknown_02024A60
-_08011724: .4byte gUnknown_030042D4
-_08011728: .4byte bc_battle_begin_message
-_0801172C:
- movs r7, 0
- add r6, sp, 0x4
- mov r5, sp
-_08011732:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _08011760 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08011758
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _08011768
-_08011758:
- ldr r0, _08011764 @ =0x0000ffff
- strh r0, [r5]
- movs r0, 0
- b _0801177A
- .align 2, 0
-_08011760: .4byte gPlayerParty
-_08011764: .4byte 0x0000ffff
-_08011768:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
-_0801177A:
- str r0, [r6]
- adds r6, 0x8
- adds r5, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _08011732
- ldr r1, _08011798 @ =gUnknown_030042D4
- ldr r0, _0801179C @ =bc_8013568
-_0801178A:
- str r0, [r1]
-_0801178C:
- add sp, 0x30
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08011798: .4byte gUnknown_030042D4
-_0801179C: .4byte bc_8013568
- thumb_func_end bc_801333C
-
- thumb_func_start bc_battle_begin_message
-bc_battle_begin_message: @ 80117A0
- push {lr}
- ldr r0, _080117C8 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _080117C2
- movs r0, 0x1
- bl battle_get_side_with_given_state
- ldr r1, _080117CC @ =gUnknown_02024A60
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0
- bl b_std_message
- ldr r1, _080117D0 @ =gUnknown_030042D4
- ldr r0, _080117D4 @ =sub_8011800
- str r0, [r1]
-_080117C2:
- pop {r0}
- bx r0
- .align 2, 0
-_080117C8: .4byte gUnknown_02024A64
-_080117CC: .4byte gUnknown_02024A60
-_080117D0: .4byte gUnknown_030042D4
-_080117D4: .4byte sub_8011800
- thumb_func_end bc_battle_begin_message
-
- thumb_func_start bc_8013568
-bc_8013568: @ 80117D8
- push {lr}
- ldr r0, _080117F4 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _080117F0
- ldr r1, _080117F8 @ =gUnknown_030042D4
- ldr r0, _080117FC @ =sub_8011970
- str r0, [r1]
- movs r0, 0
- movs r1, 0
- bl b_std_message
-_080117F0:
- pop {r0}
- bx r0
- .align 2, 0
-_080117F4: .4byte gUnknown_02024A64
-_080117F8: .4byte gUnknown_030042D4
-_080117FC: .4byte sub_8011970
- thumb_func_end bc_8013568
-
- thumb_func_start sub_8011800
-sub_8011800: @ 8011800
- push {lr}
- ldr r0, _08011828 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08011822
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x1
- bl b_std_message
- ldr r1, _0801182C @ =gUnknown_030042D4
- ldr r0, _08011830 @ =sub_8011834
- str r0, [r1]
-_08011822:
- pop {r0}
- bx r0
- .align 2, 0
-_08011828: .4byte gUnknown_02024A64
-_0801182C: .4byte gUnknown_030042D4
-_08011830: .4byte sub_8011834
- thumb_func_end sub_8011800
-
- thumb_func_start sub_8011834
-sub_8011834: @ 8011834
- push {r4,lr}
- ldr r0, _080118AC @ =gUnknown_02024A64
- ldr r1, [r0]
- cmp r1, 0
- bne _080118A4
- ldr r2, _080118B0 @ =gUnknown_02024A60
- strb r1, [r2]
- ldr r0, _080118B4 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r1, r0
- bcs _0801189E
- adds r4, r2, 0
-_0801184C:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08011866
- movs r0, 0
- bl dp01_build_cmdbuf_x2F_2F_2F_2F
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08011866:
- ldr r0, _080118B8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801188C
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0801188C
- movs r0, 0
- bl dp01_build_cmdbuf_x2F_2F_2F_2F
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_0801188C:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _080118B4 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0801184C
-_0801189E:
- ldr r1, _080118BC @ =gUnknown_030042D4
- ldr r0, _080118C0 @ =bc_801362C
- str r0, [r1]
-_080118A4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080118AC: .4byte gUnknown_02024A64
-_080118B0: .4byte gUnknown_02024A60
-_080118B4: .4byte gUnknown_02024A68
-_080118B8: .4byte gUnknown_020239F8
-_080118BC: .4byte gUnknown_030042D4
-_080118C0: .4byte bc_801362C
- thumb_func_end sub_8011834
-
- thumb_func_start bc_801362C
-bc_801362C: @ 80118C4
- push {r4,r5,lr}
- ldr r0, _08011930 @ =gUnknown_02024A64
- ldr r1, [r0]
- cmp r1, 0
- bne _0801192A
- ldr r2, _08011934 @ =gUnknown_02024A60
- strb r1, [r2]
- ldr r0, _08011938 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08011924
- adds r4, r2, 0
- ldr r5, _0801193C @ =gBattleMons
-_080118DE:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08011912
- ldr r0, _08011940 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r2, _08011944 @ =0x00000902
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08011912
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r5
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl sub_8090D90
-_08011912:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08011938 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080118DE
-_08011924:
- ldr r1, _08011948 @ =gUnknown_030042D4
- ldr r0, _0801194C @ =sub_8011970
- str r0, [r1]
-_0801192A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08011930: .4byte gUnknown_02024A64
-_08011934: .4byte gUnknown_02024A60
-_08011938: .4byte gUnknown_02024A68
-_0801193C: .4byte gBattleMons
-_08011940: .4byte gUnknown_020239F8
-_08011944: .4byte 0x00000902
-_08011948: .4byte gUnknown_030042D4
-_0801194C: .4byte sub_8011970
- thumb_func_end bc_801362C
-
- thumb_func_start unref_sub_8011950
-unref_sub_8011950: @ 8011950
- push {lr}
- ldr r0, _08011964 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08011960
- ldr r1, _08011968 @ =gUnknown_030042D4
- ldr r0, _0801196C @ =sub_8011970
- str r0, [r1]
-_08011960:
- pop {r0}
- bx r0
- .align 2, 0
-_08011964: .4byte gUnknown_02024A64
-_08011968: .4byte gUnknown_030042D4
-_0801196C: .4byte sub_8011970
- thumb_func_end unref_sub_8011950
-
- thumb_func_start sub_8011970
-sub_8011970: @ 8011970
- push {lr}
- ldr r0, _080119A4 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801199E
- ldr r0, _080119A8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08011998
- movs r0, 0
- bl battle_get_side_with_given_state
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x1
- bl b_std_message
-_08011998:
- ldr r1, _080119AC @ =gUnknown_030042D4
- ldr r0, _080119B0 @ =sub_80119B4
- str r0, [r1]
-_0801199E:
- pop {r0}
- bx r0
- .align 2, 0
-_080119A4: .4byte gUnknown_02024A64
-_080119A8: .4byte gUnknown_020239F8
-_080119AC: .4byte gUnknown_030042D4
-_080119B0: .4byte sub_80119B4
- thumb_func_end sub_8011970
-
- thumb_func_start sub_80119B4
-sub_80119B4: @ 80119B4
- push {r4,lr}
- ldr r0, _08011A40 @ =gUnknown_02024A64
- ldr r1, [r0]
- cmp r1, 0
- bne _08011A38
- ldr r2, _08011A44 @ =gUnknown_02024A60
- strb r1, [r2]
- ldr r0, _08011A48 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08011A1C
- adds r4, r2, 0
-_080119CC:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- cmp r0, 0
- bne _080119E4
- movs r0, 0
- bl dp01_build_cmdbuf_x2F_2F_2F_2F
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080119E4:
- ldr r0, _08011A4C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08011A0A
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08011A0A
- movs r0, 0
- bl dp01_build_cmdbuf_x2F_2F_2F_2F
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08011A0A:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08011A48 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080119CC
-_08011A1C:
- ldr r1, _08011A50 @ =0x02000000
- ldr r2, _08011A54 @ =0x00016058
- adds r0, r1, r2
- movs r2, 0
- strb r2, [r0]
- ldr r3, _08011A58 @ =0x000160f9
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _08011A5C @ =0x000160e6
- adds r1, r0
- strb r2, [r1]
- ldr r1, _08011A60 @ =gUnknown_030042D4
- ldr r0, _08011A64 @ =sub_8011B00
- str r0, [r1]
-_08011A38:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08011A40: .4byte gUnknown_02024A64
-_08011A44: .4byte gUnknown_02024A60
-_08011A48: .4byte gUnknown_02024A68
-_08011A4C: .4byte gUnknown_020239F8
-_08011A50: .4byte 0x02000000
-_08011A54: .4byte 0x00016058
-_08011A58: .4byte 0x000160f9
-_08011A5C: .4byte 0x000160e6
-_08011A60: .4byte gUnknown_030042D4
-_08011A64: .4byte sub_8011B00
- thumb_func_end sub_80119B4
-
- thumb_func_start unref_sub_8011A68
-unref_sub_8011A68: @ 8011A68
- push {r4,r5,lr}
- ldr r0, _08011AD8 @ =gUnknown_02024A64
- ldr r1, [r0]
- cmp r1, 0
- bne _08011AD2
- ldr r2, _08011ADC @ =gUnknown_02024A60
- strb r1, [r2]
- ldr r0, _08011AE0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08011AB6
- adds r4, r2, 0
- ldr r5, _08011AE4 @ =gUnknown_02024A6A
-_08011A82:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08011AA4
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0
- movs r2, 0
- bl sub_800C704
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08011AA4:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08011AE0 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08011A82
-_08011AB6:
- ldr r1, _08011AE8 @ =0x02000000
- ldr r2, _08011AEC @ =0x00016058
- adds r0, r1, r2
- movs r2, 0
- strb r2, [r0]
- ldr r3, _08011AF0 @ =0x000160f9
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _08011AF4 @ =0x000160e6
- adds r1, r0
- strb r2, [r1]
- ldr r1, _08011AF8 @ =gUnknown_030042D4
- ldr r0, _08011AFC @ =sub_8011B00
- str r0, [r1]
-_08011AD2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08011AD8: .4byte gUnknown_02024A64
-_08011ADC: .4byte gUnknown_02024A60
-_08011AE0: .4byte gUnknown_02024A68
-_08011AE4: .4byte gUnknown_02024A6A
-_08011AE8: .4byte 0x02000000
-_08011AEC: .4byte 0x00016058
-_08011AF0: .4byte 0x000160f9
-_08011AF4: .4byte 0x000160e6
-_08011AF8: .4byte gUnknown_030042D4
-_08011AFC: .4byte sub_8011B00
- thumb_func_end unref_sub_8011A68
-
- thumb_func_start sub_8011B00
-sub_8011B00: @ 8011B00
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- movs r0, 0
- mov r9, r0
- ldr r0, _08011B44 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _08011B18
- b _08011D6E
-_08011B18:
- ldr r0, _08011B48 @ =0x02000000
- ldr r1, _08011B4C @ =0x00016058
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08011BA2
- movs r5, 0
- ldr r1, _08011B50 @ =gUnknown_02024A68
- adds r3, r1, 0
- ldrb r2, [r1]
- cmp r5, r2
- bge _08011B3E
- ldr r2, _08011B54 @ =gUnknown_02024A7A
-_08011B32:
- adds r0, r5, r2
- strb r5, [r0]
- adds r5, 0x1
- ldrb r0, [r1]
- cmp r5, r0
- blt _08011B32
-_08011B3E:
- movs r5, 0
- b _08011B98
- .align 2, 0
-_08011B44: .4byte gUnknown_02024A64
-_08011B48: .4byte 0x02000000
-_08011B4C: .4byte 0x00016058
-_08011B50: .4byte gUnknown_02024A68
-_08011B54: .4byte gUnknown_02024A7A
-_08011B58:
- adds r4, r5, 0x1
- mov r8, r4
- ldrb r1, [r1]
- cmp r8, r1
- bge _08011B96
- ldr r6, _08011BC8 @ =gUnknown_02024A7A
- ldr r3, _08011BCC @ =gUnknown_02024A68
- lsls r7, r5, 24
-_08011B68:
- adds r0, r5, r6
- ldrb r0, [r0]
- adds r1, r4, r6
- ldrb r1, [r1]
- movs r2, 0x1
- str r3, [sp, 0x4]
- bl b_first_side
- lsls r0, 24
- ldr r3, [sp, 0x4]
- cmp r0, 0
- beq _08011B8C
- lsls r1, r4, 24
- lsrs r1, 24
- lsrs r0, r7, 24
- bl sub_8012FBC
- ldr r3, [sp, 0x4]
-_08011B8C:
- adds r4, 0x1
- ldr r0, _08011BCC @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08011B68
-_08011B96:
- mov r5, r8
-_08011B98:
- adds r1, r3, 0
- ldrb r0, [r3]
- subs r0, 0x1
- cmp r5, r0
- blt _08011B58
-_08011BA2:
- ldr r0, _08011BD0 @ =0x02000000
- ldr r1, _08011BD4 @ =0x000160e6
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- bne _08011BD8
- str r0, [sp]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0xFF
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08011BD8
- movs r0, 0x1
- strb r0, [r4]
- b _08011D6E
- .align 2, 0
-_08011BC8: .4byte gUnknown_02024A7A
-_08011BCC: .4byte gUnknown_02024A68
-_08011BD0: .4byte 0x02000000
-_08011BD4: .4byte 0x000160e6
-_08011BD8:
- ldr r0, _08011D7C @ =0x02000000
- ldr r3, _08011D80 @ =0x00016058
- adds r2, r0, r3
- ldr r1, _08011D84 @ =gUnknown_02024A68
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08011C28
- ldr r5, _08011D88 @ =gUnknown_02024A7A
- adds r4, r2, 0
-_08011BEC:
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08011C0E
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08011C0E:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- mov r1, r9
- cmp r1, 0
- beq _08011C1C
- b _08011D6E
-_08011C1C:
- ldr r1, _08011D84 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08011BEC
-_08011C28:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08011C42
- b _08011D6E
-_08011C42:
- str r0, [sp]
- movs r0, 0xB
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08011C58
- b _08011D6E
-_08011C58:
- ldr r0, _08011D7C @ =0x02000000
- ldr r3, _08011D8C @ =0x000160f9
- adds r2, r0, r3
- ldr r0, _08011D84 @ =gUnknown_02024A68
- ldrb r1, [r2]
- adds r3, r0, 0
- ldrb r0, [r3]
- cmp r1, r0
- bcs _08011CA8
- ldr r5, _08011D88 @ =gUnknown_02024A7A
- adds r4, r2, 0
-_08011C6E:
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0
- movs r2, 0
- str r3, [sp, 0x4]
- bl sub_801A02C
- lsls r0, 24
- ldr r3, [sp, 0x4]
- cmp r0, 0
- beq _08011C90
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08011C90:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- mov r1, r9
- cmp r1, 0
- bne _08011D6E
- ldr r1, _08011D84 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08011C6E
-_08011CA8:
- ldrb r0, [r3]
- cmp r0, 0
- beq _08011CB6
- adds r5, r0, 0
-_08011CB0:
- subs r5, 0x1
- cmp r5, 0
- bne _08011CB0
-_08011CB6:
- movs r5, 0
- ldr r0, _08011D7C @ =0x02000000
- mov r8, r5
- ldr r3, _08011D90 @ =gUnknown_02024C60
- ldr r1, _08011D94 @ =0x00016068
- adds r2, r0, r1
- movs r7, 0x6
- ldr r6, _08011D98 @ =gUnknown_02024C18
- movs r4, 0xFF
-_08011CC8:
- strb r7, [r2]
- adds r1, r5, r6
- ldrb r0, [r1]
- orrs r0, r4
- strb r0, [r1]
- mov r0, r8
- strh r0, [r3]
- adds r3, 0x2
- adds r2, 0x1
- adds r5, 0x1
- cmp r5, 0x3
- ble _08011CC8
- movs r0, 0
- bl sub_801365C
- bl sub_801377C
- ldr r0, _08011D7C @ =0x02000000
- ldr r1, _08011D9C @ =gUnknown_02024C0C
- ldrb r1, [r1]
- ldr r2, _08011DA0 @ =0x000160a6
- adds r0, r2
- strb r1, [r0]
- ldr r1, _08011DA4 @ =gUnknown_030042D4
- ldr r0, _08011DA8 @ =sub_8012324
- str r0, [r1]
- bl sub_80156DC
- ldr r1, _08011DAC @ =gUnknown_02024D1E
- movs r2, 0
- adds r0, r1, 0x7
-_08011D06:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08011D06
- movs r5, 0
- ldr r3, _08011D84 @ =gUnknown_02024A68
- ldr r2, _08011D7C @ =0x02000000
- ldr r6, _08011DB0 @ =gUnknown_02024C68
- ldrb r0, [r3]
- cmp r5, r0
- bge _08011D36
- ldr r0, _08011DB4 @ =gBattleMons
- movs r4, 0x9
- negs r4, r4
- adds r1, r0, 0
- adds r1, 0x50
-_08011D26:
- ldr r0, [r1]
- ands r0, r4
- str r0, [r1]
- adds r1, 0x58
- adds r5, 0x1
- ldrb r0, [r3]
- cmp r5, r0
- blt _08011D26
-_08011D36:
- movs r1, 0xB0
- lsls r1, 9
- adds r0, r2, r1
- movs r1, 0
- strb r1, [r0]
- ldr r3, _08011DB8 @ =0x00016001
- adds r0, r2, r3
- strb r1, [r0]
- ldr r3, _08011DBC @ =0x00016110
- adds r0, r2, r3
- strb r1, [r0]
- adds r3, 0x1
- adds r0, r2, r3
- strb r1, [r0]
- ldr r3, _08011DC0 @ =0x0001600c
- adds r0, r2, r3
- strb r1, [r0]
- adds r3, 0x4D
- adds r0, r2, r3
- strb r1, [r0]
- subs r3, 0x4B
- adds r0, r2, r3
- strb r1, [r0]
- strb r1, [r6]
- bl Random
- ldr r1, _08011DC4 @ =gUnknown_02024D1C
- strh r0, [r1]
-_08011D6E:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08011D7C: .4byte 0x02000000
-_08011D80: .4byte 0x00016058
-_08011D84: .4byte gUnknown_02024A68
-_08011D88: .4byte gUnknown_02024A7A
-_08011D8C: .4byte 0x000160f9
-_08011D90: .4byte gUnknown_02024C60
-_08011D94: .4byte 0x00016068
-_08011D98: .4byte gUnknown_02024C18
-_08011D9C: .4byte gUnknown_02024C0C
-_08011DA0: .4byte 0x000160a6
-_08011DA4: .4byte gUnknown_030042D4
-_08011DA8: .4byte sub_8012324
-_08011DAC: .4byte gUnknown_02024D1E
-_08011DB0: .4byte gUnknown_02024C68
-_08011DB4: .4byte gBattleMons
-_08011DB8: .4byte 0x00016001
-_08011DBC: .4byte 0x00016110
-_08011DC0: .4byte 0x0001600c
-_08011DC4: .4byte gUnknown_02024D1C
- thumb_func_end sub_8011B00
-
- thumb_func_start bc_8013B1C
-bc_8013B1C: @ 8011DC8
- push {r4-r6,lr}
- ldr r0, _08011E60 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08011E5A
- ldr r1, _08011E64 @ =gUnknown_030042D4
- ldr r0, _08011E68 @ =sub_8011E8C
- str r0, [r1]
- ldr r3, _08011E6C @ =gUnknown_02024A68
- ldr r1, _08011E70 @ =gUnknown_02024D1E
- movs r2, 0
- adds r0, r1, 0x7
-_08011DE0:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08011DE0
- movs r4, 0
- ldrb r3, [r3]
- cmp r4, r3
- bge _08011E32
- ldr r5, _08011E74 @ =gBattleMons
- adds r6, r5, 0
- adds r6, 0x4C
-_08011DF6:
- movs r0, 0x58
- adds r2, r4, 0
- muls r2, r0
- 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, r6
- ldr r0, [r2]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08011E28
- movs r0, 0x80
- lsls r0, 5
- ands r3, r0
- cmp r3, 0
- beq _08011E28
- lsls r0, r4, 24
- lsrs r0, 24
- bl b_cancel_multi_turn_move_maybe
-_08011E28:
- adds r4, 0x1
- ldr r0, _08011E6C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08011DF6
-_08011E32:
- ldr r0, _08011E78 @ =0x02000000
- movs r2, 0xB0
- lsls r2, 9
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r3, _08011E7C @ =0x00016001
- adds r1, r0, r3
- strb r2, [r1]
- ldr r3, _08011E80 @ =0x00016110
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- ldr r1, _08011E84 @ =0x0001600e
- adds r0, r1
- strb r2, [r0]
- ldr r0, _08011E88 @ =gUnknown_02024C68
- strb r2, [r0]
-_08011E5A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08011E60: .4byte gUnknown_02024A64
-_08011E64: .4byte gUnknown_030042D4
-_08011E68: .4byte sub_8011E8C
-_08011E6C: .4byte gUnknown_02024A68
-_08011E70: .4byte gUnknown_02024D1E
-_08011E74: .4byte gBattleMons
-_08011E78: .4byte 0x02000000
-_08011E7C: .4byte 0x00016001
-_08011E80: .4byte 0x00016110
-_08011E84: .4byte 0x0001600e
-_08011E88: .4byte gUnknown_02024C68
- thumb_func_end bc_8013B1C
-
- thumb_func_start sub_8011E8C
-sub_8011E8C: @ 8011E8C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0x1
- bl sub_801365C
- ldr r0, _08011F3C @ =gUnknown_02024D26
- ldrb r0, [r0]
- cmp r0, 0
- bne _08011EBC
- bl sub_8015DFC
- lsls r0, 24
- cmp r0, 0
- beq _08011EB0
- b _08011FEE
-_08011EB0:
- bl sub_8016558
- lsls r0, 24
- cmp r0, 0
- beq _08011EBC
- b _08011FEE
-_08011EBC:
- bl sub_80173A4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08011ECA
- b _08011FEE
-_08011ECA:
- ldr r5, _08011F40 @ =0x02000000
- ldr r2, _08011F44 @ =0x00016059
- adds r0, r5, r2
- strb r1, [r0]
- bl sub_80170DC
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08011EE0
- b _08011FEE
-_08011EE0:
- movs r0, 0
- bl sub_801365C
- ldr r2, _08011F48 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _08011F4C @ =0xfffffdff
- ands r0, r1
- ldr r1, _08011F50 @ =0xfff7ffff
- ands r0, r1
- ldr r1, _08011F54 @ =0xffbfffff
- ands r0, r1
- ldr r1, _08011F58 @ =0xffefffff
- ands r0, r1
- str r0, [r2]
- ldr r3, _08011F5C @ =0x00016002
- adds r0, r5, r3
- strb r4, [r0]
- ldr r1, _08011F60 @ =0x000160a1
- adds r0, r5, r1
- strb r4, [r0]
- ldr r2, _08011F64 @ =0x0001600c
- adds r0, r5, r2
- strb r4, [r0]
- ldr r0, _08011F68 @ =gUnknown_02024BEC
- str r4, [r0]
- ldr r0, _08011F6C @ =gUnknown_02024C68
- strb r4, [r0]
- ldr r1, _08011F70 @ =gUnknown_02024D1E
- movs r2, 0
- adds r0, r1, 0x4
-_08011F1C:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08011F1C
- ldr r0, _08011F3C @ =gUnknown_02024D26
- ldrb r0, [r0]
- cmp r0, 0
- beq _08011F80
- ldr r1, _08011F74 @ =gUnknown_02024A7F
- movs r0, 0xC
- strb r0, [r1]
- ldr r1, _08011F78 @ =gUnknown_030042D4
- ldr r0, _08011F7C @ =sub_80138F0
- str r0, [r1]
- b _08011FEE
- .align 2, 0
-_08011F3C: .4byte gUnknown_02024D26
-_08011F40: .4byte 0x02000000
-_08011F44: .4byte 0x00016059
-_08011F48: .4byte gUnknown_02024C6C
-_08011F4C: .4byte 0xfffffdff
-_08011F50: .4byte 0xfff7ffff
-_08011F54: .4byte 0xffbfffff
-_08011F58: .4byte 0xffefffff
-_08011F5C: .4byte 0x00016002
-_08011F60: .4byte 0x000160a1
-_08011F64: .4byte 0x0001600c
-_08011F68: .4byte gUnknown_02024BEC
-_08011F6C: .4byte gUnknown_02024C68
-_08011F70: .4byte gUnknown_02024D1E
-_08011F74: .4byte gUnknown_02024A7F
-_08011F78: .4byte gUnknown_030042D4
-_08011F7C: .4byte sub_80138F0
-_08011F80:
- ldr r1, _08011FFC @ =gUnknown_030042E0
- ldrb r0, [r1, 0x13]
- cmp r0, 0xFE
- bhi _08011F8C
- adds r0, 0x1
- strb r0, [r1, 0x13]
-_08011F8C:
- movs r2, 0
- ldr r4, _08012000 @ =gUnknown_02024A68
- ldr r3, _08012004 @ =0x02000000
- mov r9, r3
- ldr r0, _08012008 @ =gUnknown_030042D4
- mov r10, r0
- ldr r1, _0801200C @ =gUnknown_02024C0C
- mov r12, r1
- ldr r3, _08012010 @ =sub_8012324
- mov r8, r3
- ldrb r0, [r4]
- cmp r2, r0
- bge _08011FC2
- ldr r7, _08012014 @ =gUnknown_02024C18
- movs r6, 0xFF
- movs r5, 0
- ldr r3, _08012018 @ =gUnknown_02024C60
-_08011FAE:
- adds r1, r2, r7
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- strh r5, [r3]
- adds r3, 0x2
- adds r2, 0x1
- ldrb r1, [r4]
- cmp r2, r1
- blt _08011FAE
-_08011FC2:
- ldr r0, _08012004 @ =0x02000000
- movs r1, 0x6
- movs r2, 0x3
- ldr r3, _0801201C @ =0x0001606b
- adds r0, r3
-_08011FCC:
- strb r1, [r0]
- subs r0, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _08011FCC
- mov r0, r12
- ldrb r1, [r0]
- ldr r0, _08012020 @ =0x000160a6
- add r0, r9
- strb r1, [r0]
- mov r1, r8
- mov r2, r10
- str r1, [r2]
- bl Random
- ldr r1, _08012024 @ =gUnknown_02024D1C
- strh r0, [r1]
-_08011FEE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08011FFC: .4byte gUnknown_030042E0
-_08012000: .4byte gUnknown_02024A68
-_08012004: .4byte 0x02000000
-_08012008: .4byte gUnknown_030042D4
-_0801200C: .4byte gUnknown_02024C0C
-_08012010: .4byte sub_8012324
-_08012014: .4byte gUnknown_02024C18
-_08012018: .4byte gUnknown_02024C60
-_0801201C: .4byte 0x0001606b
-_08012020: .4byte 0x000160a6
-_08012024: .4byte gUnknown_02024D1C
- thumb_func_end sub_8011E8C
-
- thumb_func_start sub_8012028
-sub_8012028: @ 8012028
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _0801204C @ =gBattleMons
- ldr r0, _08012050 @ =gUnknown_02024A60
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08012058
- ldr r1, _08012054 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x7]
- b _08012062
- .align 2, 0
-_0801204C: .4byte gBattleMons
-_08012050: .4byte gUnknown_02024A60
-_08012054: .4byte gEnigmaBerries
-_08012058:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r2, r0, 24
-_08012062:
- ldr r1, _0801217C @ =gUnknown_02024C0B
- ldr r3, _08012180 @ =gUnknown_02024A60
- ldrb r0, [r3]
- strb r0, [r1]
- cmp r2, 0x25
- bne _08012070
- b _080121F4
-_08012070:
- ldr r0, _08012184 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801207E
- b _080121F4
-_0801207E:
- ldr r1, _08012188 @ =gBattleMons
- ldrb r2, [r3]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x32
- bne _08012092
- b _080121F4
-_08012092:
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r0, _0801218C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- bge _08012126
- movs r7, 0
-_080120A8:
- lsrs r4, r7, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- beq _080120CC
- ldr r1, _08012188 @ =gBattleMons
- movs r0, 0x58
- muls r0, r5
- adds r0, r1
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r0, [r2]
- cmp r0, 0x17
- bne _080120CC
- b _080121FC
-_080120CC:
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- beq _08012116
- ldr r3, _08012188 @ =gBattleMons
- ldr r0, _08012180 @ =gUnknown_02024A60
- ldrb r0, [r0]
- movs r2, 0x58
- muls r0, r2
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- beq _08012116
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08012116
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08012116
- adds r0, r5, 0
- muls r0, r2
- adds r0, r3
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r0, [r2]
- cmp r0, 0x47
- bne _08012116
- b _08012220
-_08012116:
- movs r0, 0x80
- lsls r0, 17
- adds r7, r0
- adds r5, 0x1
- ldr r0, _0801218C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- blt _080120A8
-_08012126:
- ldr r4, _08012180 @ =gUnknown_02024A60
- ldrb r1, [r4]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xF
- movs r2, 0x2A
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _080121A0
- ldr r6, _08012188 @ =gBattleMons
- ldrb r0, [r4]
- movs r3, 0x58
- muls r0, r3
- adds r1, r0, r6
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x8
- beq _0801215E
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _080121A0
-_0801215E:
- ldr r0, _08012190 @ =0x02000000
- subs r1, r5, 0x1
- ldr r2, _08012194 @ =0x00016003
- adds r0, r2
- strb r1, [r0]
- ldr r2, _08012198 @ =byte_2024C06
- adds r0, r1, 0
- muls r0, r3
- adds r0, r6
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r1, _0801219C @ =gUnknown_02024D1E
- movs r0, 0x2
- b _08012248
- .align 2, 0
-_0801217C: .4byte gUnknown_02024C0B
-_08012180: .4byte gUnknown_02024A60
-_08012184: .4byte gUnknown_020239F8
-_08012188: .4byte gBattleMons
-_0801218C: .4byte gUnknown_02024A68
-_08012190: .4byte 0x02000000
-_08012194: .4byte 0x00016003
-_08012198: .4byte byte_2024C06
-_0801219C: .4byte gUnknown_02024D1E
-_080121A0:
- ldr r1, _080121D4 @ =gBattleMons
- ldr r0, _080121D8 @ =gUnknown_02024A60
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080121DC @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- bne _080121CA
- ldr r1, _080121E0 @ =gUnknown_02024C98
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- beq _080121E8
-_080121CA:
- ldr r1, _080121E4 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
- movs r0, 0x1
- b _0801224A
- .align 2, 0
-_080121D4: .4byte gBattleMons
-_080121D8: .4byte gUnknown_02024A60
-_080121DC: .4byte 0x0400e000
-_080121E0: .4byte gUnknown_02024C98
-_080121E4: .4byte gUnknown_02024D1E
-_080121E8:
- ldr r0, _080121F8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08012244
-_080121F4:
- movs r0, 0
- b _0801224A
- .align 2, 0
-_080121F8: .4byte gUnknown_020239F8
-_080121FC:
- ldr r0, _08012210 @ =0x02000000
- ldr r1, _08012214 @ =0x00016003
- adds r0, r1
- strb r5, [r0]
- ldr r1, _08012218 @ =byte_2024C06
- ldrb r0, [r2]
- strb r0, [r1]
- ldr r1, _0801221C @ =gUnknown_02024D1E
- movs r0, 0x2
- b _08012248
- .align 2, 0
-_08012210: .4byte 0x02000000
-_08012214: .4byte 0x00016003
-_08012218: .4byte byte_2024C06
-_0801221C: .4byte gUnknown_02024D1E
-_08012220:
- ldr r0, _08012234 @ =0x02000000
- ldr r1, _08012238 @ =0x00016003
- adds r0, r1
- strb r5, [r0]
- ldr r1, _0801223C @ =byte_2024C06
- ldrb r0, [r2]
- strb r0, [r1]
- ldr r1, _08012240 @ =gUnknown_02024D1E
- movs r0, 0x2
- b _08012248
- .align 2, 0
-_08012234: .4byte 0x02000000
-_08012238: .4byte 0x00016003
-_0801223C: .4byte byte_2024C06
-_08012240: .4byte gUnknown_02024D1E
-_08012244:
- ldr r1, _08012254 @ =gUnknown_02024D1E
- movs r0, 0x1
-_08012248:
- strb r0, [r1, 0x5]
-_0801224A:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08012254: .4byte gUnknown_02024D1E
- thumb_func_end sub_8012028
-
- thumb_func_start sub_8012258
-sub_8012258: @ 8012258
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- ldr r7, _080122E4 @ =gUnknown_02024A6A
- ldr r4, _080122E8 @ =gUnknown_02038470
- ldr r1, _080122EC @ =0x02000000
- lsls r6, r5, 1
- ldr r2, _080122F0 @ =0x0001606c
- adds r0, r5, r2
- adds r0, r6, r0
- adds r2, r0, r1
-_08012270:
- adds r1, r3, r4
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x2
- ble _08012270
- adds r0, r6, r7
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r7, _080122EC @ =0x02000000
- ldr r1, _080122F4 @ =0x00016068
- adds r0, r5, r1
- adds r0, r7
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_8094C98
- ldr r0, _080122F8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080122FC
- movs r3, 0
- ldr r2, _080122F0 @ =0x0001606c
- movs r0, 0x2
- adds r1, r5, 0
- eors r1, r0
- adds r0, r5, r2
- adds r0, r6, r0
- adds r4, r0, r7
- ldr r5, _080122E8 @ =gUnknown_02038470
- lsls r0, r1, 1
- adds r0, r1
- adds r0, r2
- adds r2, r0, r7
-_080122CC:
- adds r0, r3, r5
- ldrb r1, [r0]
- strb r1, [r4]
- ldrb r0, [r0]
- strb r0, [r2]
- adds r4, 0x1
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x2
- ble _080122CC
- b _08012316
- .align 2, 0
-_080122E4: .4byte gUnknown_02024A6A
-_080122E8: .4byte gUnknown_02038470
-_080122EC: .4byte 0x02000000
-_080122F0: .4byte 0x0001606c
-_080122F4: .4byte 0x00016068
-_080122F8: .4byte gUnknown_020239F8
-_080122FC:
- movs r3, 0
- ldr r2, _0801231C @ =0x0001606c
- adds r0, r5, r2
- adds r0, r6, r0
- adds r1, r0, r7
- ldr r2, _08012320 @ =gUnknown_02038470
-_08012308:
- adds r0, r3, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, 0x1
- adds r3, 0x1
- cmp r3, 0x2
- ble _08012308
-_08012316:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801231C: .4byte 0x0001606c
-_08012320: .4byte gUnknown_02038470
- thumb_func_end sub_8012258
-
- thumb_func_start sub_8012324
-sub_8012324: @ 8012324
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r0, _08012340 @ =gUnknown_02024D1E
- movs r1, 0
- strb r1, [r0, 0x4]
- ldr r0, _08012344 @ =gUnknown_02024A60
- strb r1, [r0]
- ldr r0, _08012348 @ =gUnknown_02024A68
- bl _08012F74
- .align 2, 0
-_08012340: .4byte gUnknown_02024D1E
-_08012344: .4byte gUnknown_02024A60
-_08012348: .4byte gUnknown_02024A68
-_0801234C:
- ldr r4, _08012374 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08012378 @ =gUnknown_02024D1E
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x6
- bls _08012368
- bl _08012F66
-_08012368:
- lsls r0, 2
- ldr r1, _0801237C @ =_08012380
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08012374: .4byte gUnknown_02024A60
-_08012378: .4byte gUnknown_02024D1E
-_0801237C: .4byte _08012380
- .align 2, 0
-_08012380:
- .4byte _0801239C
- .4byte _080124C8
- .4byte _08012A28
- .4byte _08012DA8
- .4byte _08012E50
- .4byte _08012E94
- .4byte _08012F38
-_0801239C:
- ldr r4, _08012434 @ =0x02000000
- ldr r0, _08012438 @ =gUnknown_02024A60
- ldrb r0, [r0]
- ldr r1, _0801243C @ =0x00016068
- adds r0, r1
- adds r0, r4
- movs r1, 0x6
- strb r1, [r0]
- ldr r0, _08012440 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080123F8
- movs r1, 0x2
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- beq _080123F8
- eors r5, r1
- adds r0, r5, 0
- bl battle_get_side_with_given_state
- ldr r2, _08012444 @ =0x000160a6
- adds r1, r4, r2
- ldrb r1, [r1]
- ldr r2, _08012448 @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080123F8
- ldr r4, _0801244C @ =gUnknown_02024D1E
- adds r0, r5, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x4
- beq _080123F8
- bl _08012F66
-_080123F8:
- ldr r0, _08012434 @ =0x02000000
- ldr r3, _08012444 @ =0x000160a6
- adds r0, r3
- ldrb r3, [r0]
- ldr r1, _08012448 @ =gBitTable
- ldr r4, _08012438 @ =gUnknown_02024A60
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ands r3, r0
- cmp r3, 0
- beq _08012468
- ldr r0, _08012450 @ =gUnknown_02024C18
- adds r0, r2, r0
- movs r1, 0xD
- strb r1, [r0]
- ldr r0, _08012440 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08012454
- ldr r0, _0801244C @ =gUnknown_02024D1E
- ldrb r1, [r4]
- adds r1, r0
- movs r0, 0x4
- strb r0, [r1]
- bl _08012F66
- .align 2, 0
-_08012434: .4byte 0x02000000
-_08012438: .4byte gUnknown_02024A60
-_0801243C: .4byte 0x00016068
-_08012440: .4byte gUnknown_020239F8
-_08012444: .4byte 0x000160a6
-_08012448: .4byte gBitTable
-_0801244C: .4byte gUnknown_02024D1E
-_08012450: .4byte gUnknown_02024C18
-_08012454:
- ldr r0, _08012464 @ =gUnknown_02024D1E
- ldrb r1, [r4]
- adds r1, r0
- movs r0, 0x3
- strb r0, [r1]
- bl _08012F66
- .align 2, 0
-_08012464: .4byte gUnknown_02024D1E
-_08012468:
- ldr r1, _0801249C @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- bne _08012488
- movs r0, 0x80
- lsls r0, 15
- ands r1, r0
- cmp r1, 0
- beq _080124A8
-_08012488:
- ldr r0, _080124A0 @ =gUnknown_02024C18
- adds r0, r2, r0
- strb r3, [r0]
- ldr r1, _080124A4 @ =gUnknown_02024D1E
- ldrb r0, [r4]
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- bl _08012F66
- .align 2, 0
-_0801249C: .4byte gBattleMons
-_080124A0: .4byte gUnknown_02024C18
-_080124A4: .4byte gUnknown_02024D1E
-_080124A8:
- ldr r0, _080124C0 @ =gUnknown_02024C18
- ldrb r1, [r0]
- ldr r0, _080124C4 @ =gUnknown_02024260
- ldrb r2, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r2, r0
- movs r0, 0
- bl dp01_build_cmdbuf_x12_a_bb
- bl _08012E32
- .align 2, 0
-_080124C0: .4byte gUnknown_02024C18
-_080124C4: .4byte gUnknown_02024260
-_080124C8:
- ldr r4, _08012520 @ =gUnknown_02024A64
- ldr r1, _08012524 @ =gBitTable
- ldr r3, _08012528 @ =gUnknown_02024A60
- ldrb r5, [r3]
- lsls r0, r5, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r0, r2, 4
- movs r1, 0xF0
- lsls r1, 24
- orrs r0, r1
- orrs r0, r2
- lsls r1, r2, 8
- orrs r0, r1
- lsls r2, 12
- orrs r0, r2
- ldr r1, [r4]
- ands r1, r0
- mov r8, r3
- cmp r1, 0
- beq _080124F6
- bl _08012F66
-_080124F6:
- ldr r2, _0801252C @ =gUnknown_02024C18
- adds r2, r5, r2
- ldr r1, _08012530 @ =gUnknown_02024260
- lsls r0, r5, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldrb r0, [r3]
- lsls r0, 9
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xC
- bls _08012514
- b _08012968
-_08012514:
- lsls r0, 2
- ldr r1, _08012534 @ =_08012538
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08012520: .4byte gUnknown_02024A64
-_08012524: .4byte gBitTable
-_08012528: .4byte gUnknown_02024A60
-_0801252C: .4byte gUnknown_02024C18
-_08012530: .4byte gUnknown_02024260
-_08012534: .4byte _08012538
- .align 2, 0
-_08012538:
- .4byte _0801256C
- .4byte _080126B4
- .4byte _080126E0
- .4byte _08012968
- .4byte _08012968
- .4byte _080128B0
- .4byte _08012908
- .4byte _08012968
- .4byte _08012968
- .4byte _08012968
- .4byte _08012968
- .4byte _08012968
- .4byte _0801292C
-_0801256C:
- bl sub_8015C90
- lsls r0, 24
- cmp r0, 0
- beq _080125D0
- ldr r0, _080125B4 @ =gUnknown_02024D1E
- ldr r2, _080125B8 @ =gUnknown_02024A60
- ldrb r1, [r2]
- adds r1, r0
- movs r4, 0
- movs r0, 0x5
- strb r0, [r1]
- ldr r3, _080125BC @ =0x02000000
- ldrb r0, [r2]
- ldr r1, _080125C0 @ =0x00016060
- adds r0, r1
- adds r0, r3
- strb r4, [r0]
- ldrb r0, [r2]
- ldr r4, _080125C4 @ =0x00016094
- adds r0, r4
- adds r0, r3
- movs r1, 0x3
- strb r1, [r0]
- ldrb r1, [r2]
- ldr r0, _080125C8 @ =0x00016010
- adds r2, r1, r0
- adds r2, r3
- ldr r0, _080125CC @ =gUnknown_02024260
- lsls r1, 9
- adds r0, 0x3
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r2]
- bl _08012F90
- .align 2, 0
-_080125B4: .4byte gUnknown_02024D1E
-_080125B8: .4byte gUnknown_02024A60
-_080125BC: .4byte 0x02000000
-_080125C0: .4byte 0x00016060
-_080125C4: .4byte 0x00016094
-_080125C8: .4byte 0x00016010
-_080125CC: .4byte gUnknown_02024260
-_080125D0:
- ldr r1, _080125FC @ =gUnknown_02024CA8
- ldr r5, _08012600 @ =gUnknown_02024A60
- ldrb r4, [r5]
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r2, [r0, 0x6]
- cmp r2, 0
- beq _0801260C
- ldr r1, _08012604 @ =gUnknown_02024C60
- lsls r0, r4, 1
- adds r0, r1
- strh r2, [r0]
- ldr r1, _08012608 @ =gUnknown_02024D1E
- ldrb r0, [r5]
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- bl _08012F90
- .align 2, 0
-_080125FC: .4byte gUnknown_02024CA8
-_08012600: .4byte gUnknown_02024A60
-_08012604: .4byte gUnknown_02024C60
-_08012608: .4byte gUnknown_02024D1E
-_0801260C:
- add r2, sp, 0x4
- ldr r3, _080126AC @ =gBattleMons
- movs r1, 0x58
- adds r0, r4, 0
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r2, 0x10]
- ldrb r0, [r5]
- muls r0, r1
- adds r0, r3
- adds r0, 0x21
- ldrb r0, [r0]
- strb r0, [r2, 0x12]
- ldrb r0, [r5]
- muls r0, r1
- adds 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 r10, r2
- mov r8, r3
- adds r7, r5, 0
- movs r6, 0x58
- movs r3, 0xC
- add r3, r8
- mov r9, r3
- add r5, sp, 0x4
-_0801264E:
- lsls r2, r4, 1
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r2, r0
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r5]
- ldr r0, [sp, 0x18]
- adds r3, r0, r4
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r4, r0
- mov r1, r8
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r3]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- adds r2, r1
- add r2, r9
- ldrh r0, [r2]
- add r1, r8
- adds r1, 0x3B
- ldrb r1, [r1]
- lsls r2, r4, 24
- lsrs r2, 24
- bl CalculatePPWithBonus
- mov r2, r10
- adds r1, r2, r4
- strb r0, [r1]
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0801264E
- ldr r0, _080126B0 @ =gUnknown_020239F8
- ldrb r0, [r0]
- movs r1, 0x1
- ands r1, r0
- movs r0, 0
- movs r2, 0
- add r3, sp, 0x4
- bl sub_800CBA4
- b _0801289E
- .align 2, 0
-_080126AC: .4byte gBattleMons
-_080126B0: .4byte gUnknown_020239F8
-_080126B4:
- ldr r0, _080126D0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _080126D4 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _080126C2
- b _08012908
-_080126C2:
- ldr r1, _080126D8 @ =gUnknown_02024C1C
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080126DC @ =gUnknown_081D9B29
- b _080129CC
- .align 2, 0
-_080126D0: .4byte gUnknown_020239F8
-_080126D4: .4byte 0x00000902
-_080126D8: .4byte gUnknown_02024C1C
-_080126DC: .4byte gUnknown_081D9B29
-_080126E0:
- ldr r3, _08012738 @ =0x02000000
- ldr r5, _0801273C @ =gUnknown_02024A60
- ldrb r0, [r5]
- ldr r4, _08012740 @ =0x00016064
- adds r1, r0, r4
- adds r1, r3
- ldr r2, _08012744 @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r7, _08012748 @ =gBattleMons
- ldrb r2, [r5]
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- adds r1, r7, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _0801274C @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- bne _08012722
- ldr r0, _08012750 @ =gUnknown_02024C98
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x80
- lsls r0, 3
- ands r1, r0
- cmp r1, 0
- beq _08012758
-_08012722:
- lsls r0, r2, 1
- adds r0, r2
- ldr r2, _08012754 @ =0x0001606c
- adds r1, r3, r2
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0x6
- b _0801286C
- .align 2, 0
-_08012738: .4byte 0x02000000
-_0801273C: .4byte gUnknown_02024A60
-_08012740: .4byte 0x00016064
-_08012744: .4byte gUnknown_02024A6A
-_08012748: .4byte gBattleMons
-_0801274C: .4byte 0x0400e000
-_08012750: .4byte gUnknown_02024C98
-_08012754: .4byte 0x0001606c
-_08012758:
- str r1, [sp]
- movs r0, 0xC
- adds r1, r2, 0
- movs r2, 0x17
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080127E0
- ldrb r1, [r5]
- str r4, [sp]
- movs r0, 0xC
- movs r2, 0x47
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080127A8
- ldrb r0, [r5]
- muls r0, r6
- adds r1, r0, r7
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080127A8
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080127A8
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- bne _080127E0
-_080127A8:
- ldr r5, _08012808 @ =gUnknown_02024A60
- ldrb r1, [r5]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xF
- movs r2, 0x2A
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08012818
- ldr r2, _0801280C @ =gBattleMons
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x8
- beq _080127E0
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _08012818
-_080127E0:
- subs r1, r4, 0x1
- lsls r1, 4
- movs r0, 0x4
- orrs r1, r0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08012810 @ =byte_2024C06
- ldrb r3, [r0]
- ldr r0, _08012808 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- ldr r2, _08012814 @ =0x0201606c
- adds r0, r2
- str r0, [sp]
- movs r0, 0
- movs r2, 0x6
- bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
- b _0801289E
- .align 2, 0
-_08012808: .4byte gUnknown_02024A60
-_0801280C: .4byte gBattleMons
-_08012810: .4byte byte_2024C06
-_08012814: .4byte 0x0201606c
-_08012818:
- ldr r0, _08012830 @ =gUnknown_02024A60
- ldrb r1, [r0]
- mov r8, r0
- cmp r1, 0x2
- bne _08012840
- ldr r0, _08012834 @ =gUnknown_02024C18
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08012840
- ldr r3, _08012838 @ =0x02000000
- ldr r4, _0801283C @ =0x00016068
- b _08012854
- .align 2, 0
-_08012830: .4byte gUnknown_02024A60
-_08012834: .4byte gUnknown_02024C18
-_08012838: .4byte 0x02000000
-_0801283C: .4byte 0x00016068
-_08012840:
- mov r2, r8
- ldrb r0, [r2]
- cmp r0, 0x3
- bne _08012884
- ldr r0, _08012874 @ =gUnknown_02024C18
- ldrb r0, [r0, 0x1]
- cmp r0, 0x2
- bne _08012884
- ldr r3, _08012878 @ =0x02000000
- ldr r4, _0801287C @ =0x00016069
-_08012854:
- adds r0, r3, r4
- ldrb r2, [r0]
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- ldr r1, _08012880 @ =0x0001606c
- adds r3, r1
- adds r0, r3
- str r0, [sp]
- movs r0, 0
- movs r1, 0
-_0801286C:
- movs r3, 0
- bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
- b _0801289E
- .align 2, 0
-_08012874: .4byte gUnknown_02024C18
-_08012878: .4byte 0x02000000
-_0801287C: .4byte 0x00016069
-_08012880: .4byte 0x0001606c
-_08012884:
- ldr r0, _080128A8 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- ldr r1, _080128AC @ =0x0201606c
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0
- movs r2, 0x6
- movs r3, 0
- bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
-_0801289E:
- ldr r0, _080128A8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08012968
- .align 2, 0
-_080128A8: .4byte gUnknown_02024A60
-_080128AC: .4byte 0x0201606c
-_080128B0:
- bl PlayerPartyAndPokemonStorageFull
- lsls r0, 24
- cmp r0, 0
- beq _08012968
- ldr r1, _080128EC @ =gUnknown_02024C1C
- ldr r2, _080128F0 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080128F4 @ =gUnknown_081D8E4A
- str r1, [r0]
- ldr r0, _080128F8 @ =gUnknown_02024D1E
- ldrb r1, [r2]
- adds r1, r0
- movs r3, 0
- movs r0, 0x5
- strb r0, [r1]
- ldr r1, _080128FC @ =0x02000000
- ldrb r0, [r2]
- ldr r4, _08012900 @ =0x00016060
- adds r0, r4
- adds r0, r1
- strb r3, [r0]
- ldrb r0, [r2]
- ldr r2, _08012904 @ =0x00016094
- adds r0, r2
- adds r0, r1
- strb r3, [r0]
- b _08012F90
- .align 2, 0
-_080128EC: .4byte gUnknown_02024C1C
-_080128F0: .4byte gUnknown_02024A60
-_080128F4: .4byte gUnknown_081D8E4A
-_080128F8: .4byte gUnknown_02024D1E
-_080128FC: .4byte 0x02000000
-_08012900: .4byte 0x00016060
-_08012904: .4byte 0x00016094
-_08012908:
- ldr r4, _08012924 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- ldr r0, _08012928 @ =0x0201606c
- adds r1, r0
- movs r0, 0
- bl sub_800CBE0
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08012968
- .align 2, 0
-_08012924: .4byte gUnknown_02024A60
-_08012928: .4byte 0x0201606c
-_0801292C:
- ldr r4, _08012964 @ =gUnknown_02024D1E
- mov r3, r8
- ldrb r1, [r3]
- adds r1, r4
- movs r5, 0
- movs r0, 0x6
- strb r0, [r1]
- ldrb r0, [r3]
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- strb r5, [r0]
- movs r0, 0
- bl dp01_build_cmdbuf_x32_32_32_32
- mov r4, r8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08012F90
- .align 2, 0
-_08012964: .4byte gUnknown_02024D1E
-_08012968:
- ldr r0, _08012994 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0xA
- ands r0, r1
- cmp r0, 0x8
- bne _080129A8
- ldr r0, _08012998 @ =gUnknown_02024260
- ldr r4, _0801299C @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x3
- bne _080129A8
- ldr r0, _080129A0 @ =gUnknown_081D8E37
- bl b_call_bc_move_exec
- ldr r1, _080129A4 @ =gUnknown_02024D1E
- ldrb r0, [r4]
- adds r0, r1
- b _08012BFE
- .align 2, 0
-_08012994: .4byte gUnknown_020239F8
-_08012998: .4byte gUnknown_02024260
-_0801299C: .4byte gUnknown_02024A60
-_080129A0: .4byte gUnknown_081D8E37
-_080129A4: .4byte gUnknown_02024D1E
-_080129A8:
- bl sub_8012028
- lsls r0, 24
- cmp r0, 0
- beq _08012A14
- ldr r0, _080129F4 @ =gUnknown_02024260
- ldr r3, _080129F8 @ =gUnknown_02024A60
- ldrb r2, [r3]
- lsls r1, r2, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x3
- bne _08012A14
- ldr r1, _080129FC @ =gUnknown_02024C1C
- lsls r0, r2, 2
- adds r0, r1
- ldr r1, _08012A00 @ =gUnknown_081D8E44
-_080129CC:
- str r1, [r0]
- ldr r0, _08012A04 @ =gUnknown_02024D1E
- ldrb r1, [r3]
- adds r1, r0
- movs r2, 0
- movs r0, 0x5
- strb r0, [r1]
- ldr r1, _08012A08 @ =0x02000000
- ldrb r0, [r3]
- ldr r4, _08012A0C @ =0x00016060
- adds r0, r4
- adds r0, r1
- strb r2, [r0]
- ldrb r0, [r3]
- ldr r3, _08012A10 @ =0x00016094
- adds r0, r3
- adds r0, r1
- strb r2, [r0]
- b _08012F90
- .align 2, 0
-_080129F4: .4byte gUnknown_02024260
-_080129F8: .4byte gUnknown_02024A60
-_080129FC: .4byte gUnknown_02024C1C
-_08012A00: .4byte gUnknown_081D8E44
-_08012A04: .4byte gUnknown_02024D1E
-_08012A08: .4byte 0x02000000
-_08012A0C: .4byte 0x00016060
-_08012A10: .4byte 0x00016094
-_08012A14:
- ldr r2, _08012A20 @ =gUnknown_02024D1E
- ldr r0, _08012A24 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012A20: .4byte gUnknown_02024D1E
-_08012A24: .4byte gUnknown_02024A60
-_08012A28:
- ldr r4, _08012A6C @ =gUnknown_02024A64
- ldr r1, _08012A70 @ =gBitTable
- ldr r3, _08012A74 @ =gUnknown_02024A60
- ldrb r5, [r3]
- lsls r0, r5, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r0, r2, 4
- movs r1, 0xF0
- lsls r1, 24
- orrs r0, r1
- orrs r0, r2
- lsls r1, r2, 8
- orrs r0, r1
- lsls r2, 12
- orrs r0, r2
- ldr r1, [r4]
- ands r1, r0
- mov r8, r3
- cmp r1, 0
- beq _08012A54
- b _08012F66
-_08012A54:
- ldr r1, _08012A78 @ =gUnknown_02024C18
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x9
- bls _08012A62
- b _08012F66
-_08012A62:
- lsls r0, 2
- ldr r1, _08012A7C @ =_08012A80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08012A6C: .4byte gUnknown_02024A64
-_08012A70: .4byte gBitTable
-_08012A74: .4byte gUnknown_02024A60
-_08012A78: .4byte gUnknown_02024C18
-_08012A7C: .4byte _08012A80
- .align 2, 0
-_08012A80:
- .4byte _08012AA8
- .4byte _08012BB0
- .4byte _08012BE8
- .4byte _08012CE0
- .4byte _08012D04
- .4byte _08012D18
- .4byte _08012D2C
- .4byte _08012D5C
- .4byte _08012D70
- .4byte _08012D94
-_08012AA8:
- ldr r0, _08012AC8 @ =gUnknown_02024260
- mov r1, r8
- ldrb r4, [r1]
- lsls r1, r4, 9
- adds r2, r0, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r6, r0, 0
- cmp r1, 0x9
- bgt _08012ACC
- cmp r1, 0x3
- blt _08012ACC
- adds r0, r4, r3
- strb r1, [r0]
- b _08012F90
- .align 2, 0
-_08012AC8: .4byte gUnknown_02024260
-_08012ACC:
- adds r3, r6, 0
- mov r5, r8
- ldrb r4, [r5]
- lsls r1, r4, 9
- adds r7, r3, 0x2
- adds r0, r1, r7
- ldrb r2, [r0]
- adds r3, 0x3
- mov r9, r3
- add r1, r9
- ldrb r0, [r1]
- lsls r0, 8
- orrs r2, r0
- ldr r0, _08012AF4 @ =0x0000ffff
- cmp r2, r0
- bne _08012AFC
- ldr r0, _08012AF8 @ =gUnknown_02024D1E
- adds r0, r4, r0
- b _08012BFE
- .align 2, 0
-_08012AF4: .4byte 0x0000ffff
-_08012AF8: .4byte gUnknown_02024D1E
-_08012AFC:
- bl sub_8015894
- lsls r0, 24
- cmp r0, 0
- beq _08012B48
- ldr r0, _08012B38 @ =gUnknown_02024D1E
- ldrb r1, [r5]
- adds r1, r0
- movs r2, 0
- movs r0, 0x5
- strb r0, [r1]
- ldr r3, _08012B3C @ =0x02000000
- ldrb r0, [r5]
- ldr r4, _08012B40 @ =0x00016060
- adds r0, r4
- adds r0, r3
- strb r2, [r0]
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, r6, 0x1
- adds r0, r1
- strb r2, [r0]
- ldrb r0, [r5]
- ldr r1, _08012B44 @ =0x00016094
- adds r0, r1
- adds r0, r3
- movs r1, 0x1
- strb r1, [r0]
- b _08012F90
- .align 2, 0
-_08012B38: .4byte gUnknown_02024D1E
-_08012B3C: .4byte 0x02000000
-_08012B40: .4byte 0x00016060
-_08012B44: .4byte 0x00016094
-_08012B48:
- ldr r6, _08012B98 @ =0x02000000
- mov r2, r8
- ldrb r0, [r2]
- ldr r2, _08012B9C @ =0x0001608c
- adds r1, r0, r2
- adds r1, r6
- lsls r0, 9
- adds r0, r7
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _08012BA0 @ =gUnknown_02024C60
- mov r4, r8
- ldrb r3, [r4]
- lsls r5, r3, 1
- adds r5, r0
- ldr r4, _08012BA4 @ =gBattleMons
- adds r2, r3, r2
- adds r2, r6
- ldrb r0, [r2]
- lsls r0, 1
- movs r1, 0x58
- muls r1, r3
- adds r0, r1
- adds r4, 0xC
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r5]
- mov r1, r8
- ldrb r0, [r1]
- ldr r2, _08012BA8 @ =0x00016010
- adds r1, r0, r2
- adds r1, r6
- lsls r0, 9
- add r0, r9
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _08012BAC @ =gUnknown_02024D1E
- mov r3, r8
- ldrb r1, [r3]
- b _08012E3C
- .align 2, 0
-_08012B98: .4byte 0x02000000
-_08012B9C: .4byte 0x0001608c
-_08012BA0: .4byte gUnknown_02024C60
-_08012BA4: .4byte gBattleMons
-_08012BA8: .4byte 0x00016010
-_08012BAC: .4byte gUnknown_02024D1E
-_08012BB0:
- ldr r2, _08012BD8 @ =gUnknown_02024260
- ldr r5, _08012BDC @ =gUnknown_02024A60
- ldrb r4, [r5]
- lsls r1, r4, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- cmp r3, 0
- bne _08012BCE
- b _08012F60
-_08012BCE:
- ldr r0, _08012BE0 @ =gUnknown_02024C04
- strh r3, [r0]
- ldr r0, _08012BE4 @ =gUnknown_02024D1E
- ldrb r1, [r5]
- b _08012E3C
- .align 2, 0
-_08012BD8: .4byte gUnknown_02024260
-_08012BDC: .4byte gUnknown_02024A60
-_08012BE0: .4byte gUnknown_02024C04
-_08012BE4: .4byte gUnknown_02024D1E
-_08012BE8:
- ldr r4, _08012C04 @ =gUnknown_02024260
- ldr r7, _08012C08 @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 9
- adds r1, r4, 0x1
- adds r0, r1
- ldrb r1, [r0]
- cmp r1, 0x6
- bne _08012C10
- ldr r0, _08012C0C @ =gUnknown_02024D1E
- adds r0, r2, r0
-_08012BFE:
- movs r1, 0
- strb r1, [r0]
- b _08012F66
- .align 2, 0
-_08012C04: .4byte gUnknown_02024260
-_08012C08: .4byte gUnknown_02024A60
-_08012C0C: .4byte gUnknown_02024D1E
-_08012C10:
- ldr r0, _08012CC4 @ =0x02000000
- mov r12, r0
- ldr r3, _08012CC8 @ =0x00016068
- adds r0, r2, r3
- add r0, r12
- strb r1, [r0]
- ldr r0, _08012CCC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08012CBE
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- ldr r5, _08012CD0 @ =0x0001606c
- adds r1, r5
- add r1, r12
- ldrb r2, [r1]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- lsls r2, r0, 1
- adds r2, r0
- adds r2, r5
- add r2, r12
- lsls r0, 9
- adds r6, r4, 0x2
- adds r0, r6
- ldrb r1, [r0]
- movs r3, 0xF0
- adds r0, r3, 0
- ands r0, r1
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- ldr r2, _08012CD4 @ =0x0001606d
- adds r1, r2
- add r1, r12
- lsls r0, 9
- adds r4, 0x3
- mov r8, r4
- add r0, r8
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r4, 0x2
- eors r0, r4
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- add r1, r12
- ldrb r2, [r1]
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- eors r0, r4
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- add r1, r12
- ldrb r0, [r7]
- lsls r0, 9
- adds r0, r6
- ldrb r0, [r0]
- ands r3, r0
- lsrs r3, 4
- ldrb r0, [r1]
- orrs r3, r0
- strb r3, [r1]
- ldrb r0, [r7]
- eors r4, r0
- lsls r1, r4, 1
- adds r1, r4
- ldr r3, _08012CD8 @ =0x0001606e
- adds r1, r3
- add r1, r12
- ldrb r0, [r7]
- lsls r0, 9
- add r0, r8
- ldrb r0, [r0]
- strb r0, [r1]
-_08012CBE:
- ldr r0, _08012CDC @ =gUnknown_02024D1E
- ldrb r1, [r7]
- b _08012E3C
- .align 2, 0
-_08012CC4: .4byte 0x02000000
-_08012CC8: .4byte 0x00016068
-_08012CCC: .4byte gUnknown_020239F8
-_08012CD0: .4byte 0x0001606c
-_08012CD4: .4byte 0x0001606d
-_08012CD8: .4byte 0x0001606e
-_08012CDC: .4byte gUnknown_02024D1E
-_08012CE0:
- ldr r2, _08012CF8 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 8
- orrs r0, r1
- str r0, [r2]
- ldr r2, _08012CFC @ =gUnknown_02024D1E
- ldr r0, _08012D00 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012CF8: .4byte gUnknown_02024C6C
-_08012CFC: .4byte gUnknown_02024D1E
-_08012D00: .4byte gUnknown_02024A60
-_08012D04:
- ldr r2, _08012D10 @ =gUnknown_02024D1E
- ldr r0, _08012D14 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012D10: .4byte gUnknown_02024D1E
-_08012D14: .4byte gUnknown_02024A60
-_08012D18:
- ldr r2, _08012D24 @ =gUnknown_02024D1E
- ldr r0, _08012D28 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012D24: .4byte gUnknown_02024D1E
-_08012D28: .4byte gUnknown_02024A60
-_08012D2C:
- ldr r2, _08012D50 @ =gUnknown_02024260
- ldr r0, _08012D54 @ =gUnknown_02024A60
- ldrb r4, [r0]
- lsls r1, r4, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- cmp r3, 0
- bne _08012D4A
- b _08012F60
-_08012D4A:
- ldr r1, _08012D58 @ =gUnknown_02024D1E
- adds r1, r4, r1
- b _08012E3E
- .align 2, 0
-_08012D50: .4byte gUnknown_02024260
-_08012D54: .4byte gUnknown_02024A60
-_08012D58: .4byte gUnknown_02024D1E
-_08012D5C:
- ldr r2, _08012D68 @ =gUnknown_02024D1E
- ldr r0, _08012D6C @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012D68: .4byte gUnknown_02024D1E
-_08012D6C: .4byte gUnknown_02024A60
-_08012D70:
- ldr r2, _08012D88 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 8
- orrs r0, r1
- str r0, [r2]
- ldr r2, _08012D8C @ =gUnknown_02024D1E
- ldr r0, _08012D90 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012D88: .4byte gUnknown_02024C6C
-_08012D8C: .4byte gUnknown_02024D1E
-_08012D90: .4byte gUnknown_02024A60
-_08012D94:
- ldr r2, _08012DA0 @ =gUnknown_02024D1E
- ldr r0, _08012DA4 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012DA0: .4byte gUnknown_02024D1E
-_08012DA4: .4byte gUnknown_02024A60
-_08012DA8:
- ldr r3, _08012E10 @ =gUnknown_02024A64
- ldr r4, _08012E14 @ =gBitTable
- ldr r0, _08012E18 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldr r2, [r0]
- lsls r1, r2, 4
- movs r0, 0xF0
- lsls r0, 24
- orrs r1, r0
- orrs r1, r2
- lsls r0, r2, 8
- orrs r1, r0
- lsls r2, 12
- orrs r1, r2
- ldr r0, [r3]
- ands r0, r1
- cmp r0, 0
- beq _08012DD2
- b _08012F66
-_08012DD2:
- ldr r0, _08012E1C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x41
- ands r0, r1
- cmp r0, 0x1
- bne _08012E06
- movs r1, 0x2
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- bne _08012E06
- adds r0, r5, 0
- eors r0, r1
- bl battle_get_side_with_given_state
- ldr r1, _08012E20 @ =0x02000000
- ldr r2, _08012E24 @ =0x000160a6
- adds r1, r2
- ldrb r1, [r1]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08012E28
-_08012E06:
- movs r0, 0
- movs r1, 0
- bl sub_800D1D8
- b _08012E30
- .align 2, 0
-_08012E10: .4byte gUnknown_02024A64
-_08012E14: .4byte gBitTable
-_08012E18: .4byte gUnknown_02024A60
-_08012E1C: .4byte gUnknown_020239F8
-_08012E20: .4byte 0x02000000
-_08012E24: .4byte 0x000160a6
-_08012E28:
- movs r0, 0
- movs r1, 0x1
- bl sub_800D1D8
-_08012E30:
- ldr r4, _08012E48 @ =gUnknown_02024A60
-_08012E32:
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, _08012E4C @ =gUnknown_02024D1E
- ldrb r1, [r4]
-_08012E3C:
- adds r1, r0
-_08012E3E:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08012F66
- .align 2, 0
-_08012E48: .4byte gUnknown_02024A60
-_08012E4C: .4byte gUnknown_02024D1E
-_08012E50:
- ldr r3, _08012E84 @ =gUnknown_02024A64
- ldr r1, _08012E88 @ =gBitTable
- ldr r0, _08012E8C @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r1, r2, 4
- movs r0, 0xF0
- lsls r0, 24
- orrs r1, r0
- orrs r1, r2
- lsls r0, r2, 8
- orrs r1, r0
- lsls r2, 12
- orrs r1, r2
- ldr r0, [r3]
- ands r0, r1
- cmp r0, 0
- bne _08012F66
- ldr r1, _08012E90 @ =gUnknown_02024D1E
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _08012F66
- .align 2, 0
-_08012E84: .4byte gUnknown_02024A64
-_08012E88: .4byte gBitTable
-_08012E8C: .4byte gUnknown_02024A60
-_08012E90: .4byte gUnknown_02024D1E
-_08012E94:
- ldr r2, _08012EB8 @ =0x02000000
- ldr r5, _08012EBC @ =gUnknown_02024A60
- ldrb r1, [r5]
- ldr r3, _08012EC0 @ =0x00016060
- adds r0, r1, r3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08012ECC
- ldr r0, _08012EC4 @ =gUnknown_02024D1E
- adds r0, r1, r0
- ldr r4, _08012EC8 @ =0x00016094
- adds r1, r4
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r0]
- b _08012F66
- .align 2, 0
-_08012EB8: .4byte 0x02000000
-_08012EBC: .4byte gUnknown_02024A60
-_08012EC0: .4byte 0x00016060
-_08012EC4: .4byte gUnknown_02024D1E
-_08012EC8: .4byte 0x00016094
-_08012ECC:
- ldr r0, _08012F20 @ =gUnknown_02024C07
- strb r1, [r0]
- ldr r7, _08012F24 @ =gUnknown_02024C10
- ldr r6, _08012F28 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r6
- ldr r4, [r0]
- str r4, [r7]
- ldr r3, _08012F2C @ =gUnknown_02024A64
- ldr r1, _08012F30 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r1, r2, 4
- movs r0, 0xF0
- lsls r0, 24
- orrs r1, r0
- orrs r1, r2
- lsls r0, r2, 8
- orrs r1, r0
- lsls r2, 12
- orrs r1, r2
- ldr r0, [r3]
- ands r0, r1
- cmp r0, 0
- bne _08012F12
- ldr r0, _08012F34 @ =gUnknown_081FA73C
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
-_08012F12:
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r7]
- str r1, [r0]
- b _08012F66
- .align 2, 0
-_08012F20: .4byte gUnknown_02024C07
-_08012F24: .4byte gUnknown_02024C10
-_08012F28: .4byte gUnknown_02024C1C
-_08012F2C: .4byte gUnknown_02024A64
-_08012F30: .4byte gBitTable
-_08012F34: .4byte gUnknown_081FA73C
-_08012F38:
- ldr r3, _08012FA0 @ =gUnknown_02024A64
- ldr r1, _08012FA4 @ =gBitTable
- ldr r0, _08012FA8 @ =gUnknown_02024A60
- ldrb r4, [r0]
- lsls r0, r4, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r0, r2, 4
- movs r1, 0xF0
- lsls r1, 24
- orrs r0, r1
- orrs r0, r2
- lsls r1, r2, 8
- orrs r0, r1
- lsls r2, 12
- orrs r0, r2
- ldr r3, [r3]
- ands r3, r0
- cmp r3, 0
- bne _08012F66
-_08012F60:
- ldr r0, _08012FAC @ =gUnknown_02024D1E
- adds r0, r4, r0
- strb r3, [r0]
-_08012F66:
- ldr r0, _08012FA8 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, _08012FB0 @ =gUnknown_02024A68
- lsls r1, 24
- lsrs r1, 24
-_08012F74:
- adds r2, r0, 0
- ldrb r0, [r2]
- cmp r1, r0
- bcs _08012F80
- bl _0801234C
-_08012F80:
- ldr r0, _08012FAC @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x4]
- ldrb r2, [r2]
- cmp r0, r2
- bne _08012F90
- ldr r1, _08012FB4 @ =gUnknown_030042D4
- ldr r0, _08012FB8 @ =sub_80133C8
- str r0, [r1]
-_08012F90:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08012FA0: .4byte gUnknown_02024A64
-_08012FA4: .4byte gBitTable
-_08012FA8: .4byte gUnknown_02024A60
-_08012FAC: .4byte gUnknown_02024D1E
-_08012FB0: .4byte gUnknown_02024A68
-_08012FB4: .4byte gUnknown_030042D4
-_08012FB8: .4byte sub_80133C8
- thumb_func_end sub_8012324
-
- thumb_func_start sub_8012FBC
-sub_8012FBC: @ 8012FBC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08012FE8 @ =gUnknown_02024A76
- adds r4, r0, r2
- ldrb r5, [r4]
- adds r2, r1, r2
- ldrb r3, [r2]
- strb r3, [r4]
- strb r5, [r2]
- ldr r2, _08012FEC @ =gUnknown_02024A7A
- adds r0, r2
- ldrb r5, [r0]
- adds r1, r2
- ldrb r2, [r1]
- strb r2, [r0]
- strb r5, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08012FE8: .4byte gUnknown_02024A76
-_08012FEC: .4byte gUnknown_02024A7A
- thumb_func_end sub_8012FBC
-
- thumb_func_start b_first_side
-b_first_side: @ 8012FF0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _080130B8
- ldr r1, [sp, 0x8]
- str r1, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _080130B8
- ldr r1, _08013070 @ =gBattleMons
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r0, r1
- adds r0, 0x20
- ldrb r3, [r0]
- cmp r3, 0x21
- bne _0801305C
- ldr r0, _08013074 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801306C
-_0801305C:
- cmp r3, 0x22
- bne _08013078
- ldr r0, _08013074 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08013078
-_0801306C:
- movs r3, 0x2
- b _0801307A
- .align 2, 0
-_08013070: .4byte gBattleMons
-_08013074: .4byte word_2024DB8
-_08013078:
- movs r3, 0x1
-_0801307A:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- ldr r2, _080130B0 @ =gBattleMons
- adds r0, r2
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0x21
- bne _0801309A
- ldr r0, _080130B4 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _080130AA
-_0801309A:
- cmp r2, 0x22
- bne _080130BA
- ldr r0, _080130B4 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _080130BA
-_080130AA:
- movs r7, 0x2
- b _080130BC
- .align 2, 0
-_080130B0: .4byte gBattleMons
-_080130B4: .4byte word_2024DB8
-_080130B8:
- movs r3, 0x1
-_080130BA:
- movs r7, 0x1
-_080130BC:
- ldr r1, _08013100 @ =gBattleMons
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r4, r0, r1
- ldrh r0, [r4, 0x6]
- muls r3, r0
- ldr r2, _08013104 @ =gStatStageRatios
- movs r1, 0x1B
- ldrsb r1, [r4, r1]
- lsls r1, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- muls r0, r3
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- bl __divsi3
- mov r8, r0
- ldrh r0, [r4, 0x2E]
- cmp r0, 0xAF
- bne _0801310C
- ldr r1, _08013108 @ =gEnigmaBerries
- mov r3, r9
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x7]
- ldrb r5, [r0, 0x1A]
- b _08013120
- .align 2, 0
-_08013100: .4byte gBattleMons
-_08013104: .4byte gStatStageRatios
-_08013108: .4byte gEnigmaBerries
-_0801310C:
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r5, r0, 24
-_08013120:
- ldr r0, _080131DC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08013154
- ldr r0, _080131E0 @ =0x00000809
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08013154
- mov r0, r9
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08013154
- movs r0, 0x6E
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- movs r1, 0x64
- bl __udivsi3
- mov r8, r0
-_08013154:
- cmp r6, 0x18
- bne _0801315E
- mov r2, r8
- lsrs r2, 1
- mov r8, r2
-_0801315E:
- ldr r1, _080131E4 @ =gBattleMons
- movs r0, 0x58
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801317C
- mov r0, r8
- lsrs r0, 2
- mov r8, r0
-_0801317C:
- cmp r6, 0x1A
- bne _08013198
- ldr r0, _080131E8 @ =gUnknown_02024D1C
- ldrh r4, [r0]
- lsls r0, r5, 16
- subs r0, r5
- movs r1, 0x64
- bl __divsi3
- cmp r4, r0
- bge _08013198
- movs r1, 0x1
- negs r1, r1
- mov r8, r1
-_08013198:
- ldr r1, _080131E4 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r4, r0, r1
- ldrh r0, [r4, 0x6]
- adds r3, r0, 0
- muls r3, r7
- ldr r2, _080131EC @ =gStatStageRatios
- movs r1, 0x1B
- ldrsb r1, [r4, r1]
- lsls r1, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- muls r0, r3
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- bl __divsi3
- adds r7, r0, 0
- ldrh r0, [r4, 0x2E]
- cmp r0, 0xAF
- bne _080131F4
- ldr r1, _080131F0 @ =gEnigmaBerries
- mov r3, r10
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x7]
- ldrb r5, [r0, 0x1A]
- b _08013208
- .align 2, 0
-_080131DC: .4byte gUnknown_020239F8
-_080131E0: .4byte 0x00000809
-_080131E4: .4byte gBattleMons
-_080131E8: .4byte gUnknown_02024D1C
-_080131EC: .4byte gStatStageRatios
-_080131F0: .4byte gEnigmaBerries
-_080131F4:
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r5, r0, 24
-_08013208:
- ldr r0, _08013280 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08013238
- ldr r0, _08013284 @ =0x00000809
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08013238
- mov r0, r10
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08013238
- movs r0, 0x6E
- muls r0, r7
- movs r1, 0x64
- bl __udivsi3
- adds r7, r0, 0
-_08013238:
- cmp r6, 0x18
- bne _0801323E
- lsrs r7, 1
-_0801323E:
- ldr r2, _08013288 @ =gBattleMons
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801325A
- lsrs r7, 2
-_0801325A:
- cmp r6, 0x1A
- bne _08013274
- ldr r0, _0801328C @ =gUnknown_02024D1C
- ldrh r4, [r0]
- lsls r0, r5, 16
- subs r0, r5
- movs r1, 0x64
- bl __divsi3
- cmp r4, r0
- bge _08013274
- movs r7, 0x1
- negs r7, r7
-_08013274:
- ldr r2, [sp, 0x4]
- cmp r2, 0
- beq _08013290
- movs r3, 0
- b _08013334
- .align 2, 0
-_08013280: .4byte gUnknown_020239F8
-_08013284: .4byte 0x00000809
-_08013288: .4byte gBattleMons
-_0801328C: .4byte gUnknown_02024D1C
-_08013290:
- ldr r0, _080132B0 @ =gUnknown_02024C18
- mov r3, r9
- adds r1, r3, r0
- ldrb r1, [r1]
- adds r2, r0, 0
- cmp r1, 0
- bne _080132E4
- ldr r0, _080132B4 @ =gUnknown_02024D28
- lsls r1, r3, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- bge _080132B8
- movs r3, 0xA5
- b _080132E6
- .align 2, 0
-_080132B0: .4byte gUnknown_02024C18
-_080132B4: .4byte gUnknown_02024D28
-_080132B8:
- ldr r1, _080132D8 @ =0x02000000
- ldr r0, _080132DC @ =0x0001608c
- add r0, r9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x58
- mov r3, r9
- muls r3, r1
- adds r1, r3, 0
- adds r0, r1
- ldr r1, _080132E0 @ =gBattleMons
- adds r1, 0xC
- adds r0, r1
- ldrh r3, [r0]
- b _080132E6
- .align 2, 0
-_080132D8: .4byte 0x02000000
-_080132DC: .4byte 0x0001608c
-_080132E0: .4byte gBattleMons
-_080132E4:
- movs r3, 0
-_080132E6:
- mov r1, r10
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08013334
- ldr r0, _08013304 @ =gUnknown_02024D28
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- bge _08013308
- movs r2, 0xA5
- b _08013336
- .align 2, 0
-_08013304: .4byte gUnknown_02024D28
-_08013308:
- ldr r1, _08013328 @ =0x02000000
- ldr r0, _0801332C @ =0x0001608c
- add r0, r10
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x58
- mov r2, r10
- muls r2, r1
- adds r1, r2, 0
- adds r0, r1
- ldr r1, _08013330 @ =gBattleMons
- adds r1, 0xC
- adds r0, r1
- ldrh r2, [r0]
- b _08013336
- .align 2, 0
-_08013328: .4byte 0x02000000
-_0801332C: .4byte 0x0001608c
-_08013330: .4byte gBattleMons
-_08013334:
- movs r2, 0
-_08013336:
- ldr r4, _08013380 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r4
- movs r1, 0x7
- ldrsb r1, [r0, r1]
- lsls r3, r2, 1
- cmp r1, 0
- bne _0801335A
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x7]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _08013398
-_0801335A:
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x7]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _0801338E
- cmp r8, r7
- bne _08013384
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08013384
- movs r3, 0x2
- b _080133B4
- .align 2, 0
-_08013380: .4byte gBattleMoves
-_08013384:
- cmp r8, r7
- bcs _080133B6
- movs r0, 0x1
- str r0, [sp, 0x8]
- b _080133B6
-_0801338E:
- cmp r1, r0
- bge _080133B6
- movs r1, 0x1
- str r1, [sp, 0x8]
- b _080133B6
-_08013398:
- cmp r8, r7
- bne _080133AE
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080133AE
- movs r2, 0x2
- str r2, [sp, 0x8]
- b _080133B6
-_080133AE:
- cmp r8, r7
- bcs _080133B6
- movs r3, 0x1
-_080133B4:
- str r3, [sp, 0x8]
-_080133B6:
- ldr r0, [sp, 0x8]
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end b_first_side
-
- thumb_func_start sub_80133C8
-sub_80133C8: @ 80133C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r3, 0
- ldr r0, _0801341C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08013434
- ldr r0, _08013420 @ =gUnknown_02024A60
- strb r3, [r0]
- ldr r4, _08013424 @ =gUnknown_02024A68
- mov r8, r0
- ldrb r0, [r4]
- cmp r3, r0
- bcc _080133F0
- b _08013622
-_080133F0:
- ldr r7, _08013428 @ =gUnknown_02024A76
- ldr r6, _0801342C @ =gUnknown_02024C18
- mov r2, r8
- ldr r5, _08013430 @ =gUnknown_02024A7A
-_080133F8:
- adds r1, r3, r7
- ldrb r0, [r2]
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r3, r5
- ldrb r0, [r2]
- strb r0, [r1]
- adds r3, 0x1
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r4]
- cmp r0, r1
- bcc _080133F8
- b _08013622
- .align 2, 0
-_0801341C: .4byte gUnknown_020239F8
-_08013420: .4byte gUnknown_02024A60
-_08013424: .4byte gUnknown_02024A68
-_08013428: .4byte gUnknown_02024A76
-_0801342C: .4byte gUnknown_02024C18
-_08013430: .4byte gUnknown_02024A7A
-_08013434:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08013484
- ldr r0, _08013478 @ =gUnknown_02024A60
- strb r3, [r0]
- ldr r1, _0801347C @ =gUnknown_02024A68
- mov r8, r0
- adds r2, r1, 0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _08013494
- ldr r0, _08013480 @ =gUnknown_02024C18
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x3
- beq _08013492
-_08013456:
- mov r7, r8
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0801347C @ =gUnknown_02024A68
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08013494
- ldrb r0, [r7]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08013456
- b _08013492
- .align 2, 0
-_08013478: .4byte gUnknown_02024A60
-_0801347C: .4byte gUnknown_02024A68
-_08013480: .4byte gUnknown_02024C18
-_08013484:
- ldr r0, _080134FC @ =gUnknown_02024C18
- ldrb r0, [r0]
- ldr r2, _08013500 @ =gUnknown_02024A60
- mov r8, r2
- cmp r0, 0x3
- bne _08013494
- strb r3, [r2]
-_08013492:
- movs r3, 0x5
-_08013494:
- cmp r3, 0x5
- bne _08013520
- ldr r6, _08013504 @ =gUnknown_02024A76
- ldr r1, _080134FC @ =gUnknown_02024C18
- mov r3, r8
- ldrb r0, [r3]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r6]
- ldr r2, _08013508 @ =gUnknown_02024A7A
- ldrb r0, [r3]
- strb r0, [r2]
- movs r3, 0x1
- movs r5, 0
- adds r4, r1, 0
- ldr r7, _0801350C @ =gUnknown_030042D4
- mov r9, r7
- ldr r0, _08013510 @ =bc_80154A0
- mov r12, r0
- ldr r1, _08013514 @ =0x02000000
- mov r10, r1
- ldr r7, _08013518 @ =gUnknown_02024A68
- ldrb r7, [r7]
- cmp r5, r7
- bge _080134EC
- adds r7, r6, 0
- adds r6, r4, 0
- adds r4, r2, 0
- ldr r2, _08013518 @ =gUnknown_02024A68
-_080134CE:
- mov r0, r8
- ldrb r0, [r0]
- cmp r5, r0
- beq _080134E4
- adds r1, r3, r7
- adds r0, r5, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, r4
- strb r5, [r0]
- adds r3, 0x1
-_080134E4:
- adds r5, 0x1
- ldrb r1, [r2]
- cmp r5, r1
- blt _080134CE
-_080134EC:
- mov r2, r12
- mov r3, r9
- str r2, [r3]
- ldr r1, _0801351C @ =0x0001601d
- add r1, r10
- movs r0, 0
- strb r0, [r1]
- b _08013632
- .align 2, 0
-_080134FC: .4byte gUnknown_02024C18
-_08013500: .4byte gUnknown_02024A60
-_08013504: .4byte gUnknown_02024A76
-_08013508: .4byte gUnknown_02024A7A
-_0801350C: .4byte gUnknown_030042D4
-_08013510: .4byte bc_80154A0
-_08013514: .4byte 0x02000000
-_08013518: .4byte gUnknown_02024A68
-_0801351C: .4byte 0x0001601d
-_08013520:
- movs r0, 0
- mov r7, r8
- strb r0, [r7]
- ldr r1, _080135B0 @ =gUnknown_02024A68
- ldrb r0, [r1]
- cmp r0, 0
- beq _08013566
- ldr r6, _080135B4 @ =gUnknown_02024C18
- mov r2, r8
- ldr r5, _080135B8 @ =gUnknown_02024A76
- ldr r4, _080135BC @ =gUnknown_02024A7A
-_08013536:
- ldrb r0, [r2]
- adds r0, r6
- ldrb r1, [r0]
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08013554
- adds r0, r3, r5
- strb r1, [r0]
- adds r1, r3, r4
- mov r7, r8
- ldrb r0, [r7]
- strb r0, [r1]
- adds r3, 0x1
-_08013554:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080135B0 @ =gUnknown_02024A68
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08013536
-_08013566:
- movs r0, 0
- mov r2, r8
- strb r0, [r2]
- ldr r7, _080135B0 @ =gUnknown_02024A68
- ldrb r0, [r7]
- cmp r0, 0
- beq _080135AA
- ldr r6, _080135B4 @ =gUnknown_02024C18
- ldr r5, _080135B8 @ =gUnknown_02024A76
- ldr r4, _080135BC @ =gUnknown_02024A7A
-_0801357A:
- ldrb r0, [r2]
- adds r0, r6
- ldrb r1, [r0]
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _08013598
- adds r0, r3, r5
- strb r1, [r0]
- adds r1, r3, r4
- mov r7, r8
- ldrb r0, [r7]
- strb r0, [r1]
- adds r3, 0x1
-_08013598:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080135B0 @ =gUnknown_02024A68
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0801357A
-_080135AA:
- movs r5, 0
- b _08013618
- .align 2, 0
-_080135B0: .4byte gUnknown_02024A68
-_080135B4: .4byte gUnknown_02024C18
-_080135B8: .4byte gUnknown_02024A76
-_080135BC: .4byte gUnknown_02024A7A
-_080135C0:
- adds r4, r5, 0x1
- adds r7, r4, 0
- ldrb r1, [r1]
- cmp r7, r1
- bge _08013616
- ldr r6, _08013640 @ =gUnknown_02024A76
- lsls r2, r5, 24
- mov r8, r2
-_080135D0:
- ldr r0, _08013644 @ =gUnknown_02024A7A
- adds r1, r5, r0
- ldrb r3, [r1]
- adds r0, r4, r0
- ldrb r1, [r0]
- adds r0, r5, r6
- ldrb r2, [r0]
- cmp r2, 0x1
- beq _0801360C
- adds r0, r4, r6
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0801360C
- cmp r2, 0x2
- beq _0801360C
- cmp r0, 0x2
- beq _0801360C
- adds r0, r3, 0
- movs r2, 0
- bl b_first_side
- lsls r0, 24
- cmp r0, 0
- beq _0801360C
- lsls r1, r4, 24
- lsrs r1, 24
- mov r3, r8
- lsrs r0, r3, 24
- bl sub_8012FBC
-_0801360C:
- adds r4, 0x1
- ldr r0, _08013648 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _080135D0
-_08013616:
- adds r5, r7, 0
-_08013618:
- ldr r1, _08013648 @ =gUnknown_02024A68
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r5, r0
- blt _080135C0
-_08013622:
- ldr r1, _0801364C @ =gUnknown_030042D4
- ldr r0, _08013650 @ =bc_80154A0
- str r0, [r1]
- ldr r0, _08013654 @ =0x02000000
- ldr r7, _08013658 @ =0x0001601d
- adds r0, r7
- movs r1, 0
- strb r1, [r0]
-_08013632:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08013640: .4byte gUnknown_02024A76
-_08013644: .4byte gUnknown_02024A7A
-_08013648: .4byte gUnknown_02024A68
-_0801364C: .4byte gUnknown_030042D4
-_08013650: .4byte bc_80154A0
-_08013654: .4byte 0x02000000
-_08013658: .4byte 0x0001601d
- thumb_func_end sub_80133C8
-
- thumb_func_start sub_801365C
-sub_801365C: @ 801365C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080136B4 @ =gUnknown_02024A60
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080136B8 @ =gUnknown_02024A68
- ldrb r2, [r0]
- adds r5, r1, 0
- cmp r2, 0
- beq _08013754
- ldr r7, _080136BC @ =gUnknown_02024D28
- adds r6, r5, 0
- ldr r0, _080136C0 @ =gUnknown_02024AD0
- mov r12, r0
- ldr r1, _080136C4 @ =gUnknown_02024CA8
- mov r8, r1
- mov r10, r8
-_0801368A:
- mov r2, r9
- cmp r2, 0
- beq _080136C8
- ldrb r1, [r6]
- lsls r1, 4
- adds r1, r7
- ldrb r2, [r1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r6]
- lsls r1, 4
- adds r1, r7
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- b _08013724
- .align 2, 0
-_080136B4: .4byte gUnknown_02024A60
-_080136B8: .4byte gUnknown_02024A68
-_080136BC: .4byte gUnknown_02024D28
-_080136C0: .4byte gUnknown_02024AD0
-_080136C4: .4byte gUnknown_02024CA8
-_080136C8:
- ldrb r0, [r6]
- lsls r0, 4
- adds r2, r0, r7
- movs r1, 0
- mov r4, r10
- movs r3, 0
-_080136D4:
- adds r0, r2, r1
- strb r3, [r0]
- adds r1, 0x1
- cmp r1, 0xF
- bls _080136D4
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r4
- ldrb r0, [r1, 0x16]
- cmp r0, 0
- beq _080136F2
- subs r0, 0x1
- strb r0, [r1, 0x16]
-_080136F2:
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r4
- ldrb r0, [r1, 0x19]
- cmp r0, 0
- beq _08013724
- subs r0, 0x1
- strb r0, [r1, 0x19]
- ldrb r2, [r5]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x19]
- cmp r0, 0
- bne _08013724
- movs r0, 0x58
- muls r2, r0
- add r2, r12
- ldr r0, [r2]
- ldr r1, _0801376C @ =0xffbfffff
- ands r0, r1
- str r0, [r2]
-_08013724:
- ldrb r2, [r5]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- bne _08013742
- movs r0, 0x58
- muls r2, r0
- add r2, r12
- ldr r0, [r2]
- ldr r1, _08013770 @ =0xfeffffff
- ands r0, r1
- str r0, [r2]
-_08013742:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08013774 @ =gUnknown_02024A68
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0801368A
-_08013754:
- movs r0, 0
- ldr r2, _08013778 @ =gUnknown_02024C80
- strb r0, [r2, 0x8]
- strb r0, [r2, 0x14]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801376C: .4byte 0xffbfffff
-_08013770: .4byte 0xfeffffff
-_08013774: .4byte gUnknown_02024A68
-_08013778: .4byte gUnknown_02024C80
- thumb_func_end sub_801365C
-
- thumb_func_start sub_801377C
-sub_801377C: @ 801377C
- push {r4-r6,lr}
- ldr r2, _080137C0 @ =gUnknown_02024A60
- movs r0, 0
- strb r0, [r2]
- ldr r0, _080137C4 @ =gUnknown_02024A68
- ldrb r1, [r0]
- adds r6, r0, 0
- cmp r1, 0
- beq _080137BA
- adds r3, r2, 0
- movs r4, 0
- ldr r5, _080137C8 @ =gUnknown_02024D68
-_08013794:
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r5
- movs r1, 0
-_080137A0:
- adds r0, r2, r1
- strb r4, [r0]
- adds r1, 0x1
- cmp r1, 0x13
- bls _080137A0
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6]
- cmp r0, r1
- bcc _08013794
-_080137BA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080137C0: .4byte gUnknown_02024A60
-_080137C4: .4byte gUnknown_02024A68
-_080137C8: .4byte gUnknown_02024D68
- thumb_func_end sub_801377C
-
- thumb_func_start bc_80154A0
-bc_80154A0: @ 80137CC
- push {r4-r7,lr}
- ldr r0, _08013850 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- bne _08013884
- ldr r0, _08013854 @ =0x02000000
- ldr r1, _08013858 @ =0x0001601d
- adds r2, r0, r1
- ldr r0, _0801385C @ =gUnknown_02024A68
- ldrb r1, [r2]
- adds r7, r0, 0
- ldrb r0, [r7]
- cmp r1, r0
- bcs _08013884
- ldr r6, _08013860 @ =gUnknown_02024A60
- ldr r5, _08013864 @ =gUnknown_02024C07
- adds r4, r2, 0
- movs r1, 0x84
- lsls r1, 1
- mov r12, r1
-_080137FA:
- ldrb r0, [r4]
- strb r0, [r5]
- strb r0, [r6]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08013868 @ =gUnknown_02024C60
- ldrb r3, [r6]
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r12
- bne _0801387C
- ldr r1, _0801386C @ =gBattleMons
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801387C
- ldr r2, _08013870 @ =gUnknown_02024CA8
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x18]
- lsls r0, 31
- cmp r0, 0
- bne _0801387C
- ldr r0, _08013874 @ =gUnknown_02024D28
- lsls r1, r3, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- blt _0801387C
- ldr r0, _08013878 @ =gUnknown_081D94DA
- bl b_call_bc_move_exec
- b _080138BE
- .align 2, 0
-_08013850: .4byte gUnknown_02024C6C
-_08013854: .4byte 0x02000000
-_08013858: .4byte 0x0001601d
-_0801385C: .4byte gUnknown_02024A68
-_08013860: .4byte gUnknown_02024A60
-_08013864: .4byte gUnknown_02024C07
-_08013868: .4byte gUnknown_02024C60
-_0801386C: .4byte gBattleMons
-_08013870: .4byte gUnknown_02024CA8
-_08013874: .4byte gUnknown_02024D28
-_08013878: .4byte gUnknown_081D94DA
-_0801387C:
- ldrb r0, [r4]
- ldrb r2, [r7]
- cmp r0, r2
- bcc _080137FA
-_08013884:
- bl b_clear_atk_up_if_hit_flag_unless_enraged
- ldr r1, _080138C4 @ =gUnknown_02024A7E
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080138C8 @ =gUnknown_02024A7F
- ldr r0, _080138CC @ =gUnknown_02024A76
- movs r2, 0
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _080138D0 @ =gUnknown_02024DEC
- movs r3, 0
- strh r2, [r0]
- ldr r1, _080138D4 @ =0x02000000
- ldr r2, _080138D8 @ =0x0001601c
- adds r0, r1, r2
- strb r3, [r0]
- ldr r2, _080138DC @ =gUnknown_030042D4
- ldr r0, _080138E0 @ =sub_80138F0
- str r0, [r2]
- ldr r0, _080138E4 @ =gUnknown_02024D1E
- strb r3, [r0, 0x3]
- strb r3, [r0, 0x4]
- ldr r2, _080138E8 @ =0x00016112
- adds r0, r1, r2
- strb r3, [r0]
- ldr r0, _080138EC @ =0x00017130
- adds r1, r0
- strb r3, [r1]
-_080138BE:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080138C4: .4byte gUnknown_02024A7E
-_080138C8: .4byte gUnknown_02024A7F
-_080138CC: .4byte gUnknown_02024A76
-_080138D0: .4byte gUnknown_02024DEC
-_080138D4: .4byte 0x02000000
-_080138D8: .4byte 0x0001601c
-_080138DC: .4byte gUnknown_030042D4
-_080138E0: .4byte sub_80138F0
-_080138E4: .4byte gUnknown_02024D1E
-_080138E8: .4byte 0x00016112
-_080138EC: .4byte 0x00017130
- thumb_func_end bc_80154A0
-
- thumb_func_start sub_80138F0
-sub_80138F0: @ 80138F0
- push {r4-r6,lr}
- ldr r6, _08013944 @ =gUnknown_02024D26
- ldrb r0, [r6]
- ldr r2, _08013948 @ =gUnknown_02024A7F
- cmp r0, 0
- beq _08013900
- movs r0, 0xC
- strb r0, [r2]
-_08013900:
- ldr r1, _0801394C @ =0x02000000
- ldr r4, _08013950 @ =gUnknown_02024A7E
- ldrb r0, [r4]
- ldr r3, _08013954 @ =0x00016057
- adds r5, r1, r3
- strb r0, [r5]
- ldr r1, _08013958 @ =gUnknown_081FA640
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _0801395C @ =gUnknown_02024A68
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bcc _08013970
- ldr r2, _08013960 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _08013964 @ =0xffefffff
- ands r0, r1
- str r0, [r2]
- ldr r3, _08013968 @ =gUnknown_030042D4
- ldr r2, _0801396C @ =gUnknown_081FA678
- ldrb r1, [r6]
- movs r0, 0x7F
- ands r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- str r0, [r3]
- b _08013984
- .align 2, 0
-_08013944: .4byte gUnknown_02024D26
-_08013948: .4byte gUnknown_02024A7F
-_0801394C: .4byte 0x02000000
-_08013950: .4byte gUnknown_02024A7E
-_08013954: .4byte 0x00016057
-_08013958: .4byte gUnknown_081FA640
-_0801395C: .4byte gUnknown_02024A68
-_08013960: .4byte gUnknown_02024C6C
-_08013964: .4byte 0xffefffff
-_08013968: .4byte gUnknown_030042D4
-_0801396C: .4byte gUnknown_081FA678
-_08013970:
- ldrb r0, [r5]
- cmp r0, r1
- beq _08013984
- ldr r2, _0801398C @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _08013990 @ =0xfffffdff
- ands r0, r1
- ldr r1, _08013994 @ =0xfff7ffff
- ands r0, r1
- str r0, [r2]
-_08013984:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801398C: .4byte gUnknown_02024C6C
-_08013990: .4byte 0xfffffdff
-_08013994: .4byte 0xfff7ffff
- thumb_func_end sub_80138F0
-
- thumb_func_start sub_8013998
-sub_8013998: @ 8013998
- push {r4,lr}
- ldr r1, _080139D0 @ =gUnknown_02024A7F
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080139D4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080139EC
- ldr r1, _080139D8 @ =gUnknown_030041C0
- ldr r4, _080139DC @ =gUnknown_02024D26
- ldrb r0, [r4]
- strb r0, [r1]
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _080139E0 @ =gUnknown_02024C07
- strb r0, [r1]
- ldr r1, _080139E4 @ =gUnknown_02024C10
- ldr r0, _080139E8 @ =gUnknown_081D8E02
- str r0, [r1]
- ldrb r1, [r4]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4]
- b _08013B48
- .align 2, 0
-_080139D0: .4byte gUnknown_02024A7F
-_080139D4: .4byte gUnknown_020239F8
-_080139D8: .4byte gUnknown_030041C0
-_080139DC: .4byte gUnknown_02024D26
-_080139E0: .4byte gUnknown_02024C07
-_080139E4: .4byte gUnknown_02024C10
-_080139E8: .4byte gUnknown_081D8E02
-_080139EC:
- movs r0, 0x90
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _08013A04
- ldr r1, _080139FC @ =gUnknown_02024C10
- ldr r0, _08013A00 @ =gUnknown_081D8E0D
- b _08013B46
- .align 2, 0
-_080139FC: .4byte gUnknown_02024C10
-_08013A00: .4byte gUnknown_081D8E0D
-_08013A04:
- movs r0, 0xA
- ands r0, r1
- cmp r0, 0x8
- beq _08013A0E
- b _08013B42
-_08013A0E:
- bl sub_80325B8
- ldr r1, _08013A3C @ =gUnknown_02024C10
- ldr r0, _08013A40 @ =gUnknown_081D8DBE
- str r0, [r1]
- ldr r2, _08013A44 @ =gTrainers
- ldr r0, _08013A48 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- subs r0, 0x2
- cmp r0, 0x31
- bls _08013A30
- b _08013B38
-_08013A30:
- lsls r0, 2
- ldr r1, _08013A4C @ =_08013A50
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08013A3C: .4byte gUnknown_02024C10
-_08013A40: .4byte gUnknown_081D8DBE
-_08013A44: .4byte gTrainers
-_08013A48: .4byte gTrainerBattleOpponent
-_08013A4C: .4byte _08013A50
- .align 2, 0
-_08013A50:
- .4byte _08013B24
- .4byte _08013B24
- .4byte _08013B24
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B18
- .4byte _08013B2E
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B18
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B24
- .4byte _08013B24
- .4byte _08013B24
-_08013B18:
- ldr r0, _08013B20 @ =0x00000163
- bl PlayBGM
- b _08013B48
- .align 2, 0
-_08013B20: .4byte 0x00000163
-_08013B24:
- movs r0, 0xD4
- lsls r0, 1
- bl PlayBGM
- b _08013B48
-_08013B2E:
- movs r0, 0xB1
- lsls r0, 1
- bl PlayBGM
- b _08013B48
-_08013B38:
- movs r0, 0xCE
- lsls r0, 1
- bl PlayBGM
- b _08013B48
-_08013B42:
- ldr r1, _08013B54 @ =gUnknown_02024C10
- ldr r0, _08013B58 @ =gUnknown_081D8DCE
-_08013B46:
- str r0, [r1]
-_08013B48:
- ldr r1, _08013B5C @ =gUnknown_030042D4
- ldr r0, _08013B60 @ =sub_8013C9C
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08013B54: .4byte gUnknown_02024C10
-_08013B58: .4byte gUnknown_081D8DCE
-_08013B5C: .4byte gUnknown_030042D4
-_08013B60: .4byte sub_8013C9C
- thumb_func_end sub_8013998
-
- thumb_func_start sub_8013B64
-sub_8013B64: @ 8013B64
- push {r4,lr}
- ldr r1, _08013B9C @ =gUnknown_02024A7F
- movs r0, 0
- strb r0, [r1]
- ldr r0, _08013BA0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08013BB8
- ldr r1, _08013BA4 @ =gUnknown_030041C0
- ldr r4, _08013BA8 @ =gUnknown_02024D26
- ldrb r0, [r4]
- strb r0, [r1]
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _08013BAC @ =gUnknown_02024C07
- strb r0, [r1]
- ldr r1, _08013BB0 @ =gUnknown_02024C10
- ldr r0, _08013BB4 @ =gUnknown_081D8E02
- str r0, [r1]
- ldrb r1, [r4]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4]
- b _08013BBE
- .align 2, 0
-_08013B9C: .4byte gUnknown_02024A7F
-_08013BA0: .4byte gUnknown_020239F8
-_08013BA4: .4byte gUnknown_030041C0
-_08013BA8: .4byte gUnknown_02024D26
-_08013BAC: .4byte gUnknown_02024C07
-_08013BB0: .4byte gUnknown_02024C10
-_08013BB4: .4byte gUnknown_081D8E02
-_08013BB8:
- ldr r1, _08013BCC @ =gUnknown_02024C10
- ldr r0, _08013BD0 @ =gUnknown_081D8DD1
- str r0, [r1]
-_08013BBE:
- ldr r1, _08013BD4 @ =gUnknown_030042D4
- ldr r0, _08013BD8 @ =sub_8013C9C
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08013BCC: .4byte gUnknown_02024C10
-_08013BD0: .4byte gUnknown_081D8DD1
-_08013BD4: .4byte gUnknown_030042D4
-_08013BD8: .4byte sub_8013C9C
- thumb_func_end sub_8013B64
-
- thumb_func_start sub_8013BDC
-sub_8013BDC: @ 8013BDC
- push {lr}
- ldr r1, _08013C04 @ =gUnknown_02024A7F
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08013C08 @ =gUnknown_02024D28
- ldr r0, _08013C0C @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 27
- lsrs r0, 30
- cmp r0, 0x1
- beq _08013C18
- cmp r0, 0x2
- beq _08013C28
- ldr r1, _08013C10 @ =gUnknown_02024C10
- ldr r0, _08013C14 @ =gUnknown_081D8E29
- b _08013C2C
- .align 2, 0
-_08013C04: .4byte gUnknown_02024A7F
-_08013C08: .4byte gUnknown_02024D28
-_08013C0C: .4byte gUnknown_02024C07
-_08013C10: .4byte gUnknown_02024C10
-_08013C14: .4byte gUnknown_081D8E29
-_08013C18:
- ldr r1, _08013C20 @ =gUnknown_02024C10
- ldr r0, _08013C24 @ =gUnknown_081D8E14
- b _08013C2C
- .align 2, 0
-_08013C20: .4byte gUnknown_02024C10
-_08013C24: .4byte gUnknown_081D8E14
-_08013C28:
- ldr r1, _08013C38 @ =gUnknown_02024C10
- ldr r0, _08013C3C @ =gUnknown_081D8E22
-_08013C2C:
- str r0, [r1]
- ldr r1, _08013C40 @ =gUnknown_030042D4
- ldr r0, _08013C44 @ =sub_8013C9C
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08013C38: .4byte gUnknown_02024C10
-_08013C3C: .4byte gUnknown_081D8E22
-_08013C40: .4byte gUnknown_030042D4
-_08013C44: .4byte sub_8013C9C
- thumb_func_end sub_8013BDC
-
- thumb_func_start sub_8013C48
-sub_8013C48: @ 8013C48
- ldr r1, _08013C7C @ =gUnknown_02024A7F
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08013C80 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- ldr r2, _08013C84 @ =gUnknown_02024C07
- ldrb r0, [r2]
- strb r0, [r1, 0x2]
- ldr r3, _08013C88 @ =gUnknown_02024A6A
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08013C8C @ =gUnknown_02024C10
- ldr r0, _08013C90 @ =gUnknown_081D8E30
- str r0, [r1]
- ldr r1, _08013C94 @ =gUnknown_030042D4
- ldr r0, _08013C98 @ =sub_8013C9C
- str r0, [r1]
- bx lr
- .align 2, 0
-_08013C7C: .4byte gUnknown_02024A7F
-_08013C80: .4byte gUnknown_030041C0
-_08013C84: .4byte gUnknown_02024C07
-_08013C88: .4byte gUnknown_02024A6A
-_08013C8C: .4byte gUnknown_02024C10
-_08013C90: .4byte gUnknown_081D8E30
-_08013C94: .4byte gUnknown_030042D4
-_08013C98: .4byte sub_8013C9C
- thumb_func_end sub_8013C48
-
- thumb_func_start sub_8013C9C
-sub_8013C9C: @ 8013C9C
- push {r4-r7,lr}
- ldr r0, _08013D00 @ =gUnknown_02024A7F
- ldrb r0, [r0]
- subs r0, 0xB
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08013D7C
- ldr r0, _08013D04 @ =gUnknown_020239F8
- ldrh r0, [r0]
- ldr r1, _08013D08 @ =0x00000b92
- ands r1, r0
- cmp r1, 0
- bne _08013D4C
- ldr r2, _08013D0C @ =gUnknown_02024A60
- strb r1, [r2]
- ldr r0, _08013D10 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08013D48
- adds r4, r2, 0
- ldr r6, _08013D14 @ =gBattleMons
- movs r5, 0x58
- adds r7, r6, 0
- adds r7, 0x30
-_08013CCE:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08013D36
- ldr r2, _08013D18 @ =gUnknown_030042E0
- ldrh r0, [r2, 0x6]
- cmp r0, 0
- bne _08013D1C
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r2, 0x6]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r7
- adds r0, r2, 0
- adds r0, 0x8
- bl StringCopy
- b _08013D36
- .align 2, 0
-_08013D00: .4byte gUnknown_02024A7F
-_08013D04: .4byte gUnknown_020239F8
-_08013D08: .4byte 0x00000b92
-_08013D0C: .4byte gUnknown_02024A60
-_08013D10: .4byte gUnknown_02024A68
-_08013D14: .4byte gBattleMons
-_08013D18: .4byte gUnknown_030042E0
-_08013D1C:
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r2, 0x26]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r7
- adds r0, r2, 0
- adds r0, 0x14
- bl StringCopy
-_08013D36:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08013D68 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08013CCE
-_08013D48:
- bl sub_80BDEC8
-_08013D4C:
- movs r0, 0x3
- bl BeginFastPaletteFade
- movs r0, 0x5
- bl FadeOutMapMusic
- ldr r1, _08013D6C @ =gUnknown_030042D4
- ldr r0, _08013D70 @ =sub_8013DA8
- str r0, [r1]
- ldr r1, _08013D74 @ =gUnknown_03005E94
- ldr r0, _08013D78 @ =sub_800F808
- str r0, [r1]
- b _08013D96
- .align 2, 0
-_08013D68: .4byte gUnknown_02024A68
-_08013D6C: .4byte gUnknown_030042D4
-_08013D70: .4byte sub_8013DA8
-_08013D74: .4byte gUnknown_03005E94
-_08013D78: .4byte sub_800F808
-_08013D7C:
- ldr r0, _08013D9C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08013D96
- ldr r1, _08013DA0 @ =gUnknown_081FA73C
- ldr r0, _08013DA4 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_08013D96:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08013D9C: .4byte gUnknown_02024A64
-_08013DA0: .4byte gUnknown_081FA73C
-_08013DA4: .4byte gUnknown_02024C10
- thumb_func_end sub_8013C9C
-
- thumb_func_start sub_8013DA8
-sub_8013DA8: @ 8013DA8
- push {lr}
- ldr r0, _08013DD0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08013DEA
- bl ResetSpriteData
- ldr r0, _08013DD4 @ =gUnknown_03004324
- ldrb r0, [r0]
- cmp r0, 0
- beq _08013DCA
- ldr r0, _08013DD8 @ =gUnknown_02024D26
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08013DE4
-_08013DCA:
- ldr r1, _08013DDC @ =gUnknown_030042D4
- ldr r0, _08013DE0 @ =c4_overworld
- b _08013DE8
- .align 2, 0
-_08013DD0: .4byte gPaletteFade
-_08013DD4: .4byte gUnknown_03004324
-_08013DD8: .4byte gUnknown_02024D26
-_08013DDC: .4byte gUnknown_030042D4
-_08013DE0: .4byte c4_overworld
-_08013DE4:
- ldr r1, _08013DF0 @ =gUnknown_030042D4
- ldr r0, _08013DF4 @ =bc_evolution_cutscene
-_08013DE8:
- str r0, [r1]
-_08013DEA:
- pop {r0}
- bx r0
- .align 2, 0
-_08013DF0: .4byte gUnknown_030042D4
-_08013DF4: .4byte bc_evolution_cutscene
- thumb_func_end sub_8013DA8
-
- thumb_func_start bc_evolution_cutscene
-bc_evolution_cutscene: @ 8013DF8
- push {r4,r5,lr}
- ldr r0, _08013E4C @ =gUnknown_03004324
- ldrb r1, [r0]
- adds r3, r0, 0
- cmp r1, 0
- beq _08013E6E
-_08013E04:
- movs r5, 0
-_08013E06:
- ldrb r2, [r3]
- ldr r0, _08013E50 @ =gBitTable
- lsls r1, r5, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08013E60
- bics r2, r1
- strb r2, [r3]
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08013E54 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08013E60
- ldr r0, _08013E58 @ =gUnknown_030042D4
- ldr r1, _08013E5C @ =sub_8013E88
- str r1, [r0]
- lsls r3, r5, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r2, 0
- movs r2, 0x81
- bl EvolutionScene
- b _08013E74
- .align 2, 0
-_08013E4C: .4byte gUnknown_03004324
-_08013E50: .4byte gBitTable
-_08013E54: .4byte gPlayerParty
-_08013E58: .4byte gUnknown_030042D4
-_08013E5C: .4byte sub_8013E88
-_08013E60:
- adds r5, 0x1
- ldr r3, _08013E7C @ =gUnknown_03004324
- cmp r5, 0x5
- ble _08013E06
- ldrb r0, [r3]
- cmp r0, 0
- bne _08013E04
-_08013E6E:
- ldr r1, _08013E80 @ =gUnknown_030042D4
- ldr r0, _08013E84 @ =c4_overworld
- str r0, [r1]
-_08013E74:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08013E7C: .4byte gUnknown_03004324
-_08013E80: .4byte gUnknown_030042D4
-_08013E84: .4byte c4_overworld
- thumb_func_end bc_evolution_cutscene
-
- thumb_func_start sub_8013E88
-sub_8013E88: @ 8013E88
- push {lr}
- ldr r0, _08013EA0 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _08013EA4 @ =sub_800F808
- cmp r1, r0
- bne _08013E9A
- ldr r1, _08013EA8 @ =gUnknown_030042D4
- ldr r0, _08013EAC @ =bc_evolution_cutscene
- str r0, [r1]
-_08013E9A:
- pop {r0}
- bx r0
- .align 2, 0
-_08013EA0: .4byte gMain
-_08013EA4: .4byte sub_800F808
-_08013EA8: .4byte gUnknown_030042D4
-_08013EAC: .4byte bc_evolution_cutscene
- thumb_func_end sub_8013E88
-
- thumb_func_start c4_overworld
-c4_overworld: @ 8013EB0
- push {r4-r6,lr}
- ldr r5, _08013F30 @ =gUnknown_020239F8
- ldrh r1, [r5]
- movs r6, 0x2
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _08013ECE
- ldr r4, _08013F34 @ =gPlayerParty
- adds r0, r4, 0
- bl RandomlyGivePartyPokerus
- adds r0, r4, 0
- bl PartySpreadPokerus
-_08013ECE:
- ldrh r4, [r5]
- adds r0, r6, 0
- ands r0, r4
- cmp r0, 0
- beq _08013EE0
- ldr r0, _08013F38 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08013F2A
-_08013EE0:
- ldr r1, _08013F3C @ =gScriptResult
- ldr r5, _08013F40 @ =gUnknown_02024D26
- ldrb r0, [r5]
- strh r0, [r1]
- ldr r3, _08013F44 @ =gMain
- ldr r0, _08013F48 @ =0x0000043d
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08013F4C @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r3]
- movs r0, 0x80
- lsls r0, 3
- ands r0, r4
- cmp r0, 0
- beq _08013F1C
- ldr r0, _08013F50 @ =gEnemyParty
- bl sub_8134504
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _08013F18
- cmp r0, 0x7
- bne _08013F1C
-_08013F18:
- bl sub_813452C
-_08013F1C:
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r0, _08013F44 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_08013F2A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08013F30: .4byte gUnknown_020239F8
-_08013F34: .4byte gPlayerParty
-_08013F38: .4byte gReceivedRemoteLinkPlayers
-_08013F3C: .4byte gScriptResult
-_08013F40: .4byte gUnknown_02024D26
-_08013F44: .4byte gMain
-_08013F48: .4byte 0x0000043d
-_08013F4C: .4byte gUnknown_030042D0
-_08013F50: .4byte gEnemyParty
- thumb_func_end c4_overworld
-
- thumb_func_start sub_8013F54
-sub_8013F54: @ 8013F54
- push {lr}
- ldr r0, _08013F84 @ =gUnknown_02024A7F
- ldrb r0, [r0]
- subs r0, 0xB
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08013F90
- ldr r2, _08013F88 @ =0x02017140
- adds r1, r2, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0
- beq _08013F74
- subs r0, 0x1
- strb r0, [r1]
-_08013F74:
- ldr r0, _08013F8C @ =gUnknown_030042D4
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- str r1, [r0]
- b _08013FAA
- .align 2, 0
-_08013F84: .4byte gUnknown_02024A7F
-_08013F88: .4byte 0x02017140
-_08013F8C: .4byte gUnknown_030042D4
-_08013F90:
- ldr r0, _08013FB0 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08013FAA
- ldr r1, _08013FB4 @ =gUnknown_081FA73C
- ldr r0, _08013FB8 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_08013FAA:
- pop {r0}
- bx r0
- .align 2, 0
-_08013FB0: .4byte gUnknown_02024A64
-_08013FB4: .4byte gUnknown_081FA73C
-_08013FB8: .4byte gUnknown_02024C10
- thumb_func_end sub_8013F54
-
- thumb_func_start sub_8013FBC
-sub_8013FBC: @ 8013FBC
- push {lr}
- ldr r0, _08013FDC @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08013FD8
- ldr r1, _08013FE0 @ =gUnknown_081FA73C
- ldr r0, _08013FE4 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_08013FD8:
- pop {r0}
- bx r0
- .align 2, 0
-_08013FDC: .4byte gUnknown_02024A64
-_08013FE0: .4byte gUnknown_081FA73C
-_08013FE4: .4byte gUnknown_02024C10
- thumb_func_end sub_8013FBC
-
- thumb_func_start sub_8013FE8
-sub_8013FE8: @ 8013FE8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- movs r0, 0x4
- str r0, [sp]
- ldr r7, _08014028 @ =gUnknown_02024C07
- ldr r1, _0801402C @ =gUnknown_02024A7A
- ldr r0, _08014030 @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r7]
- ldr r1, _08014034 @ =0x02000000
- mov r10, r1
- ldr r0, _08014038 @ =0x000160a6
- add r0, r10
- ldrb r2, [r0]
- ldr r1, _0801403C @ =gBitTable
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- beq _08014044
- ldr r1, _08014040 @ =gUnknown_02024A7F
- movs r0, 0xC
- b _080146CC
- .align 2, 0
-_08014028: .4byte gUnknown_02024C07
-_0801402C: .4byte gUnknown_02024A7A
-_08014030: .4byte gUnknown_02024A7E
-_08014034: .4byte 0x02000000
-_08014038: .4byte 0x000160a6
-_0801403C: .4byte gBitTable
-_08014040: .4byte gUnknown_02024A7F
-_08014044:
- ldr r1, _080140B8 @ =gCritMultiplier
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _080140BC @ =0x0001601f
- add r1, r10
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080140C0 @ =0x000160e7
- add r0, r10
- strb r2, [r0]
- ldr r0, _080140C4 @ =gUnknown_02024C68
- strb r2, [r0]
- ldr r0, _080140C8 @ =gUnknown_02024C0E
- strb r2, [r0]
- ldr r0, _080140CC @ =gUnknown_02024D1E
- strb r2, [r0, 0x6]
- ldr r3, _080140D0 @ =gUnknown_02024BE4
- ldrb r0, [r7]
- ldr r2, _080140D4 @ =0x0001608c
- adds r0, r2
- add r0, r10
- ldrb r0, [r0]
- ldr r4, _080140D8 @ =gUnknown_02024BE5
- strb r0, [r4]
- strb r0, [r3]
- ldr r1, _080140DC @ =gUnknown_02024D28
- ldrb r2, [r7]
- lsls r0, r2, 4
- adds r5, r0, r1
- ldrb r1, [r5]
- lsls r0, r1, 29
- adds r4, r2, 0
- mov r8, r3
- cmp r0, 0
- bge _080140F0
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r5]
- ldr r2, _080140E0 @ =gUnknown_02024BE6
- ldr r1, _080140E4 @ =gUnknown_02024BE8
- movs r0, 0xA5
- strh r0, [r1]
- strh r0, [r2]
- ldr r2, _080140E8 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 4
- orrs r0, r1
- str r0, [r2]
- movs r0, 0xA5
- movs r1, 0
- bl sub_801B5C0
- ldrb r1, [r7]
- ldr r2, _080140EC @ =0x00016010
- adds r1, r2
- b _08014200
- .align 2, 0
-_080140B8: .4byte gCritMultiplier
-_080140BC: .4byte 0x0001601f
-_080140C0: .4byte 0x000160e7
-_080140C4: .4byte gUnknown_02024C68
-_080140C8: .4byte gUnknown_02024C0E
-_080140CC: .4byte gUnknown_02024D1E
-_080140D0: .4byte gUnknown_02024BE4
-_080140D4: .4byte 0x0001608c
-_080140D8: .4byte gUnknown_02024BE5
-_080140DC: .4byte gUnknown_02024D28
-_080140E0: .4byte gUnknown_02024BE6
-_080140E4: .4byte gUnknown_02024BE8
-_080140E8: .4byte gUnknown_02024C6C
-_080140EC: .4byte 0x00016010
-_080140F0:
- ldr r1, _08014128 @ =gBattleMons
- movs r0, 0x58
- adds r5, r4, 0
- muls r5, r0
- adds r0, r1, 0
- adds r0, 0x50
- adds r0, r5, r0
- ldr r2, [r0]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r2
- cmp r0, 0
- bne _08014114
- movs r6, 0x80
- lsls r6, 15
- ands r6, r2
- cmp r6, 0
- beq _08014138
-_08014114:
- ldr r3, _0801412C @ =gUnknown_02024BE6
- ldr r2, _08014130 @ =gUnknown_02024BE8
- ldr r1, _08014134 @ =gUnknown_02024C54
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- strh r0, [r3]
- b _08014280
- .align 2, 0
-_08014128: .4byte gBattleMons
-_0801412C: .4byte gUnknown_02024BE6
-_08014130: .4byte gUnknown_02024BE8
-_08014134: .4byte gUnknown_02024C54
-_08014138:
- ldr r3, _08014188 @ =gUnknown_02024CA8
- mov r12, r3
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r2, r0, r3
- ldrh r4, [r2, 0x6]
- adds r1, r4, 0
- cmp r1, 0
- beq _08014218
- ldrb r3, [r2, 0xC]
- lsls r0, r3, 1
- adds r0, r5
- str r0, [sp, 0x8]
- ldr r0, _0801418C @ =gBattleMons
- adds r0, 0xC
- mov r9, r0
- ldr r0, [sp, 0x8]
- add r0, r9
- ldrh r0, [r0]
- cmp r1, r0
- bne _080141A0
- ldr r1, _08014190 @ =gUnknown_02024BE6
- ldr r0, _08014194 @ =gUnknown_02024BE8
- strh r4, [r0]
- strh r4, [r1]
- ldrb r0, [r2, 0xC]
- ldr r2, _08014198 @ =gUnknown_02024BE5
- strb r0, [r2]
- mov r3, r8
- strb r0, [r3]
- ldrh r0, [r1]
- movs r1, 0
- bl sub_801B5C0
- ldrb r1, [r7]
- ldr r4, _0801419C @ =0x00016010
- adds r1, r4
- b _08014200
- .align 2, 0
-_08014188: .4byte gUnknown_02024CA8
-_0801418C: .4byte gBattleMons
-_08014190: .4byte gUnknown_02024BE6
-_08014194: .4byte gUnknown_02024BE8
-_08014198: .4byte gUnknown_02024BE5
-_0801419C: .4byte 0x00016010
-_080141A0:
- cmp r1, 0
- beq _08014218
- cmp r1, r0
- beq _08014218
- ldr r0, _08014208 @ =gUnknown_02024BE5
- strb r3, [r0]
- mov r1, r8
- strb r3, [r1]
- ldr r3, _0801420C @ =gUnknown_02024BE6
- ldr r1, _08014210 @ =gUnknown_02024BE8
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r5
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r1]
- strh r0, [r3]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- movs r2, 0
- strh r6, [r0, 0x6]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- strb r2, [r0, 0xC]
- ldrb r0, [r7]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r12
- ldrb r2, [r1, 0xE]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xE]
- ldrh r0, [r3]
- movs r1, 0
- bl sub_801B5C0
- ldrb r1, [r7]
- ldr r3, _08014214 @ =0x00016010
- adds r1, r3
-_08014200:
- add r1, r10
- strb r0, [r1]
- b _08014280
- .align 2, 0
-_08014208: .4byte gUnknown_02024BE5
-_0801420C: .4byte gUnknown_02024BE6
-_08014210: .4byte gUnknown_02024BE8
-_08014214: .4byte 0x00016010
-_08014218:
- mov r4, r8
- ldrb r0, [r4]
- lsls r0, 1
- ldr r4, _0801425C @ =gUnknown_02024C07
- ldrb r2, [r4]
- movs r1, 0x58
- muls r1, r2
- adds r0, r1
- ldr r1, _08014260 @ =gBattleMons
- adds r1, 0xC
- adds r0, r1
- ldr r1, _08014264 @ =gUnknown_02024C60
- lsls r2, 1
- adds r2, r1
- ldrh r3, [r0]
- ldrh r2, [r2]
- cmp r3, r2
- beq _08014278
- ldr r1, _08014268 @ =gUnknown_02024BE6
- ldr r0, _0801426C @ =gUnknown_02024BE8
- strh r3, [r0]
- strh r3, [r1]
- ldrh r0, [r1]
- movs r1, 0
- bl sub_801B5C0
- ldr r2, _08014270 @ =0x02000000
- ldrb r1, [r4]
- ldr r3, _08014274 @ =0x00016010
- adds r1, r3
- adds r1, r2
- strb r0, [r1]
- b _08014280
- .align 2, 0
-_0801425C: .4byte gUnknown_02024C07
-_08014260: .4byte gBattleMons
-_08014264: .4byte gUnknown_02024C60
-_08014268: .4byte gUnknown_02024BE6
-_0801426C: .4byte gUnknown_02024BE8
-_08014270: .4byte 0x02000000
-_08014274: .4byte 0x00016010
-_08014278:
- ldr r1, _08014298 @ =gUnknown_02024BE6
- ldr r0, _0801429C @ =gUnknown_02024BE8
- strh r3, [r0]
- strh r3, [r1]
-_08014280:
- ldr r0, _080142A0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080142A8
- ldr r0, _080142A4 @ =gUnknown_030042E0
- ldr r1, _08014298 @ =gUnknown_02024BE6
- ldrh r1, [r1]
- strh r1, [r0, 0x22]
- b _080142B0
- .align 2, 0
-_08014298: .4byte gUnknown_02024BE6
-_0801429C: .4byte gUnknown_02024BE8
-_080142A0: .4byte gUnknown_02024C07
-_080142A4: .4byte gUnknown_030042E0
-_080142A8:
- ldr r0, _08014314 @ =gUnknown_030042E0
- ldr r1, _08014318 @ =gUnknown_02024BE6
- ldrh r1, [r1]
- strh r1, [r0, 0x24]
-_080142B0:
- ldr r4, _0801431C @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08014320 @ =gUnknown_02024C80
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r5, r0, r1
- ldrb r0, [r5, 0x8]
- adds r3, r4, 0
- cmp r0, 0
- beq _08014330
- ldr r2, _08014324 @ =gBattleMoves
- ldr r0, _08014318 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x6]
- cmp r0, 0
- bne _08014330
- ldrb r0, [r3]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldrb r0, [r5, 0x9]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _08014330
- ldr r1, _08014328 @ =gBattleMons
- ldrb r2, [r5, 0x9]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08014330
- ldr r0, _0801432C @ =gUnknown_02024C08
- strb r2, [r0]
- b _080146AC
- .align 2, 0
-_08014314: .4byte gUnknown_030042E0
-_08014318: .4byte gUnknown_02024BE6
-_0801431C: .4byte gUnknown_02024C07
-_08014320: .4byte gUnknown_02024C80
-_08014324: .4byte gBattleMoves
-_08014328: .4byte gBattleMons
-_0801432C: .4byte gUnknown_02024C08
-_08014330:
- ldr r2, _08014454 @ =gUnknown_020239F8
- ldrh r1, [r2]
- movs r0, 0x1
- ands r0, r1
- ldr r3, _08014458 @ =gUnknown_02024C07
- mov r9, r2
- cmp r0, 0
- bne _08014342
- b _0801461C
-_08014342:
- ldr r1, _0801445C @ =gUnknown_02024C80
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r7, [r0, 0x8]
- cmp r7, 0
- beq _08014354
- b _08014570
-_08014354:
- ldr r2, _08014460 @ =gBattleMoves
- ldr r0, _08014464 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08014370
- ldrb r0, [r4, 0x6]
- cmp r0, 0x10
- bne _08014370
- b _08014570
-_08014370:
- ldr r3, _08014468 @ =gBattleMons
- ldr r0, _0801446C @ =0x02000000
- mov r8, r0
- ldr r2, _08014458 @ =gUnknown_02024C07
- ldrb r5, [r2]
- ldr r1, _08014470 @ =0x00016010
- adds r0, r5, r1
- add r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- adds r3, r2, 0
- cmp r0, 0x1F
- bne _08014394
- b _08014570
-_08014394:
- ldrb r0, [r4, 0x2]
- cmp r0, 0xD
- beq _0801439C
- b _08014570
-_0801439C:
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08014474 @ =gUnknown_02024A60
- strb r7, [r1]
- ldr r0, _08014478 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r7, r0
- bcs _08014416
- adds r4, r1, 0
- mov r5, r8
-_080143B6:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- beq _08014404
- ldr r0, _08014458 @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r2, _08014470 @ =0x00016010
- adds r0, r2
- adds r0, r5
- ldrb r0, [r0]
- ldrb r3, [r4]
- cmp r0, r3
- beq _08014404
- ldr r1, _08014468 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1F
- bne _08014404
- adds r0, r2, 0
- bl sub_801E3B4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r0, r1
- bcs _08014404
- ldrb r0, [r4]
- bl sub_801E3B4
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_08014404:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08014478 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080143B6
-_08014416:
- ldr r2, [sp]
- cmp r2, 0x4
- beq _0801441E
- b _08014522
-_0801441E:
- ldr r2, _08014460 @ =gBattleMoves
- ldr r0, _0801447C @ =gUnknown_02024BE8
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x6]
- ldr r3, [sp]
- ands r3, r0
- cmp r3, 0
- beq _080144A4
- ldr r0, _08014458 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08014484
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08014480
- movs r0, 0x1
- b _08014496
- .align 2, 0
-_08014454: .4byte gUnknown_020239F8
-_08014458: .4byte gUnknown_02024C07
-_0801445C: .4byte gUnknown_02024C80
-_08014460: .4byte gBattleMoves
-_08014464: .4byte gUnknown_02024BE6
-_08014468: .4byte gBattleMons
-_0801446C: .4byte 0x02000000
-_08014470: .4byte 0x00016010
-_08014474: .4byte gUnknown_02024A60
-_08014478: .4byte gUnknown_02024A68
-_0801447C: .4byte gUnknown_02024BE8
-_08014480:
- movs r0, 0x3
- b _08014496
-_08014484:
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08014494
- movs r0, 0
- b _08014496
-_08014494:
- movs r0, 0x2
-_08014496:
- bl battle_get_side_with_given_state
- ldr r1, _080144A0 @ =gUnknown_02024C08
- strb r0, [r1]
- b _080144B6
- .align 2, 0
-_080144A0: .4byte gUnknown_02024C08
-_080144A4:
- ldr r2, _080144EC @ =gUnknown_02024C08
- ldr r1, _080144F0 @ =0x02000000
- ldr r0, _080144F4 @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r4, _080144F8 @ =0x00016010
- adds r0, r4
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
-_080144B6:
- ldr r7, _080144FC @ =gUnknown_02024C0C
- ldrb r0, [r7]
- ldr r1, _08014500 @ =gBitTable
- mov r8, r1
- ldr r5, _080144EC @ =gUnknown_02024C08
- ldrb r1, [r5]
- lsls r1, 2
- add r1, r8
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _080144D0
- b _080146AC
-_080144D0:
- ldr r6, _080144F4 @ =gUnknown_02024C07
- ldrb r0, [r6]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _08014504
- ldrb r0, [r5]
- b _0801469A
- .align 2, 0
-_080144EC: .4byte gUnknown_02024C08
-_080144F0: .4byte 0x02000000
-_080144F4: .4byte gUnknown_02024C07
-_080144F8: .4byte 0x00016010
-_080144FC: .4byte gUnknown_02024C0C
-_08014500: .4byte gBitTable
-_08014504:
- ldrb r0, [r6]
- bl battle_get_per_side_status
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- strb r0, [r5]
- ldrb r1, [r7]
- ldrb r2, [r5]
- lsls r0, r2, 2
- add r0, r8
- b _08014690
-_08014522:
- ldr r4, _0801455C @ =gUnknown_02024A60
- ldr r0, _08014560 @ =gUnknown_02024A7A
- ldr r2, [sp]
- adds r0, r2, r0
- ldrb r0, [r0]
- strb r0, [r4]
- ldrb r0, [r4]
- ldr r2, _08014564 @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r1, r2
- adds r1, 0x20
- ldrb r1, [r1]
- bl sub_81074C4
- ldr r2, _08014568 @ =gUnknown_02024D68
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _0801456C @ =gUnknown_02024C08
- ldrb r0, [r4]
- strb r0, [r1]
- b _080146AC
- .align 2, 0
-_0801455C: .4byte gUnknown_02024A60
-_08014560: .4byte gUnknown_02024A7A
-_08014564: .4byte gBattleMons
-_08014568: .4byte gUnknown_02024D68
-_0801456C: .4byte gUnknown_02024C08
-_08014570:
- mov r4, r9
- ldrh r1, [r4]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0801461C
- ldr r2, _080145B4 @ =gBattleMoves
- ldr r0, _080145B8 @ =gUnknown_02024BE8
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x6]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801461C
- ldrb r0, [r3]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080145C0
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _080145BC
- movs r0, 0x1
- b _080145D2
- .align 2, 0
-_080145B4: .4byte gBattleMoves
-_080145B8: .4byte gUnknown_02024BE8
-_080145BC:
- movs r0, 0x3
- b _080145D2
-_080145C0:
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _080145D0
- movs r0, 0
- b _080145D2
-_080145D0:
- movs r0, 0x2
-_080145D2:
- bl battle_get_side_with_given_state
- ldr r1, _0801460C @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r0, _08014610 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08014614 @ =gBitTable
- ldr r5, _0801460C @ =gUnknown_02024C08
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080146AC
- ldr r0, _08014618 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080146AC
- ldrb r0, [r5]
- b _0801469A
- .align 2, 0
-_0801460C: .4byte gUnknown_02024C08
-_08014610: .4byte gUnknown_02024C0C
-_08014614: .4byte gBitTable
-_08014618: .4byte gUnknown_02024C07
-_0801461C:
- ldr r5, _08014660 @ =gUnknown_02024C08
- ldr r1, _08014664 @ =0x02000000
- adds r2, r3, 0
- ldrb r0, [r2]
- ldr r4, _08014668 @ =0x00016010
- adds r0, r4
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r6, _0801466C @ =gUnknown_02024C0C
- ldrb r1, [r6]
- ldr r7, _08014670 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r7
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080146AC
- ldrb r0, [r2]
- str r3, [sp, 0x4]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- ldr r3, [sp, 0x4]
- cmp r4, r0
- beq _08014674
- ldrb r0, [r5]
- b _0801469A
- .align 2, 0
-_08014660: .4byte gUnknown_02024C08
-_08014664: .4byte 0x02000000
-_08014668: .4byte 0x00016010
-_0801466C: .4byte gUnknown_02024C0C
-_08014670: .4byte gBitTable
-_08014674:
- ldrb r0, [r3]
- bl battle_get_per_side_status
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- strb r0, [r5]
- ldrb r1, [r6]
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r7
-_08014690:
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080146AC
- adds r0, r2, 0
-_0801469A:
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- strb r0, [r5]
-_080146AC:
- ldr r4, _080146E0 @ =gUnknown_02024C10
- ldr r3, _080146E4 @ =gUnknown_081D6BBC
- ldr r2, _080146E8 @ =gBattleMoves
- ldr r0, _080146EC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r4]
- ldr r1, _080146F0 @ =gUnknown_02024A7F
- movs r0, 0xA
-_080146CC:
- strb r0, [r1]
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080146E0: .4byte gUnknown_02024C10
-_080146E4: .4byte gUnknown_081D6BBC
-_080146E8: .4byte gBattleMoves
-_080146EC: .4byte gUnknown_02024BE6
-_080146F0: .4byte gUnknown_02024A7F
- thumb_func_end sub_8013FE8
-
- thumb_func_start sub_80146F4
-sub_80146F4: @ 80146F4
- push {r4,lr}
- ldr r3, _08014764 @ =gUnknown_02024C07
- ldr r1, _08014768 @ =gUnknown_02024A7A
- ldr r0, _0801476C @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r3]
- ldr r0, _08014770 @ =gUnknown_030042A4
- movs r2, 0
- strh r2, [r0]
- ldr r0, _08014774 @ =gUnknown_030042A0
- strh r2, [r0]
- ldr r1, _08014778 @ =gUnknown_02024E60
- ldrb r0, [r3]
- adds r0, r1
- strb r2, [r0]
- ldr r1, _0801477C @ =gUnknown_02024E64
- ldrb r0, [r3]
- adds r0, r1
- strb r2, [r0]
- ldr r2, _08014780 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x7
- strb r0, [r2, 0x1]
- ldrb r4, [r3]
- strb r4, [r2, 0x2]
- ldr r1, _08014784 @ =0x02000000
- ldrb r0, [r3]
- ldr r3, _08014788 @ =0x00016064
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2, 0x3]
- movs r0, 0xFF
- strb r0, [r2, 0x4]
- ldr r0, _0801478C @ =0x00016003
- adds r1, r0
- strb r4, [r1]
- ldr r1, _08014790 @ =gUnknown_02024C10
- ldr r0, _08014794 @ =gUnknown_081D8E4E
- str r0, [r1]
- ldr r1, _08014798 @ =gUnknown_02024A7F
- movs r0, 0xA
- strb r0, [r1]
- ldr r1, _0801479C @ =gUnknown_030042E0
- ldrb r0, [r1, 0x2]
- cmp r0, 0xFE
- bhi _0801475C
- adds r0, 0x1
- strb r0, [r1, 0x2]
-_0801475C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08014764: .4byte gUnknown_02024C07
-_08014768: .4byte gUnknown_02024A7A
-_0801476C: .4byte gUnknown_02024A7E
-_08014770: .4byte gUnknown_030042A4
-_08014774: .4byte gUnknown_030042A0
-_08014778: .4byte gUnknown_02024E60
-_0801477C: .4byte gUnknown_02024E64
-_08014780: .4byte gUnknown_030041C0
-_08014784: .4byte 0x02000000
-_08014788: .4byte 0x00016064
-_0801478C: .4byte 0x00016003
-_08014790: .4byte gUnknown_02024C10
-_08014794: .4byte gUnknown_081D8E4E
-_08014798: .4byte gUnknown_02024A7F
-_0801479C: .4byte gUnknown_030042E0
- thumb_func_end sub_80146F4
-
- thumb_func_start sub_80147A0
-sub_80147A0: @ 80147A0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _08014804 @ =gUnknown_02024C07
- ldr r2, _08014808 @ =gUnknown_02024C08
- ldr r1, _0801480C @ =gUnknown_02024A7A
- ldr r0, _08014810 @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- strb r0, [r4]
- ldr r0, _08014814 @ =gUnknown_030042A4
- movs r2, 0
- strh r2, [r0]
- ldr r0, _08014818 @ =gUnknown_030042A0
- strh r2, [r0]
- ldr r3, _0801481C @ =gUnknown_02024CA8
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- strb r2, [r0, 0x10]
- ldr r5, _08014820 @ =gUnknown_02024C04
- ldr r2, _08014824 @ =gUnknown_02024260
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- strh r3, [r5]
- cmp r3, 0xC
- bhi _08014830
- ldr r2, _08014828 @ =gUnknown_02024C10
- ldr r1, _0801482C @ =gUnknown_081D9E48
- ldrh r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- b _08014A8C
- .align 2, 0
-_08014804: .4byte gUnknown_02024C07
-_08014808: .4byte gUnknown_02024C08
-_0801480C: .4byte gUnknown_02024A7A
-_08014810: .4byte gUnknown_02024A7E
-_08014814: .4byte gUnknown_030042A4
-_08014818: .4byte gUnknown_030042A0
-_0801481C: .4byte gUnknown_02024CA8
-_08014820: .4byte gUnknown_02024C04
-_08014824: .4byte gUnknown_02024260
-_08014828: .4byte gUnknown_02024C10
-_0801482C: .4byte gUnknown_081D9E48
-_08014830:
- adds r0, r3, 0
- subs r0, 0x50
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0801484C
- ldr r0, _08014844 @ =gUnknown_02024C10
- ldr r1, _08014848 @ =gUnknown_081D9E94
- b _0801485C
- .align 2, 0
-_08014844: .4byte gUnknown_02024C10
-_08014848: .4byte gUnknown_081D9E94
-_0801484C:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0801486C
- ldr r0, _08014864 @ =gUnknown_02024C10
- ldr r1, _08014868 @ =gUnknown_081D9E7C
-_0801485C:
- ldr r1, [r1]
- str r1, [r0]
- b _08014A8C
- .align 2, 0
-_08014864: .4byte gUnknown_02024C10
-_08014868: .4byte gUnknown_081D9E7C
-_0801486C:
- ldr r2, _080148A0 @ =0x02000000
- ldrb r0, [r4]
- ldr r3, _080148A4 @ =0x00016003
- adds r1, r2, r3
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 25
- ldr r1, _080148A8 @ =0x000160d8
- adds r0, r1
- adds r0, r2
- ldrb r0, [r0]
- subs r0, 0x1
- mov r8, r4
- ldr r3, _080148AC @ =gUnknown_02024C10
- mov r9, r3
- ldr r1, _080148B0 @ =gUnknown_081D9E7C
- mov r10, r1
- adds r7, r2, 0
- cmp r0, 0x4
- bls _08014896
- b _08014A74
-_08014896:
- lsls r0, 2
- ldr r1, _080148B4 @ =_080148B8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080148A0: .4byte 0x02000000
-_080148A4: .4byte 0x00016003
-_080148A8: .4byte 0x000160d8
-_080148AC: .4byte gUnknown_02024C10
-_080148B0: .4byte gUnknown_081D9E7C
-_080148B4: .4byte _080148B8
- .align 2, 0
-_080148B8:
- .4byte _08014A74
- .4byte _08014A74
- .4byte _080148CC
- .4byte _08014958
- .4byte _08014A30
-_080148CC:
- ldr r2, _08014904 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r2, 0x5]
- ldr r1, _08014908 @ =gUnknown_02024C07
- ldrb r0, [r1]
- lsrs r0, 1
- ldr r6, _0801490C @ =0x000160da
- adds r0, r6
- adds r0, r7
- ldrb r3, [r0]
- movs r0, 0x1
- ands r0, r3
- mov r8, r1
- cmp r0, 0
- beq _08014918
- movs r0, 0x3E
- ands r0, r3
- ldr r3, _08014910 @ =gUnknown_02024C10
- mov r9, r3
- ldr r1, _08014914 @ =gUnknown_081D9E7C
- mov r10, r1
- cmp r0, 0
- bne _080148FC
- b _08014A74
-_080148FC:
- movs r0, 0x5
- strb r0, [r2, 0x5]
- b _08014A74
- .align 2, 0
-_08014904: .4byte gUnknown_02024D1E
-_08014908: .4byte gUnknown_02024C07
-_0801490C: .4byte 0x000160da
-_08014910: .4byte gUnknown_02024C10
-_08014914: .4byte gUnknown_081D9E7C
-_08014918:
- ldr r3, _08014950 @ =gUnknown_02024C10
- mov r9, r3
- ldr r0, _08014954 @ =gUnknown_081D9E7C
- mov r10, r0
- adds r5, r7, 0
- mov r4, r8
- adds r3, r6, 0
-_08014926:
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r5
- ldrb r1, [r0]
- lsrs r1, 1
- strb r1, [r0]
- ldrb r0, [r2, 0x5]
- adds r0, 0x1
- strb r0, [r2, 0x5]
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08014926
- b _08014A74
- .align 2, 0
-_08014950: .4byte gUnknown_02024C10
-_08014954: .4byte gUnknown_081D9E7C
-_08014958:
- ldr r3, _0801498C @ =gUnknown_02024D1E
- movs r0, 0x4
- strb r0, [r3, 0x5]
- ldr r2, _08014990 @ =gUnknown_02024C07
- ldrb r0, [r2]
- lsrs r0, 1
- ldr r1, _08014994 @ =0x000160da
- mov r12, r1
- add r0, r12
- adds r6, r0, r7
- ldrb r1, [r6]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r8, r2
- cmp r5, 0
- beq _080149A0
- movs r0, 0x5
- strb r0, [r3, 0x5]
- ldr r2, _08014998 @ =gUnknown_02024C10
- mov r9, r2
- ldr r3, _0801499C @ =gUnknown_081D9E7C
- mov r10, r3
- b _08014A74
- .align 2, 0
-_0801498C: .4byte gUnknown_02024D1E
-_08014990: .4byte gUnknown_02024C07
-_08014994: .4byte 0x000160da
-_08014998: .4byte gUnknown_02024C10
-_0801499C: .4byte gUnknown_081D9E7C
-_080149A0:
- ldr r3, _08014A18 @ =gUnknown_030041C0
- movs r4, 0xFD
- strb r4, [r3]
- movs r0, 0x5
- strb r0, [r3, 0x1]
- movs r2, 0x1
- strb r2, [r3, 0x2]
- movs r0, 0xFF
- strb r0, [r3, 0x3]
- ldr r1, _08014A1C @ =gUnknown_03004290
- strb r4, [r1]
- strb r5, [r1, 0x1]
- movs r0, 0xD2
- strb r0, [r1, 0x2]
- strb r5, [r1, 0x3]
- subs r0, 0xD3
- strb r0, [r1, 0x4]
- ldrb r0, [r6]
- ands r2, r0
- ldr r0, _08014A20 @ =gUnknown_02024C10
- mov r9, r0
- ldr r1, _08014A24 @ =gUnknown_081D9E7C
- mov r10, r1
- adds r6, r3, 0
- cmp r2, 0
- bne _08014A02
- adds r3, r7, 0
- mov r5, r8
- mov r4, r12
- adds r2, r6, 0
-_080149DC:
- ldrb r0, [r5]
- lsrs r0, 1
- adds r0, r4
- adds r0, r3
- ldrb r1, [r0]
- lsrs r1, 1
- strb r1, [r0]
- ldrb r0, [r2, 0x2]
- adds r0, 0x1
- strb r0, [r2, 0x2]
- ldrb r0, [r5]
- lsrs r0, 1
- adds r0, r4
- adds r0, r3
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080149DC
-_08014A02:
- ldrb r0, [r6, 0x2]
- adds r0, 0xE
- ldr r2, _08014A28 @ =0x000160a4
- adds r1, r7, r2
- movs r2, 0
- strb r0, [r1]
- ldr r3, _08014A2C @ =0x000160a5
- adds r0, r7, r3
- strb r2, [r0]
- b _08014A74
- .align 2, 0
-_08014A18: .4byte gUnknown_030041C0
-_08014A1C: .4byte gUnknown_03004290
-_08014A20: .4byte gUnknown_02024C10
-_08014A24: .4byte gUnknown_081D9E7C
-_08014A28: .4byte 0x000160a4
-_08014A2C: .4byte 0x000160a5
-_08014A30:
- ldr r0, _08014A50 @ =gUnknown_020239F8
- ldrh r0, [r0]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08014A64
- ldr r1, _08014A54 @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- ldr r0, _08014A58 @ =gUnknown_02024C07
- mov r8, r0
- ldr r1, _08014A5C @ =gUnknown_02024C10
- mov r9, r1
- ldr r2, _08014A60 @ =gUnknown_081D9E7C
- mov r10, r2
- b _08014A74
- .align 2, 0
-_08014A50: .4byte gUnknown_020239F8
-_08014A54: .4byte gUnknown_02024D1E
-_08014A58: .4byte gUnknown_02024C07
-_08014A5C: .4byte gUnknown_02024C10
-_08014A60: .4byte gUnknown_081D9E7C
-_08014A64:
- ldr r0, _08014AA0 @ =gUnknown_02024D1E
- strb r1, [r0, 0x5]
- ldr r3, _08014AA4 @ =gUnknown_02024C07
- mov r8, r3
- ldr r0, _08014AA8 @ =gUnknown_02024C10
- mov r9, r0
- ldr r1, _08014AAC @ =gUnknown_081D9E7C
- mov r10, r1
-_08014A74:
- mov r2, r8
- ldrb r0, [r2]
- lsrs r0, 1
- ldr r3, _08014AB0 @ =0x000160d8
- adds r0, r3
- adds r0, r7
- ldrb r0, [r0]
- lsls r0, 2
- add r0, r10
- ldr r0, [r0]
- mov r1, r9
- str r0, [r1]
-_08014A8C:
- movs r0, 0xA
- ldr r2, _08014AB4 @ =gUnknown_02024A7F
- strb r0, [r2]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08014AA0: .4byte gUnknown_02024D1E
-_08014AA4: .4byte gUnknown_02024C07
-_08014AA8: .4byte gUnknown_02024C10
-_08014AAC: .4byte gUnknown_081D9E7C
-_08014AB0: .4byte 0x000160d8
-_08014AB4: .4byte gUnknown_02024A7F
- thumb_func_end sub_80147A0
-
- thumb_func_start sub_8014AB8
-sub_8014AB8: @ 8014AB8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- ldr r1, _08014ADC @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08014AE4
- ldr r1, _08014AE0 @ =gEnigmaBerries
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x7]
- b _08014AEE
- .align 2, 0
-_08014ADC: .4byte gBattleMons
-_08014AE0: .4byte gEnigmaBerries
-_08014AE4:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r1, r0, 24
-_08014AEE:
- ldr r0, _08014B18 @ =gUnknown_02024C0B
- strb r4, [r0]
- cmp r1, 0x25
- bne _08014B28
- ldr r2, _08014B1C @ =gUnknown_02024C04
- ldr r1, _08014B20 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- strh r0, [r2]
- ldr r0, _08014B24 @ =gUnknown_02024D28
- lsls r2, r4, 4
- adds r2, r0
- ldrb r1, [r2, 0x1]
- movs r0, 0x19
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- b _08014B50
- .align 2, 0
-_08014B18: .4byte gUnknown_02024C0B
-_08014B1C: .4byte gUnknown_02024C04
-_08014B20: .4byte gBattleMons
-_08014B24: .4byte gUnknown_02024D28
-_08014B28:
- ldr r6, _08014B5C @ =gBattleMons
- movs r2, 0x58
- adds r0, r4, 0
- muls r0, r2
- adds r3, r0, r6
- adds r0, r3, 0
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x32
- bne _08014B68
- ldr r0, _08014B60 @ =byte_2024C06
- strb r1, [r0]
- ldr r0, _08014B64 @ =gUnknown_02024D28
- lsls r2, r4, 4
- adds r2, r0
- ldrb r1, [r2, 0x1]
- movs r0, 0x19
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
-_08014B50:
- orrs r0, r1
- strb r0, [r2, 0x1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- b _08014BC2
- .align 2, 0
-_08014B5C: .4byte gBattleMons
-_08014B60: .4byte byte_2024C06
-_08014B64: .4byte gUnknown_02024D28
-_08014B68:
- ldr r0, _08014BDC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08014BB6
- movs r1, 0x1
- adds r0, r4, 0
- eors r0, r1
- muls r0, r2
- adds r2, r0, r6
- ldrh r0, [r3, 0x6]
- ldrh r1, [r2, 0x6]
- cmp r0, r1
- bcs _08014BB0
- lsls r0, 7
- ldrh r1, [r2, 0x6]
- bl __divsi3
- adds r4, r0, 0
- ldr r0, _08014BE0 @ =0x02000000
- ldr r1, _08014BE4 @ =0x00016078
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 1
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- movs r1, 0xFF
- ands r1, r0
- cmp r4, r1
- bls _08014BB6
-_08014BB0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_08014BB6:
- ldr r1, _08014BE0 @ =0x02000000
- ldr r0, _08014BE4 @ =0x00016078
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08014BC2:
- cmp r5, 0
- beq _08014BD4
- ldr r1, _08014BE8 @ =gUnknown_02024A7E
- ldr r0, _08014BEC @ =gUnknown_02024A68
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _08014BF0 @ =gUnknown_02024D26
- movs r0, 0x4
- strb r0, [r1]
-_08014BD4:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08014BDC: .4byte gUnknown_020239F8
-_08014BE0: .4byte 0x02000000
-_08014BE4: .4byte 0x00016078
-_08014BE8: .4byte gUnknown_02024A7E
-_08014BEC: .4byte gUnknown_02024A68
-_08014BF0: .4byte gUnknown_02024D26
- thumb_func_end sub_8014AB8
-
- thumb_func_start sub_8014BF4
-sub_8014BF4: @ 8014BF4
- push {r4-r6,lr}
- ldr r4, _08014C44 @ =gUnknown_02024C07
- ldr r1, _08014C48 @ =gUnknown_02024A7A
- ldr r5, _08014C4C @ =gUnknown_02024A7E
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r0, _08014C50 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08014C9C
- ldr r0, _08014C54 @ =gUnknown_02024A68
- ldrb r1, [r0]
- strb r1, [r5]
- ldr r2, _08014C58 @ =gUnknown_02024A60
- movs r0, 0
- strb r0, [r2]
- lsls r1, 24
- cmp r1, 0
- beq _08014C88
- adds r4, r2, 0
- ldr r6, _08014C5C @ =gUnknown_02024C18
- ldr r5, _08014C60 @ =gUnknown_02024D26
-_08014C28:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08014C64
- ldrb r0, [r4]
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08014C76
- ldrb r0, [r5]
- movs r1, 0x2
- b _08014C72
- .align 2, 0
-_08014C44: .4byte gUnknown_02024C07
-_08014C48: .4byte gUnknown_02024A7A
-_08014C4C: .4byte gUnknown_02024A7E
-_08014C50: .4byte gUnknown_020239F8
-_08014C54: .4byte gUnknown_02024A68
-_08014C58: .4byte gUnknown_02024A60
-_08014C5C: .4byte gUnknown_02024C18
-_08014C60: .4byte gUnknown_02024D26
-_08014C64:
- ldrb r0, [r4]
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08014C76
- ldrb r0, [r5]
- movs r1, 0x1
-_08014C72:
- orrs r0, r1
- strb r0, [r5]
-_08014C76:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08014C94 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08014C28
-_08014C88:
- ldr r0, _08014C98 @ =gUnknown_02024D26
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- b _08014D40
- .align 2, 0
-_08014C94: .4byte gUnknown_02024A68
-_08014C98: .4byte gUnknown_02024D26
-_08014C9C:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08014CF4
- ldrb r0, [r4]
- bl sub_8014AB8
- lsls r0, 24
- cmp r0, 0
- bne _08014D40
- ldr r1, _08014CDC @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, _08014CE0 @ =0xfdffffff
- ands r0, r1
- str r0, [r2]
- ldr r1, _08014CE4 @ =gUnknown_02024D1E
- movs r0, 0x3
- strb r0, [r1, 0x5]
- ldr r1, _08014CE8 @ =gUnknown_02024C10
- ldr r0, _08014CEC @ =gUnknown_081D8E3B
- str r0, [r1]
- ldr r1, _08014CF0 @ =gUnknown_02024A7F
- movs r0, 0xA
- b _08014D3E
- .align 2, 0
-_08014CDC: .4byte gBattleMons
-_08014CE0: .4byte 0xfdffffff
-_08014CE4: .4byte gUnknown_02024D1E
-_08014CE8: .4byte gUnknown_02024C10
-_08014CEC: .4byte gUnknown_081D8E3B
-_08014CF0: .4byte gUnknown_02024A7F
-_08014CF4:
- ldr r1, _08014D1C @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08014D20 @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- beq _08014D34
- ldr r1, _08014D24 @ =gUnknown_02024D1E
- movs r0, 0x4
- strb r0, [r1, 0x5]
- ldr r1, _08014D28 @ =gUnknown_02024C10
- ldr r0, _08014D2C @ =gUnknown_081D8E3B
- str r0, [r1]
- ldr r1, _08014D30 @ =gUnknown_02024A7F
- movs r0, 0xA
- b _08014D3E
- .align 2, 0
-_08014D1C: .4byte gBattleMons
-_08014D20: .4byte 0x0400e000
-_08014D24: .4byte gUnknown_02024D1E
-_08014D28: .4byte gUnknown_02024C10
-_08014D2C: .4byte gUnknown_081D8E3B
-_08014D30: .4byte gUnknown_02024A7F
-_08014D34:
- ldr r0, _08014D48 @ =gUnknown_02024A68
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r1, _08014D4C @ =gUnknown_02024D26
- movs r0, 0x6
-_08014D3E:
- strb r0, [r1]
-_08014D40:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08014D48: .4byte gUnknown_02024A68
-_08014D4C: .4byte gUnknown_02024D26
- thumb_func_end sub_8014BF4
-
- thumb_func_start sub_8014D50
-sub_8014D50: @ 8014D50
- ldr r2, _08014D78 @ =gUnknown_02024C07
- ldr r1, _08014D7C @ =gUnknown_02024A7A
- ldr r0, _08014D80 @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08014D84 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08014D88 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r1, _08014D8C @ =gUnknown_02024C10
- ldr r0, _08014D90 @ =gUnknown_081D9E98
- ldr r0, [r0]
- str r0, [r1]
- ldr r1, _08014D94 @ =gUnknown_02024A7F
- movs r0, 0xA
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08014D78: .4byte gUnknown_02024C07
-_08014D7C: .4byte gUnknown_02024A7A
-_08014D80: .4byte gUnknown_02024A7E
-_08014D84: .4byte gUnknown_030042A4
-_08014D88: .4byte gUnknown_030042A0
-_08014D8C: .4byte gUnknown_02024C10
-_08014D90: .4byte gUnknown_081D9E98
-_08014D94: .4byte gUnknown_02024A7F
- thumb_func_end sub_8014D50
-
- thumb_func_start sub_8014D98
-sub_8014D98: @ 8014D98
- ldr r2, _08014DD0 @ =gUnknown_02024C07
- ldr r1, _08014DD4 @ =gUnknown_02024A7A
- ldr r0, _08014DD8 @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08014DDC @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08014DE0 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r1, _08014DE4 @ =gUnknown_02038808
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- ldr r1, _08014DE8 @ =gUnknown_02024C04
- movs r0, 0x5
- strh r0, [r1]
- ldr r1, _08014DEC @ =gUnknown_02024C10
- ldr r0, _08014DF0 @ =gUnknown_081D9E48
- ldr r0, [r0, 0x14]
- str r0, [r1]
- ldr r1, _08014DF4 @ =gUnknown_02024A7F
- movs r0, 0xA
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08014DD0: .4byte gUnknown_02024C07
-_08014DD4: .4byte gUnknown_02024A7A
-_08014DD8: .4byte gUnknown_02024A7E
-_08014DDC: .4byte gUnknown_030042A4
-_08014DE0: .4byte gUnknown_030042A0
-_08014DE4: .4byte gUnknown_02038808
-_08014DE8: .4byte gUnknown_02024C04
-_08014DEC: .4byte gUnknown_02024C10
-_08014DF0: .4byte gUnknown_081D9E48
-_08014DF4: .4byte gUnknown_02024A7F
- thumb_func_end sub_8014D98
-
- thumb_func_start sub_8014DF8
-sub_8014DF8: @ 8014DF8
- push {r4-r6,lr}
- ldr r3, _08014E68 @ =gUnknown_02024C07
- ldr r1, _08014E6C @ =gUnknown_02024A7A
- ldr r0, _08014E70 @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r3]
- ldr r0, _08014E74 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08014E78 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r6, _08014E7C @ =gUnknown_02024D1E
- ldr r2, _08014E80 @ =gUnknown_02024260
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0x1
- strb r0, [r6, 0x5]
- ldr r1, _08014E84 @ =gUnknown_02024C04
- ldrb r0, [r3]
- lsls r0, 9
- adds r2, 0x2
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r1]
- ldr r2, _08014E88 @ =0x02000000
- ldr r0, _08014E8C @ =0x00016087
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _08014E42
- adds r0, 0x1
- strb r0, [r1]
-_08014E42:
- ldr r0, _08014E90 @ =0x00016088
- adds r4, r2, r0
- ldrb r5, [r4]
- adds r3, r5, 0
- cmp r3, 0x1
- bls _08014E9C
- ldr r2, _08014E94 @ =gUnknown_081FA70C
- ldrb r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- ldrb r6, [r6, 0x5]
- adds r0, r6
- adds r0, r2
- ldrb r0, [r0]
- cmp r3, r0
- bcs _08014E98
- movs r0, 0x1
- b _08014E9A
- .align 2, 0
-_08014E68: .4byte gUnknown_02024C07
-_08014E6C: .4byte gUnknown_02024A7A
-_08014E70: .4byte gUnknown_02024A7E
-_08014E74: .4byte gUnknown_030042A4
-_08014E78: .4byte gUnknown_030042A0
-_08014E7C: .4byte gUnknown_02024D1E
-_08014E80: .4byte gUnknown_02024260
-_08014E84: .4byte gUnknown_02024C04
-_08014E88: .4byte 0x02000000
-_08014E8C: .4byte 0x00016087
-_08014E90: .4byte 0x00016088
-_08014E94: .4byte gUnknown_081FA70C
-_08014E98:
- subs r0, r5, r0
-_08014E9A:
- strb r0, [r4]
-_08014E9C:
- ldr r1, _08014EB0 @ =gUnknown_02024C10
- ldr r0, _08014EB4 @ =gUnknown_081D9E98
- ldr r0, [r0, 0x8]
- str r0, [r1]
- ldr r1, _08014EB8 @ =gUnknown_02024A7F
- movs r0, 0xA
- strb r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08014EB0: .4byte gUnknown_02024C10
-_08014EB4: .4byte gUnknown_081D9E98
-_08014EB8: .4byte gUnknown_02024A7F
- thumb_func_end sub_8014DF8
-
- thumb_func_start sub_8014EBC
-sub_8014EBC: @ 8014EBC
- push {r4,r5,lr}
- ldr r2, _08014F28 @ =gUnknown_02024C07
- ldr r1, _08014F2C @ =gUnknown_02024A7A
- ldr r0, _08014F30 @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08014F34 @ =gUnknown_030042A4
- movs r5, 0
- strh r5, [r0]
- ldr r0, _08014F38 @ =gUnknown_030042A0
- strh r5, [r0]
- ldr r3, _08014F3C @ =0x02000000
- ldr r0, _08014F40 @ =0x00016089
- adds r2, r3, r0
- ldr r1, _08014F44 @ =gUnknown_081FA71B
- subs r0, 0x3
- adds r4, r3, r0
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- ldrb r1, [r2]
- adds r0, r1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x14
- bls _08014EFA
- movs r0, 0x14
- strb r0, [r2]
-_08014EFA:
- ldr r0, _08014F48 @ =0x00016088
- adds r2, r3, r0
- ldr r1, _08014F4C @ =gUnknown_081FA71F
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- ldrb r1, [r2]
- adds r0, r1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x14
- bls _08014F18
- movs r0, 0x14
- strb r0, [r2]
-_08014F18:
- ldrb r0, [r4]
- cmp r0, 0x2
- bhi _08014F54
- adds r0, 0x1
- strb r0, [r4]
- ldr r0, _08014F50 @ =gUnknown_02024D1E
- strb r5, [r0, 0x5]
- b _08014F5A
- .align 2, 0
-_08014F28: .4byte gUnknown_02024C07
-_08014F2C: .4byte gUnknown_02024A7A
-_08014F30: .4byte gUnknown_02024A7E
-_08014F34: .4byte gUnknown_030042A4
-_08014F38: .4byte gUnknown_030042A0
-_08014F3C: .4byte 0x02000000
-_08014F40: .4byte 0x00016089
-_08014F44: .4byte gUnknown_081FA71B
-_08014F48: .4byte 0x00016088
-_08014F4C: .4byte gUnknown_081FA71F
-_08014F50: .4byte gUnknown_02024D1E
-_08014F54:
- ldr r1, _08014F70 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_08014F5A:
- ldr r1, _08014F74 @ =gUnknown_02024C10
- ldr r0, _08014F78 @ =gUnknown_081D9E98
- ldr r0, [r0, 0x4]
- str r0, [r1]
- ldr r1, _08014F7C @ =gUnknown_02024A7F
- movs r0, 0xA
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08014F70: .4byte gUnknown_02024D1E
-_08014F74: .4byte gUnknown_02024C10
-_08014F78: .4byte gUnknown_081D9E98
-_08014F7C: .4byte gUnknown_02024A7F
- thumb_func_end sub_8014EBC
-
- thumb_func_start bs8_exit_by_flight
-bs8_exit_by_flight: @ 8014F80
- push {r4,lr}
- ldr r2, _08014FA8 @ =gUnknown_02024C07
- ldr r1, _08014FAC @ =gUnknown_02024A7A
- ldr r4, _08014FB0 @ =gUnknown_02024A7E
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0x11
- bl PlaySE
- ldr r0, _08014FB4 @ =gUnknown_02024A68
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _08014FB8 @ =gUnknown_02024D26
- movs r0, 0x4
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08014FA8: .4byte gUnknown_02024C07
-_08014FAC: .4byte gUnknown_02024A7A
-_08014FB0: .4byte gUnknown_02024A7E
-_08014FB4: .4byte gUnknown_02024A68
-_08014FB8: .4byte gUnknown_02024D26
- thumb_func_end bs8_exit_by_flight
-
- thumb_func_start sub_8014FBC
-sub_8014FBC: @ 8014FBC
- ldr r3, _08015008 @ =gUnknown_02024C07
- ldr r1, _0801500C @ =gUnknown_02024A7A
- ldr r0, _08015010 @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- strb r2, [r3]
- ldr r0, _08015014 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08015018 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r1, _0801501C @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- ldr r2, _08015020 @ =gUnknown_02024A6A
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08015024 @ =gUnknown_02024C10
- ldr r0, _08015028 @ =gUnknown_081D9E98
- ldr r0, [r0, 0xC]
- str r0, [r1]
- ldr r1, _0801502C @ =gUnknown_02024A7F
- movs r0, 0xA
- strb r0, [r1]
- ldr r1, _08015030 @ =gUnknown_02024A76
- movs r0, 0xC
- strb r0, [r1, 0x1]
- bx lr
- .align 2, 0
-_08015008: .4byte gUnknown_02024C07
-_0801500C: .4byte gUnknown_02024A7A
-_08015010: .4byte gUnknown_02024A7E
-_08015014: .4byte gUnknown_030042A4
-_08015018: .4byte gUnknown_030042A0
-_0801501C: .4byte gUnknown_030041C0
-_08015020: .4byte gUnknown_02024A6A
-_08015024: .4byte gUnknown_02024C10
-_08015028: .4byte gUnknown_081D9E98
-_0801502C: .4byte gUnknown_02024A7F
-_08015030: .4byte gUnknown_02024A76
- thumb_func_end sub_8014FBC
-
- thumb_func_start bsB_exit_by_move
-bsB_exit_by_move: @ 8015034
- push {lr}
- bl sub_80173A4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08015050
- ldr r0, _08015054 @ =0x02000000
- ldr r2, _08015058 @ =0x00016059
- adds r0, r2
- strb r1, [r0]
- ldr r1, _0801505C @ =gUnknown_02024A7F
- movs r0, 0xC
- strb r0, [r1]
-_08015050:
- pop {r0}
- bx r0
- .align 2, 0
-_08015054: .4byte 0x02000000
-_08015058: .4byte 0x00016059
-_0801505C: .4byte gUnknown_02024A7F
- thumb_func_end bsB_exit_by_move
-
- thumb_func_start sub_8015060
-sub_8015060: @ 8015060
- ldr r1, _08015080 @ =gUnknown_02024A7E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r3, _08015084 @ =gUnknown_02024A7F
- ldr r2, _08015088 @ =gUnknown_02024A76
- ldrb r0, [r1]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r3]
- ldr r2, _0801508C @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _08015090 @ =0xf1e892af
- ands r0, r1
- str r0, [r2]
- bx lr
- .align 2, 0
-_08015080: .4byte gUnknown_02024A7E
-_08015084: .4byte gUnknown_02024A7F
-_08015088: .4byte gUnknown_02024A76
-_0801508C: .4byte gUnknown_02024C6C
-_08015090: .4byte 0xf1e892af
- thumb_func_end sub_8015060
-
- thumb_func_start bsC_8016D70
-bsC_8016D70: @ 8015094
- push {r4,r5,lr}
- ldr r1, _0801510C @ =gUnknown_02024A7E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r3, _08015110 @ =gUnknown_02024A7F
- ldr r2, _08015114 @ =gUnknown_02024A76
- ldrb r0, [r1]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r3]
- bl sub_801377C
- ldr r2, _08015118 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0801511C @ =0xf1e892af
- ands r0, r1
- str r0, [r2]
- ldr r0, _08015120 @ =gUnknown_02024BEC
- movs r4, 0
- str r4, [r0]
- ldr r1, _08015124 @ =0x02000000
- ldr r2, _08015128 @ =0x00016002
- adds r0, r1, r2
- strb r4, [r0]
- ldr r3, _0801512C @ =0x000160a1
- adds r0, r1, r3
- strb r4, [r0]
- ldr r2, _08015130 @ =gUnknown_02024C3C
- ldr r5, _08015134 @ =gUnknown_02024C07
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r2
- movs r2, 0
- strh r4, [r0]
- ldr r3, _08015138 @ =gUnknown_02024C44
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r3
- strh r4, [r0]
- ldr r3, _0801513C @ =0x0001601c
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _08015140 @ =gUnknown_02024DEC
- strh r4, [r0]
- subs r3, 0x10
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _08015144 @ =gUnknown_02024D1E
- strb r2, [r0, 0x3]
- strb r2, [r0, 0x4]
- ldr r3, _08015148 @ =0x00016112
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _0801514C @ =0x00017130
- adds r1, r0
- strb r2, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801510C: .4byte gUnknown_02024A7E
-_08015110: .4byte gUnknown_02024A7F
-_08015114: .4byte gUnknown_02024A76
-_08015118: .4byte gUnknown_02024C6C
-_0801511C: .4byte 0xf1e892af
-_08015120: .4byte gUnknown_02024BEC
-_08015124: .4byte 0x02000000
-_08015128: .4byte 0x00016002
-_0801512C: .4byte 0x000160a1
-_08015130: .4byte gUnknown_02024C3C
-_08015134: .4byte gUnknown_02024C07
-_08015138: .4byte gUnknown_02024C44
-_0801513C: .4byte 0x0001601c
-_08015140: .4byte gUnknown_02024DEC
-_08015144: .4byte gUnknown_02024D1E
-_08015148: .4byte 0x00016112
-_0801514C: .4byte 0x00017130
- thumb_func_end bsC_8016D70
-
- thumb_func_start sub_8015150
-sub_8015150: @ 8015150
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- cmp r0, 0xA
- bhi _080151C8
- lsls r0, 2
- ldr r1, _08015168 @ =_0801516C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08015168: .4byte _0801516C
- .align 2, 0
-_0801516C:
- .4byte _08015198
- .4byte _080151A0
- .4byte _080151A8
- .4byte _080151C4
- .4byte _080151C8
- .4byte _080151C4
- .4byte _080151C8
- .4byte _080151B0
- .4byte _080151C8
- .4byte _080151C8
- .4byte _080151B4
-_08015198:
- ldr r0, _0801519C @ =gUnknown_02024C08
- b _080151C6
- .align 2, 0
-_0801519C: .4byte gUnknown_02024C08
-_080151A0:
- ldr r0, _080151A4 @ =gUnknown_02024C07
- b _080151C6
- .align 2, 0
-_080151A4: .4byte gUnknown_02024C07
-_080151A8:
- ldr r0, _080151AC @ =gUnknown_02024C0A
- b _080151C6
- .align 2, 0
-_080151AC: .4byte gUnknown_02024C0A
-_080151B0:
- movs r2, 0
- b _080151C8
-_080151B4:
- ldr r0, _080151BC @ =0x02000000
- ldr r1, _080151C0 @ =0x00016003
- adds r0, r1
- b _080151C6
- .align 2, 0
-_080151BC: .4byte 0x02000000
-_080151C0: .4byte 0x00016003
-_080151C4:
- ldr r0, _080151D0 @ =gUnknown_02024C09
-_080151C6:
- ldrb r2, [r0]
-_080151C8:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080151D0: .4byte gUnknown_02024C09
- thumb_func_end sub_8015150
-
- thumb_func_start sub_80151D4
-sub_80151D4: @ 80151D4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 16
- lsrs r2, 16
- ldr r1, _08015204 @ =gBattleMons
- movs r4, 0x58
- muls r0, r4
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- mov r12, r1
- cmp r0, 0x2E
- bne _08015286
- movs r3, 0
- adds r0, r5, 0
- muls r0, r4
- adds r1, 0xC
- adds r1, r0, r1
- b _08015210
- .align 2, 0
-_08015204: .4byte gBattleMons
-_08015208:
- adds r1, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- bgt _08015216
-_08015210:
- ldrh r0, [r1]
- cmp r0, r2
- bne _08015208
-_08015216:
- cmp r3, 0x4
- beq _08015286
- movs r7, 0x58
- adds r2, r5, 0
- muls r2, r7
- adds r0, r3, r2
- mov r6, r12
- adds r6, 0x24
- adds r1, r0, r6
- ldrb r0, [r1]
- cmp r0, 0
- beq _08015232
- subs r0, 0x1
- strb r0, [r1]
-_08015232:
- mov r0, r12
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08015286
- ldr r1, _08015290 @ =gUnknown_02024CA8
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _08015294 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08015286
- ldr r4, _08015298 @ =gUnknown_02024A60
- strb r5, [r4]
- adds r1, r3, 0
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r4]
- muls r0, r7
- adds r0, r6
- adds r0, r3
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08015286:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08015290: .4byte gUnknown_02024CA8
-_08015294: .4byte gBitTable
-_08015298: .4byte gUnknown_02024A60
- thumb_func_end sub_80151D4
-
- thumb_func_start sub_801529C
-sub_801529C: @ 801529C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x4
- mov r8, r0
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r4, 0
- ldr r0, _080153BC @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- bge _08015344
- ldr r1, _080153C0 @ =gBattleMons
- movs r0, 0x58
- adds r7, r5, 0
- muls r7, r0
- adds r1, 0xC
- mov r10, r1
-_080152D2:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- adds r6, r4, 0x1
- cmp r9, r0
- beq _0801533A
- ldr r0, _080153C0 @ =gBattleMons
- movs r3, 0x58
- adds r1, r4, 0
- muls r1, r3
- adds r1, r0
- adds r1, 0x20
- ldrb r1, [r1]
- adds r4, r0, 0
- cmp r1, 0x2E
- bne _0801533A
- movs r2, 0
- adds r0, r5, 0
- muls r0, r3
- adds r1, r4, 0
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x8F
- lsls r1, 1
- cmp r0, r1
- beq _08015322
- adds r3, r1, 0
- mov r0, r10
- adds r1, r7, r0
-_08015314:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- bgt _08015322
- ldrh r0, [r1]
- cmp r0, r3
- bne _08015314
-_08015322:
- cmp r2, 0x4
- beq _0801533A
- mov r8, r2
- adds r1, r2, r7
- adds r0, r4, 0
- adds r0, 0x24
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0801533A
- subs r0, 0x1
- strb r0, [r1]
-_0801533A:
- adds r4, r6, 0
- ldr r0, _080153BC @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _080152D2
-_08015344:
- mov r1, r8
- cmp r1, 0x4
- beq _080153AC
- ldr r6, _080153C0 @ =gBattleMons
- movs r3, 0x58
- adds r0, r5, 0
- muls r0, r3
- adds r1, r6, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _080153AC
- ldr r1, _080153C4 @ =gUnknown_02024CA8
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _080153C8 @ =gBitTable
- mov r4, r8
- lsls r0, r4, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080153AC
- ldr r4, _080153CC @ =gUnknown_02024A60
- strb r5, [r4]
- mov r1, r8
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r4]
- muls r0, r3
- adds r2, r6, 0
- adds r2, 0x24
- adds r0, r2
- add r0, r8
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080153AC:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080153BC: .4byte gUnknown_02024A68
-_080153C0: .4byte gBattleMons
-_080153C4: .4byte gUnknown_02024CA8
-_080153C8: .4byte gBitTable
-_080153CC: .4byte gUnknown_02024A60
- thumb_func_end sub_801529C
-
- thumb_func_start sub_80153D0
-sub_80153D0: @ 80153D0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r3, r0, 24
- movs r6, 0x4
- movs r1, 0
- ldr r0, _080154C8 @ =gUnknown_02024A68
- mov r8, r0
- ldrb r0, [r0]
- cmp r1, r0
- bge _08015452
- ldr r7, _080154CC @ =gBattleMons
- movs r2, 0x58
- mov r12, r2
- mov r5, r12
- muls r5, r3
- adds r0, r7, 0
- adds r0, 0xC
- adds r2, r5, r0
- mov r10, r2
- mov r9, r5
-_08015402:
- mov r0, r12
- muls r0, r1
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- adds r4, r1, 0x1
- cmp r0, 0x2E
- bne _08015448
- cmp r1, r3
- beq _08015448
- movs r2, 0
- mov r1, r10
- ldrh r0, [r1]
- cmp r0, 0xC3
- beq _08015432
- ldr r1, _080154D0 @ =gUnknown_02024A8C
- add r1, r9
-_08015424:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- bgt _08015432
- ldrh r0, [r1]
- cmp r0, 0xC3
- bne _08015424
-_08015432:
- cmp r2, 0x4
- beq _08015448
- adds r6, r2, 0
- adds r0, r6, r5
- ldr r2, _080154D4 @ =gUnknown_02024AA4
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- beq _08015448
- subs r0, 0x1
- strb r0, [r1]
-_08015448:
- adds r1, r4, 0
- mov r0, r8
- ldrb r0, [r0]
- cmp r1, r0
- blt _08015402
-_08015452:
- cmp r6, 0x4
- beq _080154B6
- ldr r7, _080154CC @ =gBattleMons
- movs r5, 0x58
- adds r0, r3, 0
- muls r0, r5
- adds r1, r7, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _080154B6
- ldr r1, _080154D8 @ =gUnknown_02024CA8
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _080154DC @ =gBitTable
- lsls r0, r6, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080154B6
- ldr r4, _080154E0 @ =gUnknown_02024A60
- strb r3, [r4]
- adds r1, r6, 0
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r4]
- muls r0, r5
- adds r2, r7, 0
- adds r2, 0x24
- adds r0, r2
- adds r0, r6
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080154B6:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080154C8: .4byte gUnknown_02024A68
-_080154CC: .4byte gBattleMons
-_080154D0: .4byte gUnknown_02024A8C
-_080154D4: .4byte gUnknown_02024AA4
-_080154D8: .4byte gUnknown_02024CA8
-_080154DC: .4byte gBitTable
-_080154E0: .4byte gUnknown_02024A60
- thumb_func_end sub_80153D0
-
- thumb_func_start unref_sub_80154E4
-unref_sub_80154E4: @ 80154E4
- push {r4,r5,lr}
- ldr r0, _08015514 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08015524
- movs r2, 0
- ldr r4, _08015518 @ =gUnknown_02024A68
- ldrb r0, [r4]
- cmp r2, r0
- bge _08015542
- ldr r3, _0801551C @ =gUnknown_02024A64
- ldr r5, _08015520 @ =gBitTable
-_08015500:
- ldm r5!, {r1}
- lsls r1, 28
- ldr r0, [r3]
- orrs r0, r1
- str r0, [r3]
- adds r2, 0x1
- ldrb r0, [r4]
- cmp r2, r0
- blt _08015500
- b _08015542
- .align 2, 0
-_08015514: .4byte gUnknown_020239F8
-_08015518: .4byte gUnknown_02024A68
-_0801551C: .4byte gUnknown_02024A64
-_08015520: .4byte gBitTable
-_08015524:
- movs r2, 0
- ldr r4, _08015548 @ =gUnknown_02024A68
- ldrb r0, [r4]
- cmp r2, r0
- bge _08015542
- ldr r3, _0801554C @ =gUnknown_02024A64
- ldr r5, _08015550 @ =gBitTable
-_08015532:
- ldr r0, [r3]
- ldm r5!, {r1}
- orrs r0, r1
- str r0, [r3]
- adds r2, 0x1
- ldrb r0, [r4]
- cmp r2, r0
- blt _08015532
-_08015542:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08015548: .4byte gUnknown_02024A68
-_0801554C: .4byte gUnknown_02024A64
-_08015550: .4byte gBitTable
- thumb_func_end unref_sub_80154E4
-
- thumb_func_start dp01_battle_side_mark_buffer_for_execution
-dp01_battle_side_mark_buffer_for_execution: @ 8015554
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0801557C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08015588
- ldr r2, _08015580 @ =gUnknown_02024A64
- ldr r1, _08015584 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- b _08015598
- .align 2, 0
-_0801557C: .4byte gUnknown_020239F8
-_08015580: .4byte gUnknown_02024A64
-_08015584: .4byte gBitTable
-_08015588:
- ldr r2, _0801559C @ =gUnknown_02024A64
- ldr r1, _080155A0 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- orrs r1, r0
- str r1, [r2]
-_08015598:
- pop {r0}
- bx r0
- .align 2, 0
-_0801559C: .4byte gUnknown_02024A64
-_080155A0: .4byte gBitTable
- thumb_func_end dp01_battle_side_mark_buffer_for_execution
-
- thumb_func_start sub_80155A4
-sub_80155A4: @ 80155A4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r4, 0
- ldr r5, _080155B8 @ =gUnknown_02024A64
- ldr r1, _080155BC @ =gBitTable
- lsls r0, r7, 2
- adds r6, r0, r1
- b _080155CE
- .align 2, 0
-_080155B8: .4byte gUnknown_02024A64
-_080155BC: .4byte gBitTable
-_080155C0:
- lsls r0, r4, 2
- ldr r1, [r6]
- lsls r1, r0
- ldr r0, [r5]
- orrs r0, r1
- str r0, [r5]
- adds r4, 0x1
-_080155CE:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- blt _080155C0
- ldr r2, _080155F0 @ =gUnknown_02024A64
- movs r1, 0x80
- lsls r1, 21
- lsls r1, r7
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080155F0: .4byte gUnknown_02024A64
- thumb_func_end sub_80155A4
-
- thumb_func_start b_cancel_multi_turn_move_maybe
-b_cancel_multi_turn_move_maybe: @ 80155F4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08015644 @ =gBattleMons
- movs r2, 0x58
- adds r3, r0, 0
- muls r3, r2
- adds r1, 0x50
- adds r3, r1
- ldr r1, [r3]
- ldr r2, _08015648 @ =0xffffefff
- ands r1, r2
- ldr r2, _0801564C @ =0xfffff3ff
- ands r1, r2
- movs r2, 0x71
- negs r2, r2
- ands r1, r2
- ldr r2, _08015650 @ =0xfffffcff
- ands r1, r2
- str r1, [r3]
- ldr r1, _08015654 @ =gUnknown_02024C98
- lsls r2, r0, 2
- adds r2, r1
- ldr r1, [r2]
- ldr r3, _08015658 @ =0xfffbff3f
- ands r1, r3
- str r1, [r2]
- ldr r2, _0801565C @ =gUnknown_02024CA8
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x11]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x11]
- movs r0, 0
- strb r0, [r1, 0x10]
- bx lr
- .align 2, 0
-_08015644: .4byte gBattleMons
-_08015648: .4byte 0xffffefff
-_0801564C: .4byte 0xfffff3ff
-_08015650: .4byte 0xfffffcff
-_08015654: .4byte gUnknown_02024C98
-_08015658: .4byte 0xfffbff3f
-_0801565C: .4byte gUnknown_02024CA8
- thumb_func_end b_cancel_multi_turn_move_maybe
-
- thumb_func_start sub_8015660
-sub_8015660: @ 8015660
- push {lr}
- lsls r0, 24
- ldr r1, _080156AC @ =gUnknown_02024D28
- lsrs r0, 20
- adds r1, r0, r1
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- bne _080156A6
- ldrb r2, [r1, 0x1]
- lsls r0, r2, 30
- cmp r0, 0
- blt _080156A6
- lsls r0, r2, 26
- cmp r0, 0
- blt _080156A6
- lsls r0, r2, 25
- cmp r0, 0
- blt _080156A6
- lsrs r0, r2, 7
- cmp r0, 0
- bne _080156A6
- ldrb r1, [r1, 0x2]
- lsls r0, r1, 31
- cmp r0, 0
- bne _080156A6
- lsls r0, r1, 30
- cmp r0, 0
- blt _080156A6
- lsls r0, r1, 29
- cmp r0, 0
- blt _080156A6
- lsls r0, r2, 31
- cmp r0, 0
- beq _080156B0
-_080156A6:
- movs r0, 0x1
- b _080156B2
- .align 2, 0
-_080156AC: .4byte gUnknown_02024D28
-_080156B0:
- movs r0, 0
-_080156B2:
- pop {r1}
- bx r1
- thumb_func_end sub_8015660
-
- thumb_func_start b_std_message
-b_std_message: @ 80156B8
- push {r4,lr}
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- ldr r4, _080156D8 @ =gUnknown_02024A60
- strb r1, [r4]
- movs r0, 0
- adds r1, r2, 0
- bl dp01_build_cmdbuf_x10_TODO
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080156D8: .4byte gUnknown_02024A60
- thumb_func_end b_std_message
-
- thumb_func_start sub_80156DC
-sub_80156DC: @ 80156DC
- push {r4-r6,lr}
- movs r3, 0
- ldr r0, _08015730 @ =gUnknown_02024DEA
- strb r3, [r0]
- strb r3, [r0, 0x1]
- movs r1, 0
- ldr r0, _08015734 @ =gUnknown_02024A68
- ldrb r2, [r0]
- adds r6, r0, 0
- cmp r1, r2
- bge _0801570A
- ldr r5, _08015738 @ =gBitTable
- adds r4, r2, 0
- ldr r2, _0801573C @ =gUnknown_02024A6A
-_080156F8:
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r5
- ldr r0, [r0]
- orrs r3, r0
- adds r2, 0x4
- adds r1, 0x2
- cmp r1, r4
- blt _080156F8
-_0801570A:
- movs r1, 0x1
- adds r2, r6, 0
- ldrb r0, [r2]
- cmp r1, r0
- bge _0801572A
- ldr r5, _08015730 @ =gUnknown_02024DEA
- movs r4, 0x2
-_08015718:
- adds r0, r1, 0
- ands r0, r4
- asrs r0, 1
- adds r0, r5
- strb r3, [r0]
- adds r1, 0x2
- ldrb r0, [r2]
- cmp r1, r0
- blt _08015718
-_0801572A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08015730: .4byte gUnknown_02024DEA
-_08015734: .4byte gUnknown_02024A68
-_08015738: .4byte gBitTable
-_0801573C: .4byte gUnknown_02024A6A
- thumb_func_end sub_80156DC
-
- thumb_func_start sub_8015740
-sub_8015740: @ 8015740
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080157A4
- movs r0, 0x2
- ands r0, r5
- lsls r0, 24
- lsrs r0, 25
- mov r12, r0
- ldr r1, _080157B0 @ =gUnknown_02024DEA
- adds r0, r1
- strb r4, [r0]
- adds r5, r4, 0
- ldr r0, _080157B4 @ =gUnknown_02024A68
- ldrb r2, [r0]
- mov r8, r1
- cmp r4, r2
- bge _0801579E
- ldr r0, _080157B8 @ =gUnknown_02024C0C
- ldrb r7, [r0]
- ldr r1, _080157BC @ =gBitTable
- adds r6, r2, 0
- ldr r3, _080157C0 @ =gUnknown_02024A6A
- adds r2, r1, 0
-_08015782:
- ldr r0, [r2]
- ands r0, r7
- cmp r0, 0
- bne _08015794
- ldrh r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- orrs r4, r0
-_08015794:
- adds r3, 0x4
- adds r2, 0x8
- adds r5, 0x2
- cmp r5, r6
- blt _08015782
-_0801579E:
- mov r0, r12
- add r0, r8
- strb r4, [r0]
-_080157A4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080157B0: .4byte gUnknown_02024DEA
-_080157B4: .4byte gUnknown_02024A68
-_080157B8: .4byte gUnknown_02024C0C
-_080157BC: .4byte gBitTable
-_080157C0: .4byte gUnknown_02024A6A
- thumb_func_end sub_8015740
-
- thumb_func_start sub_80157C4
-sub_80157C4: @ 80157C4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080157E0
- adds r0, r4, 0
- bl sub_8015740
- b _08015816
-_080157E0:
- movs r3, 0x1
- ldr r5, _0801581C @ =gUnknown_02024A68
- ldrb r0, [r5]
- cmp r3, r0
- bge _08015816
- ldr r0, _08015820 @ =gUnknown_02024DEA
- mov r12, r0
- movs r7, 0x2
- ldr r6, _08015824 @ =gBitTable
- ldr r1, _08015828 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r4, r0, r1
-_080157F8:
- adds r2, r3, 0
- ands r2, r7
- asrs r2, 1
- add r2, r12
- ldrh r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- adds r3, 0x1
- ldrb r0, [r5]
- cmp r3, r0
- blt _080157F8
-_08015816:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801581C: .4byte gUnknown_02024A68
-_08015820: .4byte gUnknown_02024DEA
-_08015824: .4byte gBitTable
-_08015828: .4byte gUnknown_02024A6A
- thumb_func_end sub_80157C4
-
- thumb_func_start b_movescr_stack_push
-b_movescr_stack_push: @ 801582C
- push {r4,lr}
- ldr r4, _08015848 @ =0x02017110
- adds r3, r4, 0
- adds r3, 0x20
- ldrb r1, [r3]
- adds r2, r1, 0x1
- strb r2, [r3]
- lsls r1, 24
- lsrs r1, 22
- adds r1, r4
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08015848: .4byte 0x02017110
- thumb_func_end b_movescr_stack_push
-
- thumb_func_start b_movescr_stack_push_cursor
-b_movescr_stack_push_cursor: @ 801584C
- ldr r3, _08015868 @ =0x02017110
- adds r2, r3, 0
- adds r2, 0x20
- ldrb r0, [r2]
- adds r1, r0, 0x1
- strb r1, [r2]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r3
- ldr r1, _0801586C @ =gUnknown_02024C10
- ldr r1, [r1]
- str r1, [r0]
- bx lr
- .align 2, 0
-_08015868: .4byte 0x02017110
-_0801586C: .4byte gUnknown_02024C10
- thumb_func_end b_movescr_stack_push_cursor
-
- thumb_func_start b_movescr_stack_pop_cursor
-b_movescr_stack_pop_cursor: @ 8015870
- ldr r3, _0801588C @ =gUnknown_02024C10
- ldr r2, _08015890 @ =0x02017110
- adds r1, r2, 0
- adds r1, 0x20
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- str r0, [r3]
- bx lr
- .align 2, 0
-_0801588C: .4byte gUnknown_02024C10
-_08015890: .4byte 0x02017110
- thumb_func_end b_movescr_stack_pop_cursor
-
- thumb_func_start sub_8015894
-sub_8015894: @ 8015894
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- ldr r2, _080159AC @ =gBattleMons
- ldr r1, _080159B0 @ =gUnknown_02024260
- ldr r5, _080159B4 @ =gUnknown_02024A60
- ldrb r3, [r5]
- lsls r0, r3, 9
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x58
- muls r1, r3
- adds r0, r1
- adds r2, 0xC
- adds r0, r2
- ldrh r4, [r0]
- lsls r0, r3, 1
- ldr r2, _080159B8 @ =0x020160e8
- adds r0, r2
- mov r8, r0
- ldr r1, _080159BC @ =gUnknown_02024CA8
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x4]
- cmp r0, r4
- bne _080158EE
- cmp r4, 0
- beq _080158EE
- adds r0, r2, 0
- subs r0, 0xE5
- strb r3, [r0]
- ldr r0, _080159C0 @ =gUnknown_02024BE6
- strh r4, [r0]
- ldr r1, _080159C4 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080159C8 @ =gUnknown_081D9144
- str r1, [r0]
- movs r6, 0x1
-_080158EE:
- ldr r1, _080159CC @ =gUnknown_02024C34
- ldr r5, _080159B4 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- bne _0801592A
- cmp r4, 0xA5
- beq _0801592A
- ldr r1, _080159AC @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bge _0801592A
- adds r0, r2, 0
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _080159C4 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080159D0 @ =gUnknown_081D937C
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0801592A:
- ldr r2, _080159BC @ =gUnknown_02024CA8
- ldr r3, _080159B4 @ =gUnknown_02024A60
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x13]
- lsls r0, 28
- cmp r0, 0
- beq _08015966
- ldr r0, _080159D4 @ =gBattleMoves
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08015966
- ldr r0, _080159C0 @ =gUnknown_02024BE6
- strh r4, [r0]
- ldr r1, _080159C4 @ =gUnknown_02024C1C
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080159D8 @ =gUnknown_081D938B
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08015966:
- ldr r5, _080159B4 @ =gUnknown_02024A60
- ldrb r0, [r5]
- adds r1, r4, 0
- bl sub_8015D5C
- lsls r0, 24
- cmp r0, 0
- beq _0801598C
- ldr r0, _080159C0 @ =gUnknown_02024BE6
- strh r4, [r0]
- ldr r1, _080159C4 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080159DC @ =gUnknown_081D9464
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0801598C:
- ldr r1, _080159AC @ =gBattleMons
- ldrb r2, [r5]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _080159E4
- ldr r1, _080159E0 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r3, [r0, 0x7]
- b _080159EE
- .align 2, 0
-_080159AC: .4byte gBattleMons
-_080159B0: .4byte gUnknown_02024260
-_080159B4: .4byte gUnknown_02024A60
-_080159B8: .4byte 0x020160e8
-_080159BC: .4byte gUnknown_02024CA8
-_080159C0: .4byte gUnknown_02024BE6
-_080159C4: .4byte gUnknown_02024C1C
-_080159C8: .4byte gUnknown_081D9144
-_080159CC: .4byte gUnknown_02024C34
-_080159D0: .4byte gUnknown_081D937C
-_080159D4: .4byte gBattleMoves
-_080159D8: .4byte gUnknown_081D938B
-_080159DC: .4byte gUnknown_081D9464
-_080159E0: .4byte gEnigmaBerries
-_080159E4:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r3, r0, 24
-_080159EE:
- ldr r2, _08015A70 @ =gUnknown_02024C0B
- ldr r1, _08015A74 @ =gUnknown_02024A60
- ldrb r0, [r1]
- strb r0, [r2]
- ldr r7, _08015A78 @ =gBattleMons
- adds r5, r1, 0
- cmp r3, 0x1D
- bne _08015A36
- mov r0, r8
- ldrh r2, [r0]
- adds r1, r2, 0
- cmp r1, 0
- beq _08015A36
- ldr r0, _08015A7C @ =0x0000ffff
- cmp r1, r0
- beq _08015A36
- cmp r1, r4
- beq _08015A36
- ldr r0, _08015A80 @ =gUnknown_02024BE6
- strh r2, [r0]
- ldr r2, _08015A84 @ =gUnknown_02024C04
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- strh r0, [r2]
- ldr r1, _08015A88 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08015A8C @ =gUnknown_081D9AC2
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08015A36:
- ldr r0, _08015A90 @ =gUnknown_02024260
- ldrb r2, [r5]
- lsls r1, r2, 9
- adds r0, 0x2
- adds r1, r0
- movs r0, 0x58
- muls r0, r2
- ldrb r1, [r1]
- adds r0, r1
- adds r1, r7, 0
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08015A64
- ldr r1, _08015A88 @ =gUnknown_02024C1C
- lsls r0, r2, 2
- adds r0, r1
- ldr r1, _08015A94 @ =gUnknown_081D9369
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08015A64:
- adds r0, r6, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08015A70: .4byte gUnknown_02024C0B
-_08015A74: .4byte gUnknown_02024A60
-_08015A78: .4byte gBattleMons
-_08015A7C: .4byte 0x0000ffff
-_08015A80: .4byte gUnknown_02024BE6
-_08015A84: .4byte gUnknown_02024C04
-_08015A88: .4byte gUnknown_02024C1C
-_08015A8C: .4byte gUnknown_081D9AC2
-_08015A90: .4byte gUnknown_02024260
-_08015A94: .4byte gUnknown_081D9369
- thumb_func_end sub_8015894
-
- thumb_func_start sub_8015A98
-sub_8015A98: @ 8015A98
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r3, r2, 24
- lsls r1, r7, 1
- ldr r0, _08015AD8 @ =0x020160e8
- adds r1, r0
- str r1, [sp, 0x4]
- ldr r1, _08015ADC @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08015AE4
- ldr r2, _08015AE0 @ =gEnigmaBerries
- lsls r1, r7, 3
- subs r0, r1, r7
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x7]
- str r0, [sp]
- b _08015AF6
- .align 2, 0
-_08015AD8: .4byte 0x020160e8
-_08015ADC: .4byte gBattleMons
-_08015AE0: .4byte gEnigmaBerries
-_08015AE4:
- ldrh r0, [r1, 0x2E]
- str r3, [sp, 0x14]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, r7, 3
- ldr r3, [sp, 0x14]
-_08015AF6:
- ldr r0, _08015C70 @ =gUnknown_02024C0B
- strb r7, [r0]
- movs r0, 0
- mov r9, r0
- lsls r2, r7, 1
- str r2, [sp, 0xC]
- ldr r5, _08015C74 @ =gUnknown_02024CA8
- mov r12, r5
- ldr r0, _08015C78 @ =gBattleMons
- movs r2, 0x58
- adds r6, r7, 0
- muls r6, r2
- str r6, [sp, 0x8]
- ldr r2, _08015C7C @ =gUnknown_02024A8C
- adds r5, r6, r2
- movs r6, 0
- str r6, [sp, 0x10]
- mov r10, r0
- subs r0, r1, r7
- lsls r0, 2
- mov r8, r0
- ldr r6, _08015C80 @ =gBitTable
-_08015B22:
- ldrh r0, [r5]
- cmp r0, 0
- bne _08015B38
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _08015B38
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015B38:
- ldr r0, [sp, 0x8]
- add r0, r9
- mov r1, r10
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08015B58
- movs r0, 0x2
- ands r0, r3
- cmp r0, 0
- beq _08015B58
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015B58:
- mov r1, r8
- add r1, r12
- ldrh r0, [r5]
- ldrh r1, [r1, 0x4]
- cmp r0, r1
- bne _08015B74
- movs r0, 0x4
- ands r0, r3
- cmp r0, 0
- beq _08015B74
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015B74:
- movs r0, 0x58
- adds r2, r7, 0
- muls r2, r0
- ldr r1, [sp, 0x10]
- adds r0, r1, r2
- ldr r1, _08015C7C @ =gUnknown_02024A8C
- adds r0, r1
- mov r12, r0
- ldr r1, _08015C84 @ =gUnknown_02024C34
- ldr r0, [sp, 0xC]
- adds r1, r0, r1
- str r1, [sp, 0x18]
- mov r1, r12
- ldrh r1, [r1]
- mov r12, r1
- ldr r0, [sp, 0x18]
- ldrh r0, [r0]
- cmp r12, r0
- bne _08015BB6
- movs r0, 0x8
- ands r0, r3
- cmp r0, 0
- beq _08015BB6
- mov r0, r10
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- bge _08015BB6
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015BB6:
- ldr r0, _08015C74 @ =gUnknown_02024CA8
- add r0, r8
- ldrb r0, [r0, 0x13]
- lsls r0, 28
- cmp r0, 0
- beq _08015BE4
- movs r0, 0x10
- ands r0, r3
- cmp r0, 0
- beq _08015BE4
- ldr r2, _08015C88 @ =gBattleMoves
- ldrh r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _08015BE4
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015BE4:
- ldrh r1, [r5]
- adds r0, r7, 0
- str r3, [sp, 0x14]
- bl sub_8015D5C
- lsls r0, 24
- ldr r3, [sp, 0x14]
- cmp r0, 0
- beq _08015C06
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _08015C06
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015C06:
- ldr r1, _08015C74 @ =gUnknown_02024CA8
- mov r0, r8
- adds r2, r0, r1
- ldrb r0, [r2, 0xE]
- lsls r0, 28
- mov r12, r1
- cmp r0, 0
- beq _08015C26
- ldrh r0, [r2, 0x6]
- ldrh r1, [r5]
- cmp r0, r1
- beq _08015C26
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015C26:
- ldr r2, [sp]
- cmp r2, 0x1D
- bne _08015C48
- ldr r0, [sp, 0x4]
- ldrh r1, [r0]
- cmp r1, 0
- beq _08015C48
- ldr r0, _08015C8C @ =0x0000ffff
- cmp r1, r0
- beq _08015C48
- ldrh r2, [r5]
- cmp r1, r2
- beq _08015C48
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015C48:
- adds r6, 0x4
- adds r5, 0x2
- ldr r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x10]
- movs r1, 0x1
- add r9, r1
- mov r2, r9
- cmp r2, 0x3
- bgt _08015C5E
- b _08015B22
-_08015C5E:
- adds r0, r4, 0
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08015C70: .4byte gUnknown_02024C0B
-_08015C74: .4byte gUnknown_02024CA8
-_08015C78: .4byte gBattleMons
-_08015C7C: .4byte gUnknown_02024A8C
-_08015C80: .4byte gBitTable
-_08015C84: .4byte gUnknown_02024C34
-_08015C88: .4byte gBattleMoves
-_08015C8C: .4byte 0x0000ffff
- thumb_func_end sub_8015A98
-
- thumb_func_start sub_8015C90
-sub_8015C90: @ 8015C90
- push {r4-r6,lr}
- ldr r5, _08015CFC @ =gUnknown_02024A60
- ldrb r0, [r5]
- movs r1, 0
- movs r2, 0xFF
- bl sub_8015A98
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xF
- bne _08015D38
- ldr r0, _08015D00 @ =gUnknown_02024D28
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _08015D04 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08015D08 @ =gUnknown_081D9365
- str r1, [r0]
- ldr r0, _08015D0C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08015D14
- ldrb r0, [r5]
- bl battle_get_per_side_status
- adds r4, r0, 0
- bl Random
- movs r1, 0x1
- eors r4, r1
- movs r1, 0x2
- ands r1, r0
- orrs r4, r1
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl battle_get_side_with_given_state
- ldr r2, _08015D10 @ =gUnknown_02024260
- ldrb r1, [r5]
- lsls r1, 9
- adds r2, 0x3
- adds r1, r2
- b _08015D48
- .align 2, 0
-_08015CFC: .4byte gUnknown_02024A60
-_08015D00: .4byte gUnknown_02024D28
-_08015D04: .4byte gUnknown_02024C1C
-_08015D08: .4byte gUnknown_081D9365
-_08015D0C: .4byte gUnknown_020239F8
-_08015D10: .4byte gUnknown_02024260
-_08015D14:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r2, _08015D34 @ =gUnknown_02024260
- ldrb r1, [r5]
- lsls r1, 9
- adds r2, 0x3
- adds r1, r2
- b _08015D48
- .align 2, 0
-_08015D34: .4byte gUnknown_02024260
-_08015D38:
- ldr r0, _08015D58 @ =gUnknown_02024D28
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
-_08015D48:
- strb r0, [r1]
- movs r0, 0
- cmp r6, 0xF
- bne _08015D52
- movs r0, 0x1
-_08015D52:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08015D58: .4byte gUnknown_02024D28
- thumb_func_end sub_8015C90
-
- thumb_func_start sub_8015D5C
-sub_8015D5C: @ 8015D5C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- movs r6, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r4, 0
- ldr r0, _08015DF0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r6, r0
- bge _08015DE0
- ldr r7, _08015DF4 @ =gUnknown_02024A8C
- mov r8, r7
-_08015D86:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- adds r3, r4, 0x1
- cmp r9, r0
- beq _08015DD6
- ldr r1, _08015DF8 @ =gUnknown_02024C98
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _08015DD6
- movs r2, 0
- movs r0, 0x58
- adds r1, r4, 0
- muls r1, r0
- adds r0, r1, r7
- ldrh r0, [r0]
- cmp r5, r0
- beq _08015DCC
- mov r4, r8
- adds r0, r1, r4
-_08015DBE:
- adds r0, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- bgt _08015DD6
- ldrh r1, [r0]
- cmp r5, r1
- bne _08015DBE
-_08015DCC:
- cmp r2, 0x3
- bgt _08015DD6
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08015DD6:
- adds r4, r3, 0
- ldr r0, _08015DF0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08015D86
-_08015DE0:
- adds r0, r6, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08015DF0: .4byte gUnknown_02024A68
-_08015DF4: .4byte gUnknown_02024A8C
-_08015DF8: .4byte gUnknown_02024C98
- thumb_func_end sub_8015D5C
-
- thumb_func_start sub_8015DFC
-sub_8015DFC: @ 8015DFC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
- mov r9, r0
- ldr r1, _08015EA0 @ =gUnknown_02024C07
- mov r2, r9
- strb r2, [r1]
- ldr r0, _08015EA4 @ =gUnknown_02024A68
- ldrb r4, [r0]
- adds r6, r1, 0
- mov r10, r0
- ldr r7, _08015EA8 @ =gUnknown_02024C08
- ldr r3, _08015EAC @ =0x02000000
- mov r12, r3
- cmp r9, r4
- bcs _08015E50
- ldr r2, _08015EB0 @ =gUnknown_02024C0C
- ldrb r1, [r2]
- ldr r5, _08015EB4 @ =gBitTable
- ldr r0, [r5]
- ands r1, r0
- cmp r1, 0
- beq _08015E50
- adds r3, r6, 0
-_08015E32:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcs _08015E50
- ldrb r0, [r2]
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r5
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _08015E32
-_08015E50:
- movs r0, 0
- strb r0, [r7]
- mov r0, r10
- ldrb r4, [r0]
- cmp r4, 0
- beq _08015E8A
- ldr r2, _08015EB0 @ =gUnknown_02024C0C
- ldrb r1, [r2]
- ldr r5, _08015EB4 @ =gBitTable
- ldr r0, [r5]
- ands r1, r0
- cmp r1, 0
- beq _08015E8A
- adds r3, r7, 0
-_08015E6C:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcs _08015E8A
- ldrb r0, [r2]
- ldrb r1, [r7]
- lsls r1, 2
- adds r1, r5
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _08015E6C
-_08015E8A:
- ldr r0, _08015EB8 @ =0x0001600e
- add r0, r12
- ldrb r0, [r0]
- cmp r0, 0xA
- bls _08015E96
- b _0801652A
-_08015E96:
- lsls r0, 2
- ldr r1, _08015EBC @ =_08015EC0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08015EA0: .4byte gUnknown_02024C07
-_08015EA4: .4byte gUnknown_02024A68
-_08015EA8: .4byte gUnknown_02024C08
-_08015EAC: .4byte 0x02000000
-_08015EB0: .4byte gUnknown_02024C0C
-_08015EB4: .4byte gBitTable
-_08015EB8: .4byte 0x0001600e
-_08015EBC: .4byte _08015EC0
- .align 2, 0
-_08015EC0:
- .4byte _08015EEC
- .4byte _08015F74
- .4byte _08016034
- .4byte _080160F4
- .4byte _080161C8
- .4byte _08016274
- .4byte _08016324
- .4byte _080163A8
- .4byte _08016420
- .4byte _08016494
- .4byte _08016520
-_08015EEC:
- movs r5, 0
- ldr r1, _08015F0C @ =gUnknown_02024A68
- mov r10, r1
- ldrb r2, [r1]
- cmp r5, r2
- bge _08015F06
- ldr r2, _08015F10 @ =gUnknown_02024A7A
-_08015EFA:
- adds r0, r5, r2
- strb r5, [r0]
- adds r5, 0x1
- ldrb r3, [r1]
- cmp r5, r3
- blt _08015EFA
-_08015F06:
- movs r5, 0
- b _08015F54
- .align 2, 0
-_08015F0C: .4byte gUnknown_02024A68
-_08015F10: .4byte gUnknown_02024A7A
-_08015F14:
- adds r4, r5, 0x1
- adds r6, r4, 0
- ldrb r1, [r1]
- cmp r6, r1
- bge _08015F52
- ldr r7, _08016004 @ =gUnknown_02024A7A
- ldr r0, _08016008 @ =gUnknown_02024A68
- mov r10, r0
- lsls r1, r5, 24
- mov r8, r1
-_08015F28:
- adds r0, r5, r7
- ldrb r0, [r0]
- adds r1, r4, r7
- ldrb r1, [r1]
- movs r2, 0
- bl b_first_side
- lsls r0, 24
- cmp r0, 0
- beq _08015F48
- lsls r1, r4, 24
- lsrs r1, 24
- mov r2, r8
- lsrs r0, r2, 24
- bl sub_8012FBC
-_08015F48:
- adds r4, 0x1
- ldr r0, _08016008 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08015F28
-_08015F52:
- adds r5, r6, 0
-_08015F54:
- mov r1, r10
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r5, r0
- blt _08015F14
- ldr r1, _0801600C @ =0x02000000
- ldr r3, _08016010 @ =0x0001600e
- adds r2, r1, r3
- ldrb r0, [r2]
- adds r0, 0x1
- movs r3, 0
- strb r0, [r2]
- ldr r2, _08016014 @ =0x000160fc
- adds r0, r1, r2
- strb r3, [r0]
- mov r12, r1
-_08015F74:
- ldr r1, _08016014 @ =0x000160fc
- add r1, r12
- ldrb r0, [r1]
- cmp r0, 0x1
- bls _08015F80
- b _08016236
-_08015F80:
- ldr r3, _08016018 @ =gUnknown_02024A60
- mov r8, r3
- adds r6, r1, 0
- movs r7, 0
- ldr r5, _0801601C @ =gUnknown_030041C0
-_08015F8A:
- ldr r0, _08016020 @ =gUnknown_02024C07
- ldrb r4, [r6]
- strb r4, [r0]
- mov r0, r8
- strb r4, [r0]
- ldr r0, _08016024 @ =gUnknown_02024C7A
- lsls r2, r4, 1
- adds r3, r2, r0
- ldrh r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08015FE8
- ldr r0, _08016028 @ =gUnknown_02024C80
- adds r1, r2, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- movs r4, 0xFF
- lsls r0, 24
- cmp r0, 0
- bne _08015FE8
- ldrh r0, [r3]
- ldr r2, _0801602C @ =0x0000fffe
- adds r1, r2, 0
- ands r0, r1
- strh r0, [r3]
- ldr r0, _08016030 @ =gUnknown_081D9030
- bl b_call_bc_move_exec
- movs r0, 0xFD
- strb r0, [r5]
- movs r0, 0x2
- strb r0, [r5, 0x1]
- movs r0, 0x73
- strb r0, [r5, 0x2]
- strb r7, [r5, 0x3]
- ldrb r0, [r5, 0x4]
- orrs r0, r4
- strb r0, [r5, 0x4]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08015FE8:
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- ldr r3, _0801600C @ =0x02000000
- mov r12, r3
- mov r1, r9
- cmp r1, 0
- beq _08015FFA
- b _08016532
-_08015FFA:
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _08015F8A
- b _08016236
- .align 2, 0
-_08016004: .4byte gUnknown_02024A7A
-_08016008: .4byte gUnknown_02024A68
-_0801600C: .4byte 0x02000000
-_08016010: .4byte 0x0001600e
-_08016014: .4byte 0x000160fc
-_08016018: .4byte gUnknown_02024A60
-_0801601C: .4byte gUnknown_030041C0
-_08016020: .4byte gUnknown_02024C07
-_08016024: .4byte gUnknown_02024C7A
-_08016028: .4byte gUnknown_02024C80
-_0801602C: .4byte 0x0000fffe
-_08016030: .4byte gUnknown_081D9030
-_08016034:
- ldr r1, _080160CC @ =0x000160fc
- add r1, r12
- ldrb r0, [r1]
- cmp r0, 0x1
- bls _08016040
- b _08016182
-_08016040:
- adds r7, r1, 0
- movs r3, 0x2
- mov r10, r3
- movs r0, 0
- mov r8, r0
- ldr r5, _080160D0 @ =gUnknown_030041C0
-_0801604C:
- ldr r0, _080160D4 @ =gUnknown_02024C07
- ldrb r4, [r7]
- strb r4, [r0]
- ldr r1, _080160D8 @ =gUnknown_02024A60
- strb r4, [r1]
- ldr r0, _080160DC @ =gUnknown_02024C7A
- lsls r2, r4, 1
- adds r3, r2, r0
- ldrh r1, [r3]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080160B0
- ldr r0, _080160E0 @ =gUnknown_02024C80
- adds r1, r2, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- subs r0, 0x1
- strb r0, [r1, 0x1]
- movs r6, 0xFF
- lsls r0, 24
- cmp r0, 0
- bne _080160B0
- ldrh r0, [r3]
- ldr r2, _080160E4 @ =0x0000fffd
- adds r1, r2, 0
- ands r0, r1
- strh r0, [r3]
- ldr r0, _080160E8 @ =gUnknown_081D9030
- bl b_call_bc_move_exec
- ldr r0, _080160EC @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- movs r0, 0xFD
- strb r0, [r5]
- mov r3, r10
- strb r3, [r5, 0x1]
- movs r0, 0x71
- strb r0, [r5, 0x2]
- mov r0, r8
- strb r0, [r5, 0x3]
- ldrb r0, [r5, 0x4]
- orrs r0, r6
- strb r0, [r5, 0x4]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080160B0:
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- ldr r1, _080160F0 @ =0x02000000
- mov r12, r1
- mov r2, r9
- cmp r2, 0
- beq _080160C2
- b _08016532
-_080160C2:
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0801604C
- b _08016182
- .align 2, 0
-_080160CC: .4byte 0x000160fc
-_080160D0: .4byte gUnknown_030041C0
-_080160D4: .4byte gUnknown_02024C07
-_080160D8: .4byte gUnknown_02024A60
-_080160DC: .4byte gUnknown_02024C7A
-_080160E0: .4byte gUnknown_02024C80
-_080160E4: .4byte 0x0000fffd
-_080160E8: .4byte gUnknown_081D9030
-_080160EC: .4byte gUnknown_02024D1E
-_080160F0: .4byte 0x02000000
-_080160F4:
- ldr r1, _0801619C @ =0x000160fc
- add r1, r12
- ldrb r0, [r1]
- cmp r0, 0x1
- bhi _08016182
- ldr r0, _080161A0 @ =gUnknown_02024A60
- mov r10, r0
- adds r7, r1, 0
- movs r1, 0
- mov r8, r1
- ldr r5, _080161A4 @ =gUnknown_030041C0
-_0801610A:
- ldr r0, _080161A8 @ =gUnknown_02024C07
- ldrb r4, [r7]
- strb r4, [r0]
- mov r2, r10
- strb r4, [r2]
- ldr r1, _080161AC @ =gUnknown_02024C80
- lsls r3, r4, 1
- adds r0, r3, r4
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- beq _08016168
- subs r0, 0x1
- strb r0, [r1, 0x2]
- movs r6, 0xFF
- lsls r0, 24
- cmp r0, 0
- bne _08016168
- ldr r2, _080161B0 @ =gUnknown_02024C7A
- adds r2, r3, r2
- ldrh r0, [r2]
- ldr r3, _080161B4 @ =0x0000feff
- adds r1, r3, 0
- ands r0, r1
- strh r0, [r2]
- ldr r0, _080161B8 @ =gUnknown_081D9030
- bl b_call_bc_move_exec
- ldr r0, _080161BC @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- movs r0, 0xFD
- strb r0, [r5]
- movs r0, 0x2
- strb r0, [r5, 0x1]
- movs r0, 0x36
- strb r0, [r5, 0x2]
- mov r0, r8
- strb r0, [r5, 0x3]
- ldrb r0, [r5, 0x4]
- orrs r0, r6
- strb r0, [r5, 0x4]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016168:
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- ldr r1, _080161C0 @ =0x02000000
- mov r12, r1
- mov r2, r9
- cmp r2, 0
- beq _0801617A
- b _08016532
-_0801617A:
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0801610A
-_08016182:
- mov r3, r9
- cmp r3, 0
- beq _0801618A
- b _08016532
-_0801618A:
- ldr r0, _080161C4 @ =0x0001600e
- add r0, r12
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, _0801619C @ =0x000160fc
- add r0, r12
- strb r3, [r0]
- b _0801652A
- .align 2, 0
-_0801619C: .4byte 0x000160fc
-_080161A0: .4byte gUnknown_02024A60
-_080161A4: .4byte gUnknown_030041C0
-_080161A8: .4byte gUnknown_02024C07
-_080161AC: .4byte gUnknown_02024C80
-_080161B0: .4byte gUnknown_02024C7A
-_080161B4: .4byte 0x0000feff
-_080161B8: .4byte gUnknown_081D9030
-_080161BC: .4byte gUnknown_02024D1E
-_080161C0: .4byte 0x02000000
-_080161C4: .4byte 0x0001600e
-_080161C8:
- ldr r1, _08016250 @ =0x000160fc
- add r1, r12
- ldrb r0, [r1]
- cmp r0, 0x1
- bhi _08016236
- ldr r7, _08016254 @ =gUnknown_02024A60
- adds r5, r1, 0
- ldr r6, _08016258 @ =gUnknown_02024C07
-_080161D8:
- ldrb r4, [r5]
- strb r4, [r6]
- strb r4, [r7]
- ldr r0, _0801625C @ =gUnknown_02024C7A
- lsls r2, r4, 1
- adds r3, r2, r0
- ldrh r1, [r3]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801621C
- ldr r0, _08016260 @ =gUnknown_02024C80
- adds r1, r2, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x7]
- subs r0, 0x1
- strb r0, [r1, 0x7]
- lsls r0, 24
- cmp r0, 0
- bne _0801621C
- ldrh r0, [r3]
- ldr r2, _08016264 @ =0x0000ffdf
- adds r1, r2, 0
- ands r0, r1
- strh r0, [r3]
- ldr r0, _08016268 @ =gUnknown_081D9041
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801621C:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ldr r3, _0801626C @ =0x02000000
- mov r12, r3
- mov r1, r9
- cmp r1, 0
- beq _0801622E
- b _08016532
-_0801622E:
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _080161D8
-_08016236:
- mov r2, r9
- cmp r2, 0
- beq _0801623E
- b _08016532
-_0801623E:
- ldr r0, _08016270 @ =0x0001600e
- add r0, r12
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, _08016250 @ =0x000160fc
- add r0, r12
- strb r2, [r0]
- b _0801652A
- .align 2, 0
-_08016250: .4byte 0x000160fc
-_08016254: .4byte gUnknown_02024A60
-_08016258: .4byte gUnknown_02024C07
-_0801625C: .4byte gUnknown_02024C7A
-_08016260: .4byte gUnknown_02024C80
-_08016264: .4byte 0x0000ffdf
-_08016268: .4byte gUnknown_081D9041
-_0801626C: .4byte 0x02000000
-_08016270: .4byte 0x0001600e
-_08016274:
- ldr r2, _080162FC @ =0x000160fc
- add r2, r12
- ldr r1, _08016300 @ =gUnknown_02024A68
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _080162E8
- ldr r5, _08016304 @ =gUnknown_02024A60
- adds r4, r2, 0
- ldr r6, _08016308 @ =gUnknown_02024DDC
-_08016288:
- ldr r1, _0801630C @ =gUnknown_02024A7A
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r5]
- ldrb r0, [r5]
- adds r1, r0, r6
- ldrb r0, [r1]
- cmp r0, 0
- beq _080162CA
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _080162CA
- ldr r1, _08016310 @ =gBattleMons
- ldrb r2, [r5]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _080162CA
- ldr r0, _08016314 @ =gUnknown_02024C08
- strb r2, [r0]
- ldr r0, _08016318 @ =gUnknown_081D939A
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080162CA:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r3, _0801631C @ =0x02000000
- mov r12, r3
- mov r1, r9
- cmp r1, 0
- beq _080162DC
- b _08016532
-_080162DC:
- ldr r1, _08016300 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08016288
-_080162E8:
- mov r2, r9
- cmp r2, 0
- beq _080162F0
- b _08016532
-_080162F0:
- ldr r1, _08016320 @ =0x0001600e
- add r1, r12
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0801652A
- .align 2, 0
-_080162FC: .4byte 0x000160fc
-_08016300: .4byte gUnknown_02024A68
-_08016304: .4byte gUnknown_02024A60
-_08016308: .4byte gUnknown_02024DDC
-_0801630C: .4byte gUnknown_02024A7A
-_08016310: .4byte gBattleMons
-_08016314: .4byte gUnknown_02024C08
-_08016318: .4byte gUnknown_081D939A
-_0801631C: .4byte 0x02000000
-_08016320: .4byte 0x0001600e
-_08016324:
- ldr r3, _0801635C @ =word_2024DB8
- ldrh r2, [r3]
- movs r0, 0x7
- ands r0, r2
- cmp r0, 0
- bne _08016332
- b _080164F8
-_08016332:
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- bne _0801637E
- ldr r1, _08016360 @ =gUnknown_02024DBC
- adds r1, 0x28
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _08016370
- ldr r0, _08016364 @ =0x0000fffe
- ands r0, r2
- ldr r1, _08016368 @ =0x0000fffd
- ands r0, r1
- strh r0, [r3]
- ldr r1, _0801636C @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _0801639C
- .align 2, 0
-_0801635C: .4byte word_2024DB8
-_08016360: .4byte gUnknown_02024DBC
-_08016364: .4byte 0x0000fffe
-_08016368: .4byte 0x0000fffd
-_0801636C: .4byte gUnknown_02024D1E
-_08016370:
- movs r0, 0x2
- ands r0, r2
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _0801638A
- b _08016398
-_0801637E:
- movs r0, 0x2
- ands r0, r2
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _08016398
-_0801638A:
- ldr r1, _08016394 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _0801639C
- .align 2, 0
-_08016394: .4byte gUnknown_02024D1E
-_08016398:
- ldr r0, _080163A0 @ =gUnknown_02024D1E
- strb r1, [r0, 0x5]
-_0801639C:
- ldr r0, _080163A4 @ =gUnknown_081D8F62
- b _080164EA
- .align 2, 0
-_080163A0: .4byte gUnknown_02024D1E
-_080163A4: .4byte gUnknown_081D8F62
-_080163A8:
- ldr r3, _080163DC @ =word_2024DB8
- ldrh r2, [r3]
- movs r0, 0x18
- ands r0, r2
- cmp r0, 0
- bne _080163B6
- b _080164F8
-_080163B6:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- bne _080163F0
- ldr r1, _080163E0 @ =gUnknown_02024DBC
- adds r1, 0x28
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _080163F0
- ldr r0, _080163E4 @ =0x0000fff7
- ands r0, r2
- strh r0, [r3]
- ldr r1, _080163E8 @ =gUnknown_02024C10
- ldr r0, _080163EC @ =gUnknown_081D8FFF
- b _080163F4
- .align 2, 0
-_080163DC: .4byte word_2024DB8
-_080163E0: .4byte gUnknown_02024DBC
-_080163E4: .4byte 0x0000fff7
-_080163E8: .4byte gUnknown_02024C10
-_080163EC: .4byte gUnknown_081D8FFF
-_080163F0:
- ldr r1, _0801640C @ =gUnknown_02024C10
- ldr r0, _08016410 @ =gUnknown_081D8F7D
-_080163F4:
- str r0, [r1]
- adds r3, r1, 0
- ldr r1, _08016414 @ =0x02000000
- ldr r0, _08016418 @ =0x000160a4
- adds r1, r0
- movs r2, 0
- movs r0, 0xC
- strb r0, [r1]
- ldr r0, _0801641C @ =gUnknown_02024D1E
- strb r2, [r0, 0x5]
- b _080164E8
- .align 2, 0
-_0801640C: .4byte gUnknown_02024C10
-_08016410: .4byte gUnknown_081D8F7D
-_08016414: .4byte 0x02000000
-_08016418: .4byte 0x000160a4
-_0801641C: .4byte gUnknown_02024D1E
-_08016420:
- ldr r3, _08016450 @ =word_2024DB8
- ldrh r2, [r3]
- movs r0, 0x60
- ands r0, r2
- cmp r0, 0
- beq _0801647C
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- bne _08016464
- ldr r1, _08016454 @ =gUnknown_02024DBC
- adds r1, 0x28
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _08016464
- ldr r0, _08016458 @ =0x0000ffdf
- ands r0, r2
- strh r0, [r3]
- ldr r1, _0801645C @ =gUnknown_02024C10
- ldr r0, _08016460 @ =gUnknown_081D9016
- b _08016468
- .align 2, 0
-_08016450: .4byte word_2024DB8
-_08016454: .4byte gUnknown_02024DBC
-_08016458: .4byte 0x0000ffdf
-_0801645C: .4byte gUnknown_02024C10
-_08016460: .4byte gUnknown_081D9016
-_08016464:
- ldr r1, _08016484 @ =gUnknown_02024C10
- ldr r0, _08016488 @ =gUnknown_081D9008
-_08016468:
- str r0, [r1]
- adds r3, r1, 0
- ldr r0, [r3]
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801647C:
- ldr r2, _0801648C @ =0x02000000
- ldr r0, _08016490 @ =0x0001600e
- adds r1, r2, r0
- b _080164FE
- .align 2, 0
-_08016484: .4byte gUnknown_02024C10
-_08016488: .4byte gUnknown_081D9008
-_0801648C: .4byte 0x02000000
-_08016490: .4byte 0x0001600e
-_08016494:
- ldr r3, _080164BC @ =word_2024DB8
- ldrh r2, [r3]
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _080164F8
- ldr r1, _080164C0 @ =gUnknown_02024DBC
- adds r1, 0x28
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _080164D0
- ldr r0, _080164C4 @ =0x0000ff7f
- ands r0, r2
- strh r0, [r3]
- ldr r1, _080164C8 @ =gUnknown_02024C10
- ldr r0, _080164CC @ =gUnknown_081D8FFF
- b _080164D4
- .align 2, 0
-_080164BC: .4byte word_2024DB8
-_080164C0: .4byte gUnknown_02024DBC
-_080164C4: .4byte 0x0000ff7f
-_080164C8: .4byte gUnknown_02024C10
-_080164CC: .4byte gUnknown_081D8FFF
-_080164D0:
- ldr r1, _08016508 @ =gUnknown_02024C10
- ldr r0, _0801650C @ =gUnknown_081D8F7D
-_080164D4:
- str r0, [r1]
- adds r3, r1, 0
- ldr r0, _08016510 @ =0x02000000
- ldr r1, _08016514 @ =0x000160a4
- adds r0, r1
- movs r1, 0xD
- strb r1, [r0]
- ldr r1, _08016518 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_080164E8:
- ldr r0, [r3]
-_080164EA:
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080164F8:
- ldr r2, _08016510 @ =0x02000000
- ldr r3, _0801651C @ =0x0001600e
- adds r1, r2, r3
-_080164FE:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r12, r2
- b _0801652A
- .align 2, 0
-_08016508: .4byte gUnknown_02024C10
-_0801650C: .4byte gUnknown_081D8F7D
-_08016510: .4byte 0x02000000
-_08016514: .4byte 0x000160a4
-_08016518: .4byte gUnknown_02024D1E
-_0801651C: .4byte 0x0001600e
-_08016520:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801652A:
- mov r0, r9
- cmp r0, 0
- bne _08016532
- b _08015E8A
-_08016532:
- ldr r0, _08016550 @ =gUnknown_030042D4
- ldr r1, [r0]
- ldr r0, _08016554 @ =sub_8011E8C
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08016550: .4byte gUnknown_030042D4
-_08016554: .4byte sub_8011E8C
- thumb_func_end sub_8015DFC
-
- thumb_func_start sub_8016558
-sub_8016558: @ 8016558
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- mov r9, r0
- ldr r2, _08016578 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0801657C @ =0x01000020
- orrs r0, r1
- str r0, [r2]
- bl _08017088
- .align 2, 0
-_08016578: .4byte gUnknown_02024C6C
-_0801657C: .4byte 0x01000020
-_08016580:
- ldr r3, _080165B4 @ =gUnknown_02024A60
- ldr r4, _080165B8 @ =gUnknown_02024C07
- ldr r1, _080165BC @ =gUnknown_02024A7A
- adds r5, r7, r2
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r4]
- strb r0, [r3]
- ldr r0, _080165C0 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _080165C4 @ =gBitTable
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- adds r6, r3, 0
- cmp r1, 0
- beq _080165C8
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- bl _08017088
- .align 2, 0
-_080165B4: .4byte gUnknown_02024A60
-_080165B8: .4byte gUnknown_02024C07
-_080165BC: .4byte gUnknown_02024A7A
-_080165C0: .4byte gUnknown_02024C0C
-_080165C4: .4byte gBitTable
-_080165C8:
- movs r5, 0xB0
- lsls r5, 9
- adds r0, r7, r5
- ldrb r0, [r0]
- cmp r0, 0x13
- bls _080165D8
- bl _08017078
-_080165D8:
- lsls r0, 2
- ldr r1, _080165E4 @ =_080165E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080165E4: .4byte _080165E8
- .align 2, 0
-_080165E8:
- .4byte _08016638
- .4byte _080166A8
- .4byte _080166D8
- .4byte _08016730
- .4byte _080167C8
- .4byte _08016828
- .4byte _080168C0
- .4byte _0801691C
- .4byte _0801697C
- .4byte _080169DC
- .4byte _08016B78
- .4byte _08016CA0
- .4byte _08016D58
- .4byte _08016E30
- .4byte _08016EFC
- .4byte _08016F20
- .4byte _08016F6C
- .4byte _08016F9C
- .4byte _08016704
- .4byte _08017064
-_08016638:
- ldr r1, _08016694 @ =gUnknown_02024C98
- ldrb r3, [r6]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- beq _08016686
- ldr r0, _08016698 @ =gBattleMons
- movs r1, 0x58
- muls r1, r3
- adds r0, r1, r0
- ldrh r2, [r0, 0x28]
- ldrh r7, [r0, 0x2C]
- cmp r2, r7
- beq _08016686
- cmp r2, 0
- beq _08016686
- ldr r1, _0801669C @ =gUnknown_02024BEC
- ldrh r0, [r0, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _08016670
- movs r0, 0x1
- str r0, [r1]
-_08016670:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldr r0, _080166A0 @ =gUnknown_081D93D1
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016686:
- ldr r1, _080166A4 @ =0x02000000
- movs r0, 0xB0
- lsls r0, 9
- adds r1, r0
- bl _08017072
- .align 2, 0
-_08016694: .4byte gUnknown_02024C98
-_08016698: .4byte gBattleMons
-_0801669C: .4byte gUnknown_02024BEC
-_080166A0: .4byte gUnknown_081D93D1
-_080166A4: .4byte 0x02000000
-_080166A8:
- ldrb r1, [r6]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _080166C8
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080166C8:
- ldr r1, _080166D4 @ =0x02000000
- movs r2, 0xB0
- lsls r2, 9
- adds r1, r2
- bl _08017072
- .align 2, 0
-_080166D4: .4byte 0x02000000
-_080166D8:
- ldrb r1, [r6]
- movs r0, 0x1
- movs r2, 0
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- beq _080166F2
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080166F2:
- ldr r1, _08016700 @ =0x02000000
- movs r3, 0xB0
- lsls r3, 9
- adds r1, r3
- bl _08017072
- .align 2, 0
-_08016700: .4byte 0x02000000
-_08016704:
- ldrb r1, [r6]
- movs r0, 0x1
- movs r2, 0x1
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- beq _0801671E
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801671E:
- ldr r1, _0801672C @ =0x02000000
- movs r5, 0xB0
- lsls r5, 9
- adds r1, r5
- bl _08017072
- .align 2, 0
-_0801672C: .4byte 0x02000000
-_08016730:
- ldr r0, _080167A8 @ =gUnknown_02024C98
- ldrb r2, [r6]
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801679C
- ldr r3, _080167AC @ =gBattleMons
- movs r5, 0x3
- ands r5, r1
- movs r1, 0x58
- adds r0, r5, 0
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801679C
- adds r0, r2, 0
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801679C
- ldr r0, _080167B0 @ =gUnknown_02024C08
- strb r5, [r0]
- ldr r2, _080167B4 @ =gUnknown_02024BEC
- ldrb r0, [r6]
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x2C]
- lsrs r0, 3
- str r0, [r2]
- cmp r0, 0
- bne _0801677C
- movs r0, 0x1
- str r0, [r2]
-_0801677C:
- ldr r1, _080167B8 @ =0x02000000
- ldr r7, _080167BC @ =0x000160a4
- adds r0, r1, r7
- strb r5, [r0]
- ldrb r0, [r4]
- ldr r2, _080167C0 @ =0x000160a5
- adds r1, r2
- strb r0, [r1]
- ldr r0, _080167C4 @ =gUnknown_081D904B
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801679C:
- ldr r1, _080167B8 @ =0x02000000
- movs r3, 0xB0
- lsls r3, 9
- adds r1, r3
- bl _08017072
- .align 2, 0
-_080167A8: .4byte gUnknown_02024C98
-_080167AC: .4byte gBattleMons
-_080167B0: .4byte gUnknown_02024C08
-_080167B4: .4byte gUnknown_02024BEC
-_080167B8: .4byte 0x02000000
-_080167BC: .4byte 0x000160a4
-_080167C0: .4byte 0x000160a5
-_080167C4: .4byte gUnknown_081D904B
-_080167C8:
- ldr r2, _08016818 @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801680A
- adds r1, r3, r2
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _0801680A
- ldr r2, _0801681C @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- lsrs r0, 3
- str r0, [r2]
- cmp r0, 0
- bne _080167FA
- movs r0, 0x1
- str r0, [r2]
-_080167FA:
- ldr r0, _08016820 @ =gUnknown_081D9518
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801680A:
- ldr r1, _08016824 @ =0x02000000
- movs r5, 0xB0
- lsls r5, 9
- adds r1, r5
- bl _08017072
- .align 2, 0
-_08016818: .4byte gBattleMons
-_0801681C: .4byte gUnknown_02024BEC
-_08016820: .4byte gUnknown_081D9518
-_08016824: .4byte 0x02000000
-_08016828:
- ldr r4, _080168B0 @ =gBattleMons
- ldrb r0, [r6]
- movs r7, 0x58
- mov r8, r7
- mov r2, r8
- muls r2, r0
- adds r3, r4, 0
- adds r3, 0x4C
- adds r0, r2, r3
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080168A2
- adds r1, r2, r4
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _080168A2
- ldr r5, _080168B4 @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- lsrs r0, 4
- str r0, [r5]
- cmp r0, 0
- bne _0801685C
- movs r0, 0x1
- str r0, [r5]
-_0801685C:
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r2, r0, r3
- ldr r1, [r2]
- movs r4, 0xF0
- lsls r4, 4
- adds r0, r1, 0
- ands r0, r4
- cmp r0, r4
- beq _0801687C
- movs r7, 0x80
- lsls r7, 1
- adds r0, r1, r7
- str r0, [r2]
-_0801687C:
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r3
- ldr r0, [r0]
- ands r0, r4
- lsrs r0, 8
- ldr r1, [r5]
- muls r0, r1
- str r0, [r5]
- ldr r0, _080168B8 @ =gUnknown_081D9518
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080168A2:
- ldr r1, _080168BC @ =0x02000000
- movs r2, 0xB0
- lsls r2, 9
- adds r1, r2
- bl _08017072
- .align 2, 0
-_080168B0: .4byte gBattleMons
-_080168B4: .4byte gUnknown_02024BEC
-_080168B8: .4byte gUnknown_081D9518
-_080168BC: .4byte 0x02000000
-_080168C0:
- ldr r2, _0801690C @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08016902
- adds r1, r3, r2
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08016902
- ldr r2, _08016910 @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- lsrs r0, 3
- str r0, [r2]
- cmp r0, 0
- bne _080168F2
- movs r0, 0x1
- str r0, [r2]
-_080168F2:
- ldr r0, _08016914 @ =gUnknown_081D953A
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016902:
- ldr r1, _08016918 @ =0x02000000
- movs r3, 0xB0
- lsls r3, 9
- adds r1, r3
- b _08017072
- .align 2, 0
-_0801690C: .4byte gBattleMons
-_08016910: .4byte gUnknown_02024BEC
-_08016914: .4byte gUnknown_081D953A
-_08016918: .4byte 0x02000000
-_0801691C:
- ldr r2, _0801696C @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 20
- ands r0, r1
- cmp r0, 0
- beq _08016960
- adds r1, r3, r2
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08016960
- ldr r2, _08016970 @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- lsrs r0, 2
- str r0, [r2]
- cmp r0, 0
- bne _08016950
- movs r0, 0x1
- str r0, [r2]
-_08016950:
- ldr r0, _08016974 @ =gUnknown_081D9613
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016960:
- ldr r1, _08016978 @ =0x02000000
- movs r5, 0xB0
- lsls r5, 9
- adds r1, r5
- b _08017072
- .align 2, 0
-_0801696C: .4byte gBattleMons
-_08016970: .4byte gUnknown_02024BEC
-_08016974: .4byte gUnknown_081D9613
-_08016978: .4byte 0x02000000
-_0801697C:
- ldr r2, _080169CC @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 21
- ands r0, r1
- cmp r0, 0
- beq _080169C0
- adds r1, r3, r2
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _080169C0
- ldr r2, _080169D0 @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- lsrs r0, 2
- str r0, [r2]
- cmp r0, 0
- bne _080169B0
- movs r0, 0x1
- str r0, [r2]
-_080169B0:
- ldr r0, _080169D4 @ =gUnknown_081D9624
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080169C0:
- ldr r1, _080169D8 @ =0x02000000
- movs r7, 0xB0
- lsls r7, 9
- adds r1, r7
- b _08017072
- .align 2, 0
-_080169CC: .4byte gBattleMons
-_080169D0: .4byte gUnknown_02024BEC
-_080169D4: .4byte gUnknown_081D9624
-_080169D8: .4byte 0x02000000
-_080169DC:
- ldr r0, _08016A8C @ =gBattleMons
- mov r8, r0
- ldrb r0, [r6]
- movs r1, 0x58
- mov r10, r1
- mov r1, r10
- muls r1, r0
- mov r5, r8
- adds r5, 0x50
- adds r3, r1, r5
- ldr r2, [r3]
- movs r4, 0xE0
- lsls r4, 8
- adds r0, r2, 0
- ands r0, r4
- cmp r0, 0
- beq _08016AF6
- mov r7, r8
- adds r0, r1, r7
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08016AF6
- ldr r1, _08016A90 @ =0xffffe000
- adds r0, r2, r1
- str r0, [r3]
- ldrb r1, [r6]
- mov r0, r10
- muls r0, r1
- adds r0, r5
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _08016AB4
- ldr r2, _08016A94 @ =0x02000000
- lsls r0, r1, 1
- ldr r4, _08016A98 @ =0x00016004
- adds r0, r4
- adds r0, r2
- ldrb r1, [r0]
- ldr r3, _08016A9C @ =0x000160a4
- adds r0, r2, r3
- strb r1, [r0]
- ldrb r0, [r6]
- lsls r0, 1
- subs r3, 0x9F
- adds r0, r3
- adds r0, r2
- ldrb r1, [r0]
- ldr r5, _08016AA0 @ =0x000160a5
- adds r0, r2, r5
- strb r1, [r0]
- ldr r1, _08016AA4 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r4
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08016AA8 @ =gUnknown_02024C10
- ldr r0, _08016AAC @ =gUnknown_081D95E2
- str r0, [r1]
- ldr r2, _08016AB0 @ =gUnknown_02024BEC
- ldrb r0, [r6]
- mov r7, r10
- muls r7, r0
- adds r0, r7, 0
- add r0, r8
- ldrh r0, [r0, 0x2C]
- lsrs r0, 4
- str r0, [r2]
- cmp r0, 0
- bne _08016AE6
- movs r0, 0x1
- str r0, [r2]
- b _08016AE6
- .align 2, 0
-_08016A8C: .4byte gBattleMons
-_08016A90: .4byte 0xffffe000
-_08016A94: .4byte 0x02000000
-_08016A98: .4byte 0x00016004
-_08016A9C: .4byte 0x000160a4
-_08016AA0: .4byte 0x000160a5
-_08016AA4: .4byte gUnknown_030041C0
-_08016AA8: .4byte gUnknown_02024C10
-_08016AAC: .4byte gUnknown_081D95E2
-_08016AB0: .4byte gUnknown_02024BEC
-_08016AB4:
- ldr r1, _08016B00 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldr r2, _08016B04 @ =0x02000000
- ldrb r0, [r6]
- lsls r0, 1
- ldr r3, _08016B08 @ =0x00016004
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r6]
- lsls r0, 1
- ldr r5, _08016B0C @ =0x00016005
- adds r0, r5
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08016B10 @ =gUnknown_02024C10
- ldr r0, _08016B14 @ =gUnknown_081D95F4
- str r0, [r1]
-_08016AE6:
- ldr r0, [r1]
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016AF6:
- ldr r1, _08016B04 @ =0x02000000
- movs r7, 0xB0
- lsls r7, 9
- adds r1, r7
- b _08017072
- .align 2, 0
-_08016B00: .4byte gUnknown_030041C0
-_08016B04: .4byte 0x02000000
-_08016B08: .4byte 0x00016004
-_08016B0C: .4byte 0x00016005
-_08016B10: .4byte gUnknown_02024C10
-_08016B14: .4byte gUnknown_081D95F4
-_08016B18:
- movs r0, 0x8
- negs r0, r0
- ands r4, r0
- str r4, [r2]
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- mov r0, r10
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _08016B68 @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- ldr r1, _08016B6C @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- ldr r0, _08016B70 @ =gUnknown_081D950F
- bl b_call_bc_move_exec
- ldr r4, _08016B74 @ =gUnknown_02024A60
- ldrb r0, [r6]
- strb r0, [r4]
- ldrb r0, [r4]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08016BE0
- .align 2, 0
-_08016B68: .4byte 0xf7ffffff
-_08016B6C: .4byte gUnknown_02024D1E
-_08016B70: .4byte gUnknown_081D950F
-_08016B74: .4byte gUnknown_02024A60
-_08016B78:
- ldr r2, _08016BF4 @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- muls r0, r1
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x70
- ands r1, r0
- adds r7, r2, 0
- cmp r1, 0
- beq _08016C82
- movs r0, 0
- strb r0, [r4]
- mov r2, r8
- ldrb r1, [r2]
- cmp r1, 0
- beq _08016BE0
- mov r10, r7
- adds r6, r4, 0
- movs r3, 0x58
- mov r8, r3
- movs r5, 0x4C
- adds r5, r7
- mov r9, r5
- str r1, [sp, 0x4]
- movs r0, 0x7
- mov r12, r0
-_08016BB2:
- ldrb r1, [r6]
- mov r3, r8
- muls r3, r1
- mov r5, r9
- adds r2, r3, r5
- ldr r4, [r2]
- adds r0, r4, 0
- mov r5, r12
- ands r0, r5
- cmp r0, 0
- beq _08016BD2
- adds r0, r3, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2B
- bne _08016B18
-_08016BD2:
- adds r0, r1, 0x1
- strb r0, [r6]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp, 0x4]
- cmp r0, r1
- bcc _08016BB2
-_08016BE0:
- ldr r2, _08016BF8 @ =gUnknown_02024C07
- ldr r1, _08016BFC @ =gUnknown_02024A68
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- beq _08016C00
- movs r2, 0x2
- mov r9, r2
- b _0801707E
- .align 2, 0
-_08016BF4: .4byte gBattleMons
-_08016BF8: .4byte gUnknown_02024C07
-_08016BFC: .4byte gUnknown_02024A68
-_08016C00:
- ldr r5, _08016C38 @ =gUnknown_02024A60
- ldrb r0, [r5]
- strb r0, [r2]
- ldr r2, _08016C3C @ =gBattleMons
- ldrb r0, [r5]
- movs r7, 0x58
- adds r1, r0, 0
- muls r1, r7
- adds r6, r2, 0
- adds r6, 0x50
- adds r1, r6
- ldr r0, [r1]
- subs r0, 0x10
- str r0, [r1]
- ldrb r0, [r5]
- bl sub_8015660
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08016C44
- ldrb r0, [r5]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08016C40 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08016C78
- .align 2, 0
-_08016C38: .4byte gUnknown_02024A60
-_08016C3C: .4byte gBattleMons
-_08016C40: .4byte gUnknown_02024D1E
-_08016C44:
- ldrb r3, [r5]
- adds r0, r3, 0
- muls r0, r7
- adds r2, r0, r6
- ldr r0, [r2]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- beq _08016C6C
- ldr r0, _08016C68 @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r2]
- b _08016C78
- .align 2, 0
-_08016C68: .4byte gUnknown_02024D1E
-_08016C6C:
- ldr r1, _08016C94 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- adds r0, r3, 0
- bl b_cancel_multi_turn_move_maybe
-_08016C78:
- ldr r0, _08016C98 @ =gUnknown_081D957E
- bl b_call_bc_move_exec
- movs r3, 0x1
- mov r9, r3
-_08016C82:
- mov r5, r9
- cmp r5, 0x2
- bne _08016C8A
- b _08017078
-_08016C8A:
- ldr r1, _08016C9C @ =0x02000000
- movs r7, 0xB0
- lsls r7, 9
- adds r1, r7
- b _08017072
- .align 2, 0
-_08016C94: .4byte gUnknown_02024D1E
-_08016C98: .4byte gUnknown_081D957E
-_08016C9C: .4byte 0x02000000
-_08016CA0:
- ldr r1, _08016CD8 @ =gBattleMons
- ldrb r0, [r6]
- movs r7, 0x58
- muls r0, r7
- adds r5, r1, 0
- adds r5, 0x50
- adds r2, r0, r5
- ldr r1, [r2]
- movs r4, 0xC0
- lsls r4, 4
- adds r0, r1, 0
- ands r0, r4
- cmp r0, 0
- beq _08016D3C
- ldr r3, _08016CDC @ =0xfffffc00
- adds r0, r1, r3
- str r0, [r2]
- ldrb r0, [r6]
- bl sub_8015660
- lsls r0, 24
- cmp r0, 0
- beq _08016CE0
- ldrb r0, [r6]
- bl b_cancel_multi_turn_move_maybe
- b _08016D3C
- .align 2, 0
-_08016CD8: .4byte gBattleMons
-_08016CDC: .4byte 0xfffffc00
-_08016CE0:
- ldrb r0, [r6]
- muls r0, r7
- adds r2, r0, r5
- ldr r1, [r2]
- adds r0, r1, 0
- ands r0, r4
- cmp r0, 0
- bne _08016D3C
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _08016D3C
- ldr r0, _08016D48 @ =0xffffefff
- ands r1, r0
- str r1, [r2]
- ldrb r0, [r6]
- muls r0, r7
- adds r0, r5
- ldr r0, [r0]
- movs r4, 0x7
- ands r0, r4
- cmp r0, 0
- bne _08016D3C
- ldr r1, _08016D4C @ =gUnknown_02024D1E
- movs r0, 0x47
- strb r0, [r1, 0x3]
- movs r0, 0x1
- movs r1, 0
- bl sub_801E3EC
- ldrb r0, [r6]
- muls r0, r7
- adds r0, r5
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _08016D32
- ldr r0, _08016D50 @ =gUnknown_081D9587
- bl b_call_bc_move_exec
-_08016D32:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016D3C:
- ldr r1, _08016D54 @ =0x02000000
- movs r5, 0xB0
- lsls r5, 9
- adds r1, r5
- b _08017072
- .align 2, 0
-_08016D48: .4byte 0xffffefff
-_08016D4C: .4byte gUnknown_02024D1E
-_08016D50: .4byte gUnknown_081D9587
-_08016D54: .4byte 0x02000000
-_08016D58:
- ldr r0, _08016DD4 @ =gUnknown_02024CA8
- ldrb r3, [r6]
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r5, r1, r0
- ldrb r1, [r5, 0xB]
- lsls r1, 28
- adds r7, r0, 0
- cmp r1, 0
- beq _08016E1E
- movs r4, 0
- ldr r2, _08016DD8 @ =gBattleMons
- movs r0, 0x58
- adds r1, r3, 0
- muls r1, r0
- adds r2, 0xC
- adds r1, r2
- ldrh r0, [r5, 0x4]
- ldrh r1, [r1]
- cmp r0, r1
- beq _08016DAC
- mov r12, r7
- mov r8, r2
- adds r5, r6, 0
- movs r3, 0x58
-_08016D8C:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08016DAC
- ldrb r2, [r5]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r12
- lsls r0, r4, 1
- muls r2, r3
- adds r0, r2
- add r0, r8
- ldrh r1, [r1, 0x4]
- ldrh r0, [r0]
- cmp r1, r0
- bne _08016D8C
-_08016DAC:
- cmp r4, 0x4
- bne _08016DDC
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- movs r1, 0
- strh r1, [r0, 0x4]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r1, 0xB]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xB]
- b _08016E1E
- .align 2, 0
-_08016DD4: .4byte gUnknown_02024CA8
-_08016DD8: .4byte gBattleMons
-_08016DDC:
- ldrb r0, [r6]
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- adds r2, r7
- ldrb r3, [r2, 0xB]
- lsls r1, r3, 28
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0xB]
- adds r2, r1, 0
- cmp r2, 0
- bne _08016E1E
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x4]
- ldr r0, _08016E28 @ =gUnknown_081D9148
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016E1E:
- ldr r1, _08016E2C @ =0x02000000
- movs r7, 0xB0
- lsls r7, 9
- adds r1, r7
- b _08017072
- .align 2, 0
-_08016E28: .4byte gUnknown_081D9148
-_08016E2C: .4byte 0x02000000
-_08016E30:
- ldr r3, _08016E7C @ =gUnknown_02024CA8
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r2, r0, r3
- ldrb r5, [r2, 0xE]
- lsls r4, r5, 28
- cmp r4, 0
- beq _08016EE8
- ldr r0, _08016E80 @ =gBattleMons
- mov r8, r0
- ldrb r0, [r2, 0xC]
- lsls r0, 1
- movs r7, 0x58
- muls r1, r7
- adds r0, r1
- mov r1, r8
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- ldrh r1, [r2, 0x6]
- cmp r0, r1
- beq _08016E84
- movs r0, 0
- strh r0, [r2, 0x6]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0xE]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xE]
- b _08016EE8
- .align 2, 0
-_08016E7C: .4byte gUnknown_02024CA8
-_08016E80: .4byte gBattleMons
-_08016E84:
- lsrs r1, r4, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r4, 0x10
- negs r4, r4
- adds r0, r4, 0
- ands r0, r5
- orrs r0, r1
- strb r0, [r2, 0xE]
- cmp r1, 0
- beq _08016EB8
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- muls r1, r7
- ldrb r0, [r0, 0xC]
- adds r1, r0
- mov r0, r8
- adds r0, 0x24
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _08016EE8
-_08016EB8:
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x6]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0xE]
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0xE]
- ldr r0, _08016EF4 @ =gUnknown_081D914F
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016EE8:
- ldr r1, _08016EF8 @ =0x02000000
- movs r2, 0xB0
- lsls r2, 9
- adds r1, r2
- b _08017072
- .align 2, 0
-_08016EF4: .4byte gUnknown_081D914F
-_08016EF8: .4byte 0x02000000
-_08016EFC:
- ldr r0, _08016F1C @ =gUnknown_02024C98
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x18
- ands r0, r2
- cmp r0, 0
- beq _08016F14
- adds r0, r2, 0
- subs r0, 0x8
- str r0, [r1]
-_08016F14:
- movs r1, 0xB0
- lsls r1, 9
- b _08017070
- .align 2, 0
-_08016F1C: .4byte gUnknown_02024C98
-_08016F20:
- ldr r2, _08016F60 @ =gUnknown_02024CA8
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r3, r0, r2
- ldrb r2, [r3, 0x12]
- lsls r1, r2, 28
- cmp r1, 0
- beq _08016F5A
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x12]
- cmp r1, 0
- bne _08016F5A
- ldr r0, _08016F64 @ =gUnknown_02024C98
- ldrb r2, [r6]
- lsls r2, 2
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _08016F68 @ =0xfffffdff
- ands r0, r1
- str r0, [r2]
-_08016F5A:
- movs r1, 0xB0
- lsls r1, 9
- b _08017070
- .align 2, 0
-_08016F60: .4byte gUnknown_02024CA8
-_08016F64: .4byte gUnknown_02024C98
-_08016F68: .4byte 0xfffffdff
-_08016F6C:
- ldr r2, _08016F98 @ =gUnknown_02024CA8
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r3, r0, r2
- ldrb r2, [r3, 0x13]
- lsls r1, r2, 28
- cmp r1, 0
- beq _08016F92
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x13]
-_08016F92:
- movs r1, 0xB0
- lsls r1, 9
- b _08017070
- .align 2, 0
-_08016F98: .4byte gUnknown_02024CA8
-_08016F9C:
- ldr r4, _0801704C @ =gUnknown_02024C98
- ldrb r0, [r6]
- lsls r0, 2
- adds r2, r0, r4
- ldr r1, [r2]
- movs r3, 0xC0
- lsls r3, 5
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _08017042
- ldr r5, _08017050 @ =0xfffff800
- adds r0, r1, r5
- str r0, [r2]
- ldrb r2, [r6]
- lsls r0, r2, 2
- adds r0, r4
- ldr r0, [r0]
- ands r0, r3
- cmp r0, 0
- bne _08017042
- ldr r3, _08017054 @ =gBattleMons
- movs r5, 0x58
- adds r1, r2, 0
- muls r1, r5
- adds r4, r3, 0
- adds r4, 0x4C
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _08017042
- adds r0, r1, r3
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x48
- beq _08017042
- cmp r0, 0xF
- beq _08017042
- adds r0, r2, 0
- bl sub_8025A44
- lsls r0, 24
- cmp r0, 0
- bne _08017042
- ldrb r0, [r6]
- bl b_cancel_multi_turn_move_maybe
- bl Random
- ldrb r1, [r6]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x2
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r6]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08017058 @ =gUnknown_02024C0A
- ldrb r0, [r6]
- strb r0, [r1]
- ldr r0, _0801705C @ =gUnknown_081D964C
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08017042:
- ldr r1, _08017060 @ =0x02000000
- movs r7, 0xB0
- lsls r7, 9
- adds r1, r7
- b _08017072
- .align 2, 0
-_0801704C: .4byte gUnknown_02024C98
-_08017050: .4byte 0xfffff800
-_08017054: .4byte gBattleMons
-_08017058: .4byte gUnknown_02024C0A
-_0801705C: .4byte gUnknown_081D964C
-_08017060: .4byte 0x02000000
-_08017064:
- movs r1, 0xB0
- lsls r1, 9
- add r1, r10
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08017084 @ =0x00016001
-_08017070:
- add r1, r10
-_08017072:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08017078:
- mov r0, r9
- cmp r0, 0
- beq _08017088
-_0801707E:
- mov r0, r9
- b _080170B8
- .align 2, 0
-_08017084: .4byte 0x00016001
-_08017088:
- ldr r7, _080170C8 @ =0x02000000
- ldr r2, _080170CC @ =0x00016001
- adds r0, r7, r2
- ldr r1, _080170D0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- mov r10, r7
- mov r8, r1
- ldrb r1, [r1]
- cmp r0, r1
- bcs _080170AC
- movs r3, 0xB0
- lsls r3, 9
- adds r0, r7, r3
- ldrb r0, [r0]
- cmp r0, 0x13
- bhi _080170AC
- bl _08016580
-_080170AC:
- ldr r0, _080170D4 @ =gUnknown_02024C6C
- ldr r1, [r0]
- ldr r2, _080170D8 @ =0xfeffffdf
- ands r1, r2
- str r1, [r0]
- movs r0, 0
-_080170B8:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080170C8: .4byte 0x02000000
-_080170CC: .4byte 0x00016001
-_080170D0: .4byte gUnknown_02024A68
-_080170D4: .4byte gUnknown_02024C6C
-_080170D8: .4byte 0xfeffffdf
- thumb_func_end sub_8016558
-
- thumb_func_start sub_80170DC
-sub_80170DC: @ 80170DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, _08017108 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0801710C @ =0x01000020
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08017110 @ =0x02000000
- ldr r3, _08017114 @ =0x00016110
- adds r0, r1, r3
- ldrb r0, [r0]
- mov r8, r1
- cmp r0, 0
- beq _08017118
- cmp r0, 0x1
- bne _08017104
- b _08017258
-_08017104:
- b _08017380
- .align 2, 0
-_08017108: .4byte gUnknown_02024C6C
-_0801710C: .4byte 0x01000020
-_08017110: .4byte 0x02000000
-_08017114: .4byte 0x00016110
-_08017118:
- ldr r2, _0801715C @ =0x00016111
- add r2, r8
- ldr r0, _08017160 @ =gUnknown_02024A68
- ldrb r1, [r2]
- mov r9, r0
- ldrb r0, [r0]
- cmp r1, r0
- bcc _0801712A
- b _08017248
-_0801712A:
- ldr r4, _08017164 @ =gUnknown_02024A60
- adds r5, r2, 0
- ldr r1, _08017168 @ =gUnknown_02024DBC
- mov r12, r1
- movs r2, 0x8
- add r2, r12
- mov r10, r2
- mov r7, r12
- adds r7, 0x18
- ldr r6, _0801716C @ =gUnknown_030041C0
-_0801713E:
- ldrb r3, [r5]
- strb r3, [r4]
- ldr r0, _08017170 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08017174 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08017178
- adds r0, r3, 0x1
- strb r0, [r5]
- b _0801723C
- .align 2, 0
-_0801715C: .4byte 0x00016111
-_08017160: .4byte gUnknown_02024A68
-_08017164: .4byte gUnknown_02024A60
-_08017168: .4byte gUnknown_02024DBC
-_0801716C: .4byte gUnknown_030041C0
-_08017170: .4byte gUnknown_02024C0C
-_08017174: .4byte gBitTable
-_08017178:
- adds r0, r3, 0x1
- strb r0, [r5]
- ldr r1, _080171B4 @ =gUnknown_02024DBC
- ldrb r0, [r4]
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- beq _0801723C
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _0801723C
- ldr r1, _080171B8 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801723C
- lsls r0, r2, 1
- adds r0, r7
- ldrh r0, [r0]
- cmp r0, 0xF8
- bne _080171C0
- ldr r0, _080171BC @ =gUnknown_02024D1E
- strb r3, [r0, 0x5]
- b _080171C6
- .align 2, 0
-_080171B4: .4byte gUnknown_02024DBC
-_080171B8: .4byte gBattleMons
-_080171BC: .4byte gUnknown_02024D1E
-_080171C0:
- ldr r1, _08017220 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_080171C6:
- movs r0, 0xFD
- strb r0, [r6]
- movs r0, 0x2
- strb r0, [r6, 0x1]
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- strb r0, [r6, 0x2]
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r6, 0x3]
- movs r0, 0xFF
- strb r0, [r6, 0x4]
- ldr r3, _08017224 @ =gUnknown_02024C08
- ldrb r0, [r4]
- strb r0, [r3]
- ldr r1, _08017228 @ =gUnknown_02024C07
- mov r0, r12
- adds r0, 0x4
- ldrb r2, [r4]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _0801722C @ =gUnknown_02024BEC
- ldrb r0, [r4]
- lsls r0, 2
- add r0, r10
- ldr r0, [r0]
- str r0, [r1]
- ldr r2, _08017230 @ =gUnknown_02024D68
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r0, r2
- ldr r1, _08017234 @ =0x0000ffff
- str r1, [r0]
- ldr r0, _08017238 @ =gUnknown_081D92D7
- b _08017364
- .align 2, 0
-_08017220: .4byte gUnknown_02024D1E
-_08017224: .4byte gUnknown_02024C08
-_08017228: .4byte gUnknown_02024C07
-_0801722C: .4byte gUnknown_02024BEC
-_08017230: .4byte gUnknown_02024D68
-_08017234: .4byte 0x0000ffff
-_08017238: .4byte gUnknown_081D92D7
-_0801723C:
- ldrb r0, [r5]
- mov r3, r9
- ldrb r3, [r3]
- cmp r0, r3
- bcs _08017248
- b _0801713E
-_08017248:
- ldr r1, _0801729C @ =0x00016110
- add r1, r8
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080172A0 @ =0x00016111
- add r0, r8
- strb r2, [r0]
-_08017258:
- ldr r2, _080172A0 @ =0x00016111
- add r2, r8
- ldr r0, _080172A4 @ =gUnknown_02024A68
- ldrb r1, [r2]
- mov r9, r0
- ldrb r0, [r0]
- cmp r1, r0
- bcc _0801726A
- b _08017380
-_0801726A:
- ldr r5, _080172A8 @ =gUnknown_02024A60
- adds r3, r2, 0
- ldr r4, _080172AC @ =gUnknown_030041C0
- ldr r7, _080172B0 @ =gUnknown_02024CA8
-_08017272:
- ldr r2, _080172B4 @ =gUnknown_02024C07
- ldr r1, _080172B8 @ =gUnknown_02024A7A
- ldrb r0, [r3]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- strb r0, [r5]
- ldr r0, _080172BC @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _080172C0 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080172C4
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- b _08017374
- .align 2, 0
-_0801729C: .4byte 0x00016110
-_080172A0: .4byte 0x00016111
-_080172A4: .4byte gUnknown_02024A68
-_080172A8: .4byte gUnknown_02024A60
-_080172AC: .4byte gUnknown_030041C0
-_080172B0: .4byte gUnknown_02024CA8
-_080172B4: .4byte gUnknown_02024C07
-_080172B8: .4byte gUnknown_02024A7A
-_080172BC: .4byte gUnknown_02024C0C
-_080172C0: .4byte gBitTable
-_080172C4:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- ldr r6, _08017334 @ =gUnknown_02024C98
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r6
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08017374
- movs r0, 0xFD
- strb r0, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x3]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0xF]
- lsls r0, 28
- lsrs r0, 28
- strb r0, [r4, 0x4]
- movs r0, 0xFF
- strb r0, [r4, 0x5]
- ldrb r2, [r5]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r4, r0, r7
- ldrb r3, [r4, 0xF]
- lsls r1, r3, 28
- cmp r1, 0
- bne _08017348
- lsls r2, 2
- adds r2, r6
- ldr r0, [r2]
- movs r1, 0x21
- negs r1, r1
- ands r0, r1
- str r0, [r2]
- ldr r3, _08017338 @ =gUnknown_02024BEC
- ldr r2, _0801733C @ =gBattleMons
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- str r0, [r3]
- ldr r1, _08017340 @ =gUnknown_02024C10
- ldr r0, _08017344 @ =gUnknown_081D9202
- b _08017360
- .align 2, 0
-_08017334: .4byte gUnknown_02024C98
-_08017338: .4byte gUnknown_02024BEC
-_0801733C: .4byte gBattleMons
-_08017340: .4byte gUnknown_02024C10
-_08017344: .4byte gUnknown_081D9202
-_08017348:
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r2, 0x10
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- orrs r0, r1
- strb r0, [r4, 0xF]
- ldr r1, _0801736C @ =gUnknown_02024C10
- ldr r0, _08017370 @ =gUnknown_081D921D
-_08017360:
- str r0, [r1]
- ldr r0, [r1]
-_08017364:
- bl b_call_bc_move_exec
- movs r0, 0x1
- b _0801738C
- .align 2, 0
-_0801736C: .4byte gUnknown_02024C10
-_08017370: .4byte gUnknown_081D921D
-_08017374:
- ldrb r0, [r3]
- mov r1, r9
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08017380
- b _08017272
-_08017380:
- ldr r2, _0801739C @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _080173A0 @ =0xfeffffdf
- ands r0, r1
- str r0, [r2]
- movs r0, 0
-_0801738C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801739C: .4byte gUnknown_02024C6C
-_080173A0: .4byte 0xfeffffdf
- thumb_func_end sub_80170DC
-
- thumb_func_start sub_80173A4
-sub_80173A4: @ 80173A4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _080173C0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080173F8
- b _080176AC
- .align 2, 0
-_080173C0: .4byte gUnknown_020239F8
-_080173C4:
- ldr r0, _080173D4 @ =gUnknown_081D8C72
- bl b_call_bc_move_exec
- ldr r1, _080173D8 @ =0x00016059
- add r1, r10
- movs r0, 0x2
- b _080173E8
- .align 2, 0
-_080173D4: .4byte gUnknown_081D8C72
-_080173D8: .4byte 0x00016059
-_080173DC:
- ldr r0, _080173F0 @ =gUnknown_081D8C7B
- bl b_call_bc_move_exec
- ldr r1, _080173F4 @ =0x00016059
- add r1, r8
- movs r0, 0x5
-_080173E8:
- strb r0, [r1]
-_080173EA:
- movs r0, 0x1
- b _080176AE
- .align 2, 0
-_080173F0: .4byte gUnknown_081D8C7B
-_080173F4: .4byte 0x00016059
-_080173F8:
- ldr r0, _08017414 @ =0x02000000
- mov r9, r0
-_080173FC:
- ldr r0, _08017418 @ =0x00016059
- add r0, r9
- ldrb r0, [r0]
- cmp r0, 0x7
- bls _08017408
- b _080176A0
-_08017408:
- lsls r0, 2
- ldr r1, _0801741C @ =_08017420
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08017414: .4byte 0x02000000
-_08017418: .4byte 0x00016059
-_0801741C: .4byte _08017420
- .align 2, 0
-_08017420:
- .4byte _08017440
- .4byte _08017490
- .4byte _08017534
- .4byte _0801757C
- .4byte _0801758E
- .4byte _080175FC
- .4byte _08017638
- .4byte _080176A0
-_08017440:
- ldr r1, _08017508 @ =0x0001605a
- add r1, r9
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0801750C @ =0x00016059
- add r1, r9
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r5, 0
- ldr r0, _08017510 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- bge _08017490
- ldr r6, _08017514 @ =gUnknown_02024C0C
-_0801745E:
- ldrb r0, [r6]
- ldr r2, _08017518 @ =gBitTable
- lsls r1, r5, 2
- adds r1, r2
- ldr r4, [r1]
- ands r0, r4
- cmp r0, 0
- beq _08017486
- lsls r0, r5, 24
- lsrs r0, 24
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- bne _08017486
- ldrb r0, [r6]
- bics r0, r4
- strb r0, [r6]
-_08017486:
- adds r5, 0x1
- ldr r0, _08017510 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- blt _0801745E
-_08017490:
- ldr r1, _0801751C @ =0x02000000
- mov r9, r1
- ldr r0, _08017520 @ =gUnknown_02024C09
- mov r12, r0
- ldr r1, _08017524 @ =gUnknown_02024C08
- mov r8, r1
- mov r10, r9
- ldr r5, _08017508 @ =0x0001605a
- add r5, r9
- ldr r7, _08017528 @ =gBattleMons
- ldr r6, _0801752C @ =0x00016113
- add r6, r9
-_080174A8:
- ldrb r0, [r5]
- mov r1, r8
- strb r0, [r1]
- mov r1, r12
- strb r0, [r1]
- ldrb r3, [r5]
- movs r0, 0x58
- muls r0, r3
- adds r0, r7
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _080174EA
- ldrb r2, [r6]
- ldr r4, _08017518 @ =gBitTable
- ldr r1, _08017530 @ =gUnknown_02024A6A
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- bne _080174EA
- ldr r0, _08017514 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- lsls r0, r3, 2
- adds r0, r4
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080174EA
- b _080173C4
-_080174EA:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ldr r1, _08017510 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _080174A8
- ldr r1, _0801750C @ =0x00016059
- add r1, r9
- movs r0, 0x3
- strb r0, [r1]
- b _080176A0
- .align 2, 0
-_08017508: .4byte 0x0001605a
-_0801750C: .4byte 0x00016059
-_08017510: .4byte gUnknown_02024A68
-_08017514: .4byte gUnknown_02024C0C
-_08017518: .4byte gBitTable
-_0801751C: .4byte 0x02000000
-_08017520: .4byte gUnknown_02024C09
-_08017524: .4byte gUnknown_02024C08
-_08017528: .4byte gBattleMons
-_0801752C: .4byte 0x00016113
-_08017530: .4byte gUnknown_02024A6A
-_08017534:
- ldr r0, _0801755C @ =gUnknown_02024C09
- ldrb r0, [r0]
- bl sub_8015740
- ldr r2, _08017560 @ =0x02000000
- ldr r0, _08017564 @ =0x0001605a
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _08017568 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _08017570
- ldr r0, _0801756C @ =0x00016059
- adds r1, r2, r0
- movs r0, 0x3
- b _0801769C
- .align 2, 0
-_0801755C: .4byte gUnknown_02024C09
-_08017560: .4byte 0x02000000
-_08017564: .4byte 0x0001605a
-_08017568: .4byte gUnknown_02024A68
-_0801756C: .4byte 0x00016059
-_08017570:
- ldr r0, _08017578 @ =0x00016059
- adds r1, r2, r0
- movs r0, 0x1
- b _0801769C
- .align 2, 0
-_08017578: .4byte 0x00016059
-_0801757C:
- ldr r1, _080175D8 @ =0x0001605a
- add r1, r9
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080175DC @ =0x00016059
- add r1, r9
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0801758E:
- ldr r7, _080175E0 @ =gUnknown_02024C09
- ldr r6, _080175E4 @ =gUnknown_02024C08
- ldr r1, _080175E8 @ =0x02000000
- mov r8, r1
- ldr r3, _080175D8 @ =0x0001605a
- add r3, r8
- ldr r5, _080175EC @ =gBattleMons
- ldr r4, _080175F0 @ =gBitTable
-_0801759E:
- ldrb r0, [r3]
- strb r0, [r6]
- strb r0, [r7]
- ldrb r2, [r3]
- movs r0, 0x58
- muls r0, r2
- adds r0, r5
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _080175C4
- ldr r0, _080175F4 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- lsls r0, r2, 2
- adds r0, r4
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080175C4
- b _080173DC
-_080175C4:
- adds r0, r2, 0x1
- strb r0, [r3]
- ldr r1, _080175F8 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _0801759E
- b _08017612
- .align 2, 0
-_080175D8: .4byte 0x0001605a
-_080175DC: .4byte 0x00016059
-_080175E0: .4byte gUnknown_02024C09
-_080175E4: .4byte gUnknown_02024C08
-_080175E8: .4byte 0x02000000
-_080175EC: .4byte gBattleMons
-_080175F0: .4byte gBitTable
-_080175F4: .4byte gUnknown_02024C0C
-_080175F8: .4byte gUnknown_02024A68
-_080175FC:
- ldr r0, _0801761C @ =0x0001605a
- add r0, r9
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, _08017620 @ =gUnknown_02024A68
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r0]
- cmp r1, r0
- bne _08017628
-_08017612:
- ldr r1, _08017624 @ =0x00016059
- add r1, r9
- movs r0, 0x6
- strb r0, [r1]
- b _080176A0
- .align 2, 0
-_0801761C: .4byte 0x0001605a
-_08017620: .4byte gUnknown_02024A68
-_08017624: .4byte 0x00016059
-_08017628:
- ldr r1, _08017634 @ =0x00016059
- add r1, r9
- movs r0, 0x4
- strb r0, [r1]
- b _080176A0
- .align 2, 0
-_08017634: .4byte 0x00016059
-_08017638:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08017652
- b _080173EA
-_08017652:
- str r0, [sp]
- movs r0, 0xB
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08017668
- b _080173EA
-_08017668:
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x1
- bl sub_801A02C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0801767C
- b _080173EA
-_0801767C:
- str r0, [sp]
- movs r0, 0x6
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08017692
- b _080173EA
-_08017692:
- ldr r2, _080176C0 @ =0x02000000
- ldr r0, _080176C4 @ =0x00016059
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
-_0801769C:
- strb r0, [r1]
- mov r9, r2
-_080176A0:
- ldr r0, _080176C4 @ =0x00016059
- add r0, r9
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _080176AC
- b _080173FC
-_080176AC:
- movs r0, 0
-_080176AE:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080176C0: .4byte 0x02000000
-_080176C4: .4byte 0x00016059
- thumb_func_end sub_80173A4
-
- thumb_func_start b_clear_atk_up_if_hit_flag_unless_enraged
-b_clear_atk_up_if_hit_flag_unless_enraged: @ 80176C8
- push {r4-r6,lr}
- movs r3, 0
- ldr r0, _08017708 @ =gUnknown_02024A68
- adds r5, r0, 0
- ldrb r0, [r5]
- cmp r3, r0
- bge _08017700
- ldr r4, _0801770C @ =gUnknown_02024C60
- movs r6, 0x80
- lsls r6, 16
- ldr r2, _08017710 @ =gUnknown_02024AD0
-_080176DE:
- ldr r1, [r2]
- adds r0, r1, 0
- ands r0, r6
- cmp r0, 0
- beq _080176F4
- ldrh r0, [r4]
- cmp r0, 0x63
- beq _080176F4
- ldr r0, _08017714 @ =0xff7fffff
- ands r1, r0
- str r1, [r2]
-_080176F4:
- adds r4, 0x2
- adds r2, 0x58
- adds r3, 0x1
- ldrb r0, [r5]
- cmp r3, r0
- blt _080176DE
-_08017700:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08017708: .4byte gUnknown_02024A68
-_0801770C: .4byte gUnknown_02024C60
-_08017710: .4byte gUnknown_02024AD0
-_08017714: .4byte 0xff7fffff
- thumb_func_end b_clear_atk_up_if_hit_flag_unless_enraged
-
- thumb_func_start sub_8017718
-sub_8017718: @ 8017718
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- movs r0, 0
- mov r9, r0
- ldr r1, _08017734 @ =0x02016090
- mov r10, r1
- ldr r2, _08017738 @ =0xfffe9f70
- add r2, r10
- mov r8, r2
- b _08017746
- .align 2, 0
-_08017734: .4byte 0x02016090
-_08017738: .4byte 0xfffe9f70
-_0801773C:
- mov r4, r9
- cmp r4, 0
- beq _08017746
- bl _08017FAC
-_08017746:
- ldr r0, _08017760 @ =0x000160e7
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0xE
- bls _08017754
- bl _08017F9E
-_08017754:
- lsls r0, 2
- ldr r1, _08017764 @ =_08017768
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08017760: .4byte 0x000160e7
-_08017764: .4byte _08017768
- .align 2, 0
-_08017768:
- .4byte _080177A4
- .4byte _080177E4
- .4byte _08017920
- .4byte _080179D8
- .4byte _08017A50
- .4byte _08017AC8
- .4byte _08017B1C
- .4byte _08017B98
- .4byte _08017C1C
- .4byte _08017C60
- .4byte _08017D3C
- .4byte _08017DC0
- .4byte _08017E5C
- .4byte _08017F48
- .4byte _08017F9E
-_080177A4:
- ldr r1, _080177D0 @ =gBattleMons
- ldr r3, _080177D4 @ =gUnknown_02024C07
- ldrb r2, [r3]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, _080177D8 @ =0xfdffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _080177DC @ =gUnknown_02024C98
- ldrb r2, [r3]
- lsls r2, 2
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _080177E0 @ =0xffffbfff
- ands r0, r1
- str r0, [r2]
- bl _08017F94
- .align 2, 0
-_080177D0: .4byte gBattleMons
-_080177D4: .4byte gUnknown_02024C07
-_080177D8: .4byte 0xfdffffff
-_080177DC: .4byte gUnknown_02024C98
-_080177E0: .4byte 0xffffbfff
-_080177E4:
- ldr r7, _0801784C @ =gBattleMons
- ldr r4, _08017850 @ =gUnknown_02024C07
- ldrb r1, [r4]
- movs r5, 0x58
- adds r0, r1, 0
- muls r0, r5
- adds r6, r7, 0
- adds r6, 0x4C
- adds r0, r6
- ldr r0, [r0]
- movs r2, 0x7
- mov r8, r2
- ands r0, r2
- cmp r0, 0
- bne _08017804
- b _08017D90
-_08017804:
- adds r0, r1, 0
- bl sub_8025A44
- lsls r0, 24
- cmp r0, 0
- beq _08017864
- ldrb r0, [r4]
- adds r2, r0, 0
- muls r2, r5
- adds r2, r6
- ldr r0, [r2]
- movs r1, 0x8
- negs r1, r1
- ands r0, r1
- str r0, [r2]
- ldrb r0, [r4]
- adds r2, r0, 0
- muls r2, r5
- adds r0, r7, 0
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _08017854 @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _08017858 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- ldr r1, _0801785C @ =gUnknown_02024C10
- ldr r0, _08017860 @ =gUnknown_081D94FB
- str r0, [r1]
- movs r4, 0x2
- mov r9, r4
- b _08017D90
- .align 2, 0
-_0801784C: .4byte gBattleMons
-_08017850: .4byte gUnknown_02024C07
-_08017854: .4byte 0xf7ffffff
-_08017858: .4byte gUnknown_02024D1E
-_0801785C: .4byte gUnknown_02024C10
-_08017860: .4byte gUnknown_081D94FB
-_08017864:
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r0, r1, r7
- adds r0, 0x20
- ldrb r0, [r0]
- movs r3, 0x1
- cmp r0, 0x30
- bne _08017878
- movs r3, 0x2
-_08017878:
- adds r2, r1, r6
- ldr r1, [r2]
- adds r0, r1, 0
- mov r7, r8
- ands r0, r7
- cmp r0, r3
- bcs _08017890
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- b _08017894
-_08017890:
- subs r0, r1, r3
- str r0, [r2]
-_08017894:
- ldr r2, _080178D8 @ =gBattleMons
- ldr r0, _080178DC @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r4, [r0]
- movs r0, 0x7
- ands r4, r0
- cmp r4, 0
- beq _080178F0
- ldr r0, _080178E0 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xAD
- bne _080178B8
- b _08017D90
-_080178B8:
- cmp r0, 0xD6
- bne _080178BE
- b _08017D90
-_080178BE:
- ldr r1, _080178E4 @ =gUnknown_02024C10
- ldr r0, _080178E8 @ =gUnknown_081D94EE
- str r0, [r1]
- ldr r2, _080178EC @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r0, 0x2
- mov r9, r0
- b _08017D90
- .align 2, 0
-_080178D8: .4byte gBattleMons
-_080178DC: .4byte gUnknown_02024C07
-_080178E0: .4byte gUnknown_02024BE6
-_080178E4: .4byte gUnknown_02024C10
-_080178E8: .4byte gUnknown_081D94EE
-_080178EC: .4byte gUnknown_02024C6C
-_080178F0:
- adds r2, 0x50
- adds r2, r1, r2
- ldr r0, [r2]
- ldr r1, _08017910 @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r0, _08017914 @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- ldr r1, _08017918 @ =gUnknown_02024C10
- ldr r0, _0801791C @ =gUnknown_081D94FB
- str r0, [r1]
- movs r1, 0x2
- b _08017D8E
- .align 2, 0
-_08017910: .4byte 0xf7ffffff
-_08017914: .4byte gUnknown_02024D1E
-_08017918: .4byte gUnknown_02024C10
-_0801791C: .4byte gUnknown_081D94FB
-_08017920:
- ldr r1, _0801797C @ =gBattleMons
- ldr r7, _08017980 @ =gUnknown_02024C07
- ldrb r0, [r7]
- movs r6, 0x58
- muls r0, r6
- adds r5, r1, 0
- adds r5, 0x4C
- adds r0, r5
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0801793C
- b _08017F94
-_0801793C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _080179A8
- ldr r2, _08017984 @ =gBattleMoves
- ldr r0, _08017988 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7D
- beq _08017998
- ldr r1, _0801798C @ =gUnknown_02024C10
- ldr r0, _08017990 @ =gUnknown_081D9545
- str r0, [r1]
- ldr r2, _08017994 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 2
- orrs r0, r1
- str r0, [r2]
- b _080179C8
- .align 2, 0
-_0801797C: .4byte gBattleMons
-_08017980: .4byte gUnknown_02024C07
-_08017984: .4byte gBattleMoves
-_08017988: .4byte gUnknown_02024BE6
-_0801798C: .4byte gUnknown_02024C10
-_08017990: .4byte gUnknown_081D9545
-_08017994: .4byte gUnknown_02024C6C
-_08017998:
- ldr r2, _080179A0 @ =0x02000000
- ldr r7, _080179A4 @ =0x000160e7
- adds r1, r2, r7
- b _08017D96
- .align 2, 0
-_080179A0: .4byte 0x02000000
-_080179A4: .4byte 0x000160e7
-_080179A8:
- ldrb r0, [r7]
- adds r2, r0, 0
- muls r2, r6
- adds r2, r5
- ldr r0, [r2]
- movs r1, 0x21
- negs r1, r1
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _080179CC @ =gUnknown_02024C10
- ldr r0, _080179D0 @ =gUnknown_081D9552
- str r0, [r1]
- ldr r0, _080179D4 @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
-_080179C8:
- movs r0, 0x2
- b _08017E3C
- .align 2, 0
-_080179CC: .4byte gUnknown_02024C10
-_080179D0: .4byte gUnknown_081D9552
-_080179D4: .4byte gUnknown_02024D1E
-_080179D8:
- ldr r1, _08017A30 @ =gBattleMons
- ldr r0, _08017A34 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x36
- beq _080179EE
- b _08017D90
-_080179EE:
- ldr r0, _08017A38 @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x18]
- lsls r0, 31
- cmp r0, 0
- bne _08017A02
- b _08017D90
-_08017A02:
- adds r0, r2, 0
- bl b_cancel_multi_turn_move_maybe
- ldr r2, _08017A3C @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08017A40 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
- ldr r1, _08017A44 @ =gUnknown_02024C10
- ldr r0, _08017A48 @ =gUnknown_081D9977
- str r0, [r1]
- ldr r2, _08017A4C @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r2, 0x1
- mov r9, r2
- b _08017D90
- .align 2, 0
-_08017A30: .4byte gBattleMons
-_08017A34: .4byte gUnknown_02024C07
-_08017A38: .4byte gUnknown_02024CA8
-_08017A3C: .4byte gUnknown_02024C6C
-_08017A40: .4byte gUnknown_02024D1E
-_08017A44: .4byte gUnknown_02024C10
-_08017A48: .4byte gUnknown_081D9977
-_08017A4C: .4byte gUnknown_02024C68
-_08017A50:
- ldr r1, _08017AA4 @ =gBattleMons
- ldr r3, _08017AA8 @ =gUnknown_02024C07
- ldrb r2, [r3]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 15
- ands r0, r1
- cmp r0, 0
- beq _08017A9C
- ldr r0, _08017AAC @ =0xffbfffff
- ands r1, r0
- str r1, [r2]
- ldr r2, _08017AB0 @ =gUnknown_02024CA8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x19]
- ldrb r0, [r3]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08017AB4 @ =gUnknown_02024C10
- ldr r0, _08017AB8 @ =gUnknown_081D7956
- str r0, [r1]
- ldr r2, _08017ABC @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r7, 0x1
- mov r9, r7
-_08017A9C:
- ldr r2, _08017AC0 @ =0x02000000
- ldr r0, _08017AC4 @ =0x000160e7
- adds r1, r2, r0
- b _08017D96
- .align 2, 0
-_08017AA4: .4byte gBattleMons
-_08017AA8: .4byte gUnknown_02024C07
-_08017AAC: .4byte 0xffbfffff
-_08017AB0: .4byte gUnknown_02024CA8
-_08017AB4: .4byte gUnknown_02024C10
-_08017AB8: .4byte gUnknown_081D7956
-_08017ABC: .4byte gUnknown_02024C6C
-_08017AC0: .4byte 0x02000000
-_08017AC4: .4byte 0x000160e7
-_08017AC8:
- ldr r1, _08017B08 @ =gBattleMons
- ldr r3, _08017B0C @ =gUnknown_02024C07
- ldrb r2, [r3]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08017AE2
- b _08017D90
-_08017AE2:
- movs r0, 0x9
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- ldr r0, _08017B10 @ =gUnknown_02024D28
- ldrb r2, [r3]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldrb r0, [r3]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08017B14 @ =gUnknown_02024C10
- ldr r0, _08017B18 @ =gUnknown_081D9573
- b _08017D7E
- .align 2, 0
-_08017B08: .4byte gBattleMons
-_08017B0C: .4byte gUnknown_02024C07
-_08017B10: .4byte gUnknown_02024D28
-_08017B14: .4byte gUnknown_02024C10
-_08017B18: .4byte gUnknown_081D9573
-_08017B1C:
- ldr r0, _08017B74 @ =gUnknown_02024CA8
- ldr r3, _08017B78 @ =gUnknown_02024C07
- ldrb r2, [r3]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldr r0, _08017B7C @ =gUnknown_02024BE6
- ldrh r1, [r1, 0x4]
- ldrh r0, [r0]
- cmp r1, r0
- beq _08017B36
- b _08017D90
-_08017B36:
- cmp r1, 0
- bne _08017B3C
- b _08017D90
-_08017B3C:
- ldr r0, _08017B80 @ =gUnknown_02024D28
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x1]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldr r0, _08017B84 @ =0x02000000
- ldrb r1, [r3]
- ldr r7, _08017B88 @ =0x00016003
- adds r0, r7
- strb r1, [r0]
- ldrb r0, [r3]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08017B8C @ =gUnknown_02024C10
- ldr r0, _08017B90 @ =gUnknown_081D9139
- str r0, [r1]
- ldr r2, _08017B94 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r0, 0x1
- mov r9, r0
- b _08017D90
- .align 2, 0
-_08017B74: .4byte gUnknown_02024CA8
-_08017B78: .4byte gUnknown_02024C07
-_08017B7C: .4byte gUnknown_02024BE6
-_08017B80: .4byte gUnknown_02024D28
-_08017B84: .4byte 0x02000000
-_08017B88: .4byte 0x00016003
-_08017B8C: .4byte gUnknown_02024C10
-_08017B90: .4byte gUnknown_081D9139
-_08017B94: .4byte gUnknown_02024C6C
-_08017B98:
- ldr r0, _08017BF4 @ =gUnknown_02024CA8
- ldr r4, _08017BF8 @ =gUnknown_02024C07
- ldrb r3, [r4]
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x13]
- lsls r0, 28
- cmp r0, 0
- beq _08017BEC
- ldr r2, _08017BFC @ =gBattleMoves
- ldr r0, _08017C00 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _08017BEC
- ldr r0, _08017C04 @ =gUnknown_02024D28
- lsls r2, r3, 4
- adds r2, r0
- ldrb r0, [r2, 0x2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldrb r0, [r4]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08017C08 @ =gUnknown_02024C10
- ldr r0, _08017C0C @ =gUnknown_081D938F
- str r0, [r1]
- ldr r2, _08017C10 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r7, 0x1
- mov r9, r7
-_08017BEC:
- ldr r2, _08017C14 @ =0x02000000
- ldr r0, _08017C18 @ =0x000160e7
- adds r1, r2, r0
- b _08017D96
- .align 2, 0
-_08017BF4: .4byte gUnknown_02024CA8
-_08017BF8: .4byte gUnknown_02024C07
-_08017BFC: .4byte gBattleMoves
-_08017C00: .4byte gUnknown_02024BE6
-_08017C04: .4byte gUnknown_02024D28
-_08017C08: .4byte gUnknown_02024C10
-_08017C0C: .4byte gUnknown_081D938F
-_08017C10: .4byte gUnknown_02024C6C
-_08017C14: .4byte 0x02000000
-_08017C18: .4byte 0x000160e7
-_08017C1C:
- ldr r4, _08017C4C @ =gUnknown_02024C07
- ldrb r0, [r4]
- ldr r1, _08017C50 @ =gUnknown_02024BE6
- ldrh r1, [r1]
- bl sub_8015D5C
- lsls r0, 24
- cmp r0, 0
- bne _08017C30
- b _08017D90
-_08017C30:
- ldr r0, _08017C54 @ =gUnknown_02024D28
- ldrb r2, [r4]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r4]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08017C58 @ =gUnknown_02024C10
- ldr r0, _08017C5C @ =gUnknown_081D9459
- b _08017D7E
- .align 2, 0
-_08017C4C: .4byte gUnknown_02024C07
-_08017C50: .4byte gUnknown_02024BE6
-_08017C54: .4byte gUnknown_02024D28
-_08017C58: .4byte gUnknown_02024C10
-_08017C5C: .4byte gUnknown_081D9459
-_08017C60:
- ldr r7, _08017CAC @ =gBattleMons
- ldr r5, _08017CB0 @ =gUnknown_02024C07
- ldrb r0, [r5]
- movs r6, 0x58
- muls r0, r6
- adds r4, r7, 0
- adds r4, 0x50
- adds r2, r0, r4
- ldr r1, [r2]
- movs r3, 0x7
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _08017C7E
- b _08017F94
-_08017C7E:
- subs r0, r1, 0x1
- str r0, [r2]
- ldrb r0, [r5]
- muls r0, r6
- adds r0, r4
- ldr r0, [r0]
- ands r0, r3
- cmp r0, 0
- beq _08017D24
- bl Random
- movs r1, 0x1
- movs r2, 0x1
- ands r2, r0
- cmp r2, 0
- beq _08017CB8
- ldr r1, _08017CB4 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
- bl b_movescr_stack_push_cursor
- b _08017D02
- .align 2, 0
-_08017CAC: .4byte gBattleMons
-_08017CB0: .4byte gUnknown_02024C07
-_08017CB4: .4byte gUnknown_02024D1E
-_08017CB8:
- ldr r0, _08017D08 @ =gUnknown_02024D1E
- movs r4, 0x1
- strb r1, [r0, 0x5]
- ldr r1, _08017D0C @ =gUnknown_02024C08
- ldrb r0, [r5]
- strb r0, [r1]
- ldrb r0, [r5]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r7
- movs r0, 0x28
- str r0, [sp]
- str r2, [sp, 0x4]
- ldrb r0, [r5]
- str r0, [sp, 0x8]
- ldrb r0, [r5]
- str r0, [sp, 0xC]
- adds r0, r1, 0
- movs r2, 0x1
- movs r3, 0
- bl CalculateBaseDamage
- ldr r1, _08017D10 @ =gUnknown_02024BEC
- str r0, [r1]
- ldr r0, _08017D14 @ =gUnknown_02024D28
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- orrs r0, r4
- strb r0, [r1, 0x1]
- ldr r2, _08017D18 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
-_08017D02:
- ldr r1, _08017D1C @ =gUnknown_02024C10
- ldr r0, _08017D20 @ =gUnknown_081D9595
- b _08017D2C
- .align 2, 0
-_08017D08: .4byte gUnknown_02024D1E
-_08017D0C: .4byte gUnknown_02024C08
-_08017D10: .4byte gUnknown_02024BEC
-_08017D14: .4byte gUnknown_02024D28
-_08017D18: .4byte gUnknown_02024C6C
-_08017D1C: .4byte gUnknown_02024C10
-_08017D20: .4byte gUnknown_081D9595
-_08017D24:
- bl b_movescr_stack_push_cursor
- ldr r1, _08017D34 @ =gUnknown_02024C10
- ldr r0, _08017D38 @ =gUnknown_081D95D4
-_08017D2C:
- str r0, [r1]
- movs r7, 0x1
- b _08017F8E
- .align 2, 0
-_08017D34: .4byte gUnknown_02024C10
-_08017D38: .4byte gUnknown_081D95D4
-_08017D3C:
- ldr r1, _08017DA0 @ =gBattleMons
- ldr r4, _08017DA4 @ =gUnknown_02024C07
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08017D90
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- cmp r1, 0
- bne _08017D90
- ldr r0, _08017DA8 @ =gUnknown_02024D28
- ldrb r2, [r4]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08017DAC @ =gUnknown_02024C10
- ldr r0, _08017DB0 @ =gUnknown_081D9566
-_08017D7E:
- str r0, [r1]
- ldr r2, _08017DB4 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r1, 0x1
-_08017D8E:
- mov r9, r1
-_08017D90:
- ldr r2, _08017DB8 @ =0x02000000
- ldr r4, _08017DBC @ =0x000160e7
- adds r1, r2, r4
-_08017D96:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r8, r2
- b _08017F9E
- .align 2, 0
-_08017DA0: .4byte gBattleMons
-_08017DA4: .4byte gUnknown_02024C07
-_08017DA8: .4byte gUnknown_02024D28
-_08017DAC: .4byte gUnknown_02024C10
-_08017DB0: .4byte gUnknown_081D9566
-_08017DB4: .4byte gUnknown_02024C6C
-_08017DB8: .4byte 0x02000000
-_08017DBC: .4byte 0x000160e7
-_08017DC0:
- ldr r1, _08017DFC @ =gBattleMons
- ldr r4, _08017E00 @ =gUnknown_02024C07
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0xF0
- lsls r0, 12
- ands r1, r0
- cmp r1, 0
- bne _08017DDC
- b _08017F94
-_08017DDC:
- lsrs r0, r1, 16
- bl sub_804114C
- ldr r1, _08017E04 @ =0x02000000
- ldr r7, _08017E08 @ =0x00016003
- adds r1, r7
- strb r0, [r1]
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08017E0C
- bl b_movescr_stack_push_cursor
- b _08017E34
- .align 2, 0
-_08017DFC: .4byte gBattleMons
-_08017E00: .4byte gUnknown_02024C07
-_08017E04: .4byte 0x02000000
-_08017E08: .4byte 0x00016003
-_08017E0C:
- ldr r0, _08017E44 @ =gUnknown_081D9608
- bl b_movescr_stack_push
- ldr r2, _08017E48 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- ldr r0, _08017E4C @ =gUnknown_02024D28
- ldrb r2, [r4]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x1]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r4]
- bl b_cancel_multi_turn_move_maybe
-_08017E34:
- ldr r1, _08017E50 @ =gUnknown_02024C10
- ldr r0, _08017E54 @ =gUnknown_081D95FB
- str r0, [r1]
- movs r0, 0x1
-_08017E3C:
- mov r9, r0
- ldr r1, _08017E58 @ =0x02000000
- mov r8, r1
- b _08017F94
- .align 2, 0
-_08017E44: .4byte gUnknown_081D9608
-_08017E48: .4byte gUnknown_02024C6C
-_08017E4C: .4byte gUnknown_02024D28
-_08017E50: .4byte gUnknown_02024C10
-_08017E54: .4byte gUnknown_081D95FB
-_08017E58: .4byte 0x02000000
-_08017E5C:
- ldr r1, _08017E98 @ =gBattleMons
- ldr r6, _08017E9C @ =gUnknown_02024C07
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r1, 0x50
- adds r3, r0, r1
- ldr r2, [r3]
- movs r4, 0xC0
- lsls r4, 2
- adds r0, r2, 0
- ands r0, r4
- cmp r0, 0
- bne _08017E7A
- b _08017F94
-_08017E7A:
- ldr r7, _08017EA0 @ =0xffffff00
- adds r0, r2, r7
- str r0, [r3]
- ldrb r0, [r6]
- muls r0, r5
- adds r1, r0, r1
- ldr r2, [r1]
- adds r0, r2, 0
- ands r0, r4
- cmp r0, 0
- beq _08017EAC
- ldr r1, _08017EA4 @ =gUnknown_02024C10
- ldr r0, _08017EA8 @ =gUnknown_081D90A7
- b _08017F38
- .align 2, 0
-_08017E98: .4byte gBattleMons
-_08017E9C: .4byte gUnknown_02024C07
-_08017EA0: .4byte 0xffffff00
-_08017EA4: .4byte gUnknown_02024C10
-_08017EA8: .4byte gUnknown_081D90A7
-_08017EAC:
- ldr r0, _08017F0C @ =0xffffefff
- ands r2, r0
- str r2, [r1]
- ldr r2, _08017F10 @ =gUnknown_02024BF4
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, 0
- beq _08017F34
- ldr r1, _08017F14 @ =gUnknown_02024BE6
- movs r0, 0x75
- strh r0, [r1]
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- lsls r0, 1
- mov r1, r10
- str r0, [r1]
- ldr r4, _08017F18 @ =gUnknown_02024C08
- ldr r1, _08017F1C @ =gUnknown_02024C74
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r0, _08017F20 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08017F24 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08017EFE
- movs r0, 0x75
- movs r1, 0x1
- bl sub_801B5C0
- strb r0, [r4]
-_08017EFE:
- ldr r1, _08017F28 @ =gUnknown_02024C10
- ldr r0, _08017F2C @ =gUnknown_081D90B2
- str r0, [r1]
- ldr r2, _08017F30 @ =0x02000000
- mov r8, r2
- b _08017F3A
- .align 2, 0
-_08017F0C: .4byte 0xffffefff
-_08017F10: .4byte gUnknown_02024BF4
-_08017F14: .4byte gUnknown_02024BE6
-_08017F18: .4byte gUnknown_02024C08
-_08017F1C: .4byte gUnknown_02024C74
-_08017F20: .4byte gUnknown_02024C0C
-_08017F24: .4byte gBitTable
-_08017F28: .4byte gUnknown_02024C10
-_08017F2C: .4byte gUnknown_081D90B2
-_08017F30: .4byte 0x02000000
-_08017F34:
- ldr r1, _08017F40 @ =gUnknown_02024C10
- ldr r0, _08017F44 @ =gUnknown_081D90F1
-_08017F38:
- str r0, [r1]
-_08017F3A:
- movs r4, 0x1
- mov r9, r4
- b _08017F94
- .align 2, 0
-_08017F40: .4byte gUnknown_02024C10
-_08017F44: .4byte gUnknown_081D90F1
-_08017F48:
- ldr r1, _08017FEC @ =gBattleMons
- ldr r0, _08017FF0 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r4, r0, r1
- ldr r3, [r4]
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _08017F94
- ldr r2, _08017FF4 @ =gBattleMoves
- ldr r0, _08017FF8 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7D
- bne _08017F8C
- movs r0, 0x21
- negs r0, r0
- ands r3, r0
- str r3, [r4]
- bl b_movescr_stack_push_cursor
- ldr r1, _08017FFC @ =gUnknown_02024C10
- ldr r0, _08018000 @ =gUnknown_081D9552
- str r0, [r1]
- ldr r1, _08018004 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_08017F8C:
- movs r7, 0x2
-_08017F8E:
- mov r9, r7
- ldr r0, _08018008 @ =0x02000000
- mov r8, r0
-_08017F94:
- ldr r1, _0801800C @ =0x000160e7
- add r1, r8
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08017F9E:
- ldr r0, _0801800C @ =0x000160e7
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0xE
- beq _08017FAC
- bl _0801773C
-_08017FAC:
- mov r1, r9
- cmp r1, 0x2
- bne _08017FD8
- ldr r4, _08018010 @ =gUnknown_02024A60
- ldr r0, _08017FF0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r4]
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _08018014 @ =gUnknown_02024ACC
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08017FD8:
- mov r0, r9
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08017FEC: .4byte gBattleMons
-_08017FF0: .4byte gUnknown_02024C07
-_08017FF4: .4byte gBattleMoves
-_08017FF8: .4byte gUnknown_02024BE6
-_08017FFC: .4byte gUnknown_02024C10
-_08018000: .4byte gUnknown_081D9552
-_08018004: .4byte gUnknown_02024D1E
-_08018008: .4byte 0x02000000
-_0801800C: .4byte 0x000160e7
-_08018010: .4byte gUnknown_02024A60
-_08018014: .4byte gUnknown_02024ACC
- thumb_func_end sub_8017718
-
- thumb_func_start sub_8018018
-sub_8018018: @ 8018018
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r3, r4, 0
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- ldr r0, _08018044 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08018048
- movs r0, 0
- b _08018198
- .align 2, 0
-_08018044: .4byte gUnknown_020239F8
-_08018048:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080180D4
- adds r0, r4, 0
- bl sub_803FC34
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- ldr r1, _080180CC @ =gEnemyParty
- mov r8, r1
- cmp r0, 0
- bne _0801806E
- ldr r2, _080180D0 @ =gPlayerParty
- mov r8, r2
-_0801806E:
- adds r0, r7, 0
- bl sub_803FBFC
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 1
- adds r5, r0, r6
- adds r0, r5, 0x3
- cmp r5, r0
- bge _080180BA
- adds r7, r0, 0
-_08018084:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080180B4
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _080180B4
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _080180BA
-_080180B4:
- adds r5, 0x1
- cmp r5, r7
- blt _08018084
-_080180BA:
- movs r1, 0
- lsls r0, r6, 1
- adds r0, r6
- adds r0, 0x3
- cmp r5, r0
- bne _080180C8
- movs r1, 0x1
-_080180C8:
- adds r0, r1, 0
- b _08018198
- .align 2, 0
-_080180CC: .4byte gEnemyParty
-_080180D0: .4byte gPlayerParty
-_080180D4:
- adds r0, r3, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08018100
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x3
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _080180FC @ =gEnemyParty
- mov r8, r2
- b _08018118
- .align 2, 0
-_080180FC: .4byte gEnemyParty
-_08018100:
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080181A8 @ =gPlayerParty
- mov r8, r0
-_08018118:
- mov r1, r10
- cmp r1, 0x6
- bne _08018128
- ldr r1, _080181AC @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r1
- ldrb r0, [r0]
- mov r10, r0
-_08018128:
- mov r2, r9
- cmp r2, 0x6
- bne _08018138
- ldr r1, _080181AC @ =gUnknown_02024A6A
- lsls r0, r6, 1
- adds r0, r1
- ldrb r0, [r0]
- mov r9, r0
-_08018138:
- movs r5, 0
-_0801813A:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0801818A
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _0801818A
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0801818A
- cmp r5, r10
- beq _0801818A
- cmp r5, r9
- beq _0801818A
- ldr r1, _080181B0 @ =0x02000000
- ldr r2, _080181B4 @ =0x00016068
- adds r0, r7, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r5, r0
- beq _0801818A
- adds r0, r6, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r5, r0
- bne _08018190
-_0801818A:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0801813A
-_08018190:
- movs r0, 0
- cmp r5, 0x6
- bne _08018198
- movs r0, 0x1
-_08018198:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080181A8: .4byte gPlayerParty
-_080181AC: .4byte gUnknown_02024A6A
-_080181B0: .4byte 0x02000000
-_080181B4: .4byte 0x00016068
- thumb_func_end sub_8018018
-
- thumb_func_start castform_switch
-castform_switch: @ 80181B8
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r1, _08018228 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r4, r0, r1
- ldrh r1, [r4]
- ldr r0, _0801822C @ =SPECIES_CASTFORM
- cmp r1, r0
- bne _0801825C
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3B
- bne _0801825C
- ldrh r0, [r4, 0x28]
- cmp r0, 0
- beq _0801825C
- str r5, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0801820A
- str r5, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08018230
-_0801820A:
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0
- beq _08018230
- adds r1, r4, 0
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0
- beq _08018230
- strb r5, [r2]
- strb r5, [r1]
- movs r0, 0x1
- b _08018314
- .align 2, 0
-_08018228: .4byte gBattleMons
-_0801822C: .4byte SPECIES_CASTFORM
-_08018230:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0801825C
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08018260
-_0801825C:
- movs r0, 0
- b _08018314
-_08018260:
- ldr r1, _0801831C @ =word_2024DB8
- ldrh r0, [r1]
- movs r2, 0xE7
- ands r2, r0
- adds r4, r1, 0
- cmp r2, 0
- bne _0801828E
- ldr r1, _08018320 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r3, r1, 0
- adds r3, 0x21
- ldrb r0, [r3]
- cmp r0, 0
- beq _0801828E
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0
- beq _0801828E
- strb r2, [r3]
- strb r2, [r1]
- movs r5, 0x1
-_0801828E:
- ldrh r1, [r4]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _080182BA
- ldr r1, _08018320 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r2, r1, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0xA
- beq _080182BA
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0xA
- beq _080182BA
- movs r0, 0xA
- strb r0, [r2]
- strb r0, [r1]
- movs r5, 0x2
-_080182BA:
- ldrh r1, [r4]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _080182E6
- ldr r1, _08018320 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r2, r1, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0xB
- beq _080182E6
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0xB
- beq _080182E6
- movs r0, 0xB
- strb r0, [r2]
- strb r0, [r1]
- movs r5, 0x3
-_080182E6:
- ldrh r1, [r4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08018312
- ldr r1, _08018320 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r2, r1, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0xF
- beq _08018312
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0xF
- beq _08018312
- movs r0, 0xF
- strb r0, [r2]
- strb r0, [r1]
- movs r5, 0x4
-_08018312:
- adds r0, r5, 0
-_08018314:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0801831C: .4byte word_2024DB8
-_08018320: .4byte gBattleMons
- thumb_func_end castform_switch
-
- thumb_func_start sub_8018324
-sub_8018324: @ 8018324
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- ldr r4, [sp, 0x48]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0
- mov r9, r0
- ldr r5, _08018380 @ =gUnknown_02024C07
- ldr r1, _08018384 @ =gUnknown_02024A68
- ldrb r0, [r5]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08018360
- mov r1, r10
- strb r1, [r5]
-_08018360:
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08018390
- ldr r1, _08018388 @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0801838C @ =gPlayerParty
- b _080183A0
- .align 2, 0
-_08018380: .4byte gUnknown_02024C07
-_08018384: .4byte gUnknown_02024A68
-_08018388: .4byte gUnknown_02024A6A
-_0801838C: .4byte gPlayerParty
-_08018390:
- ldr r1, _080183D0 @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080183D4 @ =gEnemyParty
-_080183A0:
- adds r7, r1, r0
- ldr r5, _080183D8 @ =gUnknown_02024C08
- ldr r1, _080183DC @ =gUnknown_02024A68
- ldrb r0, [r5]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080183B2
- mov r2, r10
- strb r2, [r5]
-_080183B2:
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080183E4
- ldr r1, _080183D0 @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080183E0 @ =gPlayerParty
- b _080183F4
- .align 2, 0
-_080183D0: .4byte gUnknown_02024A6A
-_080183D4: .4byte gEnemyParty
-_080183D8: .4byte gUnknown_02024C08
-_080183DC: .4byte gUnknown_02024A68
-_080183E0: .4byte gPlayerParty
-_080183E4:
- ldr r1, _08018444 @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08018448 @ =gEnemyParty
-_080183F4:
- adds r5, r1, r0
- adds r0, r7, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- adds r0, r7, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x10]
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x14]
- ldr r0, _0801844C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08018436
- bl _08019F92
-_08018436:
- mov r3, r8
- cmp r3, 0
- beq _08018454
- ldr r0, _08018450 @ =byte_2024C06
- strb r3, [r0]
- mov r8, r0
- b _0801846A
- .align 2, 0
-_08018444: .4byte gUnknown_02024A6A
-_08018448: .4byte gEnemyParty
-_0801844C: .4byte gUnknown_020239F8
-_08018450: .4byte byte_2024C06
-_08018454:
- ldr r2, _08018474 @ =byte_2024C06
- ldr r1, _08018478 @ =gBattleMons
- movs r0, 0x58
- mov r5, r10
- muls r5, r0
- adds r0, r5, 0
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r2]
- mov r8, r2
-_0801846A:
- cmp r4, 0
- beq _0801847C
- adds r3, r4, 0
- b _08018480
- .align 2, 0
-_08018474: .4byte byte_2024C06
-_08018478: .4byte gBattleMons
-_0801847C:
- ldr r0, _08018494 @ =gUnknown_02024BE6
- ldrh r3, [r0]
-_08018480:
- ldr r1, _08018498 @ =0x02000000
- ldr r2, _0801849C @ =0x0001601c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r7, r1, 0
- cmp r0, 0
- beq _080184A0
- movs r4, 0x3F
- ands r4, r0
- b _080184AC
- .align 2, 0
-_08018494: .4byte gUnknown_02024BE6
-_08018498: .4byte 0x02000000
-_0801849C: .4byte 0x0001601c
-_080184A0:
- ldr r1, _080184C0 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x2]
-_080184AC:
- ldr r5, [sp, 0x4]
- cmp r5, 0x13
- bls _080184B6
- bl _08019F76
-_080184B6:
- lsls r0, r5, 2
- ldr r1, _080184C4 @ =_080184C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080184C0: .4byte gBattleMoves
-_080184C4: .4byte _080184C8
- .align 2, 0
-_080184C8:
- .4byte _08018518
- .4byte _08018814
- .4byte _08018A40
- .4byte _08018AD8
- .4byte _08018CF0
- .4byte _08019448
- .4byte _080197B4
- .4byte _08019804
- .4byte _08019880
- .4byte _080198FC
- .4byte _08019B1C
- .4byte _08019940
- .4byte _08019B60
- .4byte _08019BBC
- .4byte _08019C18
- .4byte _08019D18
- .4byte _08019D5C
- .4byte _08019DB8
- .4byte _08019F44
- .4byte _08019CD4
-_08018518:
- ldr r2, _0801854C @ =gUnknown_02024C07
- ldr r0, _08018550 @ =gUnknown_02024A68
- ldrb r1, [r2]
- adds r5, r0, 0
- ldrb r0, [r5]
- cmp r1, r0
- bcc _0801852A
- mov r1, r10
- strb r1, [r2]
-_0801852A:
- mov r2, r8
- ldrb r0, [r2]
- cmp r0, 0x2D
- bne _08018534
- b _080186B8
-_08018534:
- cmp r0, 0x2D
- bgt _08018564
- cmp r0, 0xD
- bne _0801853E
- b _080187DC
-_0801853E:
- cmp r0, 0xD
- bgt _08018554
- cmp r0, 0x2
- bne _08018548
- b _08018680
-_08018548:
- bl _08019F76
- .align 2, 0
-_0801854C: .4byte gUnknown_02024C07
-_08018550: .4byte gUnknown_02024A68
-_08018554:
- cmp r0, 0x16
- bne _0801855A
- b _08018728
-_0801855A:
- cmp r0, 0x24
- bne _08018560
- b _080187A0
-_08018560:
- bl _08019F76
-_08018564:
- cmp r0, 0x46
- bne _0801856A
- b _080186F0
-_0801856A:
- cmp r0, 0x46
- bgt _08018578
- cmp r0, 0x3B
- bne _08018574
- b _0801875C
-_08018574:
- bl _08019F76
-_08018578:
- cmp r0, 0x4D
- bne _0801857E
- b _080187DC
-_0801857E:
- cmp r0, 0xFF
- beq _08018586
- bl _08019F76
-_08018586:
- bl weather_get_current
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x3
- cmp r0, 0xA
- bhi _0801864C
- lsls r0, 2
- ldr r1, _080185A0 @ =_080185A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080185A0: .4byte _080185A4
- .align 2, 0
-_080185A4:
- .4byte _080185D0
- .4byte _0801864C
- .4byte _080185D0
- .4byte _0801864C
- .4byte _0801864C
- .4byte _080185F8
- .4byte _0801864C
- .4byte _0801864C
- .4byte _0801864C
- .4byte _08018620
- .4byte _080185D0
-_080185D0:
- ldr r2, _080185EC @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801864C
- movs r0, 0x5
- strh r0, [r2]
- ldr r0, _080185F0 @ =0x02000000
- ldr r3, _080185F4 @ =0x000160a4
- adds r2, r0, r3
- movs r1, 0xA
- b _08018638
- .align 2, 0
-_080185EC: .4byte word_2024DB8
-_080185F0: .4byte 0x02000000
-_080185F4: .4byte 0x000160a4
-_080185F8:
- ldr r3, _08018614 @ =word_2024DB8
- ldrh r1, [r3]
- movs r2, 0x18
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0801864C
- strh r2, [r3]
- ldr r0, _08018618 @ =0x02000000
- ldr r3, _0801861C @ =0x000160a4
- adds r2, r0, r3
- movs r1, 0xC
- b _08018638
- .align 2, 0
-_08018614: .4byte word_2024DB8
-_08018618: .4byte 0x02000000
-_0801861C: .4byte 0x000160a4
-_08018620:
- ldr r3, _08018668 @ =word_2024DB8
- ldrh r1, [r3]
- movs r2, 0x60
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0801864C
- strh r2, [r3]
- ldr r0, _0801866C @ =0x02000000
- ldr r3, _08018670 @ =0x000160a4
- adds r2, r0, r3
- movs r1, 0xB
-_08018638:
- strb r1, [r2]
- ldr r5, _08018674 @ =0x00016003
- adds r0, r5
- mov r1, r10
- strb r1, [r0]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801864C:
- mov r2, r9
- cmp r2, 0
- bne _08018656
- bl _08019F92
-_08018656:
- bl weather_get_current
- ldr r1, _08018678 @ =gUnknown_02024D1E
- strb r0, [r1, 0x5]
- ldr r0, _0801867C @ =gUnknown_081D901D
- bl b_push_move_exec
- bl _08019F76
- .align 2, 0
-_08018668: .4byte word_2024DB8
-_0801866C: .4byte 0x02000000
-_08018670: .4byte 0x000160a4
-_08018674: .4byte 0x00016003
-_08018678: .4byte gUnknown_02024D1E
-_0801867C: .4byte gUnknown_081D901D
-_08018680:
- ldr r2, _080186A8 @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08018690
- bl _08019F76
-_08018690:
- movs r0, 0x5
- strh r0, [r2]
- ldr r0, _080186AC @ =gUnknown_081D9704
- bl b_push_move_exec
- ldr r0, _080186B0 @ =0x02000000
- ldr r3, _080186B4 @ =0x00016003
- adds r0, r3
- mov r5, r10
- strb r5, [r0]
- bl _08019F22
- .align 2, 0
-_080186A8: .4byte word_2024DB8
-_080186AC: .4byte gUnknown_081D9704
-_080186B0: .4byte 0x02000000
-_080186B4: .4byte 0x00016003
-_080186B8:
- ldr r2, _080186E0 @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080186C8
- bl _08019F76
-_080186C8:
- movs r0, 0x18
- strh r0, [r2]
- ldr r0, _080186E4 @ =gUnknown_081D9744
- bl b_push_move_exec
- ldr r0, _080186E8 @ =0x02000000
- ldr r1, _080186EC @ =0x00016003
- adds r0, r1
- mov r2, r10
- strb r2, [r0]
- bl _08019F22
- .align 2, 0
-_080186E0: .4byte word_2024DB8
-_080186E4: .4byte gUnknown_081D9744
-_080186E8: .4byte 0x02000000
-_080186EC: .4byte 0x00016003
-_080186F0:
- ldr r2, _08018718 @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08018700
- bl _08019F76
-_08018700:
- movs r0, 0x60
- strh r0, [r2]
- ldr r0, _0801871C @ =gUnknown_081D97FE
- bl b_push_move_exec
- ldr r0, _08018720 @ =0x02000000
- ldr r3, _08018724 @ =0x00016003
- adds r0, r3
- mov r5, r10
- strb r5, [r0]
- bl _08019F22
- .align 2, 0
-_08018718: .4byte word_2024DB8
-_0801871C: .4byte gUnknown_081D97FE
-_08018720: .4byte 0x02000000
-_08018724: .4byte 0x00016003
-_08018728:
- ldr r0, _08018754 @ =gUnknown_02024D68
- mov r1, r10
- lsls r2, r1, 2
- adds r1, r2, r1
- lsls r1, 2
- adds r3, r1, r0
- ldrb r0, [r3]
- lsls r0, 28
- cmp r0, 0
- bge _08018740
- bl _08019F76
-_08018740:
- ldr r1, _08018758 @ =gUnknown_02024C98
- adds r1, r2, r1
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 12
- orrs r0, r2
- str r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x8
- b _080187CA
- .align 2, 0
-_08018754: .4byte gUnknown_02024D68
-_08018758: .4byte gUnknown_02024C98
-_0801875C:
- mov r0, r10
- bl castform_switch
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0
- bne _08018770
- bl _08019F92
-_08018770:
- ldr r0, _08018790 @ =gUnknown_081D977D
- bl b_push_move_exec
- ldr r0, _08018794 @ =0x02000000
- ldr r2, _08018798 @ =0x00016003
- adds r1, r0, r2
- mov r3, r10
- strb r3, [r1]
- mov r1, r9
- subs r1, 0x1
- ldr r5, _0801879C @ =0x0001609b
- adds r0, r5
- strb r1, [r0]
- bl _08019F76
- .align 2, 0
-_08018790: .4byte gUnknown_081D977D
-_08018794: .4byte 0x02000000
-_08018798: .4byte 0x00016003
-_0801879C: .4byte 0x0001609b
-_080187A0:
- ldr r0, _080187D4 @ =gUnknown_02024D68
- mov r1, r10
- lsls r2, r1, 2
- adds r1, r2, r1
- lsls r1, 2
- adds r3, r1, r0
- ldrb r0, [r3]
- lsls r0, 27
- cmp r0, 0
- bge _080187B8
- bl _08019F76
-_080187B8:
- ldr r1, _080187D8 @ =gUnknown_02024C98
- adds r1, r2, r1
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 13
- orrs r0, r2
- str r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x10
-_080187CA:
- orrs r0, r1
- strb r0, [r3]
- bl _08019F76
- .align 2, 0
-_080187D4: .4byte gUnknown_02024D68
-_080187D8: .4byte gUnknown_02024C98
-_080187DC:
- movs r6, 0
- ldrb r5, [r5]
- cmp r6, r5
- bcc _080187E8
- bl _08019F76
-_080187E8:
- adds r0, r6, 0
- bl castform_switch
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0
- beq _080187FC
- bl _08019E14
-_080187FC:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08018810 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r6, r0
- bcc _080187E8
- bl _08019F76
- .align 2, 0
-_08018810: .4byte gUnknown_02024A68
-_08018814:
- ldr r2, _08018844 @ =gBattleMons
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r4, r1, r2
- ldrh r0, [r4, 0x28]
- cmp r0, 0
- bne _08018828
- bl _08019F76
-_08018828:
- ldr r0, _08018848 @ =gUnknown_02024C07
- mov r3, r10
- strb r3, [r0]
- mov r3, r8
- ldrb r5, [r3]
- cmp r5, 0x2C
- beq _0801885A
- cmp r5, 0x2C
- bgt _0801884C
- cmp r5, 0x3
- bne _08018840
- b _080189B8
-_08018840:
- bl _08019F76
- .align 2, 0
-_08018844: .4byte gBattleMons
-_08018848: .4byte gUnknown_02024C07
-_0801884C:
- cmp r5, 0x36
- bne _08018852
- b _08018A18
-_08018852:
- cmp r5, 0x3D
- beq _080188DC
- bl _08019F76
-_0801885A:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08018876
- bl _08019F76
-_08018876:
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _0801888E
- bl _08019F76
-_0801888E:
- ldr r0, _080188D0 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801889E
- bl _08019F76
-_0801889E:
- ldrh r0, [r4, 0x2C]
- ldrh r1, [r4, 0x28]
- cmp r0, r1
- bhi _080188AA
- bl _08019F76
-_080188AA:
- mov r2, r8
- strb r5, [r2]
- ldr r0, _080188D4 @ =gUnknown_081D9730
- bl b_push_move_exec
- ldr r1, _080188D8 @ =gUnknown_02024BEC
- ldrh r0, [r4, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _080188C4
- movs r0, 0x1
- str r0, [r1]
-_080188C4:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- bl _08019F22
- .align 2, 0
-_080188D0: .4byte word_2024DB8
-_080188D4: .4byte gUnknown_081D9730
-_080188D8: .4byte gUnknown_02024BEC
-_080188DC:
- adds r0, r2, 0
- adds r0, 0x4C
- adds r5, r1, r0
- ldrb r0, [r5]
- cmp r0, 0
- bne _080188EC
- bl _08019F76
-_080188EC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _08018906
- bl _08019F76
-_08018906:
- ldr r0, [r5]
- movs r1, 0x88
- ands r0, r1
- cmp r0, 0
- beq _08018918
- ldr r0, _08018990 @ =gUnknown_030041C0
- ldr r1, _08018994 @ =gStatusConditionString_PoisonJpn
- bl StringCopy
-_08018918:
- ldr r0, [r5]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0801892A
- ldr r0, _08018990 @ =gUnknown_030041C0
- ldr r1, _08018998 @ =gStatusConditionString_SleepJpn
- bl StringCopy
-_0801892A:
- ldr r0, [r5]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801893C
- ldr r0, _08018990 @ =gUnknown_030041C0
- ldr r1, _0801899C @ =gStatusConditionString_ParalysisJpn
- bl StringCopy
-_0801893C:
- ldr r0, [r5]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0801894E
- ldr r0, _08018990 @ =gUnknown_030041C0
- ldr r1, _080189A0 @ =gStatusConditionString_BurnJpn
- bl StringCopy
-_0801894E:
- ldr r0, [r5]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08018960
- ldr r0, _08018990 @ =gUnknown_030041C0
- ldr r1, _080189A4 @ =gStatusConditionString_IceJpn
- bl StringCopy
-_08018960:
- str r4, [r5]
- ldr r0, _080189A8 @ =0x02000000
- ldr r4, _080189AC @ =gUnknown_02024A60
- mov r3, r10
- strb r3, [r4]
- ldr r1, _080189B0 @ =0x00016003
- adds r0, r1
- strb r3, [r0]
- ldr r0, _080189B4 @ =gUnknown_081D9758
- bl b_push_move_exec
- str r5, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- bl _08019F22
- .align 2, 0
-_08018990: .4byte gUnknown_030041C0
-_08018994: .4byte gStatusConditionString_PoisonJpn
-_08018998: .4byte gStatusConditionString_SleepJpn
-_0801899C: .4byte gStatusConditionString_ParalysisJpn
-_080189A0: .4byte gStatusConditionString_BurnJpn
-_080189A4: .4byte gStatusConditionString_IceJpn
-_080189A8: .4byte 0x02000000
-_080189AC: .4byte gUnknown_02024A60
-_080189B0: .4byte 0x00016003
-_080189B4: .4byte gUnknown_081D9758
-_080189B8:
- ldrb r2, [r4, 0x1B]
- movs r0, 0x1B
- ldrsb r0, [r4, r0]
- cmp r0, 0xB
- ble _080189C6
- bl _08019F76
-_080189C6:
- ldr r0, _08018A04 @ =gUnknown_02024CA8
- mov r3, r10
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x16]
- cmp r0, 0x2
- bne _080189DC
- bl _08019F76
-_080189DC:
- adds r0, r2, 0x1
- movs r2, 0
- strb r0, [r4, 0x1B]
- ldr r5, _08018A08 @ =0x000160a4
- adds r1, r7, r5
- movs r0, 0x11
- strb r0, [r1]
- ldr r1, _08018A0C @ =0x000160a5
- adds r0, r7, r1
- strb r2, [r0]
- ldr r0, _08018A10 @ =gUnknown_081D9718
- bl b_push_move_exec
- ldr r2, _08018A14 @ =0x00016003
- adds r0, r7, r2
- mov r3, r10
- strb r3, [r0]
- bl _08019F22
- .align 2, 0
-_08018A04: .4byte gUnknown_02024CA8
-_08018A08: .4byte 0x000160a4
-_08018A0C: .4byte 0x000160a5
-_08018A10: .4byte gUnknown_081D9718
-_08018A14: .4byte 0x00016003
-_08018A18:
- ldr r2, _08018A3C @ =gUnknown_02024CA8
- ldrb r0, [r0]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r3, [r1, 0x18]
- lsls r0, r3, 31
- lsrs r0, 31
- movs r2, 0x1
- eors r2, r0
- movs r0, 0x2
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x18]
- bl _08019F76
- .align 2, 0
-_08018A3C: .4byte gUnknown_02024CA8
-_08018A40:
- mov r5, r8
- ldrb r0, [r5]
- cmp r0, 0x2B
- beq _08018A4C
- bl _08019F76
-_08018A4C:
- movs r4, 0
- ldr r0, _08018ABC @ =gUnknown_081FA724
- ldrh r2, [r0]
- ldr r5, _08018AC0 @ =0x0000ffff
- adds r1, r0, 0
- cmp r2, r5
- bne _08018A5E
- bl _08019F76
-_08018A5E:
- cmp r2, r3
- beq _08018A76
- adds r2, r1, 0
-_08018A64:
- adds r2, 0x2
- adds r4, 0x1
- ldrh r0, [r2]
- cmp r0, r5
- bne _08018A72
- bl _08019F76
-_08018A72:
- cmp r0, r3
- bne _08018A64
-_08018A76:
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _08018AC0 @ =0x0000ffff
- cmp r1, r0
- bne _08018A86
- bl _08019F76
-_08018A86:
- ldr r1, _08018AC4 @ =gBattleMons
- ldr r0, _08018AC8 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- beq _08018AAC
- ldr r0, _08018ACC @ =gUnknown_02024C6C
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 4
- orrs r1, r2
- str r1, [r0]
-_08018AAC:
- ldr r1, _08018AD0 @ =gUnknown_02024C10
- ldr r0, _08018AD4 @ =gUnknown_081D98F3
- str r0, [r1]
- movs r0, 0x1
- mov r9, r0
- bl _08019F7C
- .align 2, 0
-_08018ABC: .4byte gUnknown_081FA724
-_08018AC0: .4byte 0x0000ffff
-_08018AC4: .4byte gBattleMons
-_08018AC8: .4byte gUnknown_02024C07
-_08018ACC: .4byte gUnknown_02024C6C
-_08018AD0: .4byte gUnknown_02024C10
-_08018AD4: .4byte gUnknown_081D98F3
-_08018AD8:
- cmp r3, 0
- bne _08018AE0
- bl _08019F76
-_08018AE0:
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0xB
- beq _08018B50
- cmp r0, 0xB
- bgt _08018AF2
- cmp r0, 0xA
- beq _08018AF8
- b _08018C6A
-_08018AF2:
- cmp r0, 0x12
- beq _08018BA8
- b _08018C6A
-_08018AF8:
- cmp r4, 0xD
- beq _08018AFE
- b _08018C6A
-_08018AFE:
- ldr r0, _08018B28 @ =gBattleMoves
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08018B10
- b _08018C6A
-_08018B10:
- ldr r1, _08018B2C @ =gUnknown_02024D28
- ldr r0, _08018B30 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08018B3C
- ldr r1, _08018B34 @ =gUnknown_02024C10
- ldr r0, _08018B38 @ =gUnknown_081D9843
- b _08018B40
- .align 2, 0
-_08018B28: .4byte gBattleMoves
-_08018B2C: .4byte gUnknown_02024D28
-_08018B30: .4byte gUnknown_02024C07
-_08018B34: .4byte gUnknown_02024C10
-_08018B38: .4byte gUnknown_081D9843
-_08018B3C:
- ldr r1, _08018B48 @ =gUnknown_02024C10
- ldr r0, _08018B4C @ =gUnknown_081D9842
-_08018B40:
- str r0, [r1]
- movs r2, 0x1
- b _08018C68
- .align 2, 0
-_08018B48: .4byte gUnknown_02024C10
-_08018B4C: .4byte gUnknown_081D9842
-_08018B50:
- cmp r4, 0xB
- beq _08018B56
- b _08018C6A
-_08018B56:
- ldr r0, _08018B80 @ =gBattleMoves
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08018B68
- b _08018C6A
-_08018B68:
- ldr r1, _08018B84 @ =gUnknown_02024D28
- ldr r0, _08018B88 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08018B94
- ldr r1, _08018B8C @ =gUnknown_02024C10
- ldr r0, _08018B90 @ =gUnknown_081D9843
- b _08018B98
- .align 2, 0
-_08018B80: .4byte gBattleMoves
-_08018B84: .4byte gUnknown_02024D28
-_08018B88: .4byte gUnknown_02024C07
-_08018B8C: .4byte gUnknown_02024C10
-_08018B90: .4byte gUnknown_081D9843
-_08018B94:
- ldr r1, _08018BA0 @ =gUnknown_02024C10
- ldr r0, _08018BA4 @ =gUnknown_081D9842
-_08018B98:
- str r0, [r1]
- movs r3, 0x1
- mov r9, r3
- b _08018C6A
- .align 2, 0
-_08018BA0: .4byte gUnknown_02024C10
-_08018BA4: .4byte gUnknown_081D9842
-_08018BA8:
- cmp r4, 0xA
- bne _08018C6A
- ldr r1, _08018BF4 @ =gBattleMons
- movs r0, 0x58
- mov r5, r10
- muls r5, r0
- adds r0, r5, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08018C6A
- ldr r2, _08018BF8 @ =0x02017100
- mov r0, r10
- lsls r1, r0, 2
- adds r0, r1, r2
- ldr r3, [r0]
- movs r4, 0x1
- ands r3, r4
- adds r5, r1, 0
- cmp r3, 0
- bne _08018C30
- ldr r0, _08018BFC @ =gUnknown_02024D1E
- strb r3, [r0, 0x5]
- ldr r1, _08018C00 @ =gUnknown_02024D28
- ldr r0, _08018C04 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08018C10
- ldr r1, _08018C08 @ =gUnknown_02024C10
- ldr r0, _08018C0C @ =gUnknown_081D987C
- b _08018C14
- .align 2, 0
-_08018BF4: .4byte gBattleMons
-_08018BF8: .4byte 0x02017100
-_08018BFC: .4byte gUnknown_02024D1E
-_08018C00: .4byte gUnknown_02024D28
-_08018C04: .4byte gUnknown_02024C07
-_08018C08: .4byte gUnknown_02024C10
-_08018C0C: .4byte gUnknown_081D987C
-_08018C10:
- ldr r1, _08018C28 @ =gUnknown_02024C10
- ldr r0, _08018C2C @ =gUnknown_081D987B
-_08018C14:
- str r0, [r1]
- adds r0, r5, r2
- ldr r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- str r1, [r0]
- movs r1, 0x2
- mov r9, r1
- b _08018C6A
- .align 2, 0
-_08018C28: .4byte gUnknown_02024C10
-_08018C2C: .4byte gUnknown_081D987B
-_08018C30:
- ldr r0, _08018C4C @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- ldr r1, _08018C50 @ =gUnknown_02024D28
- ldr r0, _08018C54 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08018C60
- ldr r1, _08018C58 @ =gUnknown_02024C10
- ldr r0, _08018C5C @ =gUnknown_081D987C
- b _08018C64
- .align 2, 0
-_08018C4C: .4byte gUnknown_02024D1E
-_08018C50: .4byte gUnknown_02024D28
-_08018C54: .4byte gUnknown_02024C07
-_08018C58: .4byte gUnknown_02024C10
-_08018C5C: .4byte gUnknown_081D987C
-_08018C60:
- ldr r1, _08018CA4 @ =gUnknown_02024C10
- ldr r0, _08018CA8 @ =gUnknown_081D987B
-_08018C64:
- str r0, [r1]
- movs r2, 0x2
-_08018C68:
- mov r9, r2
-_08018C6A:
- mov r3, r9
- cmp r3, 0x1
- beq _08018C74
- bl _08019F76
-_08018C74:
- ldr r1, _08018CAC @ =gBattleMons
- movs r0, 0x58
- mov r5, r10
- muls r5, r0
- adds r0, r5, 0
- adds r1, r0, r1
- ldrh r0, [r1, 0x2C]
- ldrh r2, [r1, 0x28]
- cmp r0, r2
- bne _08018CD0
- ldr r1, _08018CB0 @ =gUnknown_02024D28
- ldr r0, _08018CB4 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08018CBC
- ldr r1, _08018CA4 @ =gUnknown_02024C10
- ldr r0, _08018CB8 @ =gUnknown_081D9866
- str r0, [r1]
- bl _08019F76
- .align 2, 0
-_08018CA4: .4byte gUnknown_02024C10
-_08018CA8: .4byte gUnknown_081D987B
-_08018CAC: .4byte gBattleMons
-_08018CB0: .4byte gUnknown_02024D28
-_08018CB4: .4byte gUnknown_02024C07
-_08018CB8: .4byte gUnknown_081D9866
-_08018CBC:
- ldr r1, _08018CC8 @ =gUnknown_02024C10
- ldr r0, _08018CCC @ =gUnknown_081D9865
- str r0, [r1]
- bl _08019F76
- .align 2, 0
-_08018CC8: .4byte gUnknown_02024C10
-_08018CCC: .4byte gUnknown_081D9865
-_08018CD0:
- ldr r2, _08018CEC @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- lsrs r0, 2
- str r0, [r2]
- cmp r0, 0
- bne _08018CE0
- mov r3, r9
- str r3, [r2]
-_08018CE0:
- ldr r0, [r2]
- negs r0, r0
- str r0, [r2]
- bl _08019F76
- .align 2, 0
-_08018CEC: .4byte gUnknown_02024BEC
-_08018CF0:
- mov r5, r8
- ldrb r0, [r5]
- subs r0, 0x9
- cmp r0, 0x2F
- bls _08018CFE
- bl _08019F76
-_08018CFE:
- lsls r0, 2
- ldr r1, _08018D08 @ =_08018D0C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08018D08: .4byte _08018D0C
- .align 2, 0
-_08018D0C:
- .4byte _08019128
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08018DCC
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08018E94
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08018F54
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _0801904C
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019204
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _080192E0
-_08018DCC:
- ldr r0, _08018E74 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08018DDC
- bl _08019F76
-_08018DDC:
- cmp r3, 0xA5
- bne _08018DE4
- bl _08019F76
-_08018DE4:
- ldr r0, _08018E78 @ =gBattleMoves
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08018DF8
- bl _08019F76
-_08018DF8:
- ldr r2, _08018E7C @ =gUnknown_02024D68
- ldr r0, _08018E80 @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018E20
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018E20
- bl _08019F76
-_08018E20:
- ldr r1, _08018E84 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r1, r0, r1
- adds r3, r1, 0
- adds r3, 0x21
- ldrb r0, [r3]
- cmp r0, r4
- bne _08018E3A
- bl _08019F76
-_08018E3A:
- adds r2, r1, 0
- adds r2, 0x22
- ldrb r0, [r2]
- cmp r0, r4
- bne _08018E48
- bl _08019F76
-_08018E48:
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- bne _08018E52
- bl _08019F76
-_08018E52:
- strb r4, [r3]
- strb r4, [r2]
- ldr r1, _08018E88 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r4, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, _08018E8C @ =gUnknown_02024C10
- ldr r0, _08018E90 @ =gUnknown_081D9921
- str r0, [r1]
- bl _08019F22
- .align 2, 0
-_08018E74: .4byte gUnknown_02024C68
-_08018E78: .4byte gBattleMoves
-_08018E7C: .4byte gUnknown_02024D68
-_08018E80: .4byte gUnknown_02024C08
-_08018E84: .4byte gBattleMons
-_08018E88: .4byte gUnknown_030041C0
-_08018E8C: .4byte gUnknown_02024C10
-_08018E90: .4byte gUnknown_081D9921
-_08018E94:
- ldr r0, _08018F2C @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08018EA4
- bl _08019F76
-_08018EA4:
- ldr r1, _08018F30 @ =gBattleMons
- ldr r0, _08018F34 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r4, r0, r1
- ldrh r0, [r4, 0x28]
- cmp r0, 0
- bne _08018EBA
- bl _08019F76
-_08018EBA:
- ldr r0, _08018F38 @ =gUnknown_02024D28
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _08018ECC
- bl _08019F76
-_08018ECC:
- ldr r2, _08018F3C @ =gUnknown_02024D68
- ldr r0, _08018F40 @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018EF4
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018EF4
- bl _08019F76
-_08018EF4:
- ldr r1, _08018F44 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08018F0E
- bl _08019F76
-_08018F0E:
- ldr r1, _08018F48 @ =gUnknown_02024BEC
- ldrh r0, [r4, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _08018F1C
- str r2, [r1]
-_08018F1C:
- bl b_movescr_stack_push_cursor
- ldr r1, _08018F4C @ =gUnknown_02024C10
- ldr r0, _08018F50 @ =gUnknown_081D9928
- str r0, [r1]
- bl _08019F22
- .align 2, 0
-_08018F2C: .4byte gUnknown_02024C68
-_08018F30: .4byte gBattleMons
-_08018F34: .4byte gUnknown_02024C07
-_08018F38: .4byte gUnknown_02024D28
-_08018F3C: .4byte gUnknown_02024D68
-_08018F40: .4byte gUnknown_02024C08
-_08018F44: .4byte gBattleMoves
-_08018F48: .4byte gUnknown_02024BEC
-_08018F4C: .4byte gUnknown_02024C10
-_08018F50: .4byte gUnknown_081D9928
-_08018F54:
- ldr r0, _08019020 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08018F64
- bl _08019F76
-_08018F64:
- ldr r1, _08019024 @ =gBattleMons
- ldr r0, _08019028 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08018F7A
- bl _08019F76
-_08018F7A:
- ldr r0, _0801902C @ =gUnknown_02024D28
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _08018F8C
- bl _08019F76
-_08018F8C:
- ldr r2, _08019030 @ =gUnknown_02024D68
- ldr r0, _08019034 @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018FB4
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018FB4
- bl _08019F76
-_08018FB4:
- ldr r1, _08019038 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08018FCC
- bl _08019F76
-_08018FCC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08018FE4
- bl _08019F76
-_08018FE4:
- ldr r5, _0801903C @ =gUnknown_02024D1E
- movs r4, 0x3
-_08018FE8:
- bl Random
- ands r0, r4
- strb r0, [r5, 0x3]
- cmp r0, 0
- beq _08018FE8
- ldr r1, _0801903C @ =gUnknown_02024D1E
- ldrb r0, [r1, 0x3]
- cmp r0, 0x3
- bne _08019000
- adds r0, 0x2
- strb r0, [r1, 0x3]
-_08019000:
- ldrb r0, [r1, 0x3]
- adds r0, 0x40
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, _08019040 @ =gUnknown_02024C10
- ldr r0, _08019044 @ =gUnknown_081D9950
- str r0, [r1]
- ldr r2, _08019048 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _08019F22
- .align 2, 0
-_08019020: .4byte gUnknown_02024C68
-_08019024: .4byte gBattleMons
-_08019028: .4byte gUnknown_02024C07
-_0801902C: .4byte gUnknown_02024D28
-_08019030: .4byte gUnknown_02024D68
-_08019034: .4byte gUnknown_02024C08
-_08019038: .4byte gBattleMoves
-_0801903C: .4byte gUnknown_02024D1E
-_08019040: .4byte gUnknown_02024C10
-_08019044: .4byte gUnknown_081D9950
-_08019048: .4byte gUnknown_02024C6C
-_0801904C:
- ldr r0, _080190FC @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801905C
- bl _08019F76
-_0801905C:
- ldr r1, _08019100 @ =gBattleMons
- ldr r0, _08019104 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08019072
- bl _08019F76
-_08019072:
- ldr r0, _08019108 @ =gUnknown_02024D28
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _08019084
- bl _08019F76
-_08019084:
- ldr r2, _0801910C @ =gUnknown_02024D68
- ldr r0, _08019110 @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _080190AC
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _080190AC
- bl _08019F76
-_080190AC:
- ldr r1, _08019114 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080190C4
- bl _08019F76
-_080190C4:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _080190DC
- bl _08019F76
-_080190DC:
- ldr r1, _08019118 @ =gUnknown_02024D1E
- movs r0, 0x42
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801911C @ =gUnknown_02024C10
- ldr r0, _08019120 @ =gUnknown_081D9950
- str r0, [r1]
- ldr r2, _08019124 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _08019F22
- .align 2, 0
-_080190FC: .4byte gUnknown_02024C68
-_08019100: .4byte gBattleMons
-_08019104: .4byte gUnknown_02024C07
-_08019108: .4byte gUnknown_02024D28
-_0801910C: .4byte gUnknown_02024D68
-_08019110: .4byte gUnknown_02024C08
-_08019114: .4byte gBattleMoves
-_08019118: .4byte gUnknown_02024D1E
-_0801911C: .4byte gUnknown_02024C10
-_08019120: .4byte gUnknown_081D9950
-_08019124: .4byte gUnknown_02024C6C
-_08019128:
- ldr r0, _080191D8 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08019138
- bl _08019F76
-_08019138:
- ldr r1, _080191DC @ =gBattleMons
- ldr r0, _080191E0 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801914E
- bl _08019F76
-_0801914E:
- ldr r0, _080191E4 @ =gUnknown_02024D28
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _08019160
- bl _08019F76
-_08019160:
- ldr r2, _080191E8 @ =gUnknown_02024D68
- ldr r0, _080191EC @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08019188
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08019188
- bl _08019F76
-_08019188:
- ldr r1, _080191F0 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080191A0
- bl _08019F76
-_080191A0:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _080191B8
- bl _08019F76
-_080191B8:
- ldr r1, _080191F4 @ =gUnknown_02024D1E
- movs r0, 0x45
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, _080191F8 @ =gUnknown_02024C10
- ldr r0, _080191FC @ =gUnknown_081D9950
- str r0, [r1]
- ldr r2, _08019200 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _08019F22
- .align 2, 0
-_080191D8: .4byte gUnknown_02024C68
-_080191DC: .4byte gBattleMons
-_080191E0: .4byte gUnknown_02024C07
-_080191E4: .4byte gUnknown_02024D28
-_080191E8: .4byte gUnknown_02024D68
-_080191EC: .4byte gUnknown_02024C08
-_080191F0: .4byte gBattleMoves
-_080191F4: .4byte gUnknown_02024D1E
-_080191F8: .4byte gUnknown_02024C10
-_080191FC: .4byte gUnknown_081D9950
-_08019200: .4byte gUnknown_02024C6C
-_08019204:
- ldr r0, _080192B4 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08019214
- bl _08019F76
-_08019214:
- ldr r1, _080192B8 @ =gBattleMons
- ldr r0, _080192BC @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801922A
- bl _08019F76
-_0801922A:
- ldr r0, _080192C0 @ =gUnknown_02024D28
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _0801923C
- bl _08019F76
-_0801923C:
- ldr r1, _080192C4 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08019254
- bl _08019F76
-_08019254:
- ldr r2, _080192C8 @ =gUnknown_02024D68
- ldr r0, _080192CC @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801927C
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801927C
- bl _08019F76
-_0801927C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08019294
- bl _08019F76
-_08019294:
- ldr r1, _080192D0 @ =gUnknown_02024D1E
- movs r0, 0x43
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, _080192D4 @ =gUnknown_02024C10
- ldr r0, _080192D8 @ =gUnknown_081D9950
- str r0, [r1]
- ldr r2, _080192DC @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _08019F22
- .align 2, 0
-_080192B4: .4byte gUnknown_02024C68
-_080192B8: .4byte gBattleMons
-_080192BC: .4byte gUnknown_02024C07
-_080192C0: .4byte gUnknown_02024D28
-_080192C4: .4byte gBattleMoves
-_080192C8: .4byte gUnknown_02024D68
-_080192CC: .4byte gUnknown_02024C08
-_080192D0: .4byte gUnknown_02024D1E
-_080192D4: .4byte gUnknown_02024C10
-_080192D8: .4byte gUnknown_081D9950
-_080192DC: .4byte gUnknown_02024C6C
-_080192E0:
- ldr r0, _08019420 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _080192F0
- bl _08019F76
-_080192F0:
- ldr r5, _08019424 @ =gBattleMons
- ldr r7, _08019428 @ =gUnknown_02024C07
- ldrb r1, [r7]
- movs r6, 0x58
- adds r0, r1, 0
- muls r0, r6
- adds r0, r5
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08019308
- bl _08019F76
-_08019308:
- ldr r0, _0801942C @ =gUnknown_02024D28
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _0801931A
- bl _08019F76
-_0801931A:
- ldr r1, _08019430 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08019332
- bl _08019F76
-_08019332:
- ldr r3, _08019434 @ =gUnknown_02024D68
- ldr r0, _08019438 @ =gUnknown_02024C08
- mov r8, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r2, r0, 2
- adds r0, r3, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801935C
- adds r0, r3, 0
- adds r0, 0xC
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801935C
- bl _08019F76
-_0801935C:
- adds r0, r1, 0
- muls r0, r6
- adds r0, r5
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801936C
- bl _08019F76
-_0801936C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08019384
- bl _08019F76
-_08019384:
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0xC
- bne _08019396
- bl _08019F76
-_08019396:
- ldr r0, [sp, 0x8]
- ldr r1, [sp, 0x10]
- bl GetGenderFromSpeciesAndPersonality
- adds r4, r0, 0
- ldr r0, [sp, 0xC]
- ldr r1, [sp, 0x14]
- bl GetGenderFromSpeciesAndPersonality
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080193B4
- bl _08019F76
-_080193B4:
- ldrb r0, [r7]
- muls r0, r6
- adds r4, r5, 0
- adds r4, 0x50
- adds r0, r4
- ldr r0, [r0]
- movs r1, 0xF0
- lsls r1, 12
- ands r0, r1
- cmp r0, 0
- beq _080193CE
- bl _08019F76
-_080193CE:
- ldr r0, [sp, 0x8]
- ldr r1, [sp, 0x10]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080193E2
- bl _08019F76
-_080193E2:
- ldr r0, [sp, 0xC]
- ldr r1, [sp, 0x14]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080193F6
- bl _08019F76
-_080193F6:
- ldrb r0, [r7]
- adds r2, r0, 0
- muls r2, r6
- adds r2, r4
- ldr r1, _0801943C @ =gBitTable
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 16
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _08019440 @ =gUnknown_02024C10
- ldr r0, _08019444 @ =gUnknown_081D9943
- str r0, [r1]
- bl _08019F22
- .align 2, 0
-_08019420: .4byte gUnknown_02024C68
-_08019424: .4byte gBattleMons
-_08019428: .4byte gUnknown_02024C07
-_0801942C: .4byte gUnknown_02024D28
-_08019430: .4byte gBattleMoves
-_08019434: .4byte gUnknown_02024D68
-_08019438: .4byte gUnknown_02024C08
-_0801943C: .4byte gBitTable
-_08019440: .4byte gUnknown_02024C10
-_08019444: .4byte gUnknown_081D9943
-_08019448:
- movs r5, 0
- mov r10, r5
- ldr r0, _0801947C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r10, r0
- bcc _08019458
- bl _08019F76
-_08019458:
- ldr r1, _08019480 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- subs r0, 0x7
- adds r2, r1, 0
- cmp r0, 0x41
- bls _08019472
- b _080196D6
-_08019472:
- lsls r0, 2
- ldr r1, _08019484 @ =_08019488
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801947C: .4byte gUnknown_02024A68
-_08019480: .4byte gBattleMons
-_08019484: .4byte _08019488
- .align 2, 0
-_08019488:
- .4byte _080195EC
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196B0
- .4byte _080196D6
- .4byte _080196D6
- .4byte _08019614
- .4byte _080196D6
- .4byte _08019590
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080195BC
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _08019680
- .4byte _08019650
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _08019614
-_08019590:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080195B0 @ =0x00000f88
- ands r0, r1
- cmp r0, 0
- bne _080195AA
- b _080196D6
-_080195AA:
- ldr r0, _080195B4 @ =gUnknown_030041C0
- ldr r1, _080195B8 @ =gStatusConditionString_PoisonJpn
- b _0801969C
- .align 2, 0
-_080195B0: .4byte 0x00000f88
-_080195B4: .4byte gUnknown_030041C0
-_080195B8: .4byte gStatusConditionString_PoisonJpn
-_080195BC:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _080195D6
- b _080196D6
-_080195D6:
- ldr r0, _080195E4 @ =gUnknown_030041C0
- ldr r1, _080195E8 @ =gStatusConditionString_ConfusionJpn
- bl StringCopy
- movs r2, 0x2
- mov r9, r2
- b _080196DC
- .align 2, 0
-_080195E4: .4byte gUnknown_030041C0
-_080195E8: .4byte gStatusConditionString_ConfusionJpn
-_080195EC:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080196D6
- ldr r0, _0801960C @ =gUnknown_030041C0
- ldr r1, _08019610 @ =gStatusConditionString_ParalysisJpn
- b _0801969C
- .align 2, 0
-_0801960C: .4byte gUnknown_030041C0
-_08019610: .4byte gStatusConditionString_ParalysisJpn
-_08019614:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _080196D6
- adds r2, 0x50
- adds r2, r3, r2
- ldr r0, [r2]
- ldr r1, _08019644 @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _08019648 @ =gUnknown_030041C0
- ldr r1, _0801964C @ =gStatusConditionString_SleepJpn
- bl StringCopy
- movs r0, 0x1
- mov r9, r0
- b _080196DC
- .align 2, 0
-_08019644: .4byte 0xf7ffffff
-_08019648: .4byte gUnknown_030041C0
-_0801964C: .4byte gStatusConditionString_SleepJpn
-_08019650:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080196D6
- ldr r0, _08019678 @ =gUnknown_030041C0
- ldr r1, _0801967C @ =gStatusConditionString_BurnJpn
- bl StringCopy
- movs r2, 0x1
- mov r9, r2
- b _080196DC
- .align 2, 0
-_08019678: .4byte gUnknown_030041C0
-_0801967C: .4byte gStatusConditionString_BurnJpn
-_08019680:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080196D6
- ldr r0, _080196A8 @ =gUnknown_030041C0
- ldr r1, _080196AC @ =gStatusConditionString_IceJpn
-_0801969C:
- bl StringCopy
- movs r5, 0x1
- mov r9, r5
- b _080196DC
- .align 2, 0
-_080196A8: .4byte gUnknown_030041C0
-_080196AC: .4byte gStatusConditionString_IceJpn
-_080196B0:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xF0
- lsls r1, 12
- ands r0, r1
- cmp r0, 0
- beq _080196D6
- ldr r0, _080196EC @ =gUnknown_030041C0
- ldr r1, _080196F0 @ =gStatusConditionString_LoveJpn
- bl StringCopy
- movs r2, 0x3
- mov r9, r2
-_080196D6:
- mov r3, r9
- cmp r3, 0
- beq _08019798
-_080196DC:
- mov r5, r9
- cmp r5, 0x2
- beq _08019710
- cmp r5, 0x2
- bgt _080196F4
- cmp r5, 0x1
- beq _080196FC
- b _0801973C
- .align 2, 0
-_080196EC: .4byte gUnknown_030041C0
-_080196F0: .4byte gStatusConditionString_LoveJpn
-_080196F4:
- mov r0, r9
- cmp r0, 0x3
- beq _08019728
- b _0801973C
-_080196FC:
- ldr r1, _0801970C @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r1, 0x4C
- adds r2, r1
- movs r0, 0
- b _0801973A
- .align 2, 0
-_0801970C: .4byte gBattleMons
-_08019710:
- ldr r1, _08019724 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x8
- negs r1, r1
- b _08019738
- .align 2, 0
-_08019724: .4byte gBattleMons
-_08019728:
- ldr r1, _08019778 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, _0801977C @ =0xfff0ffff
-_08019738:
- ands r0, r1
-_0801973A:
- str r0, [r2]
-_0801973C:
- bl b_movescr_stack_push_cursor
- ldr r1, _08019780 @ =gUnknown_02024C10
- ldr r0, _08019784 @ =gUnknown_081D9956
- str r0, [r1]
- ldr r0, _08019788 @ =0x02000000
- ldr r1, _0801978C @ =0x00016003
- adds r0, r1
- mov r2, r10
- strb r2, [r0]
- ldr r4, _08019790 @ =gUnknown_02024A60
- strb r2, [r4]
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _08019794 @ =gUnknown_02024ACC
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- bl _08019F92
- .align 2, 0
-_08019778: .4byte gBattleMons
-_0801977C: .4byte 0xfff0ffff
-_08019780: .4byte gUnknown_02024C10
-_08019784: .4byte gUnknown_081D9956
-_08019788: .4byte 0x02000000
-_0801978C: .4byte 0x00016003
-_08019790: .4byte gUnknown_02024A60
-_08019794: .4byte gUnknown_02024ACC
-_08019798:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _080197B0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r10, r0
- bcs _080197AC
- b _08019458
-_080197AC:
- bl _08019F76
- .align 2, 0
-_080197B0: .4byte gUnknown_02024A68
-_080197B4:
- movs r3, 0
- mov r10, r3
- ldr r0, _080197FC @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r10, r0
- bcc _080197C2
- b _08019F76
-_080197C2:
- ldr r4, _08019800 @ =gBattleMons
-_080197C4:
- movs r0, 0x58
- mov r5, r10
- muls r5, r0
- adds r0, r5, 0
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3B
- bne _080197E8
- mov r0, r10
- bl castform_switch
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0
- beq _080197E8
- b _08019E40
-_080197E8:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _080197FC @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r10, r0
- bcc _080197C4
- b _08019F76
- .align 2, 0
-_080197FC: .4byte gUnknown_02024A68
-_08019800: .4byte gBattleMons
-_08019804:
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0x1C
- beq _0801980E
- b _08019F76
-_0801980E:
- ldr r4, _08019860 @ =gUnknown_02024C6C
- ldr r1, [r4]
- movs r0, 0x80
- lsls r0, 7
- ands r0, r1
- cmp r0, 0
- bne _0801981E
- b _08019F76
-_0801981E:
- ldr r0, _08019864 @ =0xffffbfff
- ands r1, r0
- str r1, [r4]
- ldr r3, _08019868 @ =0x000160ca
- adds r2, r7, r3
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2]
- cmp r0, 0x6
- bne _08019838
- movs r0, 0x2
- strb r0, [r2]
-_08019838:
- ldr r1, _0801986C @ =gUnknown_02024D1E
- ldrb r0, [r2]
- adds r0, 0x40
- strb r0, [r1, 0x3]
- ldr r0, _08019870 @ =gUnknown_02024C08
- ldrb r1, [r0]
- ldr r5, _08019874 @ =0x00016003
- adds r0, r7, r5
- strb r1, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, _08019878 @ =gUnknown_02024C10
- ldr r0, _0801987C @ =gUnknown_081D9953
- str r0, [r1]
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r4]
- b _08019F22
- .align 2, 0
-_08019860: .4byte gUnknown_02024C6C
-_08019864: .4byte 0xffffbfff
-_08019868: .4byte 0x000160ca
-_0801986C: .4byte gUnknown_02024D1E
-_08019870: .4byte gUnknown_02024C08
-_08019874: .4byte 0x00016003
-_08019878: .4byte gUnknown_02024C10
-_0801987C: .4byte gUnknown_081D9953
-_08019880:
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0x1C
- beq _0801988A
- b _08019F76
-_0801988A:
- ldr r4, _080198DC @ =gUnknown_02024C6C
- ldr r1, [r4]
- movs r0, 0x80
- lsls r0, 7
- ands r0, r1
- cmp r0, 0
- bne _0801989A
- b _08019F76
-_0801989A:
- ldr r0, _080198E0 @ =0xffffbfff
- ands r1, r0
- str r1, [r4]
- ldr r3, _080198E4 @ =0x000160ca
- adds r2, r7, r3
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2]
- cmp r0, 0x6
- bne _080198B4
- movs r0, 0x2
- strb r0, [r2]
-_080198B4:
- ldr r1, _080198E8 @ =gUnknown_02024D1E
- ldrb r0, [r2]
- strb r0, [r1, 0x3]
- ldr r0, _080198EC @ =gUnknown_02024C07
- ldrb r1, [r0]
- ldr r5, _080198F0 @ =0x00016003
- adds r0, r7, r5
- strb r1, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, _080198F4 @ =gUnknown_02024C10
- ldr r0, _080198F8 @ =gUnknown_081D9953
- str r0, [r1]
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r4]
- b _08019F22
- .align 2, 0
-_080198DC: .4byte gUnknown_02024C6C
-_080198E0: .4byte 0xffffbfff
-_080198E4: .4byte 0x000160ca
-_080198E8: .4byte gUnknown_02024D1E
-_080198EC: .4byte gUnknown_02024C07
-_080198F0: .4byte 0x00016003
-_080198F4: .4byte gUnknown_02024C10
-_080198F8: .4byte gUnknown_081D9953
-_080198FC:
- movs r4, 0
- ldr r0, _08019934 @ =gUnknown_02024A68
- ldrb r1, [r0]
- cmp r4, r1
- blt _08019908
- b _08019F76
-_08019908:
- ldr r0, _08019938 @ =gBattleMons
- adds r5, r1, 0
- ldr r2, _0801993C @ =gUnknown_02024C98
- adds r3, r0, 0
- adds r3, 0x20
- movs r6, 0x80
- lsls r6, 12
-_08019916:
- ldrb r1, [r3]
- cmp r1, 0x16
- bne _08019926
- ldr r0, [r2]
- ands r0, r6
- cmp r0, 0
- beq _08019926
- b _08019E6C
-_08019926:
- adds r2, 0x4
- adds r3, 0x58
- adds r4, 0x1
- cmp r4, r5
- blt _08019916
- b _08019F76
- .align 2, 0
-_08019934: .4byte gUnknown_02024A68
-_08019938: .4byte gBattleMons
-_0801993C: .4byte gUnknown_02024C98
-_08019940:
- movs r4, 0
- ldr r0, _08019A1C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _0801994C
- b _08019F76
-_0801994C:
- ldr r0, _08019A20 @ =gUnknown_02024A60
- mov r8, r0
- ldr r1, _08019A24 @ =gBattleMons
- adds r1, 0x20
- str r1, [sp, 0x1C]
- movs r2, 0
- str r2, [sp, 0x20]
-_0801995A:
- ldr r3, [sp, 0x1C]
- ldrb r0, [r3]
- cmp r0, 0x24
- beq _08019964
- b _08019AF6
-_08019964:
- ldr r0, _08019A28 @ =gUnknown_02024C98
- ldr r5, [sp, 0x20]
- adds r0, r5, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 13
- ands r1, r0
- str r5, [sp, 0x18]
- cmp r1, 0
- bne _0801997A
- b _08019AF6
-_0801997A:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_get_per_side_status
- movs r1, 0x1
- adds r5, r0, 0
- eors r5, r1
- ands r5, r1
- adds r0, r5, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0x2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08019A2C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080199AE
- b _08019ABC
-_080199AE:
- movs r1, 0x58
- adds r0, r6, 0
- muls r0, r1
- ldr r3, _08019A24 @ =gBattleMons
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08019A78
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08019A34
- movs r1, 0x58
- adds r0, r7, 0
- muls r0, r1
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08019A34
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08019A34
- str r2, [sp, 0x24]
- bl Random
- ldr r2, [sp, 0x24]
- adds r1, r2, 0
- ands r1, r0
- lsls r1, 1
- orrs r5, r1
- adds r0, r5, 0
- bl battle_get_side_with_given_state
- mov r2, r8
- strb r0, [r2]
- ldrb r0, [r2]
- movs r3, 0x58
- muls r0, r3
- ldr r5, _08019A24 @ =gBattleMons
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- ldr r1, [sp, 0x1C]
- strb r0, [r1]
- ldrb r0, [r2]
- muls r0, r3
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- ldr r2, _08019A30 @ =byte_2024C06
- strb r0, [r2]
- b _08019AE4
- .align 2, 0
-_08019A1C: .4byte gUnknown_02024A68
-_08019A20: .4byte gUnknown_02024A60
-_08019A24: .4byte gBattleMons
-_08019A28: .4byte gUnknown_02024C98
-_08019A2C: .4byte gUnknown_020239F8
-_08019A30: .4byte byte_2024C06
-_08019A34:
- ldr r3, _08019A74 @ =gBattleMons
- movs r2, 0x58
- adds r0, r6, 0
- muls r0, r2
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08019A78
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08019A78
- mov r5, r8
- strb r6, [r5]
- adds r1, r4, 0
- muls r1, r2
- adds r1, r3
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- b _08019AE0
- .align 2, 0
-_08019A74: .4byte gBattleMons
-_08019A78:
- ldr r3, _08019AB8 @ =gBattleMons
- movs r2, 0x58
- adds r0, r7, 0
- muls r0, r2
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08019AEE
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08019AEE
- mov r5, r8
- strb r7, [r5]
- adds r1, r4, 0
- muls r1, r2
- adds r1, r3
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- b _08019AE0
- .align 2, 0
-_08019AB8: .4byte gBattleMons
-_08019ABC:
- mov r2, r8
- strb r6, [r2]
- movs r3, 0x58
- adds r0, r6, 0
- muls r0, r3
- ldr r5, _08019B10 @ =gBattleMons
- adds r0, r5
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r1, [r2]
- cmp r1, 0
- beq _08019AEE
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08019AEE
- ldr r0, [sp, 0x1C]
- strb r1, [r0]
- ldrb r0, [r2]
-_08019AE0:
- ldr r1, _08019B14 @ =byte_2024C06
- strb r0, [r1]
-_08019AE4:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08019AEE:
- mov r2, r9
- cmp r2, 0
- beq _08019AF6
- b _08019E88
-_08019AF6:
- ldr r3, [sp, 0x1C]
- adds r3, 0x58
- str r3, [sp, 0x1C]
- ldr r5, [sp, 0x20]
- adds r5, 0x4
- str r5, [sp, 0x20]
- adds r4, 0x1
- ldr r0, _08019B18 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- bge _08019B0E
- b _0801995A
-_08019B0E:
- b _08019F76
- .align 2, 0
-_08019B10: .4byte gBattleMons
-_08019B14: .4byte byte_2024C06
-_08019B18: .4byte gUnknown_02024A68
-_08019B1C:
- movs r4, 0
- ldr r0, _08019B54 @ =gUnknown_02024A68
- ldrb r1, [r0]
- cmp r4, r1
- blt _08019B28
- b _08019F76
-_08019B28:
- ldr r0, _08019B58 @ =gBattleMons
- adds r5, r1, 0
- ldr r2, _08019B5C @ =gUnknown_02024C98
- adds r3, r0, 0
- adds r3, 0x20
- movs r6, 0x80
- lsls r6, 12
-_08019B36:
- ldrb r1, [r3]
- cmp r1, 0x16
- bne _08019B46
- ldr r0, [r2]
- ands r0, r6
- cmp r0, 0
- beq _08019B46
- b _08019F04
-_08019B46:
- adds r2, 0x4
- adds r3, 0x58
- adds r4, 0x1
- cmp r4, r5
- blt _08019B36
- b _08019F76
- .align 2, 0
-_08019B54: .4byte gUnknown_02024A68
-_08019B58: .4byte gBattleMons
-_08019B5C: .4byte gUnknown_02024C98
-_08019B60:
- mov r0, r10
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _08019BB0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019B76
- b _08019F76
-_08019B76:
- ldr r7, _08019BB4 @ =gBattleMons
-_08019B78:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- adds r3, r4, 0x1
- cmp r0, r5
- beq _08019BA2
- movs r0, 0x58
- muls r0, r4
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r6
- bne _08019BA2
- ldr r0, _08019BB8 @ =byte_2024C06
- strb r6, [r0]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019BA2:
- adds r4, r3, 0
- ldr r0, _08019BB0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019B78
- b _08019F76
- .align 2, 0
-_08019BB0: .4byte gUnknown_02024A68
-_08019BB4: .4byte gBattleMons
-_08019BB8: .4byte byte_2024C06
-_08019BBC:
- mov r0, r10
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _08019C0C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019BD2
- b _08019F76
-_08019BD2:
- ldr r7, _08019C10 @ =gBattleMons
-_08019BD4:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- adds r3, r4, 0x1
- cmp r0, r5
- bne _08019BFE
- movs r0, 0x58
- muls r0, r4
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r6
- bne _08019BFE
- ldr r0, _08019C14 @ =byte_2024C06
- strb r6, [r0]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019BFE:
- adds r4, r3, 0
- ldr r0, _08019C0C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019BD4
- b _08019F76
- .align 2, 0
-_08019C0C: .4byte gUnknown_02024A68
-_08019C10: .4byte gBattleMons
-_08019C14: .4byte byte_2024C06
-_08019C18:
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0xFD
- beq _08019C40
- cmp r0, 0xFE
- beq _08019C78
- movs r4, 0
- ldr r0, _08019C38 @ =gUnknown_02024A68
- adds r5, r0, 0
- ldrb r2, [r5]
- cmp r4, r2
- blt _08019C32
- b _08019F76
-_08019C32:
- ldr r2, _08019C3C @ =gBattleMons
- b _08019CB0
- .align 2, 0
-_08019C38: .4byte gUnknown_02024A68
-_08019C3C: .4byte gBattleMons
-_08019C40:
- movs r4, 0
- ldr r0, _08019C70 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019C4C
- b _08019F76
-_08019C4C:
- ldr r5, _08019C74 @ =gUnknown_02024C98
- movs r2, 0x80
- lsls r2, 9
- adds r1, r0, 0
-_08019C54:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- ands r0, r2
- adds r3, r4, 0x1
- cmp r0, 0
- beq _08019C68
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019C68:
- adds r4, r3, 0
- cmp r4, r1
- blt _08019C54
- b _08019F76
- .align 2, 0
-_08019C70: .4byte gUnknown_02024A68
-_08019C74: .4byte gUnknown_02024C98
-_08019C78:
- movs r4, 0
- ldr r0, _08019CA8 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019C84
- b _08019F76
-_08019C84:
- ldr r5, _08019CAC @ =gUnknown_02024C98
- movs r2, 0x80
- lsls r2, 10
- adds r1, r0, 0
-_08019C8C:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- ands r0, r2
- adds r3, r4, 0x1
- cmp r0, 0
- beq _08019CA0
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019CA0:
- adds r4, r3, 0
- cmp r4, r1
- blt _08019C8C
- b _08019F76
- .align 2, 0
-_08019CA8: .4byte gUnknown_02024A68
-_08019CAC: .4byte gUnknown_02024C98
-_08019CB0:
- movs r0, 0x58
- muls r0, r4
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- adds r3, r4, 0x1
- cmp r0, r6
- bne _08019CCA
- mov r0, r8
- strb r6, [r0]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019CCA:
- adds r4, r3, 0
- ldrb r1, [r5]
- cmp r4, r1
- blt _08019CB0
- b _08019F76
-_08019CD4:
- movs r4, 0
- ldr r0, _08019D10 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019CE0
- b _08019F76
-_08019CE0:
- ldr r7, _08019D14 @ =gBattleMons
- adds r2, r0, 0
- movs r5, 0x58
-_08019CE6:
- adds r0, r4, 0
- muls r0, r5
- adds r1, r0, r7
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- adds r3, r4, 0x1
- cmp r0, r6
- bne _08019D08
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08019D08
- mov r0, r8
- strb r6, [r0]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019D08:
- adds r4, r3, 0
- cmp r4, r2
- blt _08019CE6
- b _08019F76
- .align 2, 0
-_08019D10: .4byte gUnknown_02024A68
-_08019D14: .4byte gBattleMons
-_08019D18:
- movs r4, 0
- ldr r0, _08019D50 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019D24
- b _08019F76
-_08019D24:
- ldr r7, _08019D54 @ =gBattleMons
- adds r1, r0, 0
- movs r5, 0x58
- ldr r2, _08019D58 @ =byte_2024C06
-_08019D2C:
- adds r0, r4, 0
- muls r0, r5
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- adds r3, r4, 0x1
- cmp r0, r6
- bne _08019D48
- cmp r4, r10
- beq _08019D48
- strb r6, [r2]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019D48:
- adds r4, r3, 0
- cmp r4, r1
- blt _08019D2C
- b _08019F76
- .align 2, 0
-_08019D50: .4byte gUnknown_02024A68
-_08019D54: .4byte gBattleMons
-_08019D58: .4byte byte_2024C06
-_08019D5C:
- mov r0, r10
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _08019DAC @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019D72
- b _08019F76
-_08019D72:
- ldr r7, _08019DB0 @ =gBattleMons
-_08019D74:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- beq _08019DA0
- movs r0, 0x58
- muls r0, r4
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r6
- bne _08019DA0
- ldr r0, _08019DB4 @ =byte_2024C06
- strb r6, [r0]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08019DA0:
- adds r4, 0x1
- ldr r0, _08019DAC @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019D74
- b _08019F76
- .align 2, 0
-_08019DAC: .4byte gUnknown_02024A68
-_08019DB0: .4byte gBattleMons
-_08019DB4: .4byte byte_2024C06
-_08019DB8:
- mov r0, r10
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _08019E08 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019DCE
- b _08019F76
-_08019DCE:
- ldr r7, _08019E0C @ =gBattleMons
-_08019DD0:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- bne _08019DFC
- movs r0, 0x58
- muls r0, r4
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r6
- bne _08019DFC
- ldr r0, _08019E10 @ =byte_2024C06
- strb r6, [r0]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08019DFC:
- adds r4, 0x1
- ldr r0, _08019E08 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019DD0
- b _08019F76
- .align 2, 0
-_08019E08: .4byte gUnknown_02024A68
-_08019E0C: .4byte gBattleMons
-_08019E10: .4byte byte_2024C06
-_08019E14:
- ldr r0, _08019E30 @ =gUnknown_081D977D
- bl b_push_move_exec
- ldr r0, _08019E34 @ =0x02000000
- ldr r2, _08019E38 @ =0x00016003
- adds r1, r0, r2
- strb r6, [r1]
- mov r1, r9
- subs r1, 0x1
- ldr r3, _08019E3C @ =0x0001609b
- adds r0, r3
- strb r1, [r0]
- b _08019F76
- .align 2, 0
-_08019E30: .4byte gUnknown_081D977D
-_08019E34: .4byte 0x02000000
-_08019E38: .4byte 0x00016003
-_08019E3C: .4byte 0x0001609b
-_08019E40:
- ldr r0, _08019E5C @ =gUnknown_081D977D
- bl b_push_move_exec
- ldr r0, _08019E60 @ =0x02000000
- ldr r5, _08019E64 @ =0x00016003
- adds r1, r0, r5
- mov r2, r10
- strb r2, [r1]
- mov r1, r9
- subs r1, 0x1
- ldr r3, _08019E68 @ =0x0001609b
- adds r0, r3
- strb r1, [r0]
- b _08019F92
- .align 2, 0
-_08019E5C: .4byte gUnknown_081D977D
-_08019E60: .4byte 0x02000000
-_08019E64: .4byte 0x00016003
-_08019E68: .4byte 0x0001609b
-_08019E6C:
- mov r5, r8
- strb r1, [r5]
- ldr r0, [r2]
- ldr r1, _08019E80 @ =0xfff7ffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _08019E84 @ =gUnknown_081D978C
- bl b_push_move_exec
- b _08019F1A
- .align 2, 0
-_08019E80: .4byte 0xfff7ffff
-_08019E84: .4byte gUnknown_081D978C
-_08019E88:
- ldr r0, _08019EDC @ =gUnknown_081D9726
- bl b_push_move_exec
- ldr r1, _08019EE0 @ =gUnknown_02024C98
- ldr r2, [sp, 0x18]
- adds r1, r2, r1
- ldr r0, [r1]
- ldr r2, _08019EE4 @ =0xffefffff
- ands r0, r2
- str r0, [r1]
- ldr r0, _08019EE8 @ =0x02000000
- ldr r3, _08019EEC @ =0x00016003
- adds r0, r3
- strb r4, [r0]
- ldr r1, _08019EF0 @ =gUnknown_030041C0
- movs r4, 0xFD
- strb r4, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r2, _08019EF4 @ =gUnknown_02024A60
- ldrb r0, [r2]
- strb r0, [r1, 0x2]
- ldr r3, _08019EF8 @ =gUnknown_02024A6A
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08019EFC @ =gUnknown_03004290
- strb r4, [r1]
- movs r0, 0x9
- strb r0, [r1, 0x1]
- ldr r0, _08019F00 @ =byte_2024C06
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x3]
- b _08019F76
- .align 2, 0
-_08019EDC: .4byte gUnknown_081D9726
-_08019EE0: .4byte gUnknown_02024C98
-_08019EE4: .4byte 0xffefffff
-_08019EE8: .4byte 0x02000000
-_08019EEC: .4byte 0x00016003
-_08019EF0: .4byte gUnknown_030041C0
-_08019EF4: .4byte gUnknown_02024A60
-_08019EF8: .4byte gUnknown_02024A6A
-_08019EFC: .4byte gUnknown_03004290
-_08019F00: .4byte byte_2024C06
-_08019F04:
- mov r5, r8
- strb r1, [r5]
- ldr r0, [r2]
- ldr r1, _08019F30 @ =0xfff7ffff
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _08019F34 @ =gUnknown_02024C10
- ldr r0, _08019F38 @ =gUnknown_081D9795
- str r0, [r1]
-_08019F1A:
- ldr r0, _08019F3C @ =0x02000000
- ldr r1, _08019F40 @ =0x000160dd
- adds r0, r1
- strb r4, [r0]
-_08019F22:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- b _08019F76
- .align 2, 0
-_08019F30: .4byte 0xfff7ffff
-_08019F34: .4byte gUnknown_02024C10
-_08019F38: .4byte gUnknown_081D9795
-_08019F3C: .4byte 0x02000000
-_08019F40: .4byte 0x000160dd
-_08019F44:
- movs r4, 0
- ldr r0, _08019FA4 @ =gUnknown_02024A68
- ldrb r1, [r0]
- cmp r4, r1
- bge _08019F76
- ldr r0, _08019FA8 @ =gBattleMons
- adds r2, r1, 0
- adds r1, r0, 0
- adds r1, 0x20
- ldr r3, _08019FAC @ =byte_2024C06
-_08019F58:
- ldrb r0, [r1]
- cmp r0, r6
- bne _08019F6E
- cmp r4, r10
- beq _08019F6E
- strb r6, [r3]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08019F6E:
- adds r1, 0x58
- adds r4, 0x1
- cmp r4, r2
- blt _08019F58
-_08019F76:
- mov r2, r9
- cmp r2, 0
- beq _08019F92
-_08019F7C:
- ldr r3, [sp, 0x4]
- cmp r3, 0xB
- bhi _08019F92
- ldr r1, _08019FAC @ =byte_2024C06
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _08019F92
- adds r1, r0, 0
- mov r0, r10
- bl sub_81074C4
-_08019F92:
- mov r0, r9
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08019FA4: .4byte gUnknown_02024A68
-_08019FA8: .4byte gBattleMons
-_08019FAC: .4byte byte_2024C06
- thumb_func_end sub_8018324
-
- thumb_func_start b_call_bc_move_exec
-b_call_bc_move_exec: @ 8019FB0
- ldr r1, _08019FD8 @ =gUnknown_02024C10
- str r0, [r1]
- ldr r3, _08019FDC @ =0x02017140
- adds r2, r3, 0
- adds r2, 0x20
- ldrb r0, [r2]
- adds r1, r0, 0x1
- strb r1, [r2]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r3
- ldr r2, _08019FE0 @ =gUnknown_030042D4
- ldr r1, [r2]
- str r1, [r0]
- ldr r0, _08019FE4 @ =sub_8013F54
- str r0, [r2]
- ldr r1, _08019FE8 @ =gUnknown_02024A7F
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08019FD8: .4byte gUnknown_02024C10
-_08019FDC: .4byte 0x02017140
-_08019FE0: .4byte gUnknown_030042D4
-_08019FE4: .4byte sub_8013F54
-_08019FE8: .4byte gUnknown_02024A7F
- thumb_func_end b_call_bc_move_exec
-
- thumb_func_start b_push_move_exec
-b_push_move_exec: @ 8019FEC
- push {r4,lr}
- adds r4, r0, 0
- bl b_movescr_stack_push_cursor
- ldr r0, _0801A01C @ =gUnknown_02024C10
- str r4, [r0]
- ldr r3, _0801A020 @ =0x02017140
- adds r2, r3, 0
- adds r2, 0x20
- ldrb r0, [r2]
- adds r1, r0, 0x1
- strb r1, [r2]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r3
- ldr r2, _0801A024 @ =gUnknown_030042D4
- ldr r1, [r2]
- str r1, [r0]
- ldr r0, _0801A028 @ =sub_8013FBC
- str r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801A01C: .4byte gUnknown_02024C10
-_0801A020: .4byte 0x02017140
-_0801A024: .4byte gUnknown_030042D4
-_0801A028: .4byte sub_8013FBC
- thumb_func_end b_push_move_exec
-
- thumb_func_start sub_801A02C
-sub_801A02C: @ 801A02C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- movs r0, 0
- mov r10, r0
- movs r1, 0
- str r1, [sp, 0xC]
- add r0, sp, 0x4
- strb r1, [r0]
- ldr r4, _0801A078 @ =gUnknown_02024C04
- ldr r1, _0801A07C @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0801A084
- ldr r1, _0801A080 @ =gEnigmaBerries
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r5, [r0, 0x7]
- ldrb r0, [r0, 0x1A]
- b _0801A098
- .align 2, 0
-_0801A078: .4byte gUnknown_02024C04
-_0801A07C: .4byte gBattleMons
-_0801A080: .4byte gEnigmaBerries
-_0801A084:
- ldrh r0, [r4]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r0, 24
-_0801A098:
- mov r9, r0
- ldr r1, _0801A0C0 @ =gBattleMons
- ldr r0, _0801A0C4 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- str r0, [sp, 0x14]
- cmp r0, 0xAF
- bne _0801A0CC
- ldr r1, _0801A0C8 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r3, [r0, 0x7]
- mov r8, r3
- ldrb r0, [r0, 0x1A]
- b _0801A0E2
- .align 2, 0
-_0801A0C0: .4byte gBattleMons
-_0801A0C4: .4byte gUnknown_02024C07
-_0801A0C8: .4byte gEnigmaBerries
-_0801A0CC:
- ldr r0, [sp, 0x14]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, [sp, 0x14]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r0, 24
-_0801A0E2:
- str r0, [sp, 0x10]
- ldr r2, _0801A118 @ =gBattleMons
- ldr r0, _0801A11C @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r4, [r0, 0x2E]
- cmp r4, 0xAF
- beq _0801A102
- adds r0, r4, 0
- bl ItemId_GetHoldEffect
- adds r0, r4, 0
- bl ItemId_GetHoldEffectParam
-_0801A102:
- ldr r4, [sp, 0x8]
- cmp r4, 0x4
- bls _0801A10C
- bl _0801B3CA
-_0801A10C:
- lsls r0, r4, 2
- ldr r1, _0801A120 @ =_0801A124
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801A118: .4byte gBattleMons
-_0801A11C: .4byte gUnknown_02024C08
-_0801A120: .4byte _0801A124
- .align 2, 0
-_0801A124:
- .4byte _0801A138
- .4byte _0801A1D4
- .4byte _0801B3CA
- .4byte _0801AE0C
- .4byte _0801B26C
-_0801A138:
- cmp r5, 0x17
- beq _0801A15C
- cmp r5, 0x20
- beq _0801A144
- bl _0801B3CA
-_0801A144:
- ldr r0, _0801A154 @ =0x02000000
- ldr r5, _0801A158 @ =0x00016056
- adds r0, r5
- movs r1, 0x2
- strb r1, [r0]
- bl _0801B3CA
- .align 2, 0
-_0801A154: .4byte 0x02000000
-_0801A158: .4byte 0x00016056
-_0801A15C:
- ldr r0, _0801A1B8 @ =gBattleMons
- mov r8, r0
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x18
- adds r1, r0
- movs r2, 0x6
- movs r3, 0x7
- mov r10, r3
-_0801A172:
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _0801A180
- strb r2, [r1]
- movs r4, 0x5
- str r4, [sp, 0xC]
-_0801A180:
- adds r1, 0x1
- movs r5, 0x1
- negs r5, r5
- add r10, r5
- mov r0, r10
- cmp r0, 0
- bge _0801A172
- ldr r1, [sp, 0xC]
- cmp r1, 0
- bne _0801A198
- bl _0801B3CA
-_0801A198:
- ldr r0, _0801A1BC @ =0x02000000
- ldr r2, _0801A1C0 @ =0x00016003
- adds r0, r2
- strb r7, [r0]
- ldr r0, _0801A1C4 @ =gUnknown_02024C0B
- strb r7, [r0]
- ldr r1, _0801A1C8 @ =gUnknown_02024A60
- ldr r0, _0801A1CC @ =gUnknown_02024C07
- strb r7, [r0]
- strb r7, [r1]
- ldr r0, _0801A1D0 @ =gUnknown_081D9A5E
- bl b_call_bc_move_exec
- bl _0801B3CA
- .align 2, 0
-_0801A1B8: .4byte gBattleMons
-_0801A1BC: .4byte 0x02000000
-_0801A1C0: .4byte 0x00016003
-_0801A1C4: .4byte gUnknown_02024C0B
-_0801A1C8: .4byte gUnknown_02024A60
-_0801A1CC: .4byte gUnknown_02024C07
-_0801A1D0: .4byte gUnknown_081D9A5E
-_0801A1D4:
- ldr r1, _0801A1FC @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r0, r1
- ldrh r0, [r0, 0x28]
- mov r8, r1
- cmp r0, 0
- bne _0801A1E8
- bl _0801B3CA
-_0801A1E8:
- subs r0, r5, 0x1
- cmp r0, 0x2A
- bls _0801A1F2
- bl _0801AD5A
-_0801A1F2:
- lsls r0, 2
- ldr r1, _0801A200 @ =_0801A204
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801A1FC: .4byte gBattleMons
-_0801A200: .4byte _0801A204
- .align 2, 0
-_0801A204:
- .4byte _0801A2B0
- .4byte _0801AAC8
- .4byte _0801AB84
- .4byte _0801AAF8
- .4byte _0801AB2C
- .4byte _0801AB5C
- .4byte _0801A2F8
- .4byte _0801ABC8
- .4byte _0801ABF8
- .4byte _0801A4CC
- .4byte _0801A548
- .4byte _0801A5C4
- .4byte _0801A634
- .4byte _0801A6C8
- .4byte _0801A75C
- .4byte _0801A7D4
- .4byte _0801A838
- .4byte _0801A89C
- .4byte _0801A900
- .4byte _0801A97C
- .4byte _0801A9C8
- .4byte _0801AD5A
- .4byte _0801A3F8
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD24
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801A46C
-_0801A2B0:
- movs r0, 0x58
- muls r0, r7
- mov r3, r8
- adds r2, r0, r3
- ldrh r0, [r2, 0x2C]
- ldrh r1, [r2, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A2C6
- bl _0801AD5A
-_0801A2C6:
- cmp r6, 0
- beq _0801A2CE
- bl _0801AD5A
-_0801A2CE:
- ldr r4, _0801A2F0 @ =gUnknown_02024BEC
- mov r5, r9
- str r5, [r4]
- ldrh r3, [r2, 0x28]
- adds r0, r3, r5
- ldrh r1, [r2, 0x2C]
- cmp r0, r1
- ble _0801A2E2
- subs r0, r1, r3
- str r0, [r4]
-_0801A2E2:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- ldr r0, _0801A2F4 @ =gUnknown_081D9A74
- bl b_call_bc_move_exec
- b _0801A752
- .align 2, 0
-_0801A2F0: .4byte gUnknown_02024BEC
-_0801A2F4: .4byte gUnknown_081D9A74
-_0801A2F8:
- cmp r6, 0
- beq _0801A300
- bl _0801AD5A
-_0801A300:
- adds r0, r7, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0801A324
- ldr r1, _0801A31C @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0801A320 @ =gPlayerParty
- b _0801A332
- .align 2, 0
-_0801A31C: .4byte gUnknown_02024A6A
-_0801A320: .4byte gPlayerParty
-_0801A324:
- ldr r1, _0801A3A0 @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0801A3A4 @ =gEnemyParty
-_0801A332:
- adds r4, r1, r0
- movs r1, 0
- mov r10, r1
- add r5, sp, 0x4
-_0801A33A:
- mov r1, r10
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- mov r1, r10
- adds r1, 0x11
- adds r0, r4, 0
- bl GetMonData
- strb r0, [r5]
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r6, 0
- beq _0801A36A
- ldrb r0, [r5]
- cmp r0, 0
- beq _0801A374
-_0801A36A:
- movs r2, 0x1
- add r10, r2
- mov r3, r10
- cmp r3, 0x3
- ble _0801A33A
-_0801A374:
- mov r4, r10
- cmp r4, 0x4
- bne _0801A37E
- bl _0801AD5A
-_0801A37E:
- lsls r2, r4, 24
- lsrs r2, 24
- adds r0, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r2, r0, 24
- add r0, sp, 0x4
- ldrb r0, [r0]
- mov r5, r9
- adds r1, r0, r5
- cmp r1, r2
- ble _0801A3A8
- add r0, sp, 0x4
- strb r2, [r0]
- b _0801A3AC
- .align 2, 0
-_0801A3A0: .4byte gUnknown_02024A6A
-_0801A3A4: .4byte gEnemyParty
-_0801A3A8:
- add r0, sp, 0x4
- strb r1, [r0]
-_0801A3AC:
- ldr r1, _0801A3EC @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- strb r6, [r1, 0x2]
- lsrs r0, r6, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r0, _0801A3F0 @ =gUnknown_081D9A91
- bl b_call_bc_move_exec
- mov r1, r10
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- add r0, sp, 0x4
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldr r0, _0801A3F4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- movs r1, 0x3
- str r1, [sp, 0xC]
- bl _0801AD62
- .align 2, 0
-_0801A3EC: .4byte gUnknown_030041C0
-_0801A3F0: .4byte gUnknown_081D9A91
-_0801A3F4: .4byte gUnknown_02024A60
-_0801A3F8:
- ldr r0, _0801A450 @ =gBattleMons
- movs r1, 0x58
- muls r1, r7
- adds r0, 0x18
- adds r1, r0
- movs r2, 0x6
- movs r3, 0x7
- mov r10, r3
-_0801A408:
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _0801A416
- strb r2, [r1]
- movs r4, 0x5
- str r4, [sp, 0xC]
-_0801A416:
- adds r1, 0x1
- movs r5, 0x1
- negs r5, r5
- add r10, r5
- mov r0, r10
- cmp r0, 0
- bge _0801A408
- movs r1, 0x8
- mov r10, r1
- ldr r2, [sp, 0xC]
- cmp r2, 0
- bne _0801A432
- bl _0801B3CA
-_0801A432:
- ldr r0, _0801A454 @ =0x02000000
- ldr r3, _0801A458 @ =0x00016003
- adds r0, r3
- strb r7, [r0]
- ldr r0, _0801A45C @ =gUnknown_02024C0B
- strb r7, [r0]
- ldr r1, _0801A460 @ =gUnknown_02024A60
- ldr r0, _0801A464 @ =gUnknown_02024C07
- strb r7, [r0]
- strb r7, [r1]
- ldr r0, _0801A468 @ =gUnknown_081D9A5E
- bl b_call_bc_move_exec
- bl _0801AD5A
- .align 2, 0
-_0801A450: .4byte gBattleMons
-_0801A454: .4byte 0x02000000
-_0801A458: .4byte 0x00016003
-_0801A45C: .4byte gUnknown_02024C0B
-_0801A460: .4byte gUnknown_02024A60
-_0801A464: .4byte gUnknown_02024C07
-_0801A468: .4byte gUnknown_081D9A5E
-_0801A46C:
- movs r0, 0x58
- muls r0, r7
- mov r4, r8
- adds r1, r0, r4
- ldrh r0, [r1, 0x28]
- ldrh r2, [r1, 0x2C]
- cmp r0, r2
- bcc _0801A480
- bl _0801AD5A
-_0801A480:
- cmp r6, 0
- beq _0801A488
- bl _0801AD5A
-_0801A488:
- ldr r3, _0801A4C4 @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- lsrs r0, 4
- str r0, [r3]
- cmp r0, 0
- bne _0801A498
- movs r0, 0x1
- str r0, [r3]
-_0801A498:
- ldrh r2, [r1, 0x28]
- ldr r0, [r3]
- adds r0, r2, r0
- ldrh r1, [r1, 0x2C]
- cmp r0, r1
- ble _0801A4A8
- subs r0, r1, r2
- str r0, [r3]
-_0801A4A8:
- ldr r0, [r3]
- negs r0, r0
- str r0, [r3]
- ldr r0, _0801A4C8 @ =gUnknown_081D9AA1
- bl b_call_bc_move_exec
- movs r3, 0x4
- str r3, [sp, 0xC]
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_81074F8
- bl _0801AD5A
- .align 2, 0
-_0801A4C4: .4byte gUnknown_02024BEC
-_0801A4C8: .4byte gUnknown_081D9AA1
-_0801A4CC:
- movs r0, 0x58
- adds r4, r7, 0
- muls r4, r0
- str r4, [sp, 0x18]
- add r4, r8
- ldrh r0, [r4, 0x2C]
- ldrh r1, [r4, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A4E4
- bl _0801AD5A
-_0801A4E4:
- cmp r6, 0
- beq _0801A4EC
- bl _0801AD5A
-_0801A4EC:
- ldr r1, _0801A540 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- strb r6, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r5, _0801A544 @ =gUnknown_02024BEC
- ldrh r0, [r4, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _0801A510
- movs r0, 0x1
- str r0, [r5]
-_0801A510:
- ldrh r2, [r4, 0x28]
- ldr r0, [r5]
- adds r0, r2, r0
- ldrh r1, [r4, 0x2C]
- cmp r0, r1
- ble _0801A520
- subs r0, r1, r2
- str r0, [r5]
-_0801A520:
- ldr r0, [r5]
- negs r0, r0
- str r0, [r5]
- mov r0, r8
- adds r0, 0x48
- ldr r5, [sp, 0x18]
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0
-_0801A532:
- bl sub_8040A7C
- lsls r0, 24
- cmp r0, 0
- bge _0801A53E
- b _0801A738
-_0801A53E:
- b _0801A74C
- .align 2, 0
-_0801A540: .4byte gUnknown_030041C0
-_0801A544: .4byte gUnknown_02024BEC
-_0801A548:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- str r1, [sp, 0x1C]
- adds r5, r1, 0
- add r5, r8
- ldrh r0, [r5, 0x2C]
- ldrh r1, [r5, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A562
- bl _0801AD5A
-_0801A562:
- cmp r6, 0
- beq _0801A56A
- bl _0801AD5A
-_0801A56A:
- ldr r1, _0801A5BC @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- movs r6, 0x1
- strb r6, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r4, _0801A5C0 @ =gUnknown_02024BEC
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801A58E
- str r6, [r4]
-_0801A58E:
- ldrh r2, [r5, 0x28]
- ldr r0, [r4]
- adds r0, r2, r0
- ldrh r1, [r5, 0x2C]
- cmp r0, r1
- ble _0801A59E
- subs r0, r1, r2
- str r0, [r4]
-_0801A59E:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- mov r0, r8
- adds r0, 0x48
- ldr r2, [sp, 0x1C]
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x1
- bl sub_8040A7C
- lsls r0, 24
- cmp r0, 0
- blt _0801A6A4
- b _0801A6B8
- .align 2, 0
-_0801A5BC: .4byte gUnknown_030041C0
-_0801A5C0: .4byte gUnknown_02024BEC
-_0801A5C4:
- movs r0, 0x58
- adds r4, r7, 0
- muls r4, r0
- str r4, [sp, 0x20]
- adds r5, r4, 0
- add r5, r8
- ldrh r0, [r5, 0x2C]
- ldrh r1, [r5, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A5DC
- b _0801AD5A
-_0801A5DC:
- cmp r6, 0
- beq _0801A5E2
- b _0801AD5A
-_0801A5E2:
- ldr r1, _0801A62C @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r4, _0801A630 @ =gUnknown_02024BEC
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801A608
- movs r0, 0x1
- str r0, [r4]
-_0801A608:
- ldrh r2, [r5, 0x28]
- ldr r0, [r4]
- adds r0, r2, r0
- ldrh r1, [r5, 0x2C]
- cmp r0, r1
- ble _0801A618
- subs r0, r1, r2
- str r0, [r4]
-_0801A618:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- mov r0, r8
- adds r0, 0x48
- ldr r5, [sp, 0x20]
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0x2
- b _0801A532
- .align 2, 0
-_0801A62C: .4byte gUnknown_030041C0
-_0801A630: .4byte gUnknown_02024BEC
-_0801A634:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- str r1, [sp, 0x24]
- adds r5, r1, 0
- add r5, r8
- ldrh r0, [r5, 0x2C]
- ldrh r1, [r5, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A64C
- b _0801AD5A
-_0801A64C:
- cmp r6, 0
- beq _0801A652
- b _0801AD5A
-_0801A652:
- ldr r1, _0801A6AC @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- movs r0, 0x3
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r4, _0801A6B0 @ =gUnknown_02024BEC
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801A678
- movs r0, 0x1
- str r0, [r4]
-_0801A678:
- ldrh r2, [r5, 0x28]
- ldr r0, [r4]
- adds r0, r2, r0
- ldrh r1, [r5, 0x2C]
- cmp r0, r1
- ble _0801A688
- subs r0, r1, r2
- str r0, [r4]
-_0801A688:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- mov r0, r8
- adds r0, 0x48
- ldr r2, [sp, 0x24]
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x3
- bl sub_8040A7C
- lsls r0, 24
- cmp r0, 0
- bge _0801A6B8
-_0801A6A4:
- ldr r0, _0801A6B4 @ =gUnknown_081D9AD4
- bl b_call_bc_move_exec
- b _0801A6BE
- .align 2, 0
-_0801A6AC: .4byte gUnknown_030041C0
-_0801A6B0: .4byte gUnknown_02024BEC
-_0801A6B4: .4byte gUnknown_081D9AD4
-_0801A6B8:
- ldr r0, _0801A6C4 @ =gUnknown_081D9A74
- bl b_call_bc_move_exec
-_0801A6BE:
- movs r3, 0x4
- str r3, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801A6C4: .4byte gUnknown_081D9A74
-_0801A6C8:
- movs r0, 0x58
- adds r4, r7, 0
- muls r4, r0
- str r4, [sp, 0x28]
- adds r5, r4, 0
- add r5, r8
- ldrh r0, [r5, 0x2C]
- ldrh r1, [r5, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A6E0
- b _0801AD5A
-_0801A6E0:
- cmp r6, 0
- beq _0801A6E6
- b _0801AD5A
-_0801A6E6:
- ldr r1, _0801A740 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- movs r0, 0x4
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r4, _0801A744 @ =gUnknown_02024BEC
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801A70C
- movs r0, 0x1
- str r0, [r4]
-_0801A70C:
- ldrh r2, [r5, 0x28]
- ldr r0, [r4]
- adds r0, r2, r0
- ldrh r1, [r5, 0x2C]
- cmp r0, r1
- ble _0801A71C
- subs r0, r1, r2
- str r0, [r4]
-_0801A71C:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- mov r0, r8
- adds r0, 0x48
- ldr r5, [sp, 0x28]
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0x4
- bl sub_8040A7C
- lsls r0, 24
- cmp r0, 0
- bge _0801A74C
-_0801A738:
- ldr r0, _0801A748 @ =gUnknown_081D9AD4
- bl b_call_bc_move_exec
- b _0801A752
- .align 2, 0
-_0801A740: .4byte gUnknown_030041C0
-_0801A744: .4byte gUnknown_02024BEC
-_0801A748: .4byte gUnknown_081D9AD4
-_0801A74C:
- ldr r0, _0801A758 @ =gUnknown_081D9A74
- bl b_call_bc_move_exec
-_0801A752:
- movs r0, 0x4
- str r0, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801A758: .4byte gUnknown_081D9A74
-_0801A75C:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A774
- b _0801AD5A
-_0801A774:
- cmp r6, 0
- beq _0801A77A
- b _0801AD5A
-_0801A77A:
- movs r0, 0x19
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _0801A784
- b _0801AD5A
-_0801A784:
- ldr r1, _0801A7BC @ =gUnknown_030041C0
- movs r2, 0xFD
- strb r2, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- movs r0, 0x1
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, _0801A7C0 @ =gUnknown_03004290
- strb r2, [r1]
- strb r6, [r1, 0x1]
- movs r0, 0xD2
- strb r0, [r1, 0x2]
- strb r6, [r1, 0x3]
- subs r0, 0xD3
- strb r0, [r1, 0x4]
- ldr r0, _0801A7C4 @ =gUnknown_02024C0A
- strb r7, [r0]
- ldr r1, _0801A7C8 @ =0x02000000
- ldr r3, _0801A7CC @ =0x0001601e
- adds r2, r1, r3
- movs r0, 0x11
- strb r0, [r2]
- ldr r4, _0801A7D0 @ =0x000160a4
- adds r2, r1, r4
- movs r0, 0xF
- b _0801A94C
- .align 2, 0
-_0801A7BC: .4byte gUnknown_030041C0
-_0801A7C0: .4byte gUnknown_03004290
-_0801A7C4: .4byte gUnknown_02024C0A
-_0801A7C8: .4byte 0x02000000
-_0801A7CC: .4byte 0x0001601e
-_0801A7D0: .4byte 0x000160a4
-_0801A7D4:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A7EC
- b _0801AD5A
-_0801A7EC:
- cmp r6, 0
- beq _0801A7F2
- b _0801AD5A
-_0801A7F2:
- movs r0, 0x1A
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _0801A7FC
- b _0801AD5A
-_0801A7FC:
- ldr r1, _0801A824 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0801A828 @ =gUnknown_02024C0A
- strb r7, [r0]
- ldr r1, _0801A82C @ =0x02000000
- ldr r3, _0801A830 @ =0x0001601e
- adds r2, r1, r3
- movs r0, 0x12
- strb r0, [r2]
- ldr r4, _0801A834 @ =0x000160a4
- adds r2, r1, r4
- movs r0, 0x10
- b _0801A94C
- .align 2, 0
-_0801A824: .4byte gUnknown_030041C0
-_0801A828: .4byte gUnknown_02024C0A
-_0801A82C: .4byte 0x02000000
-_0801A830: .4byte 0x0001601e
-_0801A834: .4byte 0x000160a4
-_0801A838:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A850
- b _0801AD5A
-_0801A850:
- cmp r6, 0
- beq _0801A856
- b _0801AD5A
-_0801A856:
- movs r0, 0x1B
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _0801A860
- b _0801AD5A
-_0801A860:
- ldr r1, _0801A888 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- movs r0, 0x3
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0801A88C @ =gUnknown_02024C0A
- strb r7, [r0]
- ldr r1, _0801A890 @ =0x02000000
- ldr r3, _0801A894 @ =0x0001601e
- adds r2, r1, r3
- movs r0, 0x13
- strb r0, [r2]
- ldr r4, _0801A898 @ =0x000160a4
- adds r2, r1, r4
- movs r0, 0x11
- b _0801A94C
- .align 2, 0
-_0801A888: .4byte gUnknown_030041C0
-_0801A88C: .4byte gUnknown_02024C0A
-_0801A890: .4byte 0x02000000
-_0801A894: .4byte 0x0001601e
-_0801A898: .4byte 0x000160a4
-_0801A89C:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A8B4
- b _0801AD5A
-_0801A8B4:
- cmp r6, 0
- beq _0801A8BA
- b _0801AD5A
-_0801A8BA:
- movs r0, 0x1C
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _0801A8C4
- b _0801AD5A
-_0801A8C4:
- ldr r1, _0801A8EC @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- movs r0, 0x4
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0801A8F0 @ =gUnknown_02024C0A
- strb r7, [r0]
- ldr r1, _0801A8F4 @ =0x02000000
- ldr r3, _0801A8F8 @ =0x0001601e
- adds r2, r1, r3
- movs r0, 0x14
- strb r0, [r2]
- ldr r4, _0801A8FC @ =0x000160a4
- adds r2, r1, r4
- movs r0, 0x12
- b _0801A94C
- .align 2, 0
-_0801A8EC: .4byte gUnknown_030041C0
-_0801A8F0: .4byte gUnknown_02024C0A
-_0801A8F4: .4byte 0x02000000
-_0801A8F8: .4byte 0x0001601e
-_0801A8FC: .4byte 0x000160a4
-_0801A900:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A918
- b _0801AD5A
-_0801A918:
- cmp r6, 0
- beq _0801A91E
- b _0801AD5A
-_0801A91E:
- movs r0, 0x1D
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _0801A928
- b _0801AD5A
-_0801A928:
- ldr r1, _0801A960 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0801A964 @ =gUnknown_02024C0A
- strb r7, [r0]
- ldr r1, _0801A968 @ =0x02000000
- ldr r3, _0801A96C @ =0x0001601e
- adds r2, r1, r3
- movs r0, 0x15
- strb r0, [r2]
- ldr r4, _0801A970 @ =0x000160a4
- adds r2, r1, r4
- movs r0, 0x13
-_0801A94C:
- strb r0, [r2]
- ldr r5, _0801A974 @ =0x000160a5
- adds r1, r5
- strb r6, [r1]
- ldr r0, _0801A978 @ =gUnknown_081D9AFE
- bl b_call_bc_move_exec
- movs r0, 0x5
- str r0, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801A960: .4byte gUnknown_030041C0
-_0801A964: .4byte gUnknown_02024C0A
-_0801A968: .4byte 0x02000000
-_0801A96C: .4byte 0x0001601e
-_0801A970: .4byte 0x000160a4
-_0801A974: .4byte 0x000160a5
-_0801A978: .4byte gUnknown_081D9AFE
-_0801A97C:
- movs r0, 0x58
- adds r5, r7, 0
- muls r5, r0
- mov r1, r8
- adds r0, r5, r1
- ldrh r4, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A996
- b _0801AD5A
-_0801A996:
- cmp r6, 0
- beq _0801A99C
- b _0801AD5A
-_0801A99C:
- mov r0, r8
- adds r0, 0x50
- adds r1, r5, r0
- ldr r2, [r1]
- movs r3, 0x80
- lsls r3, 13
- adds r0, r2, 0
- ands r0, r3
- cmp r0, 0
- beq _0801A9B2
- b _0801AD5A
-_0801A9B2:
- orrs r2, r3
- str r2, [r1]
- ldr r0, _0801A9C4 @ =gUnknown_081D9B19
- bl b_call_bc_move_exec
- movs r2, 0x2
- str r2, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801A9C4: .4byte gUnknown_081D9B19
-_0801A9C8:
- cmp r6, 0
- beq _0801A9CE
- b _0801AD5A
-_0801A9CE:
- movs r0, 0x58
- adds r5, r7, 0
- muls r5, r0
- mov r3, r8
- adds r0, r5, r3
- ldrh r4, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A9E8
- b _0801AD5A
-_0801A9E8:
- movs r4, 0
- mov r10, r4
- adds r0, r5, 0x1
- mov r1, r8
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xB
- ble _0801AA18
- mov r0, r8
- adds r0, 0x19
- adds r1, r5, r0
-_0801AA04:
- adds r1, 0x1
- movs r5, 0x1
- add r10, r5
- mov r0, r10
- cmp r0, 0x4
- bgt _0801AA18
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _0801AA04
-_0801AA18:
- mov r1, r10
- cmp r1, 0x5
- bne _0801AA20
- b _0801AD5A
-_0801AA20:
- movs r0, 0x58
- muls r0, r7
- adds r4, r0, 0x1
- ldr r5, _0801AAA4 @ =gUnknown_02024A98
-_0801AA28:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- adds r0, r4
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xC
- beq _0801AA28
- ldr r1, _0801AAA8 @ =gUnknown_030041C0
- movs r3, 0
- movs r2, 0xFD
- strb r2, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- mov r0, r10
- adds r0, 0x1
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0801AAAC @ =gUnknown_03004290
- strb r2, [r0]
- strb r3, [r0, 0x1]
- movs r1, 0xD1
- strb r1, [r0, 0x2]
- strb r3, [r0, 0x3]
- strb r3, [r0, 0x4]
- movs r1, 0xD2
- strb r1, [r0, 0x5]
- strb r3, [r0, 0x6]
- subs r1, 0xD3
- strb r1, [r0, 0x7]
- ldr r0, _0801AAB0 @ =gUnknown_02024C0A
- strb r7, [r0]
- ldr r1, _0801AAB4 @ =0x02000000
- mov r2, r10
- adds r2, 0x21
- ldr r4, _0801AAB8 @ =0x0001601e
- adds r0, r1, r4
- strb r2, [r0]
- adds r2, 0x6
- ldr r5, _0801AABC @ =0x000160a4
- adds r0, r1, r5
- strb r2, [r0]
- ldr r0, _0801AAC0 @ =0x000160a5
- adds r1, r0
- strb r3, [r1]
- ldr r0, _0801AAC4 @ =gUnknown_081D9AFE
- bl b_call_bc_move_exec
- movs r1, 0x5
- str r1, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801AAA4: .4byte gUnknown_02024A98
-_0801AAA8: .4byte gUnknown_030041C0
-_0801AAAC: .4byte gUnknown_03004290
-_0801AAB0: .4byte gUnknown_02024C0A
-_0801AAB4: .4byte 0x02000000
-_0801AAB8: .4byte 0x0001601e
-_0801AABC: .4byte 0x000160a4
-_0801AAC0: .4byte 0x000160a5
-_0801AAC4: .4byte gUnknown_081D9AFE
-_0801AAC8:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x4C
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- bne _0801AAE0
- b _0801AD5A
-_0801AAE0:
- movs r0, 0x41
- negs r0, r0
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801AAF4 @ =gUnknown_081D99B6
- bl b_call_bc_move_exec
- movs r2, 0x1
- str r2, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801AAF4: .4byte gUnknown_081D99B6
-_0801AAF8:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x4C
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x88
- ands r0, r2
- cmp r0, 0
- bne _0801AB10
- b _0801AD5A
-_0801AB10:
- ldr r0, _0801AB24 @ =0xfffff077
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801AB28 @ =gUnknown_081D99CE
- bl b_call_bc_move_exec
- movs r3, 0x1
- str r3, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801AB24: .4byte 0xfffff077
-_0801AB28: .4byte gUnknown_081D99CE
-_0801AB2C:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x4C
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- bne _0801AB44
- b _0801AD5A
-_0801AB44:
- movs r0, 0x11
- negs r0, r0
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801AB58 @ =gUnknown_081D99E6
- bl b_call_bc_move_exec
- movs r4, 0x1
- str r4, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801AB58: .4byte gUnknown_081D99E6
-_0801AB5C:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x4C
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- bne _0801AB74
- b _0801AD5A
-_0801AB74:
- movs r0, 0x21
- negs r0, r0
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801AB80 @ =gUnknown_081D99FE
- b _0801AD0E
- .align 2, 0
-_0801AB80: .4byte gUnknown_081D99FE
-_0801AB84:
- movs r0, 0x58
- adds r3, r7, 0
- muls r3, r0
- mov r0, r8
- adds r0, 0x4C
- adds r2, r3, r0
- ldr r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801AB9C
- b _0801AD5A
-_0801AB9C:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- mov r1, r8
- adds r1, 0x50
- adds r1, r3, r1
- ldr r0, [r1]
- ldr r2, _0801ABC0 @ =0xf7ffffff
- ands r0, r2
- str r0, [r1]
- ldr r0, _0801ABC4 @ =gUnknown_081D9A16
- bl b_call_bc_move_exec
- movs r0, 0x1
- str r0, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801ABC0: .4byte 0xf7ffffff
-_0801ABC4: .4byte gUnknown_081D9A16
-_0801ABC8:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x50
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x7
- ands r0, r2
- cmp r0, 0
- bne _0801ABE0
- b _0801AD5A
-_0801ABE0:
- movs r0, 0x8
- negs r0, r0
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801ABF4 @ =gUnknown_081D9A2E
- bl b_call_bc_move_exec
- movs r1, 0x2
- str r1, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801ABF4: .4byte gUnknown_081D9A2E
-_0801ABF8:
- movs r0, 0x58
- adds r5, r7, 0
- muls r5, r0
- mov r0, r8
- adds r0, 0x4C
- adds r4, r5, r0
- ldr r2, [r4]
- ldrb r0, [r4]
- cmp r0, 0
- bne _0801AC1E
- mov r0, r8
- adds r0, 0x50
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801AC1E
- b _0801AD5A
-_0801AC1E:
- movs r3, 0
- mov r10, r3
- movs r0, 0x88
- ands r2, r0
- cmp r2, 0
- beq _0801AC36
- ldr r0, _0801ACC4 @ =gUnknown_030041C0
- ldr r1, _0801ACC8 @ =gStatusConditionString_PoisonJpn
- bl StringCopy
- movs r0, 0x1
- mov r10, r0
-_0801AC36:
- ldr r0, [r4]
- movs r1, 0x7
- mov r9, r1
- ands r0, r1
- mov r6, r8
- adds r6, 0x50
- cmp r0, 0
- beq _0801AC5C
- adds r2, r5, r6
- ldr r0, [r2]
- ldr r1, _0801ACCC @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _0801ACC4 @ =gUnknown_030041C0
- ldr r1, _0801ACD0 @ =gStatusConditionString_SleepJpn
- bl StringCopy
- movs r2, 0x1
- add r10, r2
-_0801AC5C:
- ldr r0, [r4]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801AC72
- ldr r0, _0801ACC4 @ =gUnknown_030041C0
- ldr r1, _0801ACD4 @ =gStatusConditionString_ParalysisJpn
- bl StringCopy
- movs r3, 0x1
- add r10, r3
-_0801AC72:
- ldr r0, [r4]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0801AC88
- ldr r0, _0801ACC4 @ =gUnknown_030041C0
- ldr r1, _0801ACD8 @ =gStatusConditionString_BurnJpn
- bl StringCopy
- movs r0, 0x1
- add r10, r0
-_0801AC88:
- ldr r0, [r4]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801AC9E
- ldr r0, _0801ACC4 @ =gUnknown_030041C0
- ldr r1, _0801ACDC @ =gStatusConditionString_IceJpn
- bl StringCopy
- movs r1, 0x1
- add r10, r1
-_0801AC9E:
- adds r0, r5, r6
- ldr r0, [r0]
- mov r2, r9
- ands r0, r2
- cmp r0, 0
- beq _0801ACB6
- ldr r0, _0801ACC4 @ =gUnknown_030041C0
- ldr r1, _0801ACE0 @ =gStatusConditionString_ConfusionJpn
- bl StringCopy
- movs r3, 0x1
- add r10, r3
-_0801ACB6:
- mov r4, r10
- cmp r4, 0x1
- bgt _0801ACE8
- ldr r1, _0801ACE4 @ =gUnknown_02024D1E
- movs r0, 0
- b _0801ACEC
- .align 2, 0
-_0801ACC4: .4byte gUnknown_030041C0
-_0801ACC8: .4byte gStatusConditionString_PoisonJpn
-_0801ACCC: .4byte 0xf7ffffff
-_0801ACD0: .4byte gStatusConditionString_SleepJpn
-_0801ACD4: .4byte gStatusConditionString_ParalysisJpn
-_0801ACD8: .4byte gStatusConditionString_BurnJpn
-_0801ACDC: .4byte gStatusConditionString_IceJpn
-_0801ACE0: .4byte gStatusConditionString_ConfusionJpn
-_0801ACE4: .4byte gUnknown_02024D1E
-_0801ACE8:
- ldr r1, _0801AD18 @ =gUnknown_02024D1E
- movs r0, 0x1
-_0801ACEC:
- strb r0, [r1, 0x5]
- ldr r2, _0801AD1C @ =gBattleMons
- movs r0, 0x58
- adds r3, r7, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r3, r0
- movs r1, 0
- str r1, [r0]
- adds r2, 0x50
- adds r3, r2
- ldr r0, [r3]
- subs r1, 0x8
- ands r0, r1
- str r0, [r3]
- ldr r0, _0801AD20 @ =gUnknown_081D9A44
-_0801AD0E:
- bl b_call_bc_move_exec
- movs r5, 0x1
- str r5, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801AD18: .4byte gUnknown_02024D1E
-_0801AD1C: .4byte gBattleMons
-_0801AD20: .4byte gUnknown_081D9A44
-_0801AD24:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x50
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r2
- cmp r0, 0
- beq _0801AD5A
- ldr r0, _0801AD84 @ =0xfff0ffff
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801AD88 @ =gUnknown_030041C0
- ldr r1, _0801AD8C @ =gStatusConditionString_LoveJpn
- bl StringCopy
- ldr r0, _0801AD90 @ =gUnknown_081D9A44
- bl b_call_bc_move_exec
- ldr r1, _0801AD94 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
- movs r0, 0x2
- str r0, [sp, 0xC]
-_0801AD5A:
- ldr r1, [sp, 0xC]
- cmp r1, 0
- bne _0801AD62
- b _0801B3CA
-_0801AD62:
- ldr r0, _0801AD98 @ =0x02000000
- ldr r2, _0801AD9C @ =0x00016003
- adds r0, r2
- strb r7, [r0]
- ldr r0, _0801ADA0 @ =gUnknown_02024C0B
- strb r7, [r0]
- ldr r4, _0801ADA4 @ =gUnknown_02024A60
- ldr r0, _0801ADA8 @ =gUnknown_02024C07
- strb r7, [r0]
- strb r7, [r4]
- ldr r3, [sp, 0xC]
- cmp r3, 0x1
- beq _0801ADAC
- cmp r3, 0x3
- beq _0801ADB2
- b _0801B3CA
- .align 2, 0
-_0801AD84: .4byte 0xfff0ffff
-_0801AD88: .4byte gUnknown_030041C0
-_0801AD8C: .4byte gStatusConditionString_LoveJpn
-_0801AD90: .4byte gUnknown_081D9A44
-_0801AD94: .4byte gUnknown_02024D1E
-_0801AD98: .4byte 0x02000000
-_0801AD9C: .4byte 0x00016003
-_0801ADA0: .4byte gUnknown_02024C0B
-_0801ADA4: .4byte gUnknown_02024A60
-_0801ADA8: .4byte gUnknown_02024C07
-_0801ADAC:
- movs r0, 0x58
- muls r0, r7
- b _0801B224
-_0801ADB2:
- ldr r4, _0801AE00 @ =gBattleMons
- movs r0, 0x58
- adds r3, r7, 0
- muls r3, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- beq _0801ADCE
- b _0801B3CA
-_0801ADCE:
- ldr r1, _0801AE04 @ =gUnknown_02024CA8
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0801AE08 @ =gBitTable
- mov r5, r10
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801ADEE
- b _0801B3CA
-_0801ADEE:
- adds r1, r5, r3
- adds r0, r4, 0
- adds r0, 0x24
- adds r1, r0
- add r0, sp, 0x4
- ldrb r0, [r0]
- strb r0, [r1]
- b _0801B3CA
- .align 2, 0
-_0801AE00: .4byte gBattleMons
-_0801AE04: .4byte gUnknown_02024CA8
-_0801AE08: .4byte gBitTable
-_0801AE0C:
- movs r7, 0
- ldr r0, _0801AE3C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r7, r0
- bcc _0801AE18
- b _0801B3CA
-_0801AE18:
- ldr r4, _0801AE40 @ =gUnknown_02024C04
- ldr r1, _0801AE44 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0801AE4C
- ldr r1, _0801AE48 @ =gEnigmaBerries
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r5, [r0, 0x7]
- b _0801AE5C
- .align 2, 0
-_0801AE3C: .4byte gUnknown_02024A68
-_0801AE40: .4byte gUnknown_02024C04
-_0801AE44: .4byte gBattleMons
-_0801AE48: .4byte gEnigmaBerries
-_0801AE4C:
- ldrh r0, [r4]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4]
- bl ItemId_GetHoldEffectParam
-_0801AE5C:
- subs r0, r5, 0x2
- cmp r0, 0x1A
- bls _0801AE64
- b _0801B208
-_0801AE64:
- lsls r0, 2
- ldr r1, _0801AE70 @ =_0801AE74
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801AE70: .4byte _0801AE74
- .align 2, 0
-_0801AE74:
- .4byte _0801AEE0
- .4byte _0801AFC8
- .4byte _0801AF1C
- .4byte _0801AF58
- .4byte _0801AF94
- .4byte _0801B208
- .4byte _0801B018
- .4byte _0801B0AC
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B1A0
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B054
-_0801AEE0:
- ldr r1, _0801AF10 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x4C
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0801AEF6
- b _0801B208
-_0801AEF6:
- movs r0, 0x41
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801AF14 @ =gUnknown_02024C10
- ldr r0, _0801AF18 @ =gUnknown_081D99BC
- str r0, [r1]
- movs r0, 0x1
- str r0, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801AF10: .4byte gBattleMons
-_0801AF14: .4byte gUnknown_02024C10
-_0801AF18: .4byte gUnknown_081D99BC
-_0801AF1C:
- ldr r1, _0801AF48 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x4C
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _0801AF32
- b _0801B208
-_0801AF32:
- ldr r0, _0801AF4C @ =0xfffff077
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801AF50 @ =gUnknown_02024C10
- ldr r0, _0801AF54 @ =gUnknown_081D99D4
- str r0, [r1]
- movs r1, 0x1
- str r1, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801AF48: .4byte gBattleMons
-_0801AF4C: .4byte 0xfffff077
-_0801AF50: .4byte gUnknown_02024C10
-_0801AF54: .4byte gUnknown_081D99D4
-_0801AF58:
- ldr r1, _0801AF88 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x4C
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0801AF6E
- b _0801B208
-_0801AF6E:
- movs r0, 0x11
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801AF8C @ =gUnknown_02024C10
- ldr r0, _0801AF90 @ =gUnknown_081D99EC
- str r0, [r1]
- movs r2, 0x1
- str r2, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801AF88: .4byte gBattleMons
-_0801AF8C: .4byte gUnknown_02024C10
-_0801AF90: .4byte gUnknown_081D99EC
-_0801AF94:
- ldr r1, _0801AFBC @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x4C
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0801AFAA
- b _0801B208
-_0801AFAA:
- movs r0, 0x21
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801AFC0 @ =gUnknown_02024C10
- ldr r0, _0801AFC4 @ =gUnknown_081D9A04
- b _0801B168
- .align 2, 0
-_0801AFBC: .4byte gBattleMons
-_0801AFC0: .4byte gUnknown_02024C10
-_0801AFC4: .4byte gUnknown_081D9A04
-_0801AFC8:
- ldr r2, _0801B008 @ =gBattleMons
- movs r0, 0x58
- adds r4, r7, 0
- muls r4, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r3, r4, r0
- ldr r1, [r3]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801AFE2
- b _0801B208
-_0801AFE2:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r3]
- adds r2, 0x50
- adds r2, r4, r2
- ldr r0, [r2]
- ldr r1, _0801B00C @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801B010 @ =gUnknown_02024C10
- ldr r0, _0801B014 @ =gUnknown_081D9A1C
- str r0, [r1]
- movs r4, 0x1
- str r4, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801B008: .4byte gBattleMons
-_0801B00C: .4byte 0xf7ffffff
-_0801B010: .4byte gUnknown_02024C10
-_0801B014: .4byte gUnknown_081D9A1C
-_0801B018:
- ldr r1, _0801B048 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801B02E
- b _0801B208
-_0801B02E:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801B04C @ =gUnknown_02024C10
- ldr r0, _0801B050 @ =gUnknown_081D9A34
- str r0, [r1]
- movs r5, 0x2
- str r5, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801B048: .4byte gBattleMons
-_0801B04C: .4byte gUnknown_02024C10
-_0801B050: .4byte gUnknown_081D9A34
-_0801B054:
- ldr r1, _0801B090 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r1
- cmp r0, 0
- bne _0801B06C
- b _0801B208
-_0801B06C:
- ldr r0, _0801B094 @ =0xfff0ffff
- ands r1, r0
- str r1, [r2]
- ldr r0, _0801B098 @ =gUnknown_030041C0
- ldr r1, _0801B09C @ =gStatusConditionString_LoveJpn
- bl StringCopy
- bl b_movescr_stack_push_cursor
- ldr r1, _0801B0A0 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
- ldr r1, _0801B0A4 @ =gUnknown_02024C10
- ldr r0, _0801B0A8 @ =gUnknown_081D9A4A
- str r0, [r1]
- movs r0, 0x2
- str r0, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801B090: .4byte gBattleMons
-_0801B094: .4byte 0xfff0ffff
-_0801B098: .4byte gUnknown_030041C0
-_0801B09C: .4byte gStatusConditionString_LoveJpn
-_0801B0A0: .4byte gUnknown_02024D1E
-_0801B0A4: .4byte gUnknown_02024C10
-_0801B0A8: .4byte gUnknown_081D9A4A
-_0801B0AC:
- ldr r4, _0801B170 @ =gBattleMons
- movs r0, 0x58
- adds r5, r7, 0
- muls r5, r0
- adds r0, r4, 0
- adds r0, 0x4C
- adds r6, r5, r0
- ldr r2, [r6]
- ldrb r0, [r6]
- cmp r0, 0
- bne _0801B0D4
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801B0D4
- b _0801B208
-_0801B0D4:
- movs r0, 0x88
- ands r2, r0
- cmp r2, 0
- beq _0801B0E4
- ldr r0, _0801B174 @ =gUnknown_030041C0
- ldr r1, _0801B178 @ =gStatusConditionString_PoisonJpn
- bl StringCopy
-_0801B0E4:
- ldr r0, [r6]
- movs r1, 0x7
- mov r8, r1
- ands r0, r1
- adds r4, 0x50
- cmp r0, 0
- beq _0801B104
- adds r2, r5, r4
- ldr r0, [r2]
- ldr r1, _0801B17C @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _0801B174 @ =gUnknown_030041C0
- ldr r1, _0801B180 @ =gStatusConditionString_SleepJpn
- bl StringCopy
-_0801B104:
- ldr r0, [r6]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801B116
- ldr r0, _0801B174 @ =gUnknown_030041C0
- ldr r1, _0801B184 @ =gStatusConditionString_ParalysisJpn
- bl StringCopy
-_0801B116:
- ldr r0, [r6]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0801B128
- ldr r0, _0801B174 @ =gUnknown_030041C0
- ldr r1, _0801B188 @ =gStatusConditionString_BurnJpn
- bl StringCopy
-_0801B128:
- ldr r0, [r6]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801B13A
- ldr r0, _0801B174 @ =gUnknown_030041C0
- ldr r1, _0801B18C @ =gStatusConditionString_IceJpn
- bl StringCopy
-_0801B13A:
- adds r5, r4
- ldr r0, [r5]
- mov r2, r8
- ands r0, r2
- cmp r0, 0
- beq _0801B14E
- ldr r0, _0801B174 @ =gUnknown_030041C0
- ldr r1, _0801B190 @ =gStatusConditionString_ConfusionJpn
- bl StringCopy
-_0801B14E:
- movs r4, 0
- str r4, [r6]
- ldr r0, [r5]
- movs r1, 0x8
- negs r1, r1
- ands r0, r1
- str r0, [r5]
- bl b_movescr_stack_push_cursor
- ldr r0, _0801B194 @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- ldr r1, _0801B198 @ =gUnknown_02024C10
- ldr r0, _0801B19C @ =gUnknown_081D9A4A
-_0801B168:
- str r0, [r1]
- movs r3, 0x1
- str r3, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801B170: .4byte gBattleMons
-_0801B174: .4byte gUnknown_030041C0
-_0801B178: .4byte gStatusConditionString_PoisonJpn
-_0801B17C: .4byte 0xf7ffffff
-_0801B180: .4byte gStatusConditionString_SleepJpn
-_0801B184: .4byte gStatusConditionString_ParalysisJpn
-_0801B188: .4byte gStatusConditionString_BurnJpn
-_0801B18C: .4byte gStatusConditionString_IceJpn
-_0801B190: .4byte gStatusConditionString_ConfusionJpn
-_0801B194: .4byte gUnknown_02024D1E
-_0801B198: .4byte gUnknown_02024C10
-_0801B19C: .4byte gUnknown_081D9A4A
-_0801B1A0:
- ldr r4, _0801B1F0 @ =gBattleMons
- mov r8, r4
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x18
- adds r1, r0
- movs r2, 0x6
- movs r5, 0x7
- mov r10, r5
-_0801B1B6:
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _0801B1C4
- strb r2, [r1]
- movs r0, 0x5
- str r0, [sp, 0xC]
-_0801B1C4:
- adds r1, 0x1
- movs r3, 0x1
- negs r3, r3
- add r10, r3
- mov r4, r10
- cmp r4, 0
- bge _0801B1B6
- ldr r5, [sp, 0xC]
- cmp r5, 0
- beq _0801B254
- ldr r0, _0801B1F4 @ =0x02000000
- ldr r1, _0801B1F8 @ =0x00016003
- adds r0, r1
- strb r7, [r0]
- ldr r0, _0801B1FC @ =gUnknown_02024C0B
- strb r7, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801B200 @ =gUnknown_02024C10
- ldr r0, _0801B204 @ =gUnknown_081D9A64
- str r0, [r1]
- b _0801B3CA
- .align 2, 0
-_0801B1F0: .4byte gBattleMons
-_0801B1F4: .4byte 0x02000000
-_0801B1F8: .4byte 0x00016003
-_0801B1FC: .4byte gUnknown_02024C0B
-_0801B200: .4byte gUnknown_02024C10
-_0801B204: .4byte gUnknown_081D9A64
-_0801B208:
- ldr r2, [sp, 0xC]
- cmp r2, 0
- beq _0801B254
-_0801B20E:
- ldr r0, _0801B240 @ =0x02000000
- ldr r3, _0801B244 @ =0x00016003
- adds r0, r3
- strb r7, [r0]
- ldr r0, _0801B248 @ =gUnknown_02024C0B
- strb r7, [r0]
- ldr r4, _0801B24C @ =gUnknown_02024A60
- strb r7, [r4]
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
-_0801B224:
- ldr r1, _0801B250 @ =gUnknown_02024ACC
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _0801B3CA
- .align 2, 0
-_0801B240: .4byte 0x02000000
-_0801B244: .4byte 0x00016003
-_0801B248: .4byte gUnknown_02024C0B
-_0801B24C: .4byte gUnknown_02024A60
-_0801B250: .4byte gUnknown_02024ACC
-_0801B254:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _0801B268 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r7, r0
- bcs _0801B264
- b _0801AE18
-_0801B264:
- b _0801B3CA
- .align 2, 0
-_0801B268: .4byte gUnknown_02024A68
-_0801B26C:
- ldr r7, _0801B284 @ =gUnknown_02024BEC
- ldr r0, [r7]
- cmp r0, 0
- bne _0801B276
- b _0801B3CA
-_0801B276:
- mov r4, r8
- cmp r4, 0x1E
- beq _0801B288
- cmp r4, 0x3E
- beq _0801B330
- b _0801B3CA
- .align 2, 0
-_0801B284: .4byte gUnknown_02024BEC
-_0801B288:
- ldr r0, _0801B314 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801B296
- b _0801B3CA
-_0801B296:
- ldr r2, _0801B318 @ =gUnknown_02024D68
- ldr r4, _0801B31C @ =gUnknown_02024C08
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801B2BC
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801B2BC
- b _0801B3CA
-_0801B2BC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r9
- bcs _0801B3CA
- ldr r2, _0801B320 @ =gBattleMoves
- ldr r0, _0801B324 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801B3CA
- ldr r2, _0801B328 @ =gBattleMons
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801B3CA
- ldr r1, _0801B32C @ =gUnknown_02024D1E
- movs r0, 0x8
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- movs r0, 0
- movs r1, 0
- bl sub_801E3EC
- bl b_movescr_stack_pop_cursor
- b _0801B3CA
- .align 2, 0
-_0801B314: .4byte gUnknown_02024C68
-_0801B318: .4byte gUnknown_02024D68
-_0801B31C: .4byte gUnknown_02024C08
-_0801B320: .4byte gBattleMoves
-_0801B324: .4byte gUnknown_02024BE6
-_0801B328: .4byte gBattleMons
-_0801B32C: .4byte gUnknown_02024D1E
-_0801B330:
- ldr r0, _0801B3DC @ =gUnknown_02024C68
- ldrb r0, [r0]
- movs r4, 0x29
- ands r4, r0
- cmp r4, 0
- bne _0801B3CA
- ldr r1, _0801B3E0 @ =gUnknown_02024D68
- ldr r5, _0801B3E4 @ =gUnknown_02024C08
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 2
- adds r6, r1, 0x4
- adds r0, r6
- ldr r1, [r0]
- cmp r1, 0
- beq _0801B3CA
- ldr r0, _0801B3E8 @ =0x0000ffff
- cmp r1, r0
- beq _0801B3CA
- ldr r0, _0801B3EC @ =gUnknown_02024C07
- ldrb r3, [r0]
- cmp r3, r2
- beq _0801B3CA
- ldr r2, _0801B3F0 @ =gBattleMons
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- beq _0801B3CA
- cmp r1, 0
- beq _0801B3CA
- ldr r0, _0801B3F4 @ =gUnknown_02024C04
- mov r1, sp
- ldrh r1, [r1, 0x14]
- strh r1, [r0]
- ldr r0, _0801B3F8 @ =gUnknown_02024C0B
- strb r3, [r0]
- ldr r0, _0801B3FC @ =0x02000000
- ldr r2, _0801B400 @ =0x00016003
- adds r0, r2
- strb r3, [r0]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldr r1, [sp, 0x10]
- bl __divsi3
- negs r0, r0
- str r0, [r7]
- ldrb r1, [r5]
- cmp r0, 0
- bne _0801B3AC
- movs r0, 0x1
- negs r0, r0
- str r0, [r7]
-_0801B3AC:
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- str r4, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801B404 @ =gUnknown_02024C10
- ldr r0, _0801B408 @ =gUnknown_081D9AA7
- str r0, [r1]
- ldr r0, [sp, 0xC]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
-_0801B3CA:
- ldr r0, [sp, 0xC]
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801B3DC: .4byte gUnknown_02024C68
-_0801B3E0: .4byte gUnknown_02024D68
-_0801B3E4: .4byte gUnknown_02024C08
-_0801B3E8: .4byte 0x0000ffff
-_0801B3EC: .4byte gUnknown_02024C07
-_0801B3F0: .4byte gBattleMons
-_0801B3F4: .4byte gUnknown_02024C04
-_0801B3F8: .4byte gUnknown_02024C0B
-_0801B3FC: .4byte 0x02000000
-_0801B400: .4byte 0x00016003
-_0801B404: .4byte gUnknown_02024C10
-_0801B408: .4byte gUnknown_081D9AA7
- thumb_func_end sub_801A02C
-
- thumb_func_start unref_sub_801B40C
-unref_sub_801B40C: @ 801B40C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- str r0, [sp]
- ldr r0, _0801B464 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0801B42A
- b _0801B56E
-_0801B42A:
- movs r1, 0x1
- mov r9, r1
-_0801B42E:
- movs r5, 0
- ldr r4, _0801B468 @ =gUnknown_081FC1D0
- ldr r2, [sp]
- adds r2, 0x1
- str r2, [sp, 0x4]
-_0801B438:
- ldr r0, _0801B46C @ =gUnknown_02024C0C
- ldrb r2, [r0]
- ldr r3, _0801B470 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r3
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- bne _0801B45A
- adds r0, r5, 0x2
- lsls r1, r0, 2
- adds r1, r3
- ldr r1, [r1]
- ands r2, r1
- adds r7, r0, 0
- cmp r2, 0
- beq _0801B474
-_0801B45A:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- b _0801B556
- .align 2, 0
-_0801B464: .4byte gUnknown_020239F8
-_0801B468: .4byte gUnknown_081FC1D0
-_0801B46C: .4byte gUnknown_02024C0C
-_0801B470: .4byte gBitTable
-_0801B474:
- ldr r0, _0801B580 @ =gUnknown_081FC1D0
- ldr r2, [sp]
- lsls r1, r2, 3
- adds r6, r1, r0
- ldr r4, _0801B584 @ =gUnknown_02024C60
- lsls r0, r5, 1
- adds r3, r0, r4
- ldrh r2, [r6]
- mov r8, r1
- mov r10, r0
- ldrh r3, [r3]
- cmp r2, r3
- bne _0801B4E4
- lsls r0, r7, 1
- adds r0, r4
- ldrh r1, [r6, 0x2]
- ldrh r0, [r0]
- cmp r1, r0
- bne _0801B4E4
- adds r0, r5, 0
- bl battle_get_per_side_status
- mov r2, r9
- ands r2, r0
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- ldr r0, _0801B588 @ =gUnknown_02024C80
- adds r1, r0
- lsls r0, r7, 4
- orrs r0, r5
- strb r0, [r1, 0x3]
- adds r0, r5, 0
- bl battle_get_per_side_status
- mov r1, r9
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0801B588 @ =gUnknown_02024C80
- adds r0, r1
- ldrh r1, [r6, 0x4]
- strh r1, [r0, 0x4]
- adds r0, r5, 0
- bl battle_get_per_side_status
- mov r1, r9
- ands r1, r0
- lsls r1, 1
- ldr r2, _0801B58C @ =gUnknown_02024C7A
- adds r1, r2
- ldrh r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strh r0, [r1]
-_0801B4E4:
- ldr r0, _0801B580 @ =gUnknown_081FC1D0
- mov r1, r8
- adds r4, r1, r0
- ldr r2, _0801B584 @ =gUnknown_02024C60
- lsls r0, r7, 1
- adds r0, r2
- ldrh r1, [r4]
- ldrh r0, [r0]
- cmp r1, r0
- bne _0801B54E
- mov r0, r10
- adds r1, r0, r2
- ldrh r0, [r4, 0x2]
- ldrh r1, [r1]
- cmp r0, r1
- bne _0801B54E
- adds r0, r5, 0
- bl battle_get_per_side_status
- mov r2, r9
- ands r2, r0
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- ldr r2, _0801B588 @ =gUnknown_02024C80
- adds r1, r2
- lsls r0, r5, 4
- orrs r0, r7
- strb r0, [r1, 0x3]
- adds r0, r5, 0
- bl battle_get_per_side_status
- mov r1, r9
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0801B588 @ =gUnknown_02024C80
- adds r0, r1
- ldrh r1, [r4, 0x4]
- strh r1, [r0, 0x4]
- adds r0, r5, 0
- bl battle_get_per_side_status
- mov r1, r9
- ands r1, r0
- lsls r1, 1
- ldr r2, _0801B58C @ =gUnknown_02024C7A
- adds r1, r2
- ldrh r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strh r0, [r1]
-_0801B54E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _0801B580 @ =gUnknown_081FC1D0
-_0801B556:
- cmp r5, 0x1
- bhi _0801B55C
- b _0801B438
-_0801B55C:
- ldr r0, [sp, 0x4]
- str r0, [sp]
- lsls r0, 3
- adds r0, r4
- ldrh r1, [r0]
- ldr r0, _0801B590 @ =0x0000ffff
- cmp r1, r0
- beq _0801B56E
- b _0801B42E
-_0801B56E:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801B580: .4byte gUnknown_081FC1D0
-_0801B584: .4byte gUnknown_02024C60
-_0801B588: .4byte gUnknown_02024C80
-_0801B58C: .4byte gUnknown_02024C7A
-_0801B590: .4byte 0x0000ffff
- thumb_func_end unref_sub_801B40C
-
- thumb_func_start sub_801B594
-sub_801B594: @ 801B594
- push {lr}
- ldr r0, _0801B5B4 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801B5B0
- ldr r1, _0801B5B8 @ =gUnknown_081FA73C
- ldr r0, _0801B5BC @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_0801B5B0:
- pop {r0}
- bx r0
- .align 2, 0
-_0801B5B4: .4byte gUnknown_02024A64
-_0801B5B8: .4byte gUnknown_081FA73C
-_0801B5BC: .4byte gUnknown_02024C10
- thumb_func_end sub_801B594
-
- thumb_func_start sub_801B5C0
-sub_801B5C0: @ 801B5C0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 24
- lsrs r0, r1, 24
- movs r5, 0
- cmp r0, 0
- beq _0801B5DE
- subs r0, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- b _0801B5EA
-_0801B5DE:
- ldr r1, _0801B5FC @ =gBattleMoves
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x6]
-_0801B5EA:
- cmp r6, 0x40
- bls _0801B5F0
- b _0801B900
-_0801B5F0:
- lsls r0, r6, 2
- ldr r1, _0801B600 @ =_0801B604
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801B5FC: .4byte gBattleMoves
-_0801B600: .4byte _0801B604
- .align 2, 0
-_0801B604:
- .4byte _0801B708
- .4byte _0801B808
- .4byte _0801B8FC
- .4byte _0801B900
- .4byte _0801B820
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B808
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B8FC
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B808
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B808
-_0801B708:
- ldr r0, _0801B7E8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0801B7EC @ =gUnknown_02024C80
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r2, r0, r1
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _0801B73A
- ldr r1, _0801B7F0 @ =gBattleMons
- ldrb r4, [r2, 0x9]
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801B73A
- b _0801B850
-_0801B73A:
- ldr r0, _0801B7E8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r7, 1
- mov r8, r0
-_0801B74A:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0801B7F4 @ =gUnknown_02024A68
- ldrb r1, [r1]
- bl __modsi3
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _0801B7E8 @ =gUnknown_02024C07
- ldrb r2, [r6]
- cmp r5, r2
- beq _0801B74A
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- beq _0801B74A
- ldr r0, _0801B7F8 @ =gUnknown_02024C0C
- ldrb r2, [r0]
- ldr r1, _0801B7FC @ =gBitTable
- lsls r0, r5, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- bne _0801B74A
- ldr r0, _0801B800 @ =gBattleMoves
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x2]
- cmp r0, 0xD
- beq _0801B798
- b _0801B900
-_0801B798:
- ldrb r1, [r6]
- str r2, [sp]
- movs r0, 0x10
- movs r2, 0x1F
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0801B7AE
- b _0801B900
-_0801B7AE:
- ldr r2, _0801B7F0 @ =gBattleMons
- movs r1, 0x58
- adds r0, r5, 0
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1F
- bne _0801B7C2
- b _0801B900
-_0801B7C2:
- movs r4, 0x2
- eors r5, r4
- adds r0, r5, 0
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_81074C4
- ldr r1, _0801B804 @ =gUnknown_02024D68
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- orrs r1, r4
- strb r1, [r0]
- b _0801B900
- .align 2, 0
-_0801B7E8: .4byte gUnknown_02024C07
-_0801B7EC: .4byte gUnknown_02024C80
-_0801B7F0: .4byte gBattleMons
-_0801B7F4: .4byte gUnknown_02024A68
-_0801B7F8: .4byte gUnknown_02024C0C
-_0801B7FC: .4byte gBitTable
-_0801B800: .4byte gBattleMoves
-_0801B804: .4byte gUnknown_02024D68
-_0801B808:
- ldr r0, _0801B81C @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_get_per_side_status
- adds r1, r0, 0
- movs r2, 0x1
- movs r0, 0x1
- ands r0, r1
- eors r0, r2
- b _0801B8B2
- .align 2, 0
-_0801B81C: .4byte gUnknown_02024C07
-_0801B820:
- ldr r0, _0801B854 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0801B858 @ =gUnknown_02024C80
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r2, r0, r1
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _0801B860
- ldr r1, _0801B85C @ =gBattleMons
- ldrb r4, [r2, 0x9]
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801B860
-_0801B850:
- adds r5, r4, 0
- b _0801B900
- .align 2, 0
-_0801B854: .4byte gUnknown_02024C07
-_0801B858: .4byte gUnknown_02024C80
-_0801B85C: .4byte gBattleMons
-_0801B860:
- ldr r0, _0801B894 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0801B8DC
- movs r0, 0x4
- ands r6, r0
- cmp r6, 0
- beq _0801B8DC
- ldr r0, _0801B898 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0801B8A0
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _0801B89C
- movs r0, 0x1
- b _0801B8B2
- .align 2, 0
-_0801B894: .4byte gUnknown_020239F8
-_0801B898: .4byte gUnknown_02024C07
-_0801B89C:
- movs r0, 0x3
- b _0801B8B2
-_0801B8A0:
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _0801B8B0
- movs r0, 0
- b _0801B8B2
-_0801B8B0:
- movs r0, 0x2
-_0801B8B2:
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0801B8D4 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _0801B8D8 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801B900
- movs r0, 0x2
- eors r5, r0
- b _0801B900
- .align 2, 0
-_0801B8D4: .4byte gUnknown_02024C0C
-_0801B8D8: .4byte gBitTable
-_0801B8DC:
- ldr r0, _0801B8F8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_get_per_side_status
- adds r1, r0, 0
- movs r2, 0x1
- movs r0, 0x1
- ands r0, r1
- eors r0, r2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r5, r0, 24
- b _0801B900
- .align 2, 0
-_0801B8F8: .4byte gUnknown_02024C07
-_0801B8FC:
- ldr r0, _0801B91C @ =gUnknown_02024C07
- ldrb r5, [r0]
-_0801B900:
- ldr r1, _0801B920 @ =0x02000000
- ldr r0, _0801B91C @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r2, _0801B924 @ =0x00016010
- adds r0, r2
- adds r0, r1
- strb r5, [r0]
- adds r0, r5, 0
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801B91C: .4byte gUnknown_02024C07
-_0801B920: .4byte 0x02000000
-_0801B924: .4byte 0x00016010
- thumb_func_end sub_801B5C0
-
- thumb_func_start sub_801B928
-sub_801B928: @ 801B928
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- ldr r0, _0801B9E0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0801B9DA
- ldr r7, _0801B9E4 @ =gUnknown_02024C07
- ldrb r0, [r7]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0801B9DA
- ldr r5, _0801B9E8 @ =gBattleMons
- ldrb r0, [r7]
- movs r1, 0x58
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r5, 0
- adds r0, 0x54
- adds r0, r1, r0
- ldr r0, [r0]
- adds r2, r5, 0
- adds r2, 0x3C
- adds r1, r2
- bl sub_8040AD0
- lsls r0, 24
- cmp r0, 0
- beq _0801B9DA
- ldr r0, _0801B9EC @ =0x0000080e
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _0801B9DA
- movs r6, 0xA
- ldr r0, _0801B9F0 @ =0x00000808
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0801B98E
- movs r6, 0x1E
-_0801B98E:
- ldr r0, _0801B9F4 @ =0x0000080a
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0801B99C
- movs r6, 0x32
-_0801B99C:
- ldr r0, _0801B9F8 @ =0x0000080c
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0801B9AA
- movs r6, 0x46
-_0801B9AA:
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r5
- adds r0, 0x2A
- ldrb r0, [r0]
- cmp r0, r6
- bls _0801B9DA
- bl Random
- movs r1, 0xFF
- ands r1, r0
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, r5
- adds r0, 0x2A
- ldrb r0, [r0]
- adds r0, r6
- muls r0, r1
- asrs r4, r0, 8
- cmp r4, r6
- bge _0801B9FC
-_0801B9DA:
- movs r0, 0
- b _0801BC24
- .align 2, 0
-_0801B9E0: .4byte gUnknown_020239F8
-_0801B9E4: .4byte gUnknown_02024C07
-_0801B9E8: .4byte gBattleMons
-_0801B9EC: .4byte 0x0000080e
-_0801B9F0: .4byte 0x00000808
-_0801B9F4: .4byte 0x0000080a
-_0801B9F8: .4byte 0x0000080c
-_0801B9FC:
- ldr r3, _0801BA3C @ =gUnknown_02024BE6
- ldrh r0, [r3]
- cmp r0, 0x63
- bne _0801BA12
- adds r0, r5, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r1, [r0]
- ldr r2, _0801BA40 @ =0xff7fffff
- ands r1, r2
- str r1, [r0]
-_0801BA12:
- ldrb r0, [r7]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r1, r5, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0801BA4C
- ldrh r0, [r3]
- cmp r0, 0xAD
- beq _0801BA34
- cmp r0, 0xD6
- bne _0801BA4C
-_0801BA34:
- ldr r1, _0801BA44 @ =gUnknown_02024C10
- ldr r0, _0801BA48 @ =gUnknown_081D995F
- b _0801BBCE
- .align 2, 0
-_0801BA3C: .4byte gUnknown_02024BE6
-_0801BA40: .4byte 0xff7fffff
-_0801BA44: .4byte gUnknown_02024C10
-_0801BA48: .4byte gUnknown_081D995F
-_0801BA4C:
- bl Random
- movs r5, 0xFF
- adds r1, r5, 0
- ands r1, r0
- ldr r7, _0801BB04 @ =gBattleMons
- ldr r2, _0801BB08 @ =gUnknown_02024C07
- mov r9, r2
- ldrb r3, [r2]
- movs r0, 0x58
- mov r8, r0
- mov r0, r8
- muls r0, r3
- adds r0, r7
- adds r0, 0x2A
- ldrb r2, [r0]
- adds r0, r2, r6
- muls r0, r1
- asrs r4, r0, 8
- cmp r4, r6
- bge _0801BB3C
- ldr r7, _0801BB0C @ =gBitTable
- ldr r5, _0801BB10 @ =gUnknown_02024BE4
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r7
- ldrb r1, [r0]
- adds r0, r3, 0
- movs r2, 0xFF
- bl sub_8015A98
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bne _0801BA94
- b _0801BBBE
-_0801BA94:
- adds r6, r5, 0
- ldr r1, _0801BB14 @ =gUnknown_02024BE5
- mov r9, r1
- movs r2, 0x3
- mov r8, r2
-_0801BA9E:
- bl Random
- mov r1, r8
- ands r0, r1
- mov r2, r9
- strb r0, [r2]
- strb r0, [r6]
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r7
- ldr r5, [r0]
- ands r5, r4
- cmp r5, 0
- bne _0801BA9E
- ldr r4, _0801BB18 @ =gUnknown_02024BEA
- ldr r3, _0801BB04 @ =gBattleMons
- ldr r0, _0801BB10 @ =gUnknown_02024BE4
- ldrb r0, [r0]
- lsls r0, 1
- ldr r1, _0801BB08 @ =gUnknown_02024C07
- ldrb r2, [r1]
- movs r1, 0x58
- muls r1, r2
- adds r0, r1
- adds r3, 0xC
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r4]
- ldr r0, _0801BB1C @ =gUnknown_02024D1E
- strb r5, [r0, 0x3]
- ldr r0, _0801BB20 @ =gUnknown_02024DEC
- movs r1, 0
- strh r5, [r0]
- ldr r0, _0801BB24 @ =0x02000000
- ldr r2, _0801BB28 @ =0x0001601c
- adds r0, r2
- strb r1, [r0]
- ldr r1, _0801BB2C @ =gUnknown_02024C10
- ldr r0, _0801BB30 @ =gUnknown_081D996F
- str r0, [r1]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _0801BB34 @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r2, _0801BB38 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 14
- b _0801BC1E
- .align 2, 0
-_0801BB04: .4byte gBattleMons
-_0801BB08: .4byte gUnknown_02024C07
-_0801BB0C: .4byte gBitTable
-_0801BB10: .4byte gUnknown_02024BE4
-_0801BB14: .4byte gUnknown_02024BE5
-_0801BB18: .4byte gUnknown_02024BEA
-_0801BB1C: .4byte gUnknown_02024D1E
-_0801BB20: .4byte gUnknown_02024DEC
-_0801BB24: .4byte 0x02000000
-_0801BB28: .4byte 0x0001601c
-_0801BB2C: .4byte gUnknown_02024C10
-_0801BB30: .4byte gUnknown_081D996F
-_0801BB34: .4byte gUnknown_02024C08
-_0801BB38: .4byte gUnknown_02024C6C
-_0801BB3C:
- subs r0, r2, r6
- lsls r0, 24
- lsrs r6, r0, 24
- bl Random
- adds r4, r5, 0
- ands r4, r0
- cmp r4, r6
- bge _0801BBB8
- mov r1, r9
- ldrb r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r7, 0
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- ands r0, r5
- cmp r0, 0
- bne _0801BBB8
- adds r0, r1, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x48
- beq _0801BBB8
- cmp r0, 0xF
- beq _0801BBB8
- movs r2, 0
- ldr r0, _0801BBAC @ =gUnknown_02024A68
- ldrb r3, [r0]
- mov r8, r0
- cmp r2, r3
- bge _0801BB9E
- ldr r0, [r7, 0x50]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- bne _0801BB9E
- adds r1, r7, 0
- adds r1, 0x50
- movs r5, 0x70
-_0801BB8E:
- adds r1, 0x58
- adds r2, 0x1
- cmp r2, r3
- bge _0801BB9E
- ldr r0, [r1]
- ands r0, r5
- cmp r0, 0
- beq _0801BB8E
-_0801BB9E:
- mov r0, r8
- ldrb r0, [r0]
- cmp r2, r0
- bne _0801BBB8
- ldr r1, _0801BBB0 @ =gUnknown_02024C10
- ldr r0, _0801BBB4 @ =gUnknown_081D9989
- b _0801BBCE
- .align 2, 0
-_0801BBAC: .4byte gUnknown_02024A68
-_0801BBB0: .4byte gUnknown_02024C10
-_0801BBB4: .4byte gUnknown_081D9989
-_0801BBB8:
- subs r4, r6
- cmp r4, r6
- blt _0801BBE0
-_0801BBBE:
- bl Random
- ldr r2, _0801BBD4 @ =gUnknown_02024D1E
- movs r1, 0x3
- ands r1, r0
- strb r1, [r2, 0x5]
- ldr r1, _0801BBD8 @ =gUnknown_02024C10
- ldr r0, _0801BBDC @ =gUnknown_081D9977
-_0801BBCE:
- str r0, [r1]
- movs r0, 0x1
- b _0801BC24
- .align 2, 0
-_0801BBD4: .4byte gUnknown_02024D1E
-_0801BBD8: .4byte gUnknown_02024C10
-_0801BBDC: .4byte gUnknown_081D9977
-_0801BBE0:
- ldr r4, _0801BC34 @ =gUnknown_02024C07
- ldrb r1, [r4]
- movs r0, 0x58
- muls r1, r0
- ldr r0, _0801BC38 @ =gBattleMons
- adds r1, r0
- movs r0, 0x28
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- ldrb r0, [r4]
- str r0, [sp, 0x8]
- ldrb r0, [r4]
- str r0, [sp, 0xC]
- adds r0, r1, 0
- movs r2, 0x1
- movs r3, 0
- bl CalculateBaseDamage
- ldr r1, _0801BC3C @ =gUnknown_02024BEC
- str r0, [r1]
- ldr r1, _0801BC40 @ =gUnknown_02024C08
- ldrb r0, [r4]
- strb r0, [r1]
- ldr r1, _0801BC44 @ =gUnknown_02024C10
- ldr r0, _0801BC48 @ =gUnknown_081D99A0
- str r0, [r1]
- ldr r2, _0801BC4C @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
-_0801BC1E:
- orrs r0, r1
- str r0, [r2]
- movs r0, 0x2
-_0801BC24:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801BC34: .4byte gUnknown_02024C07
-_0801BC38: .4byte gBattleMons
-_0801BC3C: .4byte gUnknown_02024BEC
-_0801BC40: .4byte gUnknown_02024C08
-_0801BC44: .4byte gUnknown_02024C10
-_0801BC48: .4byte gUnknown_081D99A0
-_0801BC4C: .4byte gUnknown_02024C6C
- thumb_func_end sub_801B928
-
- thumb_func_start atk00_attackcanceler
-atk00_attackcanceler: @ 801BC50
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r0, _0801BC6C @ =gUnknown_02024D26
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801BC74
- ldr r1, _0801BC70 @ =gUnknown_02024A7F
- movs r0, 0xC
- strb r0, [r1]
- b _0801BFF4
- .align 2, 0
-_0801BC6C: .4byte gUnknown_02024D26
-_0801BC70: .4byte gUnknown_02024A7F
-_0801BC74:
- ldr r2, _0801BCA4 @ =gBattleMons
- ldr r0, _0801BCA8 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801BCB8
- ldr r2, _0801BCAC @ =gUnknown_02024C6C
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- bne _0801BCB8
- movs r0, 0x80
- lsls r0, 12
- orrs r1, r0
- str r1, [r2]
- ldr r1, _0801BCB0 @ =gUnknown_02024C10
- ldr r0, _0801BCB4 @ =BattleScript_1D6F62
- b _0801BFF2
- .align 2, 0
-_0801BCA4: .4byte gBattleMons
-_0801BCA8: .4byte gUnknown_02024C07
-_0801BCAC: .4byte gUnknown_02024C6C
-_0801BCB0: .4byte gUnknown_02024C10
-_0801BCB4: .4byte BattleScript_1D6F62
-_0801BCB8:
- bl sub_8017718
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0801BCC6
- b _0801BFF4
-_0801BCC6:
- ldr r0, _0801BD34 @ =gUnknown_02024C08
- ldrb r1, [r0]
- str r2, [sp]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _0801BCDE
- b _0801BFF4
-_0801BCDE:
- ldr r4, _0801BD38 @ =gBattleMons
- ldr r0, _0801BD3C @ =gUnknown_02024BE4
- ldrb r1, [r0]
- ldr r3, _0801BD40 @ =gUnknown_02024C07
- ldrb r2, [r3]
- movs r0, 0x58
- muls r2, r0
- adds r1, r2
- adds r0, r4, 0
- adds r0, 0x24
- adds r1, r0
- ldrb r0, [r1]
- ldr r5, _0801BD44 @ =gUnknown_02024C6C
- cmp r0, 0
- bne _0801BD5C
- ldr r0, _0801BD48 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xA5
- beq _0801BD5C
- ldr r0, [r5]
- ldr r1, _0801BD4C @ =0x00800200
- ands r0, r1
- cmp r0, 0
- bne _0801BD5C
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- bne _0801BD5C
- ldr r1, _0801BD50 @ =gUnknown_02024C10
- ldr r0, _0801BD54 @ =gUnknown_081D936D
- str r0, [r1]
- ldr r2, _0801BD58 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- b _0801BFF4
- .align 2, 0
-_0801BD34: .4byte gUnknown_02024C08
-_0801BD38: .4byte gBattleMons
-_0801BD3C: .4byte gUnknown_02024BE4
-_0801BD40: .4byte gUnknown_02024C07
-_0801BD44: .4byte gUnknown_02024C6C
-_0801BD48: .4byte gUnknown_02024BE6
-_0801BD4C: .4byte 0x00800200
-_0801BD50: .4byte gUnknown_02024C10
-_0801BD54: .4byte gUnknown_081D936D
-_0801BD58: .4byte gUnknown_02024C68
-_0801BD5C:
- ldr r0, [r5]
- ldr r1, _0801BDA0 @ =0xff7fffff
- ands r0, r1
- str r0, [r5]
- movs r6, 0x80
- lsls r6, 18
- ands r0, r6
- cmp r0, 0
- bne _0801BDB4
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r1, r4, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- bne _0801BDB4
- bl sub_801B928
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0801BDB4
- cmp r2, 0x2
- bne _0801BDA4
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- b _0801BFF4
- .align 2, 0
-_0801BDA0: .4byte 0xff7fffff
-_0801BDA4:
- ldr r0, _0801BDB0 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _0801BFF4
- .align 2, 0
-_0801BDB0: .4byte gUnknown_02024C68
-_0801BDB4:
- ldr r2, _0801BE18 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 18
- orrs r0, r1
- str r0, [r2]
- ldr r2, _0801BE1C @ =gUnknown_02024D28
- ldr r1, _0801BE20 @ =gUnknown_02024C08
- ldrb r3, [r1]
- lsls r0, r3, 4
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 27
- mov r8, r1
- mov r9, r2
- cmp r0, 0
- bge _0801BE3C
- ldr r2, _0801BE24 @ =gBattleMoves
- ldr r0, _0801BE28 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801BE3C
- ldr r0, _0801BE2C @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r2, _0801BE30 @ =0x00000115
- adds r1, r3, 0
- bl sub_80151D4
- mov r0, r8
- ldrb r1, [r0]
- lsls r1, 4
- add r1, r9
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801BE34 @ =gUnknown_02024C10
- ldr r0, _0801BE38 @ =gUnknown_081D946F
- b _0801BFF2
- .align 2, 0
-_0801BE18: .4byte gUnknown_02024C6C
-_0801BE1C: .4byte gUnknown_02024D28
-_0801BE20: .4byte gUnknown_02024C08
-_0801BE24: .4byte gBattleMoves
-_0801BE28: .4byte gUnknown_02024BE6
-_0801BE2C: .4byte gUnknown_02024C07
-_0801BE30: .4byte 0x00000115
-_0801BE34: .4byte gUnknown_02024C10
-_0801BE38: .4byte gUnknown_081D946F
-_0801BE3C:
- movs r2, 0
- ldr r0, _0801BEB8 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r2, r0
- bge _0801BE7E
- ldr r6, _0801BEBC @ =gUnknown_02024D28
- ldr r1, _0801BEC0 @ =gBattleMoves
- mov r12, r1
- adds r5, r0, 0
- ldr r7, _0801BEC4 @ =gUnknown_02024A7A
-_0801BE50:
- adds r4, r2, r7
- ldrb r3, [r4]
- lsls r0, r3, 4
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _0801BE78
- ldr r0, _0801BEC8 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r1, [r0, 0x8]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801BE78
- b _0801BFA4
-_0801BE78:
- adds r2, 0x1
- cmp r2, r5
- blt _0801BE50
-_0801BE7E:
- ldr r0, _0801BECC @ =gUnknown_02024D68
- mov r1, r8
- ldrb r2, [r1]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r3, [r1]
- lsls r0, r3, 30
- cmp r0, 0
- bge _0801BEDC
- movs r0, 0x3
- negs r0, r0
- ands r0, r3
- strb r0, [r1]
- ldr r4, _0801BED0 @ =byte_2024C06
- movs r0, 0x1F
- strb r0, [r4]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801BED4 @ =gUnknown_02024C10
- ldr r0, _0801BED8 @ =gUnknown_081D9812
- str r0, [r1]
- mov r2, r8
- ldrb r0, [r2]
- ldrb r1, [r4]
- bl sub_81074C4
- b _0801BFF4
- .align 2, 0
-_0801BEB8: .4byte gUnknown_02024A68
-_0801BEBC: .4byte gUnknown_02024D28
-_0801BEC0: .4byte gBattleMoves
-_0801BEC4: .4byte gUnknown_02024A7A
-_0801BEC8: .4byte gUnknown_02024BE6
-_0801BECC: .4byte gUnknown_02024D68
-_0801BED0: .4byte byte_2024C06
-_0801BED4: .4byte gUnknown_02024C10
-_0801BED8: .4byte gUnknown_081D9812
-_0801BEDC:
- lsls r0, r2, 4
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- bne _0801BEEA
- b _0801BFEC
-_0801BEEA:
- ldr r1, _0801BF80 @ =gBattleMoves
- ldr r2, _0801BF84 @ =gUnknown_02024BE6
- ldrh r3, [r2]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x2
- ands r0, r1
- adds r4, r2, 0
- cmp r0, 0
- beq _0801BFEC
- cmp r3, 0xAE
- bne _0801BF28
- ldr r2, _0801BF88 @ =gBattleMons
- ldr r0, _0801BF8C @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _0801BF28
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _0801BFEC
-_0801BF28:
- ldrh r0, [r4]
- bl sub_8028350
- lsls r0, 24
- cmp r0, 0
- beq _0801BF4E
- ldr r1, _0801BF88 @ =gBattleMons
- ldr r0, _0801BF8C @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- beq _0801BFEC
-_0801BF4E:
- ldr r0, _0801BF8C @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl b_cancel_multi_turn_move_maybe
- ldr r2, _0801BF90 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801BF94 @ =gUnknown_02024C3C
- ldr r3, _0801BF98 @ =gUnknown_02024C08
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801BF9C @ =gUnknown_02024C44
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldr r1, _0801BFA0 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x6]
- b _0801BFEC
- .align 2, 0
-_0801BF80: .4byte gBattleMoves
-_0801BF84: .4byte gUnknown_02024BE6
-_0801BF88: .4byte gBattleMons
-_0801BF8C: .4byte gUnknown_02024C07
-_0801BF90: .4byte gUnknown_02024C68
-_0801BF94: .4byte gUnknown_02024C3C
-_0801BF98: .4byte gUnknown_02024C08
-_0801BF9C: .4byte gUnknown_02024C44
-_0801BFA0: .4byte gUnknown_02024D1E
-_0801BFA4:
- ldr r0, _0801BFD4 @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r2, _0801BFD8 @ =0x00000121
- adds r1, r3, 0
- bl sub_80151D4
- ldrb r1, [r4]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r0, _0801BFDC @ =0x02000000
- ldrb r1, [r4]
- ldr r2, _0801BFE0 @ =0x00016003
- adds r0, r2
- strb r1, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801BFE4 @ =gUnknown_02024C10
- ldr r0, _0801BFE8 @ =gUnknown_081D9487
- b _0801BFF2
- .align 2, 0
-_0801BFD4: .4byte gUnknown_02024C07
-_0801BFD8: .4byte 0x00000121
-_0801BFDC: .4byte 0x02000000
-_0801BFE0: .4byte 0x00016003
-_0801BFE4: .4byte gUnknown_02024C10
-_0801BFE8: .4byte gUnknown_081D9487
-_0801BFEC:
- ldr r1, _0801C004 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
-_0801BFF2:
- str r0, [r1]
-_0801BFF4:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C004: .4byte gUnknown_02024C10
- thumb_func_end atk00_attackcanceler
-
- thumb_func_start mcmd_jump_if_move_not_executed
-mcmd_jump_if_move_not_executed: @ 801C008
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r1, _0801C054 @ =gUnknown_02024C10
- ldr r5, [r1]
- adds r4, r5, r0
- ldr r0, _0801C058 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801C068
- ldr r1, _0801C05C @ =gUnknown_02024C3C
- ldr r3, _0801C060 @ =gUnknown_02024C08
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801C064 @ =gUnknown_02024C44
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldrb r4, [r5, 0x1]
- ldrb r0, [r5, 0x2]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r5, 0x3]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r5, 0x4]
- lsls r0, 24
- orrs r4, r0
- b _0801C082
- .align 2, 0
-_0801C054: .4byte gUnknown_02024C10
-_0801C058: .4byte gUnknown_02024C68
-_0801C05C: .4byte gUnknown_02024C3C
-_0801C060: .4byte gUnknown_02024C08
-_0801C064: .4byte gUnknown_02024C44
-_0801C068:
- bl b_feature_update_destiny_bond
- ldr r0, _0801C090 @ =gUnknown_02024C08
- ldrb r1, [r0]
- str r6, [sp]
- movs r0, 0x3
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0801C086
-_0801C082:
- ldr r0, _0801C094 @ =gUnknown_02024C10
- str r4, [r0]
-_0801C086:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C090: .4byte gUnknown_02024C08
-_0801C094: .4byte gUnknown_02024C10
- thumb_func_end mcmd_jump_if_move_not_executed
-
- thumb_func_start atk40_801DBA0
-atk40_801DBA0: @ 801C098
- push {lr}
- ldr r1, _0801C0E0 @ =gUnknown_02024D28
- ldr r0, _0801C0E4 @ =gUnknown_02024C08
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _0801C0F8
- ldr r2, _0801C0E8 @ =gBattleMoves
- ldr r0, _0801C0EC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801C0F8
- ldr r2, _0801C0F0 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x5
- movs r1, 0
- bl mcmd_jump_if_move_not_executed
- ldr r1, _0801C0F4 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x6]
- b _0801C100
- .align 2, 0
-_0801C0E0: .4byte gUnknown_02024D28
-_0801C0E4: .4byte gUnknown_02024C08
-_0801C0E8: .4byte gBattleMoves
-_0801C0EC: .4byte gUnknown_02024BE6
-_0801C0F0: .4byte gUnknown_02024C68
-_0801C0F4: .4byte gUnknown_02024D1E
-_0801C0F8:
- ldr r1, _0801C104 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0801C100:
- pop {r0}
- bx r0
- .align 2, 0
-_0801C104: .4byte gUnknown_02024C10
- thumb_func_end atk40_801DBA0
-
- thumb_func_start sub_801C108
-sub_801C108: @ 801C108
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r4, 0
- ldr r1, _0801C15C @ =gUnknown_02024D28
- ldr r0, _0801C160 @ =gUnknown_02024C08
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _0801C154
- ldr r2, _0801C164 @ =gBattleMoves
- ldr r0, _0801C168 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801C154
- ldr r2, _0801C16C @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x7
- adds r1, r3, 0
- bl mcmd_jump_if_move_not_executed
- ldr r1, _0801C170 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x6]
- movs r4, 0x1
-_0801C154:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0801C15C: .4byte gUnknown_02024D28
-_0801C160: .4byte gUnknown_02024C08
-_0801C164: .4byte gBattleMoves
-_0801C168: .4byte gUnknown_02024BE6
-_0801C16C: .4byte gUnknown_02024C68
-_0801C170: .4byte gUnknown_02024D1E
- thumb_func_end sub_801C108
-
- thumb_func_start sub_801C174
-sub_801C174: @ 801C174
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r2, _0801C1D4 @ =gUnknown_02024C98
- ldr r3, _0801C1D8 @ =gUnknown_02024C08
- ldrb r4, [r3]
- lsls r0, r4, 2
- adds r0, r2
- ldr r1, [r0]
- movs r0, 0x18
- ands r1, r0
- adds r6, r2, 0
- cmp r1, 0
- beq _0801C1A6
- ldr r1, _0801C1DC @ =gUnknown_02024CA8
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, _0801C1E0 @ =gUnknown_02024C07
- ldrb r0, [r0, 0x15]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0801C290
-_0801C1A6:
- ldr r0, _0801C1E4 @ =gUnknown_02024C6C
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 9
- ands r1, r2
- adds r2, r0, 0
- cmp r1, 0
- bne _0801C1EC
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801C1EC
-_0801C1C6:
- ldr r0, _0801C1E8 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _0801C290
- .align 2, 0
-_0801C1D4: .4byte gUnknown_02024C98
-_0801C1D8: .4byte gUnknown_02024C08
-_0801C1DC: .4byte gUnknown_02024CA8
-_0801C1E0: .4byte gUnknown_02024C07
-_0801C1E4: .4byte gUnknown_02024C6C
-_0801C1E8: .4byte gUnknown_02024C68
-_0801C1EC:
- ldr r0, [r2]
- ldr r1, _0801C29C @ =0xfffeffff
- ands r0, r1
- str r0, [r2]
- movs r1, 0x80
- lsls r1, 10
- ands r0, r1
- cmp r0, 0
- bne _0801C20E
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0801C1C6
-_0801C20E:
- ldr r0, [r2]
- ldr r1, _0801C2A0 @ =0xfffdffff
- ands r0, r1
- str r0, [r2]
- movs r1, 0x80
- lsls r1, 11
- ands r0, r1
- cmp r0, 0
- bne _0801C22E
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- bne _0801C1C6
-_0801C22E:
- ldr r0, [r2]
- ldr r1, _0801C2A4 @ =0xfffbffff
- 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 sub_8018324
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r5, 1
- cmp r0, 0
- bne _0801C27E
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0801C27E
- ldr r0, _0801C2A8 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0801C27E
- ldr r0, _0801C2AC @ =gBattleMoves
- adds r1, r4, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x98
- beq _0801C290
-_0801C27E:
- ldr r1, _0801C2AC @ =gBattleMoves
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x11
- beq _0801C290
- cmp r0, 0x4E
- bne _0801C2B0
-_0801C290:
- movs r0, 0x7
- adds r1, r5, 0
- bl mcmd_jump_if_move_not_executed
- movs r0, 0x1
- b _0801C2B2
- .align 2, 0
-_0801C29C: .4byte 0xfffeffff
-_0801C2A0: .4byte 0xfffdffff
-_0801C2A4: .4byte 0xfffbffff
-_0801C2A8: .4byte word_2024DB8
-_0801C2AC: .4byte gBattleMoves
-_0801C2B0:
- movs r0, 0
-_0801C2B2:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_801C174
-
- thumb_func_start atk01_accuracycheck
-atk01_accuracycheck: @ 801C2BC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r0, _0801C314 @ =gUnknown_02024C10
- ldr r5, [r0]
- ldrb r6, [r5, 0x5]
- ldrb r1, [r5, 0x6]
- lsls r1, 8
- orrs r6, r1
- adds r1, r6, 0x2
- lsls r1, 16
- lsrs r1, 16
- adds r7, r0, 0
- cmp r1, 0x1
- bhi _0801C378
- ldr r2, _0801C318 @ =gUnknown_02024C98
- ldr r3, _0801C31C @ =gUnknown_02024C08
- ldrb r4, [r3]
- lsls r0, r4, 2
- adds r0, r2
- ldr r1, [r0]
- movs r0, 0x18
- ands r1, r0
- cmp r1, 0
- beq _0801C32C
- ldr r0, _0801C320 @ =0x0000ffff
- cmp r6, r0
- bne _0801C32C
- ldr r1, _0801C324 @ =gUnknown_02024CA8
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, _0801C328 @ =gUnknown_02024C07
- ldrb r0, [r0, 0x15]
- ldrb r1, [r1]
- cmp r0, r1
- bne _0801C32C
- adds r0, r5, 0x7
- str r0, [r7]
- b _0801C632
- .align 2, 0
-_0801C314: .4byte gUnknown_02024C10
-_0801C318: .4byte gUnknown_02024C98
-_0801C31C: .4byte gUnknown_02024C08
-_0801C320: .4byte 0x0000ffff
-_0801C324: .4byte gUnknown_02024CA8
-_0801C328: .4byte gUnknown_02024C07
-_0801C32C:
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ldr r1, _0801C358 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _0801C35C
- ldr r2, [r7]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r7]
- b _0801C632
- .align 2, 0
-_0801C358: .4byte 0x000400c0
-_0801C35C:
- movs r0, 0
- bl sub_801C108
- lsls r0, 24
- cmp r0, 0
- beq _0801C36A
- b _0801C632
-_0801C36A:
- ldr r1, _0801C374 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x7
- str r0, [r1]
- b _0801C632
- .align 2, 0
-_0801C374: .4byte gUnknown_02024C10
-_0801C378:
- cmp r6, 0
- bne _0801C380
- ldr r0, _0801C398 @ =gUnknown_02024BE6
- ldrh r6, [r0]
-_0801C380:
- ldr r0, _0801C39C @ =0x02000000
- ldr r1, _0801C3A0 @ =0x0001601c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801C3A4
- movs r2, 0x3F
- mov r10, r2
- mov r3, r10
- ands r3, r0
- mov r10, r3
- b _0801C3B2
- .align 2, 0
-_0801C398: .4byte gUnknown_02024BE6
-_0801C39C: .4byte 0x02000000
-_0801C3A0: .4byte 0x0001601c
-_0801C3A4:
- ldr r1, _0801C3F8 @ =gBattleMoves
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- mov r10, r0
-_0801C3B2:
- adds r0, r6, 0
- bl sub_801C108
- lsls r0, 24
- cmp r0, 0
- beq _0801C3C0
- b _0801C632
-_0801C3C0:
- adds r0, r6, 0
- bl sub_801C174
- lsls r0, 24
- cmp r0, 0
- beq _0801C3CE
- b _0801C632
-_0801C3CE:
- ldr r3, _0801C3FC @ =gBattleMons
- ldr r0, _0801C400 @ =gUnknown_02024C08
- ldrb r0, [r0]
- movs r2, 0x58
- adds r4, r0, 0
- muls r4, r2
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r4, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801C408
- ldr r0, _0801C404 @ =gUnknown_02024C07
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- ldrb r5, [r0, 0x1E]
- b _0801C41E
- .align 2, 0
-_0801C3F8: .4byte gBattleMoves
-_0801C3FC: .4byte gBattleMons
-_0801C400: .4byte gUnknown_02024C08
-_0801C404: .4byte gUnknown_02024C07
-_0801C408:
- ldr r0, _0801C56C @ =gUnknown_02024C07
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- ldrb r0, [r0, 0x1E]
- adds r0, 0x6
- adds r1, r4, r3
- ldrb r1, [r1, 0x1F]
- subs r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
-_0801C41E:
- lsls r0, r5, 24
- cmp r0, 0
- bge _0801C426
- movs r5, 0
-_0801C426:
- lsls r0, r5, 24
- asrs r0, 24
- cmp r0, 0xC
- ble _0801C430
- movs r5, 0xC
-_0801C430:
- ldr r1, _0801C570 @ =gBattleMoves
- lsls r4, r6, 1
- adds r0, r4, r6
- lsls r0, 2
- adds r7, r0, r1
- ldrb r0, [r7, 0x3]
- mov r8, r0
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- str r4, [sp, 0x4]
- cmp r0, 0
- bne _0801C482
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0801C482
- ldr r0, _0801C574 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0801C482
- ldrb r0, [r7]
- cmp r0, 0x98
- bne _0801C482
- movs r1, 0x32
- mov r8, r1
-_0801C482:
- ldr r1, _0801C578 @ =gAccuracyStageRatios
- lsls r0, r5, 24
- asrs r0, 22
- adds r0, r1
- ldrb r1, [r0]
- mov r4, r8
- muls r4, r1
- ldrb r1, [r0, 0x1]
- adds r0, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r7, _0801C57C @ =gBattleMons
- ldr r0, _0801C56C @ =gUnknown_02024C07
- ldrb r0, [r0]
- movs r5, 0x58
- muls r0, r5
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0xE
- bne _0801C4C0
- lsls r0, r4, 6
- adds r0, r4
- lsls r0, 1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801C4C0:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0801C518
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0801C518
- ldr r0, _0801C580 @ =gUnknown_02024C08
- ldrb r0, [r0]
- muls r0, r5
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _0801C518
- ldr r0, _0801C574 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _0801C518
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801C518:
- ldr r2, _0801C57C @ =gBattleMons
- ldr r0, _0801C56C @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- mov r9, r2
- cmp r0, 0x37
- bne _0801C544
- mov r2, r10
- cmp r2, 0x8
- bhi _0801C544
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801C544:
- ldr r3, _0801C580 @ =gUnknown_02024C08
- mov r8, r3
- ldrb r2, [r3]
- movs r7, 0x58
- adds r0, r2, 0
- muls r0, r7
- mov r3, r9
- adds r1, r0, r3
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0801C588
- ldr r1, _0801C584 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r5, [r0, 0x7]
- ldrb r2, [r0, 0x1A]
- b _0801C5A4
- .align 2, 0
-_0801C56C: .4byte gUnknown_02024C07
-_0801C570: .4byte gBattleMoves
-_0801C574: .4byte word_2024DB8
-_0801C578: .4byte gAccuracyStageRatios
-_0801C57C: .4byte gBattleMons
-_0801C580: .4byte gUnknown_02024C08
-_0801C584: .4byte gEnigmaBerries
-_0801C588:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r5, r0, 24
- mov r1, r8
- ldrb r0, [r1]
- muls r0, r7
- add r0, r9
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r2, r0, 24
-_0801C5A4:
- ldr r0, _0801C608 @ =gUnknown_02024C0B
- ldr r1, _0801C60C @ =gUnknown_02024C08
- ldrb r1, [r1]
- strb r1, [r0]
- cmp r5, 0x16
- bne _0801C5C0
- movs r0, 0x64
- subs r0, r2
- muls r0, r4
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801C5C0:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r0, 0x1
- cmp r0, r4
- ble _0801C62A
- ldr r2, _0801C610 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0801C614 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0801C620
- ldr r1, _0801C618 @ =gBattleMoves
- ldr r2, [sp, 0x4]
- adds r0, r2, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x6]
- cmp r0, 0x8
- beq _0801C602
- cmp r0, 0x20
- bne _0801C620
-_0801C602:
- ldr r1, _0801C61C @ =gUnknown_02024D1E
- movs r0, 0x2
- b _0801C624
- .align 2, 0
-_0801C608: .4byte gUnknown_02024C0B
-_0801C60C: .4byte gUnknown_02024C08
-_0801C610: .4byte gUnknown_02024C68
-_0801C614: .4byte gUnknown_020239F8
-_0801C618: .4byte gBattleMoves
-_0801C61C: .4byte gUnknown_02024D1E
-_0801C620:
- ldr r1, _0801C644 @ =gUnknown_02024D1E
- movs r0, 0
-_0801C624:
- strb r0, [r1, 0x6]
- bl b_wonderguard_and_levitate
-_0801C62A:
- movs r0, 0x7
- adds r1, r6, 0
- bl mcmd_jump_if_move_not_executed
-_0801C632:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C644: .4byte gUnknown_02024D1E
- thumb_func_end atk01_accuracycheck
-
- thumb_func_start atk02_attackstring
-atk02_attackstring: @ 801C648
- push {r4,r5,lr}
- ldr r0, _0801C688 @ =gUnknown_02024A64
- ldr r5, [r0]
- cmp r5, 0
- bne _0801C680
- ldr r4, _0801C68C @ =gUnknown_02024C6C
- ldr r0, [r4]
- movs r1, 0xC0
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- bne _0801C674
- ldr r0, _0801C690 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x4
- bl b_std_message
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 3
- orrs r0, r1
- str r0, [r4]
-_0801C674:
- ldr r0, _0801C694 @ =gUnknown_02024C10
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- ldr r0, _0801C698 @ =gUnknown_02024D1E
- strb r5, [r0, 0x7]
-_0801C680:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C688: .4byte gUnknown_02024A64
-_0801C68C: .4byte gUnknown_02024C6C
-_0801C690: .4byte gUnknown_02024C07
-_0801C694: .4byte gUnknown_02024C10
-_0801C698: .4byte gUnknown_02024D1E
- thumb_func_end atk02_attackstring
-
- thumb_func_start atk03_ppreduce
-atk03_ppreduce: @ 801C69C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r6, 0x1
- ldr r0, _0801C6EC @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _0801C6B4
- b _0801C84E
-_0801C6B4:
- ldr r1, _0801C6F0 @ =gUnknown_02024D68
- ldr r2, _0801C6F4 @ =gUnknown_02024C07
- ldrb r3, [r2]
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r4, r0, 31
- mov r9, r2
- cmp r4, 0
- bne _0801C756
- ldr r2, _0801C6F8 @ =gBattleMoves
- ldr r0, _0801C6FC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x6]
- cmp r0, 0x20
- beq _0801C706
- cmp r0, 0x20
- bgt _0801C700
- cmp r0, 0x8
- beq _0801C71C
- b _0801C736
- .align 2, 0
-_0801C6EC: .4byte gUnknown_02024A64
-_0801C6F0: .4byte gUnknown_02024D68
-_0801C6F4: .4byte gUnknown_02024C07
-_0801C6F8: .4byte gBattleMoves
-_0801C6FC: .4byte gUnknown_02024BE6
-_0801C700:
- cmp r0, 0x40
- beq _0801C71C
- b _0801C736
-_0801C706:
- str r4, [sp]
- movs r0, 0x12
- adds r1, r3, 0
- movs r2, 0x2E
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0x1
- b _0801C756
-_0801C71C:
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x10
- movs r2, 0x2E
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0
- b _0801C756
-_0801C736:
- ldr r1, _0801C7B8 @ =gUnknown_02024C08
- mov r2, r9
- ldrb r0, [r2]
- ldrb r7, [r1]
- cmp r0, r7
- beq _0801C756
- ldr r2, _0801C7BC @ =gBattleMons
- ldrb r1, [r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2E
- bne _0801C756
- adds r6, 0x1
-_0801C756:
- ldr r0, _0801C7C0 @ =gUnknown_02024C6C
- ldr r4, [r0]
- movs r0, 0xA0
- lsls r0, 4
- ands r4, r0
- cmp r4, 0
- bne _0801C83C
- ldr r2, _0801C7BC @ =gBattleMons
- ldr r3, _0801C7C4 @ =gUnknown_02024BE4
- ldr r1, _0801C7C8 @ =gUnknown_02024C07
- ldrb r5, [r1]
- movs r0, 0x58
- mov r8, r0
- mov r0, r8
- muls r0, r5
- ldrb r7, [r3]
- adds r0, r7
- movs r7, 0x24
- adds r7, r2
- mov r12, r7
- add r0, r12
- ldrb r0, [r0]
- mov r9, r1
- mov r10, r2
- adds r7, r3, 0
- cmp r0, 0
- beq _0801C83C
- ldr r0, _0801C7CC @ =gUnknown_02024D28
- lsls r1, r5, 4
- adds r1, r0
- ldrb r0, [r1, 0x2]
- movs r2, 0x8
- orrs r0, r2
- strb r0, [r1, 0x2]
- mov r1, r9
- ldrb r0, [r1]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- ldrb r1, [r7]
- adds r0, r1
- mov r1, r12
- adds r2, r0, r1
- ldrb r0, [r2]
- cmp r0, r6
- ble _0801C7D0
- subs r0, r6
- strb r0, [r2]
- b _0801C7D2
- .align 2, 0
-_0801C7B8: .4byte gUnknown_02024C08
-_0801C7BC: .4byte gBattleMons
-_0801C7C0: .4byte gUnknown_02024C6C
-_0801C7C4: .4byte gUnknown_02024BE4
-_0801C7C8: .4byte gUnknown_02024C07
-_0801C7CC: .4byte gUnknown_02024D28
-_0801C7D0:
- strb r4, [r2]
-_0801C7D2:
- mov r2, r9
- ldrb r3, [r2]
- movs r4, 0x58
- adds r0, r3, 0
- muls r0, r4
- mov r1, r10
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _0801C83C
- ldr r1, _0801C860 @ =gUnknown_02024CA8
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0801C864 @ =gBitTable
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0801C83C
- ldr r0, _0801C868 @ =gUnknown_02024A60
- strb r3, [r0]
- ldrb r1, [r7]
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- mov r2, r9
- ldrb r0, [r2]
- muls r0, r4
- mov r2, r10
- adds r2, 0x24
- adds r0, r2
- ldrb r7, [r7]
- adds r0, r7
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
- mov r7, r9
- ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
-_0801C83C:
- ldr r2, _0801C86C @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0801C870 @ =0xfffff7ff
- ands r0, r1
- str r0, [r2]
- ldr r1, _0801C874 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801C84E:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C860: .4byte gUnknown_02024CA8
-_0801C864: .4byte gBitTable
-_0801C868: .4byte gUnknown_02024A60
-_0801C86C: .4byte gUnknown_02024C6C
-_0801C870: .4byte 0xfffff7ff
-_0801C874: .4byte gUnknown_02024C10
- thumb_func_end atk03_ppreduce
-
- thumb_func_start atk04_critcalc
-atk04_critcalc: @ 801C878
- push {r4-r7,lr}
- ldr r1, _0801C89C @ =gBattleMons
- ldr r0, _0801C8A0 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- cmp r0, 0xAF
- bne _0801C8A8
- ldr r1, _0801C8A4 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x7]
- b _0801C8B0
- .align 2, 0
-_0801C89C: .4byte gBattleMons
-_0801C8A0: .4byte gUnknown_02024C07
-_0801C8A4: .4byte gEnigmaBerries
-_0801C8A8:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r6, r0, 24
-_0801C8B0:
- ldr r1, _0801C93C @ =gUnknown_02024C0B
- ldr r3, _0801C940 @ =gUnknown_02024C07
- ldrb r0, [r3]
- strb r0, [r1]
- ldr r4, _0801C944 @ =gBattleMons
- ldrb r1, [r3]
- movs r0, 0x58
- adds r7, r1, 0
- muls r7, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r7, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- negs r0, r0
- asrs r5, r0, 31
- movs r0, 0x2
- ands r5, r0
- ldr r2, _0801C948 @ =gBattleMoves
- ldr r0, _0801C94C @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- mov r12, r3
- cmp r1, 0x2B
- bne _0801C8F0
- adds r5, 0x1
-_0801C8F0:
- adds r0, r5, 0
- cmp r1, 0x4B
- bne _0801C8F8
- adds r0, 0x1
-_0801C8F8:
- cmp r1, 0xC8
- bne _0801C8FE
- adds r0, 0x1
-_0801C8FE:
- adds r2, r0, 0
- cmp r1, 0xD1
- bne _0801C906
- adds r2, 0x1
-_0801C906:
- movs r1, 0
- cmp r6, 0x3F
- bne _0801C916
- adds r0, r7, r4
- ldrh r0, [r0]
- cmp r0, 0x71
- bne _0801C916
- movs r1, 0x1
-_0801C916:
- lsls r5, r1, 1
- movs r3, 0
- cmp r6, 0x42
- bne _0801C930
- mov r0, r12
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0x53
- bne _0801C930
- movs r3, 0x1
-_0801C930:
- lsls r1, r3, 1
- cmp r6, 0x29
- bne _0801C950
- adds r0, r5, 0x1
- adds r0, r2, r0
- b _0801C952
- .align 2, 0
-_0801C93C: .4byte gUnknown_02024C0B
-_0801C940: .4byte gUnknown_02024C07
-_0801C944: .4byte gBattleMons
-_0801C948: .4byte gBattleMoves
-_0801C94C: .4byte gUnknown_02024BE6
-_0801C950:
- adds r0, r2, r5
-_0801C952:
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- adds r5, r0, 0
- cmp r5, 0x4
- bls _0801C960
- movs r5, 0x4
-_0801C960:
- ldr r0, _0801C9BC @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r4
- adds r0, 0x20
- ldrb r4, [r0]
- cmp r4, 0x4
- beq _0801C9D0
- cmp r4, 0x4B
- beq _0801C9D0
- ldr r1, _0801C9C0 @ =gUnknown_02024C98
- mov r2, r12
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- bne _0801C9D0
- ldr r0, _0801C9C4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x84
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- bne _0801C9D0
- bl Random
- ldr r2, _0801C9C8 @ =gCriticalHitChance
- lsls r1, r5, 1
- adds r1, r2
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r1]
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _0801C9D0
- ldr r1, _0801C9CC @ =gCritMultiplier
- movs r0, 0x2
- b _0801C9D4
- .align 2, 0
-_0801C9BC: .4byte gUnknown_02024C08
-_0801C9C0: .4byte gUnknown_02024C98
-_0801C9C4: .4byte gUnknown_020239F8
-_0801C9C8: .4byte gCriticalHitChance
-_0801C9CC: .4byte gCritMultiplier
-_0801C9D0:
- ldr r1, _0801C9E4 @ =gCritMultiplier
- movs r0, 0x1
-_0801C9D4:
- strb r0, [r1]
- ldr r1, _0801C9E8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C9E4: .4byte gCritMultiplier
-_0801C9E8: .4byte gUnknown_02024C10
- thumb_func_end atk04_critcalc
-
- thumb_func_start atk05_damagecalc1
-atk05_damagecalc1: @ 801C9EC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- ldr r4, _0801CABC @ =gUnknown_02024C7A
- ldr r6, _0801CAC0 @ =gUnknown_02024C08
- ldrb r0, [r6]
- bl battle_get_per_side_status
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- ldr r0, _0801CAC4 @ =gUnknown_02024C07
- mov r8, r0
- ldrb r0, [r0]
- movs r4, 0x58
- muls r0, r4
- ldr r2, _0801CAC8 @ =gBattleMons
- adds r0, r2
- ldrb r1, [r6]
- muls r1, r4
- adds r1, r2
- ldr r2, _0801CACC @ =gUnknown_02024BE6
- mov r9, r2
- ldrh r2, [r2]
- ldr r4, _0801CAD0 @ =gUnknown_02024DEC
- ldrh r4, [r4]
- str r4, [sp]
- ldr r5, _0801CAD4 @ =0x02000000
- ldr r7, _0801CAD8 @ =0x0001601c
- adds r4, r5, r7
- ldrb r4, [r4]
- str r4, [sp, 0x4]
- mov r7, r8
- ldrb r4, [r7]
- str r4, [sp, 0x8]
- ldrb r4, [r6]
- str r4, [sp, 0xC]
- bl CalculateBaseDamage
- ldr r4, _0801CADC @ =gUnknown_02024BEC
- ldr r1, _0801CAE0 @ =gCritMultiplier
- ldrb r1, [r1]
- muls r1, r0
- ldr r0, _0801CAE4 @ =0x0001601f
- adds r5, r0
- ldrb r0, [r5]
- adds r3, r1, 0
- muls r3, r0
- str r3, [r4]
- ldr r1, _0801CAE8 @ =gUnknown_02024C98
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 2
- ands r0, r1
- cmp r0, 0
- beq _0801CA82
- ldr r2, _0801CAEC @ =gBattleMoves
- mov r7, r9
- ldrh r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- cmp r0, 0xD
- bne _0801CA82
- lsls r0, r3, 1
- str r0, [r4]
-_0801CA82:
- ldr r1, _0801CAF0 @ =gUnknown_02024D28
- ldr r0, _0801CAC4 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _0801CAA4
- ldr r4, _0801CADC @ =gUnknown_02024BEC
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_0801CAA4:
- ldr r1, _0801CAF4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801CABC: .4byte gUnknown_02024C7A
-_0801CAC0: .4byte gUnknown_02024C08
-_0801CAC4: .4byte gUnknown_02024C07
-_0801CAC8: .4byte gBattleMons
-_0801CACC: .4byte gUnknown_02024BE6
-_0801CAD0: .4byte gUnknown_02024DEC
-_0801CAD4: .4byte 0x02000000
-_0801CAD8: .4byte 0x0001601c
-_0801CADC: .4byte gUnknown_02024BEC
-_0801CAE0: .4byte gCritMultiplier
-_0801CAE4: .4byte 0x0001601f
-_0801CAE8: .4byte gUnknown_02024C98
-_0801CAEC: .4byte gBattleMoves
-_0801CAF0: .4byte gUnknown_02024D28
-_0801CAF4: .4byte gUnknown_02024C10
- thumb_func_end atk05_damagecalc1
-
- thumb_func_start sub_801CAF8
-sub_801CAF8: @ 801CAF8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- adds r5, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _0801CBBC @ =gUnknown_02024C7A
- adds r0, r5, 0
- bl battle_get_per_side_status
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- movs r1, 0x58
- adds r0, r7, 0
- muls r0, r1
- ldr r2, _0801CBC0 @ =gBattleMons
- adds r0, r2
- muls r1, r5
- adds r1, r2
- ldr r2, _0801CBC4 @ =gUnknown_02024BE6
- mov r9, r2
- ldrh r2, [r2]
- ldr r4, _0801CBC8 @ =gUnknown_02024DEC
- mov r8, r4
- ldrh r4, [r4]
- str r4, [sp]
- ldr r6, _0801CBCC @ =0x02000000
- ldr r4, _0801CBD0 @ =0x0001601c
- ldrb r4, [r4, r6]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- str r5, [sp, 0xC]
- bl CalculateBaseDamage
- ldr r4, _0801CBD4 @ =gUnknown_02024BEC
- movs r1, 0
- mov r2, r8
- strh r1, [r2]
- ldr r1, _0801CBD8 @ =gCritMultiplier
- ldrb r1, [r1]
- muls r1, r0
- ldr r0, _0801CBDC @ =0x0001601f
- adds r6, r0
- ldrb r0, [r6]
- adds r3, r1, 0
- muls r3, r0
- str r3, [r4]
- ldr r1, _0801CBE0 @ =gUnknown_02024C98
- lsls r0, r7, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 2
- ands r0, r1
- cmp r0, 0
- beq _0801CB8E
- ldr r2, _0801CBE4 @ =gBattleMoves
- mov r6, r9
- ldrh r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- cmp r0, 0xD
- bne _0801CB8E
- lsls r0, r3, 1
- str r0, [r4]
-_0801CB8E:
- ldr r0, _0801CBE8 @ =gUnknown_02024D28
- lsls r1, r7, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 28
- cmp r0, 0
- bge _0801CBAC
- ldr r4, _0801CBD4 @ =gUnknown_02024BEC
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_0801CBAC:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801CBBC: .4byte gUnknown_02024C7A
-_0801CBC0: .4byte gBattleMons
-_0801CBC4: .4byte gUnknown_02024BE6
-_0801CBC8: .4byte gUnknown_02024DEC
-_0801CBCC: .4byte 0x02000000
-_0801CBD0: .4byte 0x0001601c
-_0801CBD4: .4byte gUnknown_02024BEC
-_0801CBD8: .4byte gCritMultiplier
-_0801CBDC: .4byte 0x0001601f
-_0801CBE0: .4byte gUnknown_02024C98
-_0801CBE4: .4byte gBattleMoves
-_0801CBE8: .4byte gUnknown_02024D28
- thumb_func_end sub_801CAF8
-
- thumb_func_start battle_attack_damage_modulate_by_effectivity
-battle_attack_damage_modulate_by_effectivity: @ 801CBEC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _0801CC1C @ =gUnknown_02024BEC
- ldr r0, [r5]
- muls r0, r4
- movs r1, 0xA
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _0801CC0C
- cmp r4, 0
- beq _0801CC0C
- movs r0, 0x1
- str r0, [r5]
-_0801CC0C:
- cmp r4, 0x5
- beq _0801CC3C
- cmp r4, 0x5
- bgt _0801CC20
- cmp r4, 0
- beq _0801CC26
- b _0801CCBE
- .align 2, 0
-_0801CC1C: .4byte gUnknown_02024BEC
-_0801CC20:
- cmp r4, 0x14
- beq _0801CC7C
- b _0801CCBE
-_0801CC26:
- ldr r2, _0801CC38 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- movs r1, 0xFB
- ands r0, r1
- movs r1, 0xFD
- ands r0, r1
- b _0801CCBC
- .align 2, 0
-_0801CC38: .4byte gUnknown_02024C68
-_0801CC3C:
- ldr r2, _0801CC6C @ =gBattleMoves
- ldr r0, _0801CC70 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0801CCBE
- ldr r2, _0801CC74 @ =gUnknown_02024C68
- ldrb r1, [r2]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801CCBE
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801CC78
- movs r0, 0xFD
- ands r0, r1
- b _0801CCBC
- .align 2, 0
-_0801CC6C: .4byte gBattleMoves
-_0801CC70: .4byte gUnknown_02024BE6
-_0801CC74: .4byte gUnknown_02024C68
-_0801CC78:
- movs r0, 0x4
- b _0801CCBA
-_0801CC7C:
- ldr r2, _0801CCAC @ =gBattleMoves
- ldr r0, _0801CCB0 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0801CCBE
- ldr r2, _0801CCB4 @ =gUnknown_02024C68
- ldrb r1, [r2]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801CCBE
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801CCB8
- movs r0, 0xFB
- ands r0, r1
- b _0801CCBC
- .align 2, 0
-_0801CCAC: .4byte gBattleMoves
-_0801CCB0: .4byte gUnknown_02024BE6
-_0801CCB4: .4byte gUnknown_02024C68
-_0801CCB8:
- movs r0, 0x2
-_0801CCBA:
- orrs r0, r1
-_0801CCBC:
- strb r0, [r2]
-_0801CCBE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end battle_attack_damage_modulate_by_effectivity
-
- thumb_func_start atk06_damagecalc2
-atk06_damagecalc2: @ 801CCC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r3, 0
- ldr r1, _0801CCF0 @ =gUnknown_02024BE6
- ldrh r0, [r1]
- cmp r0, 0xA5
- bne _0801CCD8
- b _0801CEF4
-_0801CCD8:
- ldr r0, _0801CCF4 @ =0x02000000
- ldr r2, _0801CCF8 @ =0x0001601c
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801CCFC
- movs r1, 0x3F
- mov r8, r1
- mov r2, r8
- ands r2, r0
- mov r8, r2
- b _0801CD0C
- .align 2, 0
-_0801CCF0: .4byte gUnknown_02024BE6
-_0801CCF4: .4byte 0x02000000
-_0801CCF8: .4byte 0x0001601c
-_0801CCFC:
- ldr r2, _0801CD94 @ =gBattleMoves
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- mov r8, r0
-_0801CD0C:
- ldr r2, _0801CD98 @ =gBattleMons
- ldr r0, _0801CD9C @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- adds r5, r2, 0
- cmp r0, r8
- beq _0801CD2E
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r8
- bne _0801CD44
-_0801CD2E:
- ldr r4, _0801CDA0 @ =gUnknown_02024BEC
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- str r0, [r4]
- movs r1, 0xA
- str r3, [sp, 0x4]
- bl __divsi3
- str r0, [r4]
- ldr r3, [sp, 0x4]
-_0801CD44:
- ldr r2, _0801CDA4 @ =gUnknown_02024C08
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- adds r4, r2, 0
- cmp r0, 0x1A
- bne _0801CDBC
- mov r1, r8
- cmp r1, 0x4
- bne _0801CDBC
- ldr r3, _0801CDA8 @ =byte_2024C06
- strb r0, [r3]
- ldr r2, _0801CDAC @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x9
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801CDB0 @ =gUnknown_02024C3C
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801CDB4 @ =gUnknown_02024C44
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldr r0, _0801CDB8 @ =gUnknown_02024D1E
- mov r2, r8
- strb r2, [r0, 0x6]
- ldrb r0, [r4]
- ldrb r1, [r3]
- bl sub_81074C4
- b _0801CE58
- .align 2, 0
-_0801CD94: .4byte gBattleMoves
-_0801CD98: .4byte gBattleMons
-_0801CD9C: .4byte gUnknown_02024C07
-_0801CDA0: .4byte gUnknown_02024BEC
-_0801CDA4: .4byte gUnknown_02024C08
-_0801CDA8: .4byte byte_2024C06
-_0801CDAC: .4byte gUnknown_02024C68
-_0801CDB0: .4byte gUnknown_02024C3C
-_0801CDB4: .4byte gUnknown_02024C44
-_0801CDB8: .4byte gUnknown_02024D1E
-_0801CDBC:
- ldr r1, _0801CDC8 @ =gTypeEffectiveness
- adds r0, r3, r1
- ldrb r0, [r0]
- adds r2, r1, 0
- b _0801CE38
- .align 2, 0
-_0801CDC8: .4byte gTypeEffectiveness
-_0801CDCC:
- adds r3, 0x3
- b _0801CE34
-_0801CDD0:
- ldr r5, _0801CF08 @ =gTypeEffectiveness
- adds r0, r3, r5
- ldrb r0, [r0]
- cmp r0, r8
- bne _0801CE2C
- adds r1, r3, 0x1
- adds r1, r5
- ldr r2, _0801CF0C @ =gBattleMons
- ldr r7, _0801CF10 @ =gUnknown_02024C08
- ldrb r0, [r7]
- movs r6, 0x58
- muls r0, r6
- adds r0, r2
- adds r0, 0x21
- ldrb r4, [r1]
- ldrb r0, [r0]
- cmp r4, r0
- bne _0801CE06
- adds r0, r3, 0x2
- adds r0, r5
- ldrb r0, [r0]
- str r2, [sp]
- str r3, [sp, 0x4]
- bl battle_attack_damage_modulate_by_effectivity
- ldr r3, [sp, 0x4]
- ldr r2, [sp]
-_0801CE06:
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r1, [r1]
- cmp r4, r1
- bne _0801CE2C
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r4
- beq _0801CE2C
- adds r0, r3, 0x2
- adds r0, r5
- ldrb r0, [r0]
- str r3, [sp, 0x4]
- bl battle_attack_damage_modulate_by_effectivity
- ldr r3, [sp, 0x4]
-_0801CE2C:
- adds r3, 0x3
- ldr r5, _0801CF0C @ =gBattleMons
- ldr r4, _0801CF10 @ =gUnknown_02024C08
- ldr r2, _0801CF08 @ =gTypeEffectiveness
-_0801CE34:
- adds r0, r3, r2
- ldrb r0, [r0]
-_0801CE38:
- cmp r0, 0xFF
- beq _0801CE58
- cmp r0, 0xFE
- bne _0801CDD0
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r1, r5, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801CDCC
-_0801CE58:
- ldr r2, _0801CF0C @ =gBattleMons
- ldr r5, _0801CF10 @ =gUnknown_02024C08
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r6, [r0]
- cmp r6, 0x19
- bne _0801CED6
- ldr r0, _0801CF14 @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r7, _0801CF18 @ =gUnknown_02024BE6
- ldrh r1, [r7]
- bl move_weather_interaction
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0801CED6
- ldr r1, _0801CF1C @ =gUnknown_02024C68
- mov r8, r1
- ldrb r4, [r1]
- ands r0, r4
- cmp r0, 0
- beq _0801CE94
- movs r0, 0x6
- ands r0, r4
- cmp r0, 0x6
- bne _0801CED6
-_0801CE94:
- ldr r2, _0801CF20 @ =gBattleMoves
- ldrh r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0801CED6
- ldr r3, _0801CF24 @ =byte_2024C06
- strb r6, [r3]
- movs r0, 0x1
- orrs r0, r4
- mov r2, r8
- strb r0, [r2]
- ldr r1, _0801CF28 @ =gUnknown_02024C3C
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801CF2C @ =gUnknown_02024C44
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldr r1, _0801CF30 @ =gUnknown_02024D1E
- movs r0, 0x3
- strb r0, [r1, 0x6]
- ldrb r0, [r5]
- ldrb r1, [r3]
- bl sub_81074C4
-_0801CED6:
- ldr r0, _0801CF1C @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801CEF4
- ldr r2, _0801CF34 @ =gUnknown_02024D28
- ldr r0, _0801CF14 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 4
- adds r1, r2
- ldrb r0, [r1, 0x1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1, 0x1]
-_0801CEF4:
- ldr r1, _0801CF38 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801CF08: .4byte gTypeEffectiveness
-_0801CF0C: .4byte gBattleMons
-_0801CF10: .4byte gUnknown_02024C08
-_0801CF14: .4byte gUnknown_02024C07
-_0801CF18: .4byte gUnknown_02024BE6
-_0801CF1C: .4byte gUnknown_02024C68
-_0801CF20: .4byte gBattleMoves
-_0801CF24: .4byte byte_2024C06
-_0801CF28: .4byte gUnknown_02024C3C
-_0801CF2C: .4byte gUnknown_02024C44
-_0801CF30: .4byte gUnknown_02024D1E
-_0801CF34: .4byte gUnknown_02024D28
-_0801CF38: .4byte gUnknown_02024C10
- thumb_func_end atk06_damagecalc2
-
- thumb_func_start b_wonderguard_and_levitate
-b_wonderguard_and_levitate: @ 801CF3C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r6, 0
- movs r5, 0
- ldr r0, _0801CF80 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- mov r9, r0
- cmp r1, 0xA5
- bne _0801CF54
- b _0801D1A4
-_0801CF54:
- ldr r2, _0801CF84 @ =gBattleMoves
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _0801CF66
- b _0801D1A4
-_0801CF66:
- ldr r0, _0801CF88 @ =0x02000000
- ldr r2, _0801CF8C @ =0x0001601c
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801CF90
- movs r1, 0x3F
- mov r12, r1
- mov r2, r12
- ands r2, r0
- mov r12, r2
- b _0801CF94
- .align 2, 0
-_0801CF80: .4byte gUnknown_02024BE6
-_0801CF84: .4byte gBattleMoves
-_0801CF88: .4byte 0x02000000
-_0801CF8C: .4byte 0x0001601c
-_0801CF90:
- ldrb r1, [r1, 0x2]
- mov r12, r1
-_0801CF94:
- ldr r2, _0801CFC8 @ =gBattleMons
- ldr r3, _0801CFCC @ =gUnknown_02024C08
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r1, [r0]
- adds r7, r2, 0
- mov r8, r3
- cmp r1, 0x1A
- bne _0801CFD8
- mov r0, r12
- cmp r0, 0x4
- bne _0801CFD8
- ldr r0, _0801CFD0 @ =byte_2024C06
- strb r1, [r0]
- ldr r0, _0801CFD4 @ =gUnknown_02024D1E
- mov r1, r12
- strb r1, [r0, 0x6]
- ldrb r0, [r3]
- movs r1, 0x1A
- bl sub_81074C4
- b _0801D1A4
- .align 2, 0
-_0801CFC8: .4byte gBattleMons
-_0801CFCC: .4byte gUnknown_02024C08
-_0801CFD0: .4byte byte_2024C06
-_0801CFD4: .4byte gUnknown_02024D1E
-_0801CFD8:
- ldr r1, _0801CFE4 @ =gTypeEffectiveness
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r4, r1, 0
- b _0801D12A
- .align 2, 0
-_0801CFE4: .4byte gTypeEffectiveness
-_0801CFE8:
- adds r0, r5, r4
- ldrb r0, [r0]
- cmp r0, r12
- beq _0801CFF2
- b _0801D124
-_0801CFF2:
- adds r2, r5, 0x1
- adds r3, r2, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x21
- ldrb r1, [r3]
- adds r3, r2, 0
- ldrb r0, [r0]
- cmp r1, r0
- bne _0801D032
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0801D032
- ldr r2, _0801D1B0 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801D1B4 @ =gUnknown_02024D28
- ldr r0, _0801D1B8 @ =gUnknown_02024C07
- ldrb r2, [r0]
- lsls r2, 4
- adds r2, r1
- ldrb r0, [r2, 0x1]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x1]
-_0801D032:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0801D078
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0801D078
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0801D078
- ldr r2, _0801D1B0 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801D1B4 @ =gUnknown_02024D28
- ldr r0, _0801D1B8 @ =gUnknown_02024C07
- ldrb r2, [r0]
- lsls r2, 4
- adds r2, r1
- ldrb r0, [r2, 0x1]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x1]
-_0801D078:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x21
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0801D09C
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _0801D09C
- movs r0, 0x1
- orrs r6, r0
-_0801D09C:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0801D0CA
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0801D0CA
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _0801D0CA
- movs r0, 0x1
- orrs r6, r0
-_0801D0CA:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x21
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0801D0F2
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _0801D0F2
- movs r0, 0x2
- orrs r6, r0
- lsls r0, r6, 24
- lsrs r6, r0, 24
-_0801D0F2:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0801D124
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0801D124
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _0801D124
- movs r0, 0x2
- orrs r6, r0
- lsls r0, r6, 24
- lsrs r6, r0, 24
-_0801D124:
- adds r5, 0x3
- adds r0, r5, r4
- ldrb r0, [r0]
-_0801D12A:
- cmp r0, 0xFF
- beq _0801D14E
- cmp r0, 0xFE
- beq _0801D134
- b _0801CFE8
-_0801D134:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- adds r1, r7, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801D124
-_0801D14E:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x20
- ldrb r4, [r0]
- cmp r4, 0x19
- bne _0801D1A4
- ldr r0, _0801D1B8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- mov r2, r9
- ldrh r1, [r2]
- bl move_weather_interaction
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0801D1A4
- movs r0, 0x3
- ands r6, r0
- cmp r6, 0x1
- beq _0801D1A4
- ldr r2, _0801D1BC @ =gBattleMoves
- mov r0, r9
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0801D1A4
- ldr r0, _0801D1C0 @ =byte_2024C06
- strb r4, [r0]
- ldr r1, _0801D1C4 @ =gUnknown_02024D1E
- movs r0, 0x3
- strb r0, [r1, 0x6]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x19
- bl sub_81074C4
-_0801D1A4:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801D1B0: .4byte gUnknown_02024C68
-_0801D1B4: .4byte gUnknown_02024D28
-_0801D1B8: .4byte gUnknown_02024C07
-_0801D1BC: .4byte gBattleMoves
-_0801D1C0: .4byte byte_2024C06
-_0801D1C4: .4byte gUnknown_02024D1E
- thumb_func_end b_wonderguard_and_levitate
-
- thumb_func_start b_attack_effectivity_adapt
-b_attack_effectivity_adapt: @ 801D1C8
- push {r4-r7,lr}
- adds r6, r2, 0
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r7, _0801D1FC @ =gUnknown_02024BEC
- ldr r0, [r7]
- muls r0, r4
- movs r1, 0xA
- bl __divsi3
- str r0, [r7]
- cmp r0, 0
- bne _0801D1EE
- cmp r4, 0
- beq _0801D1EE
- movs r0, 0x1
- str r0, [r7]
-_0801D1EE:
- cmp r4, 0x5
- beq _0801D216
- cmp r4, 0x5
- bgt _0801D200
- cmp r4, 0
- beq _0801D206
- b _0801D27A
- .align 2, 0
-_0801D1FC: .4byte gUnknown_02024BEC
-_0801D200:
- cmp r4, 0x14
- beq _0801D248
- b _0801D27A
-_0801D206:
- ldrb r0, [r6]
- movs r1, 0x8
- orrs r0, r1
- movs r1, 0xFB
- ands r0, r1
- movs r1, 0xFD
- ands r0, r1
- b _0801D278
-_0801D216:
- ldr r0, _0801D240 @ =gBattleMoves
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801D27A
- ldrb r1, [r6]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801D27A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801D244
- movs r0, 0xFD
- ands r0, r1
- b _0801D278
- .align 2, 0
-_0801D240: .4byte gBattleMoves
-_0801D244:
- movs r0, 0x4
- b _0801D276
-_0801D248:
- ldr r0, _0801D270 @ =gBattleMoves
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801D27A
- ldrb r1, [r6]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801D27A
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801D274
- movs r0, 0xFB
- ands r0, r1
- b _0801D278
- .align 2, 0
-_0801D270: .4byte gBattleMoves
-_0801D274:
- movs r0, 0x2
-_0801D276:
- orrs r0, r1
-_0801D278:
- strb r0, [r6]
-_0801D27A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end b_attack_effectivity_adapt
-
- thumb_func_start move_effectiveness_something
-move_effectiveness_something: @ 801D280
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x4]
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- movs r7, 0
- mov r0, sp
- strb r7, [r0]
- mov r0, r10
- cmp r0, 0xA5
- bne _0801D2AE
- movs r0, 0
- b _0801D43A
-_0801D2AE:
- ldr r1, _0801D31C @ =gBattleMoves
- mov r3, r10
- lsls r2, r3, 1
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- str r0, [sp, 0x8]
- ldr r1, _0801D320 @ =gBattleMons
- movs r0, 0x58
- ldr r3, [sp, 0x4]
- muls r0, r3
- 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, 0x8]
- cmp r0, r1
- beq _0801D2E2
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- bne _0801D2F4
-_0801D2E2:
- ldr r4, _0801D324 @ =gUnknown_02024BEC
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- str r0, [r4]
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_0801D2F4:
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- bne _0801D328
- ldr r3, [sp, 0x8]
- cmp r3, 0x4
- bne _0801D328
- movs r1, 0x9
- mov r0, sp
- ldrb r0, [r0]
- orrs r0, r1
- mov r1, sp
- strb r0, [r1]
- b _0801D3DC
- .align 2, 0
-_0801D31C: .4byte gBattleMoves
-_0801D320: .4byte gBattleMons
-_0801D324: .4byte gUnknown_02024BEC
-_0801D328:
- ldr r1, _0801D344 @ =gTypeEffectiveness
- adds r0, r7, r1
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0xFF
- beq _0801D3DC
- cmp r0, 0xFE
- bne _0801D34C
- movs r0, 0x58
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- b _0801D3CA
- .align 2, 0
-_0801D344: .4byte gTypeEffectiveness
-_0801D348:
- adds r7, 0x3
- b _0801D3B6
-_0801D34C:
- ldr r6, _0801D44C @ =gTypeEffectiveness
- adds r0, r7, r6
- ldrb r0, [r0]
- ldr r2, [sp, 0x8]
- cmp r0, r2
- bne _0801D3B0
- adds r1, r7, 0x1
- adds r1, r6
- ldr r3, _0801D450 @ =gBattleMons
- mov r8, r3
- movs r3, 0x58
- mov r0, r9
- muls r0, r3
- mov r2, r8
- adds r5, r0, r2
- adds r0, r5, 0
- adds r0, 0x21
- ldrb r4, [r1]
- ldrb r0, [r0]
- cmp r4, r0
- bne _0801D388
- adds r0, r7, 0x2
- adds r0, r6
- ldrb r0, [r0]
- mov r1, r10
- mov r2, sp
- str r3, [sp, 0x10]
- bl b_attack_effectivity_adapt
- ldr r3, [sp, 0x10]
-_0801D388:
- adds r0, r5, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r4, r0
- bne _0801D3B0
- ldr r0, _0801D454 @ =gUnknown_02024C08
- ldrb r0, [r0]
- muls r0, r3
- add r0, r8
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r4
- beq _0801D3B0
- adds r0, r7, 0x2
- adds r0, r6
- ldrb r0, [r0]
- mov r1, r10
- mov r2, sp
- bl b_attack_effectivity_adapt
-_0801D3B0:
- adds r7, 0x3
- ldr r5, _0801D450 @ =gBattleMons
- ldr r2, _0801D44C @ =gTypeEffectiveness
-_0801D3B6:
- adds r0, r7, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _0801D3DC
- cmp r0, 0xFE
- bne _0801D34C
- movs r0, 0x58
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
-_0801D3CA:
- adds r1, r5, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801D348
-_0801D3DC:
- movs r0, 0x58
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x19
- bne _0801D436
- mov r0, sp
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0801D436
- ldr r0, [sp, 0x4]
- mov r1, r10
- bl move_weather_interaction
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bne _0801D436
- mov r0, sp
- ldrb r3, [r0]
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0801D41E
- movs r0, 0x6
- ands r0, r3
- cmp r0, 0x6
- bne _0801D436
-_0801D41E:
- ldr r0, _0801D458 @ =gBattleMoves
- ldr r1, [sp, 0xC]
- add r1, r10
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801D436
- mov r0, sp
- movs r1, 0x1
- orrs r1, r3
- strb r1, [r0]
-_0801D436:
- mov r0, sp
- ldrb r0, [r0]
-_0801D43A:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801D44C: .4byte gTypeEffectiveness
-_0801D450: .4byte gBattleMons
-_0801D454: .4byte gUnknown_02024C08
-_0801D458: .4byte gBattleMoves
- thumb_func_end move_effectiveness_something
-
- thumb_func_start ai_rate_move
-ai_rate_move: @ 801D45C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4]
- movs r7, 0
- mov r0, sp
- strb r7, [r0]
- ldr r2, _0801D498 @ =gBaseStats
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x6]
- str r1, [sp, 0x8]
- ldrb r0, [r0, 0x7]
- mov r8, r0
- cmp r6, 0xA5
- bne _0801D49C
- movs r0, 0
- b _0801D554
- .align 2, 0
-_0801D498: .4byte gBaseStats
-_0801D49C:
- ldr r2, _0801D4C0 @ =gBattleMoves
- lsls r1, r6, 1
- adds r0, r1, r6
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- mov r9, r0
- str r1, [sp, 0xC]
- ldr r3, [sp, 0x4]
- cmp r3, 0x1A
- bne _0801D4C4
- cmp r0, 0x4
- bne _0801D4C4
- movs r1, 0x9
- mov r0, sp
- strb r1, [r0]
- b _0801D51E
- .align 2, 0
-_0801D4C0: .4byte gBattleMoves
-_0801D4C4:
- ldr r0, _0801D564 @ =gTypeEffectiveness
- mov r10, r0
- adds r1, r7, r0
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _0801D51E
- adds r4, r1, 0
-_0801D4D2:
- ldrb r0, [r4]
- cmp r0, 0xFE
- beq _0801D510
- cmp r0, r9
- bne _0801D510
- ldrb r5, [r4, 0x1]
- ldr r1, [sp, 0x8]
- cmp r5, r1
- bne _0801D4EE
- ldrb r0, [r4, 0x2]
- adds r1, r6, 0
- mov r2, sp
- bl b_attack_effectivity_adapt
-_0801D4EE:
- cmp r5, r8
- bne _0801D510
- ldr r0, _0801D568 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- ldr r3, _0801D56C @ =gBattleMons
- adds r0, r3
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r8
- beq _0801D510
- ldrb r0, [r4, 0x2]
- adds r1, r6, 0
- mov r2, sp
- bl b_attack_effectivity_adapt
-_0801D510:
- adds r4, 0x3
- adds r7, 0x3
- mov r1, r10
- adds r0, r7, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _0801D4D2
-_0801D51E:
- ldr r3, [sp, 0x4]
- cmp r3, 0x19
- bne _0801D550
- mov r0, sp
- ldrb r2, [r0]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0801D538
- movs r0, 0x6
- ands r0, r2
- cmp r0, 0x6
- bne _0801D550
-_0801D538:
- ldr r0, _0801D570 @ =gBattleMoves
- ldr r3, [sp, 0xC]
- adds r1, r3, r6
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801D550
- mov r0, sp
- movs r1, 0x8
- orrs r1, r2
- strb r1, [r0]
-_0801D550:
- mov r0, sp
- ldrb r0, [r0]
-_0801D554:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801D564: .4byte gTypeEffectiveness
-_0801D568: .4byte gUnknown_02024C08
-_0801D56C: .4byte gBattleMons
-_0801D570: .4byte gBattleMoves
- thumb_func_end ai_rate_move
-
- thumb_func_start unref_sub_801D574
-unref_sub_801D574: @ 801D574
- push {r4,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x64
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0801D5AC @ =gUnknown_02024BEC
- ldr r0, [r4]
- cmp r0, 0
- beq _0801D5A6
- muls r0, r1
- str r0, [r4]
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801D5A6
- movs r0, 0x1
- str r0, [r4]
-_0801D5A6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801D5AC: .4byte gUnknown_02024BEC
- thumb_func_end unref_sub_801D574
-
- thumb_func_start atk07_damagecalc3
-atk07_damagecalc3: @ 801D5B0
- push {r4-r7,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x64
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0801D608 @ =gUnknown_02024BEC
- ldr r0, [r4]
- cmp r0, 0
- beq _0801D5E2
- muls r0, r1
- str r0, [r4]
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801D5E2
- movs r0, 0x1
- str r0, [r4]
-_0801D5E2:
- ldr r7, _0801D60C @ =gBattleMons
- ldr r6, _0801D610 @ =gUnknown_02024C08
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0801D618
- ldr r1, _0801D614 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _0801D632
- .align 2, 0
-_0801D608: .4byte gUnknown_02024BEC
-_0801D60C: .4byte gBattleMons
-_0801D610: .4byte gUnknown_02024C08
-_0801D614: .4byte gEnigmaBerries
-_0801D618:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_0801D632:
- ldr r1, _0801D6F4 @ =gUnknown_02024C0B
- ldr r5, _0801D6F8 @ =gUnknown_02024C08
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _0801D670
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _0801D670
- ldrb r0, [r5]
- movs r1, 0x27
- bl sub_81074F8
- ldr r2, _0801D6FC @ =gUnknown_02024D68
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_0801D670:
- ldr r2, _0801D700 @ =gBattleMons
- ldr r3, _0801D6F8 @ =gUnknown_02024C08
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 17
- ands r1, r0
- adds r5, r2, 0
- cmp r1, 0
- bne _0801D740
- ldr r2, _0801D704 @ =gBattleMoves
- ldr r0, _0801D708 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x65
- beq _0801D6C2
- ldr r0, _0801D70C @ =gUnknown_02024D28
- lsls r1, r4, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 30
- cmp r0, 0
- blt _0801D6C2
- ldr r0, _0801D6FC @ =gUnknown_02024D68
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801D740
-_0801D6C2:
- ldrb r0, [r3]
- movs r4, 0x58
- muls r0, r4
- adds r0, r5
- ldrh r1, [r0, 0x28]
- ldr r2, _0801D710 @ =gUnknown_02024BEC
- ldr r0, [r2]
- cmp r1, r0
- bgt _0801D740
- subs r0, r1, 0x1
- str r0, [r2]
- ldr r1, _0801D70C @ =gUnknown_02024D28
- ldrb r3, [r3]
- lsls r0, r3, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bge _0801D718
- ldr r0, _0801D714 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _0801D740
- .align 2, 0
-_0801D6F4: .4byte gUnknown_02024C0B
-_0801D6F8: .4byte gUnknown_02024C08
-_0801D6FC: .4byte gUnknown_02024D68
-_0801D700: .4byte gBattleMons
-_0801D704: .4byte gBattleMoves
-_0801D708: .4byte gUnknown_02024BE6
-_0801D70C: .4byte gUnknown_02024D28
-_0801D710: .4byte gUnknown_02024BEC
-_0801D714: .4byte gUnknown_02024C68
-_0801D718:
- ldr r0, _0801D750 @ =gUnknown_02024D68
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801D740
- ldr r2, _0801D754 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801D758 @ =gUnknown_02024C04
- adds r0, r3, 0
- muls r0, r4
- adds r0, r5
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
-_0801D740:
- ldr r1, _0801D75C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801D750: .4byte gUnknown_02024D68
-_0801D754: .4byte gUnknown_02024C68
-_0801D758: .4byte gUnknown_02024C04
-_0801D75C: .4byte gUnknown_02024C10
- thumb_func_end atk07_damagecalc3
-
- thumb_func_start atk08_cmd8
-atk08_cmd8: @ 801D760
- push {r4-r7,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x64
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0801D7B8 @ =gUnknown_02024BEC
- ldr r0, [r4]
- cmp r0, 0
- beq _0801D792
- muls r0, r1
- str r0, [r4]
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801D792
- movs r0, 0x1
- str r0, [r4]
-_0801D792:
- ldr r7, _0801D7BC @ =gBattleMons
- ldr r6, _0801D7C0 @ =gUnknown_02024C08
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0801D7C8
- ldr r1, _0801D7C4 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _0801D7E2
- .align 2, 0
-_0801D7B8: .4byte gUnknown_02024BEC
-_0801D7BC: .4byte gBattleMons
-_0801D7C0: .4byte gUnknown_02024C08
-_0801D7C4: .4byte gEnigmaBerries
-_0801D7C8:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_0801D7E2:
- ldr r1, _0801D888 @ =gUnknown_02024C0B
- ldr r5, _0801D88C @ =gUnknown_02024C08
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _0801D820
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _0801D820
- ldrb r0, [r5]
- movs r1, 0x27
- bl sub_81074F8
- ldr r2, _0801D890 @ =gUnknown_02024D68
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_0801D820:
- ldr r4, _0801D894 @ =gBattleMons
- ldr r6, _0801D88C @ =gUnknown_02024C08
- ldrb r2, [r6]
- movs r7, 0x58
- adds r3, r2, 0
- muls r3, r7
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _0801D8CC
- ldr r5, _0801D898 @ =gUnknown_02024D28
- lsls r0, r2, 4
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- blt _0801D85E
- ldr r0, _0801D890 @ =gUnknown_02024D68
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801D8CC
-_0801D85E:
- adds r0, r3, r4
- ldrh r1, [r0, 0x28]
- ldr r2, _0801D89C @ =gUnknown_02024BEC
- ldr r0, [r2]
- cmp r1, r0
- bgt _0801D8CC
- subs r0, r1, 0x1
- str r0, [r2]
- ldrb r3, [r6]
- lsls r0, r3, 4
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bge _0801D8A4
- ldr r0, _0801D8A0 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _0801D8CC
- .align 2, 0
-_0801D888: .4byte gUnknown_02024C0B
-_0801D88C: .4byte gUnknown_02024C08
-_0801D890: .4byte gUnknown_02024D68
-_0801D894: .4byte gBattleMons
-_0801D898: .4byte gUnknown_02024D28
-_0801D89C: .4byte gUnknown_02024BEC
-_0801D8A0: .4byte gUnknown_02024C68
-_0801D8A4:
- ldr r0, _0801D8DC @ =gUnknown_02024D68
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801D8CC
- ldr r2, _0801D8E0 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801D8E4 @ =gUnknown_02024C04
- adds r0, r3, 0
- muls r0, r7
- adds r0, r4
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
-_0801D8CC:
- ldr r1, _0801D8E8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801D8DC: .4byte gUnknown_02024D68
-_0801D8E0: .4byte gUnknown_02024C68
-_0801D8E4: .4byte gUnknown_02024C04
-_0801D8E8: .4byte gUnknown_02024C10
- thumb_func_end atk08_cmd8
-
- thumb_func_start sub_801D8EC
-sub_801D8EC: @ 801D8EC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0xC
- ldr r0, _0801D940 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _0801D900
- b _0801DA4A
-_0801D900:
- ldr r0, _0801D944 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- ldr r3, _0801D948 @ =gUnknown_02024BE6
- cmp r0, 0
- beq _0801D960
- ldrh r0, [r3]
- cmp r0, 0x90
- beq _0801D960
- cmp r0, 0xA4
- beq _0801D960
- ldr r4, _0801D94C @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801D950 @ =gUnknown_081D8EEF
- str r0, [r4]
- ldr r1, _0801D954 @ =0x02000000
- ldr r0, _0801D958 @ =0x00016002
- adds r2, r1, r0
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- ldr r2, _0801D95C @ =0x000160a1
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0801DA4A
- .align 2, 0
-_0801D940: .4byte gUnknown_02024A64
-_0801D944: .4byte gUnknown_02024C6C
-_0801D948: .4byte gUnknown_02024BE6
-_0801D94C: .4byte gUnknown_02024C10
-_0801D950: .4byte gUnknown_081D8EEF
-_0801D954: .4byte 0x02000000
-_0801D958: .4byte 0x00016002
-_0801D95C: .4byte 0x000160a1
-_0801D960:
- ldr r2, _0801DA0C @ =gBattleMoves
- ldrh r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x6]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0801D986
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0801D986
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0801D992
-_0801D986:
- ldr r0, _0801DA10 @ =0x02000000
- ldr r1, _0801DA14 @ =0x000160a1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0801DA00
-_0801D992:
- ldr r0, _0801DA18 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801DA3C
- ldr r1, _0801DA1C @ =gUnknown_02024A60
- ldr r2, _0801DA20 @ =gUnknown_02024C07
- mov r9, r2
- ldrb r0, [r2]
- strb r0, [r1]
- ldrh r1, [r3]
- ldr r6, _0801DA10 @ =0x02000000
- ldr r0, _0801DA24 @ =0x00016002
- adds r0, r6
- mov r8, r0
- ldrb r2, [r0]
- ldr r0, _0801DA28 @ =gBattleMovePower
- ldrh r3, [r0]
- ldr r0, _0801DA2C @ =gUnknown_02024BEC
- ldr r0, [r0]
- str r0, [sp]
- ldr r5, _0801DA30 @ =gBattleMons
- mov r0, r9
- ldrb r4, [r0]
- movs r0, 0x58
- muls r0, r4
- adds r0, r5
- adds r0, 0x2B
- ldrb r0, [r0]
- str r0, [sp, 0x4]
- mov r0, r9
- ldrb r4, [r0]
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r4, _0801DA34 @ =gUnknown_02024CA8
- adds r0, r4
- str r0, [sp, 0x8]
- movs r0, 0
- bl dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes
- mov r1, r8
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r2, _0801DA14 @ =0x000160a1
- adds r6, r2
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- mov r1, r9
- ldrb r0, [r1]
- bl dp01_battle_side_mark_buffer_for_execution
-_0801DA00:
- ldr r1, _0801DA38 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- b _0801DA4A
- .align 2, 0
-_0801DA0C: .4byte gBattleMoves
-_0801DA10: .4byte 0x02000000
-_0801DA14: .4byte 0x000160a1
-_0801DA18: .4byte gUnknown_02024C68
-_0801DA1C: .4byte gUnknown_02024A60
-_0801DA20: .4byte gUnknown_02024C07
-_0801DA24: .4byte 0x00016002
-_0801DA28: .4byte gBattleMovePower
-_0801DA2C: .4byte gUnknown_02024BEC
-_0801DA30: .4byte gBattleMons
-_0801DA34: .4byte gUnknown_02024CA8
-_0801DA38: .4byte gUnknown_02024C10
-_0801DA3C:
- ldr r4, _0801DA58 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801DA5C @ =gUnknown_081D8EEF
- str r0, [r4]
-_0801DA4A:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801DA58: .4byte gUnknown_02024C10
-_0801DA5C: .4byte gUnknown_081D8EEF
- thumb_func_end sub_801D8EC
-
- thumb_func_start sub_801DA60
-sub_801DA60: @ 801DA60
- push {lr}
- ldr r0, _0801DA78 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801DA72
- ldr r1, _0801DA7C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801DA72:
- pop {r0}
- bx r0
- .align 2, 0
-_0801DA78: .4byte gUnknown_02024A64
-_0801DA7C: .4byte gUnknown_02024C10
- thumb_func_end sub_801DA60
-
- thumb_func_start sub_801DA80
-sub_801DA80: @ 801DA80
- push {r4,r5,lr}
- ldr r0, _0801DAE4 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801DB36
- ldr r0, _0801DAE8 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801DB2E
- ldr r0, _0801DAEC @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r2, _0801DAF0 @ =gUnknown_02024A60
- strb r0, [r2]
- ldr r1, _0801DAF4 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0801DB00
- ldr r0, _0801DAF8 @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- beq _0801DB00
- ldr r0, _0801DAFC @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 1
- ands r0, r1
- cmp r0, 0
- bne _0801DB00
- movs r0, 0x80
- adds r1, r2, 0
- bl b_std_message
- b _0801DB2E
- .align 2, 0
-_0801DAE4: .4byte gUnknown_02024A64
-_0801DAE8: .4byte gUnknown_02024C68
-_0801DAEC: .4byte gUnknown_02024C10
-_0801DAF0: .4byte gUnknown_02024A60
-_0801DAF4: .4byte gBattleMons
-_0801DAF8: .4byte gUnknown_02024CA8
-_0801DAFC: .4byte gUnknown_02024C6C
-_0801DB00:
- ldr r5, _0801DB3C @ =gUnknown_02024BEC
- ldrh r1, [r5]
- movs r0, 0
- bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
- ldr r4, _0801DB40 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0801DB2E
- ldr r0, [r5]
- cmp r0, 0
- ble _0801DB2E
- ldr r0, _0801DB44 @ =gUnknown_030042E0
- ldrb r1, [r0, 0x5]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x5]
-_0801DB2E:
- ldr r1, _0801DB48 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_0801DB36:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801DB3C: .4byte gUnknown_02024BEC
-_0801DB40: .4byte gUnknown_02024A60
-_0801DB44: .4byte gUnknown_030042E0
-_0801DB48: .4byte gUnknown_02024C10
- thumb_func_end sub_801DA80
-
- thumb_func_start atk0C_datahpupdate
-atk0C_datahpupdate: @ 801DB4C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r0, _0801DB74 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _0801DB5A
- b _0801DF2E
-_0801DB5A:
- ldr r0, _0801DB78 @ =0x02000000
- ldr r1, _0801DB7C @ =0x0001601c
- adds r0, r1
- ldrb r1, [r0]
- cmp r1, 0
- beq _0801DB80
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0801DB80
- movs r6, 0x3F
- ands r6, r1
- b _0801DB90
- .align 2, 0
-_0801DB74: .4byte gUnknown_02024A64
-_0801DB78: .4byte 0x02000000
-_0801DB7C: .4byte 0x0001601c
-_0801DB80:
- ldr r2, _0801DC1C @ =gBattleMoves
- ldr r0, _0801DC20 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r6, [r0, 0x2]
-_0801DB90:
- ldr r0, _0801DC24 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801DB9E
- b _0801DF00
-_0801DB9E:
- ldr r0, _0801DC28 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r7, _0801DC2C @ =gUnknown_02024A60
- strb r0, [r7]
- ldr r1, _0801DC30 @ =gBattleMons
- ldrb r2, [r7]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0801DCB4
- ldr r0, _0801DC34 @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r4, r1, r0
- ldrb r1, [r4, 0xA]
- mov r12, r0
- cmp r1, 0
- beq _0801DCB4
- ldr r0, _0801DC38 @ =gUnknown_02024C6C
- ldr r3, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r3, r0
- cmp r3, 0
- bne _0801DCB4
- adds r5, r1, 0
- ldr r6, _0801DC3C @ =gUnknown_02024BEC
- ldr r4, [r6]
- cmp r5, r4
- blt _0801DC48
- ldr r0, _0801DC40 @ =gUnknown_02024D68
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- cmp r0, 0
- bne _0801DC02
- str r4, [r1]
-_0801DC02:
- ldrb r0, [r7]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r12
- ldr r2, [r6]
- ldrb r0, [r1, 0xA]
- subs r0, r2
- strb r0, [r1, 0xA]
- ldr r1, _0801DC44 @ =gUnknown_02024BF0
- ldr r0, [r6]
- str r0, [r1]
- b _0801DC78
- .align 2, 0
-_0801DC1C: .4byte gBattleMoves
-_0801DC20: .4byte gUnknown_02024BE6
-_0801DC24: .4byte gUnknown_02024C68
-_0801DC28: .4byte gUnknown_02024C10
-_0801DC2C: .4byte gUnknown_02024A60
-_0801DC30: .4byte gBattleMons
-_0801DC34: .4byte gUnknown_02024CA8
-_0801DC38: .4byte gUnknown_02024C6C
-_0801DC3C: .4byte gUnknown_02024BEC
-_0801DC40: .4byte gUnknown_02024D68
-_0801DC44: .4byte gUnknown_02024BF0
-_0801DC48:
- ldr r0, _0801DCA0 @ =gUnknown_02024D68
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- cmp r0, 0
- bne _0801DC5C
- str r5, [r1]
-_0801DC5C:
- ldr r2, _0801DCA4 @ =gUnknown_02024BF0
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r0, [r0, 0xA]
- str r0, [r2]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- strb r3, [r0, 0xA]
-_0801DC78:
- ldr r0, _0801DCA8 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- beq _0801DC8C
- b _0801DF26
-_0801DC8C:
- ldr r4, _0801DCAC @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- bl b_movescr_stack_push_cursor
- ldr r0, _0801DCB0 @ =gUnknown_081D99AB
- str r0, [r4]
- b _0801DF2E
- .align 2, 0
-_0801DCA0: .4byte gUnknown_02024D68
-_0801DCA4: .4byte gUnknown_02024BF0
-_0801DCA8: .4byte gUnknown_02024A60
-_0801DCAC: .4byte gUnknown_02024C10
-_0801DCB0: .4byte gUnknown_081D99AB
-_0801DCB4:
- ldr r0, _0801DCF4 @ =gUnknown_02024C6C
- ldr r2, [r0]
- ldr r1, _0801DCF8 @ =0xfffffeff
- ands r2, r1
- str r2, [r0]
- ldr r1, _0801DCFC @ =gUnknown_02024BEC
- ldr r5, [r1]
- mov r12, r0
- adds r7, r1, 0
- cmp r5, 0
- bge _0801DD08
- ldr r4, _0801DD00 @ =gBattleMons
- ldr r2, _0801DD04 @ =gUnknown_02024A60
- ldrb r0, [r2]
- movs r3, 0x58
- adds r1, r0, 0
- muls r1, r3
- adds r1, r4
- ldrh r0, [r1, 0x28]
- subs r0, r5
- strh r0, [r1, 0x28]
- ldrb r0, [r2]
- muls r0, r3
- adds r1, r0, r4
- ldrh r3, [r1, 0x2C]
- ldrh r0, [r1, 0x28]
- adds r5, r2, 0
- cmp r0, r3
- bhi _0801DCF0
- b _0801DEC6
-_0801DCF0:
- strh r3, [r1, 0x28]
- b _0801DEC6
- .align 2, 0
-_0801DCF4: .4byte gUnknown_02024C6C
-_0801DCF8: .4byte 0xfffffeff
-_0801DCFC: .4byte gUnknown_02024BEC
-_0801DD00: .4byte gBattleMons
-_0801DD04: .4byte gUnknown_02024A60
-_0801DD08:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _0801DD24
- movs r0, 0x21
- negs r0, r0
- ands r2, r0
- mov r0, r12
- str r2, [r0]
- ldr r5, _0801DD20 @ =gUnknown_02024A60
- b _0801DD6C
- .align 2, 0
-_0801DD20: .4byte gUnknown_02024A60
-_0801DD24:
- ldr r0, _0801DD4C @ =gUnknown_02024BF4
- ldr r2, _0801DD50 @ =gUnknown_02024A60
- ldrb r1, [r2]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- adds r0, r5
- str r0, [r1]
- ldr r0, _0801DD54 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- adds r5, r2, 0
- cmp r0, 0
- bne _0801DD60
- ldr r1, _0801DD58 @ =gUnknown_02024C74
- ldrb r0, [r5]
- adds r0, r1
- ldr r1, _0801DD5C @ =gUnknown_02024C07
- b _0801DD68
- .align 2, 0
-_0801DD4C: .4byte gUnknown_02024BF4
-_0801DD50: .4byte gUnknown_02024A60
-_0801DD54: .4byte gUnknown_02024C10
-_0801DD58: .4byte gUnknown_02024C74
-_0801DD5C: .4byte gUnknown_02024C07
-_0801DD60:
- ldr r1, _0801DD8C @ =gUnknown_02024C74
- ldrb r0, [r5]
- adds r0, r1
- ldr r1, _0801DD90 @ =gUnknown_02024C08
-_0801DD68:
- ldrb r1, [r1]
- strb r1, [r0]
-_0801DD6C:
- ldr r4, _0801DD94 @ =gBattleMons
- ldrb r0, [r5]
- movs r3, 0x58
- muls r0, r3
- adds r2, r0, r4
- ldrh r0, [r2, 0x28]
- ldr r1, [r7]
- cmp r0, r1
- ble _0801DD9C
- subs r0, r1
- strh r0, [r2, 0x28]
- ldr r0, _0801DD98 @ =gUnknown_02024BF0
- str r1, [r0]
- adds r7, r0, 0
- b _0801DDAC
- .align 2, 0
-_0801DD8C: .4byte gUnknown_02024C74
-_0801DD90: .4byte gUnknown_02024C08
-_0801DD94: .4byte gBattleMons
-_0801DD98: .4byte gUnknown_02024BF0
-_0801DD9C:
- ldr r2, _0801DE20 @ =gUnknown_02024BF0
- str r0, [r2]
- ldrb r0, [r5]
- muls r0, r3
- adds r0, r4
- movs r1, 0
- strh r1, [r0, 0x28]
- adds r7, r2, 0
-_0801DDAC:
- ldr r2, _0801DE24 @ =gUnknown_02024D68
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r2, 0x4
- adds r3, r0, r1
- ldr r0, [r3]
- adds r4, r2, 0
- cmp r0, 0
- bne _0801DDD4
- mov r1, r12
- ldr r0, [r1]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- cmp r0, 0
- bne _0801DDD4
- ldr r0, [r7]
- str r0, [r3]
-_0801DDD4:
- cmp r6, 0x8
- bhi _0801DE5C
- mov r1, r12
- ldr r0, [r1]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- cmp r0, 0
- bne _0801DE58
- ldr r0, _0801DE28 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xDC
- beq _0801DE58
- ldr r3, _0801DE2C @ =gUnknown_02024D28
- ldrb r0, [r5]
- lsls r0, 4
- adds r1, r3, 0x4
- adds r0, r1
- ldr r2, [r7]
- str r2, [r0]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x8
- adds r0, r1
- str r2, [r0]
- ldr r0, _0801DE30 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0801DE38
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801DE34 @ =gUnknown_02024C07
- b _0801DE40
- .align 2, 0
-_0801DE20: .4byte gUnknown_02024BF0
-_0801DE24: .4byte gUnknown_02024D68
-_0801DE28: .4byte gUnknown_02024BE6
-_0801DE2C: .4byte gUnknown_02024D28
-_0801DE30: .4byte gUnknown_02024C10
-_0801DE34: .4byte gUnknown_02024C07
-_0801DE38:
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801DE54 @ =gUnknown_02024C08
-_0801DE40:
- ldrb r1, [r2]
- strb r1, [r0, 0xC]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r2]
- strb r1, [r0, 0x10]
- b _0801DEC6
- .align 2, 0
-_0801DE54: .4byte gUnknown_02024C08
-_0801DE58:
- cmp r6, 0x8
- bls _0801DEC6
-_0801DE5C:
- mov r1, r12
- ldr r0, [r1]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- cmp r0, 0
- bne _0801DEC6
- ldr r3, _0801DEA0 @ =gUnknown_02024D28
- ldrb r0, [r5]
- lsls r0, 4
- adds r1, r3, 0
- adds r1, 0x8
- adds r0, r1
- ldr r2, [r7]
- str r2, [r0]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0xC
- adds r0, r1
- str r2, [r0]
- ldr r0, _0801DEA4 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0801DEAC
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801DEA8 @ =gUnknown_02024C07
- b _0801DEB4
- .align 2, 0
-_0801DEA0: .4byte gUnknown_02024D28
-_0801DEA4: .4byte gUnknown_02024C10
-_0801DEA8: .4byte gUnknown_02024C07
-_0801DEAC:
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801DEF4 @ =gUnknown_02024C08
-_0801DEB4:
- ldrb r1, [r2]
- strb r1, [r0, 0xD]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r2]
- strb r1, [r0, 0x11]
-_0801DEC6:
- mov r1, r12
- ldr r0, [r1]
- ldr r1, _0801DEF8 @ =0xffefffff
- ands r0, r1
- mov r1, r12
- str r0, [r1]
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _0801DEFC @ =gUnknown_02024AA8
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2A
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- b _0801DF26
- .align 2, 0
-_0801DEF4: .4byte gUnknown_02024C08
-_0801DEF8: .4byte 0xffefffff
-_0801DEFC: .4byte gUnknown_02024AA8
-_0801DF00:
- ldr r0, _0801DF38 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _0801DF3C @ =gUnknown_02024A60
- strb r0, [r1]
- ldr r2, _0801DF40 @ =gUnknown_02024D68
- ldrb r1, [r1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r1, r0, r2
- ldr r0, [r1]
- cmp r0, 0
- bne _0801DF26
- ldr r0, _0801DF44 @ =0x0000ffff
- str r0, [r1]
-_0801DF26:
- ldr r1, _0801DF38 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_0801DF2E:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801DF38: .4byte gUnknown_02024C10
-_0801DF3C: .4byte gUnknown_02024A60
-_0801DF40: .4byte gUnknown_02024D68
-_0801DF44: .4byte 0x0000ffff
- thumb_func_end atk0C_datahpupdate
-
- thumb_func_start atk0D_critmessage
-atk0D_critmessage: @ 801DF48
- push {lr}
- ldr r0, _0801DF84 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801DF7E
- ldr r0, _0801DF88 @ =gCritMultiplier
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0801DF76
- ldr r0, _0801DF8C @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801DF76
- ldr r0, _0801DF90 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0xD9
- bl b_std_message
- ldr r1, _0801DF94 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x7]
-_0801DF76:
- ldr r1, _0801DF98 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801DF7E:
- pop {r0}
- bx r0
- .align 2, 0
-_0801DF84: .4byte gUnknown_02024A64
-_0801DF88: .4byte gCritMultiplier
-_0801DF8C: .4byte gUnknown_02024C68
-_0801DF90: .4byte gUnknown_02024C07
-_0801DF94: .4byte gUnknown_02024D1E
-_0801DF98: .4byte gUnknown_02024C10
- thumb_func_end atk0D_critmessage
-
- thumb_func_start atk0E_missmessage
-atk0E_missmessage: @ 801DF9C
- push {r4,lr}
- ldr r0, _0801DFD4 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801E05C
- ldr r4, _0801DFD8 @ =gUnknown_02024A60
- ldr r0, _0801DFDC @ =gUnknown_02024C08
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _0801DFE0 @ =gUnknown_02024C68
- ldrb r2, [r1]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _0801E054
- movs r0, 0xFE
- ands r0, r2
- cmp r0, 0x10
- beq _0801E00E
- cmp r0, 0x10
- bgt _0801DFEA
- cmp r0, 0x4
- beq _0801DFFE
- cmp r0, 0x4
- bgt _0801DFE4
- cmp r0, 0x2
- beq _0801DFF8
- b _0801E00E
- .align 2, 0
-_0801DFD4: .4byte gUnknown_02024A64
-_0801DFD8: .4byte gUnknown_02024A60
-_0801DFDC: .4byte gUnknown_02024C08
-_0801DFE0: .4byte gUnknown_02024C68
-_0801DFE4:
- cmp r0, 0x8
- beq _0801E054
- b _0801E00E
-_0801DFEA:
- cmp r0, 0x40
- beq _0801E00E
- cmp r0, 0x40
- bgt _0801E00E
- cmp r0, 0x20
- beq _0801E054
- b _0801E00E
-_0801DFF8:
- movs r0, 0
- movs r1, 0xE
- b _0801E002
-_0801DFFE:
- movs r0, 0
- movs r1, 0xC
-_0801E002:
- bl dp01_build_cmdbuf_x2B_aa_0
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _0801E054
-_0801E00E:
- ldrb r1, [r1]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801E01E
- movs r0, 0
- movs r1, 0xE
- b _0801E02A
-_0801E01E:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801E03C
- movs r0, 0
- movs r1, 0xC
-_0801E02A:
- bl dp01_build_cmdbuf_x2B_aa_0
- ldr r0, _0801E038 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- b _0801E054
- .align 2, 0
-_0801E038: .4byte gUnknown_02024A60
-_0801E03C:
- movs r0, 0x28
- ands r0, r1
- cmp r0, 0
- bne _0801E054
- movs r0, 0
- movs r1, 0xD
- bl dp01_build_cmdbuf_x2B_aa_0
- ldr r0, _0801E064 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
-_0801E054:
- ldr r1, _0801E068 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801E05C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E064: .4byte gUnknown_02024A60
-_0801E068: .4byte gUnknown_02024C10
- thumb_func_end atk0E_missmessage
-
- thumb_func_start atk0F_resultmessage
-atk0F_resultmessage: @ 801E06C
- push {r4-r7,lr}
- movs r3, 0
- ldr r0, _0801E0A8 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E07A
- b _0801E20C
-_0801E07A:
- ldr r1, _0801E0AC @ =gUnknown_02024C68
- ldrb r2, [r1]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r2
- adds r6, r1, 0
- ldr r7, _0801E0B0 @ =gUnknown_02024D1E
- cmp r0, 0
- beq _0801E0B8
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _0801E09A
- ldrb r0, [r7, 0x6]
- cmp r0, 0x2
- bls _0801E0B8
-_0801E09A:
- ldr r1, _0801E0B4 @ =gUnknown_08401508
- ldrb r0, [r7, 0x6]
- lsls r0, 1
- adds r0, r1
- ldrh r3, [r0]
- strb r4, [r7, 0x7]
- b _0801E1F6
- .align 2, 0
-_0801E0A8: .4byte gUnknown_02024A64
-_0801E0AC: .4byte gUnknown_02024C68
-_0801E0B0: .4byte gUnknown_02024D1E
-_0801E0B4: .4byte gUnknown_08401508
-_0801E0B8:
- movs r0, 0x1
- strb r0, [r7, 0x7]
- ldrb r5, [r6]
- movs r0, 0xFE
- ands r0, r5
- cmp r0, 0x10
- beq _0801E0FC
- cmp r0, 0x10
- bgt _0801E0DE
- cmp r0, 0x4
- beq _0801E0F8
- cmp r0, 0x4
- bgt _0801E0D8
- cmp r0, 0x2
- beq _0801E0F4
- b _0801E144
-_0801E0D8:
- cmp r0, 0x8
- beq _0801E150
- b _0801E144
-_0801E0DE:
- cmp r0, 0x40
- beq _0801E100
- cmp r0, 0x40
- bgt _0801E0EE
- cmp r0, 0x20
- bne _0801E0EC
- b _0801E1F0
-_0801E0EC:
- b _0801E144
-_0801E0EE:
- cmp r0, 0x80
- beq _0801E104
- b _0801E144
-_0801E0F4:
- movs r3, 0xDE
- b _0801E1FA
-_0801E0F8:
- movs r3, 0xDD
- b _0801E1FA
-_0801E0FC:
- movs r3, 0xDA
- b _0801E1FA
-_0801E100:
- movs r3, 0x99
- b _0801E1FA
-_0801E104:
- ldr r4, _0801E12C @ =gUnknown_02024C04
- ldr r2, _0801E130 @ =gBattleMons
- ldr r3, _0801E134 @ =gUnknown_02024C08
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strh r0, [r4]
- ldr r1, _0801E138 @ =gUnknown_02024C0B
- ldrb r0, [r3]
- strb r0, [r1]
- movs r0, 0x3F
- ands r0, r5
- strb r0, [r6]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801E13C @ =gUnknown_02024C10
- ldr r0, _0801E140 @ =gUnknown_081D9AC6
- b _0801E20A
- .align 2, 0
-_0801E12C: .4byte gUnknown_02024C04
-_0801E130: .4byte gBattleMons
-_0801E134: .4byte gUnknown_02024C08
-_0801E138: .4byte gUnknown_02024C0B
-_0801E13C: .4byte gUnknown_02024C10
-_0801E140: .4byte gUnknown_081D9AC6
-_0801E144:
- adds r2, r6, 0
- ldrb r5, [r2]
- movs r0, 0x8
- ands r0, r5
- cmp r0, 0
- beq _0801E154
-_0801E150:
- movs r3, 0x1B
- b _0801E1FA
-_0801E154:
- movs r0, 0x10
- ands r0, r5
- cmp r0, 0
- beq _0801E17C
- movs r0, 0xEF
- ands r0, r5
- movs r1, 0xFD
- ands r0, r1
- movs r1, 0xFB
- ands r0, r1
- strb r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801E174 @ =gUnknown_02024C10
- ldr r0, _0801E178 @ =gUnknown_081D94A9
- b _0801E20A
- .align 2, 0
-_0801E174: .4byte gUnknown_02024C10
-_0801E178: .4byte gUnknown_081D94A9
-_0801E17C:
- movs r0, 0x40
- ands r0, r5
- cmp r0, 0
- beq _0801E19C
- movs r0, 0x3F
- ands r0, r5
- strb r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801E194 @ =gUnknown_02024C10
- ldr r0, _0801E198 @ =gUnknown_081D94A2
- b _0801E20A
- .align 2, 0
-_0801E194: .4byte gUnknown_02024C10
-_0801E198: .4byte gUnknown_081D94A2
-_0801E19C:
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- beq _0801E1E4
- ldr r4, _0801E1CC @ =gUnknown_02024C04
- ldr r2, _0801E1D0 @ =gBattleMons
- ldr r3, _0801E1D4 @ =gUnknown_02024C08
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strh r0, [r4]
- ldr r1, _0801E1D8 @ =gUnknown_02024C0B
- ldrb r0, [r3]
- strb r0, [r1]
- movs r0, 0x3F
- ands r0, r5
- strb r0, [r6]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801E1DC @ =gUnknown_02024C10
- ldr r0, _0801E1E0 @ =gUnknown_081D9AC6
- b _0801E20A
- .align 2, 0
-_0801E1CC: .4byte gUnknown_02024C04
-_0801E1D0: .4byte gBattleMons
-_0801E1D4: .4byte gUnknown_02024C08
-_0801E1D8: .4byte gUnknown_02024C0B
-_0801E1DC: .4byte gUnknown_02024C10
-_0801E1E0: .4byte gUnknown_081D9AC6
-_0801E1E4:
- movs r0, 0x20
- ands r0, r5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0801E1F4
-_0801E1F0:
- movs r3, 0xE5
- b _0801E1FA
-_0801E1F4:
- strb r0, [r7, 0x7]
-_0801E1F6:
- cmp r3, 0
- beq _0801E204
-_0801E1FA:
- adds r0, r3, 0
- ldr r1, _0801E214 @ =gUnknown_02024C07
- ldrb r1, [r1]
- bl b_std_message
-_0801E204:
- ldr r1, _0801E218 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
-_0801E20A:
- str r0, [r1]
-_0801E20C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E214: .4byte gUnknown_02024C07
-_0801E218: .4byte gUnknown_02024C10
- thumb_func_end atk0F_resultmessage
-
- thumb_func_start atk10_printstring
-atk10_printstring: @ 801E21C
- push {r4,lr}
- ldr r0, _0801E24C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801E246
- ldr r4, _0801E250 @ =gUnknown_02024C10
- ldr r1, [r4]
- ldrb r0, [r1, 0x1]
- ldrb r1, [r1, 0x2]
- lsls r1, 8
- orrs r0, r1
- ldr r1, _0801E254 @ =gUnknown_02024C07
- ldrb r1, [r1]
- bl b_std_message
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- ldr r1, _0801E258 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x7]
-_0801E246:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E24C: .4byte gUnknown_02024A64
-_0801E250: .4byte gUnknown_02024C10
-_0801E254: .4byte gUnknown_02024C07
-_0801E258: .4byte gUnknown_02024D1E
- thumb_func_end atk10_printstring
-
- thumb_func_start atk11_printstring2
-atk11_printstring2: @ 801E25C
- push {r4,r5,lr}
- ldr r5, _0801E290 @ =gUnknown_02024A60
- ldr r0, _0801E294 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r4, _0801E298 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- movs r0, 0
- bl dp01_build_cmdbuf_x11_TODO
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- ldr r1, _0801E29C @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x7]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E290: .4byte gUnknown_02024A60
-_0801E294: .4byte gUnknown_02024C07
-_0801E298: .4byte gUnknown_02024C10
-_0801E29C: .4byte gUnknown_02024D1E
- thumb_func_end atk11_printstring2
-
- thumb_func_start atk12_waitmessage
-atk12_waitmessage: @ 801E2A0
- push {r4-r6,lr}
- ldr r0, _0801E2BC @ =gUnknown_02024A64
- ldr r4, [r0]
- cmp r4, 0
- bne _0801E2EE
- ldr r6, _0801E2C0 @ =gUnknown_02024D1E
- ldrb r0, [r6, 0x7]
- cmp r0, 0
- bne _0801E2C8
- ldr r1, _0801E2C4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x3
- str r0, [r1]
- b _0801E2EE
- .align 2, 0
-_0801E2BC: .4byte gUnknown_02024A64
-_0801E2C0: .4byte gUnknown_02024D1E
-_0801E2C4: .4byte gUnknown_02024C10
-_0801E2C8:
- ldr r5, _0801E2F4 @ =gUnknown_02024C10
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r3, _0801E2F8 @ =gUnknown_02024D18
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r1
- bcc _0801E2EE
- movs r1, 0
- strh r4, [r3]
- adds r0, r2, 0x3
- str r0, [r5]
- strb r1, [r6, 0x7]
-_0801E2EE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E2F4: .4byte gUnknown_02024C10
-_0801E2F8: .4byte gUnknown_02024D18
- thumb_func_end atk12_waitmessage
-
- thumb_func_start atk13_printfromtable
-atk13_printfromtable: @ 801E2FC
- push {r4,r5,lr}
- ldr r0, _0801E340 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801E33A
- ldr r4, _0801E344 @ =gUnknown_02024C10
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r5, _0801E348 @ =gUnknown_02024D1E
- ldrb r0, [r5, 0x5]
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r1]
- ldr r1, _0801E34C @ =gUnknown_02024C07
- ldrb r1, [r1]
- bl b_std_message
- ldr r0, [r4]
- adds r0, 0x5
- str r0, [r4]
- movs r0, 0x1
- strb r0, [r5, 0x7]
-_0801E33A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E340: .4byte gUnknown_02024A64
-_0801E344: .4byte gUnknown_02024C10
-_0801E348: .4byte gUnknown_02024D1E
-_0801E34C: .4byte gUnknown_02024C07
- thumb_func_end atk13_printfromtable
-
- thumb_func_start atk14_printfromtable2
-atk14_printfromtable2: @ 801E350
- push {r4-r6,lr}
- ldr r0, _0801E3A0 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801E39A
- ldr r5, _0801E3A4 @ =gUnknown_02024C10
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r6, _0801E3A8 @ =gUnknown_02024D1E
- ldrb r0, [r6, 0x5]
- lsls r0, 1
- adds r1, r0
- ldr r4, _0801E3AC @ =gUnknown_02024A60
- ldr r0, _0801E3B0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r4]
- ldrh r1, [r1]
- movs r0, 0
- bl dp01_build_cmdbuf_x11_TODO
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x5
- str r0, [r5]
- movs r0, 0x1
- strb r0, [r6, 0x7]
-_0801E39A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E3A0: .4byte gUnknown_02024A64
-_0801E3A4: .4byte gUnknown_02024C10
-_0801E3A8: .4byte gUnknown_02024D1E
-_0801E3AC: .4byte gUnknown_02024A60
-_0801E3B0: .4byte gUnknown_02024C07
- thumb_func_end atk14_printfromtable2
-
- thumb_func_start sub_801E3B4
-sub_801E3B4: @ 801E3B4
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r0, _0801E3E4 @ =gUnknown_02024A68
- ldrb r3, [r0]
- cmp r1, r3
- bge _0801E3DA
- ldr r4, _0801E3E8 @ =gUnknown_02024A7A
- ldrb r0, [r4]
- cmp r0, r2
- beq _0801E3DA
-_0801E3CC:
- adds r1, 0x1
- cmp r1, r3
- bge _0801E3DA
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r2
- bne _0801E3CC
-_0801E3DA:
- lsls r0, r1, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0801E3E4: .4byte gUnknown_02024A68
-_0801E3E8: .4byte gUnknown_02024A7A
- thumb_func_end sub_801E3B4
-
- thumb_func_start sub_801E3EC
-sub_801E3EC: @ 801E3EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- movs r0, 0
- mov r10, r0
- movs r6, 0
- movs r1, 0x1
- str r1, [sp, 0x4]
- ldr r1, _0801E430 @ =gUnknown_02024D1E
- ldrb r3, [r1, 0x3]
- movs r0, 0x40
- ands r0, r3
- adds r7, r1, 0
- cmp r0, 0
- beq _0801E444
- ldr r2, _0801E434 @ =gUnknown_02024C0A
- ldr r0, _0801E438 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0xBF
- ands r0, r3
- strb r0, [r7, 0x3]
- movs r6, 0x40
- ldr r0, _0801E43C @ =0x02000000
- ldr r1, _0801E440 @ =gUnknown_02024C08
- b _0801E450
- .align 2, 0
-_0801E430: .4byte gUnknown_02024D1E
-_0801E434: .4byte gUnknown_02024C0A
-_0801E438: .4byte gUnknown_02024C07
-_0801E43C: .4byte 0x02000000
-_0801E440: .4byte gUnknown_02024C08
-_0801E444:
- ldr r2, _0801E538 @ =gUnknown_02024C0A
- ldr r0, _0801E53C @ =gUnknown_02024C08
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _0801E540 @ =0x02000000
- ldr r1, _0801E544 @ =gUnknown_02024C07
-_0801E450:
- ldrb r1, [r1]
- ldr r3, _0801E548 @ =0x00016003
- adds r0, r3
- strb r1, [r0]
- mov r8, r2
- ldr r2, _0801E54C @ =gBattleMons
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x13
- bne _0801E48A
- ldr r0, _0801E550 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- bne _0801E48A
- cmp r4, 0
- bne _0801E48A
- ldrb r0, [r7, 0x3]
- cmp r0, 0x9
- bhi _0801E48A
- bl _0801F5DC
-_0801E48A:
- mov r1, r8
- ldrb r0, [r1]
- bl battle_get_per_side_status
- ldr r2, _0801E554 @ =gUnknown_02024C7A
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r2
- ldrh r1, [r1]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801E4C4
- ldr r0, _0801E550 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- bne _0801E4C4
- cmp r4, 0
- bne _0801E4C4
- ldr r0, _0801E558 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- cmp r0, 0x7
- bhi _0801E4C4
- bl _0801F5DC
-_0801E4C4:
- ldr r3, _0801E54C @ =gBattleMons
- ldr r2, _0801E538 @ =gUnknown_02024C0A
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- mov r8, r2
- mov r9, r3
- cmp r0, 0
- bne _0801E4EA
- ldr r0, _0801E558 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- cmp r0, 0xB
- beq _0801E4EA
- cmp r0, 0x1F
- beq _0801E4EA
- bl _0801F5DC
-_0801E4EA:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- mov r1, r9
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0801E50C
- cmp r6, 0x40
- beq _0801E50C
- bl _0801F5DC
-_0801E50C:
- ldr r0, _0801E558 @ =gUnknown_02024D1E
- ldrb r1, [r0, 0x3]
- adds r7, r0, 0
- cmp r1, 0x6
- bls _0801E518
- b _0801EB4A
-_0801E518:
- ldr r1, _0801E55C @ =gUnknown_081FAB5C
- ldrb r0, [r7, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x10
- bne _0801E528
- b _0801E714
-_0801E528:
- cmp r0, 0x10
- bhi _0801E560
- cmp r0, 0x7
- beq _0801E57A
- cmp r0, 0x8
- bne _0801E536
- b _0801E630
-_0801E536:
- b _0801EA14
- .align 2, 0
-_0801E538: .4byte gUnknown_02024C0A
-_0801E53C: .4byte gUnknown_02024C08
-_0801E540: .4byte 0x02000000
-_0801E544: .4byte gUnknown_02024C07
-_0801E548: .4byte 0x00016003
-_0801E54C: .4byte gBattleMons
-_0801E550: .4byte gUnknown_02024C6C
-_0801E554: .4byte gUnknown_02024C7A
-_0801E558: .4byte gUnknown_02024D1E
-_0801E55C: .4byte gUnknown_081FAB5C
-_0801E560:
- cmp r0, 0x40
- bne _0801E566
- b _0801E888
-_0801E566:
- cmp r0, 0x40
- bhi _0801E572
- cmp r0, 0x20
- bne _0801E570
- b _0801E7EA
-_0801E570:
- b _0801EA14
-_0801E572:
- cmp r0, 0x80
- bne _0801E578
- b _0801E8E4
-_0801E578:
- b _0801EA14
-_0801E57A:
- mov r3, r8
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- add r0, r9
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2B
- beq _0801E5DC
- ldr r0, _0801E5D4 @ =gUnknown_02024A60
- movs r1, 0
- strb r1, [r0]
- ldr r1, _0801E5D8 @ =gUnknown_02024A68
- ldrb r3, [r1]
- adds r7, r0, 0
- mov r12, r1
- cmp r3, 0
- beq _0801E5E8
- mov r4, r9
- ldr r0, [r4, 0x50]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- bne _0801E5E8
- adds r1, r7, 0
- mov r6, r9
- adds r6, 0x50
- movs r5, 0x58
- movs r4, 0x70
-_0801E5B4:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r3
- bcs _0801E5E8
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r6
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _0801E5B4
- b _0801E5E8
- .align 2, 0
-_0801E5D4: .4byte gUnknown_02024A60
-_0801E5D8: .4byte gUnknown_02024A68
-_0801E5DC:
- ldr r0, _0801E628 @ =gUnknown_02024A60
- ldr r2, _0801E62C @ =gUnknown_02024A68
- ldrb r1, [r2]
- strb r1, [r0]
- adds r7, r0, 0
- mov r12, r2
-_0801E5E8:
- mov r0, r8
- ldrb r2, [r0]
- movs r0, 0x58
- adds r1, r2, 0
- muls r1, r0
- mov r0, r9
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E600
- b _0801EA14
-_0801E600:
- ldrb r0, [r7]
- mov r3, r12
- ldrb r3, [r3]
- cmp r0, r3
- beq _0801E60C
- b _0801EA14
-_0801E60C:
- mov r4, r9
- adds r0, r1, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x48
- bne _0801E61A
- b _0801EA14
-_0801E61A:
- cmp r0, 0xF
- bne _0801E620
- b _0801EA14
-_0801E620:
- adds r0, r2, 0
- bl b_cancel_multi_turn_move_maybe
- b _0801EA04
- .align 2, 0
-_0801E628: .4byte gUnknown_02024A60
-_0801E62C: .4byte gUnknown_02024A68
-_0801E630:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- add r0, r9
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x11
- bne _0801E688
- cmp r4, 0x1
- beq _0801E64A
- cmp r5, 0x80
- bne _0801E688
-_0801E64A:
- ldr r0, _0801E678 @ =byte_2024C06
- strb r1, [r0]
- mov r3, r8
- ldrb r0, [r3]
- movs r1, 0x11
- bl sub_81074C4
- ldr r4, _0801E67C @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E680 @ =BattleScript_1D98BD
-_0801E664:
- str r0, [r4]
- ldr r2, _0801E684 @ =gUnknown_02024C6C
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E676
- b _0801E928
-_0801E676:
- b _0801E94C
- .align 2, 0
-_0801E678: .4byte byte_2024C06
-_0801E67C: .4byte gUnknown_02024C10
-_0801E680: .4byte BattleScript_1D98BD
-_0801E684: .4byte gUnknown_02024C6C
-_0801E688:
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x58
- muls r0, r1
- add r0, r9
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r1, 0x3
- beq _0801E6AC
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0801E6AC
- cmp r1, 0x8
- beq _0801E6AC
- cmp r0, 0x8
- bne _0801E6C6
-_0801E6AC:
- ldr r0, _0801E710 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E6C6
- cmp r4, 0x1
- bne _0801E6C0
- b _0801E98C
-_0801E6C0:
- cmp r5, 0x80
- bne _0801E6C6
- b _0801E98C
-_0801E6C6:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r1, r0
- mov r4, r9
- adds r3, r1, r4
- adds r0, r3, 0
- adds r0, 0x21
- ldrb r4, [r0]
- cmp r4, 0x3
- bne _0801E6DE
- b _0801EA14
-_0801E6DE:
- adds r0, 0x1
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _0801E6E8
- b _0801EA14
-_0801E6E8:
- cmp r4, 0x8
- bne _0801E6EE
- b _0801EA14
-_0801E6EE:
- cmp r0, 0x8
- bne _0801E6F4
- b _0801EA14
-_0801E6F4:
- mov r0, r9
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E702
- b _0801EA14
-_0801E702:
- adds r0, r3, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x11
- bne _0801E70E
- b _0801EA14
-_0801E70E:
- b _0801EA04
- .align 2, 0
-_0801E710: .4byte gUnknown_02024C6C
-_0801E714:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- add r0, r9
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x29
- bne _0801E758
- cmp r4, 0x1
- beq _0801E72E
- cmp r5, 0x80
- bne _0801E758
-_0801E72E:
- ldr r0, _0801E74C @ =byte_2024C06
- strb r1, [r0]
- mov r3, r8
- ldrb r0, [r3]
- movs r1, 0x29
- bl sub_81074C4
- ldr r4, _0801E750 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E754 @ =BattleScript_1D98A5
- b _0801E664
- .align 2, 0
-_0801E74C: .4byte byte_2024C06
-_0801E750: .4byte gUnknown_02024C10
-_0801E754: .4byte BattleScript_1D98A5
-_0801E758:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- mov r2, r9
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xA
- beq _0801E778
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xA
- bne _0801E7A8
-_0801E778:
- ldr r0, _0801E79C @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E7A8
- cmp r4, 0x1
- beq _0801E78E
- cmp r5, 0x80
- bne _0801E7A8
-_0801E78E:
- ldr r4, _0801E7A0 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E7A4 @ =BattleScript_1D98A5
- b _0801E998
- .align 2, 0
-_0801E79C: .4byte gUnknown_02024C6C
-_0801E7A0: .4byte gUnknown_02024C10
-_0801E7A4: .4byte BattleScript_1D98A5
-_0801E7A8:
- mov r3, r8
- ldrb r0, [r3]
- movs r1, 0x58
- adds r2, r0, 0
- muls r2, r1
- mov r4, r9
- adds r1, r2, r4
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xA
- bne _0801E7C2
- b _0801EA14
-_0801E7C2:
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xA
- bne _0801E7CE
- b _0801EA14
-_0801E7CE:
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x29
- bne _0801E7DA
- b _0801EA14
-_0801E7DA:
- mov r0, r9
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E7E8
- b _0801EA14
-_0801E7E8:
- b _0801EA04
-_0801E7EA:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0801E826
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0801E826
- ldr r0, _0801E87C @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0801E826
- movs r1, 0
- str r1, [sp, 0x4]
-_0801E826:
- ldr r4, _0801E880 @ =gBattleMons
- ldr r0, _0801E884 @ =gUnknown_02024C0A
- ldrb r3, [r0]
- movs r0, 0x58
- adds r2, r3, 0
- muls r2, r0
- adds r1, r2, r4
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xF
- bne _0801E840
- b _0801EA14
-_0801E840:
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xF
- bne _0801E84C
- b _0801EA14
-_0801E84C:
- adds r0, r4, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E85A
- b _0801EA14
-_0801E85A:
- ldr r2, [sp, 0x4]
- cmp r2, 0
- bne _0801E862
- b _0801EA14
-_0801E862:
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x28
- bne _0801E86E
- b _0801EA14
-_0801E86E:
- adds r0, r3, 0
- bl b_cancel_multi_turn_move_maybe
- movs r3, 0x1
- mov r10, r3
- b _0801EA14
- .align 2, 0
-_0801E87C: .4byte word_2024DB8
-_0801E880: .4byte gBattleMons
-_0801E884: .4byte gUnknown_02024C0A
-_0801E888:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- mov r2, r9
- adds r0, r1, r2
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0x7
- bne _0801E8D0
- cmp r4, 0x1
- beq _0801E8A6
- cmp r5, 0x80
- beq _0801E8A6
- b _0801EA14
-_0801E8A6:
- ldr r0, _0801E8C4 @ =byte_2024C06
- strb r2, [r0]
- mov r3, r8
- ldrb r0, [r3]
- movs r1, 0x7
- bl sub_81074C4
- ldr r4, _0801E8C8 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E8CC @ =BattleScript_1D98B1
- b _0801E664
- .align 2, 0
-_0801E8C4: .4byte byte_2024C06
-_0801E8C8: .4byte gUnknown_02024C10
-_0801E8CC: .4byte BattleScript_1D98B1
-_0801E8D0:
- mov r0, r9
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E8DE
- b _0801EA14
-_0801E8DE:
- movs r4, 0x1
- mov r10, r4
- b _0801EA14
-_0801E8E4:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r9
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x11
- bne _0801E952
- cmp r4, 0x1
- beq _0801E8FE
- cmp r5, 0x80
- bne _0801E952
-_0801E8FE:
- ldr r0, _0801E938 @ =byte_2024C06
- strb r1, [r0]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x11
- bl sub_81074C4
- ldr r4, _0801E93C @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E940 @ =BattleScript_1D98BD
- str r0, [r4]
- ldr r2, _0801E944 @ =gUnknown_02024C6C
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E94C
-_0801E928:
- movs r0, 0x1
- strb r0, [r7, 0x5]
- ldr r0, _0801E948 @ =0xffffdfff
- ands r1, r0
- str r1, [r2]
- bl _0801F5FA
- .align 2, 0
-_0801E938: .4byte byte_2024C06
-_0801E93C: .4byte gUnknown_02024C10
-_0801E940: .4byte BattleScript_1D98BD
-_0801E944: .4byte gUnknown_02024C6C
-_0801E948: .4byte 0xffffdfff
-_0801E94C:
- strb r0, [r7, 0x5]
- bl _0801F5FA
-_0801E952:
- mov r2, r8
- ldrb r0, [r2]
- movs r1, 0x58
- muls r0, r1
- add r0, r9
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r1, 0x3
- beq _0801E976
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0801E976
- cmp r1, 0x8
- beq _0801E976
- cmp r0, 0x8
- bne _0801E9B4
-_0801E976:
- ldr r0, _0801E9A4 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E9B4
- cmp r4, 0x1
- beq _0801E98C
- cmp r5, 0x80
- bne _0801E9B4
-_0801E98C:
- ldr r4, _0801E9A8 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E9AC @ =BattleScript_1D98BD
-_0801E998:
- str r0, [r4]
- ldr r1, _0801E9B0 @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- bl _0801F5FA
- .align 2, 0
-_0801E9A4: .4byte gUnknown_02024C6C
-_0801E9A8: .4byte gUnknown_02024C10
-_0801E9AC: .4byte BattleScript_1D98BD
-_0801E9B0: .4byte gUnknown_02024D1E
-_0801E9B4:
- mov r3, r8
- ldrb r0, [r3]
- movs r6, 0x58
- muls r0, r6
- mov r2, r9
- adds r2, 0x4C
- adds r5, r0, r2
- ldr r4, [r5]
- cmp r4, 0
- bne _0801EA14
- mov r3, r9
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r3, [r0]
- cmp r3, 0x3
- beq _0801EA0A
- adds r0, 0x1
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0801EA0A
- cmp r3, 0x8
- beq _0801EA0A
- cmp r0, 0x8
- beq _0801EA0A
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x11
- beq _0801EA14
- mov r4, r8
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x9
- negs r2, r2
- ands r0, r2
- str r0, [r1]
-_0801EA04:
- movs r0, 0x1
- mov r10, r0
- b _0801EA14
-_0801EA0A:
- ldr r0, _0801EA58 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
-_0801EA14:
- mov r1, r10
- cmp r1, 0x1
- beq _0801EA1C
- b _0801EB3C
-_0801EA1C:
- ldr r0, _0801EA5C @ =gUnknown_02024C10
- ldr r0, [r0]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EA60 @ =gUnknown_081FAB5C
- ldr r0, _0801EA64 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r3, [r0]
- cmp r3, 0x7
- bne _0801EA70
- bl Random
- ldr r2, _0801EA68 @ =gBattleMons
- ldr r1, _0801EA6C @ =gUnknown_02024C0A
- ldrb r3, [r1]
- movs r1, 0x58
- muls r3, r1
- adds r2, 0x4C
- adds r3, r2
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x2
- ldr r0, [r3]
- orrs r0, r1
- str r0, [r3]
- b _0801EA84
- .align 2, 0
-_0801EA58: .4byte gUnknown_02024C68
-_0801EA5C: .4byte gUnknown_02024C10
-_0801EA60: .4byte gUnknown_081FAB5C
-_0801EA64: .4byte gUnknown_02024D1E
-_0801EA68: .4byte gBattleMons
-_0801EA6C: .4byte gUnknown_02024C0A
-_0801EA70:
- ldr r2, _0801EAD4 @ =gBattleMons
- ldr r0, _0801EAD8 @ =gUnknown_02024C0A
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r2, 0x4C
- adds r1, r2
- ldr r0, [r1]
- orrs r0, r3
- str r0, [r1]
-_0801EA84:
- ldr r2, _0801EADC @ =gUnknown_02024C10
- ldr r1, _0801EAE0 @ =gUnknown_081FAC4C
- ldr r5, _0801EAE4 @ =gUnknown_02024D1E
- ldrb r0, [r5, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- ldr r4, _0801EAE8 @ =gUnknown_02024A60
- ldr r1, _0801EAD8 @ =gUnknown_02024C0A
- ldrb r0, [r1]
- strb r0, [r4]
- ldrb r1, [r1]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _0801EAEC @ =gUnknown_02024ACC
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r2, _0801EAF0 @ =gUnknown_02024C6C
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _0801EAF8
- movs r0, 0x1
- strb r0, [r5, 0x5]
- ldr r0, _0801EAF4 @ =0xffffdfff
- ands r1, r0
- str r1, [r2]
- b _0801EAFA
- .align 2, 0
-_0801EAD4: .4byte gBattleMons
-_0801EAD8: .4byte gUnknown_02024C0A
-_0801EADC: .4byte gUnknown_02024C10
-_0801EAE0: .4byte gUnknown_081FAC4C
-_0801EAE4: .4byte gUnknown_02024D1E
-_0801EAE8: .4byte gUnknown_02024A60
-_0801EAEC: .4byte gUnknown_02024ACC
-_0801EAF0: .4byte gUnknown_02024C6C
-_0801EAF4: .4byte 0xffffdfff
-_0801EAF8:
- strb r0, [r5, 0x5]
-_0801EAFA:
- ldr r0, _0801EB2C @ =gUnknown_02024D1E
- ldrb r2, [r0, 0x3]
- adds r7, r0, 0
- cmp r2, 0x2
- beq _0801EB14
- cmp r2, 0x6
- beq _0801EB14
- cmp r2, 0x5
- beq _0801EB14
- cmp r2, 0x3
- beq _0801EB14
- bl _0801F5FA
-_0801EB14:
- ldr r0, _0801EB30 @ =0x02000000
- ldrb r1, [r7, 0x3]
- ldr r2, _0801EB34 @ =0x000160ca
- adds r0, r2
- strb r1, [r0]
- ldr r2, _0801EB38 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 7
- bl _0801F4F2
- .align 2, 0
-_0801EB2C: .4byte gUnknown_02024D1E
-_0801EB30: .4byte 0x02000000
-_0801EB34: .4byte 0x000160ca
-_0801EB38: .4byte gUnknown_02024C6C
-_0801EB3C:
- mov r3, r10
- cmp r3, 0
- beq _0801EB46
- bl _0801F5FA
-_0801EB46:
- bl _0801F5DC
-_0801EB4A:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- mov r0, r9
- adds r0, 0x50
- adds r1, r0
- ldr r2, _0801EB84 @ =gUnknown_081FAB5C
- ldrb r3, [r7, 0x3]
- lsls r0, r3, 2
- adds r0, r2
- ldr r1, [r1]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801EB6E
- bl _0801F5DC
-_0801EB6E:
- subs r0, r3, 0x7
- cmp r0, 0x34
- bls _0801EB78
- bl _0801F5FA
-_0801EB78:
- lsls r0, 2
- ldr r1, _0801EB88 @ =_0801EB8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801EB84: .4byte gUnknown_081FAB5C
-_0801EB88: .4byte _0801EB8C
- .align 2, 0
-_0801EB8C:
- .4byte _0801EC60
- .4byte _0801ECD4
- .4byte _0801EE4C
- .4byte _0801ED60
- .4byte _0801EDDC
- .4byte _0801EE84
- .4byte _0801EECC
- .4byte _0801EFA8
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F13C
- .4byte _0801F184
- .4byte _0801F1A4
- .4byte _0801F364
- .4byte _0801F3A0
- .4byte _0801F3BC
- .4byte _0801F3D4
- .4byte _0801F3EC
- .4byte _0801F44C
- .4byte _0801F464
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F4A8
- .4byte _0801F500
- .4byte _0801F5FA
- .4byte _0801F5FA
- .4byte _0801F5FA
- .4byte _0801F5FA
- .4byte _0801F5EC
-_0801EC60:
- mov r1, r8
- ldrb r0, [r1]
- movs r5, 0x58
- adds r1, r0, 0
- muls r1, r5
- mov r2, r9
- adds r0, r1, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _0801EC7A
- bl _0801F5DC
-_0801EC7A:
- mov r4, r9
- adds r4, 0x50
- adds r0, r1, r4
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0801EC8E
- bl _0801F5DC
-_0801EC8E:
- bl Random
- mov r3, r8
- ldrb r1, [r3]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- lsrs r1, 16
- adds r1, 0x2
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r4, _0801ECC8 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801ECCC @ =gUnknown_081FAC4C
- ldr r0, _0801ECD0 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _0801F5F8
- .align 2, 0
-_0801ECC8: .4byte gUnknown_02024C10
-_0801ECCC: .4byte gUnknown_081FAC4C
-_0801ECD0: .4byte gUnknown_02024D1E
-_0801ECD4:
- mov r0, r8
- ldrb r2, [r0]
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- add r0, r9
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x27
- bne _0801ED18
- cmp r4, 0x1
- beq _0801ECF4
- cmp r5, 0x80
- beq _0801ECF4
- bl _0801F5DC
-_0801ECF4:
- ldr r0, _0801ED0C @ =byte_2024C06
- strb r1, [r0]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x27
- bl sub_81074C4
- ldr r1, _0801ED10 @ =gUnknown_02024C10
- ldr r0, _0801ED14 @ =gUnknown_081D98D7
- str r0, [r1]
- bl _0801F5FA
- .align 2, 0
-_0801ED0C: .4byte byte_2024C06
-_0801ED10: .4byte gUnknown_02024C10
-_0801ED14: .4byte gUnknown_081D98D7
-_0801ED18:
- adds r0, r2, 0
- bl sub_801E3B4
- ldr r1, _0801ED54 @ =gUnknown_02024A7E
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bhi _0801ED2E
- bl _0801F5DC
-_0801ED2E:
- mov r2, r8
- ldrb r0, [r2]
- adds r2, r0, 0
- muls r2, r6
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r1, _0801ED58 @ =gUnknown_081FAB5C
- ldr r0, _0801ED5C @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- orrs r1, r0
- str r1, [r2]
- bl _0801F5DC
- .align 2, 0
-_0801ED54: .4byte gUnknown_02024A7E
-_0801ED58: .4byte gUnknown_081FAB5C
-_0801ED5C: .4byte gUnknown_02024D1E
-_0801ED60:
- mov r3, r8
- ldrb r0, [r3]
- movs r5, 0x58
- muls r0, r5
- mov r4, r9
- adds r4, 0x50
- adds r2, r0, r4
- ldr r1, [r2]
- movs r0, 0x70
- ands r0, r1
- cmp r0, 0
- beq _0801ED7C
- bl _0801F5DC
-_0801ED7C:
- movs r0, 0x80
- lsls r0, 5
- orrs r1, r0
- str r1, [r2]
- ldr r1, _0801EDC8 @ =gUnknown_02024C54
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _0801EDCC @ =gUnknown_02024BE6
- ldrh r1, [r1]
- strh r1, [r0]
- bl Random
- mov r2, r8
- ldrb r1, [r2]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x2
- lsls r1, 4
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r4, _0801EDD0 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EDD4 @ =gUnknown_081FAC4C
- ldr r0, _0801EDD8 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _0801F5F8
- .align 2, 0
-_0801EDC8: .4byte gUnknown_02024C54
-_0801EDCC: .4byte gUnknown_02024BE6
-_0801EDD0: .4byte gUnknown_02024C10
-_0801EDD4: .4byte gUnknown_081FAC4C
-_0801EDD8: .4byte gUnknown_02024D1E
-_0801EDDC:
- ldr r5, _0801EE30 @ =gUnknown_02024C07
- ldrb r0, [r5]
- bl battle_get_per_side_status
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _0801EE14
- ldr r4, _0801EE34 @ =gUnknown_02024D1A
- ldrh r3, [r4]
- ldr r2, _0801EE38 @ =gBattleMons
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, r3, r0
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r3, r0
- bls _0801EE14
- ldr r3, _0801EE3C @ =0x0000ffff
- adds r0, r3, 0
- strh r0, [r4]
-_0801EE14:
- ldr r4, _0801EE40 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EE44 @ =gUnknown_081FAC4C
- ldr r0, _0801EE48 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _0801F5F8
- .align 2, 0
-_0801EE30: .4byte gUnknown_02024C07
-_0801EE34: .4byte gUnknown_02024D1A
-_0801EE38: .4byte gBattleMons
-_0801EE3C: .4byte 0x0000ffff
-_0801EE40: .4byte gUnknown_02024C10
-_0801EE44: .4byte gUnknown_081FAC4C
-_0801EE48: .4byte gUnknown_02024D1E
-_0801EE4C:
- mov r4, r8
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- mov r1, r9
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _0801EE62
- b _0801F5DC
-_0801EE62:
- bl Random
- ldr r4, _0801EE80 @ =gUnknown_02024D1E
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- adds r0, 0x3
- strb r0, [r4, 0x3]
- movs r0, 0
- movs r1, 0
- bl sub_801E3EC
- b _0801F5FA
- .align 2, 0
-_0801EE80: .4byte gUnknown_02024D1E
-_0801EE84:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r2]
- ldr r1, _0801EEC0 @ =gUnknown_02024C54
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- ldr r1, _0801EEC4 @ =gUnknown_02024BE6
- ldrh r1, [r1]
- strh r1, [r0]
- ldr r0, _0801EEC8 @ =gUnknown_02024D28
- ldrb r1, [r2]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x1]
- b _0801F5DC
- .align 2, 0
-_0801EEC0: .4byte gUnknown_02024C54
-_0801EEC4: .4byte gUnknown_02024BE6
-_0801EEC8: .4byte gUnknown_02024D28
-_0801EECC:
- mov r3, r8
- ldrb r0, [r3]
- movs r6, 0x58
- muls r0, r6
- mov r4, r9
- adds r4, 0x50
- adds r0, r4
- ldr r5, [r0]
- movs r0, 0xE0
- lsls r0, 8
- ands r5, r0
- cmp r5, 0
- beq _0801EEE8
- b _0801F5DC
-_0801EEE8:
- bl Random
- mov r2, r8
- ldrb r1, [r2]
- adds r2, r1, 0
- muls r2, r6
- adds r2, r4
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x3
- lsls r1, 13
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r2, _0801EF80 @ =0x02000000
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 1
- ldr r4, _0801EF84 @ =0x00016004
- adds r0, r4
- adds r0, r2
- ldr r6, _0801EF88 @ =gUnknown_02024BE6
- ldrh r1, [r6]
- strb r1, [r0]
- ldrb r0, [r3]
- lsls r0, 1
- ldr r1, _0801EF8C @ =0x00016005
- adds r0, r1
- adds r0, r2
- ldrh r1, [r6]
- lsrs r1, 8
- strb r1, [r0]
- ldrb r0, [r3]
- ldr r3, _0801EF90 @ =0x00016020
- adds r0, r3
- adds r0, r2
- ldr r1, _0801EF94 @ =gUnknown_02024C07
- ldrb r1, [r1]
- strb r1, [r0]
- ldr r4, _0801EF98 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EF9C @ =gUnknown_081FAC4C
- ldr r2, _0801EFA0 @ =gUnknown_02024D1E
- ldrb r0, [r2, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r4]
- strb r5, [r2, 0x5]
- ldr r1, _0801EFA4 @ =gUnknown_0840164C
- ldrh r0, [r1]
- ldrh r4, [r6]
- cmp r0, r4
- bne _0801EF5C
- b _0801F5FA
-_0801EF5C:
- adds r3, r1, 0
- adds r1, r6, 0
-_0801EF60:
- ldrb r0, [r2, 0x5]
- adds r0, 0x1
- strb r0, [r2, 0x5]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _0801EF70
- b _0801F5FA
-_0801EF70:
- ldrb r0, [r2, 0x5]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- ldrh r4, [r1]
- cmp r0, r4
- bne _0801EF60
- b _0801F5FA
- .align 2, 0
-_0801EF80: .4byte 0x02000000
-_0801EF84: .4byte 0x00016004
-_0801EF88: .4byte gUnknown_02024BE6
-_0801EF8C: .4byte 0x00016005
-_0801EF90: .4byte 0x00016020
-_0801EF94: .4byte gUnknown_02024C07
-_0801EF98: .4byte gUnknown_02024C10
-_0801EF9C: .4byte gUnknown_081FAC4C
-_0801EFA0: .4byte gUnknown_02024D1E
-_0801EFA4: .4byte gUnknown_0840164C
-_0801EFA8:
- ldr r1, _0801EFD8 @ =gUnknown_02024BEC
- ldr r0, _0801EFDC @ =gUnknown_02024BF0
- ldr r0, [r0]
- cmp r0, 0
- bge _0801EFB4
- adds r0, 0x3
-_0801EFB4:
- asrs r0, 2
- str r0, [r1]
- cmp r0, 0
- bne _0801EFC0
- movs r0, 0x1
- str r0, [r1]
-_0801EFC0:
- ldr r4, _0801EFE0 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EFE4 @ =gUnknown_081FAC4C
- ldr r0, _0801EFE8 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- b _0801F5F8
- .align 2, 0
-_0801EFD8: .4byte gUnknown_02024BEC
-_0801EFDC: .4byte gUnknown_02024BF0
-_0801EFE0: .4byte gUnknown_02024C10
-_0801EFE4: .4byte gUnknown_081FAC4C
-_0801EFE8: .4byte gUnknown_02024D1E
-_0801EFEC:
- ldrb r1, [r7, 0x3]
- adds r1, 0xF2
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x10
- adds r2, r6, 0
- movs r3, 0
- bl sub_8025E20
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _0801F008
- b _0801F5DC
-_0801F008:
- ldr r2, _0801F02C @ =0x02000000
- ldrb r1, [r7, 0x3]
- movs r0, 0x3F
- ands r0, r1
- ldr r4, _0801F030 @ =0x000160a4
- adds r1, r2, r4
- strb r0, [r1]
- ldr r0, _0801F034 @ =0x000160a5
- adds r2, r0
- strb r3, [r2]
- ldr r4, _0801F038 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F03C @ =gUnknown_081D71E5
- b _0801F5F8
- .align 2, 0
-_0801F02C: .4byte 0x02000000
-_0801F030: .4byte 0x000160a4
-_0801F034: .4byte 0x000160a5
-_0801F038: .4byte gUnknown_02024C10
-_0801F03C: .4byte gUnknown_081D71E5
-_0801F040:
- movs r0, 0x70
- negs r0, r0
- ldrb r1, [r7, 0x3]
- adds r1, 0xEB
- lsls r1, 24
- lsrs r1, 24
- adds r2, r6, 0
- movs r3, 0
- bl sub_8025E20
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _0801F05E
- b _0801F5DC
-_0801F05E:
- ldr r2, _0801F080 @ =0x02000000
- ldrb r1, [r7, 0x3]
- movs r0, 0x3F
- ands r0, r1
- ldr r4, _0801F084 @ =0x000160a4
- adds r1, r2, r4
- strb r0, [r1]
- ldr r0, _0801F088 @ =0x000160a5
- adds r2, r0
- strb r3, [r2]
- ldr r4, _0801F08C @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F090 @ =gUnknown_081D7276
- b _0801F5F8
- .align 2, 0
-_0801F080: .4byte 0x02000000
-_0801F084: .4byte 0x000160a4
-_0801F088: .4byte 0x000160a5
-_0801F08C: .4byte gUnknown_02024C10
-_0801F090: .4byte gUnknown_081D7276
-_0801F094:
- ldrb r1, [r7, 0x3]
- adds r1, 0xDA
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x20
- adds r2, r6, 0
- movs r3, 0
- bl sub_8025E20
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _0801F0B0
- b _0801F5DC
-_0801F0B0:
- ldr r2, _0801F0D4 @ =0x02000000
- ldrb r1, [r7, 0x3]
- movs r0, 0x3F
- ands r0, r1
- ldr r4, _0801F0D8 @ =0x000160a4
- adds r1, r2, r4
- strb r0, [r1]
- ldr r0, _0801F0DC @ =0x000160a5
- adds r2, r0
- strb r3, [r2]
- ldr r4, _0801F0E0 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F0E4 @ =gUnknown_081D71E5
- b _0801F5F8
- .align 2, 0
-_0801F0D4: .4byte 0x02000000
-_0801F0D8: .4byte 0x000160a4
-_0801F0DC: .4byte 0x000160a5
-_0801F0E0: .4byte gUnknown_02024C10
-_0801F0E4: .4byte gUnknown_081D71E5
-_0801F0E8:
- movs r0, 0x60
- negs r0, r0
- ldrb r1, [r7, 0x3]
- adds r1, 0xD3
- lsls r1, 24
- lsrs r1, 24
- adds r2, r6, 0
- movs r3, 0
- bl sub_8025E20
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _0801F106
- b _0801F5DC
-_0801F106:
- ldr r2, _0801F128 @ =0x02000000
- ldrb r1, [r7, 0x3]
- movs r0, 0x3F
- ands r0, r1
- ldr r4, _0801F12C @ =0x000160a4
- adds r1, r2, r4
- strb r0, [r1]
- ldr r0, _0801F130 @ =0x000160a5
- adds r2, r0
- strb r3, [r2]
- ldr r4, _0801F134 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F138 @ =gUnknown_081D7276
- b _0801F5F8
- .align 2, 0
-_0801F128: .4byte 0x02000000
-_0801F12C: .4byte 0x000160a4
-_0801F130: .4byte 0x000160a5
-_0801F134: .4byte gUnknown_02024C10
-_0801F138: .4byte gUnknown_081D7276
-_0801F13C:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 15
- orrs r0, r1
- str r0, [r2]
- ldr r2, _0801F178 @ =gUnknown_02024CA8
- mov r3, r8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strb r1, [r0, 0x19]
- ldr r1, _0801F17C @ =gUnknown_02024C54
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _0801F180 @ =gUnknown_02024BE6
- ldrh r1, [r1]
- strh r1, [r0]
- b _0801F5DC
- .align 2, 0
-_0801F178: .4byte gUnknown_02024CA8
-_0801F17C: .4byte gUnknown_02024C54
-_0801F180: .4byte gUnknown_02024BE6
-_0801F184:
- ldr r0, _0801F1A0 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 16
-_0801F19A:
- orrs r0, r1
- str r0, [r2]
- b _0801F5DC
- .align 2, 0
-_0801F1A0: .4byte gUnknown_02024C07
-_0801F1A4:
- ldr r4, _0801F254 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0801F1D8
- ldr r0, _0801F258 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0801F25C @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0801F214
- ldr r0, _0801F260 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0801F1D8
- b _0801F5DC
-_0801F1D8:
- ldr r0, _0801F258 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0801F25C @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0801F214
- ldr r0, _0801F260 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0801F214
- ldr r0, _0801F264 @ =gUnknown_02024DBC
- adds r0, 0x29
- adds r0, r6, r0
- ldrb r1, [r0]
- ldr r3, _0801F268 @ =gBitTable
- ldr r2, _0801F26C @ =gUnknown_02024A6A
- ldr r0, _0801F254 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801F214
- b _0801F5DC
-_0801F214:
- ldr r2, _0801F270 @ =gBattleMons
- ldr r1, _0801F274 @ =gUnknown_02024C08
- ldrb r0, [r1]
- movs r3, 0x58
- muls r0, r3
- adds r4, r0, r2
- ldrh r0, [r4, 0x2E]
- adds r7, r1, 0
- mov r9, r2
- cmp r0, 0
- beq _0801F284
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3C
- bne _0801F284
- ldr r1, _0801F278 @ =gUnknown_02024C10
- ldr r0, _0801F27C @ =gUnknown_081D9913
- str r0, [r1]
- ldr r1, _0801F280 @ =byte_2024C06
- ldrb r0, [r7]
- muls r0, r3
- add r0, r9
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- ldrb r1, [r1]
- bl sub_81074C4
- b _0801F5FA
- .align 2, 0
-_0801F254: .4byte gUnknown_02024C07
-_0801F258: .4byte gUnknown_020239F8
-_0801F25C: .4byte 0x00000902
-_0801F260: .4byte gTrainerBattleOpponent
-_0801F264: .4byte gUnknown_02024DBC
-_0801F268: .4byte gBitTable
-_0801F26C: .4byte gUnknown_02024A6A
-_0801F270: .4byte gBattleMons
-_0801F274: .4byte gUnknown_02024C08
-_0801F278: .4byte gUnknown_02024C10
-_0801F27C: .4byte gUnknown_081D9913
-_0801F280: .4byte byte_2024C06
-_0801F284:
- ldr r4, _0801F340 @ =gUnknown_02024C07
- mov r10, r4
- ldrb r1, [r4]
- movs r0, 0x58
- mov r8, r0
- mov r0, r8
- muls r0, r1
- add r0, r9
- ldrh r3, [r0, 0x2E]
- cmp r3, 0
- beq _0801F29C
- b _0801F5DC
-_0801F29C:
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- ldrh r2, [r0, 0x2E]
- adds r0, r2, 0
- cmp r0, 0xAF
- bne _0801F2B0
- b _0801F5DC
-_0801F2B0:
- cmp r0, 0
- bne _0801F2B6
- b _0801F5DC
-_0801F2B6:
- lsls r0, r1, 1
- ldr r5, _0801F344 @ =0x020160f0
- adds r0, r5
- ldr r1, _0801F348 @ =gUnknown_02024C04
- strh r2, [r0]
- strh r2, [r1]
- ldrb r0, [r7]
- mov r4, r8
- muls r4, r0
- adds r0, r4, 0
- add r0, r9
- movs r6, 0
- strh r3, [r0, 0x2E]
- ldr r4, _0801F34C @ =gUnknown_02024A60
- mov r2, r10
- ldrb r0, [r2]
- strb r0, [r4]
- str r1, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- mov r3, r10
- ldrb r0, [r3]
- bl dp01_battle_side_mark_buffer_for_execution
- ldrb r0, [r7]
- strb r0, [r4]
- ldrb r0, [r7]
- mov r4, r8
- muls r4, r0
- adds r0, r4, 0
- mov r1, r9
- adds r1, 0x2E
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r4, _0801F350 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F354 @ =gUnknown_081D96F6
- str r0, [r4]
- ldr r0, _0801F358 @ =0xfffe9f10
- adds r5, r0
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _0801F35C @ =0x000160e8
- adds r0, r1
- adds r0, r5
- strb r6, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r2, _0801F360 @ =0x000160e9
- adds r0, r2
- adds r0, r5
- strb r6, [r0]
- b _0801F5FA
- .align 2, 0
-_0801F340: .4byte gUnknown_02024C07
-_0801F344: .4byte 0x020160f0
-_0801F348: .4byte gUnknown_02024C04
-_0801F34C: .4byte gUnknown_02024A60
-_0801F350: .4byte gUnknown_02024C10
-_0801F354: .4byte gUnknown_081D96F6
-_0801F358: .4byte 0xfffe9f10
-_0801F35C: .4byte 0x000160e8
-_0801F360: .4byte 0x000160e9
-_0801F364:
- ldr r3, _0801F394 @ =gUnknown_02024C08
- ldrb r1, [r3]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 19
- orrs r0, r1
- str r0, [r2]
- ldr r2, _0801F398 @ =gUnknown_02024CA8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0801F39C @ =gUnknown_02024C07
- ldrb r1, [r1]
- strb r1, [r0, 0x14]
- b _0801F5DC
- .align 2, 0
-_0801F394: .4byte gUnknown_02024C08
-_0801F398: .4byte gUnknown_02024CA8
-_0801F39C: .4byte gUnknown_02024C07
-_0801F3A0:
- ldr r0, _0801F3B8 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 20
- b _0801F19A
- .align 2, 0
-_0801F3B8: .4byte gUnknown_02024C08
-_0801F3BC:
- ldr r4, _0801F3CC @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F3D0 @ =gUnknown_081D9224
- b _0801F5F8
- .align 2, 0
-_0801F3CC: .4byte gUnknown_02024C10
-_0801F3D0: .4byte gUnknown_081D9224
-_0801F3D4:
- ldr r4, _0801F3E4 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F3E8 @ =gUnknown_081D92C0
- b _0801F5F8
- .align 2, 0
-_0801F3E4: .4byte gUnknown_02024C10
-_0801F3E8: .4byte gUnknown_081D92C0
-_0801F3EC:
- ldr r6, _0801F43C @ =gUnknown_02024C08
- ldrb r0, [r6]
- movs r2, 0x58
- muls r0, r2
- mov r1, r9
- adds r1, 0x4C
- adds r5, r0, r1
- ldr r4, [r5]
- movs r0, 0x40
- ands r0, r4
- cmp r0, 0
- bne _0801F406
- b _0801F5DC
-_0801F406:
- movs r0, 0x41
- negs r0, r0
- ands r4, r0
- str r4, [r5]
- ldr r4, _0801F440 @ =gUnknown_02024A60
- ldrb r0, [r6]
- strb r0, [r4]
- ldrb r0, [r4]
- muls r0, r2
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r4, _0801F444 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F448 @ =gUnknown_081D9635
- b _0801F5F8
- .align 2, 0
-_0801F43C: .4byte gUnknown_02024C08
-_0801F440: .4byte gUnknown_02024A60
-_0801F444: .4byte gUnknown_02024C10
-_0801F448: .4byte gUnknown_081D9635
-_0801F44C:
- ldr r4, _0801F45C @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F460 @ =gUnknown_081D93FA
- b _0801F5F8
- .align 2, 0
-_0801F45C: .4byte gUnknown_02024C10
-_0801F460: .4byte gUnknown_081D93FA
-_0801F464:
- ldr r4, _0801F494 @ =gUnknown_02024BEC
- ldr r0, _0801F498 @ =gUnknown_02024BF0
- ldr r0, [r0]
- movs r1, 0x3
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801F47A
- movs r0, 0x1
- str r0, [r4]
-_0801F47A:
- ldr r4, _0801F49C @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801F4A0 @ =gUnknown_081FAC4C
- ldr r0, _0801F4A4 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- b _0801F5F8
- .align 2, 0
-_0801F494: .4byte gUnknown_02024BEC
-_0801F498: .4byte gUnknown_02024BF0
-_0801F49C: .4byte gUnknown_02024C10
-_0801F4A0: .4byte gUnknown_081FAC4C
-_0801F4A4: .4byte gUnknown_02024D1E
-_0801F4A8:
- mov r3, r8
- ldrb r0, [r3]
- movs r5, 0x58
- muls r0, r5
- mov r4, r9
- adds r4, 0x50
- adds r2, r0, r4
- ldr r1, [r2]
- movs r0, 0xC0
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _0801F4C4
- b _0801F5DC
-_0801F4C4:
- movs r0, 0x80
- lsls r0, 5
- orrs r1, r0
- str r1, [r2]
- ldr r1, _0801F4F8 @ =gUnknown_02024C54
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _0801F4FC @ =gUnknown_02024BE6
- ldrh r1, [r1]
- strh r1, [r0]
- bl Random
- mov r2, r8
- ldrb r1, [r2]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- movs r1, 0x1
- ands r1, r0
- adds r1, 0x2
- lsls r1, 10
- ldr r0, [r2]
-_0801F4F2:
- orrs r0, r1
- str r0, [r2]
- b _0801F5FA
- .align 2, 0
-_0801F4F8: .4byte gUnknown_02024C54
-_0801F4FC: .4byte gUnknown_02024BE6
-_0801F500:
- mov r5, r8
- ldrb r3, [r5]
- movs r4, 0x58
- adds r0, r3, 0
- muls r0, r4
- mov r2, r9
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0x3C
- bne _0801F540
- ldrh r0, [r1, 0x2E]
- cmp r0, 0
- beq _0801F5DC
- ldr r0, _0801F534 @ =byte_2024C06
- strb r2, [r0]
- ldr r1, _0801F538 @ =gUnknown_02024C10
- ldr r0, _0801F53C @ =gUnknown_081D9913
- str r0, [r1]
- ldrb r0, [r5]
- movs r1, 0x3C
- bl sub_81074C4
- b _0801F5FA
- .align 2, 0
-_0801F534: .4byte byte_2024C06
-_0801F538: .4byte gUnknown_02024C10
-_0801F53C: .4byte gUnknown_081D9913
-_0801F540:
- ldrh r0, [r1, 0x2E]
- cmp r0, 0
- beq _0801F5DC
- adds r0, r3, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0801F5B8 @ =gUnknown_02024C04
- mov r3, r8
- ldrb r0, [r3]
- muls r0, r4
- add r0, r9
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
- ldrb r0, [r3]
- muls r0, r4
- add r0, r9
- movs r5, 0
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r2, _0801F5BC @ =gUnknown_02024DBC
- adds r2, 0x29
- adds r2, r6, r2
- ldr r3, _0801F5C0 @ =gBitTable
- ldr r1, _0801F5C4 @ =gUnknown_02024A6A
- mov r4, r8
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r4, _0801F5C8 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F5CC @ =gUnknown_081D944B
- str r0, [r4]
- ldr r1, _0801F5D0 @ =0x02000000
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- ldr r3, _0801F5D4 @ =0x000160e8
- adds r0, r3
- adds r0, r1
- strb r5, [r0]
- ldrb r0, [r2]
- lsls r0, 1
- ldr r4, _0801F5D8 @ =0x000160e9
- adds r0, r4
- adds r0, r1
- strb r5, [r0]
- b _0801F5FA
- .align 2, 0
-_0801F5B8: .4byte gUnknown_02024C04
-_0801F5BC: .4byte gUnknown_02024DBC
-_0801F5C0: .4byte gBitTable
-_0801F5C4: .4byte gUnknown_02024A6A
-_0801F5C8: .4byte gUnknown_02024C10
-_0801F5CC: .4byte gUnknown_081D944B
-_0801F5D0: .4byte 0x02000000
-_0801F5D4: .4byte 0x000160e8
-_0801F5D8: .4byte 0x000160e9
-_0801F5DC:
- ldr r1, _0801F5E8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- b _0801F5FA
- .align 2, 0
-_0801F5E8: .4byte gUnknown_02024C10
-_0801F5EC:
- ldr r4, _0801F60C @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F610 @ =gUnknown_081D94B0
-_0801F5F8:
- str r0, [r4]
-_0801F5FA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801F60C: .4byte gUnknown_02024C10
-_0801F610: .4byte gUnknown_081D94B0
- thumb_func_end sub_801E3EC
-
- thumb_func_start atk15_seteffectwithchancetarget
-atk15_seteffectwithchancetarget: @ 801F614
- push {r4,lr}
- ldr r2, _0801F640 @ =gBattleMons
- ldr r0, _0801F644 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x20
- bne _0801F650
- ldr r2, _0801F648 @ =gBattleMoves
- ldr r0, _0801F64C @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 1
- b _0801F660
- .align 2, 0
-_0801F640: .4byte gBattleMons
-_0801F644: .4byte gUnknown_02024C07
-_0801F648: .4byte gBattleMoves
-_0801F64C: .4byte gUnknown_02024BE6
-_0801F650:
- ldr r2, _0801F680 @ =gBattleMoves
- ldr r0, _0801F684 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r4, [r0, 0x5]
-_0801F660:
- ldr r3, _0801F688 @ =gUnknown_02024D1E
- ldrb r2, [r3, 0x3]
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _0801F690
- ldr r0, _0801F68C @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801F690
- movs r0, 0x7F
- ands r0, r2
- strb r0, [r3, 0x3]
- b _0801F6BE
- .align 2, 0
-_0801F680: .4byte gBattleMoves
-_0801F684: .4byte gUnknown_02024BE6
-_0801F688: .4byte gUnknown_02024D1E
-_0801F68C: .4byte gUnknown_02024C68
-_0801F690:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r4
- bhi _0801F6DA
- ldr r0, _0801F6C8 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- cmp r0, 0
- beq _0801F6DA
- ldr r0, _0801F6CC @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801F6DA
- cmp r4, 0x63
- bls _0801F6D0
-_0801F6BE:
- movs r0, 0
- movs r1, 0x80
- bl sub_801E3EC
- b _0801F6E2
- .align 2, 0
-_0801F6C8: .4byte gUnknown_02024D1E
-_0801F6CC: .4byte gUnknown_02024C68
-_0801F6D0:
- movs r0, 0
- movs r1, 0
- bl sub_801E3EC
- b _0801F6E2
-_0801F6DA:
- ldr r1, _0801F6F8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801F6E2:
- ldr r0, _0801F6FC @ =gUnknown_02024D1E
- movs r1, 0
- strb r1, [r0, 0x3]
- ldr r0, _0801F700 @ =0x02000000
- ldr r2, _0801F704 @ =0x00016112
- adds r0, r2
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801F6F8: .4byte gUnknown_02024C10
-_0801F6FC: .4byte gUnknown_02024D1E
-_0801F700: .4byte 0x02000000
-_0801F704: .4byte 0x00016112
- thumb_func_end atk15_seteffectwithchancetarget
-
- thumb_func_start sub_801F708
-sub_801F708: @ 801F708
- push {lr}
- movs r0, 0x1
- movs r1, 0
- bl sub_801E3EC
- pop {r0}
- bx r0
- thumb_func_end sub_801F708
-
- thumb_func_start sub_801F718
-sub_801F718: @ 801F718
- push {lr}
- movs r0, 0
- movs r1, 0
- bl sub_801E3EC
- pop {r0}
- bx r0
- thumb_func_end sub_801F718
-
- thumb_func_start sub_801F728
-sub_801F728: @ 801F728
- push {lr}
- ldr r0, _0801F74C @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r2, _0801F750 @ =gUnknown_02024A60
- strb r0, [r2]
- ldr r3, _0801F754 @ =gUnknown_02024D1E
- ldrb r0, [r3, 0x3]
- cmp r0, 0x6
- bhi _0801F75C
- ldr r1, _0801F758 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x4C
- b _0801F766
- .align 2, 0
-_0801F74C: .4byte gUnknown_02024C10
-_0801F750: .4byte gUnknown_02024A60
-_0801F754: .4byte gUnknown_02024D1E
-_0801F758: .4byte gBattleMons
-_0801F75C:
- ldr r1, _0801F794 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
-_0801F766:
- adds r2, r1
- ldr r1, _0801F798 @ =gUnknown_081FAB5C
- ldrb r0, [r3, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- ldr r0, _0801F79C @ =gUnknown_02024D1E
- movs r2, 0
- strb r2, [r0, 0x3]
- ldr r1, _0801F7A0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- ldr r0, _0801F7A4 @ =0x02000000
- ldr r1, _0801F7A8 @ =0x00016112
- adds r0, r1
- strb r2, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0801F794: .4byte gBattleMons
-_0801F798: .4byte gUnknown_081FAB5C
-_0801F79C: .4byte gUnknown_02024D1E
-_0801F7A0: .4byte gUnknown_02024C10
-_0801F7A4: .4byte 0x02000000
-_0801F7A8: .4byte 0x00016112
- thumb_func_end sub_801F728
-
- thumb_func_start sub_801F7AC
-sub_801F7AC: @ 801F7AC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _0801F81C @ =gUnknown_02024C10
- ldr r2, [r0]
- ldrb r1, [r2, 0x2]
- adds r6, r0, 0
- cmp r1, 0
- beq _0801F834
- ldrb r0, [r2, 0x1]
- bl sub_8015150
- ldr r5, _0801F820 @ =gUnknown_02024A60
- strb r0, [r5]
- ldr r2, _0801F824 @ =gUnknown_02024C6C
- ldr r1, _0801F828 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _0801F7E6
- b _0801FB1C
-_0801F7E6:
- ldr r1, [r6]
- ldrb r4, [r1, 0x3]
- ldrb r0, [r1, 0x4]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r1, 0x6]
- lsls r0, 24
- orrs r4, r0
- bl b_movescr_stack_pop_cursor
- str r4, [r6]
- ldrb r0, [r5]
- bl battle_side_get_owner
- ldr r1, _0801F82C @ =gUnknown_02024C7A
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r2, [r0]
- ldr r1, _0801F830 @ =0x0000fdff
- ands r1, r2
- strh r1, [r0]
- b _0801FB22
- .align 2, 0
-_0801F81C: .4byte gUnknown_02024C10
-_0801F820: .4byte gUnknown_02024A60
-_0801F824: .4byte gUnknown_02024C6C
-_0801F828: .4byte gBitTable
-_0801F82C: .4byte gUnknown_02024C7A
-_0801F830: .4byte 0x0000fdff
-_0801F834:
- ldrb r0, [r2, 0x1]
- cmp r0, 0x1
- bne _0801F85C
- ldr r1, _0801F84C @ =gUnknown_02024A60
- ldr r0, _0801F850 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0801F854 @ =gUnknown_02024C08
- ldrb r7, [r0]
- ldr r4, _0801F858 @ =gUnknown_081D8C58
- b _0801F86A
- .align 2, 0
-_0801F84C: .4byte gUnknown_02024A60
-_0801F850: .4byte gUnknown_02024C07
-_0801F854: .4byte gUnknown_02024C08
-_0801F858: .4byte gUnknown_081D8C58
-_0801F85C:
- ldr r1, _0801F954 @ =gUnknown_02024A60
- ldr r0, _0801F958 @ =gUnknown_02024C08
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0801F95C @ =gUnknown_02024C07
- ldrb r7, [r0]
- ldr r4, _0801F960 @ =gUnknown_081D8C65
-_0801F86A:
- ldr r0, _0801F964 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r0, _0801F968 @ =gBitTable
- mov r12, r0
- ldr r2, _0801F954 @ =gUnknown_02024A60
- mov r8, r2
- ldrb r2, [r2]
- lsls r0, r2, 2
- add r0, r12
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801F886
- b _0801FB1C
-_0801F886:
- ldr r3, _0801F96C @ =gBattleMons
- mov r10, r3
- movs r5, 0x58
- mov r9, r5
- mov r0, r9
- muls r0, r2
- add r0, r10
- ldrh r3, [r0, 0x28]
- cmp r3, 0
- beq _0801F89C
- b _0801FB1C
-_0801F89C:
- ldr r2, _0801F970 @ =0x02000000
- lsls r1, r7, 1
- ldr r5, _0801F974 @ =0x000160ac
- adds r0, r1, r5
- adds r0, r2
- strb r3, [r0]
- ldr r0, _0801F978 @ =0x000160ad
- adds r1, r0
- adds r1, r2
- strb r3, [r1]
- lsls r1, r7, 2
- adds r5, 0x54
- adds r0, r1, r5
- adds r0, r2
- strb r3, [r0]
- adds r5, 0x1
- adds r0, r1, r5
- adds r0, r2
- strb r3, [r0]
- adds r5, 0x1
- adds r0, r1, r5
- adds r0, r2
- strb r3, [r0]
- ldr r0, _0801F97C @ =0x00016103
- adds r1, r0
- adds r1, r2
- strb r3, [r1]
- ldr r5, _0801F980 @ =gUnknown_02024C6C
- mov r1, r8
- ldrb r0, [r1]
- lsls r0, 2
- add r0, r12
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r5]
- orrs r0, r1
- str r0, [r5]
- ldr r0, [r6]
- adds r0, 0x7
- bl b_movescr_stack_push
- str r4, [r6]
- mov r2, r8
- ldrb r0, [r2]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0801F9B0
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 15
- orrs r0, r1
- str r0, [r5]
- ldr r1, _0801F984 @ =gUnknown_030042E0
- ldrb r0, [r1]
- cmp r0, 0xFE
- bhi _0801F914
- adds r0, 0x1
- strb r0, [r1]
-_0801F914:
- mov r0, r9
- muls r0, r7
- add r0, r10
- adds r3, r0, 0
- adds r3, 0x2A
- mov r4, r8
- ldrb r2, [r4]
- mov r0, r9
- muls r0, r2
- add r0, r10
- adds r1, r0, 0
- adds r1, 0x2A
- ldrb r0, [r3]
- ldrb r5, [r1]
- cmp r0, r5
- bls _0801F9CC
- ldrb r1, [r1]
- subs r0, r1
- cmp r0, 0x1D
- ble _0801F990
- ldr r1, _0801F988 @ =gUnknown_02024A6A
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0801F98C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x8
- bl AdjustFriendship
- b _0801F9CC
- .align 2, 0
-_0801F954: .4byte gUnknown_02024A60
-_0801F958: .4byte gUnknown_02024C08
-_0801F95C: .4byte gUnknown_02024C07
-_0801F960: .4byte gUnknown_081D8C65
-_0801F964: .4byte gUnknown_02024C0C
-_0801F968: .4byte gBitTable
-_0801F96C: .4byte gBattleMons
-_0801F970: .4byte 0x02000000
-_0801F974: .4byte 0x000160ac
-_0801F978: .4byte 0x000160ad
-_0801F97C: .4byte 0x00016103
-_0801F980: .4byte gUnknown_02024C6C
-_0801F984: .4byte gUnknown_030042E0
-_0801F988: .4byte gUnknown_02024A6A
-_0801F98C: .4byte gPlayerParty
-_0801F990:
- ldr r1, _0801F9A8 @ =gUnknown_02024A6A
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0801F9AC @ =gPlayerParty
- adds r0, r1
- movs r1, 0x6
- bl AdjustFriendship
- b _0801F9CC
- .align 2, 0
-_0801F9A8: .4byte gUnknown_02024A6A
-_0801F9AC: .4byte gPlayerParty
-_0801F9B0:
- ldr r1, _0801FAE0 @ =gUnknown_030042E0
- ldrb r0, [r1, 0x1]
- cmp r0, 0xFE
- bhi _0801F9BC
- adds r0, 0x1
- strb r0, [r1, 0x1]
-_0801F9BC:
- ldr r2, _0801FAE4 @ =gUnknown_02024A60
- ldrb r0, [r2]
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- add r0, r10
- ldrh r0, [r0]
- strh r0, [r1, 0x20]
-_0801F9CC:
- ldr r0, _0801FAE8 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801FA02
- ldr r6, _0801FAEC @ =gBattleMons
- ldr r0, _0801FAF0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- movs r5, 0x58
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801FA02
- ldr r4, _0801FAF4 @ =gUnknown_02024C10
- ldr r0, [r4]
- bl b_movescr_stack_push
- ldr r1, _0801FAF8 @ =gUnknown_02024BEC
- adds r0, r7, 0
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x28]
- str r0, [r1]
- ldr r0, _0801FAFC @ =gUnknown_081D9156
- str r0, [r4]
-_0801FA02:
- ldr r1, _0801FB00 @ =gUnknown_02024C98
- ldr r6, _0801FB04 @ =gUnknown_02024C08
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 7
- ands r0, r1
- cmp r0, 0
- bne _0801FA1A
- b _0801FB22
-_0801FA1A:
- ldr r0, _0801FAE8 @ =gUnknown_02024C6C
- ldr r5, [r0]
- movs r0, 0x80
- lsls r0, 17
- ands r5, r0
- cmp r5, 0
- bne _0801FB22
- ldr r4, _0801FAF0 @ =gUnknown_02024C07
- mov r8, r4
- ldrb r0, [r4]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldrb r0, [r6]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _0801FB22
- ldr r0, _0801FAEC @ =gBattleMons
- mov r9, r0
- mov r1, r8
- ldrb r2, [r1]
- movs r7, 0x58
- adds r3, r2, 0
- muls r3, r7
- adds r0, r3, r0
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801FB22
- ldr r0, _0801FB08 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xA5
- beq _0801FB22
- ldr r1, _0801FB0C @ =0x02000000
- ldr r4, _0801FB10 @ =0x0001608c
- adds r0, r2, r4
- adds r0, r1
- ldrb r4, [r0]
- adds r0, r4, r3
- mov r6, r9
- adds r6, 0x24
- adds r0, r6
- strb r5, [r0]
- ldr r5, _0801FAF4 @ =gUnknown_02024C10
- ldr r0, [r5]
- bl b_movescr_stack_push
- ldr r0, _0801FB14 @ =gUnknown_081D9468
- str r0, [r5]
- ldr r5, _0801FAE4 @ =gUnknown_02024A60
- mov r1, r8
- ldrb r0, [r1]
- strb r0, [r5]
- adds r1, r4, 0
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r5]
- muls r0, r7
- adds r0, r6
- adds r0, r4
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0801FB18 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- lsls r4, 1
- mov r2, r8
- ldrb r0, [r2]
- muls r0, r7
- adds r0, r4, r0
- mov r2, r9
- adds r2, 0xC
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- mov r3, r8
- ldrb r0, [r3]
- muls r0, r7
- adds r4, r0
- adds r4, r2
- ldrh r0, [r4]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- b _0801FB22
- .align 2, 0
-_0801FAE0: .4byte gUnknown_030042E0
-_0801FAE4: .4byte gUnknown_02024A60
-_0801FAE8: .4byte gUnknown_02024C6C
-_0801FAEC: .4byte gBattleMons
-_0801FAF0: .4byte gUnknown_02024C07
-_0801FAF4: .4byte gUnknown_02024C10
-_0801FAF8: .4byte gUnknown_02024BEC
-_0801FAFC: .4byte gUnknown_081D9156
-_0801FB00: .4byte gUnknown_02024C98
-_0801FB04: .4byte gUnknown_02024C08
-_0801FB08: .4byte gUnknown_02024BE6
-_0801FB0C: .4byte 0x02000000
-_0801FB10: .4byte 0x0001608c
-_0801FB14: .4byte gUnknown_081D9468
-_0801FB18: .4byte gUnknown_030041C0
-_0801FB1C:
- ldr r0, [r6]
- adds r0, 0x7
- str r0, [r6]
-_0801FB22:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_801F7AC
-
- thumb_func_start sub_801FB34
-sub_801FB34: @ 801FB34
- push {r4,r5,lr}
- ldr r0, _0801FB64 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801FB5E
- ldr r5, _0801FB68 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _0801FB6C @ =gUnknown_02024A60
- strb r0, [r4]
- movs r0, 0
- bl dp01_build_cmdbuf_x0A_A_A_A
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_0801FB5E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FB64: .4byte gUnknown_02024A64
-_0801FB68: .4byte gUnknown_02024C10
-_0801FB6C: .4byte gUnknown_02024A60
- thumb_func_end sub_801FB34
-
- thumb_func_start atkE2_cmde2
-atkE2_cmde2: @ 801FB70
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r0, _0801FBC4 @ =gUnknown_02024A64
- ldr r6, [r0]
- cmp r6, 0
- bne _0801FBBC
- ldr r5, _0801FBC8 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _0801FBCC @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r1, _0801FBD0 @ =gBattleMons
- ldrb r0, [r4]
- movs r2, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- str r6, [r0]
- ldrb r0, [r4]
- muls r0, r2
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- bl sub_8010F48
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_0801FBBC:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FBC4: .4byte gUnknown_02024A64
-_0801FBC8: .4byte gUnknown_02024C10
-_0801FBCC: .4byte gUnknown_02024A60
-_0801FBD0: .4byte gBattleMons
- thumb_func_end atkE2_cmde2
-
- thumb_func_start atk1C_jumpifstatus
-atk1C_jumpifstatus: @ 801FBD4
- push {r4,r5,lr}
- ldr r5, _0801FC30 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [r5]
- ldrb r4, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- lsls r1, 8
- adds r4, r1
- ldrb r1, [r2, 0x4]
- lsls r1, 16
- adds r4, r1
- ldrb r1, [r2, 0x5]
- lsls r1, 24
- adds r4, r1
- ldrb r3, [r2, 0x6]
- ldrb r1, [r2, 0x7]
- lsls r1, 8
- adds r3, r1
- ldrb r1, [r2, 0x8]
- lsls r1, 16
- adds r3, r1
- ldrb r1, [r2, 0x9]
- lsls r1, 24
- adds r3, r1
- ldr r2, _0801FC34 @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _0801FC38
- adds r0, r1, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801FC38
- str r3, [r5]
- b _0801FC40
- .align 2, 0
-_0801FC30: .4byte gUnknown_02024C10
-_0801FC34: .4byte gBattleMons
-_0801FC38:
- ldr r1, _0801FC48 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
-_0801FC40:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FC48: .4byte gUnknown_02024C10
- thumb_func_end atk1C_jumpifstatus
-
- thumb_func_start atk1D_jumpifsecondarystatus
-atk1D_jumpifsecondarystatus: @ 801FC4C
- push {r4,r5,lr}
- ldr r5, _0801FCA8 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [r5]
- ldrb r4, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- lsls r1, 8
- adds r4, r1
- ldrb r1, [r2, 0x4]
- lsls r1, 16
- adds r4, r1
- ldrb r1, [r2, 0x5]
- lsls r1, 24
- adds r4, r1
- ldrb r3, [r2, 0x6]
- ldrb r1, [r2, 0x7]
- lsls r1, 8
- adds r3, r1
- ldrb r1, [r2, 0x8]
- lsls r1, 16
- adds r3, r1
- ldrb r1, [r2, 0x9]
- lsls r1, 24
- adds r3, r1
- ldr r2, _0801FCAC @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r0, r2, 0
- adds r0, 0x50
- adds r0, r1, r0
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _0801FCB0
- adds r0, r1, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801FCB0
- str r3, [r5]
- b _0801FCB8
- .align 2, 0
-_0801FCA8: .4byte gUnknown_02024C10
-_0801FCAC: .4byte gBattleMons
-_0801FCB0:
- ldr r1, _0801FCC0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
-_0801FCB8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FCC0: .4byte gUnknown_02024C10
- thumb_func_end atk1D_jumpifsecondarystatus
-
- thumb_func_start atk1E_jumpifability
-atk1E_jumpifability: @ 801FCC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r6, _0801FD18 @ =gUnknown_02024C10
- ldr r2, [r6]
- ldrb r5, [r2, 0x2]
- mov r8, r5
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- adds r7, r1, r0
- ldrb r0, [r2, 0x1]
- cmp r0, 0x8
- bne _0801FD24
- ldr r0, _0801FD1C @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xD
- adds r2, r5, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0801FDA0
- ldr r1, _0801FD20 @ =byte_2024C06
- strb r5, [r1]
- str r7, [r6]
- subs r4, 0x1
- lsls r0, r4, 24
- lsrs r0, 24
- ldrb r1, [r1]
- b _0801FD80
- .align 2, 0
-_0801FD18: .4byte gUnknown_02024C10
-_0801FD1C: .4byte gUnknown_02024C07
-_0801FD20: .4byte byte_2024C06
-_0801FD24:
- cmp r0, 0x9
- bne _0801FD5C
- ldr r0, _0801FD54 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC
- adds r2, r5, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0801FDA0
- ldr r1, _0801FD58 @ =byte_2024C06
- strb r5, [r1]
- str r7, [r6]
- subs r4, 0x1
- lsls r0, r4, 24
- lsrs r0, 24
- ldrb r1, [r1]
- b _0801FD80
- .align 2, 0
-_0801FD54: .4byte gUnknown_02024C07
-_0801FD58: .4byte byte_2024C06
-_0801FD5C:
- ldrb r0, [r2, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0801FD90 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, r8
- bne _0801FDA0
- ldr r0, _0801FD94 @ =byte_2024C06
- strb r1, [r0]
- str r7, [r6]
- ldrb r1, [r0]
- adds r0, r4, 0
-_0801FD80:
- bl sub_81074C4
- ldr r0, _0801FD98 @ =0x02000000
- ldr r1, _0801FD9C @ =0x000160f8
- adds r0, r1
- strb r4, [r0]
- b _0801FDA6
- .align 2, 0
-_0801FD90: .4byte gBattleMons
-_0801FD94: .4byte byte_2024C06
-_0801FD98: .4byte 0x02000000
-_0801FD9C: .4byte 0x000160f8
-_0801FDA0:
- ldr r0, [r6]
- adds r0, 0x7
- str r0, [r6]
-_0801FDA6:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk1E_jumpifability
-
- thumb_func_start sub_801FDB4
-sub_801FDB4: @ 801FDB4
- push {r4-r6,lr}
- ldr r0, _0801FDCC @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r4, [r0, 0x1]
- cmp r4, 0x1
- bne _0801FDD4
- ldr r0, _0801FDD0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_get_per_side_status
- b _0801FDDE
- .align 2, 0
-_0801FDCC: .4byte gUnknown_02024C10
-_0801FDD0: .4byte gUnknown_02024C07
-_0801FDD4:
- ldr r0, _0801FE14 @ =gUnknown_02024C08
- ldrb r0, [r0]
- bl battle_get_per_side_status
- movs r4, 0x1
-_0801FDDE:
- ands r4, r0
- ldr r6, _0801FE18 @ =gUnknown_02024C10
- ldr r3, [r6]
- ldrb r2, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r1, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 24
- adds r5, r1, r0
- ldr r1, _0801FE1C @ =gUnknown_02024C7A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- ands r2, r0
- cmp r2, 0
- beq _0801FE20
- str r5, [r6]
- b _0801FE26
- .align 2, 0
-_0801FE14: .4byte gUnknown_02024C08
-_0801FE18: .4byte gUnknown_02024C10
-_0801FE1C: .4byte gUnknown_02024C7A
-_0801FE20:
- adds r0, r3, 0
- adds r0, 0x8
- str r0, [r6]
-_0801FE26:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_801FDB4
-
- thumb_func_start sub_801FE2C
-sub_801FE2C: @ 801FE2C
- push {r4,r5,lr}
- movs r5, 0
- ldr r4, _0801FE60 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0801FE64 @ =gBattleMons
- ldr r3, [r4]
- movs r1, 0x58
- muls r0, r1
- ldrb r1, [r3, 0x3]
- adds r0, r1
- adds r2, 0x18
- adds r0, r2
- ldrb r2, [r0]
- ldrb r0, [r3, 0x2]
- cmp r0, 0x5
- bhi _0801FEEA
- lsls r0, 2
- ldr r1, _0801FE68 @ =_0801FE6C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801FE60: .4byte gUnknown_02024C10
-_0801FE64: .4byte gBattleMons
-_0801FE68: .4byte _0801FE6C
- .align 2, 0
-_0801FE6C:
- .4byte _0801FE84
- .4byte _0801FE94
- .4byte _0801FEA4
- .4byte _0801FEB4
- .4byte _0801FEC4
- .4byte _0801FED8
-_0801FE84:
- ldr r0, _0801FE90 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bne _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FE90: .4byte gUnknown_02024C10
-_0801FE94:
- ldr r0, _0801FEA0 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- beq _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FEA0: .4byte gUnknown_02024C10
-_0801FEA4:
- ldr r0, _0801FEB0 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bls _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FEB0: .4byte gUnknown_02024C10
-_0801FEB4:
- ldr r0, _0801FEC0 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bcs _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FEC0: .4byte gUnknown_02024C10
-_0801FEC4:
- ldr r0, _0801FED4 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- ands r2, r0
- cmp r2, 0
- beq _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FED4: .4byte gUnknown_02024C10
-_0801FED8:
- ldr r0, _0801FF0C @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- ands r2, r0
- cmp r2, 0
- bne _0801FEEA
-_0801FEE4:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0801FEEA:
- cmp r5, 0
- beq _0801FF10
- ldr r3, _0801FF0C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- b _0801FF18
- .align 2, 0
-_0801FF0C: .4byte gUnknown_02024C10
-_0801FF10:
- ldr r1, _0801FF20 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x9
- str r0, [r1]
-_0801FF18:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FF20: .4byte gUnknown_02024C10
- thumb_func_end sub_801FE2C
-
- thumb_func_start atk21_jumpifspecialstatusflag
-atk21_jumpifspecialstatusflag: @ 801FF24
- push {r4-r6,lr}
- ldr r4, _0801FF78 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _0801FF7C @ =gUnknown_02024A60
- strb r0, [r5]
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- adds r6, r1, r0
- ldrb r1, [r2, 0x7]
- ldrb r0, [r2, 0x8]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x9]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0xA]
- lsls r0, 24
- adds r3, r1, r0
- ldrb r0, [r2, 0x6]
- cmp r0, 0
- beq _0801FF84
- ldr r0, _0801FF80 @ =gUnknown_02024C98
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- ands r0, r6
- cmp r0, 0
- bne _0801FF9C
- b _0801FF94
- .align 2, 0
-_0801FF78: .4byte gUnknown_02024C10
-_0801FF7C: .4byte gUnknown_02024A60
-_0801FF80: .4byte gUnknown_02024C98
-_0801FF84:
- ldr r0, _0801FF98 @ =gUnknown_02024C98
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- ands r0, r6
- cmp r0, 0
- beq _0801FF9C
-_0801FF94:
- str r3, [r4]
- b _0801FFA2
- .align 2, 0
-_0801FF98: .4byte gUnknown_02024C98
-_0801FF9C:
- adds r0, r2, 0
- adds r0, 0xB
- str r0, [r4]
-_0801FFA2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk21_jumpifspecialstatusflag
-
- thumb_func_start sub_801FFA8
-sub_801FFA8: @ 801FFA8
- push {r4-r6,lr}
- ldr r4, _0801FFF0 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [r4]
- ldrb r5, [r3, 0x2]
- ldrb r2, [r3, 0x3]
- ldrb r1, [r3, 0x4]
- lsls r1, 8
- adds r2, r1
- ldrb r1, [r3, 0x5]
- lsls r1, 16
- adds r2, r1
- ldrb r1, [r3, 0x6]
- lsls r1, 24
- adds r6, r2, r1
- ldr r2, _0801FFF4 @ =gBattleMons
- movs r1, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r5
- beq _0801FFEC
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r5
- bne _0801FFF8
-_0801FFEC:
- str r6, [r4]
- b _0801FFFC
- .align 2, 0
-_0801FFF0: .4byte gUnknown_02024C10
-_0801FFF4: .4byte gBattleMons
-_0801FFF8:
- adds r0, r3, 0x7
- str r0, [r4]
-_0801FFFC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_801FFA8
-
- thumb_func_start sub_8020004
-sub_8020004: @ 8020004
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- ldr r0, _0802004C @ =0x0201605c
- mov r10, r0
- ldr r0, _08020050 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08020054 @ =gUnknown_02024C09
- strb r0, [r1]
- ldr r2, _08020058 @ =gUnknown_02024DEA
- movs r1, 0x2
- ands r1, r0
- lsls r1, 24
- lsrs r1, 25
- adds r1, r2
- ldrb r1, [r1]
- mov r8, r1
- mov r0, r10
- subs r0, 0x4D
- ldrb r0, [r0]
- cmp r0, 0x6
- bls _08020040
- bl _08020996
-_08020040:
- lsls r0, 2
- ldr r1, _0802005C @ =_08020060
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802004C: .4byte 0x0201605c
-_08020050: .4byte gUnknown_02024C10
-_08020054: .4byte gUnknown_02024C09
-_08020058: .4byte gUnknown_02024DEA
-_0802005C: .4byte _08020060
- .align 2, 0
-_08020060:
- .4byte _0802007C
- .4byte _080200FC
- .4byte _08020216
- .4byte _0802055C
- .4byte _08020648
- .4byte _08020910
- .4byte _0802096C
-_0802007C:
- ldr r4, _080200A8 @ =gUnknown_02024C09
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08020098
- ldr r0, _080200AC @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _080200B0 @ =0x00000982
- ands r0, r1
- cmp r0, 0
- beq _080200BC
-_08020098:
- ldr r0, _080200B4 @ =0x02000000
- ldr r1, _080200B8 @ =0x0001600f
- adds r0, r1
- movs r1, 0x6
- strb r1, [r0]
- bl _08020996
- .align 2, 0
-_080200A8: .4byte gUnknown_02024C09
-_080200AC: .4byte gUnknown_020239F8
-_080200B0: .4byte 0x00000982
-_080200B4: .4byte 0x02000000
-_080200B8: .4byte 0x0001600f
-_080200BC:
- ldr r2, _080200E8 @ =0x02000000
- ldr r3, _080200EC @ =0x0001600f
- adds r1, r2, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, _080200F0 @ =0x00016113
- adds r2, r0
- ldr r3, _080200F4 @ =gBitTable
- ldr r1, _080200F8 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- bl _08020996
- .align 2, 0
-_080200E8: .4byte 0x02000000
-_080200EC: .4byte 0x0001600f
-_080200F0: .4byte 0x00016113
-_080200F4: .4byte gBitTable
-_080200F8: .4byte gUnknown_02024A6A
-_080200FC:
- movs r5, 0
- movs r7, 0
- ldr r1, _08020150 @ =gSaveBlock1 + 0x3688
- mov r9, r1
-_08020104:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _08020154 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802016A
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802016A
- ldr r0, _08020158 @ =gBitTable
- lsls r1, r7, 2
- adds r1, r0
- ldr r0, [r1]
- mov r2, r8
- ands r0, r2
- cmp r0, 0
- beq _08020138
- adds r5, 0x1
-_08020138:
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0802015C
- mov r3, r9
- ldrb r4, [r3]
- b _08020164
- .align 2, 0
-_08020150: .4byte gSaveBlock1 + 0x3688
-_08020154: .4byte gPlayerParty
-_08020158: .4byte gBitTable
-_0802015C:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
-_08020164:
- cmp r4, 0x19
- bne _0802016A
- adds r6, 0x1
-_0802016A:
- adds r7, 0x1
- cmp r7, 0x5
- ble _08020104
- ldr r3, _080201D0 @ =gBaseStats
- ldr r2, _080201D4 @ =gBattleMons
- ldr r0, _080201D8 @ =gUnknown_02024C09
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0, 0x9]
- adds r1, 0x2A
- ldrb r0, [r1]
- muls r0, r2
- movs r1, 0x7
- bl __divsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r6, 0
- beq _080201E0
- lsrs r4, r0, 17
- adds r0, r4, 0
- adds r1, r5, 0
- bl __divsi3
- mov r1, r10
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _080201B6
- movs r0, 0x1
- strh r0, [r1]
-_080201B6:
- ldr r5, _080201DC @ =gUnknown_02024DEE
- adds r0, r4, 0
- adds r1, r6, 0
- bl __divsi3
- strh r0, [r5]
- lsls r0, 16
- cmp r0, 0
- bne _080201FA
- movs r0, 0x1
- strh r0, [r5]
- b _080201FA
- .align 2, 0
-_080201D0: .4byte gBaseStats
-_080201D4: .4byte gBattleMons
-_080201D8: .4byte gUnknown_02024C09
-_080201DC: .4byte gUnknown_02024DEE
-_080201E0:
- adds r0, r1, 0
- adds r1, r5, 0
- bl __divsi3
- mov r2, r10
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- bne _080201F6
- movs r0, 0x1
- strh r0, [r2]
-_080201F6:
- ldr r0, _08020248 @ =gUnknown_02024DEE
- strh r6, [r0]
-_080201FA:
- ldr r1, _0802024C @ =0x02000000
- ldr r3, _08020250 @ =0x0001600f
- adds r2, r1, r3
- ldrb r0, [r2]
- adds r0, 0x1
- movs r3, 0
- strb r0, [r2]
- ldr r2, _08020254 @ =0x00016018
- adds r0, r1, r2
- strb r3, [r0]
- ldr r3, _08020258 @ =0x0001605f
- adds r1, r3
- mov r0, r8
- strb r0, [r1]
-_08020216:
- ldr r0, _0802025C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _08020220
- b _08020996
-_08020220:
- ldr r0, _0802024C @ =0x02000000
- ldr r1, _08020254 @ =0x00016018
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08020260 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0802026C
- ldr r0, _08020264 @ =gSaveBlock1
- ldr r2, _08020268 @ =0x00003688
- adds r0, r2
- ldrb r4, [r0]
- b _08020274
- .align 2, 0
-_08020248: .4byte gUnknown_02024DEE
-_0802024C: .4byte 0x02000000
-_08020250: .4byte 0x0001600f
-_08020254: .4byte 0x00016018
-_08020258: .4byte 0x0001605f
-_0802025C: .4byte gUnknown_02024A64
-_08020260: .4byte gPlayerParty
-_08020264: .4byte gSaveBlock1
-_08020268: .4byte 0x00003688
-_0802026C:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
-_08020274:
- ldr r5, _08020294 @ =0x02000000
- cmp r4, 0x19
- beq _080202A0
- ldr r3, _08020298 @ =0x0001605f
- adds r1, r5, r3
- ldrb r0, [r1]
- movs r2, 0x1
- ands r2, r0
- cmp r2, 0
- bne _080202A0
- lsrs r0, 1
- strb r0, [r1]
- ldr r0, _0802029C @ =0x0001600f
- adds r1, r5, r0
- b _080202C8
- .align 2, 0
-_08020294: .4byte 0x02000000
-_08020298: .4byte 0x0001605f
-_0802029C: .4byte 0x0001600f
-_080202A0:
- ldr r1, _080202D4 @ =0x00016018
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080202D8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x64
- bne _080202E8
- ldr r2, _080202DC @ =0x0001605f
- adds r1, r5, r2
- ldrb r0, [r1]
- lsrs r0, 1
- movs r2, 0
- strb r0, [r1]
- ldr r3, _080202E0 @ =0x0001600f
- adds r1, r5, r3
-_080202C8:
- movs r0, 0x5
- strb r0, [r1]
- ldr r0, _080202E4 @ =gUnknown_02024BEC
- str r2, [r0]
- b _08020996
- .align 2, 0
-_080202D4: .4byte 0x00016018
-_080202D8: .4byte gPlayerParty
-_080202DC: .4byte 0x0001605f
-_080202E0: .4byte 0x0001600f
-_080202E4: .4byte gUnknown_02024BEC
-_080202E8:
- ldr r0, _0802034C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08020316
- ldr r0, _08020350 @ =gBattleMons
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08020316
- ldr r0, _08020354 @ =0x0001601b
- adds r5, r0
- ldrb r0, [r5]
- cmp r0, 0
- bne _08020316
- bl sub_80325B8
- ldr r0, _08020358 @ =0x00000161
- bl PlayBGM
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
-_08020316:
- ldr r5, _0802035C @ =0x02000000
- ldr r1, _08020360 @ =0x00016018
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08020364 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _08020332
- b _0802051E
-_08020332:
- ldr r2, _08020368 @ =0x0001605f
- adds r0, r5, r2
- ldrb r0, [r0]
- movs r3, 0x1
- ands r3, r0
- cmp r3, 0
- beq _08020370
- ldr r1, _0802036C @ =gUnknown_02024BEC
- mov r3, r10
- ldrh r0, [r3]
- str r0, [r1]
- mov r8, r1
- b _08020376
- .align 2, 0
-_0802034C: .4byte gUnknown_020239F8
-_08020350: .4byte gBattleMons
-_08020354: .4byte 0x0001601b
-_08020358: .4byte 0x00000161
-_0802035C: .4byte 0x02000000
-_08020360: .4byte 0x00016018
-_08020364: .4byte gPlayerParty
-_08020368: .4byte 0x0001605f
-_0802036C: .4byte gUnknown_02024BEC
-_08020370:
- ldr r0, _080203EC @ =gUnknown_02024BEC
- str r3, [r0]
- mov r8, r0
-_08020376:
- cmp r4, 0x19
- bne _08020386
- ldr r0, _080203F0 @ =gUnknown_02024DEE
- ldrh r1, [r0]
- mov r2, r8
- ldr r0, [r2]
- adds r0, r1
- str r0, [r2]
-_08020386:
- cmp r4, 0x28
- bne _0802039C
- mov r3, r8
- ldr r1, [r3]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- mov r1, r8
- str r0, [r1]
-_0802039C:
- ldr r0, _080203F4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080203B8
- ldr r4, _080203EC @ =gUnknown_02024BEC
- ldr r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
-_080203B8:
- ldr r0, _080203F8 @ =0x02000000
- ldr r2, _080203FC @ =0x00016018
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08020400 @ =gPlayerParty
- adds r0, r1
- bl sub_8040AA4
- lsls r0, 24
- cmp r0, 0
- beq _08020404
- ldr r4, _080203EC @ =gUnknown_02024BEC
- ldr r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- movs r7, 0xA5
- lsls r7, 1
- mov r8, r4
- b _0802040A
- .align 2, 0
-_080203EC: .4byte gUnknown_02024BEC
-_080203F0: .4byte gUnknown_02024DEE
-_080203F4: .4byte gUnknown_020239F8
-_080203F8: .4byte 0x02000000
-_080203FC: .4byte 0x00016018
-_08020400: .4byte gPlayerParty
-_08020404:
- ldr r7, _0802043C @ =0x00000149
- ldr r3, _08020440 @ =gUnknown_02024BEC
- mov r8, r3
-_0802040A:
- ldr r0, _08020444 @ =gUnknown_020239F8
- ldrh r0, [r0]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08020488
- ldr r1, _08020448 @ =gUnknown_02024A6A
- ldr r0, _0802044C @ =0x02000000
- ldr r3, _08020450 @ =0x00016018
- adds r2, r0, r3
- ldrh r1, [r1, 0x4]
- adds r5, r0, 0
- ldr r4, _08020454 @ =gBitTable
- ldr r3, _08020458 @ =gUnknown_02024C0C
- ldrb r2, [r2]
- cmp r1, r2
- bne _08020460
- ldrb r1, [r3]
- ldr r0, [r4, 0x8]
- ands r1, r0
- cmp r1, 0
- bne _08020460
- ldr r0, _0802045C @ =0x000160a2
- adds r1, r5, r0
- b _0802047C
- .align 2, 0
-_0802043C: .4byte 0x00000149
-_08020440: .4byte gUnknown_02024BEC
-_08020444: .4byte gUnknown_020239F8
-_08020448: .4byte gUnknown_02024A6A
-_0802044C: .4byte 0x02000000
-_08020450: .4byte 0x00016018
-_08020454: .4byte gBitTable
-_08020458: .4byte gUnknown_02024C0C
-_0802045C: .4byte 0x000160a2
-_08020460:
- ldrb r2, [r3]
- ldr r0, [r4]
- ands r2, r0
- cmp r2, 0
- bne _08020478
- ldr r1, _08020474 @ =0x000160a2
- adds r0, r5, r1
- strb r2, [r0]
- b _08020490
- .align 2, 0
-_08020474: .4byte 0x000160a2
-_08020478:
- ldr r2, _08020484 @ =0x000160a2
- adds r1, r5, r2
-_0802047C:
- movs r0, 0x2
- strb r0, [r1]
- b _08020490
- .align 2, 0
-_08020484: .4byte 0x000160a2
-_08020488:
- ldr r0, _08020530 @ =0x02000000
- ldr r3, _08020534 @ =0x000160a2
- adds r0, r3
- strb r1, [r0]
-_08020490:
- ldr r1, _08020538 @ =gUnknown_030041C0
- movs r3, 0
- movs r2, 0xFD
- strb r2, [r1]
- movs r5, 0x4
- strb r5, [r1, 0x1]
- ldr r4, _08020530 @ =0x02000000
- ldr r0, _08020534 @ =0x000160a2
- adds r6, r4, r0
- ldrb r0, [r6]
- strb r0, [r1, 0x2]
- ldr r0, _0802053C @ =0x00016018
- adds r4, r0
- ldrb r0, [r4]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08020540 @ =gUnknown_03004290
- strb r2, [r1]
- strb r3, [r1, 0x1]
- strb r7, [r1, 0x2]
- movs r3, 0xFF
- lsls r3, 8
- ands r7, r3
- asrs r0, r7, 8
- strb r0, [r1, 0x3]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x4]
- ldr r1, _08020544 @ =gUnknown_030042B0
- strb r2, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- strb r5, [r1, 0x2]
- movs r0, 0x5
- strb r0, [r1, 0x3]
- mov r0, r8
- ldr r2, [r0]
- strb r2, [r1, 0x4]
- adds r0, r2, 0
- ands r0, r3
- asrs r0, 8
- strb r0, [r1, 0x5]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r2
- asrs r0, 16
- strb r0, [r1, 0x6]
- lsrs r2, 24
- strb r2, [r1, 0x7]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x8]
- ldrb r1, [r6]
- movs r0, 0xD
- bl b_std_message
- ldrb r1, [r4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08020548 @ =gPlayerParty
- adds r0, r1
- ldr r3, _0802054C @ =gBattleMons
- ldr r1, _08020550 @ =gUnknown_02024C09
- ldrb r2, [r1]
- movs r1, 0x58
- muls r1, r2
- adds r1, r3
- ldrh r1, [r1]
- bl MonGainEVs
-_0802051E:
- ldr r1, _08020530 @ =0x02000000
- ldr r3, _08020554 @ =0x0001605f
- adds r2, r1, r3
- ldrb r0, [r2]
- lsrs r0, 1
- strb r0, [r2]
- ldr r0, _08020558 @ =0x0001600f
- adds r1, r0
- b _08020618
- .align 2, 0
-_08020530: .4byte 0x02000000
-_08020534: .4byte 0x000160a2
-_08020538: .4byte gUnknown_030041C0
-_0802053C: .4byte 0x00016018
-_08020540: .4byte gUnknown_03004290
-_08020544: .4byte gUnknown_030042B0
-_08020548: .4byte gPlayerParty
-_0802054C: .4byte gBattleMons
-_08020550: .4byte gUnknown_02024C09
-_08020554: .4byte 0x0001605f
-_08020558: .4byte 0x0001600f
-_0802055C:
- ldr r0, _08020620 @ =gUnknown_02024A64
- ldr r2, [r0]
- cmp r2, 0
- beq _08020566
- b _08020996
-_08020566:
- ldr r1, _08020624 @ =gUnknown_02024260
- ldr r4, _08020628 @ =0x02000000
- ldr r3, _0802062C @ =0x000160a2
- adds r3, r4
- mov r8, r3
- ldrb r0, [r3]
- lsls r0, 9
- adds r0, r1
- strb r2, [r0]
- ldr r0, _08020630 @ =0x00016018
- adds r7, r4, r0
- ldrb r0, [r7]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08020634 @ =gPlayerParty
- adds r0, r5
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08020612
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x64
- beq _08020612
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3A
- bl GetMonData
- ldr r1, _08020638 @ =0x00017180
- adds r4, r1
- strh r0, [r4]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3B
- bl GetMonData
- strh r0, [r4, 0x2]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3C
- bl GetMonData
- strh r0, [r4, 0x4]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3D
- bl GetMonData
- strh r0, [r4, 0x6]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3E
- bl GetMonData
- strh r0, [r4, 0x8]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3F
- bl GetMonData
- strh r0, [r4, 0xA]
- ldr r4, _0802063C @ =gUnknown_02024A60
- mov r2, r8
- ldrb r0, [r2]
- strb r0, [r4]
- ldrb r1, [r7]
- ldr r0, _08020640 @ =gUnknown_02024BEC
- ldrh r2, [r0]
- movs r0, 0
- bl dp01_build_cmdbuf_x19_a_bb
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08020612:
- ldr r1, _08020628 @ =0x02000000
- ldr r3, _08020644 @ =0x0001600f
- adds r1, r3
-_08020618:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08020996
- .align 2, 0
-_08020620: .4byte gUnknown_02024A64
-_08020624: .4byte gUnknown_02024260
-_08020628: .4byte 0x02000000
-_0802062C: .4byte 0x000160a2
-_08020630: .4byte 0x00016018
-_08020634: .4byte gPlayerParty
-_08020638: .4byte 0x00017180
-_0802063C: .4byte gUnknown_02024A60
-_08020640: .4byte gUnknown_02024BEC
-_08020644: .4byte 0x0001600f
-_08020648:
- ldr r0, _080208AC @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _08020652
- b _08020996
-_08020652:
- ldr r1, _080208B0 @ =gUnknown_02024A60
- ldr r4, _080208B4 @ =0x02000000
- ldr r2, _080208B8 @ =0x000160a2
- adds r0, r4, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r2, _080208BC @ =gUnknown_02024260
- ldrb r3, [r1]
- lsls r1, r3, 9
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x21
- beq _0802066E
- b _080208F0
-_0802066E:
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0xB
- beq _0802067A
- b _080208F0
-_0802067A:
- ldr r0, _080208C0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080206A8
- ldr r1, _080208C4 @ =gUnknown_02024A6A
- lsls r0, r3, 1
- adds r2, r0, r1
- ldr r0, _080208C8 @ =0x00016018
- adds r1, r4, r0
- ldrh r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bne _080206A8
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080208CC @ =gPlayerParty
- adds r0, r1
- adds r1, r3, 0
- bl sub_80324F8
-_080206A8:
- ldr r1, _080208D0 @ =gUnknown_030041C0
- movs r2, 0xFD
- strb r2, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r5, _080208B0 @ =gUnknown_02024A60
- ldrb r0, [r5]
- strb r0, [r1, 0x2]
- ldr r0, _080208B4 @ =0x02000000
- ldr r3, _080208C8 @ =0x00016018
- adds r6, r0, r3
- ldrb r0, [r6]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r4, _080208D4 @ =gUnknown_03004290
- strb r2, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- movs r0, 0x3
- strb r0, [r4, 0x3]
- ldrb r0, [r6]
- movs r1, 0x64
- mov r8, r1
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- ldr r7, _080208CC @ =gPlayerParty
- adds r0, r7
- movs r1, 0x38
- bl GetMonData
- strb r0, [r4, 0x4]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r4, 0x5]
- bl b_movescr_stack_push_cursor
- ldr r2, _080208D8 @ =gUnknown_03004324
- ldr r1, _080208DC @ =gBitTable
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080208E0 @ =gUnknown_02024C10
- ldr r0, _080208E4 @ =gUnknown_081D8EF3
- str r0, [r1]
- ldr r4, _080208E8 @ =gUnknown_02024BEC
- ldr r2, _080208BC @ =gUnknown_02024260
- ldrb r1, [r5]
- lsls r1, 9
- adds r0, r2, 0x2
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r2, 0x3
- adds r1, r2
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- str r3, [r4]
- ldrb r0, [r6]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7
- movs r1, 0
- bl AdjustFriendship
- ldr r0, _080208C4 @ =gUnknown_02024A6A
- ldrb r1, [r6]
- ldrh r0, [r0]
- cmp r0, r1
- bne _080207EC
- ldr r4, _080208EC @ =gBattleMons
- ldrh r0, [r4, 0x28]
- cmp r0, 0
- beq _080207EC
- mov r0, r8
- muls r0, r1
- adds r0, r7
- movs r1, 0x38
- bl GetMonData
- adds r1, r4, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0x39
- bl GetMonData
- strh r0, [r4, 0x28]
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r4, 0x2C]
- ldrb r0, [r6]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7
- movs r1, 0x3B
- bl GetMonData
- strh r0, [r4, 0x2]
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0x3C
- bl GetMonData
- strh r0, [r4, 0x4]
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x3D
- bl GetMonData
- strh r0, [r4, 0x6]
- ldrb r0, [r6]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7
- movs r1, 0x3D
- bl GetMonData
- strh r0, [r4, 0x6]
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0x3E
- bl GetMonData
- strh r0, [r4, 0x8]
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x3F
- bl GetMonData
- strh r0, [r4, 0xA]
-_080207EC:
- ldr r0, _080208C4 @ =gUnknown_02024A6A
- ldr r1, _080208B4 @ =0x02000000
- ldr r3, _080208C8 @ =0x00016018
- adds r7, r1, r3
- ldrb r2, [r7]
- ldrh r0, [r0, 0x4]
- cmp r0, r2
- bne _080208F6
- ldr r6, _080208EC @ =gBattleMons
- movs r0, 0xD8
- adds r0, r6
- mov r8, r0
- ldrh r0, [r0]
- cmp r0, 0
- beq _080208F6
- ldr r0, _080208C0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080208F6
- movs r5, 0x64
- adds r0, r2, 0
- muls r0, r5
- ldr r4, _080208CC @ =gPlayerParty
- adds r0, r4
- movs r1, 0x38
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xDA
- strb r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- mov r1, r8
- strh r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xDC
- strh r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3B
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xB2
- strh r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3C
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xB4
- strh r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3D
- bl GetMonData
- movs r2, 0xB6
- adds r2, r6
- mov r8, r2
- strh r0, [r2]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3D
- bl GetMonData
- mov r3, r8
- strh r0, [r3]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3E
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xB8
- strh r0, [r1]
- b _080208F6
- .align 2, 0
-_080208AC: .4byte gUnknown_02024A64
-_080208B0: .4byte gUnknown_02024A60
-_080208B4: .4byte 0x02000000
-_080208B8: .4byte 0x000160a2
-_080208BC: .4byte gUnknown_02024260
-_080208C0: .4byte gUnknown_020239F8
-_080208C4: .4byte gUnknown_02024A6A
-_080208C8: .4byte 0x00016018
-_080208CC: .4byte gPlayerParty
-_080208D0: .4byte gUnknown_030041C0
-_080208D4: .4byte gUnknown_03004290
-_080208D8: .4byte gUnknown_03004324
-_080208DC: .4byte gBitTable
-_080208E0: .4byte gUnknown_02024C10
-_080208E4: .4byte gUnknown_081D8EF3
-_080208E8: .4byte gUnknown_02024BEC
-_080208EC: .4byte gBattleMons
-_080208F0:
- ldr r1, _08020904 @ =gUnknown_02024BEC
- movs r0, 0
- str r0, [r1]
-_080208F6:
- ldr r0, _08020908 @ =0x02000000
- ldr r1, _0802090C @ =0x0001600f
- adds r0, r1
- movs r1, 0x5
- strb r1, [r0]
- b _08020996
- .align 2, 0
-_08020904: .4byte gUnknown_02024BEC
-_08020908: .4byte 0x02000000
-_0802090C: .4byte 0x0001600f
-_08020910:
- ldr r0, _08020924 @ =gUnknown_02024BEC
- ldr r0, [r0]
- cmp r0, 0
- beq _08020930
- ldr r0, _08020928 @ =0x02000000
- ldr r2, _0802092C @ =0x0001600f
- adds r0, r2
- movs r1, 0x3
- strb r1, [r0]
- b _08020996
- .align 2, 0
-_08020924: .4byte gUnknown_02024BEC
-_08020928: .4byte 0x02000000
-_0802092C: .4byte 0x0001600f
-_08020930:
- ldr r2, _08020950 @ =0x02000000
- ldr r3, _08020954 @ =0x00016018
- adds r1, r2, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _0802095C
- ldr r0, _08020958 @ =0x0001600f
- adds r1, r2, r0
- movs r0, 0x2
- strb r0, [r1]
- b _08020996
- .align 2, 0
-_08020950: .4byte 0x02000000
-_08020954: .4byte 0x00016018
-_08020958: .4byte 0x0001600f
-_0802095C:
- ldr r3, _08020968 @ =0x0001600f
- adds r1, r2, r3
- movs r0, 0x6
- strb r0, [r1]
- b _08020996
- .align 2, 0
-_08020968: .4byte 0x0001600f
-_0802096C:
- ldr r0, _080209A4 @ =gUnknown_02024A64
- ldr r5, [r0]
- cmp r5, 0
- bne _08020996
- ldr r4, _080209A8 @ =gBattleMons
- ldr r2, _080209AC @ =gUnknown_02024C09
- ldrb r0, [r2]
- movs r1, 0x58
- muls r0, r1
- adds r0, r4
- movs r3, 0
- strh r5, [r0, 0x2E]
- ldrb r0, [r2]
- muls r0, r1
- adds r0, r4
- adds r0, 0x20
- strb r3, [r0]
- ldr r1, _080209B0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08020996:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080209A4: .4byte gUnknown_02024A64
-_080209A8: .4byte gBattleMons
-_080209AC: .4byte gUnknown_02024C09
-_080209B0: .4byte gUnknown_02024C10
- thumb_func_end sub_8020004
-
- thumb_func_start sub_80209B4
-sub_80209B4: @ 80209B4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- ldr r0, _08020AF0 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _080209C6
- b _08020B46
-_080209C6:
- movs r5, 0
-_080209C8:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08020AF4 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080209F8
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080209F8
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- adds r0, r6, r0
- lsls r0, 16
- lsrs r6, r0, 16
-_080209F8:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080209C8
- cmp r6, 0
- bne _08020A0C
- ldr r0, _08020AF8 @ =gUnknown_02024D26
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
-_08020A0C:
- movs r6, 0
- movs r5, 0
-_08020A10:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08020AFC @ =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08020A40
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08020A40
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- adds r0, r6, r0
- lsls r0, 16
- lsrs r6, r0, 16
-_08020A40:
- adds r5, 0x1
- cmp r5, 0x5
- ble _08020A10
- ldr r2, _08020AF8 @ =gUnknown_02024D26
- cmp r6, 0
- bne _08020A54
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_08020A54:
- ldrb r0, [r2]
- cmp r0, 0
- bne _08020B3E
- ldr r2, _08020B00 @ =gUnknown_020239F8
- ldrh r1, [r2]
- movs r0, 0x2
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _08020B3E
- movs r2, 0
- movs r5, 0
- ldr r0, _08020B04 @ =gUnknown_02024A68
- ldrb r3, [r0]
- mov r12, r0
- ldr r7, _08020B08 @ =gUnknown_02024C10
- cmp r2, r3
- bge _08020AA0
- ldr r0, _08020B0C @ =gUnknown_02024C6C
- movs r1, 0x80
- lsls r1, 21
- ldr r6, [r0]
- adds r4, r3, 0
- ldr r3, _08020B10 @ =gUnknown_02024D68
-_08020A84:
- adds r0, r1, 0
- lsls r0, r5
- ands r0, r6
- cmp r0, 0
- beq _08020A98
- ldrb r0, [r3]
- lsls r0, 25
- cmp r0, 0
- blt _08020A98
- adds r2, 0x1
-_08020A98:
- adds r3, 0x28
- adds r5, 0x2
- cmp r5, r4
- blt _08020A84
-_08020AA0:
- movs r4, 0
- movs r5, 0x1
- mov r0, r12
- ldrb r3, [r0]
- cmp r5, r3
- bge _08020ADA
- ldr r0, _08020B0C @ =gUnknown_02024C6C
- movs r1, 0x80
- lsls r1, 21
- mov r12, r1
- ldr r1, [r0]
- ldr r0, _08020B10 @ =gUnknown_02024D68
- adds r6, r3, 0
- adds r3, r0, 0
- adds r3, 0x14
-_08020ABE:
- mov r0, r12
- lsls r0, r5
- ands r0, r1
- cmp r0, 0
- beq _08020AD2
- ldrb r0, [r3]
- lsls r0, 25
- cmp r0, 0
- blt _08020AD2
- adds r4, 0x1
-_08020AD2:
- adds r3, 0x28
- adds r5, 0x2
- cmp r5, r6
- blt _08020ABE
-_08020ADA:
- mov r0, r8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08020B14
- adds r0, r4, r2
- cmp r0, 0x1
- bgt _08020B1C
- b _08020B36
- .align 2, 0
-_08020AF0: .4byte gUnknown_02024A64
-_08020AF4: .4byte gPlayerParty
-_08020AF8: .4byte gUnknown_02024D26
-_08020AFC: .4byte gEnemyParty
-_08020B00: .4byte gUnknown_020239F8
-_08020B04: .4byte gUnknown_02024A68
-_08020B08: .4byte gUnknown_02024C10
-_08020B0C: .4byte gUnknown_02024C6C
-_08020B10: .4byte gUnknown_02024D68
-_08020B14:
- cmp r4, 0
- beq _08020B36
- cmp r2, 0
- beq _08020B36
-_08020B1C:
- ldr r2, [r7]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- str r1, [r7]
- b _08020B46
-_08020B36:
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- b _08020B46
-_08020B3E:
- ldr r1, _08020B50 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08020B46:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08020B50: .4byte gUnknown_02024C10
- thumb_func_end sub_80209B4
-
- thumb_func_start sub_8020B54
-sub_8020B54: @ 8020B54
- ldr r1, _08020B80 @ =gUnknown_02024C68
- movs r0, 0
- strb r0, [r1]
- ldr r0, _08020B84 @ =0x02000000
- ldr r1, _08020B88 @ =0x0001601f
- adds r0, r1
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08020B8C @ =gCritMultiplier
- strb r1, [r0]
- ldr r0, _08020B90 @ =gUnknown_02024D1E
- strb r2, [r0, 0x3]
- strb r2, [r0, 0x6]
- ldr r2, _08020B94 @ =gUnknown_02024C6C
- ldr r0, [r2]
- subs r1, 0x42
- ands r0, r1
- ldr r1, _08020B98 @ =0xffffbfff
- ands r0, r1
- str r0, [r2]
- bx lr
- .align 2, 0
-_08020B80: .4byte gUnknown_02024C68
-_08020B84: .4byte 0x02000000
-_08020B88: .4byte 0x0001601f
-_08020B8C: .4byte gCritMultiplier
-_08020B90: .4byte gUnknown_02024D1E
-_08020B94: .4byte gUnknown_02024C6C
-_08020B98: .4byte 0xffffbfff
- thumb_func_end sub_8020B54
-
- thumb_func_start atk25_resetflags
-atk25_resetflags: @ 8020B9C
- push {lr}
- bl sub_8020B54
- ldr r1, _08020BB0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08020BB0: .4byte gUnknown_02024C10
- thumb_func_end atk25_resetflags
-
- thumb_func_start sub_8020BB4
-sub_8020BB4: @ 8020BB4
- ldr r3, _08020BC4 @ =gUnknown_02024C0E
- ldr r2, _08020BC8 @ =gUnknown_02024C10
- ldr r0, [r2]
- ldrb r1, [r0, 0x1]
- strb r1, [r3]
- adds r0, 0x2
- str r0, [r2]
- bx lr
- .align 2, 0
-_08020BC4: .4byte gUnknown_02024C0E
-_08020BC8: .4byte gUnknown_02024C10
- thumb_func_end sub_8020BB4
-
- thumb_func_start atk27_cmd27
-atk27_cmd27: @ 8020BCC
- push {lr}
- ldr r1, _08020BE8 @ =gUnknown_02024C0E
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _08020BF0
- ldr r1, _08020BEC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08020C0A
- .align 2, 0
-_08020BE8: .4byte gUnknown_02024C0E
-_08020BEC: .4byte gUnknown_02024C10
-_08020BF0:
- ldr r3, _08020C10 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
-_08020C0A:
- pop {r0}
- bx r0
- .align 2, 0
-_08020C10: .4byte gUnknown_02024C10
- thumb_func_end atk27_cmd27
-
- thumb_func_start sub_8020C14
-sub_8020C14: @ 8020C14
- ldr r3, _08020C30 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- bx lr
- .align 2, 0
-_08020C30: .4byte gUnknown_02024C10
- thumb_func_end sub_8020C14
-
- thumb_func_start atk29_jumpifbyte
-atk29_jumpifbyte: @ 8020C34
- push {r4-r6,lr}
- ldr r3, _08020C78 @ =gUnknown_02024C10
- ldr r1, [r3]
- ldrb r6, [r1, 0x1]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x6]
- ldrb r2, [r1, 0x7]
- ldrb r0, [r1, 0x8]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x9]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 24
- adds r2, r0
- adds r1, 0xB
- str r1, [r3]
- cmp r6, 0x5
- bhi _08020CCC
- lsls r0, r6, 2
- ldr r1, _08020C7C @ =_08020C80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08020C78: .4byte gUnknown_02024C10
-_08020C7C: .4byte _08020C80
- .align 2, 0
-_08020C80:
- .4byte _08020C98
- .4byte _08020CA0
- .4byte _08020CA8
- .4byte _08020CB0
- .4byte _08020CB8
- .4byte _08020CC2
-_08020C98:
- ldrb r0, [r5]
- cmp r0, r4
- bne _08020CCC
- b _08020CCA
-_08020CA0:
- ldrb r0, [r5]
- cmp r0, r4
- beq _08020CCC
- b _08020CCA
-_08020CA8:
- ldrb r0, [r5]
- cmp r0, r4
- bls _08020CCC
- b _08020CCA
-_08020CB0:
- ldrb r0, [r5]
- cmp r0, r4
- bcs _08020CCC
- b _08020CCA
-_08020CB8:
- ldrb r0, [r5]
- ands r4, r0
- cmp r4, 0
- beq _08020CCC
- b _08020CCA
-_08020CC2:
- ldrb r0, [r5]
- ands r4, r0
- cmp r4, 0
- bne _08020CCC
-_08020CCA:
- str r2, [r3]
-_08020CCC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk29_jumpifbyte
-
- thumb_func_start sub_8020CD4
-sub_8020CD4: @ 8020CD4
- push {r4-r6,lr}
- ldr r3, _08020D20 @ =gUnknown_02024C10
- ldr r1, [r3]
- ldrb r6, [r1, 0x1]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x6]
- ldrb r0, [r1, 0x7]
- lsls r0, 8
- orrs r4, r0
- ldrb r2, [r1, 0x8]
- ldrb r0, [r1, 0x9]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 24
- adds r2, r0
- adds r1, 0xC
- str r1, [r3]
- cmp r6, 0x5
- bhi _08020D74
- lsls r0, r6, 2
- ldr r1, _08020D24 @ =_08020D28
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08020D20: .4byte gUnknown_02024C10
-_08020D24: .4byte _08020D28
- .align 2, 0
-_08020D28:
- .4byte _08020D40
- .4byte _08020D48
- .4byte _08020D50
- .4byte _08020D58
- .4byte _08020D60
- .4byte _08020D6A
-_08020D40:
- ldrh r0, [r5]
- cmp r0, r4
- bne _08020D74
- b _08020D72
-_08020D48:
- ldrh r0, [r5]
- cmp r0, r4
- beq _08020D74
- b _08020D72
-_08020D50:
- ldrh r0, [r5]
- cmp r0, r4
- bls _08020D74
- b _08020D72
-_08020D58:
- ldrh r0, [r5]
- cmp r0, r4
- bcs _08020D74
- b _08020D72
-_08020D60:
- ldrh r0, [r5]
- ands r4, r0
- cmp r4, 0
- beq _08020D74
- b _08020D72
-_08020D6A:
- ldrh r0, [r5]
- ands r4, r0
- cmp r4, 0
- bne _08020D74
-_08020D72:
- str r2, [r3]
-_08020D74:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8020CD4
-
- thumb_func_start sub_8020D7C
-sub_8020D7C: @ 8020D7C
- push {r4-r6,lr}
- ldr r3, _08020DD4 @ =gUnknown_02024C10
- ldr r1, [r3]
- ldrb r6, [r1, 0x1]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x6]
- ldrb r0, [r1, 0x7]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r1, 0x9]
- lsls r0, 24
- orrs r4, r0
- ldrb r2, [r1, 0xA]
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- adds r2, r0
- adds r1, 0xE
- str r1, [r3]
- cmp r6, 0x5
- bhi _08020E28
- lsls r0, r6, 2
- ldr r1, _08020DD8 @ =_08020DDC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08020DD4: .4byte gUnknown_02024C10
-_08020DD8: .4byte _08020DDC
- .align 2, 0
-_08020DDC:
- .4byte _08020DF4
- .4byte _08020DFC
- .4byte _08020E04
- .4byte _08020E0C
- .4byte _08020E14
- .4byte _08020E1E
-_08020DF4:
- ldr r0, [r5]
- cmp r0, r4
- bne _08020E28
- b _08020E26
-_08020DFC:
- ldr r0, [r5]
- cmp r0, r4
- beq _08020E28
- b _08020E26
-_08020E04:
- ldr r0, [r5]
- cmp r0, r4
- bls _08020E28
- b _08020E26
-_08020E0C:
- ldr r0, [r5]
- cmp r0, r4
- bcs _08020E28
- b _08020E26
-_08020E14:
- ldr r0, [r5]
- ands r0, r4
- cmp r0, 0
- beq _08020E28
- b _08020E26
-_08020E1E:
- ldr r0, [r5]
- ands r0, r4
- cmp r0, 0
- bne _08020E28
-_08020E26:
- str r2, [r3]
-_08020E28:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8020D7C
-
- thumb_func_start sub_8020E30
-sub_8020E30: @ 8020E30
- push {r4-r7,lr}
- ldr r2, _08020E88 @ =gUnknown_02024C10
- ldr r3, [r2]
- ldrb r1, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 24
- adds r5, r1, r0
- ldrb r1, [r3, 0x5]
- ldrb r0, [r3, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 24
- adds r4, r1, r0
- ldrb r6, [r3, 0x9]
- ldrb r1, [r3, 0xA]
- ldrb r0, [r3, 0xB]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0xC]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0xD]
- lsls r0, 24
- adds r1, r0
- mov r12, r1
- movs r1, 0
- cmp r1, r6
- bcs _08020EA8
- ldrb r0, [r5]
- ldrb r7, [r4]
- cmp r0, r7
- beq _08020E8C
- adds r0, r3, 0
- b _08020EA4
- .align 2, 0
-_08020E88: .4byte gUnknown_02024C10
-_08020E8C:
- adds r5, 0x1
- adds r4, 0x1
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r6
- bcs _08020EA8
- ldrb r0, [r5]
- ldrb r3, [r4]
- cmp r0, r3
- beq _08020E8C
- ldr r0, [r2]
-_08020EA4:
- adds r0, 0xE
- str r0, [r2]
-_08020EA8:
- cmp r1, r6
- bne _08020EB0
- mov r7, r12
- str r7, [r2]
-_08020EB0:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8020E30
-
- thumb_func_start sub_8020EB8
-sub_8020EB8: @ 8020EB8
- push {r4-r7,lr}
- movs r7, 0
- ldr r3, _08020F2C @ =gUnknown_02024C10
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r2, [r1, 0x5]
- ldrb r0, [r1, 0x6]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 24
- adds r4, r2, r0
- ldrb r6, [r1, 0x9]
- ldrb r2, [r1, 0xA]
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- adds r2, r0
- mov r12, r2
- movs r1, 0
- cmp r7, r6
- bcs _08020F22
-_08020F06:
- ldrb r0, [r5]
- ldrb r2, [r4]
- cmp r0, r2
- bne _08020F14
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_08020F14:
- adds r5, 0x1
- adds r4, 0x1
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r6
- bcc _08020F06
-_08020F22:
- cmp r7, r6
- beq _08020F30
- mov r0, r12
- b _08020F34
- .align 2, 0
-_08020F2C: .4byte gUnknown_02024C10
-_08020F30:
- ldr r0, [r3]
- adds r0, 0xE
-_08020F34:
- str r0, [r3]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8020EB8
-
- thumb_func_start sub_8020F3C
-sub_8020F3C: @ 8020F3C
- ldr r3, _08020F60 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r2, 0x5]
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_08020F60: .4byte gUnknown_02024C10
- thumb_func_end sub_8020F3C
-
- thumb_func_start sub_8020F64
-sub_8020F64: @ 8020F64
- ldr r3, _08020F8C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r2, 0x5]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_08020F8C: .4byte gUnknown_02024C10
- thumb_func_end sub_8020F64
-
- thumb_func_start sub_8020F90
-sub_8020F90: @ 8020F90
- ldr r3, _08020FB8 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r1]
- ldrb r2, [r2, 0x5]
- subs r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_08020FB8: .4byte gUnknown_02024C10
- thumb_func_end sub_8020F90
-
- thumb_func_start atk31_copyarray
-atk31_copyarray: @ 8020FBC
- push {r4-r6,lr}
- ldr r3, _0802100C @ =gUnknown_02024C10
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- adds r6, r2, r0
- ldrb r2, [r1, 0x5]
- ldrb r0, [r1, 0x6]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x9]
- movs r2, 0
- cmp r2, r4
- bge _08021000
-_08020FF2:
- adds r0, r6, r2
- adds r1, r5, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, r4
- blt _08020FF2
-_08021000:
- ldr r0, [r3]
- adds r0, 0xA
- str r0, [r3]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802100C: .4byte gUnknown_02024C10
- thumb_func_end atk31_copyarray
-
- thumb_func_start atk32_memcpy_with_offset
-atk32_memcpy_with_offset: @ 8021010
- push {r4-r7,lr}
- ldr r3, _08021078 @ =gUnknown_02024C10
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- adds r7, r2, r0
- ldrb r2, [r1, 0x5]
- ldrb r0, [r1, 0x6]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 24
- adds r6, r2, r0
- ldrb r2, [r1, 0x9]
- ldrb r0, [r1, 0xA]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0xD]
- movs r2, 0
- cmp r2, r4
- bge _0802106C
-_0802105A:
- adds r0, r7, r2
- ldrb r1, [r5]
- adds r1, r2, r1
- adds r1, r6, r1
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, r4
- blt _0802105A
-_0802106C:
- ldr r0, [r3]
- adds r0, 0xE
- str r0, [r3]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08021078: .4byte gUnknown_02024C10
- thumb_func_end atk32_memcpy_with_offset
-
- thumb_func_start sub_802107C
-sub_802107C: @ 802107C
- ldr r3, _080210A4 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r1]
- ldrb r2, [r2, 0x5]
- orrs r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_080210A4: .4byte gUnknown_02024C10
- thumb_func_end sub_802107C
-
- thumb_func_start atk34_orhalfword
-atk34_orhalfword: @ 80210A8
- push {r4,lr}
- ldr r4, _080210DC @ =gUnknown_02024C10
- ldr r3, [r4]
- ldrb r2, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 24
- adds r2, r0
- ldrb r1, [r3, 0x5]
- ldrb r0, [r3, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrh r0, [r2]
- orrs r1, r0
- strh r1, [r2]
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080210DC: .4byte gUnknown_02024C10
- thumb_func_end atk34_orhalfword
-
- thumb_func_start atk35_orword
-atk35_orword: @ 80210E0
- push {r4,lr}
- ldr r4, _08021120 @ =gUnknown_02024C10
- ldr r2, [r4]
- ldrb r3, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r3, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r3, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r3, r0
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- adds r1, r0
- ldr r0, [r3]
- orrs r0, r1
- str r0, [r3]
- ldr r0, [r4]
- adds r0, 0x9
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08021120: .4byte gUnknown_02024C10
- thumb_func_end atk35_orword
-
- thumb_func_start sub_8021124
-sub_8021124: @ 8021124
- ldr r3, _0802114C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r2, [r2, 0x5]
- ldrb r0, [r1]
- bics r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_0802114C: .4byte gUnknown_02024C10
- thumb_func_end sub_8021124
-
- thumb_func_start atk37_bichalfword
-atk37_bichalfword: @ 8021150
- push {r4,lr}
- ldr r4, _08021184 @ =gUnknown_02024C10
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r2, [r3, 0x5]
- ldrb r0, [r3, 0x6]
- lsls r0, 8
- orrs r2, r0
- ldrh r0, [r1]
- bics r0, r2
- strh r0, [r1]
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08021184: .4byte gUnknown_02024C10
- thumb_func_end atk37_bichalfword
-
- thumb_func_start atk38_bicword
-atk38_bicword: @ 8021188
- push {r4,lr}
- ldr r4, _080211C8 @ =gUnknown_02024C10
- ldr r2, [r4]
- ldrb r3, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r3, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r3, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r3, r0
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- adds r1, r0
- ldr r0, [r3]
- bics r0, r1
- str r0, [r3]
- ldr r0, [r4]
- adds r0, 0x9
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080211C8: .4byte gUnknown_02024C10
- thumb_func_end atk38_bicword
-
- thumb_func_start atk39_pause
-atk39_pause: @ 80211CC
- push {r4,r5,lr}
- ldr r0, _08021200 @ =gUnknown_02024A64
- ldr r4, [r0]
- cmp r4, 0
- bne _080211F8
- ldr r5, _08021204 @ =gUnknown_02024C10
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r3, _08021208 @ =gUnknown_02024D18
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r1
- bcc _080211F8
- strh r4, [r3]
- adds r0, r2, 0x3
- str r0, [r5]
-_080211F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08021200: .4byte gUnknown_02024A64
-_08021204: .4byte gUnknown_02024C10
-_08021208: .4byte gUnknown_02024D18
- thumb_func_end atk39_pause
-
- thumb_func_start sub_802120C
-sub_802120C: @ 802120C
- push {lr}
- ldr r0, _08021224 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0802121E
- ldr r1, _08021228 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0802121E:
- pop {r0}
- bx r0
- .align 2, 0
-_08021224: .4byte gUnknown_02024A64
-_08021228: .4byte gUnknown_02024C10
- thumb_func_end sub_802120C
-
- thumb_func_start atk3B_8022C68
-atk3B_8022C68: @ 802122C
- push {lr}
- ldr r0, _08021240 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0802124C
- ldr r0, _08021244 @ =gUnknown_02024A60
- ldr r1, _08021248 @ =gUnknown_02024C08
- b _08021250
- .align 2, 0
-_08021240: .4byte gUnknown_02024C10
-_08021244: .4byte gUnknown_02024A60
-_08021248: .4byte gUnknown_02024C08
-_0802124C:
- ldr r0, _08021274 @ =gUnknown_02024A60
- ldr r1, _08021278 @ =gUnknown_02024C07
-_08021250:
- ldrb r1, [r1]
- strb r1, [r0]
- ldr r0, _0802127C @ =gUnknown_02024BEC
- ldrh r1, [r0]
- movs r0, 0
- bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
- ldr r0, _08021274 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08021280 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08021274: .4byte gUnknown_02024A60
-_08021278: .4byte gUnknown_02024C07
-_0802127C: .4byte gUnknown_02024BEC
-_08021280: .4byte gUnknown_02024C10
- thumb_func_end atk3B_8022C68
-
- thumb_func_start atk3C_return
-atk3C_return: @ 8021284
- push {lr}
- bl b_movescr_stack_pop_cursor
- pop {r0}
- bx r0
- thumb_func_end atk3C_return
-
- thumb_func_start sub_8021290
-sub_8021290: @ 8021290
- ldr r0, _080212A4 @ =gUnknown_02024C68
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080212A8 @ =gUnknown_02024A60
- strb r1, [r0]
- ldr r1, _080212AC @ =gUnknown_02024A7F
- movs r0, 0xB
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080212A4: .4byte gUnknown_02024C68
-_080212A8: .4byte gUnknown_02024A60
-_080212AC: .4byte gUnknown_02024A7F
- thumb_func_end sub_8021290
-
- thumb_func_start sub_80212B0
-sub_80212B0: @ 80212B0
- ldr r1, _080212C0 @ =gUnknown_02024A60
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080212C4 @ =gUnknown_02024A7F
- movs r0, 0xB
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080212C0: .4byte gUnknown_02024A60
-_080212C4: .4byte gUnknown_02024A7F
- thumb_func_end sub_80212B0
-
- thumb_func_start atk3F_end3
-atk3F_end3: @ 80212C8
- push {lr}
- bl b_movescr_stack_pop_cursor
- ldr r2, _080212F0 @ =0x02017140
- adds r1, r2, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0
- beq _080212DE
- subs r0, 0x1
- strb r0, [r1]
-_080212DE:
- ldr r0, _080212F4 @ =gUnknown_030042D4
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080212F0: .4byte 0x02017140
-_080212F4: .4byte gUnknown_030042D4
- thumb_func_end atk3F_end3
-
- thumb_func_start atk41_call
-atk41_call: @ 80212F8
- push {r4,lr}
- ldr r4, _08021324 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x5
- bl b_movescr_stack_push
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08021324: .4byte gUnknown_02024C10
- thumb_func_end atk41_call
-
- thumb_func_start atk42_jumpiftype2
-atk42_jumpiftype2: @ 8021328
- push {r4,lr}
- ldr r4, _08021370 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [r4]
- ldr r2, _08021374 @ =gBattleMons
- movs r1, 0x58
- muls r0, r1
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r2, [r3, 0x2]
- ldrb r1, [r1]
- cmp r2, r1
- beq _08021356
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r2, r0
- bne _08021378
-_08021356:
- ldrb r1, [r3, 0x3]
- ldrb r0, [r3, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0802137C
- .align 2, 0
-_08021370: .4byte gUnknown_02024C10
-_08021374: .4byte gBattleMons
-_08021378:
- adds r0, r3, 0x7
- str r0, [r4]
-_0802137C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atk42_jumpiftype2
-
- thumb_func_start sub_8021384
-sub_8021384: @ 8021384
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _080213BC @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r2, [r0, 0x1]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _080213C0
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _080213C6
- .align 2, 0
-_080213BC: .4byte gUnknown_02024C10
-_080213C0:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_080213C6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8021384
-
- thumb_func_start sub_80213D0
-sub_80213D0: @ 80213D0
- ldr r1, _080213E4 @ =0x02000000
- ldr r0, _080213E8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r2, _080213EC @ =0x00016060
- adds r0, r2
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080213E4: .4byte 0x02000000
-_080213E8: .4byte gUnknown_02024C07
-_080213EC: .4byte 0x00016060
- thumb_func_end sub_80213D0
-
- thumb_func_start atk46_cmd46
-atk46_cmd46: @ 80213F0
- push {r4-r6,lr}
- ldr r5, _08021444 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r6, _08021448 @ =gUnknown_02024A60
- strb r0, [r6]
- ldr r2, [r5]
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- adds r3, r1, r0
- ldrb r4, [r2, 0x2]
- adds r0, r4, 0
- cmp r0, 0x1
- beq _08021426
- cmp r0, 0x11
- beq _08021426
- cmp r0, 0x2
- bne _0802144C
-_08021426:
- ldr r4, _08021444 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r1, [r0, 0x2]
- ldrh r2, [r3]
- movs r0, 0
- bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
- ldr r0, _08021448 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- b _080214AE
- .align 2, 0
-_08021444: .4byte gUnknown_02024C10
-_08021448: .4byte gUnknown_02024A60
-_0802144C:
- ldr r0, _08021464 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802146C
- adds r0, r2, 0x7
- bl b_movescr_stack_push
- ldr r0, _08021468 @ =gUnknown_081D8EEF
- b _080214AC
- .align 2, 0
-_08021464: .4byte gUnknown_02024C6C
-_08021468: .4byte gUnknown_081D8EEF
-_0802146C:
- adds r0, r4, 0
- subs r0, 0xA
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08021498
- ldr r1, _08021490 @ =gUnknown_02024C98
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08021494 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08021498
- adds r0, r2, 0x7
- b _080214AC
- .align 2, 0
-_08021490: .4byte gUnknown_02024C98
-_08021494: .4byte 0x000400c0
-_08021498:
- ldrb r1, [r2, 0x2]
- ldrh r2, [r3]
- movs r0, 0
- bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
- ldrb r0, [r6]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x7
-_080214AC:
- str r0, [r5]
-_080214AE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk46_cmd46
-
- thumb_func_start sub_80214B4
-sub_80214B4: @ 80214B4
- push {r4-r7,lr}
- ldr r6, _0802151C @ =gUnknown_02024C10
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r7, _08021520 @ =gUnknown_02024A60
- strb r0, [r7]
- ldr r2, [r6]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- adds r3, r1, r0
- ldrb r1, [r2, 0x6]
- ldrb r0, [r2, 0x7]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x9]
- lsls r0, 24
- adds r4, r1, r0
- ldrb r5, [r3]
- adds r0, r5, 0
- cmp r0, 0x1
- beq _080214FE
- cmp r0, 0x11
- beq _080214FE
- cmp r0, 0x2
- bne _08021524
-_080214FE:
- ldrb r1, [r3]
- ldrh r2, [r4]
- movs r0, 0
- bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
- ldr r0, _08021520 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0802151C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
- b _0802157A
- .align 2, 0
-_0802151C: .4byte gUnknown_02024C10
-_08021520: .4byte gUnknown_02024A60
-_08021524:
- ldr r0, _08021534 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08021538
- adds r0, r2, 0
- b _08021576
- .align 2, 0
-_08021534: .4byte gUnknown_02024C6C
-_08021538:
- adds r0, r5, 0
- subs r0, 0xA
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08021564
- ldr r1, _0802155C @ =gUnknown_02024C98
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08021560 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08021564
- adds r0, r2, 0
- b _08021576
- .align 2, 0
-_0802155C: .4byte gUnknown_02024C98
-_08021560: .4byte 0x000400c0
-_08021564:
- ldrb r1, [r3]
- ldrh r2, [r4]
- movs r0, 0
- bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
- ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r6]
-_08021576:
- adds r0, 0xA
- str r0, [r6]
-_0802157A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80214B4
-
- thumb_func_start atk47
-atk47: @ 8021580
- push {r4,lr}
- movs r3, 0
- ldr r0, _080215A0 @ =0x02000000
- ldr r2, _080215A4 @ =0x0001601e
- adds r1, r0, r2
- ldrb r1, [r1]
- movs r2, 0xF0
- ands r2, r1
- adds r4, r0, 0
- cmp r2, 0x20
- beq _080215B6
- cmp r2, 0x20
- bgt _080215A8
- cmp r2, 0x10
- beq _080215B2
- b _080215C0
- .align 2, 0
-_080215A0: .4byte 0x02000000
-_080215A4: .4byte 0x0001601e
-_080215A8:
- cmp r2, 0x90
- beq _080215BA
- cmp r2, 0xA0
- beq _080215BE
- b _080215C0
-_080215B2:
- movs r3, 0xF
- b _080215C0
-_080215B6:
- movs r3, 0x27
- b _080215C0
-_080215BA:
- movs r3, 0x16
- b _080215C0
-_080215BE:
- movs r3, 0x2E
-_080215C0:
- ldr r1, _080215EC @ =0x0001601e
- adds r0, r4, r1
- ldrb r1, [r0]
- movs r0, 0xF
- ands r0, r1
- adds r0, r3, r0
- subs r0, 0x1
- ldr r2, _080215F0 @ =0x000160a4
- adds r1, r4, r2
- movs r2, 0
- strb r0, [r1]
- ldr r1, _080215F4 @ =0x000160a5
- adds r0, r4, r1
- strb r2, [r0]
- ldr r1, _080215F8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080215EC: .4byte 0x0001601e
-_080215F0: .4byte 0x000160a4
-_080215F4: .4byte 0x000160a5
-_080215F8: .4byte gUnknown_02024C10
- thumb_func_end atk47
-
- thumb_func_start atk48_playstatchangeanimation
-atk48_playstatchangeanimation: @ 80215FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r7, 0
- movs r0, 0
- mov r8, r0
- movs r3, 0
- ldr r5, _08021670 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- str r3, [sp]
- bl sub_8015150
- ldr r2, _08021674 @ =gUnknown_02024A60
- strb r0, [r2]
- ldr r0, [r5]
- ldrb r4, [r0, 0x2]
- ldrb r1, [r0, 0x3]
- movs r0, 0x1
- ands r0, r1
- ldr r3, [sp]
- cmp r0, 0
- beq _08021710
- movs r0, 0x2
- ands r0, r1
- movs r1, 0x15
- cmp r0, 0
- beq _0802163C
- movs r1, 0x2D
-_0802163C:
- cmp r4, 0
- beq _080216E4
- movs r0, 0x1
- mov r10, r0
- ldr r0, _08021678 @ =gUnknown_02024A98
- mov r9, r0
- lsls r5, r1, 16
-_0802164A:
- adds r0, r4, 0
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- beq _080216D6
- ldr r0, _08021670 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r1, [r0, 0x3]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0802167C
- ldr r0, _08021674 @ =gUnknown_02024A60
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7, r0
- b _080216C4
- .align 2, 0
-_08021670: .4byte gUnknown_02024C10
-_08021674: .4byte gUnknown_02024A60
-_08021678: .4byte gUnknown_02024A98
-_0802167C:
- ldr r6, _08021700 @ =gUnknown_02024A60
- ldrb r0, [r6]
- str r3, [sp]
- bl battle_get_per_side_status
- mov r1, r10
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08021704 @ =gUnknown_02024C80
- adds r0, r1
- ldrb r0, [r0, 0x2]
- ldr r3, [sp]
- cmp r0, 0
- bne _080216D6
- ldr r0, _08021708 @ =gBattleMons
- ldrb r2, [r6]
- movs r1, 0x58
- muls r2, r1
- adds r0, r2, r0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1D
- beq _080216D6
- cmp r0, 0x49
- beq _080216D6
- cmp r0, 0x33
- bne _080216BA
- cmp r7, 0x6
- beq _080216D6
-_080216BA:
- cmp r0, 0x34
- bne _080216C2
- cmp r7, 0x1
- beq _080216D6
-_080216C2:
- adds r0, r7, r2
-_080216C4:
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- ble _080216D6
- lsrs r0, r5, 16
- mov r8, r0
- adds r3, 0x1
-_080216D6:
- lsrs r4, 1
- movs r1, 0x80
- lsls r1, 9
- adds r5, r1
- adds r7, 0x1
- cmp r4, 0
- bne _0802164A
-_080216E4:
- ldr r0, _0802170C @ =gUnknown_02024C10
- mov r9, r0
- cmp r3, 0x1
- ble _08021772
- ldr r0, [r0]
- ldrb r1, [r0, 0x3]
- movs r0, 0x2
- ands r0, r1
- movs r1, 0x39
- mov r8, r1
- cmp r0, 0
- beq _08021772
- movs r0, 0x3A
- b _08021770
- .align 2, 0
-_08021700: .4byte gUnknown_02024A60
-_08021704: .4byte gUnknown_02024C80
-_08021708: .4byte gBattleMons
-_0802170C: .4byte gUnknown_02024C10
-_08021710:
- movs r0, 0x2
- ands r0, r1
- movs r1, 0xE
- cmp r0, 0
- beq _0802171C
- movs r1, 0x26
-_0802171C:
- mov r9, r5
- cmp r4, 0
- beq _08021758
- ldr r6, _0802178C @ =gUnknown_02024A98
- adds r5, r2, 0
- lsls r2, r1, 16
-_08021728:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0802174A
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7, r0
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xB
- bgt _0802174A
- lsrs r1, r2, 16
- mov r8, r1
- adds r3, 0x1
-_0802174A:
- lsrs r4, 1
- movs r0, 0x80
- lsls r0, 9
- adds r2, r0
- adds r7, 0x1
- cmp r4, 0
- bne _08021728
-_08021758:
- cmp r3, 0x1
- ble _08021772
- mov r1, r9
- ldr r0, [r1]
- ldrb r1, [r0, 0x3]
- movs r0, 0x2
- ands r0, r1
- movs r1, 0x37
- mov r8, r1
- cmp r0, 0
- beq _08021772
- movs r0, 0x38
-_08021770:
- mov r8, r0
-_08021772:
- mov r1, r9
- ldr r2, [r1]
- ldrb r1, [r2, 0x3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08021790
- cmp r3, 0x1
- bgt _08021790
- adds r0, r2, 0x4
- mov r1, r9
- b _080217E6
- .align 2, 0
-_0802178C: .4byte gUnknown_02024A98
-_08021790:
- cmp r3, 0
- beq _080217E0
- ldr r0, _080217D0 @ =0x02000000
- ldr r1, _080217D4 @ =0x000160dc
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- bne _080217E0
- movs r0, 0
- movs r1, 0x1
- mov r2, r8
- str r3, [sp]
- bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
- ldr r0, _080217D8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, _080217DC @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r1, [r0, 0x3]
- movs r0, 0x4
- ands r0, r1
- ldr r3, [sp]
- cmp r0, 0
- beq _080217CC
- cmp r3, 0x1
- ble _080217CC
- movs r0, 0x1
- strb r0, [r4]
-_080217CC:
- ldr r1, _080217DC @ =gUnknown_02024C10
- b _080217E2
- .align 2, 0
-_080217D0: .4byte 0x02000000
-_080217D4: .4byte 0x000160dc
-_080217D8: .4byte gUnknown_02024A60
-_080217DC: .4byte gUnknown_02024C10
-_080217E0:
- mov r1, r9
-_080217E2:
- ldr r0, [r1]
- adds r0, 0x4
-_080217E6:
- str r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk48_playstatchangeanimation
-
- thumb_func_start sub_80217F8
-sub_80217F8: @ 80217F8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- movs r0, 0
- mov r10, r0
- ldr r0, _08021834 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r1, [r0, 0x1]
- str r1, [sp, 0x10]
- ldrb r0, [r0, 0x2]
- str r0, [sp, 0x14]
- ldr r1, _08021838 @ =gBattleMons
- ldr r0, _0802183C @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08021844
- ldr r1, _08021840 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x7]
- b _0802184E
- .align 2, 0
-_08021834: .4byte gUnknown_02024C10
-_08021838: .4byte gBattleMons
-_0802183C: .4byte gUnknown_02024C07
-_08021840: .4byte gEnigmaBerries
-_08021844:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_0802184E:
- str r0, [sp, 0x8]
- ldr r0, _0802186C @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 1
- ldr r0, _08021870 @ =0x020160e8
- adds r1, r0
- str r1, [sp, 0xC]
- subs r0, 0xCC
- ldrb r0, [r0]
- cmp r0, 0
- beq _080218C0
- movs r2, 0x3F
- ands r2, r0
- str r2, [sp, 0x4]
- b _080218D2
- .align 2, 0
-_0802186C: .4byte gUnknown_02024C07
-_08021870: .4byte 0x020160e8
-_08021874:
- strb r2, [r7]
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- ldr r0, _080218AC @ =0x02000000
- ldr r3, _080218B0 @ =0x0001600c
- adds r0, r3
- strb r4, [r0]
- bl sub_8020B54
- ldr r2, _080218B4 @ =gUnknown_081D6BBC
- mov r4, r8
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- bl b_movescr_stack_push
- ldr r1, _080218B8 @ =gUnknown_02024C10
- ldr r0, _080218BC @ =gUnknown_081D9B2D
- bl _0802229C
- .align 2, 0
-_080218AC: .4byte 0x02000000
-_080218B0: .4byte 0x0001600c
-_080218B4: .4byte gUnknown_081D6BBC
-_080218B8: .4byte gUnknown_02024C10
-_080218BC: .4byte gUnknown_081D9B2D
-_080218C0:
- ldr r2, _080218D8 @ =gBattleMoves
- ldr r0, _080218DC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- str r0, [sp, 0x4]
-_080218D2:
- ldr r5, _080218E0 @ =0x02000000
- mov r12, r5
- b _080218EE
- .align 2, 0
-_080218D8: .4byte gBattleMoves
-_080218DC: .4byte gUnknown_02024BE6
-_080218E0: .4byte 0x02000000
-_080218E4:
- mov r0, r10
- cmp r0, 0
- beq _080218EE
- bl _08022286
-_080218EE:
- ldr r0, _08021908 @ =0x0001600c
- add r0, r12
- ldrb r0, [r0]
- cmp r0, 0x11
- bls _080218FC
- bl _0802224E
-_080218FC:
- lsls r0, 2
- ldr r1, _0802190C @ =_08021910
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08021908: .4byte 0x0001600c
-_0802190C: .4byte _08021910
- .align 2, 0
-_08021910:
- .4byte _08021958
- .4byte _08021A34
- .4byte _08021AF0
- .4byte _08021B20
- .4byte _08021B44
- .4byte _08021B78
- .4byte _08021B9C
- .4byte _08021C40
- .4byte _08021C78
- .4byte _08021CA8
- .4byte _08021CCC
- .4byte _08021D18
- .4byte _08021DAC
- .4byte _08021E30
- .4byte _08021E70
- .4byte _08022068
- .4byte _080221C0
- .4byte _0802224E
-_08021958:
- ldr r5, _08021A08 @ =gBattleMons
- ldr r2, _08021A0C @ =gUnknown_02024C08
- ldrb r4, [r2]
- movs r6, 0x58
- adds r3, r4, 0
- muls r3, r6
- adds r0, r5, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 16
- ands r1, r0
- cmp r1, 0
- beq _080219FE
- adds r0, r3, r5
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _080219FE
- ldr r0, _08021A10 @ =gUnknown_02024C07
- ldrb r1, [r0]
- cmp r1, r4
- beq _080219FE
- adds r0, r1, 0
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r1, _08021A0C @ =gUnknown_02024C08
- ldrb r0, [r1]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080219FE
- ldr r0, _08021A14 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _080219FE
- ldr r2, _08021A18 @ =gUnknown_02024D28
- ldr r4, _08021A0C @ =gUnknown_02024C08
- ldrb r3, [r4]
- lsls r1, r3, 4
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _080219C8
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080219FE
-_080219C8:
- ldr r2, _08021A1C @ =gBattleMoves
- ldr r0, _08021A20 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080219FE
- adds r0, r3, 0
- muls r0, r6
- adds r1, r0, r5
- ldrb r2, [r1, 0x19]
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _080219FE
- adds r0, r2, 0x1
- strb r0, [r1, 0x19]
- bl b_movescr_stack_push_cursor
- ldr r1, _08021A24 @ =gUnknown_02024C10
- ldr r0, _08021A28 @ =gUnknown_081D9132
- str r0, [r1]
- movs r5, 0x1
- mov r10, r5
-_080219FE:
- ldr r2, _08021A2C @ =0x02000000
- ldr r0, _08021A30 @ =0x0001600c
- adds r1, r2, r0
- b _08021E00
- .align 2, 0
-_08021A08: .4byte gBattleMons
-_08021A0C: .4byte gUnknown_02024C08
-_08021A10: .4byte gUnknown_02024C07
-_08021A14: .4byte gUnknown_02024C68
-_08021A18: .4byte gUnknown_02024D28
-_08021A1C: .4byte gBattleMoves
-_08021A20: .4byte gUnknown_02024BE6
-_08021A24: .4byte gUnknown_02024C10
-_08021A28: .4byte gUnknown_081D9132
-_08021A2C: .4byte 0x02000000
-_08021A30: .4byte 0x0001600c
-_08021A34:
- ldr r2, _08021AD0 @ =gBattleMons
- ldr r1, _08021AD4 @ =gUnknown_02024C08
- ldrb r4, [r1]
- movs r3, 0x58
- mov r12, r3
- mov r3, r12
- muls r3, r4
- adds r7, r2, 0
- adds r7, 0x4C
- adds r6, r3, r7
- ldr r5, [r6]
- movs r0, 0x20
- ands r0, r5
- cmp r0, 0
- bne _08021A54
- b _08021DFA
-_08021A54:
- adds r0, r3, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08021A5E
- b _08021DFA
-_08021A5E:
- ldr r0, _08021AD8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- cmp r0, r4
- bne _08021A68
- b _08021DFA
-_08021A68:
- ldr r0, _08021ADC @ =gUnknown_02024D68
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 2
- adds r0, 0xC
- adds r1, r0
- ldr r0, [r1]
- cmp r0, 0
- bne _08021A7C
- b _08021DFA
-_08021A7C:
- ldr r0, _08021AE0 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08021A8A
- b _08021DFA
-_08021A8A:
- ldr r4, [sp, 0x4]
- cmp r4, 0xA
- beq _08021A92
- b _08021DFA
-_08021A92:
- movs r0, 0x21
- negs r0, r0
- ands r5, r0
- str r5, [r6]
- ldr r4, _08021AE4 @ =gUnknown_02024A60
- ldr r5, _08021AD4 @ =gUnknown_02024C08
- ldrb r0, [r5]
- strb r0, [r4]
- ldrb r0, [r5]
- mov r1, r12
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- bl b_movescr_stack_push_cursor
- ldr r1, _08021AE8 @ =gUnknown_02024C10
- ldr r0, _08021AEC @ =gUnknown_081D955D
- str r0, [r1]
- movs r2, 0x1
- mov r10, r2
- b _08021DFA
- .align 2, 0
-_08021AD0: .4byte gBattleMons
-_08021AD4: .4byte gUnknown_02024C08
-_08021AD8: .4byte gUnknown_02024C07
-_08021ADC: .4byte gUnknown_02024D68
-_08021AE0: .4byte gUnknown_02024C68
-_08021AE4: .4byte gUnknown_02024A60
-_08021AE8: .4byte gUnknown_02024C10
-_08021AEC: .4byte gUnknown_081D955D
-_08021AF0:
- ldr r0, _08021B14 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x7
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08021B0C
- movs r4, 0x1
- mov r10, r4
-_08021B0C:
- ldr r2, _08021B18 @ =0x02000000
- ldr r5, _08021B1C @ =0x0001600c
- adds r1, r2, r5
- b _08021E00
- .align 2, 0
-_08021B14: .4byte gUnknown_02024C08
-_08021B18: .4byte 0x02000000
-_08021B1C: .4byte 0x0001600c
-_08021B20:
- ldr r0, _08021B40 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x4
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _08021B3A
- b _08021DFA
-_08021B3A:
- movs r0, 0x1
- mov r10, r0
- b _08021DFA
- .align 2, 0
-_08021B40: .4byte gUnknown_02024C08
-_08021B44:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x5
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08021B68
- movs r4, 0x1
- mov r10, r4
- ldr r5, _08021B64 @ =0x02000000
- mov r12, r5
- b _0802224E
- .align 2, 0
-_08021B64: .4byte 0x02000000
-_08021B68:
- ldr r2, _08021B70 @ =0x02000000
- ldr r0, _08021B74 @ =0x0001600c
- adds r1, r2, r0
- b _08021E00
- .align 2, 0
-_08021B70: .4byte 0x02000000
-_08021B74: .4byte 0x0001600c
-_08021B78:
- ldr r0, _08021B98 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x8
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _08021B92
- b _08021DFA
-_08021B92:
- movs r1, 0x1
- mov r10, r1
- b _08021DFA
- .align 2, 0
-_08021B98: .4byte gUnknown_02024C07
-_08021B9C:
- ldr r0, _08021C28 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _08021BE0
- ldr r4, [sp, 0x8]
- cmp r4, 0x1D
- bne _08021BE0
- ldr r0, _08021C2C @ =gUnknown_02024BE8
- ldrh r2, [r0]
- adds r7, r0, 0
- cmp r2, 0xA5
- beq _08021BE0
- ldr r5, [sp, 0xC]
- ldrh r1, [r5]
- cmp r1, 0
- beq _08021BC8
- ldr r0, _08021C30 @ =0x0000ffff
- cmp r1, r0
- bne _08021BE0
-_08021BC8:
- cmp r2, 0xE2
- bne _08021BDA
- ldr r0, _08021C34 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08021BDA
- b _08022244
-_08021BDA:
- ldrh r0, [r7]
- ldr r1, [sp, 0xC]
- strh r0, [r1]
-_08021BE0:
- movs r4, 0
- ldr r2, _08021C38 @ =gBattleMons
- ldr r3, _08021C3C @ =gUnknown_02024C07
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r2, 0xC
- adds r0, r2
- ldrh r0, [r0]
- ldr r5, [sp, 0xC]
- ldrh r1, [r5]
- mov r9, r3
- cmp r0, r1
- beq _08021C18
- mov r6, r9
- movs r3, 0x58
- adds r5, r1, 0
-_08021C02:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08021C18
- lsls r0, r4, 1
- ldrb r1, [r6]
- muls r1, r3
- adds r0, r1
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r5
- bne _08021C02
-_08021C18:
- cmp r4, 0x4
- beq _08021C1E
- b _08022244
-_08021C1E:
- movs r0, 0
- ldr r1, [sp, 0xC]
-_08021C22:
- strh r0, [r1]
- b _08022244
- .align 2, 0
-_08021C28: .4byte gUnknown_02024C6C
-_08021C2C: .4byte gUnknown_02024BE8
-_08021C30: .4byte 0x0000ffff
-_08021C34: .4byte gUnknown_02024C68
-_08021C38: .4byte gBattleMons
-_08021C3C: .4byte gUnknown_02024C07
-_08021C40:
- movs r4, 0
- ldr r0, _08021C6C @ =gUnknown_02024A68
- ldrb r2, [r0]
- cmp r4, r2
- blt _08021C4C
- b _08022244
-_08021C4C:
- movs r5, 0
- ldr r2, _08021C70 @ =0x020160f0
- ldr r3, _08021C74 @ =gBattleMons
-_08021C52:
- ldrh r1, [r2]
- cmp r1, 0
- beq _08021C5C
- strh r1, [r3, 0x2E]
- strh r5, [r2]
-_08021C5C:
- adds r2, 0x2
- adds r3, 0x58
- adds r4, 0x1
- ldrb r1, [r0]
- cmp r4, r1
- blt _08021C52
- b _08022244
- .align 2, 0
-_08021C6C: .4byte gUnknown_02024A68
-_08021C70: .4byte 0x020160f0
-_08021C74: .4byte gBattleMons
-_08021C78:
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- beq _08021C98
- movs r2, 0x1
- mov r10, r2
- ldr r3, _08021C94 @ =0x02000000
- mov r12, r3
- b _0802224E
- .align 2, 0
-_08021C94: .4byte 0x02000000
-_08021C98:
- ldr r2, _08021CA0 @ =0x02000000
- ldr r4, _08021CA4 @ =0x0001600c
- adds r1, r2, r4
- b _08021E00
- .align 2, 0
-_08021CA0: .4byte 0x02000000
-_08021CA4: .4byte 0x0001600c
-_08021CA8:
- movs r0, 0x4
- movs r1, 0
- movs r2, 0
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- beq _08021CBC
- movs r5, 0x1
- mov r10, r5
-_08021CBC:
- ldr r2, _08021CC4 @ =0x02000000
- ldr r0, _08021CC8 @ =0x0001600c
- adds r1, r2, r0
- b _08021E00
- .align 2, 0
-_08021CC4: .4byte 0x02000000
-_08021CC8: .4byte 0x0001600c
-_08021CCC:
- ldr r1, _08021D04 @ =gUnknown_02024C98
- ldr r0, _08021D08 @ =gUnknown_02024C07
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08021D0C @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _08021CE2
- b _08021DFA
-_08021CE2:
- ldr r0, _08021D10 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08021CF0
- b _08021DFA
-_08021CF0:
- ldr r4, _08021D14 @ =gUnknown_02024A60
- strb r2, [r4]
- movs r0, 0
- movs r1, 0x1
- bl dp01_build_cmdbuf_x33_a_33_33
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08021DFA
- .align 2, 0
-_08021D04: .4byte gUnknown_02024C98
-_08021D08: .4byte gUnknown_02024C07
-_08021D0C: .4byte 0x000400c0
-_08021D10: .4byte gUnknown_02024C6C
-_08021D14: .4byte gUnknown_02024A60
-_08021D18:
- ldr r0, _08021D88 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _08021D44
- ldr r1, _08021D8C @ =gUnknown_02024C98
- ldr r0, _08021D90 @ =gUnknown_02024C07
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08021D94 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08021D44
- adds r0, r2, 0
- bl sub_8015660
- lsls r0, 24
- cmp r0, 0
- beq _08021D7E
-_08021D44:
- ldr r4, _08021D98 @ =gUnknown_02024A60
- ldr r5, _08021D90 @ =gUnknown_02024C07
- ldrb r0, [r5]
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x33_a_33_33
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, _08021D8C @ =gUnknown_02024C98
- ldrb r2, [r5]
- lsls r2, 2
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _08021D9C @ =0xfffbff3f
- ands r0, r1
- str r0, [r2]
- ldr r2, _08021DA0 @ =gUnknown_02024D68
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_08021D7E:
- ldr r2, _08021DA4 @ =0x02000000
- ldr r4, _08021DA8 @ =0x0001600c
- adds r1, r2, r4
- b _08021E00
- .align 2, 0
-_08021D88: .4byte gUnknown_02024C68
-_08021D8C: .4byte gUnknown_02024C98
-_08021D90: .4byte gUnknown_02024C07
-_08021D94: .4byte 0x000400c0
-_08021D98: .4byte gUnknown_02024A60
-_08021D9C: .4byte 0xfffbff3f
-_08021DA0: .4byte gUnknown_02024D68
-_08021DA4: .4byte 0x02000000
-_08021DA8: .4byte 0x0001600c
-_08021DAC:
- ldr r2, _08021E0C @ =gUnknown_02024D68
- ldr r1, _08021E10 @ =gUnknown_02024C08
- ldrb r3, [r1]
- lsls r4, r3, 2
- adds r0, r4, r3
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _08021DFA
- ldr r0, _08021E14 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r3, r0
- bcs _08021DFA
- ldr r5, _08021E18 @ =gUnknown_02024C98
- adds r0, r4, r5
- ldr r0, [r0]
- ldr r1, _08021E1C @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _08021DFA
- ldr r4, _08021E20 @ =gUnknown_02024A60
- strb r3, [r4]
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x33_a_33_33
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, _08021E10 @ =gUnknown_02024C08
- ldrb r2, [r0]
- lsls r2, 2
- adds r2, r5
- ldr r0, [r2]
- ldr r1, _08021E24 @ =0xfffbff3f
- ands r0, r1
- str r0, [r2]
-_08021DFA:
- ldr r2, _08021E28 @ =0x02000000
- ldr r3, _08021E2C @ =0x0001600c
- adds r1, r2, r3
-_08021E00:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r12, r2
- b _0802224E
- .align 2, 0
-_08021E0C: .4byte gUnknown_02024D68
-_08021E10: .4byte gUnknown_02024C08
-_08021E14: .4byte gUnknown_02024A68
-_08021E18: .4byte gUnknown_02024C98
-_08021E1C: .4byte 0x000400c0
-_08021E20: .4byte gUnknown_02024A60
-_08021E24: .4byte 0xfffbff3f
-_08021E28: .4byte 0x02000000
-_08021E2C: .4byte 0x0001600c
-_08021E30:
- movs r4, 0
- ldr r0, _08021E60 @ =gUnknown_02024A68
- ldrb r5, [r0]
- cmp r4, r5
- blt _08021E3C
- b _08022244
-_08021E3C:
- ldr r2, _08021E64 @ =gUnknown_02024CA8
- ldr r5, _08021E68 @ =0xfeffffff
- adds r3, r0, 0
- ldr r1, _08021E6C @ =gUnknown_02024AD0
-_08021E44:
- ldrb r0, [r2, 0xA]
- cmp r0, 0
- bne _08021E50
- ldr r0, [r1]
- ands r0, r5
- str r0, [r1]
-_08021E50:
- adds r2, 0x1C
- adds r1, 0x58
- adds r4, 0x1
- ldrb r0, [r3]
- cmp r4, r0
- blt _08021E44
- b _08022244
- .align 2, 0
-_08021E60: .4byte gUnknown_02024A68
-_08021E64: .4byte gUnknown_02024CA8
-_08021E68: .4byte 0xfeffffff
-_08021E6C: .4byte gUnknown_02024AD0
-_08021E70:
- ldr r1, _08021F2C @ =gUnknown_02024C6C
- ldr r3, [r1]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r3
- ldr r2, _08021F30 @ =gUnknown_02024C07
- mov r9, r2
- adds r5, r1, 0
- cmp r0, 0
- beq _08021E9A
- ldr r0, _08021F34 @ =gUnknown_02024A60
- ldrb r2, [r2]
- strb r2, [r0]
- ldr r1, _08021F38 @ =gUnknown_02024C08
- ldrb r0, [r1]
- mov r4, r9
- strb r0, [r4]
- strb r2, [r1]
- ldr r0, _08021F3C @ =0xffffefff
- ands r3, r0
- str r3, [r5]
-_08021E9A:
- ldr r1, _08021F40 @ =gBattleMoves
- ldr r2, _08021F44 @ =gUnknown_02024BE8
- ldrh r3, [r2]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- mov r8, r1
- adds r7, r2, 0
- cmp r0, 0x7F
- bne _08021EBE
- ldr r0, _08021F48 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08021ECA
-_08021EBE:
- ldr r1, _08021F4C @ =gUnknown_02024C2C
- mov r2, r9
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- strh r3, [r0]
-_08021ECA:
- ldr r0, _08021F50 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08021F54 @ =gBitTable
- mov r3, r9
- ldrb r4, [r3]
- lsls r0, r4, 2
- adds r0, r2
- ldr r3, [r0]
- ands r1, r3
- adds r6, r2, 0
- cmp r1, 0
- beq _08021EE4
- b _08022244
-_08021EE4:
- ldr r0, _08021F58 @ =0x000160a6
- add r0, r12
- ldrb r0, [r0]
- ands r0, r3
- cmp r0, 0
- beq _08021EF2
- b _08022244
-_08021EF2:
- ldrh r2, [r7]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0x7F
- bne _08021F04
- b _08022244
-_08021F04:
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _08021F68
- ldr r1, _08021F5C @ =gUnknown_02024C34
- lsls r0, r4, 1
- adds r0, r1
- strh r2, [r0]
- ldr r0, _08021F60 @ =gUnknown_02024C4C
- mov r4, r9
- ldrb r1, [r4]
- lsls r1, 1
- adds r1, r0
- ldr r0, _08021F64 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- strh r0, [r1]
- b _08021F82
- .align 2, 0
-_08021F2C: .4byte gUnknown_02024C6C
-_08021F30: .4byte gUnknown_02024C07
-_08021F34: .4byte gUnknown_02024A60
-_08021F38: .4byte gUnknown_02024C08
-_08021F3C: .4byte 0xffffefff
-_08021F40: .4byte gBattleMoves
-_08021F44: .4byte gUnknown_02024BE8
-_08021F48: .4byte gUnknown_02024C68
-_08021F4C: .4byte gUnknown_02024C2C
-_08021F50: .4byte gUnknown_02024C0C
-_08021F54: .4byte gBitTable
-_08021F58: .4byte 0x000160a6
-_08021F5C: .4byte gUnknown_02024C34
-_08021F60: .4byte gUnknown_02024C4C
-_08021F64: .4byte gUnknown_02024BE6
-_08021F68:
- ldr r1, _08021FD0 @ =gUnknown_02024C34
- lsls r0, r4, 1
- adds r0, r1
- ldr r1, _08021FD4 @ =0x0000ffff
- strh r1, [r0]
- ldr r1, _08021FD8 @ =gUnknown_02024C4C
- mov r2, r9
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0]
-_08021F82:
- ldr r2, _08021FDC @ =gUnknown_02024C08
- ldrb r3, [r2]
- lsls r0, r3, 2
- adds r0, r6
- ldr r0, [r0]
- lsls r0, 28
- ldr r1, [r5]
- ands r1, r0
- cmp r1, 0
- bne _08021FA0
- ldr r0, _08021FE0 @ =gUnknown_02024C5C
- adds r0, r3, r0
- mov r3, r9
- ldrb r1, [r3]
- strb r1, [r0]
-_08021FA0:
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _0802204C
- ldr r0, _08021FE4 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0802204C
- ldrh r2, [r7]
- ldr r0, _08021FD4 @ =0x0000ffff
- cmp r2, r0
- bne _08021FEC
- ldr r1, _08021FE8 @ =gUnknown_02024C3C
- ldr r4, _08021FDC @ =gUnknown_02024C08
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- b _08022244
- .align 2, 0
-_08021FD0: .4byte gUnknown_02024C34
-_08021FD4: .4byte 0x0000ffff
-_08021FD8: .4byte gUnknown_02024C4C
-_08021FDC: .4byte gUnknown_02024C08
-_08021FE0: .4byte gUnknown_02024C5C
-_08021FE4: .4byte gUnknown_02024C68
-_08021FE8: .4byte gUnknown_02024C3C
-_08021FEC:
- ldr r0, _08022014 @ =gUnknown_02024C3C
- ldr r5, _08022018 @ =gUnknown_02024C08
- ldrb r1, [r5]
- lsls r1, 1
- adds r1, r0
- ldr r4, _0802201C @ =gUnknown_02024BE6
- ldrh r0, [r4]
- strh r0, [r1]
- ldr r0, _08022020 @ =0x0001601c
- add r0, r12
- ldrb r3, [r0]
- cmp r3, 0
- beq _08022028
- ldr r0, _08022024 @ =gUnknown_02024C44
- ldrb r1, [r5]
- lsls r1, 1
- adds r1, r0
- movs r0, 0x3F
- ands r0, r3
- b _08021C22
- .align 2, 0
-_08022014: .4byte gUnknown_02024C3C
-_08022018: .4byte gUnknown_02024C08
-_0802201C: .4byte gUnknown_02024BE6
-_08022020: .4byte 0x0001601c
-_08022024: .4byte gUnknown_02024C44
-_08022028:
- ldr r0, _08022044 @ =gUnknown_02024C44
- ldr r1, _08022048 @ =gUnknown_02024C08
- ldrb r2, [r1]
- lsls r2, 1
- adds r2, r0
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x2]
- strh r0, [r2]
- b _08022244
- .align 2, 0
-_08022044: .4byte gUnknown_02024C44
-_08022048: .4byte gUnknown_02024C08
-_0802204C:
- ldr r0, _0802205C @ =gUnknown_02024C3C
- ldr r2, _08022060 @ =gUnknown_02024C08
- ldrb r1, [r2]
- lsls r1, 1
- adds r1, r0
- ldr r0, _08022064 @ =0x0000ffff
- b _08021C22
- .align 2, 0
-_0802205C: .4byte gUnknown_02024C3C
-_08022060: .4byte gUnknown_02024C08
-_08022064: .4byte 0x0000ffff
-_08022068:
- ldr r0, _0802212C @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r6, _08022130 @ =gBitTable
- ldr r2, _08022134 @ =gUnknown_02024C07
- ldrb r5, [r2]
- lsls r0, r5, 2
- adds r0, r6
- ldr r4, [r0]
- ands r1, r4
- mov r9, r2
- cmp r1, 0
- beq _08022082
- b _08022244
-_08022082:
- ldr r0, _08022138 @ =0x000160a6
- add r0, r12
- ldrb r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _08022090
- b _08022244
-_08022090:
- ldr r1, _0802213C @ =gBattleMoves
- ldr r4, _08022140 @ =gUnknown_02024BE8
- ldrh r3, [r4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802215C
- ldr r0, _08022144 @ =gUnknown_02024C6C
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 18
- ands r0, r1
- cmp r0, 0
- beq _0802215C
- ldr r2, _08022148 @ =gUnknown_02024C08
- ldrb r0, [r2]
- cmp r5, r0
- bne _080220C0
- b _08022244
-_080220C0:
- adds r2, r0, 0
- lsls r0, r2, 2
- adds r0, r6
- ldr r0, [r0]
- lsls r0, 28
- ands r1, r0
- cmp r1, 0
- bne _0802215C
- ldr r0, _0802214C @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0802215C
- lsls r0, r2, 1
- ldr r5, _08022150 @ =0x000160ac
- adds r0, r5
- add r0, r12
- strb r3, [r0]
- ldr r0, _08022148 @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r1, 1
- ldr r2, _08022154 @ =0x000160ad
- adds r1, r2
- add r1, r12
- ldrh r0, [r4]
- lsrs r0, 8
- strb r0, [r1]
- ldr r3, _08022148 @ =gUnknown_02024C08
- ldrb r2, [r3]
- lsls r2, 2
- mov r5, r9
- ldrb r0, [r5]
- lsrs r0, 1
- lsls r0, 1
- ldr r1, _08022158 @ =0x00016100
- adds r0, r1
- adds r2, r0
- add r2, r12
- ldrh r0, [r4]
- strb r0, [r2]
- ldrb r2, [r3]
- lsls r2, 2
- ldrb r0, [r5]
- lsrs r0, 1
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- adds r2, r0
- add r2, r12
- ldrh r0, [r4]
- lsrs r0, 8
- strb r0, [r2]
- b _08022244
- .align 2, 0
-_0802212C: .4byte gUnknown_02024C0C
-_08022130: .4byte gBitTable
-_08022134: .4byte gUnknown_02024C07
-_08022138: .4byte 0x000160a6
-_0802213C: .4byte gBattleMoves
-_08022140: .4byte gUnknown_02024BE8
-_08022144: .4byte gUnknown_02024C6C
-_08022148: .4byte gUnknown_02024C08
-_0802214C: .4byte gUnknown_02024C68
-_08022150: .4byte 0x000160ac
-_08022154: .4byte 0x000160ad
-_08022158: .4byte 0x00016100
-_0802215C:
- mov r1, r9
- ldrb r0, [r1]
- ldr r2, _080221B4 @ =gUnknown_02024C08
- ldrb r2, [r2]
- cmp r0, r2
- beq _08022244
- ldr r3, _080221B4 @ =gUnknown_02024C08
- ldrb r0, [r3]
- lsls r0, 1
- ldr r4, _080221B8 @ =0x000160ac
- adds r0, r4
- add r0, r12
- movs r3, 0
- strb r3, [r0]
- ldr r5, _080221B4 @ =gUnknown_02024C08
- ldrb r0, [r5]
- lsls r0, 1
- ldr r1, _080221BC @ =0x000160ad
- adds r0, r1
- add r0, r12
- strb r3, [r0]
- ldrb r2, [r5]
- lsls r2, 2
- mov r4, r9
- ldrb r0, [r4]
- lsrs r0, 1
- lsls r0, 1
- adds r1, 0x53
- adds r0, r1
- adds r2, r0
- add r2, r12
- strb r3, [r2]
- ldrb r2, [r5]
- lsls r2, 2
- ldrb r0, [r4]
- lsrs r0, 1
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- adds r2, r0
- add r2, r12
- strb r3, [r2]
- b _08022244
- .align 2, 0
-_080221B4: .4byte gUnknown_02024C08
-_080221B8: .4byte 0x000160ac
-_080221BC: .4byte 0x000160ad
-_080221C0:
- ldr r5, _080222B0 @ =gUnknown_02024C6C
- ldr r2, [r5]
- movs r0, 0x80
- lsls r0, 12
- ands r0, r2
- cmp r0, 0
- bne _08022244
- ldr r0, _080222B4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08022244
- ldr r1, _080222B8 @ =gUnknown_02024D28
- ldr r0, _080222BC @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- cmp r0, 0
- blt _08022244
- ldr r0, _080222C0 @ =gBattleMoves
- mov r9, r0
- ldr r1, _080222C4 @ =gUnknown_02024BE6
- mov r8, r1
- ldrh r0, [r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- add r1, r9
- ldrb r0, [r1, 0x6]
- cmp r0, 0x8
- bne _08022244
- movs r6, 0x80
- lsls r6, 2
- adds r4, r6, 0
- ands r4, r2
- cmp r4, 0
- bne _08022244
- ldr r7, _080222C8 @ =gUnknown_02024C08
- ldrb r0, [r7]
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080222CC @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0802223A
- bl _08021874
-_0802223A:
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- ldr r2, _080222D0 @ =0x02000000
- mov r12, r2
-_08022244:
- ldr r1, _080222D4 @ =0x0001600c
- add r1, r12
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0802224E:
- ldr r3, [sp, 0x10]
- cmp r3, 0x1
- bne _08022262
- mov r4, r10
- cmp r4, 0
- bne _08022262
- ldr r1, _080222D4 @ =0x0001600c
- add r1, r12
- movs r0, 0x11
- strb r0, [r1]
-_08022262:
- ldr r5, [sp, 0x10]
- cmp r5, 0x2
- bne _08022278
- ldr r1, _080222D4 @ =0x0001600c
- add r1, r12
- ldr r0, [sp, 0x14]
- ldrb r2, [r1]
- cmp r0, r2
- bne _08022278
- movs r0, 0x11
- strb r0, [r1]
-_08022278:
- ldr r0, _080222D4 @ =0x0001600c
- add r0, r12
- ldrb r0, [r0]
- cmp r0, 0x11
- beq _08022286
- bl _080218E4
-_08022286:
- ldr r0, _080222D4 @ =0x0001600c
- add r0, r12
- ldrb r0, [r0]
- cmp r0, 0x11
- bne _0802229E
- mov r3, r10
- cmp r3, 0
- bne _0802229E
- ldr r1, _080222D8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x3
-_0802229C:
- str r0, [r1]
-_0802229E:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080222B0: .4byte gUnknown_02024C6C
-_080222B4: .4byte gUnknown_020239F8
-_080222B8: .4byte gUnknown_02024D28
-_080222BC: .4byte gUnknown_02024C07
-_080222C0: .4byte gBattleMoves
-_080222C4: .4byte gUnknown_02024BE6
-_080222C8: .4byte gUnknown_02024C08
-_080222CC: .4byte gBattleMons
-_080222D0: .4byte 0x02000000
-_080222D4: .4byte 0x0001600c
-_080222D8: .4byte gUnknown_02024C10
- thumb_func_end sub_80217F8
-
- thumb_func_start atk4A_damageflags
-atk4A_damageflags: @ 80222DC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r4, 0
- movs r5, 0
- ldr r2, _08022340 @ =gBattleMoves
- ldr r0, _08022344 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- mov r8, r0
- ldr r2, _08022348 @ =gBattleMons
- ldr r3, _0802234C @ =gUnknown_02024C08
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- mov r12, r2
- adds r7, r3, 0
- cmp r0, 0x1A
- bne _08022370
- mov r1, r8
- cmp r1, 0x4
- bne _08022370
- ldr r3, _08022350 @ =byte_2024C06
- strb r0, [r3]
- ldr r2, _08022354 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x9
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08022358 @ =gUnknown_02024C3C
- ldrb r0, [r7]
- lsls r0, 1
- adds r0, r1
- strh r4, [r0]
- ldr r0, _0802235C @ =gUnknown_02024D1E
- mov r2, r8
- strb r2, [r0, 0x6]
- ldrb r0, [r7]
- ldrb r1, [r3]
- bl sub_81074C4
- b _08022452
- .align 2, 0
-_08022340: .4byte gBattleMoves
-_08022344: .4byte gUnknown_02024BE6
-_08022348: .4byte gBattleMons
-_0802234C: .4byte gUnknown_02024C08
-_08022350: .4byte byte_2024C06
-_08022354: .4byte gUnknown_02024C68
-_08022358: .4byte gUnknown_02024C3C
-_0802235C: .4byte gUnknown_02024D1E
-_08022360:
- ldr r0, _0802236C @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
- b _08022452
- .align 2, 0
-_0802236C: .4byte gUnknown_02024C68
-_08022370:
- ldr r1, _0802237C @ =gTypeEffectiveness
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r6, r1, 0
- b _08022432
- .align 2, 0
-_0802237C: .4byte gTypeEffectiveness
-_08022380:
- adds r0, r5, r6
- ldrb r0, [r0]
- cmp r0, r8
- bne _0802242C
- adds r2, r5, 0x1
- adds r3, r2, r6
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r0, 0x21
- ldrb r1, [r3]
- adds r3, r2, 0
- ldrb r0, [r0]
- cmp r1, r0
- bne _080223BE
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r1, [r0]
- cmp r1, 0
- beq _08022360
- cmp r1, 0x5
- bne _080223B2
- movs r0, 0x4
- orrs r4, r0
-_080223B2:
- cmp r1, 0x14
- bne _080223BE
- movs r0, 0x2
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_080223BE:
- adds r2, r3, r6
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0802242C
- adds r0, 0x21
- ldrb r1, [r0]
- cmp r1, r2
- beq _080223E6
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0
- beq _08022360
-_080223E6:
- cmp r1, r2
- beq _080223FC
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _080223FC
- movs r0, 0x4
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_080223FC:
- adds r2, r3, r6
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0802242C
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0802242C
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _0802242C
- movs r0, 0x2
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_0802242C:
- adds r5, 0x3
- adds r0, r5, r6
- ldrb r0, [r0]
-_08022432:
- cmp r0, 0xFF
- beq _08022452
- cmp r0, 0xFE
- bne _08022380
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- mov r1, r12
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0802242C
-_08022452:
- ldr r2, _08022500 @ =gBattleMons
- ldr r0, _08022504 @ =gUnknown_02024C08
- mov r8, r0
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r6, [r0]
- cmp r6, 0x19
- bne _080224CE
- movs r5, 0x29
- ands r5, r4
- cmp r5, 0
- bne _080224CE
- ldr r0, _08022508 @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r7, _0802250C @ =gUnknown_02024BE6
- ldrh r1, [r7]
- bl move_weather_interaction
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bne _080224CE
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08022494
- movs r0, 0x6
- ands r4, r0
- cmp r4, 0x6
- bne _080224CE
-_08022494:
- ldr r2, _08022510 @ =gBattleMoves
- ldrh r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080224CE
- ldr r3, _08022514 @ =byte_2024C06
- strb r6, [r3]
- ldr r2, _08022518 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802251C @ =gUnknown_02024C3C
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- strh r5, [r0]
- ldr r1, _08022520 @ =gUnknown_02024D1E
- movs r0, 0x3
- strb r0, [r1, 0x6]
- ldrb r0, [r2]
- ldrb r1, [r3]
- bl sub_81074C4
-_080224CE:
- ldr r0, _08022518 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080224EC
- ldr r2, _08022524 @ =gUnknown_02024D28
- ldr r0, _08022508 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 4
- adds r1, r2
- ldrb r0, [r1, 0x1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1, 0x1]
-_080224EC:
- ldr r1, _08022528 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08022500: .4byte gBattleMons
-_08022504: .4byte gUnknown_02024C08
-_08022508: .4byte gUnknown_02024C07
-_0802250C: .4byte gUnknown_02024BE6
-_08022510: .4byte gBattleMoves
-_08022514: .4byte byte_2024C06
-_08022518: .4byte gUnknown_02024C68
-_0802251C: .4byte gUnknown_02024C3C
-_08022520: .4byte gUnknown_02024D1E
-_08022524: .4byte gUnknown_02024D28
-_08022528: .4byte gUnknown_02024C10
- thumb_func_end atk4A_damageflags
-
- thumb_func_start atk4B_cmd4b
-atk4B_cmd4b: @ 802252C
- push {r4,lr}
- ldr r4, _08022568 @ =gUnknown_02024A60
- ldr r0, _0802256C @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r2, _08022570 @ =gUnknown_02024C6C
- ldr r1, _08022574 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _0802255A
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x06_a
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_0802255A:
- ldr r1, _08022578 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08022568: .4byte gUnknown_02024A60
-_0802256C: .4byte gUnknown_02024C07
-_08022570: .4byte gUnknown_02024C6C
-_08022574: .4byte gBitTable
-_08022578: .4byte gUnknown_02024C10
- thumb_func_end atk4B_cmd4b
-
- thumb_func_start atk4C_switch1
-atk4C_switch1: @ 802257C
- push {r4-r6,lr}
- ldr r0, _080225D4 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _080225CC
- ldr r5, _080225D8 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _080225DC @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r3, _080225E0 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r3
- ldr r2, _080225E4 @ =0x02000000
- ldr r6, _080225E8 @ =0x00016068
- adds r0, r6
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r1]
- ldr r1, _080225EC @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0]
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x00_a_b_0
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_080225CC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080225D4: .4byte gUnknown_02024A64
-_080225D8: .4byte gUnknown_02024C10
-_080225DC: .4byte gUnknown_02024A60
-_080225E0: .4byte gUnknown_02024A6A
-_080225E4: .4byte 0x02000000
-_080225E8: .4byte 0x00016068
-_080225EC: .4byte gBitTable
- thumb_func_end atk4C_switch1
-
- thumb_func_start sub_80225F0
-sub_80225F0: @ 80225F0
- push {r4-r7,lr}
- sub sp, 0x58
- ldr r0, _0802274C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _080225FE
- b _08022744
-_080225FE:
- ldr r0, _08022750 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _08022754 @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r6, _08022758 @ =gBattleMons
- ldrb r0, [r4]
- movs r5, 0x58
- adds r1, r0, 0
- muls r1, r5
- adds r1, r6
- mov r0, sp
- movs r2, 0x58
- bl memcpy
- ldrb r0, [r4]
- muls r0, r5
- adds r3, r0, r6
- movs r2, 0
- ldr r5, _0802275C @ =gUnknown_02024260
- adds r7, r4, 0
-_0802262C:
- adds r0, r3, r2
- ldrb r1, [r4]
- lsls r1, 9
- adds r1, 0x4
- adds r1, r2, r1
- adds r1, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x57
- bls _0802262C
- ldr r4, _08022758 @ =gBattleMons
- ldrb r0, [r7]
- movs r6, 0x58
- adds r2, r0, 0
- muls r2, r6
- adds r2, r4
- ldr r3, _08022760 @ =gBaseStats
- ldrh r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x6]
- adds r2, 0x21
- strb r0, [r2]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r4
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x7]
- adds r1, 0x22
- strb r0, [r1]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r4
- ldrh r0, [r1]
- ldrb r1, [r1, 0x17]
- lsrs r1, 7
- bl GetAbilityBySpecies
- ldrb r1, [r7]
- muls r1, r6
- adds r1, r4
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r7]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08022764 @ =gUnknown_02024DBC
- adds r0, 0x29
- adds r0, r2, r0
- ldrb r1, [r0]
- ldr r3, _08022768 @ =gBitTable
- ldr r2, _0802276C @ =gUnknown_02024A6A
- ldrb r5, [r7]
- lsls r0, r5, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ands r1, r0
- mov r12, r4
- cmp r1, 0
- beq _080226CA
- adds r0, r5, 0
- muls r0, r6
- add r0, r12
- movs r1, 0
- strh r1, [r0, 0x2E]
-_080226CA:
- ldr r2, _08022770 @ =gBattleMoves
- ldr r0, _08022774 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7F
- bne _08022710
- movs r2, 0
- adds r4, r7, 0
- movs r6, 0x58
- mov r5, r12
- adds r5, 0x18
- add r3, sp, 0x18
-_080226EA:
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r2, r1
- adds r1, r5
- adds r0, r3, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0x7
- ble _080226EA
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- mov r1, r12
- adds r1, 0x50
- adds r0, r1
- ldr r1, [sp, 0x50]
- str r1, [r0]
-_08022710:
- bl sub_8010B88
- ldr r0, _08022778 @ =0x02000000
- ldr r3, _08022754 @ =gUnknown_02024A60
- ldrb r2, [r3]
- ldr r1, _0802277C @ =0x00016003
- adds r0, r1
- strb r2, [r0]
- ldr r1, _08022780 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- ldr r2, _0802276C @ =gUnknown_02024A6A
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08022750 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08022744:
- add sp, 0x58
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802274C: .4byte gUnknown_02024A64
-_08022750: .4byte gUnknown_02024C10
-_08022754: .4byte gUnknown_02024A60
-_08022758: .4byte gBattleMons
-_0802275C: .4byte gUnknown_02024260
-_08022760: .4byte gBaseStats
-_08022764: .4byte gUnknown_02024DBC
-_08022768: .4byte gBitTable
-_0802276C: .4byte gUnknown_02024A6A
-_08022770: .4byte gBattleMoves
-_08022774: .4byte gUnknown_02024BE6
-_08022778: .4byte 0x02000000
-_0802277C: .4byte 0x00016003
-_08022780: .4byte gUnknown_030041C0
- thumb_func_end sub_80225F0
-
- thumb_func_start sub_8022784
-sub_8022784: @ 8022784
- push {r4,r5,lr}
- ldr r0, _0802280C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08022806
- ldr r0, _08022810 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _08022814 @ =gUnknown_02024A60
- strb r0, [r4]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080227D0
- ldr r0, _08022818 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0802281C @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _080227D0
- ldr r2, _08022820 @ =gBattleMons
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl sub_8090D90
-_080227D0:
- ldr r2, _08022824 @ =gUnknown_02024C0C
- ldr r1, _08022828 @ =gBitTable
- ldr r5, _08022814 @ =gUnknown_02024A60
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldrb r0, [r2]
- bics r0, r1
- strb r0, [r2]
- ldr r1, _0802282C @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrb r1, [r0]
- ldr r4, _08022810 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r2, [r0, 0x2]
- movs r0, 0
- bl sub_800C704
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
-_08022806:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802280C: .4byte gUnknown_02024A64
-_08022810: .4byte gUnknown_02024C10
-_08022814: .4byte gUnknown_02024A60
-_08022818: .4byte gUnknown_020239F8
-_0802281C: .4byte 0x00000902
-_08022820: .4byte gBattleMons
-_08022824: .4byte gUnknown_02024C0C
-_08022828: .4byte gBitTable
-_0802282C: .4byte gUnknown_02024A6A
- thumb_func_end sub_8022784
-
- thumb_func_start sub_8022830
-sub_8022830: @ 8022830
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _08022894 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- movs r0, 0x7F
- ands r0, r1
- bl sub_8015150
- ldr r3, _08022898 @ =gUnknown_02024A60
- strb r0, [r3]
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080228A8
- ldr r1, _0802289C @ =gBattleMons
- ldrb r3, [r3]
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080228A0 @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- bne _0802287C
- ldr r1, _080228A4 @ =gUnknown_02024C98
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- beq _080228A8
-_0802287C:
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08022A2C
- .align 2, 0
-_08022894: .4byte gUnknown_02024C10
-_08022898: .4byte gUnknown_02024A60
-_0802289C: .4byte gBattleMons
-_080228A0: .4byte 0x0400e000
-_080228A4: .4byte gUnknown_02024C98
-_080228A8:
- ldr r5, _08022934 @ =gUnknown_020239F8
- ldrh r1, [r5]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08022948
- ldr r4, _08022938 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0802293C @ =gPlayerParty
- mov r8, r1
- cmp r0, 0x1
- bne _080228CC
- ldr r0, _08022940 @ =gEnemyParty
- mov r8, r0
-_080228CC:
- movs r5, 0
- ldrb r0, [r4]
- bl sub_803FC34
- lsls r0, 24
- lsrs r0, 24
- bl sub_803FBFC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _080228E6
- movs r5, 0x3
-_080228E6:
- adds r6, r5, 0x3
- cmp r5, r6
- bge _0802292E
- ldr r7, _08022944 @ =gUnknown_02024A6A
-_080228EE:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08022928
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08022928
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08022928
- ldr r0, _08022938 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- cmp r0, r5
- bne _0802292E
-_08022928:
- adds r5, 0x1
- cmp r5, r6
- blt _080228EE
-_0802292E:
- cmp r5, r6
- beq _080229FC
- b _08022A24
- .align 2, 0
-_08022934: .4byte gUnknown_020239F8
-_08022938: .4byte gUnknown_02024A60
-_0802293C: .4byte gPlayerParty
-_08022940: .4byte gEnemyParty
-_08022944: .4byte gUnknown_02024A6A
-_08022948:
- ldr r0, _08022978 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _08022988
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r1, [r5]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0802297C
- movs r0, 0x3
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- b _0802297E
- .align 2, 0
-_08022978: .4byte gUnknown_02024A60
-_0802297C:
- adds r6, r7, 0
-_0802297E:
- ldr r0, _08022984 @ =gEnemyParty
- mov r8, r0
- b _080229AE
- .align 2, 0
-_08022984: .4byte gEnemyParty
-_08022988:
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080229A8
- movs r0, 0x2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- b _080229AA
-_080229A8:
- adds r6, r7, 0
-_080229AA:
- ldr r1, _08022A18 @ =gPlayerParty
- mov r8, r1
-_080229AE:
- movs r5, 0
-_080229B0:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080229F2
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080229F2
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080229F2
- ldr r1, _08022A1C @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- beq _080229F2
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- bne _080229F8
-_080229F2:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080229B0
-_080229F8:
- cmp r5, 0x6
- bne _08022A24
-_080229FC:
- ldr r3, _08022A20 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08022A2C
- .align 2, 0
-_08022A18: .4byte gPlayerParty
-_08022A1C: .4byte gUnknown_02024A6A
-_08022A20: .4byte gUnknown_02024C10
-_08022A24:
- ldr r1, _08022A38 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
-_08022A2C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08022A38: .4byte gUnknown_02024C10
- thumb_func_end sub_8022830
-
- thumb_func_start sub_8022A3C
-sub_8022A3C: @ 8022A3C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r4, _08022A84 @ =0x02000000
- ldr r5, _08022A88 @ =gUnknown_02024A60
- ldrb r0, [r5]
- ldr r3, _08022A8C @ =0x00016064
- adds r1, r0, r3
- adds r1, r4
- ldr r3, _08022A90 @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- ldr r1, _08022A94 @ =0x0001606c
- adds r4, r1
- adds r0, r4
- str r0, [sp]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08022A84: .4byte 0x02000000
-_08022A88: .4byte gUnknown_02024A60
-_08022A8C: .4byte 0x00016064
-_08022A90: .4byte gUnknown_02024A6A
-_08022A94: .4byte 0x0001606c
- thumb_func_end sub_8022A3C
-
- thumb_func_start atk50_openpartyscreen
-atk50_openpartyscreen: @ 8022A98
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r7, 0
- movs r0, 0
- mov r9, r0
- ldr r6, _08022B44 @ =gUnknown_02024C10
- ldr r1, [r6]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- orrs r2, r0
- mov r8, r2
- ldrb r2, [r1, 0x1]
- adds r0, r2, 0
- mov r12, r6
- cmp r0, 0x5
- beq _08022ACE
- b _08022F74
-_08022ACE:
- ldr r0, _08022B48 @ =gUnknown_020239F8
- ldrh r0, [r0]
- movs r1, 0x41
- ands r1, r0
- cmp r1, 0x1
- beq _08022BBC
- ldr r1, _08022B4C @ =gUnknown_02024A60
- strb r7, [r1]
- ldr r0, _08022B50 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r7, r0
- bcc _08022AE8
- b _08022F62
-_08022AE8:
- ldr r7, _08022B54 @ =gUnknown_02024C6C
- ldr r6, _08022B58 @ =gBitTable
- adds r4, r1, 0
- ldr r0, _08022B5C @ =gUnknown_02024C0C
- mov r8, r0
-_08022AF2:
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r7]
- ands r0, r1
- cmp r0, 0
- beq _08022B94
- adds r0, r2, 0
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022B60
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- mov r2, r8
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r7]
- bics r0, r1
- str r0, [r7]
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08022BA2
- .align 2, 0
-_08022B44: .4byte gUnknown_02024C10
-_08022B48: .4byte gUnknown_020239F8
-_08022B4C: .4byte gUnknown_02024A60
-_08022B50: .4byte gUnknown_02024A68
-_08022B54: .4byte gUnknown_02024C6C
-_08022B58: .4byte gBitTable
-_08022B5C: .4byte gUnknown_02024C0C
-_08022B60:
- ldr r5, _08022B90 @ =gUnknown_02024D68
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022BA2
- movs r0, 0x6
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022BA2
- .align 2, 0
-_08022B90: .4byte gUnknown_02024D68
-_08022B94:
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08022BA2:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08022BB8 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08022AF2
- b _08022F62
- .align 2, 0
-_08022BB8: .4byte gUnknown_02024A68
-_08022BBC:
- ands r1, r0
- cmp r1, 0
- bne _08022BC4
- b _08022F62
-_08022BC4:
- ldr r0, _08022C1C @ =gUnknown_02024C6C
- mov r8, r0
- ldr r0, [r0]
- lsrs r5, r0, 28
- ldr r6, _08022C20 @ =gBitTable
- ldr r0, [r6]
- ands r0, r5
- cmp r0, 0
- beq _08022C7E
- ldr r4, _08022C24 @ =gUnknown_02024A60
- strb r7, [r4]
- movs r0, 0
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022C2C
- ldr r2, _08022C28 @ =gUnknown_02024C0C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- mov r2, r8
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08022C7E
- .align 2, 0
-_08022C1C: .4byte gUnknown_02024C6C
-_08022C20: .4byte gBitTable
-_08022C24: .4byte gUnknown_02024A60
-_08022C28: .4byte gUnknown_02024C0C
-_08022C2C:
- ldr r6, _08022C60 @ =gUnknown_02024D68
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022C6C
- ldr r0, _08022C64 @ =0x02000000
- ldr r1, _08022C68 @ =0x0001606a
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022C7E
- .align 2, 0
-_08022C60: .4byte gUnknown_02024D68
-_08022C64: .4byte 0x02000000
-_08022C68: .4byte 0x0001606a
-_08022C6C:
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- movs r2, 0x1
- mov r9, r2
-_08022C7E:
- ldr r6, _08022CD8 @ =gBitTable
- ldr r0, [r6, 0x8]
- ands r0, r5
- cmp r0, 0
- beq _08022D40
- ldr r0, [r6]
- ands r0, r5
- cmp r0, 0
- bne _08022D40
- ldr r4, _08022CDC @ =gUnknown_02024A60
- movs r0, 0x2
- strb r0, [r4]
- movs r0, 0x2
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022CE8
- ldr r2, _08022CE0 @ =gUnknown_02024C0C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _08022CE4 @ =gUnknown_02024C6C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08022D40
- .align 2, 0
-_08022CD8: .4byte gBitTable
-_08022CDC: .4byte gUnknown_02024A60
-_08022CE0: .4byte gUnknown_02024C0C
-_08022CE4: .4byte gUnknown_02024C6C
-_08022CE8:
- ldr r6, _08022D1C @ =gUnknown_02024D68
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022D28
- ldr r0, _08022D20 @ =0x02000000
- ldr r1, _08022D24 @ =0x00016068
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022D40
- .align 2, 0
-_08022D1C: .4byte gUnknown_02024D68
-_08022D20: .4byte 0x02000000
-_08022D24: .4byte 0x00016068
-_08022D28:
- movs r0, 0x1
- mov r2, r9
- ands r0, r2
- cmp r0, 0
- bne _08022D40
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08022D40:
- ldr r6, _08022D90 @ =gBitTable
- ldr r0, [r6, 0x4]
- ands r0, r5
- cmp r0, 0
- beq _08022DF6
- ldr r4, _08022D94 @ =gUnknown_02024A60
- movs r0, 0x1
- strb r0, [r4]
- movs r0, 0x1
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022DA0
- ldr r2, _08022D98 @ =gUnknown_02024C0C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _08022D9C @ =gUnknown_02024C6C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08022DF6
- .align 2, 0
-_08022D90: .4byte gBitTable
-_08022D94: .4byte gUnknown_02024A60
-_08022D98: .4byte gUnknown_02024C0C
-_08022D9C: .4byte gUnknown_02024C6C
-_08022DA0:
- ldr r6, _08022DD4 @ =gUnknown_02024D68
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022DE0
- ldr r0, _08022DD8 @ =0x02000000
- ldr r1, _08022DDC @ =0x0001606b
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022DF6
- .align 2, 0
-_08022DD4: .4byte gUnknown_02024D68
-_08022DD8: .4byte 0x02000000
-_08022DDC: .4byte 0x0001606b
-_08022DE0:
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- movs r0, 0x2
- mov r2, r9
- orrs r2, r0
- mov r9, r2
-_08022DF6:
- ldr r6, _08022E50 @ =gBitTable
- ldr r0, [r6, 0xC]
- ands r0, r5
- cmp r0, 0
- beq _08022EB8
- ldr r0, [r6, 0x4]
- ands r0, r5
- cmp r0, 0
- bne _08022EB8
- ldr r4, _08022E54 @ =gUnknown_02024A60
- movs r0, 0x3
- strb r0, [r4]
- movs r0, 0x3
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022E60
- ldr r2, _08022E58 @ =gUnknown_02024C0C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _08022E5C @ =gUnknown_02024C6C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08022EB8
- .align 2, 0
-_08022E50: .4byte gBitTable
-_08022E54: .4byte gUnknown_02024A60
-_08022E58: .4byte gUnknown_02024C0C
-_08022E5C: .4byte gUnknown_02024C6C
-_08022E60:
- ldr r6, _08022E94 @ =gUnknown_02024D68
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022EA0
- ldr r0, _08022E98 @ =0x02000000
- ldr r1, _08022E9C @ =0x00016069
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022EB8
- .align 2, 0
-_08022E94: .4byte gUnknown_02024D68
-_08022E98: .4byte 0x02000000
-_08022E9C: .4byte 0x00016069
-_08022EA0:
- movs r0, 0x2
- mov r2, r9
- ands r2, r0
- cmp r2, 0
- bne _08022EB8
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08022EB8:
- ldr r1, _08022EE8 @ =gUnknown_02024D68
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022F0C
- adds r0, r1, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- blt _08022F0C
- cmp r5, 0
- beq _08022F0C
- ldr r0, _08022EEC @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r0, _08022EF0 @ =gBitTable
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08022EF8
- ldr r1, _08022EF4 @ =gUnknown_02024A60
- movs r0, 0x2
- strb r0, [r1]
- b _08022EFC
- .align 2, 0
-_08022EE8: .4byte gUnknown_02024D68
-_08022EEC: .4byte gUnknown_02024C0C
-_08022EF0: .4byte gBitTable
-_08022EF4: .4byte gUnknown_02024A60
-_08022EF8:
- ldr r0, _08022F3C @ =gUnknown_02024A60
- strb r1, [r0]
-_08022EFC:
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldr r0, _08022F3C @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
-_08022F0C:
- ldr r1, _08022F40 @ =gUnknown_02024D68
- ldrb r0, [r1, 0x14]
- lsls r0, 25
- cmp r0, 0
- blt _08022F62
- adds r0, r1, 0
- adds r0, 0x3C
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- blt _08022F62
- cmp r5, 0
- beq _08022F62
- ldr r0, _08022F44 @ =gUnknown_02024C0C
- ldrb r0, [r0]
- ldr r1, _08022F48 @ =gBitTable
- ldr r1, [r1, 0x4]
- ands r0, r1
- cmp r0, 0
- beq _08022F4C
- ldr r1, _08022F3C @ =gUnknown_02024A60
- movs r0, 0x3
- b _08022F50
- .align 2, 0
-_08022F3C: .4byte gUnknown_02024A60
-_08022F40: .4byte gUnknown_02024D68
-_08022F44: .4byte gUnknown_02024C0C
-_08022F48: .4byte gBitTable
-_08022F4C:
- ldr r1, _08022F6C @ =gUnknown_02024A60
- movs r0, 0x1
-_08022F50:
- strb r0, [r1]
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldr r0, _08022F6C @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
-_08022F62:
- ldr r1, _08022F70 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
- b _08023302
- .align 2, 0
-_08022F6C: .4byte gUnknown_02024A60
-_08022F70: .4byte gUnknown_02024C10
-_08022F74:
- cmp r0, 0x6
- beq _08022F7A
- b _08023170
-_08022F7A:
- ldr r0, _08022FF0 @ =gUnknown_020239F8
- ldrh r2, [r0]
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- beq _08022F88
- b _0802310C
-_08022F88:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _08022F92
- b _0802310C
-_08022F92:
- ldr r7, _08022FF4 @ =gUnknown_02024C6C
- ldr r0, [r7]
- lsrs r5, r0, 28
- ldr r4, _08022FF8 @ =gBitTable
- ldr r0, [r4, 0x8]
- ands r0, r5
- cmp r0, 0
- beq _0802303A
- ldr r0, [r4]
- ands r0, r5
- cmp r0, 0
- beq _0802303A
- ldr r6, _08022FFC @ =gUnknown_02024A60
- movs r0, 0x2
- strb r0, [r6]
- ldr r0, _08023000 @ =gUnknown_02024260
- ldrb r1, [r0, 0x1]
- movs r0, 0x2
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08023008
- ldr r2, _08023004 @ =gUnknown_02024C0C
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r4
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r7]
- bics r0, r1
- str r0, [r7]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r6]
- bl dp01_battle_side_mark_buffer_for_execution
- b _0802303A
- .align 2, 0
-_08022FF0: .4byte gUnknown_020239F8
-_08022FF4: .4byte gUnknown_02024C6C
-_08022FF8: .4byte gBitTable
-_08022FFC: .4byte gUnknown_02024A60
-_08023000: .4byte gUnknown_02024260
-_08023004: .4byte gUnknown_02024C0C
-_08023008:
- ldr r4, _08023098 @ =gUnknown_02024D68
- ldrb r0, [r6]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _0802303A
- ldr r0, _0802309C @ =0x02000000
- ldr r1, _080230A0 @ =0x00016068
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
-_0802303A:
- ldr r4, _080230A4 @ =gBitTable
- ldr r0, [r4, 0xC]
- ands r0, r5
- cmp r0, 0
- beq _080230EE
- ldr r0, [r4, 0x4]
- ands r5, r0
- cmp r5, 0
- beq _080230EE
- ldr r5, _080230A8 @ =gUnknown_02024A60
- movs r0, 0x3
- strb r0, [r5]
- ldr r0, _080230AC @ =gUnknown_02024260
- ldr r2, _080230B0 @ =0x00000201
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x3
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _080230BC
- ldr r2, _080230B4 @ =gUnknown_02024C0C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _080230B8 @ =gUnknown_02024C6C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- b _080230EE
- .align 2, 0
-_08023098: .4byte gUnknown_02024D68
-_0802309C: .4byte 0x02000000
-_080230A0: .4byte 0x00016068
-_080230A4: .4byte gBitTable
-_080230A8: .4byte gUnknown_02024A60
-_080230AC: .4byte gUnknown_02024260
-_080230B0: .4byte 0x00000201
-_080230B4: .4byte gUnknown_02024C0C
-_080230B8: .4byte gUnknown_02024C6C
-_080230BC:
- ldr r4, _080230FC @ =gUnknown_02024D68
- ldrb r0, [r5]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _080230EE
- ldr r0, _08023100 @ =0x02000000
- ldr r1, _08023104 @ =0x00016069
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
-_080230EE:
- ldr r1, _08023108 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
- mov r12, r1
- b _08023110
- .align 2, 0
-_080230FC: .4byte gUnknown_02024D68
-_08023100: .4byte 0x02000000
-_08023104: .4byte 0x00016069
-_08023108: .4byte gUnknown_02024C10
-_0802310C:
- adds r0, r1, 0x6
- str r0, [r6]
-_08023110:
- ldr r0, _08023160 @ =gUnknown_02024C6C
- ldr r0, [r0]
- lsrs r5, r0, 28
- ldr r1, _08023164 @ =gUnknown_02024C09
- movs r0, 0
- strb r0, [r1]
- ldr r4, _08023168 @ =gBitTable
- ldr r2, [r4]
- ands r2, r5
- ldr r6, _0802316C @ =gUnknown_02024A68
- cmp r2, 0
- bne _0802314C
- adds r7, r6, 0
- ldrb r0, [r6]
- cmp r2, r0
- bcs _0802314C
- adds r3, r1, 0
-_08023132:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- ldrb r2, [r3]
- lsls r0, r2, 2
- adds r0, r4
- ldr r0, [r0]
- ands r0, r5
- cmp r0, 0
- bne _0802314C
- ldrb r0, [r7]
- cmp r2, r0
- bcc _08023132
-_0802314C:
- ldrb r0, [r1]
- ldrb r6, [r6]
- cmp r0, r6
- beq _08023156
- b _08023302
-_08023156:
- mov r1, r8
- mov r2, r12
- str r1, [r2]
- b _08023302
- .align 2, 0
-_08023160: .4byte gUnknown_02024C6C
-_08023164: .4byte gUnknown_02024C09
-_08023168: .4byte gBitTable
-_0802316C: .4byte gUnknown_02024A68
-_08023170:
- movs r0, 0x80
- ands r0, r2
- movs r5, 0x1
- cmp r0, 0
- beq _0802317C
- movs r5, 0
-_0802317C:
- movs r0, 0x7F
- ands r0, r2
- bl sub_8015150
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080231A4 @ =gUnknown_02024D68
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- bge _080231A8
- ldr r0, [r6]
- adds r0, 0x6
- str r0, [r6]
- b _08023302
- .align 2, 0
-_080231A4: .4byte gUnknown_02024D68
-_080231A8:
- adds r0, r7, 0
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _080231F8
- ldr r2, _080231E8 @ =gUnknown_02024A60
- strb r7, [r2]
- ldr r3, _080231EC @ =gUnknown_02024C0C
- ldr r4, _080231F0 @ =gBitTable
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ldrb r1, [r3]
- orrs r0, r1
- strb r0, [r3]
- ldr r3, _080231F4 @ =gUnknown_02024C6C
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r4
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r3]
- bics r0, r1
- str r0, [r3]
- mov r0, r8
- str r0, [r6]
- b _08023302
- .align 2, 0
-_080231E8: .4byte gUnknown_02024A60
-_080231EC: .4byte gUnknown_02024C0C
-_080231F0: .4byte gBitTable
-_080231F4: .4byte gUnknown_02024C6C
-_080231F8:
- ldr r4, _080232A0 @ =gUnknown_02024A60
- strb r7, [r4]
- ldr r3, _080232A4 @ =0x02000000
- ldrb r0, [r4]
- ldr r2, _080232A8 @ =0x00016064
- adds r1, r0, r2
- adds r1, r3
- ldr r2, _080232AC @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- ldr r1, _080232B0 @ =0x00016068
- adds r0, r1
- adds r0, r3
- ldrb r2, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- ldr r1, _080232B4 @ =0x0001606c
- adds r3, r1
- adds r0, r3
- str r0, [sp]
- movs r0, 0
- adds r1, r5, 0
- movs r3, 0
- bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r6]
- adds r0, 0x6
- str r0, [r6]
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- cmp r0, 0
- bne _0802325A
- ldr r1, _080232B8 @ =gUnknown_030042E0
- ldrb r0, [r1, 0x2]
- cmp r0, 0xFE
- bhi _0802325A
- adds r0, 0x1
- strb r0, [r1, 0x2]
-_0802325A:
- ldr r0, _080232BC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080232C4
- ldr r1, _080232A0 @ =gUnknown_02024A60
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080232C0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r0, 0
- beq _08023302
- adds r4, r1, 0
-_08023276:
- ldrb r0, [r4]
- cmp r0, r7
- beq _0802328A
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_0802328A:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _080232C0 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08023276
- b _08023302
- .align 2, 0
-_080232A0: .4byte gUnknown_02024A60
-_080232A4: .4byte 0x02000000
-_080232A8: .4byte 0x00016064
-_080232AC: .4byte gUnknown_02024A6A
-_080232B0: .4byte 0x00016068
-_080232B4: .4byte 0x0001606c
-_080232B8: .4byte gUnknown_030042E0
-_080232BC: .4byte gUnknown_020239F8
-_080232C0: .4byte gUnknown_02024A68
-_080232C4:
- adds r0, r7, 0
- bl battle_get_per_side_status
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r4, _08023310 @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r0, _08023314 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08023318 @ =gBitTable
- ldrb r3, [r4]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080232F4
- movs r0, 0x2
- eors r3, r0
- strb r3, [r4]
-_080232F4:
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08023302:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023310: .4byte gUnknown_02024A60
-_08023314: .4byte gUnknown_02024C0C
-_08023318: .4byte gBitTable
- thumb_func_end atk50_openpartyscreen
-
- thumb_func_start sub_802331C
-sub_802331C: @ 802331C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0802334C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _0802332C
- b _080234FE
-_0802332C:
- ldr r4, _08023350 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r7, _08023354 @ =gUnknown_02024A60
- strb r0, [r7]
- ldr r0, [r4]
- ldrb r0, [r0, 0x2]
- cmp r0, 0x1
- beq _080233A0
- cmp r0, 0x1
- bgt _08023358
- cmp r0, 0
- beq _0802335E
- b _080234F6
- .align 2, 0
-_0802334C: .4byte gUnknown_02024A64
-_08023350: .4byte gUnknown_02024C10
-_08023354: .4byte gUnknown_02024A60
-_08023358:
- cmp r0, 0x2
- beq _080233BC
- b _080234F6
-_0802335E:
- movs r3, 0
- ldr r2, _08023390 @ =gUnknown_02024A68
- ldrb r0, [r2]
- cmp r3, r0
- blt _0802336A
- b _080234F6
-_0802336A:
- ldr r0, _08023394 @ =0x02000000
- ldr r1, _08023398 @ =gUnknown_02024260
- movs r5, 0x80
- lsls r5, 2
- adds r4, r2, 0
- ldr r6, _0802339C @ =0x00016068
- adds r2, r0, r6
-_08023378:
- ldrb r0, [r1]
- cmp r0, 0x22
- bne _08023382
- ldrb r0, [r1, 0x1]
- strb r0, [r2]
-_08023382:
- adds r1, r5
- adds r2, 0x1
- adds r3, 0x1
- ldrb r0, [r4]
- cmp r3, r0
- blt _08023378
- b _080234F6
- .align 2, 0
-_08023390: .4byte gUnknown_02024A68
-_08023394: .4byte 0x02000000
-_08023398: .4byte gUnknown_02024260
-_0802339C: .4byte 0x00016068
-_080233A0:
- ldr r0, _080233B8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080233AE
- b _080234F6
-_080233AE:
- ldrb r0, [r7]
- bl sub_8012258
- b _080234F6
- .align 2, 0
-_080233B8: .4byte gUnknown_020239F8
-_080233BC:
- ldr r1, _08023484 @ =gUnknown_02024D1E
- ldr r4, _08023488 @ =gUnknown_02024260
- ldrb r0, [r7]
- lsls r0, 9
- adds r2, r4, 0x1
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r6, _0802348C @ =0x02000000
- ldrb r0, [r7]
- ldr r3, _08023490 @ =0x00016068
- adds r1, r0, r3
- adds r1, r6
- lsls r0, 9
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _08023494 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080234A4
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- ldr r5, _08023498 @ =0x0001606c
- adds r1, r5
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- adds r1, r6
- lsls r0, 9
- adds r2, r4, 0x2
- mov r12, r2
- add r0, r12
- ldrb r2, [r0]
- movs r3, 0xF0
- adds r0, r3, 0
- ands r0, r2
- ldrb r2, [r1]
- orrs r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- ldr r2, _0802349C @ =0x0001606d
- adds r1, r2
- adds r1, r6
- lsls r0, 9
- adds r4, 0x3
- mov r8, r4
- add r0, r8
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r4, 0x2
- eors r0, r4
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- adds r1, r6
- ldrb r2, [r1]
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- eors r0, r4
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- adds r1, r6
- ldrb r0, [r7]
- lsls r0, 9
- add r0, r12
- ldrb r0, [r0]
- ands r3, r0
- lsrs r3, 4
- ldrb r0, [r1]
- orrs r3, r0
- strb r3, [r1]
- ldrb r0, [r7]
- eors r4, r0
- lsls r1, r4, 1
- adds r1, r4
- ldr r3, _080234A0 @ =0x0001606e
- adds r1, r3
- adds r1, r6
- ldrb r0, [r7]
- lsls r0, 9
- add r0, r8
- ldrb r0, [r0]
- strb r0, [r1]
- b _080234AA
- .align 2, 0
-_08023484: .4byte gUnknown_02024D1E
-_08023488: .4byte gUnknown_02024260
-_0802348C: .4byte 0x02000000
-_08023490: .4byte 0x00016068
-_08023494: .4byte gUnknown_020239F8
-_08023498: .4byte 0x0001606c
-_0802349C: .4byte 0x0001606d
-_080234A0: .4byte 0x0001606e
-_080234A4:
- ldrb r0, [r7]
- bl sub_8012258
-_080234AA:
- ldr r1, _08023508 @ =gUnknown_030041C0
- movs r5, 0xFD
- strb r5, [r1]
- movs r0, 0x6
- strb r0, [r1, 0x1]
- ldr r4, _0802350C @ =gBattleMons
- ldr r3, _08023510 @ =gUnknown_02024C07
- ldrb r0, [r3]
- movs r2, 0x58
- muls r0, r2
- adds r0, r4
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r3]
- muls r0, r2
- adds r0, r4
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r2, _08023514 @ =gUnknown_03004290
- strb r5, [r2]
- movs r0, 0x7
- strb r0, [r2, 0x1]
- ldr r3, _08023518 @ =gUnknown_02024A60
- ldrb r0, [r3]
- strb r0, [r2, 0x2]
- ldr r1, _0802351C @ =gUnknown_02024260
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2, 0x3]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r2, 0x4]
-_080234F6:
- ldr r1, _08023520 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x3
- str r0, [r1]
-_080234FE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023508: .4byte gUnknown_030041C0
-_0802350C: .4byte gBattleMons
-_08023510: .4byte gUnknown_02024C07
-_08023514: .4byte gUnknown_03004290
-_08023518: .4byte gUnknown_02024A60
-_0802351C: .4byte gUnknown_02024260
-_08023520: .4byte gUnknown_02024C10
- thumb_func_end sub_802331C
-
- thumb_func_start sub_8023524
-sub_8023524: @ 8023524
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r6, _08023630 @ =gUnknown_02024C10
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _08023634 @ =gUnknown_02024A60
- strb r0, [r4]
- ldrb r0, [r4]
- bl sub_80157C4
- ldr r2, _08023638 @ =gUnknown_02024C6C
- ldr r1, _0802363C @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- ldr r2, _08023640 @ =gUnknown_02024D68
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1]
- movs r0, 0x41
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- bl battle_side_get_owner
- ldr r5, _08023644 @ =gUnknown_02024C7A
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 2
- mov r8, r0
- ands r0, r1
- cmp r0, 0
- bne _0802367C
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802367C
- ldr r1, _08023648 @ =gBattleMons
- mov r9, r1
- ldrb r2, [r4]
- movs r7, 0x58
- adds r0, r2, 0
- muls r0, r7
- adds r1, r0, r1
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0802367C
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0802367C
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- beq _0802367C
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r2, [r0]
- mov r1, r8
- orrs r1, r2
- strh r1, [r0]
- ldrb r0, [r4]
- bl battle_side_get_owner
- ldr r2, _0802364C @ =gUnknown_02024C80
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x6]
- movs r1, 0x5
- subs r1, r0
- lsls r1, 25
- lsrs r1, 24
- ldr r5, _08023650 @ =gUnknown_02024BEC
- ldrb r0, [r4]
- muls r0, r7
- add r0, r9
- ldrh r0, [r0, 0x2C]
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _08023614
- movs r0, 0x1
- str r0, [r5]
-_08023614:
- ldr r0, _08023654 @ =0x02000000
- ldrb r1, [r4]
- ldr r2, _08023658 @ =0x00016003
- adds r0, r2
- strb r1, [r0]
- bl b_movescr_stack_push_cursor
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _08023660
- ldr r0, _0802365C @ =gUnknown_081D919F
- str r0, [r6]
- b _080237B6
- .align 2, 0
-_08023630: .4byte gUnknown_02024C10
-_08023634: .4byte gUnknown_02024A60
-_08023638: .4byte gUnknown_02024C6C
-_0802363C: .4byte gBitTable
-_08023640: .4byte gUnknown_02024D68
-_08023644: .4byte gUnknown_02024C7A
-_08023648: .4byte gBattleMons
-_0802364C: .4byte gUnknown_02024C80
-_08023650: .4byte gUnknown_02024BEC
-_08023654: .4byte 0x02000000
-_08023658: .4byte 0x00016003
-_0802365C: .4byte gUnknown_081D919F
-_08023660:
- cmp r0, 0x1
- bne _08023670
- ldr r0, _0802366C @ =gUnknown_081D9171
- str r0, [r6]
- b _080237B6
- .align 2, 0
-_0802366C: .4byte gUnknown_081D9171
-_08023670:
- ldr r0, _08023678 @ =gUnknown_081D91CD
- str r0, [r6]
- b _080237B6
- .align 2, 0
-_08023678: .4byte gUnknown_081D91CD
-_0802367C:
- ldr r1, _08023754 @ =gBattleMons
- ldr r5, _08023758 @ =gUnknown_02024A60
- ldrb r2, [r5]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x36
- bne _080236A2
- ldr r1, _0802375C @ =gUnknown_02024CA8
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x18]
-_080236A2:
- ldrb r1, [r5]
- movs r0, 0
- str r0, [sp]
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _080236B8
- b _080237B6
-_080236B8:
- ldrb r1, [r5]
- movs r0, 0
- movs r2, 0
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- bne _080237B6
- ldrb r0, [r5]
- bl battle_side_get_owner
- ldr r1, _08023760 @ =gUnknown_02024C7A
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r2, [r0]
- ldr r1, _08023764 @ =0x0000fdff
- ands r1, r2
- strh r1, [r0]
- movs r4, 0
- ldr r0, _08023768 @ =gUnknown_02024A68
- ldrb r3, [r0]
- cmp r4, r3
- bge _08023706
- ldr r6, _0802376C @ =gUnknown_02024A7A
- ldr r3, _08023770 @ =gUnknown_02024A76
- movs r2, 0xC
- adds r1, r0, 0
-_080236F0:
- adds r0, r4, r6
- ldrb r0, [r0]
- ldrb r7, [r5]
- cmp r0, r7
- bne _080236FE
- adds r0, r4, r3
- strb r2, [r0]
-_080236FE:
- adds r4, 0x1
- ldrb r0, [r1]
- cmp r4, r0
- blt _080236F0
-_08023706:
- movs r4, 0
- ldr r0, _08023768 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- bge _08023736
- ldr r5, _08023754 @ =gBattleMons
-_08023712:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 23
- ldr r1, _08023774 @ =0x020160bc
- adds r0, r1
- movs r1, 0x58
- muls r1, r4
- adds r1, r5
- ldrh r1, [r1, 0x28]
- strh r1, [r0]
- adds r4, 0x1
- ldr r0, _08023768 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08023712
-_08023736:
- ldr r0, _08023778 @ =gUnknown_02024C10
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x5
- bne _080237B0
- ldr r0, _0802377C @ =gUnknown_02024C6C
- ldr r0, [r0]
- lsrs r4, r0, 28
- ldr r1, _08023780 @ =gUnknown_02024C09
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r2, _08023784 @ =gBitTable
- b _08023796
- .align 2, 0
-_08023754: .4byte gBattleMons
-_08023758: .4byte gUnknown_02024A60
-_0802375C: .4byte gUnknown_02024CA8
-_08023760: .4byte gUnknown_02024C7A
-_08023764: .4byte 0x0000fdff
-_08023768: .4byte gUnknown_02024A68
-_0802376C: .4byte gUnknown_02024A7A
-_08023770: .4byte gUnknown_02024A76
-_08023774: .4byte 0x020160bc
-_08023778: .4byte gUnknown_02024C10
-_0802377C: .4byte gUnknown_02024C6C
-_08023780: .4byte gUnknown_02024C09
-_08023784: .4byte gBitTable
-_08023788:
- ldr r0, _080237C4 @ =gUnknown_02024A68
- ldrb r3, [r1]
- ldrb r0, [r0]
- cmp r3, r0
- bcs _080237B0
- adds r0, r3, 0x1
- strb r0, [r1]
-_08023796:
- ldrb r0, [r1]
- lsls r0, 2
- adds r0, r2
- ldr r3, [r0]
- adds r0, r4, 0
- ands r0, r3
- cmp r0, 0
- beq _08023788
- ldr r0, _080237C8 @ =gUnknown_02024C0C
- ldrb r0, [r0]
- ands r0, r3
- cmp r0, 0
- bne _08023788
-_080237B0:
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_080237B6:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080237C4: .4byte gUnknown_02024A68
-_080237C8: .4byte gUnknown_02024C0C
- thumb_func_end sub_8023524
-
- thumb_func_start sub_80237CC
-sub_80237CC: @ 80237CC
- push {lr}
- ldr r0, _080237DC @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _080237E0
- movs r0, 0
- b _080237E2
- .align 2, 0
-_080237DC: .4byte gUnknown_02024C10
-_080237E0:
- movs r0, 0x1
-_080237E2:
- bl battle_get_side_with_given_state
- ldr r1, _08023804 @ =gUnknown_02024A60
- strb r0, [r1]
- movs r0, 0
- bl dp01_build_cmdbuf_x08_8_8_8
- ldr r0, _08023804 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08023808 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08023804: .4byte gUnknown_02024A60
-_08023808: .4byte gUnknown_02024C10
- thumb_func_end sub_80237CC
-
- thumb_func_start atk54_802511C
-atk54_802511C: @ 802380C
- push {r4,r5,lr}
- ldr r5, _0802383C @ =gUnknown_02024A60
- ldr r0, _08023840 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r4, _08023844 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- movs r0, 0
- bl dp01_build_cmdbuf_x2B_aa_0
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802383C: .4byte gUnknown_02024A60
-_08023840: .4byte gUnknown_02024C07
-_08023844: .4byte gUnknown_02024C10
- thumb_func_end atk54_802511C
-
- thumb_func_start sub_8023848
-sub_8023848: @ 8023848
- push {r4,r5,lr}
- ldr r5, _08023878 @ =gUnknown_02024A60
- ldr r0, _0802387C @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r4, _08023880 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- movs r0, 0
- bl sub_800D074
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08023878: .4byte gUnknown_02024A60
-_0802387C: .4byte gUnknown_02024C07
-_08023880: .4byte gUnknown_02024C10
- thumb_func_end sub_8023848
-
- thumb_func_start atk56_8025194
-atk56_8025194: @ 8023884
- push {r4,r5,lr}
- ldr r5, _080238AC @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _080238B0 @ =gUnknown_02024A60
- strb r0, [r4]
- movs r0, 0
- bl dp01_build_cmdbuf_x2D_2D_2D_2D
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080238AC: .4byte gUnknown_02024C10
-_080238B0: .4byte gUnknown_02024A60
- thumb_func_end atk56_8025194
-
- thumb_func_start atk57_80251C4_flee
-atk57_80251C4_flee: @ 80238B4
- push {r4,lr}
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r4, _080238E0 @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r0, _080238E4 @ =gUnknown_02024D26
- ldrb r1, [r0]
- movs r0, 0
- bl dp01_build_cmdbuf_x37_a
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _080238E8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080238E0: .4byte gUnknown_02024A60
-_080238E4: .4byte gUnknown_02024D26
-_080238E8: .4byte gUnknown_02024C10
- thumb_func_end atk57_80251C4_flee
-
- thumb_func_start atk58_cmd58
-atk58_cmd58: @ 80238EC
- push {r4,r5,lr}
- ldr r5, _08023918 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _0802391C @ =gUnknown_02024A60
- strb r0, [r4]
- movs r0, 0
- movs r1, 0x1
- bl dp01_build_cmdbuf_x06_a
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08023918: .4byte gUnknown_02024C10
-_0802391C: .4byte gUnknown_02024A60
- thumb_func_end atk58_cmd58
-
- thumb_func_start atk59_8025230
-atk59_8025230: @ 8023920
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _0802399C @ =gUnknown_02024C10
- ldr r2, [r0]
- ldrb r6, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r6, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r6, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r6, r0
- ldrb r4, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r4, r0
- ldr r0, _080239A0 @ =0x02000000
- ldr r1, _080239A4 @ =0x00016018
- adds r7, r0, r1
- ldrb r1, [r7]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080239A8 @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r2, 0x9]
- bl sub_803B7C8
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080239AC @ =0x0000fffe
- cmp r5, r0
- bne _08023992
- mov r9, r7
- mov r8, r5
- movs r7, 0x64
-_0802397A:
- mov r3, r9
- ldrb r0, [r3]
- muls r0, r7
- ldr r1, _080239A8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0
- bl sub_803B7C8
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- beq _0802397A
-_08023992:
- cmp r5, 0
- bne _080239B0
- ldr r0, _0802399C @ =gUnknown_02024C10
- str r4, [r0]
- b _08023A58
- .align 2, 0
-_0802399C: .4byte gUnknown_02024C10
-_080239A0: .4byte 0x02000000
-_080239A4: .4byte 0x00016018
-_080239A8: .4byte gPlayerParty
-_080239AC: .4byte 0x0000fffe
-_080239B0:
- ldr r0, _080239C0 @ =0x0000ffff
- cmp r5, r0
- bne _080239C8
- ldr r1, _080239C4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
- b _08023A58
- .align 2, 0
-_080239C0: .4byte 0x0000ffff
-_080239C4: .4byte gUnknown_02024C10
-_080239C8:
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _08023A64 @ =gUnknown_02024A60
- strb r0, [r1]
- ldr r0, _08023A68 @ =gUnknown_02024A6A
- ldrb r2, [r1]
- lsls r1, r2, 1
- adds r1, r0
- ldr r0, _08023A6C @ =0x02000000
- ldr r3, _08023A70 @ =0x00016018
- adds r0, r3
- ldrh r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bne _08023A08
- ldr r3, _08023A74 @ =gBattleMons
- movs r0, 0x58
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08023A08
- adds r0, r2, r3
- adds r1, r5, 0
- bl GiveMoveToBattleMon
-_08023A08:
- ldr r0, _08023A78 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023A54
- movs r0, 0x2
- bl battle_get_side_with_given_state
- ldr r1, _08023A64 @ =gUnknown_02024A60
- strb r0, [r1]
- ldr r0, _08023A68 @ =gUnknown_02024A6A
- ldrb r2, [r1]
- lsls r1, r2, 1
- adds r1, r0
- ldr r0, _08023A6C @ =0x02000000
- ldr r3, _08023A70 @ =0x00016018
- adds r0, r3
- ldrh r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bne _08023A54
- ldr r3, _08023A74 @ =gBattleMons
- movs r0, 0x58
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08023A54
- adds r0, r2, r3
- adds r1, r5, 0
- bl GiveMoveToBattleMon
-_08023A54:
- ldr r0, _08023A7C @ =gUnknown_02024C10
- str r6, [r0]
-_08023A58:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023A64: .4byte gUnknown_02024A60
-_08023A68: .4byte gUnknown_02024A6A
-_08023A6C: .4byte 0x02000000
-_08023A70: .4byte 0x00016018
-_08023A74: .4byte gBattleMons
-_08023A78: .4byte gUnknown_020239F8
-_08023A7C: .4byte gUnknown_02024C10
- thumb_func_end atk59_8025230
-
- thumb_func_start sub_8023A80
-sub_8023A80: @ 8023A80
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x18
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_802BBD4
- ldr r4, _08023AC8 @ =gUnknown_03004210
- ldr r1, _08023ACC @ =gUnknown_08400D7A
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x9
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x19
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _08023AD0 @ =0x0000ffff
- ldr r3, _08023AD4 @ =0x00002d9f
- movs r0, 0x20
- str r0, [sp]
- movs r0, 0
- movs r2, 0xC
- bl sub_814A5C0
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08023AC8: .4byte gUnknown_03004210
-_08023ACC: .4byte gUnknown_08400D7A
-_08023AD0: .4byte 0x0000ffff
-_08023AD4: .4byte 0x00002d9f
- thumb_func_end sub_8023A80
-
- thumb_func_start sub_8023AD8
-sub_8023AD8: @ 8023AD8
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x18
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_802BBD4
- bl sub_814A7FC
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8023AD8
-
- thumb_func_start sub_8023AF8
-sub_8023AF8: @ 8023AF8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r1, _08023B24 @ =gUnknown_02024A60
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08023B28 @ =0x02000000
- ldr r2, _08023B2C @ =0x0001601a
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0x5
- bls _08023B18
- b _08023E5C
-_08023B18:
- lsls r0, 2
- ldr r1, _08023B30 @ =_08023B34
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08023B24: .4byte gUnknown_02024A60
-_08023B28: .4byte 0x02000000
-_08023B2C: .4byte 0x0001601a
-_08023B30: .4byte _08023B34
- .align 2, 0
-_08023B34:
- .4byte _08023B4C
- .4byte _08023B74
- .4byte _08023C30
- .4byte _08023C84
- .4byte _08023E38
- .4byte _08023E4C
-_08023B4C:
- bl sub_8023A80
- ldr r1, _08023B68 @ =0x02000000
- ldr r0, _08023B6C @ =0x0001601a
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r0, _08023B70 @ =gUnknown_02024D1E
- strb r2, [r0, 0x1]
- bl sub_802BC6C
- b _08023E5C
- .align 2, 0
-_08023B68: .4byte 0x02000000
-_08023B6C: .4byte 0x0001601a
-_08023B70: .4byte gUnknown_02024D1E
-_08023B74:
- ldr r0, _08023BFC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08023B9A
- ldr r4, _08023C00 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _08023B9A
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08023B9A:
- ldr r0, _08023BFC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08023BC0
- ldr r4, _08023C00 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08023BC0
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08023BC0:
- ldr r0, _08023BFC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023C0C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08023C00 @ =gUnknown_02024D1E
- ldrb r4, [r0, 0x1]
- cmp r4, 0
- bne _08023C1C
- bl sub_8023AD8
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08023C04 @ =0x02000000
- ldr r2, _08023C08 @ =0x0001601a
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- b _08023E5A
- .align 2, 0
-_08023BFC: .4byte gMain
-_08023C00: .4byte gUnknown_02024D1E
-_08023C04: .4byte 0x02000000
-_08023C08: .4byte 0x0001601a
-_08023C0C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08023C16
- b _08023E5C
-_08023C16:
- movs r0, 0x5
- bl PlaySE
-_08023C1C:
- ldr r0, _08023C28 @ =0x02000000
- ldr r1, _08023C2C @ =0x0001601a
- adds r0, r1
- movs r1, 0x4
- strb r1, [r0]
- b _08023E5C
- .align 2, 0
-_08023C28: .4byte 0x02000000
-_08023C2C: .4byte 0x0001601a
-_08023C30:
- ldr r0, _08023C68 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08023C3E
- b _08023E5C
-_08023C3E:
- ldr r0, _08023C6C @ =gPlayerParty
- ldr r2, _08023C70 @ =0x00016018
- adds r1, r5, r2
- ldrb r1, [r1]
- ldr r2, _08023C74 @ =gPlayerPartyCount
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08023C78 @ =sub_807AD58
- ldr r4, _08023C7C @ =word_2024E82
- ldrh r4, [r4]
- str r4, [sp]
- bl sub_809D9F0
- ldr r0, _08023C80 @ =0x0001601a
- adds r1, r5, r0
- ldrb r0, [r1]
- adds r0, 0x1
- b _08023E5A
- .align 2, 0
-_08023C68: .4byte gPaletteFade
-_08023C6C: .4byte gPlayerParty
-_08023C70: .4byte 0x00016018
-_08023C74: .4byte gPlayerPartyCount
-_08023C78: .4byte sub_807AD58
-_08023C7C: .4byte word_2024E82
-_08023C80: .4byte 0x0001601a
-_08023C84:
- ldr r0, _08023CB4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08023C92
- b _08023E5C
-_08023C92:
- ldr r0, _08023CB8 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _08023CBC @ =sub_800F808
- cmp r1, r0
- beq _08023C9E
- b _08023E5C
-_08023C9E:
- bl sub_809FA30
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bne _08023CC8
- ldr r0, _08023CC0 @ =0x02000000
- ldr r1, _08023CC4 @ =0x0001601a
- adds r0, r1
- strb r5, [r0]
- b _08023E5C
- .align 2, 0
-_08023CB4: .4byte gPaletteFade
-_08023CB8: .4byte gMain
-_08023CBC: .4byte sub_800F808
-_08023CC0: .4byte 0x02000000
-_08023CC4: .4byte 0x0001601a
-_08023CC8:
- ldr r2, _08023D08 @ =0x02000000
- mov r9, r2
- ldr r6, _08023D0C @ =0x00016018
- add r6, r9
- ldrb r0, [r6]
- movs r1, 0x64
- mov r8, r1
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- ldr r7, _08023D10 @ =gPlayerParty
- adds r0, r7
- adds r1, r5, 0
- adds r1, 0xD
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl sub_8040A00
- cmp r0, 0
- beq _08023D20
- ldr r0, _08023D14 @ =0x0000013f
- ldr r1, _08023D18 @ =gUnknown_02024A60
- ldrb r1, [r1]
- bl b_std_message
- ldr r1, _08023D1C @ =0x0001601a
- add r1, r9
- movs r0, 0x5
- b _08023E5A
- .align 2, 0
-_08023D08: .4byte 0x02000000
-_08023D0C: .4byte 0x00016018
-_08023D10: .4byte gPlayerParty
-_08023D14: .4byte 0x0000013f
-_08023D18: .4byte gUnknown_02024A60
-_08023D1C: .4byte 0x0001601a
-_08023D20:
- ldr r3, _08023E10 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- ldr r1, _08023E14 @ =gUnknown_03004290
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- strb r4, [r1, 0x2]
- lsrs r0, r4, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- adds r1, r5, 0
- bl RemoveMonPPBonus
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- ldr r7, _08023E18 @ =word_2024E82
- ldrh r1, [r7]
- adds r2, r5, 0
- bl SetMonMoveSlot
- ldr r0, _08023E1C @ =gUnknown_02024A6A
- ldrh r0, [r0]
- ldrb r6, [r6]
- cmp r0, r6
- bne _08023DB0
- ldr r4, _08023E20 @ =gBattleMons
- ldr r0, [r4, 0x50]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08023DB0
- ldr r0, _08023E24 @ =gUnknown_02024CA8
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _08023E28 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08023DB0
- adds r0, r4, 0
- adds r1, r5, 0
- bl RemoveBattleMonPPBonus
- ldrh r1, [r7]
- adds r0, r4, 0
- adds r2, r5, 0
- bl SetBattleMonMoveSlot
-_08023DB0:
- ldr r0, _08023E2C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023E5C
- ldr r0, _08023E1C @ =gUnknown_02024A6A
- ldr r1, _08023E30 @ =0x02000000
- ldr r2, _08023E34 @ =0x00016018
- adds r1, r2
- ldrh r0, [r0, 0x4]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08023E5C
- ldr r4, _08023E20 @ =gBattleMons
- movs r1, 0x80
- lsls r1, 1
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08023E5C
- ldr r0, _08023E24 @ =gUnknown_02024CA8
- adds r0, 0x50
- ldrb r1, [r0]
- lsrs r1, 4
- ldr r2, _08023E28 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08023E5C
- adds r4, 0xB0
- adds r0, r4, 0
- adds r1, r5, 0
- bl RemoveBattleMonPPBonus
- ldr r0, _08023E18 @ =word_2024E82
- ldrh r1, [r0]
- adds r0, r4, 0
- adds r2, r5, 0
- bl SetBattleMonMoveSlot
- b _08023E5C
- .align 2, 0
-_08023E10: .4byte gUnknown_02024C10
-_08023E14: .4byte gUnknown_03004290
-_08023E18: .4byte word_2024E82
-_08023E1C: .4byte gUnknown_02024A6A
-_08023E20: .4byte gBattleMons
-_08023E24: .4byte gUnknown_02024CA8
-_08023E28: .4byte gBitTable
-_08023E2C: .4byte gUnknown_020239F8
-_08023E30: .4byte 0x02000000
-_08023E34: .4byte 0x00016018
-_08023E38:
- bl sub_8023AD8
- ldr r1, _08023E48 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08023E5C
- .align 2, 0
-_08023E48: .4byte gUnknown_02024C10
-_08023E4C:
- ldr r0, _08023E6C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08023E5C
- ldr r2, _08023E70 @ =0x0001601a
- adds r1, r5, r2
- movs r0, 0x2
-_08023E5A:
- strb r0, [r1]
-_08023E5C:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023E6C: .4byte gUnknown_02024A64
-_08023E70: .4byte 0x0001601a
- thumb_func_end sub_8023AF8
-
- thumb_func_start atk5B_80256E0
-atk5B_80256E0: @ 8023E74
- push {r4,r5,lr}
- ldr r0, _08023E88 @ =0x02000000
- ldr r1, _08023E8C @ =0x0001601a
- adds r5, r0, r1
- ldrb r4, [r5]
- cmp r4, 0
- beq _08023E90
- cmp r4, 0x1
- beq _08023EA8
- b _08023F78
- .align 2, 0
-_08023E88: .4byte 0x02000000
-_08023E8C: .4byte 0x0001601a
-_08023E90:
- bl sub_8023A80
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ldr r0, _08023EA4 @ =gUnknown_02024D1E
- strb r4, [r0, 0x1]
- bl sub_802BC6C
- b _08023F78
- .align 2, 0
-_08023EA4: .4byte gUnknown_02024D1E
-_08023EA8:
- ldr r0, _08023F2C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08023ECE
- ldr r4, _08023F30 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _08023ECE
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08023ECE:
- ldr r0, _08023F2C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08023EF4
- ldr r4, _08023F30 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08023EF4
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08023EF4:
- ldr r0, _08023F2C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023F4C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08023F30 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _08023F38
- ldr r3, _08023F34 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08023F40
- .align 2, 0
-_08023F2C: .4byte gMain
-_08023F30: .4byte gUnknown_02024D1E
-_08023F34: .4byte gUnknown_02024C10
-_08023F38:
- ldr r1, _08023F48 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08023F40:
- bl sub_8023AD8
- b _08023F78
- .align 2, 0
-_08023F48: .4byte gUnknown_02024C10
-_08023F4C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08023F78
- movs r0, 0x5
- bl PlaySE
- ldr r3, _08023F80 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- bl sub_8023AD8
-_08023F78:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08023F80: .4byte gUnknown_02024C10
- thumb_func_end atk5B_80256E0
-
- thumb_func_start atk5C_cmd5c
-atk5C_cmd5c: @ 8023F84
- push {r4,lr}
- ldr r4, _08023FF0 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r2, _08023FF4 @ =gUnknown_02024A60
- strb r0, [r2]
- ldr r0, _08023FF8 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _08024008
- ldr r0, _08023FFC @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 1
- ands r0, r1
- cmp r0, 0
- beq _08023FD6
- ldr r1, _08024000 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08023FD6
- ldr r0, _08024004 @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _08024008
-_08023FD6:
- movs r0, 0
- bl dp01_build_cmdbuf_x29_29_29_29
- ldr r0, _08023FF4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08023FF0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- b _0802400E
- .align 2, 0
-_08023FF0: .4byte gUnknown_02024C10
-_08023FF4: .4byte gUnknown_02024A60
-_08023FF8: .4byte gUnknown_02024C68
-_08023FFC: .4byte gUnknown_02024C6C
-_08024000: .4byte gBattleMons
-_08024004: .4byte gUnknown_02024CA8
-_08024008:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
-_0802400E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atk5C_cmd5c
-
- thumb_func_start sub_8024014
-sub_8024014: @ 8024014
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- movs r5, 0
- ldr r0, _08024048 @ =gTrainerBattleOpponent
- ldrh r2, [r0]
- movs r1, 0x80
- lsls r1, 3
- cmp r2, r1
- bne _08024058
- ldr r0, _0802404C @ =0x02017000
- adds r1, r0, 0
- adds r1, 0x94
- ldrb r2, [r1]
- ldr r1, _08024050 @ =0xfffff056
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r4, r2, 0
- muls r4, r0
- ldr r0, _08024054 @ =gSaveBlock1 + 0x490
- mov r8, r0
- b _08024140
- .align 2, 0
-_08024048: .4byte gTrainerBattleOpponent
-_0802404C: .4byte 0x02017000
-_08024050: .4byte 0xfffff056
-_08024054: .4byte gSaveBlock1 + 0x490
-_08024058:
- ldr r2, _08024074 @ =gTrainers
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r3, r0, 3
- adds r4, r3, r2
- ldrb r1, [r4]
- cmp r1, 0x1
- beq _080240AE
- cmp r1, 0x1
- bgt _08024078
- cmp r1, 0
- beq _08024082
- b _080240C4
- .align 2, 0
-_08024074: .4byte gTrainers
-_08024078:
- cmp r1, 0x2
- beq _08024098
- cmp r1, 0x3
- beq _080240AE
- b _080240C4
-_08024082:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r3, r0
- ldr r1, [r0]
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- subs r0, 0x8
- b _080240C2
-_08024098:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r3, r0
- ldr r1, [r0]
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- subs r0, 0x8
- b _080240C2
-_080240AE:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r3, r0
- ldr r1, [r0]
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- subs r0, 0x10
-_080240C2:
- ldrb r5, [r0, 0x2]
-_080240C4:
- ldr r0, _08024120 @ =gTrainerMoney
- lsls r1, r6, 2
- adds r3, r1, r0
- ldrb r1, [r3]
- mov r12, r0
- lsls r4, r5, 2
- ldr r5, _08024124 @ =0x02000000
- ldr r7, _08024128 @ =gUnknown_020239F8
- ldr r0, _0802412C @ =gSaveBlock1 + 0x490
- mov r8, r0
- cmp r1, 0xFF
- beq _080240FE
- ldr r2, _08024130 @ =gTrainers
- ldr r0, _08024134 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r2, [r0, 0x1]
- adds r1, r3, 0
-_080240EE:
- ldrb r0, [r1]
- cmp r0, r2
- beq _080240FE
- adds r1, 0x4
- adds r6, 0x1
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080240EE
-_080240FE:
- ldr r1, _08024138 @ =0x00016056
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r3, r4, 0
- muls r3, r0
- lsls r0, r6, 2
- add r0, r12
- ldrb r2, [r0, 0x1]
- ldrh r1, [r7]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802413C
- lsls r0, r2, 1
- adds r4, r3, 0
- muls r4, r0
- b _08024140
- .align 2, 0
-_08024120: .4byte gTrainerMoney
-_08024124: .4byte 0x02000000
-_08024128: .4byte gUnknown_020239F8
-_0802412C: .4byte gSaveBlock1 + 0x490
-_08024130: .4byte gTrainers
-_08024134: .4byte gTrainerBattleOpponent
-_08024138: .4byte 0x00016056
-_0802413C:
- adds r4, r3, 0
- muls r4, r2
-_08024140:
- mov r0, r8
- adds r1, r4, 0
- bl sub_80B79B8
- ldr r1, _0802418C @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r0, 0x4
- strb r0, [r1, 0x2]
- movs r0, 0x5
- strb r0, [r1, 0x3]
- strb r4, [r1, 0x4]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r4
- lsrs r0, 8
- strb r0, [r1, 0x5]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r4
- lsrs r0, 16
- strb r0, [r1, 0x6]
- lsrs r0, r4, 24
- strb r0, [r1, 0x7]
- movs r0, 0xFF
- strb r0, [r1, 0x8]
- ldr r1, _08024190 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802418C: .4byte gUnknown_030041C0
-_08024190: .4byte gUnknown_02024C10
- thumb_func_end sub_8024014
-
- thumb_func_start atk5E_8025A70
-atk5E_8025A70: @ 8024194
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _080241B8 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r6, _080241BC @ =gUnknown_02024A60
- strb r0, [r6]
- ldr r5, _080241C0 @ =gUnknown_02024D1E
- ldrb r0, [r5]
- mov r8, r4
- cmp r0, 0
- beq _080241C4
- cmp r0, 0x1
- beq _080241DC
- b _08024230
- .align 2, 0
-_080241B8: .4byte gUnknown_02024C10
-_080241BC: .4byte gUnknown_02024A60
-_080241C0: .4byte gUnknown_02024D1E
-_080241C4:
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl dp01_build_cmdbuf_x00_a_b_0
- ldrb r0, [r6]
- bl dp01_battle_side_mark_buffer_for_execution
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _08024230
-_080241DC:
- ldr r0, _0802423C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08024230
- ldrb r0, [r6]
- lsls r0, 9
- ldr r1, _08024240 @ =gUnknown_02024264
- adds r0, r1
- mov r12, r0
- movs r2, 0
- adds r4, r6, 0
- movs r5, 0x58
- ldr r6, _08024244 @ =gUnknown_02024AA4
- adds r7, r6, 0
- subs r7, 0x18
- mov r3, r12
- adds r3, 0xC
-_080241FE:
- lsls r1, r2, 1
- ldrb r0, [r4]
- muls r0, r5
- adds r1, r0
- adds r1, r7
- ldrh r0, [r3]
- strh r0, [r1]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r2, r1
- adds r1, r6
- mov r0, r12
- adds r0, 0x24
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r3, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- ble _080241FE
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08024230:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802423C: .4byte gUnknown_02024A64
-_08024240: .4byte gUnknown_02024264
-_08024244: .4byte gUnknown_02024AA4
- thumb_func_end atk5E_8025A70
-
- thumb_func_start atk5F_8025B24
-atk5F_8025B24: @ 8024248
- push {lr}
- ldr r0, _08024270 @ =gUnknown_02024A60
- ldr r2, _08024274 @ =gUnknown_02024C07
- ldrb r3, [r2]
- strb r3, [r0]
- ldr r1, _08024278 @ =gUnknown_02024C08
- ldrb r0, [r1]
- strb r0, [r2]
- strb r3, [r1]
- ldr r2, _0802427C @ =gUnknown_02024C6C
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 5
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _08024284
- ldr r0, _08024280 @ =0xffffefff
- ands r1, r0
- b _08024286
- .align 2, 0
-_08024270: .4byte gUnknown_02024A60
-_08024274: .4byte gUnknown_02024C07
-_08024278: .4byte gUnknown_02024C08
-_0802427C: .4byte gUnknown_02024C6C
-_08024280: .4byte 0xffffefff
-_08024284:
- orrs r1, r3
-_08024286:
- str r1, [r2]
- ldr r1, _08024294 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08024294: .4byte gUnknown_02024C10
- thumb_func_end atk5F_8025B24
-
- thumb_func_start atk60_cmd60
-atk60_cmd60: @ 8024298
- push {lr}
- ldr r0, _080242C0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080242B2
- ldr r0, _080242C4 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sav12_xor_increment
-_080242B2:
- ldr r1, _080242C4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080242C0: .4byte gUnknown_02024C07
-_080242C4: .4byte gUnknown_02024C10
- thumb_func_end atk60_cmd60
-
- thumb_func_start atk61_8025BA4
-atk61_8025BA4: @ 80242C8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x30
- ldr r0, _0802432C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0802437C
- ldr r0, _08024330 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08024334 @ =gUnknown_02024A60
- strb r0, [r1]
- ldrb r0, [r1]
- bl battle_side_get_owner
- lsls r0, 24
- ldr r1, _08024338 @ =gEnemyParty
- mov r8, r1
- cmp r0, 0
- bne _080242FA
- ldr r0, _0802433C @ =gPlayerParty
- mov r8, r0
-_080242FA:
- movs r7, 0
- add r6, sp, 0x4
- mov r5, sp
-_08024300:
- movs r0, 0x64
- muls r0, r7
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08024324
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _08024344
-_08024324:
- ldr r0, _08024340 @ =0x0000ffff
- strh r0, [r5]
- movs r0, 0
- b _08024356
- .align 2, 0
-_0802432C: .4byte gUnknown_02024A64
-_08024330: .4byte gUnknown_02024C10
-_08024334: .4byte gUnknown_02024A60
-_08024338: .4byte gEnemyParty
-_0802433C: .4byte gPlayerParty
-_08024340: .4byte 0x0000ffff
-_08024344:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
-_08024356:
- str r0, [r6]
- adds r6, 0x8
- adds r5, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _08024300
- movs r0, 0
- mov r1, sp
- movs r2, 0x1
- bl dp01_build_cmdbuf_x30_TODO
- ldr r0, _08024388 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0802438C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_0802437C:
- add sp, 0x30
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024388: .4byte gUnknown_02024A60
-_0802438C: .4byte gUnknown_02024C10
- thumb_func_end atk61_8025BA4
-
- thumb_func_start atk62_08025C6C
-atk62_08025C6C: @ 8024390
- push {r4,r5,lr}
- ldr r5, _080243B8 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _080243BC @ =gUnknown_02024A60
- strb r0, [r4]
- movs r0, 0
- bl dp01_build_cmdbuf_x31_31_31_31
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080243B8: .4byte gUnknown_02024C10
-_080243BC: .4byte gUnknown_02024A60
- thumb_func_end atk62_08025C6C
-
- thumb_func_start atk63_jumptoattack
-atk63_jumptoattack: @ 80243C0
- push {r4,lr}
- ldr r0, _080243D8 @ =gUnknown_02024C10
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0
- beq _080243E4
- ldr r0, _080243DC @ =gUnknown_02024BE6
- ldr r1, _080243E0 @ =gUnknown_02024BEA
- ldrh r1, [r1]
- strh r1, [r0]
- b _080243F2
- .align 2, 0
-_080243D8: .4byte gUnknown_02024C10
-_080243DC: .4byte gUnknown_02024BE6
-_080243E0: .4byte gUnknown_02024BEA
-_080243E4:
- ldr r2, _08024410 @ =gUnknown_02024BE8
- ldr r1, _08024414 @ =gUnknown_02024BE6
- ldr r0, _08024418 @ =gUnknown_02024BEA
- ldrh r0, [r0]
- strh r0, [r1]
- strh r0, [r2]
- adds r0, r1, 0
-_080243F2:
- ldr r3, _0802441C @ =gUnknown_081D6BBC
- ldr r2, _08024420 @ =gBattleMoves
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08024410: .4byte gUnknown_02024BE8
-_08024414: .4byte gUnknown_02024BE6
-_08024418: .4byte gUnknown_02024BEA
-_0802441C: .4byte gUnknown_081D6BBC
-_08024420: .4byte gBattleMoves
- thumb_func_end atk63_jumptoattack
-
- thumb_func_start atk64_statusanimation
-atk64_statusanimation: @ 8024424
- push {r4,lr}
- ldr r0, _08024494 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0802448C
- ldr r0, _08024498 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _0802449C @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r1, _080244A0 @ =gUnknown_02024C98
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080244A4 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _08024484
- ldr r0, _080244A8 @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _08024484
- ldr r0, _080244AC @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08024484
- ldr r1, _080244B0 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- ldr r2, [r0]
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x1B_aaaa_b
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08024484:
- ldr r1, _08024498 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_0802448C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08024494: .4byte gUnknown_02024A64
-_08024498: .4byte gUnknown_02024C10
-_0802449C: .4byte gUnknown_02024A60
-_080244A0: .4byte gUnknown_02024C98
-_080244A4: .4byte 0x000400c0
-_080244A8: .4byte gUnknown_02024CA8
-_080244AC: .4byte gUnknown_02024C6C
-_080244B0: .4byte gBattleMons
- thumb_func_end atk64_statusanimation
-
- thumb_func_start atk65_8025D90
-atk65_8025D90: @ 80244B4
- push {r4,r5,lr}
- ldr r0, _0802453C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08024534
- ldr r4, _08024540 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _08024544 @ =gUnknown_02024A60
- strb r0, [r5]
- ldr r1, [r4]
- ldrb r3, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- orrs r3, r0
- ldr r1, _08024548 @ =gUnknown_02024C98
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _0802454C @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _0802452C
- ldr r0, _08024550 @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _0802452C
- ldr r0, _08024554 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802452C
- ldr r1, _08024558 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r2, [r0]
- ands r2, r3
- movs r0, 0
- movs r1, 0x1
- bl dp01_build_cmdbuf_x1B_aaaa_b
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
-_0802452C:
- ldr r1, _08024540 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
-_08024534:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802453C: .4byte gUnknown_02024A64
-_08024540: .4byte gUnknown_02024C10
-_08024544: .4byte gUnknown_02024A60
-_08024548: .4byte gUnknown_02024C98
-_0802454C: .4byte 0x000400c0
-_08024550: .4byte gUnknown_02024CA8
-_08024554: .4byte gUnknown_02024C6C
-_08024558: .4byte gBattleMons
- thumb_func_end atk65_8025D90
-
- thumb_func_start atk66_8025E38
-atk66_8025E38: @ 802455C
- push {r4,r5,lr}
- ldr r0, _080245D4 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _080245CE
- ldr r4, _080245D8 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _080245DC @ =gUnknown_02024A60
- strb r0, [r5]
- ldr r4, [r4]
- ldrb r2, [r4, 0x3]
- ldrb r0, [r4, 0x4]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r4, 0x5]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r4, 0x6]
- lsls r0, 24
- orrs r2, r0
- ldr r1, _080245E0 @ =gUnknown_02024C98
- ldrb r3, [r5]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080245E4 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _080245C6
- ldr r0, _080245E8 @ =gUnknown_02024CA8
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _080245C6
- ldr r0, _080245EC @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080245C6
- ldrb r1, [r4, 0x2]
- movs r0, 0
- bl dp01_build_cmdbuf_x1B_aaaa_b
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
-_080245C6:
- ldr r1, _080245D8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x7
- str r0, [r1]
-_080245CE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080245D4: .4byte gUnknown_02024A64
-_080245D8: .4byte gUnknown_02024C10
-_080245DC: .4byte gUnknown_02024A60
-_080245E0: .4byte gUnknown_02024C98
-_080245E4: .4byte 0x000400c0
-_080245E8: .4byte gUnknown_02024CA8
-_080245EC: .4byte gUnknown_02024C6C
- thumb_func_end atk66_8025E38
-
- thumb_func_start atk67_8025ECC
-atk67_8025ECC: @ 80245F0
- push {r4,r5,lr}
- ldr r5, _08024600 @ =gUnknown_02024D1E
- ldrb r4, [r5]
- cmp r4, 0
- beq _08024604
- cmp r4, 0x1
- beq _08024616
- b _08024696
- .align 2, 0
-_08024600: .4byte gUnknown_02024D1E
-_08024604:
- bl sub_8023A80
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- strb r4, [r5, 0x1]
- bl sub_802BC6C
- b _08024696
-_08024616:
- ldr r0, _08024674 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802463A
- ldrb r0, [r5, 0x1]
- cmp r0, 0
- beq _0802463A
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r5, 0x1]
- bl sub_802BC6C
-_0802463A:
- ldr r0, _08024674 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08024660
- ldr r4, _08024678 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08024660
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08024660:
- ldr r0, _08024674 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802467C
- ldr r1, _08024678 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x1]
- b _08024684
- .align 2, 0
-_08024674: .4byte gMain
-_08024678: .4byte gUnknown_02024D1E
-_0802467C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08024696
-_08024684:
- movs r0, 0x5
- bl PlaySE
- bl sub_8023AD8
- ldr r1, _0802469C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08024696:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802469C: .4byte gUnknown_02024C10
- thumb_func_end atk67_8025ECC
-
- thumb_func_start sub_80246A0
-sub_80246A0: @ 80246A0
- push {r4,r5,lr}
- movs r1, 0
- ldr r2, _080246CC @ =gUnknown_02024A68
- ldr r5, _080246D0 @ =gUnknown_02024C10
- ldrb r0, [r2]
- cmp r1, r0
- bge _080246BE
- ldr r4, _080246D4 @ =gUnknown_02024A76
- movs r3, 0xC
-_080246B2:
- adds r0, r1, r4
- strb r3, [r0]
- adds r1, 0x1
- ldrb r0, [r2]
- cmp r1, r0
- blt _080246B2
-_080246BE:
- ldr r0, [r5]
- adds r0, 0x1
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080246CC: .4byte gUnknown_02024A68
-_080246D0: .4byte gUnknown_02024C10
-_080246D4: .4byte gUnknown_02024A76
- thumb_func_end sub_80246A0
-
- thumb_func_start atk69_8025FE0
-atk69_8025FE0: @ 80246D8
- push {r4-r7,lr}
- ldr r7, _08024700 @ =gBattleMons
- ldr r6, _08024704 @ =gUnknown_02024C08
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0802470C
- ldr r1, _08024708 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _08024726
- .align 2, 0
-_08024700: .4byte gBattleMons
-_08024704: .4byte gUnknown_02024C08
-_08024708: .4byte gEnigmaBerries
-_0802470C:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_08024726:
- ldr r1, _080247E8 @ =gUnknown_02024C0B
- ldr r5, _080247EC @ =gUnknown_02024C08
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _08024764
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _08024764
- ldrb r0, [r5]
- movs r1, 0x27
- bl sub_81074F8
- ldr r2, _080247F0 @ =gUnknown_02024D68
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_08024764:
- ldr r2, _080247F4 @ =gBattleMons
- ldr r3, _080247EC @ =gUnknown_02024C08
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 17
- ands r1, r0
- adds r5, r2, 0
- cmp r1, 0
- bne _08024834
- ldr r2, _080247F8 @ =gBattleMoves
- ldr r0, _080247FC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x65
- beq _080247B6
- ldr r0, _08024800 @ =gUnknown_02024D28
- lsls r1, r4, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 30
- cmp r0, 0
- blt _080247B6
- ldr r0, _080247F0 @ =gUnknown_02024D68
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _08024834
-_080247B6:
- ldrb r0, [r3]
- movs r4, 0x58
- muls r0, r4
- adds r0, r5
- ldrh r1, [r0, 0x28]
- ldr r2, _08024804 @ =gUnknown_02024BEC
- ldr r0, [r2]
- cmp r1, r0
- bgt _08024834
- subs r0, r1, 0x1
- str r0, [r2]
- ldr r1, _08024800 @ =gUnknown_02024D28
- ldrb r3, [r3]
- lsls r0, r3, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bge _0802480C
- ldr r0, _08024808 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08024834
- .align 2, 0
-_080247E8: .4byte gUnknown_02024C0B
-_080247EC: .4byte gUnknown_02024C08
-_080247F0: .4byte gUnknown_02024D68
-_080247F4: .4byte gBattleMons
-_080247F8: .4byte gBattleMoves
-_080247FC: .4byte gUnknown_02024BE6
-_08024800: .4byte gUnknown_02024D28
-_08024804: .4byte gUnknown_02024BEC
-_08024808: .4byte gUnknown_02024C68
-_0802480C:
- ldr r0, _08024844 @ =gUnknown_02024D68
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _08024834
- ldr r2, _08024848 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802484C @ =gUnknown_02024C04
- adds r0, r3, 0
- muls r0, r4
- adds r0, r5
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
-_08024834:
- ldr r1, _08024850 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024844: .4byte gUnknown_02024D68
-_08024848: .4byte gUnknown_02024C68
-_0802484C: .4byte gUnknown_02024C04
-_08024850: .4byte gUnknown_02024C10
- thumb_func_end atk69_8025FE0
-
- thumb_func_start atk6A_stash_item_for_side
-atk6A_stash_item_for_side: @ 8024854
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _080248B0 @ =gUnknown_02024C10
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _080248B4 @ =gUnknown_02024A60
- strb r0, [r5]
- ldrb r4, [r5]
- lsls r1, r4, 1
- ldr r0, _080248B8 @ =0x020160cc
- adds r1, r0
- ldr r2, _080248BC @ =gBattleMons
- movs r3, 0x58
- adds r0, r4, 0
- muls r0, r3
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
- ldrb r0, [r5]
- muls r0, r3
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldrb r0, [r5]
- muls r0, r3
- adds r2, 0x2E
- adds r0, r2
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r6]
- adds r0, 0x2
- str r0, [r6]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080248B0: .4byte gUnknown_02024C10
-_080248B4: .4byte gUnknown_02024A60
-_080248B8: .4byte 0x020160cc
-_080248BC: .4byte gBattleMons
- thumb_func_end atk6A_stash_item_for_side
-
- thumb_func_start sub_80248C0
-sub_80248C0: @ 80248C0
- ldr r1, _080248EC @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- ldr r2, _080248F0 @ =gUnknown_02024C07
- ldrb r0, [r2]
- strb r0, [r1, 0x2]
- ldr r3, _080248F4 @ =gUnknown_02024A6A
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _080248F8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_080248EC: .4byte gUnknown_030041C0
-_080248F0: .4byte gUnknown_02024C07
-_080248F4: .4byte gUnknown_02024A6A
-_080248F8: .4byte gUnknown_02024C10
- thumb_func_end sub_80248C0
-
- thumb_func_start sub_80248FC
-sub_80248FC: @ 80248FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r1, 0
- movs r7, 0
- ldr r0, _08024928 @ =0x02000000
- mov r10, r0
- ldr r4, _0802492C @ =0x0001609c
- add r4, r10
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _0802491C
- b _08024AF4
-_0802491C:
- cmp r0, 0x1
- bgt _08024930
- cmp r0, 0
- beq _0802493E
- b _08024C38
- .align 2, 0
-_08024928: .4byte 0x02000000
-_0802492C: .4byte 0x0001609c
-_08024930:
- cmp r0, 0x2
- bne _08024936
- b _08024C04
-_08024936:
- cmp r0, 0x3
- bne _0802493C
- b _08024C30
-_0802493C:
- b _08024C38
-_0802493E:
- str r1, [sp]
- movs r0, 0xB
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x7
- bl sub_802BBD4
- ldr r0, _0802499C @ =gStringVar4
- ldr r1, _080249A0 @ =gUnknown_08400D9F
- bl StringCopy
- adds r5, r0, 0
- movs r1, 0
- mov r8, r1
-_0802495A:
- movs r2, 0
- mov r9, r2
- ldr r0, _080249A4 @ =gUnknown_0840165C
- mov r1, r8
- lsls r4, r1, 2
- adds r0, r4, r0
- ldr r1, [r0]
- adds r0, r5, 0
- bl StringAppend
- adds r5, r0, 0
- ldr r0, _080249A8 @ =0x02000000
- ldr r2, _080249AC @ =0x00016018
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080249B0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080249B4 @ =gLevelUpStatBoxStats
- add r1, r8
- ldrb r1, [r1]
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- mov r0, r8
- cmp r0, 0x5
- bhi _08024A1A
- ldr r0, _080249B8 @ =_080249BC
- adds r0, r4, r0
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802499C: .4byte gStringVar4
-_080249A0: .4byte gUnknown_08400D9F
-_080249A4: .4byte gUnknown_0840165C
-_080249A8: .4byte 0x02000000
-_080249AC: .4byte 0x00016018
-_080249B0: .4byte gPlayerParty
-_080249B4: .4byte gLevelUpStatBoxStats
-_080249B8: .4byte _080249BC
- .align 2, 0
-_080249BC:
- .4byte _080249D4
- .4byte _080249E0
- .4byte _080249EC
- .4byte _080249F8
- .4byte _08024A04
- .4byte _08024A10
-_080249D4:
- ldr r0, _080249DC @ =0x02017180
- ldrh r0, [r0]
- b _08024A14
- .align 2, 0
-_080249DC: .4byte 0x02017180
-_080249E0:
- ldr r0, _080249E8 @ =0x02017180
- ldrh r0, [r0, 0x8]
- b _08024A14
- .align 2, 0
-_080249E8: .4byte 0x02017180
-_080249EC:
- ldr r0, _080249F4 @ =0x02017180
- ldrh r0, [r0, 0x2]
- b _08024A14
- .align 2, 0
-_080249F4: .4byte 0x02017180
-_080249F8:
- ldr r0, _08024A00 @ =0x02017180
- ldrh r0, [r0, 0xA]
- b _08024A14
- .align 2, 0
-_08024A00: .4byte 0x02017180
-_08024A04:
- ldr r0, _08024A0C @ =0x02017180
- ldrh r0, [r0, 0x4]
- b _08024A14
- .align 2, 0
-_08024A0C: .4byte 0x02017180
-_08024A10:
- ldr r0, _08024A54 @ =0x02017180
- ldrh r0, [r0, 0x6]
-_08024A14:
- subs r0, r1, r0
- lsls r0, 16
- lsrs r7, r0, 16
-_08024A1A:
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, 0
- bge _08024A2C
- negs r0, r0
- lsls r0, 16
- lsrs r7, r0, 16
- movs r1, 0x1
- add r9, r1
-_08024A2C:
- movs r0, 0xFC
- strb r0, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r1, 0x1
- mov r2, r8
- ands r1, r2
- lsls r0, r1, 3
- adds r0, r1
- adds r0, 0x5
- lsls r0, 3
- adds r0, 0x6
- strb r0, [r5, 0x2]
- adds r5, 0x3
- mov r0, r9
- cmp r0, 0
- beq _08024A5C
- ldr r1, _08024A58 @ =gUnknown_08400DAC
- b _08024A5E
- .align 2, 0
-_08024A54: .4byte 0x02017180
-_08024A58: .4byte gUnknown_08400DAC
-_08024A5C:
- ldr r1, _08024AA4 @ =gUnknown_08400DAA
-_08024A5E:
- adds r0, r5, 0
- bl StringCopy
- adds r5, r0, 0
- movs r6, 0xFC
- strb r6, [r5]
- movs r4, 0x14
- strb r4, [r5, 0x1]
- movs r0, 0x6
- strb r0, [r5, 0x2]
- adds r5, 0x3
- lsls r1, r7, 16
- asrs r1, 16
- adds r0, r5, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r5, r0, 0
- strb r6, [r5]
- strb r4, [r5, 0x1]
- movs r0, 0
- strb r0, [r5, 0x2]
- adds r5, 0x3
- movs r0, 0x1
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _08024AA8
- movs r0, 0xFE
- strb r0, [r5]
- movs r0, 0xFF
- strb r0, [r5, 0x1]
- adds r5, 0x1
- b _08024AB8
- .align 2, 0
-_08024AA4: .4byte gUnknown_08400DAA
-_08024AA8:
- strb r6, [r5]
- movs r0, 0x11
- strb r0, [r5, 0x1]
- movs r0, 0x8
- strb r0, [r5, 0x2]
- adds r5, 0x3
- movs r0, 0xFF
- strb r0, [r5]
-_08024AB8:
- movs r2, 0x1
- add r8, r2
- mov r0, r8
- cmp r0, 0x5
- bgt _08024AC4
- b _0802495A
-_08024AC4:
- ldr r4, _08024AE4 @ =gUnknown_03004210
- ldr r1, _08024AE8 @ =gStringVar4
- adds r2, 0xFF
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0xC
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _08024AEC @ =0x02000000
- ldr r2, _08024AF0 @ =0x0001609c
- adds r1, r2
- b _08024BEA
- .align 2, 0
-_08024AE4: .4byte gUnknown_03004210
-_08024AE8: .4byte gStringVar4
-_08024AEC: .4byte 0x02000000
-_08024AF0: .4byte 0x0001609c
-_08024AF4:
- ldr r0, _08024B94 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- bne _08024AFE
- b _08024C38
-_08024AFE:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08024B98 @ =gStringVar4
- ldr r1, _08024B9C @ =gUnknown_08400D9F
- bl StringCopy
- adds r5, r0, 0
- movs r0, 0
- mov r8, r0
- mov r9, r0
- movs r6, 0xFC
- movs r7, 0x14
- ldr r1, _08024BA0 @ =0x00016018
- add r10, r1
-_08024B1C:
- ldr r1, _08024BA4 @ =gUnknown_0840165C
- mov r2, r8
- lsls r0, r2, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r5, 0
- bl StringAppend
- adds r5, r0, 0
- mov r0, r10
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08024BA8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08024BAC @ =gLevelUpStatBoxStats
- add r1, r8
- ldrb r1, [r1]
- bl GetMonData
- adds r1, r0, 0
- strb r6, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r4, 0x1
- mov r2, r8
- ands r4, r2
- lsls r0, r4, 3
- adds r0, r4
- adds r0, 0x5
- lsls r0, 3
- adds r0, 0x6
- strb r0, [r5, 0x2]
- adds r5, 0x3
- strb r6, [r5]
- strb r7, [r5, 0x1]
- movs r0, 0x6
- strb r0, [r5, 0x2]
- adds r5, 0x3
- lsls r1, 16
- asrs r1, 16
- adds r0, r5, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r5, r0, 0
- strb r6, [r5]
- strb r7, [r5, 0x1]
- mov r0, r9
- strb r0, [r5, 0x2]
- adds r5, 0x3
- cmp r4, 0
- beq _08024BB0
- movs r0, 0xFE
- strb r0, [r5]
- movs r0, 0xFF
- strb r0, [r5, 0x1]
- adds r5, 0x1
- b _08024BC0
- .align 2, 0
-_08024B94: .4byte gMain
-_08024B98: .4byte gStringVar4
-_08024B9C: .4byte gUnknown_08400D9F
-_08024BA0: .4byte 0x00016018
-_08024BA4: .4byte gUnknown_0840165C
-_08024BA8: .4byte gPlayerParty
-_08024BAC: .4byte gLevelUpStatBoxStats
-_08024BB0:
- strb r6, [r5]
- movs r0, 0x11
- strb r0, [r5, 0x1]
- movs r0, 0x8
- strb r0, [r5, 0x2]
- adds r5, 0x3
- movs r0, 0xFF
- strb r0, [r5]
-_08024BC0:
- movs r1, 0x1
- add r8, r1
- mov r2, r8
- cmp r2, 0x5
- ble _08024B1C
- ldr r4, _08024BF4 @ =gUnknown_03004210
- ldr r1, _08024BF8 @ =gStringVar4
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0xC
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _08024BFC @ =0x02000000
- ldr r0, _08024C00 @ =0x0001609c
- adds r1, r0
-_08024BEA:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08024C38
- .align 2, 0
-_08024BF4: .4byte gUnknown_03004210
-_08024BF8: .4byte gStringVar4
-_08024BFC: .4byte 0x02000000
-_08024C00: .4byte 0x0001609c
-_08024C04:
- ldr r0, _08024C2C @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- beq _08024C38
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xB
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x7
- bl sub_802BBD4
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08024C38
- .align 2, 0
-_08024C2C: .4byte gMain
-_08024C30:
- ldr r1, _08024C48 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08024C38:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024C48: .4byte gUnknown_02024C10
- thumb_func_end sub_80248FC
-
- thumb_func_start sub_8024C4C
-sub_8024C4C: @ 8024C4C
- push {lr}
- bl sub_80156DC
- ldr r1, _08024C60 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08024C60: .4byte gUnknown_02024C10
- thumb_func_end sub_8024C4C
-
- thumb_func_start atk6E_state0_side_becomes_attacker
-atk6E_state0_side_becomes_attacker: @ 8024C64
- push {lr}
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _08024C7C @ =gUnknown_02024C07
- strb r0, [r1]
- ldr r1, _08024C80 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08024C7C: .4byte gUnknown_02024C07
-_08024C80: .4byte gUnknown_02024C10
- thumb_func_end atk6E_state0_side_becomes_attacker
-
- thumb_func_start atk6F_8026810
-atk6F_8026810: @ 8024C84
- push {r4,r5,lr}
- ldr r5, _08024CB0 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _08024CB4 @ =gUnknown_02024A60
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x33_a_33_33
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08024CB0: .4byte gUnknown_02024C10
-_08024CB4: .4byte gUnknown_02024A60
- thumb_func_end atk6F_8026810
-
- thumb_func_start atk70_record_ability_usage_of_side
-atk70_record_ability_usage_of_side: @ 8024CB8
- push {r4,lr}
- ldr r4, _08024CE0 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08024CE4 @ =gUnknown_02024A60
- strb r0, [r1]
- ldrb r0, [r1]
- ldr r1, _08024CE8 @ =byte_2024C06
- ldrb r1, [r1]
- bl sub_81074C4
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08024CE0: .4byte gUnknown_02024C10
-_08024CE4: .4byte gUnknown_02024A60
-_08024CE8: .4byte byte_2024C06
- thumb_func_end atk70_record_ability_usage_of_side
-
- thumb_func_start sub_8024CEC
-sub_8024CEC: @ 8024CEC
- ldr r2, _08024D0C @ =gUnknown_03004290
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x2
- strb r0, [r2, 0x1]
- ldr r0, _08024D10 @ =word_2024E82
- ldrh r1, [r0]
- strb r1, [r2, 0x2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r2, 0x3]
- movs r0, 0xFF
- strb r0, [r2, 0x4]
- bx lr
- .align 2, 0
-_08024D0C: .4byte gUnknown_03004290
-_08024D10: .4byte word_2024E82
- thumb_func_end sub_8024CEC
-
- thumb_func_start atk71_80268A0
-atk71_80268A0: @ 8024D14
- push {lr}
- bl sub_8024CEC
- ldr r1, _08024D28 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08024D28: .4byte gUnknown_02024C10
- thumb_func_end atk71_80268A0
-
- thumb_func_start atk72_flee
-atk72_flee: @ 8024D2C
- push {lr}
- ldr r0, _08024D58 @ =gUnknown_02024C09
- ldrb r0, [r0]
- bl sub_8014AB8
- lsls r0, 24
- cmp r0, 0
- beq _08024D60
- ldr r3, _08024D5C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08024D68
- .align 2, 0
-_08024D58: .4byte gUnknown_02024C09
-_08024D5C: .4byte gUnknown_02024C10
-_08024D60:
- ldr r1, _08024D6C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08024D68:
- pop {r0}
- bx r0
- .align 2, 0
-_08024D6C: .4byte gUnknown_02024C10
- thumb_func_end atk72_flee
-
- thumb_func_start atk73_cmd73
-atk73_cmd73: @ 8024D70
- push {r4,r5,lr}
- ldr r0, _08024DC0 @ =gUnknown_020239F8
- ldrh r0, [r0]
- movs r5, 0x1
- ands r5, r0
- cmp r5, 0
- bne _08024E12
- ldr r0, _08024DC4 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08024DC8 @ =gUnknown_02024A60
- strb r0, [r1]
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08024DCC @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r4, [r1, 0x28]
- movs r0, 0x64
- muls r0, r4
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- cmp r0, 0
- bne _08024DAE
- movs r0, 0x1
-_08024DAE:
- cmp r0, 0x45
- bgt _08024DB6
- cmp r4, 0
- bne _08024DD8
-_08024DB6:
- ldr r0, _08024DD0 @ =0x02000000
- ldr r1, _08024DD4 @ =0x000160c1
- adds r0, r1
- strb r5, [r0]
- b _08024E12
- .align 2, 0
-_08024DC0: .4byte gUnknown_020239F8
-_08024DC4: .4byte gUnknown_02024C10
-_08024DC8: .4byte gUnknown_02024A60
-_08024DCC: .4byte gBattleMons
-_08024DD0: .4byte 0x02000000
-_08024DD4: .4byte 0x000160c1
-_08024DD8:
- cmp r0, 0x27
- ble _08024DF0
- ldr r0, _08024DE8 @ =0x02000000
- ldr r1, _08024DEC @ =0x000160c1
- adds r0, r1
- movs r1, 0x1
- b _08024E10
- .align 2, 0
-_08024DE8: .4byte 0x02000000
-_08024DEC: .4byte 0x000160c1
-_08024DF0:
- cmp r0, 0x9
- ble _08024E08
- ldr r0, _08024E00 @ =0x02000000
- ldr r1, _08024E04 @ =0x000160c1
- adds r0, r1
- movs r1, 0x2
- b _08024E10
- .align 2, 0
-_08024E00: .4byte 0x02000000
-_08024E04: .4byte 0x000160c1
-_08024E08:
- ldr r0, _08024E20 @ =0x02000000
- ldr r1, _08024E24 @ =0x000160c1
- adds r0, r1
- movs r1, 0x3
-_08024E10:
- strb r1, [r0]
-_08024E12:
- ldr r1, _08024E28 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08024E20: .4byte 0x02000000
-_08024E24: .4byte 0x000160c1
-_08024E28: .4byte gUnknown_02024C10
- thumb_func_end atk73_cmd73
-
- thumb_func_start atk74_hp_tresholds_2
-atk74_hp_tresholds_2: @ 8024E2C
- push {r4-r7,lr}
- ldr r0, _08024E8C @ =gUnknown_020239F8
- ldrh r0, [r0]
- movs r7, 0x1
- ands r7, r0
- cmp r7, 0
- bne _08024ED0
- ldr r0, _08024E90 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- adds r4, r0, 0
- ldr r0, _08024E94 @ =gUnknown_02024A60
- strb r4, [r0]
- movs r0, 0x1
- eors r4, r0
- lsls r4, 24
- lsrs r4, 24
- ldr r6, _08024E98 @ =0x02000000
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 23
- ldr r1, _08024E9C @ =0x000160bc
- adds r0, r1
- adds r0, r6
- ldrb r5, [r0]
- ldr r1, _08024EA0 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r4, [r0, 0x28]
- subs r1, r5, r4
- movs r0, 0x64
- muls r0, r1
- adds r1, r5, 0
- bl __divsi3
- adds r1, r0, 0
- cmp r4, r5
- bcc _08024EA8
- ldr r1, _08024EA4 @ =0x000160c1
- adds r0, r6, r1
- strb r7, [r0]
- b _08024ED0
- .align 2, 0
-_08024E8C: .4byte gUnknown_020239F8
-_08024E90: .4byte gUnknown_02024C10
-_08024E94: .4byte gUnknown_02024A60
-_08024E98: .4byte 0x02000000
-_08024E9C: .4byte 0x000160bc
-_08024EA0: .4byte gBattleMons
-_08024EA4: .4byte 0x000160c1
-_08024EA8:
- cmp r0, 0x1D
- bgt _08024EB8
- ldr r0, _08024EB4 @ =0x000160c1
- adds r1, r6, r0
- movs r0, 0x1
- b _08024ECE
- .align 2, 0
-_08024EB4: .4byte 0x000160c1
-_08024EB8:
- cmp r1, 0x45
- bgt _08024EC8
- ldr r0, _08024EC4 @ =0x000160c1
- adds r1, r6, r0
- movs r0, 0x2
- b _08024ECE
- .align 2, 0
-_08024EC4: .4byte 0x000160c1
-_08024EC8:
- ldr r0, _08024EE0 @ =0x000160c1
- adds r1, r6, r0
- movs r0, 0x3
-_08024ECE:
- strb r0, [r1]
-_08024ED0:
- ldr r1, _08024EE4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024EE0: .4byte 0x000160c1
-_08024EE4: .4byte gUnknown_02024C10
- thumb_func_end atk74_hp_tresholds_2
-
- thumb_func_start atk75_8026A58
-atk75_8026A58: @ 8024EE8
- push {lr}
- sub sp, 0x4
- ldr r2, _08024F28 @ =gUnknown_02024E6C
- ldr r1, _08024F2C @ =gUnknown_02024C07
- ldrb r0, [r1]
- strb r0, [r2]
- ldr r2, _08024F30 @ =gUnknown_02024A6A
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r1, _08024F34 @ =gEnemyParty
- adds r0, r1
- ldr r1, _08024F38 @ =gUnknown_02024C04
- ldrh r1, [r1]
- lsls r2, 24
- lsrs r2, 24
- movs r3, 0x1
- str r3, [sp]
- movs r3, 0
- bl sub_803E1B0
- ldr r1, _08024F3C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08024F28: .4byte gUnknown_02024E6C
-_08024F2C: .4byte gUnknown_02024C07
-_08024F30: .4byte gUnknown_02024A6A
-_08024F34: .4byte gEnemyParty
-_08024F38: .4byte gUnknown_02024C04
-_08024F3C: .4byte gUnknown_02024C10
- thumb_func_end atk75_8026A58
-
- thumb_func_start sub_8024F40
-sub_8024F40: @ 8024F40
- push {r4-r6,lr}
- ldr r4, _08024F64 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08024F68 @ =gUnknown_02024A60
- strb r0, [r1]
- ldr r0, [r4]
- ldrb r0, [r0, 0x2]
- cmp r0, 0x6
- bls _08024F5A
- b _08025112
-_08024F5A:
- lsls r0, 2
- ldr r1, _08024F6C @ =_08024F70
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08024F64: .4byte gUnknown_02024C10
-_08024F68: .4byte gUnknown_02024A60
-_08024F6C: .4byte _08024F70
- .align 2, 0
-_08024F70:
- .4byte _08024F8C
- .4byte _08024F9C
- .4byte _08024FFC
- .4byte _0802500C
- .4byte _08025024
- .4byte _08025060
- .4byte _08025098
-_08024F8C:
- ldr r0, _08024F98 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl b_cancel_multi_turn_move_maybe
- b _08025112
- .align 2, 0
-_08024F98: .4byte gUnknown_02024A60
-_08024F9C:
- ldr r1, _08024FD8 @ =gUnknown_02024C07
- ldr r4, _08024FDC @ =gUnknown_02024C08
- ldrb r0, [r4]
- strb r0, [r1]
- ldrb r0, [r1]
- bl battle_side_get_owner
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08024FE0 @ =gUnknown_02024C80
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r2, r1, r2
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _08024FE8
- ldr r1, _08024FE4 @ =gBattleMons
- ldrb r2, [r2, 0x9]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08024FE8
- strb r2, [r4]
- b _08025112
- .align 2, 0
-_08024FD8: .4byte gUnknown_02024C07
-_08024FDC: .4byte gUnknown_02024C08
-_08024FE0: .4byte gUnknown_02024C80
-_08024FE4: .4byte gBattleMons
-_08024FE8:
- ldr r0, _08024FF4 @ =gUnknown_02024C08
- ldr r1, _08024FF8 @ =gUnknown_02024A60
- ldrb r1, [r1]
- strb r1, [r0]
- b _08025112
- .align 2, 0
-_08024FF4: .4byte gUnknown_02024C08
-_08024FF8: .4byte gUnknown_02024A60
-_08024FFC:
- bl sub_8012028
- ldr r1, _08025008 @ =gUnknown_02024D1E
- strb r0, [r1]
- b _08025112
- .align 2, 0
-_08025008: .4byte gUnknown_02024D1E
-_0802500C:
- ldr r0, _0802501C @ =gUnknown_02024BE6
- ldrh r0, [r0]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08025020 @ =gUnknown_02024C08
- strb r0, [r1]
- b _08025112
- .align 2, 0
-_0802501C: .4byte gUnknown_02024BE6
-_08025020: .4byte gUnknown_02024C08
-_08025024:
- ldr r2, _08025044 @ =gUnknown_02024C6C
- ldr r1, _08025048 @ =gBitTable
- ldr r0, _0802504C @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r0, 28
- ldr r2, [r2]
- ands r2, r0
- cmp r2, 0
- beq _08025054
- ldr r1, _08025050 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1]
- b _08025112
- .align 2, 0
-_08025044: .4byte gUnknown_02024C6C
-_08025048: .4byte gBitTable
-_0802504C: .4byte gUnknown_02024A60
-_08025050: .4byte gUnknown_02024D1E
-_08025054:
- ldr r0, _0802505C @ =gUnknown_02024D1E
- strb r2, [r0]
- b _08025112
- .align 2, 0
-_0802505C: .4byte gUnknown_02024D1E
-_08025060:
- ldr r4, _08025090 @ =gUnknown_02024D68
- ldr r3, _08025094 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- b _08025112
- .align 2, 0
-_08025090: .4byte gUnknown_02024D68
-_08025094: .4byte gUnknown_02024A60
-_08025098:
- ldr r3, _080250B8 @ =gUnknown_02024A6A
- ldr r0, _080250BC @ =0x02000000
- ldr r1, _080250C0 @ =0x00016018
- adds r0, r1
- ldrh r2, [r3]
- ldrb r1, [r0]
- cmp r2, r1
- beq _080250B2
- ldrh r0, [r3, 0x4]
- cmp r0, r1
- bne _08025112
- cmp r2, r0
- bne _080250C8
-_080250B2:
- ldr r1, _080250C4 @ =gUnknown_02024A60
- movs r0, 0
- b _080250CC
- .align 2, 0
-_080250B8: .4byte gUnknown_02024A6A
-_080250BC: .4byte 0x02000000
-_080250C0: .4byte 0x00016018
-_080250C4: .4byte gUnknown_02024A60
-_080250C8:
- ldr r1, _08025120 @ =gUnknown_02024A60
- movs r0, 0x2
-_080250CC:
- strb r0, [r1]
- adds r5, r1, 0
- ldrb r2, [r5]
- lsls r1, r2, 1
- ldr r0, _08025124 @ =0x020160e8
- adds r4, r1, r0
- movs r3, 0
- ldr r1, _08025128 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- ldrh r2, [r4]
- cmp r0, r2
- beq _0802510A
- adds r6, r5, 0
- movs r5, 0x58
- adds r2, r1, 0
-_080250F2:
- adds r3, 0x1
- cmp r3, 0x3
- bgt _0802510A
- lsls r1, r3, 1
- ldrb r0, [r6]
- muls r0, r5
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- ldrh r1, [r4]
- cmp r0, r1
- bne _080250F2
-_0802510A:
- cmp r3, 0x4
- bne _08025112
- movs r0, 0
- strh r0, [r4]
-_08025112:
- ldr r1, _0802512C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x3
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08025120: .4byte gUnknown_02024A60
-_08025124: .4byte 0x020160e8
-_08025128: .4byte gBattleMons
-_0802512C: .4byte gUnknown_02024C10
- thumb_func_end sub_8024F40
-
- thumb_func_start atk77_setprotect
-atk77_setprotect: @ 8025130
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0x1
- ldr r2, _080251FC @ =gUnknown_02024C4C
- ldr r1, _08025200 @ =gUnknown_02024C07
- ldrb r3, [r1]
- lsls r0, r3, 1
- adds r0, r2
- ldrh r0, [r0]
- mov r8, r1
- ldr r7, _08025204 @ =gUnknown_02024CA8
- cmp r0, 0xB6
- beq _08025160
- cmp r0, 0xC5
- beq _08025160
- cmp r0, 0xCB
- beq _08025160
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r7
- movs r1, 0
- strb r1, [r0, 0x8]
-_08025160:
- ldr r0, _08025208 @ =gUnknown_02024A7E
- ldrb r1, [r0]
- ldr r0, _0802520C @ =gUnknown_02024A68
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _08025170
- movs r6, 0
-_08025170:
- ldr r2, _08025210 @ =gProtectSuccessRates
- mov r5, r8
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r4, [r0, 0x8]
- lsls r4, 1
- adds r4, r2
- bl Random
- ldrh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bls _08025224
- cmp r6, 0
- beq _08025224
- ldr r4, _08025214 @ =gBattleMoves
- ldr r3, _08025218 @ =gUnknown_02024BE6
- ldrh r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- cmp r0, 0x6F
- bne _080251C0
- ldr r0, _0802521C @ =gUnknown_02024D28
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _08025220 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
-_080251C0:
- ldrh r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- cmp r0, 0x74
- bne _080251E6
- ldr r0, _0802521C @ =gUnknown_02024D28
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _08025220 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_080251E6:
- mov r1, r8
- ldrb r0, [r1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r0, [r1, 0x8]
- adds r0, 0x1
- strb r0, [r1, 0x8]
- b _08025246
- .align 2, 0
-_080251FC: .4byte gUnknown_02024C4C
-_08025200: .4byte gUnknown_02024C07
-_08025204: .4byte gUnknown_02024CA8
-_08025208: .4byte gUnknown_02024A7E
-_0802520C: .4byte gUnknown_02024A68
-_08025210: .4byte gProtectSuccessRates
-_08025214: .4byte gBattleMoves
-_08025218: .4byte gUnknown_02024BE6
-_0802521C: .4byte gUnknown_02024D28
-_08025220: .4byte gUnknown_02024D1E
-_08025224:
- ldr r2, _08025258 @ =gUnknown_02024CA8
- ldr r0, _0802525C @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x8]
- ldr r1, _08025260 @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- ldr r2, _08025264 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_08025246:
- ldr r1, _08025268 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025258: .4byte gUnknown_02024CA8
-_0802525C: .4byte gUnknown_02024C07
-_08025260: .4byte gUnknown_02024D1E
-_08025264: .4byte gUnknown_02024C68
-_08025268: .4byte gUnknown_02024C10
- thumb_func_end atk77_setprotect
-
- thumb_func_start atk78_faintifabilitynotdamp
-atk78_faintifabilitynotdamp: @ 802526C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08025328 @ =gUnknown_02024A64
- ldr r2, [r0]
- cmp r2, 0
- bne _08025370
- ldr r1, _0802532C @ =gUnknown_02024C08
- strb r2, [r1]
- ldr r0, _08025330 @ =gUnknown_02024A68
- ldrb r3, [r0]
- adds r5, r1, 0
- mov r8, r0
- ldr r6, _08025334 @ =gBattleMons
- cmp r2, r3
- bcs _080252B8
- adds r0, r6, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x6
- beq _080252B8
- adds r2, r3, 0
- adds r4, r6, 0
- movs r3, 0x58
-_0802529C:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r2
- bcs _080252B8
- ldrb r0, [r5]
- muls r0, r3
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _0802529C
-_080252B8:
- ldrb r0, [r5]
- mov r1, r8
- ldrb r1, [r1]
- cmp r0, r1
- bne _08025354
- ldr r4, _08025338 @ =gUnknown_02024A60
- ldr r7, _0802533C @ =gUnknown_02024C07
- ldrb r0, [r7]
- strb r0, [r4]
- ldr r2, _08025340 @ =gUnknown_02024BEC
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r6
- ldrh r0, [r0, 0x28]
- str r0, [r2]
- ldr r1, _08025344 @ =0x00007fff
- movs r0, 0
- bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08025348 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- movs r0, 0
- strb r0, [r5]
- mov r2, r8
- ldrb r0, [r2]
- cmp r0, 0
- beq _08025370
- adds r3, r5, 0
- ldrb r5, [r7]
- ldr r7, _0802534C @ =gBitTable
- adds r4, r0, 0
- ldr r6, _08025350 @ =gUnknown_02024C0C
-_08025304:
- ldrb r2, [r3]
- cmp r2, r5
- beq _0802531A
- ldrb r0, [r6]
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r7
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _08025370
-_0802531A:
- adds r0, r2, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcc _08025304
- b _08025370
- .align 2, 0
-_08025328: .4byte gUnknown_02024A64
-_0802532C: .4byte gUnknown_02024C08
-_08025330: .4byte gUnknown_02024A68
-_08025334: .4byte gBattleMons
-_08025338: .4byte gUnknown_02024A60
-_0802533C: .4byte gUnknown_02024C07
-_08025340: .4byte gUnknown_02024BEC
-_08025344: .4byte 0x00007fff
-_08025348: .4byte gUnknown_02024C10
-_0802534C: .4byte gBitTable
-_08025350: .4byte gUnknown_02024C0C
-_08025354:
- ldr r1, _0802537C @ =byte_2024C06
- movs r0, 0x6
- strb r0, [r1]
- ldrb r0, [r5]
- movs r1, 0x58
- muls r1, r0
- adds r1, r6
- adds r1, 0x20
- ldrb r1, [r1]
- bl sub_81074C4
- ldr r1, _08025380 @ =gUnknown_02024C10
- ldr r0, _08025384 @ =gUnknown_081D9834
- str r0, [r1]
-_08025370:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802537C: .4byte byte_2024C06
-_08025380: .4byte gUnknown_02024C10
-_08025384: .4byte gUnknown_081D9834
- thumb_func_end atk78_faintifabilitynotdamp
-
- thumb_func_start atk79_setuserhptozero
-atk79_setuserhptozero: @ 8025388
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080253D4 @ =gUnknown_02024A64
- ldr r3, [r0]
- cmp r3, 0
- bne _080253CC
- ldr r4, _080253D8 @ =gUnknown_02024A60
- ldr r0, _080253DC @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _080253E0 @ =gBattleMons
- ldrb r0, [r4]
- movs r2, 0x58
- muls r0, r2
- adds r0, r1
- strh r3, [r0, 0x28]
- ldrb r0, [r4]
- muls r0, r2
- adds r1, 0x28
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2A
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _080253E4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_080253CC:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080253D4: .4byte gUnknown_02024A64
-_080253D8: .4byte gUnknown_02024A60
-_080253DC: .4byte gUnknown_02024C07
-_080253E0: .4byte gBattleMons
-_080253E4: .4byte gUnknown_02024C10
- thumb_func_end atk79_setuserhptozero
-
- thumb_func_start sub_80253E8
-sub_80253E8: @ 80253E8
- push {r4-r7,lr}
- ldr r3, _08025460 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r4, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r4, r0
- ldr r0, _08025464 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- adds r7, r3, 0
- cmp r0, 0
- beq _08025480
- ldr r0, _08025468 @ =gUnknown_02024C08
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r2, _0802546C @ =gUnknown_02024C07
- lsls r1, 24
- lsrs r1, 24
- adds r3, r0, 0
- ldr r6, _08025470 @ =gUnknown_02024C0C
- ldr r5, _08025474 @ =gBitTable
- ldr r0, _08025478 @ =gUnknown_02024A68
- mov r12, r0
- ldrb r0, [r2]
- cmp r1, r0
- bne _0802543E
-_0802542E:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r2]
- cmp r0, r1
- beq _0802542E
-_0802543E:
- ldrb r0, [r6]
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r5
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _0802542E
- ldrb r0, [r3]
- mov r2, r12
- ldrb r2, [r2]
- cmp r0, r2
- bcc _0802547C
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- b _08025484
- .align 2, 0
-_08025460: .4byte gUnknown_02024C10
-_08025464: .4byte gUnknown_020239F8
-_08025468: .4byte gUnknown_02024C08
-_0802546C: .4byte gUnknown_02024C07
-_08025470: .4byte gUnknown_02024C0C
-_08025474: .4byte gBitTable
-_08025478: .4byte gUnknown_02024A68
-_0802547C:
- str r4, [r7]
- b _08025484
-_08025480:
- adds r0, r2, 0x5
- str r0, [r3]
-_08025484:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80253E8
-
- thumb_func_start sub_802548C
-sub_802548C: @ 802548C
- push {r4-r6,lr}
- ldr r4, _080254E8 @ =gUnknown_02024C10
- ldr r1, [r4]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r2, r0
- ldrb r0, [r1, 0x5]
- ldr r3, _080254EC @ =gUnknown_02024C08
- cmp r0, 0x1
- bne _080254B4
- ldr r0, _080254F0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r3]
-_080254B4:
- ldr r1, _080254F4 @ =gUnknown_02024BEC
- ldr r6, _080254F8 @ =gBattleMons
- ldrb r0, [r3]
- movs r5, 0x58
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _080254CE
- movs r0, 0x1
- str r0, [r1]
-_080254CE:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldrb r0, [r3]
- muls r0, r5
- adds r0, r6
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- bne _080254FC
- str r2, [r4]
- b _08025502
- .align 2, 0
-_080254E8: .4byte gUnknown_02024C10
-_080254EC: .4byte gUnknown_02024C08
-_080254F0: .4byte gUnknown_02024C07
-_080254F4: .4byte gUnknown_02024BEC
-_080254F8: .4byte gBattleMons
-_080254FC:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_08025502:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_802548C
-
- thumb_func_start sub_8025508
-sub_8025508: @ 8025508
- push {r4-r7,lr}
- ldr r3, _0802556C @ =0x02000000
- ldr r4, _08025570 @ =gUnknown_02024C07
- ldrb r2, [r4]
- lsls r1, r2, 1
- ldr r5, _08025574 @ =0x000160ac
- adds r0, r1, r5
- adds r0, r3
- ldrb r7, [r0]
- ldr r0, _08025578 @ =0x000160ad
- adds r1, r0
- adds r1, r3
- ldrb r0, [r1]
- lsls r0, 8
- orrs r7, r0
- lsls r2, 2
- ldr r1, _0802557C @ =0x00016100
- adds r0, r2, r1
- adds r0, r3
- ldrb r6, [r0]
- adds r5, 0x55
- adds r0, r2, r5
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 8
- orrs r6, r0
- adds r1, 0x2
- adds r0, r2, r1
- adds r0, r3
- ldrb r5, [r0]
- ldr r0, _08025580 @ =0x00016103
- adds r2, r0
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 8
- orrs r5, r0
- cmp r7, 0
- beq _08025594
- ldr r0, _08025584 @ =0x0000ffff
- cmp r7, r0
- beq _08025594
- ldr r2, _08025588 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0802558C @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _08025590 @ =gUnknown_02024BE6
- strh r7, [r4]
- b _0802565C
- .align 2, 0
-_0802556C: .4byte 0x02000000
-_08025570: .4byte gUnknown_02024C07
-_08025574: .4byte 0x000160ac
-_08025578: .4byte 0x000160ad
-_0802557C: .4byte 0x00016100
-_08025580: .4byte 0x00016103
-_08025584: .4byte 0x0000ffff
-_08025588: .4byte gUnknown_02024C6C
-_0802558C: .4byte 0xfffffbff
-_08025590: .4byte gUnknown_02024BE6
-_08025594:
- cmp r6, 0
- beq _08025644
- cmp r5, 0
- beq _08025618
- ldr r0, _080255C4 @ =0x0000ffff
- cmp r6, r0
- beq _08025618
- cmp r5, r0
- beq _08025618
- ldr r2, _080255C8 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _080255CC @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080255D4
- ldr r0, _080255D0 @ =gUnknown_02024BE6
- strh r6, [r0]
- b _080255D8
- .align 2, 0
-_080255C4: .4byte 0x0000ffff
-_080255C8: .4byte gUnknown_02024C6C
-_080255CC: .4byte 0xfffffbff
-_080255D0: .4byte gUnknown_02024BE6
-_080255D4:
- ldr r0, _08025604 @ =gUnknown_02024BE6
- strh r5, [r0]
-_080255D8:
- adds r5, r0, 0
- ldrh r0, [r5]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08025608 @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r4, _0802560C @ =gUnknown_02024C10
- ldr r3, _08025610 @ =gUnknown_081D6BBC
- ldr r2, _08025614 @ =gBattleMoves
- ldrh r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r4]
- b _080256C0
- .align 2, 0
-_08025604: .4byte gUnknown_02024BE6
-_08025608: .4byte gUnknown_02024C08
-_0802560C: .4byte gUnknown_02024C10
-_08025610: .4byte gUnknown_081D6BBC
-_08025614: .4byte gBattleMoves
-_08025618:
- cmp r6, 0
- beq _08025644
- ldr r0, _08025634 @ =0x0000ffff
- cmp r6, r0
- beq _08025644
- ldr r2, _08025638 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0802563C @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _08025640 @ =gUnknown_02024BE6
- strh r6, [r4]
- b _0802565C
- .align 2, 0
-_08025634: .4byte 0x0000ffff
-_08025638: .4byte gUnknown_02024C6C
-_0802563C: .4byte 0xfffffbff
-_08025640: .4byte gUnknown_02024BE6
-_08025644:
- cmp r5, 0
- beq _080256A4
- ldr r0, _08025684 @ =0x0000ffff
- cmp r5, r0
- beq _080256A4
- ldr r2, _08025688 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0802568C @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _08025690 @ =gUnknown_02024BE6
- strh r5, [r4]
-_0802565C:
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08025694 @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r5, _08025698 @ =gUnknown_02024C10
- ldr r3, _0802569C @ =gUnknown_081D6BBC
- ldr r2, _080256A0 @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r5]
- b _080256C0
- .align 2, 0
-_08025684: .4byte 0x0000ffff
-_08025688: .4byte gUnknown_02024C6C
-_0802568C: .4byte 0xfffffbff
-_08025690: .4byte gUnknown_02024BE6
-_08025694: .4byte gUnknown_02024C08
-_08025698: .4byte gUnknown_02024C10
-_0802569C: .4byte gUnknown_081D6BBC
-_080256A0: .4byte gBattleMoves
-_080256A4:
- ldr r2, _080256C8 @ =gUnknown_02024D68
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _080256CC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_080256C0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080256C8: .4byte gUnknown_02024D68
-_080256CC: .4byte gUnknown_02024C10
- thumb_func_end sub_8025508
-
- thumb_func_start sub_80256D0
-sub_80256D0: @ 80256D0
- push {lr}
- ldr r2, _080256F0 @ =word_2024DB8
- ldrh r0, [r2]
- movs r1, 0x7
- ands r1, r0
- cmp r1, 0
- beq _080256FC
- ldr r2, _080256F4 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080256F8 @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _0802570C
- .align 2, 0
-_080256F0: .4byte word_2024DB8
-_080256F4: .4byte gUnknown_02024C68
-_080256F8: .4byte gUnknown_02024D1E
-_080256FC:
- movs r0, 0x1
- strh r0, [r2]
- ldr r0, _08025718 @ =gUnknown_02024D1E
- strb r1, [r0, 0x5]
- ldr r0, _0802571C @ =gUnknown_02024DBC
- adds r0, 0x28
- movs r1, 0x5
- strb r1, [r0]
-_0802570C:
- ldr r1, _08025720 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08025718: .4byte gUnknown_02024D1E
-_0802571C: .4byte gUnknown_02024DBC
-_08025720: .4byte gUnknown_02024C10
- thumb_func_end sub_80256D0
-
- thumb_func_start atk7E_setreflect
-atk7E_setreflect: @ 8025724
- push {r4-r6,lr}
- ldr r5, _08025754 @ =gUnknown_02024C07
- ldrb r0, [r5]
- bl battle_get_per_side_status
- ldr r6, _08025758 @ =gUnknown_02024C7A
- movs r4, 0x1
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08025764
- ldr r2, _0802575C @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08025760 @ =gUnknown_02024D1E
- movs r0, 0
- b _080257C4
- .align 2, 0
-_08025754: .4byte gUnknown_02024C07
-_08025758: .4byte gUnknown_02024C7A
-_0802575C: .4byte gUnknown_02024C68
-_08025760: .4byte gUnknown_02024D1E
-_08025764:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r5]
- bl battle_get_per_side_status
- ldr r2, _080257B4 @ =gUnknown_02024C80
- adds r1, r4, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strb r1, [r0]
- ldr r0, _080257B8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _080257C0
- movs r0, 0x1
- bl sub_803C348
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bne _080257C0
- ldr r0, _080257BC @ =gUnknown_02024D1E
- strb r1, [r0, 0x5]
- b _080257C6
- .align 2, 0
-_080257B4: .4byte gUnknown_02024C80
-_080257B8: .4byte gUnknown_020239F8
-_080257BC: .4byte gUnknown_02024D1E
-_080257C0:
- ldr r1, _080257D4 @ =gUnknown_02024D1E
- movs r0, 0x1
-_080257C4:
- strb r0, [r1, 0x5]
-_080257C6:
- ldr r1, _080257D8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080257D4: .4byte gUnknown_02024D1E
-_080257D8: .4byte gUnknown_02024C10
- thumb_func_end atk7E_setreflect
-
- thumb_func_start sub_80257DC
-sub_80257DC: @ 80257DC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r7, _0802581C @ =gUnknown_02024C68
- ldrb r5, [r7]
- movs r0, 0x29
- ands r0, r5
- cmp r0, 0
- bne _0802580E
- ldr r0, _08025820 @ =gUnknown_02024C98
- mov r9, r0
- ldr r1, _08025824 @ =gUnknown_02024C08
- mov r8, r1
- ldrb r4, [r1]
- lsls r0, r4, 2
- mov r2, r9
- adds r6, r0, r2
- ldr r2, [r6]
- movs r0, 0x4
- mov r12, r0
- adds r3, r2, 0
- ands r3, r0
- cmp r3, 0
- beq _0802582C
-_0802580E:
- movs r0, 0x1
- orrs r0, r5
- strb r0, [r7]
- ldr r1, _08025828 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _0802587C
- .align 2, 0
-_0802581C: .4byte gUnknown_02024C68
-_08025820: .4byte gUnknown_02024C98
-_08025824: .4byte gUnknown_02024C08
-_08025828: .4byte gUnknown_02024D1E
-_0802582C:
- ldr r1, _08025858 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, r0, r1
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xC
- beq _08025848
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xC
- bne _08025860
-_08025848:
- movs r0, 0x1
- orrs r0, r5
- strb r0, [r7]
- ldr r1, _0802585C @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _0802587C
- .align 2, 0
-_08025858: .4byte gBattleMons
-_0802585C: .4byte gUnknown_02024D1E
-_08025860:
- ldr r0, _08025890 @ =gUnknown_02024C07
- ldrb r0, [r0]
- orrs r2, r0
- str r2, [r6]
- mov r2, r8
- ldrb r1, [r2]
- lsls r1, 2
- add r1, r9
- ldr r0, [r1]
- mov r2, r12
- orrs r0, r2
- str r0, [r1]
- ldr r0, _08025894 @ =gUnknown_02024D1E
- strb r3, [r0, 0x5]
-_0802587C:
- ldr r1, _08025898 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025890: .4byte gUnknown_02024C07
-_08025894: .4byte gUnknown_02024D1E
-_08025898: .4byte gUnknown_02024C10
- thumb_func_end sub_80257DC
-
- thumb_func_start atk80_manipulatedamage
-atk80_manipulatedamage: @ 802589C
- push {r4,lr}
- ldr r1, _080258B4 @ =gUnknown_02024C10
- ldr r0, [r1]
- ldrb r2, [r0, 0x1]
- adds r4, r1, 0
- cmp r2, 0x1
- beq _080258CC
- cmp r2, 0x1
- bgt _080258B8
- cmp r2, 0
- beq _080258BE
- b _0802590C
- .align 2, 0
-_080258B4: .4byte gUnknown_02024C10
-_080258B8:
- cmp r2, 0x2
- beq _08025904
- b _0802590C
-_080258BE:
- ldr r1, _080258C8 @ =gUnknown_02024BEC
- ldr r0, [r1]
- negs r0, r0
- b _0802590A
- .align 2, 0
-_080258C8: .4byte gUnknown_02024BEC
-_080258CC:
- ldr r3, _080258F8 @ =gUnknown_02024BEC
- ldr r0, [r3]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- str r0, [r3]
- cmp r0, 0
- bne _080258DE
- str r2, [r3]
-_080258DE:
- ldr r2, _080258FC @ =gBattleMons
- ldr r0, _08025900 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2C]
- lsrs r1, r0, 1
- ldr r0, [r3]
- cmp r1, r0
- bge _0802590C
- str r1, [r3]
- b _0802590C
- .align 2, 0
-_080258F8: .4byte gUnknown_02024BEC
-_080258FC: .4byte gBattleMons
-_08025900: .4byte gUnknown_02024C08
-_08025904:
- ldr r1, _08025918 @ =gUnknown_02024BEC
- ldr r0, [r1]
- lsls r0, 1
-_0802590A:
- str r0, [r1]
-_0802590C:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08025918: .4byte gUnknown_02024BEC
- thumb_func_end atk80_manipulatedamage
-
- thumb_func_start atk81_setrest
-atk81_setrest: @ 802591C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r0, _08025974 @ =gUnknown_02024C10
- mov r12, r0
- ldr r1, [r0]
- ldrb r6, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r6, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r6, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r6, r0
- ldr r5, _08025978 @ =gUnknown_02024A60
- ldr r2, _0802597C @ =gUnknown_02024C08
- ldr r0, _08025980 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r2]
- strb r0, [r5]
- ldr r4, _08025984 @ =gUnknown_02024BEC
- ldr r1, _08025988 @ =gBattleMons
- ldrb r0, [r2]
- movs r3, 0x58
- muls r0, r3
- adds r0, r1
- ldrh r0, [r0, 0x2C]
- negs r0, r0
- str r0, [r4]
- ldrb r0, [r2]
- adds r4, r0, 0
- muls r4, r3
- 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 _0802598C
- mov r0, r12
- str r6, [r0]
- b _080259DC
- .align 2, 0
-_08025974: .4byte gUnknown_02024C10
-_08025978: .4byte gUnknown_02024A60
-_0802597C: .4byte gUnknown_02024C08
-_08025980: .4byte gUnknown_02024C07
-_08025984: .4byte gUnknown_02024BEC
-_08025988: .4byte gBattleMons
-_0802598C:
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r4, r0
- ldr r1, [r0]
- movs r0, 0xF8
- ands r1, r0
- cmp r1, 0
- beq _080259A8
- ldr r1, _080259A4 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _080259AC
- .align 2, 0
-_080259A4: .4byte gUnknown_02024D1E
-_080259A8:
- ldr r0, _080259E4 @ =gUnknown_02024D1E
- strb r1, [r0, 0x5]
-_080259AC:
- ldrb r0, [r5]
- movs r3, 0x58
- muls r0, r3
- adds r2, 0x4C
- adds r0, r2
- movs r1, 0x3
- str r1, [r0]
- ldrb r0, [r7]
- muls r0, r3
- adds r0, r2
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _080259E8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_080259DC:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080259E4: .4byte gUnknown_02024D1E
-_080259E8: .4byte gUnknown_02024C10
- thumb_func_end atk81_setrest
-
- thumb_func_start atk82_jumpifnotfirstturn
-atk82_jumpifnotfirstturn: @ 80259EC
- push {r4,r5,lr}
- ldr r5, _08025A20 @ =gUnknown_02024C10
- ldr r4, [r5]
- ldrb r3, [r4, 0x1]
- ldrb r0, [r4, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r4, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldr r2, _08025A24 @ =gUnknown_02024CA8
- ldr r0, _08025A28 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x16]
- cmp r0, 0
- beq _08025A2C
- adds r0, r4, 0x5
- str r0, [r5]
- b _08025A2E
- .align 2, 0
-_08025A20: .4byte gUnknown_02024C10
-_08025A24: .4byte gUnknown_02024CA8
-_08025A28: .4byte gUnknown_02024C07
-_08025A2C:
- str r3, [r5]
-_08025A2E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end atk82_jumpifnotfirstturn
-
- thumb_func_start sub_8025A34
-sub_8025A34: @ 8025A34
- ldr r1, _08025A40 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08025A40: .4byte gUnknown_02024C10
- thumb_func_end sub_8025A34
-
- thumb_func_start sub_8025A44
-sub_8025A44: @ 8025A44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r0, _08025A9C @ =gUnknown_02024A68
- ldrb r1, [r0]
- mov r8, r0
- cmp r2, r1
- bge _08025AB8
- ldr r0, _08025AA0 @ =gBattleMons
- mov r12, r0
- movs r0, 0x58
- muls r0, r3
- add r0, r12
- adds r5, r0, 0
- adds r5, 0x20
- ldr r6, _08025AA4 @ =0x02016003
- movs r3, 0
- ldr r7, _08025AA8 @ =gUnknown_02024D1E
- adds r4, r1, 0
-_08025A70:
- mov r0, r12
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- beq _08025AB0
- ldrb r0, [r5]
- cmp r0, 0x2B
- beq _08025AB0
- movs r3, 0
- strb r2, [r6]
- ldr r1, _08025AAC @ =gUnknown_02024C08
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _08025AD0
- cmp r0, r2
- beq _08025AC4
- movs r0, 0x1
- strb r0, [r7, 0x5]
- b _08025AB8
- .align 2, 0
-_08025A9C: .4byte gUnknown_02024A68
-_08025AA0: .4byte gBattleMons
-_08025AA4: .4byte 0x02016003
-_08025AA8: .4byte gUnknown_02024D1E
-_08025AAC: .4byte gUnknown_02024C08
-_08025AB0:
- adds r3, 0x58
- adds r2, 0x1
- cmp r2, r4
- blt _08025A70
-_08025AB8:
- mov r1, r8
- ldrb r1, [r1]
- cmp r2, r1
- beq _08025AD4
- movs r0, 0x1
- b _08025AD6
-_08025AC4:
- ldr r0, _08025ACC @ =gUnknown_02024D1E
- strb r3, [r0, 0x5]
- b _08025AB8
- .align 2, 0
-_08025ACC: .4byte gUnknown_02024D1E
-_08025AD0:
- strb r2, [r1]
- b _08025AB8
-_08025AD4:
- movs r0, 0
-_08025AD6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8025A44
-
- thumb_func_start sub_8025AE0
-sub_8025AE0: @ 8025AE0
- push {r4-r6,lr}
- ldr r5, _08025B0C @ =gUnknown_02024C10
- ldr r1, [r5]
- ldrb r4, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r4, r0
- ldr r6, _08025B10 @ =gUnknown_02024C08
- ldrb r0, [r6]
- bl sub_8025A44
- lsls r0, 24
- cmp r0, 0
- beq _08025B14
- str r4, [r5]
- b _08025B56
- .align 2, 0
-_08025B0C: .4byte gUnknown_02024C10
-_08025B10: .4byte gUnknown_02024C08
-_08025B14:
- ldr r1, _08025B44 @ =gBattleMons
- ldrb r3, [r6]
- movs r0, 0x58
- muls r0, r3
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- adds r1, r0, 0
- cmp r1, 0xF
- beq _08025B2C
- cmp r1, 0x48
- bne _08025B50
-_08025B2C:
- ldr r2, _08025B48 @ =byte_2024C06
- strb r0, [r2]
- ldr r1, _08025B4C @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- str r4, [r5]
- ldrb r1, [r2]
- adds r0, r3, 0
- bl sub_81074C4
- b _08025B56
- .align 2, 0
-_08025B44: .4byte gBattleMons
-_08025B48: .4byte byte_2024C06
-_08025B4C: .4byte gUnknown_02024D1E
-_08025B50:
- ldr r0, [r5]
- adds r0, 0x5
- str r0, [r5]
-_08025B56:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8025AE0
-
- thumb_func_start sub_8025B5C
-sub_8025B5C: @ 8025B5C
- push {r4,r5,lr}
- ldr r5, _08025B84 @ =gUnknown_02024CA8
- ldr r4, _08025B88 @ =gUnknown_02024C07
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x9]
- cmp r0, 0x3
- bne _08025B94
- ldr r2, _08025B8C @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08025B90 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08025BBE
- .align 2, 0
-_08025B84: .4byte gUnknown_02024CA8
-_08025B88: .4byte gUnknown_02024C07
-_08025B8C: .4byte gUnknown_02024C68
-_08025B90: .4byte gUnknown_02024D1E
-_08025B94:
- adds r0, 0x1
- movs r3, 0
- strb r0, [r1, 0x9]
- ldr r2, _08025BCC @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x1
- strb r0, [r2, 0x1]
- strb r0, [r2, 0x2]
- strb r0, [r2, 0x3]
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x9]
- strb r0, [r2, 0x4]
- movs r0, 0xFF
- strb r0, [r2, 0x5]
- ldr r0, _08025BD0 @ =gUnknown_02024D1E
- strb r3, [r0, 0x5]
-_08025BBE:
- ldr r1, _08025BD4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08025BCC: .4byte gUnknown_030041C0
-_08025BD0: .4byte gUnknown_02024D1E
-_08025BD4: .4byte gUnknown_02024C10
- thumb_func_end sub_8025B5C
-
- thumb_func_start atk86_stockpiletobasedamage
-atk86_stockpiletobasedamage: @ 8025BD8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- ldr r3, _08025C10 @ =gUnknown_02024C10
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r2, r0
- ldr r7, _08025C14 @ =gUnknown_02024CA8
- ldr r6, _08025C18 @ =gUnknown_02024C07
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x9]
- cmp r0, 0
- bne _08025C1C
- str r2, [r3]
- b _08025CC2
- .align 2, 0
-_08025C10: .4byte gUnknown_02024C10
-_08025C14: .4byte gUnknown_02024CA8
-_08025C18: .4byte gUnknown_02024C07
-_08025C1C:
- ldr r0, _08025CD0 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- beq _08025CA8
- ldr r0, _08025CD4 @ =gUnknown_02024BEC
- mov r8, r0
- ldr r4, _08025CD8 @ =gUnknown_02024C7A
- ldr r5, _08025CDC @ =gUnknown_02024C08
- ldrb r0, [r5]
- bl battle_get_per_side_status
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- ldrb r0, [r6]
- movs r4, 0x58
- muls r0, r4
- ldr r2, _08025CE0 @ =gBattleMons
- adds r0, r2
- ldrb r1, [r5]
- muls r1, r4
- adds r1, r2
- ldr r2, _08025CE4 @ =gUnknown_02024BE6
- ldrh r2, [r2]
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- ldrb r4, [r6]
- str r4, [sp, 0x8]
- ldrb r4, [r5]
- str r4, [sp, 0xC]
- bl CalculateBaseDamage
- ldrb r2, [r6]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r7
- ldrb r1, [r1, 0x9]
- adds r3, r0, 0
- muls r3, r1
- mov r1, r8
- str r3, [r1]
- ldr r2, _08025CE8 @ =0x02000000
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x9]
- ldr r1, _08025CEC @ =0x00016002
- adds r2, r1
- strb r0, [r2]
- ldr r1, _08025CF0 @ =gUnknown_02024D28
- ldrb r0, [r6]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _08025CA8
- lsls r0, r3, 4
- subs r0, r3
- movs r1, 0xA
- bl __divsi3
- mov r1, r8
- str r0, [r1]
-_08025CA8:
- ldr r2, _08025CF4 @ =gUnknown_02024CA8
- ldr r0, _08025CF8 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x9]
- ldr r1, _08025CFC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08025CC2:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025CD0: .4byte gUnknown_02024D1E
-_08025CD4: .4byte gUnknown_02024BEC
-_08025CD8: .4byte gUnknown_02024C7A
-_08025CDC: .4byte gUnknown_02024C08
-_08025CE0: .4byte gBattleMons
-_08025CE4: .4byte gUnknown_02024BE6
-_08025CE8: .4byte 0x02000000
-_08025CEC: .4byte 0x00016002
-_08025CF0: .4byte gUnknown_02024D28
-_08025CF4: .4byte gUnknown_02024CA8
-_08025CF8: .4byte gUnknown_02024C07
-_08025CFC: .4byte gUnknown_02024C10
- thumb_func_end atk86_stockpiletobasedamage
-
- thumb_func_start sub_8025D00
-sub_8025D00: @ 8025D00
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _08025D40 @ =gUnknown_02024C10
- ldr r1, [r7]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r2, r0
- ldr r0, _08025D44 @ =gUnknown_02024CA8
- mov r8, r0
- ldr r6, _08025D48 @ =gUnknown_02024C07
- ldrb r3, [r6]
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- mov r1, r8
- adds r4, r0, r1
- ldrb r1, [r4, 0x9]
- cmp r1, 0
- bne _08025D50
- str r2, [r7]
- ldr r0, _08025D4C @ =gUnknown_02024D1E
- strb r1, [r0, 0x5]
- b _08025DD0
- .align 2, 0
-_08025D40: .4byte gUnknown_02024C10
-_08025D44: .4byte gUnknown_02024CA8
-_08025D48: .4byte gUnknown_02024C07
-_08025D4C: .4byte gUnknown_02024D1E
-_08025D50:
- ldr r1, _08025D74 @ =gBattleMons
- movs r0, 0x58
- muls r0, r3
- adds r1, r0, r1
- ldrh r0, [r1, 0x2C]
- ldrh r3, [r1, 0x28]
- cmp r0, r3
- bne _08025D80
- movs r0, 0
- strb r0, [r4, 0x9]
- str r2, [r7]
- ldr r1, _08025D78 @ =gUnknown_02024C08
- ldrb r0, [r6]
- strb r0, [r1]
- ldr r1, _08025D7C @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08025DD0
- .align 2, 0
-_08025D74: .4byte gBattleMons
-_08025D78: .4byte gUnknown_02024C08
-_08025D7C: .4byte gUnknown_02024D1E
-_08025D80:
- ldr r5, _08025DDC @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- ldrb r1, [r4, 0x9]
- movs r2, 0x3
- subs r2, r1
- movs r4, 0x1
- adds r1, r4, 0
- lsls r1, r2
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _08025D9C
- str r4, [r5]
-_08025D9C:
- ldr r0, [r5]
- negs r0, r0
- str r0, [r5]
- ldr r2, _08025DE0 @ =0x02000000
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x9]
- ldr r1, _08025DE4 @ =0x00016002
- adds r2, r1
- movs r3, 0
- strb r0, [r2]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- strb r3, [r0, 0x9]
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- ldr r1, _08025DE8 @ =gUnknown_02024C08
- ldrb r0, [r6]
- strb r0, [r1]
-_08025DD0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025DDC: .4byte gUnknown_02024BEC
-_08025DE0: .4byte 0x02000000
-_08025DE4: .4byte 0x00016002
-_08025DE8: .4byte gUnknown_02024C08
- thumb_func_end sub_8025D00
-
- thumb_func_start atk88_negativedamage
-atk88_negativedamage: @ 8025DEC
- push {lr}
- ldr r2, _08025E14 @ =gUnknown_02024BEC
- ldr r0, _08025E18 @ =gUnknown_02024BF0
- ldr r0, [r0]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- negs r0, r0
- str r0, [r2]
- cmp r0, 0
- bne _08025E08
- movs r0, 0x1
- negs r0, r0
- str r0, [r2]
-_08025E08:
- ldr r1, _08025E1C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08025E14: .4byte gUnknown_02024BEC
-_08025E18: .4byte gUnknown_02024BF0
-_08025E1C: .4byte gUnknown_02024C10
- thumb_func_end atk88_negativedamage
-
- thumb_func_start sub_8025E20
-sub_8025E20: @ 8025E20
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r3
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- movs r0, 0
- mov r9, r0
- mov r10, r0
- movs r0, 0x40
- ands r0, r5
- cmp r0, 0
- beq _08025E54
- ldr r0, _08025E4C @ =gUnknown_02024A60
- ldr r1, _08025E50 @ =gUnknown_02024C07
- b _08025E58
- .align 2, 0
-_08025E4C: .4byte gUnknown_02024A60
-_08025E50: .4byte gUnknown_02024C07
-_08025E54:
- ldr r0, _08025EF8 @ =gUnknown_02024A60
- ldr r1, _08025EFC @ =gUnknown_02024C08
-_08025E58:
- ldrb r1, [r1]
- strb r1, [r0]
- movs r0, 0xBF
- ands r5, r0
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- beq _08025E72
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08025E72:
- movs r0, 0x7F
- ands r5, r0
- movs r0, 0x20
- ands r0, r5
- cmp r0, 0
- beq _08025E88
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
-_08025E88:
- movs r0, 0xDF
- ands r5, r0
- ldr r1, _08025F00 @ =gUnknown_030041C0
- movs r4, 0
- movs r2, 0xFD
- strb r2, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- strb r7, [r1, 0x2]
- movs r3, 0x1
- negs r3, r3
- mov r12, r3
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- lsls r0, r6, 24
- cmp r0, 0
- blt _08025EAC
- b _080261B0
-_08025EAC:
- ldr r4, _08025F04 @ =gUnknown_02024C80
- ldr r1, _08025EF8 @ =gUnknown_02024A60
- ldrb r0, [r1]
- bl battle_get_per_side_status
- movs r1, 0x1
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- beq _08025F54
- mov r2, r9
- cmp r2, 0
- bne _08025F54
- ldr r0, _08025F08 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xAE
- beq _08025F84
- cmp r5, 0x1
- bne _08025F74
- ldr r4, _08025F0C @ =gUnknown_02024D68
- ldr r3, _08025EF8 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- beq _08025F14
- ldr r0, _08025F10 @ =gUnknown_02024C10
- mov r4, r8
- str r4, [r0]
- b _08025F74
- .align 2, 0
-_08025EF8: .4byte gUnknown_02024A60
-_08025EFC: .4byte gUnknown_02024C08
-_08025F00: .4byte gUnknown_030041C0
-_08025F04: .4byte gUnknown_02024C80
-_08025F08: .4byte gUnknown_02024BE6
-_08025F0C: .4byte gUnknown_02024D68
-_08025F10: .4byte gUnknown_02024C10
-_08025F14:
- mov r0, r8
- bl b_movescr_stack_push
- ldr r0, _08025F40 @ =0x02000000
- ldr r6, _08025F44 @ =gUnknown_02024A60
- ldrb r1, [r6]
- ldr r2, _08025F48 @ =0x00016003
- adds r0, r2
- strb r1, [r0]
- ldr r1, _08025F4C @ =gUnknown_02024C10
- ldr r0, _08025F50 @ =gUnknown_081D9128
- str r0, [r1]
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _08025F74
- .align 2, 0
-_08025F40: .4byte 0x02000000
-_08025F44: .4byte gUnknown_02024A60
-_08025F48: .4byte 0x00016003
-_08025F4C: .4byte gUnknown_02024C10
-_08025F50: .4byte gUnknown_081D9128
-_08025F54:
- ldr r0, _08025F78 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xAE
- beq _08025F84
- mov r3, r10
- cmp r3, 0x1
- beq _08025F84
- movs r0, 0
- bl sub_801C108
- lsls r0, 24
- cmp r0, 0
- beq _08025F84
- ldr r1, _08025F7C @ =gUnknown_02024C10
- ldr r0, _08025F80 @ =BattleScript_1D83D6
- str r0, [r1]
-_08025F74:
- movs r0, 0x1
- b _080262A4
- .align 2, 0
-_08025F78: .4byte gUnknown_02024BE6
-_08025F7C: .4byte gUnknown_02024C10
-_08025F80: .4byte BattleScript_1D83D6
-_08025F84:
- ldr r2, _08025FCC @ =gBattleMons
- ldr r1, _08025FD0 @ =gUnknown_02024A60
- ldrb r3, [r1]
- movs r4, 0x58
- adds r0, r3, 0
- muls r0, r4
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- mov r10, r2
- cmp r0, 0x1D
- beq _08025FA0
- cmp r0, 0x49
- bne _08026040
-_08025FA0:
- mov r0, r9
- cmp r0, 0
- bne _08026040
- ldr r0, _08025FD4 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xAE
- beq _08026040
- cmp r5, 0x1
- bne _08025F74
- ldr r4, _08025FD8 @ =gUnknown_02024D68
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _08025FE0
- ldr r0, _08025FDC @ =gUnknown_02024C10
- mov r1, r8
- str r1, [r0]
- b _08025F74
- .align 2, 0
-_08025FCC: .4byte gBattleMons
-_08025FD0: .4byte gUnknown_02024A60
-_08025FD4: .4byte gUnknown_02024BE6
-_08025FD8: .4byte gUnknown_02024D68
-_08025FDC: .4byte gUnknown_02024C10
-_08025FE0:
- mov r0, r8
- bl b_movescr_stack_push
- ldr r0, _08026028 @ =0x02000000
- ldr r2, _0802602C @ =gUnknown_02024A60
- ldrb r1, [r2]
- ldr r3, _08026030 @ =0x00016003
- adds r0, r3
- strb r1, [r0]
- ldr r1, _08026034 @ =gUnknown_02024C10
- ldr r0, _08026038 @ =gUnknown_081D989B
- str r0, [r1]
- ldr r1, _0802603C @ =byte_2024C06
- ldrb r0, [r2]
- movs r6, 0x58
- muls r0, r6
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r2]
- ldrb r1, [r1]
- bl sub_81074C4
- ldr r0, _0802602C @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _08025F74
- .align 2, 0
-_08026028: .4byte 0x02000000
-_0802602C: .4byte gUnknown_02024A60
-_08026030: .4byte 0x00016003
-_08026034: .4byte gUnknown_02024C10
-_08026038: .4byte gUnknown_081D989B
-_0802603C: .4byte byte_2024C06
-_08026040:
- ldr r1, _08026090 @ =gUnknown_02024A60
- ldrb r0, [r1]
- movs r4, 0x58
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x33
- bne _080260A8
- mov r2, r9
- cmp r2, 0
- bne _080260A8
- cmp r7, 0x6
- bne _080260A8
- cmp r5, 0x1
- bne _08025F74
- mov r0, r8
- bl b_movescr_stack_push
- ldr r0, _08026094 @ =0x02000000
- ldr r3, _08026090 @ =gUnknown_02024A60
- ldrb r1, [r3]
- ldr r6, _08026098 @ =0x00016003
- adds r0, r6
- strb r1, [r0]
- ldr r1, _0802609C @ =gUnknown_02024C10
- ldr r0, _080260A0 @ =gUnknown_081D9903
- str r0, [r1]
- ldr r1, _080260A4 @ =byte_2024C06
- ldrb r0, [r3]
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r3]
- ldrb r1, [r1]
- bl sub_81074C4
- b _08025F74
- .align 2, 0
-_08026090: .4byte gUnknown_02024A60
-_08026094: .4byte 0x02000000
-_08026098: .4byte 0x00016003
-_0802609C: .4byte gUnknown_02024C10
-_080260A0: .4byte gUnknown_081D9903
-_080260A4: .4byte byte_2024C06
-_080260A8:
- ldr r1, _080260FC @ =gUnknown_02024A60
- ldrb r0, [r1]
- movs r4, 0x58
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x34
- bne _08026114
- mov r2, r9
- cmp r2, 0
- bne _08026114
- cmp r7, 0x1
- bne _08026114
- cmp r5, 0x1
- beq _080260CA
- b _08025F74
-_080260CA:
- mov r0, r8
- bl b_movescr_stack_push
- ldr r0, _08026100 @ =0x02000000
- ldr r3, _080260FC @ =gUnknown_02024A60
- ldrb r1, [r3]
- ldr r6, _08026104 @ =0x00016003
- adds r0, r6
- strb r1, [r0]
- ldr r1, _08026108 @ =gUnknown_02024C10
- ldr r0, _0802610C @ =gUnknown_081D9903
- str r0, [r1]
- ldr r1, _08026110 @ =byte_2024C06
- ldrb r0, [r3]
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r3]
- ldrb r1, [r1]
- bl sub_81074C4
- b _08025F74
- .align 2, 0
-_080260FC: .4byte gUnknown_02024A60
-_08026100: .4byte 0x02000000
-_08026104: .4byte 0x00016003
-_08026108: .4byte gUnknown_02024C10
-_0802610C: .4byte gUnknown_081D9903
-_08026110: .4byte byte_2024C06
-_08026114:
- ldr r0, _080261A0 @ =gUnknown_02024A60
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x13
- bne _0802612C
- cmp r5, 0
- bne _0802612C
- b _08025F74
-_0802612C:
- lsls r0, r6, 24
- asrs r0, 28
- movs r1, 0x7
- ands r0, r1
- negs r0, r0
- lsls r0, 24
- ldr r3, _080261A4 @ =gUnknown_03004290
- movs r4, 0
- movs r1, 0xFD
- strb r1, [r3]
- movs r2, 0x1
- lsrs r6, r0, 24
- asrs r0, 24
- subs r1, 0xFF
- cmp r0, r1
- bne _08026156
- strb r4, [r3, 0x1]
- movs r0, 0xD3
- strb r0, [r3, 0x2]
- strb r4, [r3, 0x3]
- movs r2, 0x4
-_08026156:
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- movs r0, 0xD4
- strb r0, [r1]
- adds r2, 0x1
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _080261A0 @ =gUnknown_02024A60
- ldrb r2, [r1]
- movs r0, 0x58
- muls r0, r2
- adds r0, r7, r0
- mov r1, r10
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _08026206
- movs r1, 0
- ldr r0, _080261A8 @ =gUnknown_02024C08
- ldrb r0, [r0]
- ldr r3, _080261AC @ =gUnknown_02024D1E
- mov r8, r3
- cmp r0, r2
- bne _0802619A
- movs r1, 0x1
-_0802619A:
- mov r4, r8
- strb r1, [r4, 0x5]
- b _08026234
- .align 2, 0
-_080261A0: .4byte gUnknown_02024A60
-_080261A4: .4byte gUnknown_03004290
-_080261A8: .4byte gUnknown_02024C08
-_080261AC: .4byte gUnknown_02024D1E
-_080261B0:
- asrs r6, r0, 28
- movs r0, 0x7
- ands r6, r0
- ldr r3, _08026210 @ =gUnknown_03004290
- strb r2, [r3]
- movs r2, 0x1
- cmp r6, 0x2
- bne _080261CA
- strb r4, [r3, 0x1]
- movs r0, 0xD1
- strb r0, [r3, 0x2]
- strb r4, [r3, 0x3]
- movs r2, 0x4
-_080261CA:
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- movs r0, 0xD2
- strb r0, [r1]
- adds r2, 0x1
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- ldrb r0, [r1]
- mov r2, r12
- orrs r0, r2
- strb r0, [r1]
- ldr r2, _08026214 @ =gBattleMons
- ldr r4, _08026218 @ =gUnknown_02024A60
- ldrb r3, [r4]
- movs r0, 0x58
- muls r0, r3
- adds r0, r7, r0
- adds r1, r2, 0
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- mov r10, r2
- cmp r0, 0xC
- bne _08026220
-_08026206:
- ldr r1, _0802621C @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- mov r8, r1
- b _08026234
- .align 2, 0
-_08026210: .4byte gUnknown_03004290
-_08026214: .4byte gBattleMons
-_08026218: .4byte gUnknown_02024A60
-_0802621C: .4byte gUnknown_02024D1E
-_08026220:
- movs r1, 0
- ldr r0, _080262B4 @ =gUnknown_02024C08
- ldrb r0, [r0]
- ldr r2, _080262B8 @ =gUnknown_02024D1E
- mov r8, r2
- cmp r0, r3
- bne _08026230
- movs r1, 0x1
-_08026230:
- mov r3, r8
- strb r1, [r3, 0x5]
-_08026234:
- ldr r2, _080262BC @ =gUnknown_02024A60
- ldrb r0, [r2]
- movs r4, 0x58
- adds r1, r0, 0
- muls r1, r4
- adds r1, r7, r1
- mov r3, r10
- adds r3, 0x18
- adds r1, r3
- lsls r0, r6, 24
- asrs r0, 24
- ldrb r6, [r1]
- adds r0, r6
- strb r0, [r1]
- ldrb r0, [r2]
- muls r0, r4
- adds r0, r7, r0
- adds r1, r0, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bge _08026264
- movs r0, 0
- strb r0, [r1]
-_08026264:
- ldr r1, _080262BC @ =gUnknown_02024A60
- ldrb r0, [r1]
- muls r0, r4
- adds r0, r7, r0
- adds r1, r0, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0802627A
- movs r0, 0xC
- strb r0, [r1]
-_0802627A:
- mov r2, r8
- ldrb r0, [r2, 0x5]
- cmp r0, 0x2
- bne _080262A2
- movs r3, 0x1
- ands r3, r5
- cmp r3, 0
- beq _08026294
- ldr r0, _080262C0 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
-_08026294:
- mov r4, r8
- ldrb r0, [r4, 0x5]
- cmp r0, 0x2
- bne _080262A2
- cmp r3, 0
- bne _080262A2
- b _08025F74
-_080262A2:
- movs r0, 0
-_080262A4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080262B4: .4byte gUnknown_02024C08
-_080262B8: .4byte gUnknown_02024D1E
-_080262BC: .4byte gUnknown_02024A60
-_080262C0: .4byte gUnknown_02024C68
- thumb_func_end sub_8025E20
-
- thumb_func_start atk89_statbuffchange
-atk89_statbuffchange: @ 80262C4
- push {r4,r5,lr}
- ldr r5, _0802630C @ =gUnknown_02024C10
- ldr r2, [r5]
- ldrb r3, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r3, r0
- ldr r0, _08026310 @ =0x02000000
- ldr r1, _08026314 @ =0x0001601e
- adds r0, r1
- ldrb r4, [r0]
- movs r0, 0xF0
- ands r0, r4
- lsls r0, 24
- asrs r0, 24
- movs r1, 0xF
- ands r1, r4
- ldrb r2, [r2, 0x1]
- bl sub_8025E20
- lsls r0, 24
- cmp r0, 0
- bne _08026304
- ldr r0, [r5]
- adds r0, 0x6
- str r0, [r5]
-_08026304:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802630C: .4byte gUnknown_02024C10
-_08026310: .4byte 0x02000000
-_08026314: .4byte 0x0001601e
- thumb_func_end atk89_statbuffchange
-
- thumb_func_start atk8A_normalisebuffs
-atk8A_normalisebuffs: @ 8026318
- push {r4-r7,lr}
- movs r2, 0
- ldr r0, _08026360 @ =gUnknown_02024A68
- ldrb r1, [r0]
- ldr r0, _08026364 @ =gUnknown_02024C10
- mov r12, r0
- cmp r2, r1
- bge _08026350
- ldr r0, _08026368 @ =gBattleMons
- movs r4, 0x6
- adds r5, r1, 0
- movs r7, 0x58
- adds r6, r0, 0
- adds r6, 0x18
-_08026334:
- adds r3, r2, 0x1
- movs r1, 0x7
- adds r0, r2, 0
- muls r0, r7
- adds r0, r6
- adds r0, 0x7
-_08026340:
- strb r4, [r0]
- subs r0, 0x1
- subs r1, 0x1
- cmp r1, 0
- bge _08026340
- adds r2, r3, 0
- cmp r2, r5
- blt _08026334
-_08026350:
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08026360: .4byte gUnknown_02024A68
-_08026364: .4byte gUnknown_02024C10
-_08026368: .4byte gBattleMons
- thumb_func_end atk8A_normalisebuffs
-
- thumb_func_start atk8B_setbide
-atk8B_setbide: @ 802636C
- push {r4,r5,lr}
- ldr r4, _080263C4 @ =gBattleMons
- ldr r3, _080263C8 @ =gUnknown_02024C07
- ldrb r0, [r3]
- movs r5, 0x58
- adds r2, r0, 0
- muls r2, r5
- adds r4, 0x50
- adds r2, r4
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r2]
- ldr r1, _080263CC @ =gUnknown_02024C54
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _080263D0 @ =gUnknown_02024BE6
- ldrh r1, [r1]
- movs r2, 0
- strh r1, [r0]
- ldr r1, _080263D4 @ =gUnknown_02024BF4
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- str r2, [r0]
- ldrb r0, [r3]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 2
- orrs r0, r2
- str r0, [r1]
- ldr r1, _080263D8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080263C4: .4byte gBattleMons
-_080263C8: .4byte gUnknown_02024C07
-_080263CC: .4byte gUnknown_02024C54
-_080263D0: .4byte gUnknown_02024BE6
-_080263D4: .4byte gUnknown_02024BF4
-_080263D8: .4byte gUnknown_02024C10
- thumb_func_end atk8B_setbide
-
- thumb_func_start atk8C_confuseifrepeatingattackends
-atk8C_confuseifrepeatingattackends: @ 80263DC
- push {lr}
- ldr r1, _0802640C @ =gBattleMons
- ldr r0, _08026410 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xC0
- lsls r1, 4
- ands r0, r1
- cmp r0, 0
- bne _080263FE
- ldr r1, _08026414 @ =gUnknown_02024D1E
- movs r0, 0x75
- strb r0, [r1, 0x3]
-_080263FE:
- ldr r1, _08026418 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802640C: .4byte gBattleMons
-_08026410: .4byte gUnknown_02024C07
-_08026414: .4byte gUnknown_02024D1E
-_08026418: .4byte gUnknown_02024C10
- thumb_func_end atk8C_confuseifrepeatingattackends
-
- thumb_func_start atk8D_setloopcounter
-atk8D_setloopcounter: @ 802641C
- push {r4,r5,lr}
- ldr r0, _08026430 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r1, [r0, 0x1]
- cmp r1, 0
- beq _08026438
- ldr r0, _08026434 @ =gUnknown_02024C0E
- strb r1, [r0]
- b _08026452
- .align 2, 0
-_08026430: .4byte gUnknown_02024C10
-_08026434: .4byte gUnknown_02024C0E
-_08026438:
- ldr r4, _08026460 @ =gUnknown_02024C0E
- bl Random
- movs r5, 0x3
- ands r0, r5
- strb r0, [r4]
- cmp r0, 0x1
- bls _0802644E
- bl Random
- ands r0, r5
-_0802644E:
- adds r0, 0x2
- strb r0, [r4]
-_08026452:
- ldr r1, _08026464 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08026460: .4byte gUnknown_02024C0E
-_08026464: .4byte gUnknown_02024C10
- thumb_func_end atk8D_setloopcounter
-
- thumb_func_start sub_8026468
-sub_8026468: @ 8026468
- push {r4,lr}
- ldr r1, _080264A8 @ =0x02000000
- ldr r0, _080264AC @ =0x000160e0
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0xFD
- strb r0, [r2]
- ldr r2, _080264B0 @ =0x000160e1
- adds r0, r1, r2
- movs r2, 0x1
- strb r2, [r0]
- ldr r4, _080264B4 @ =0x000160e2
- adds r0, r1, r4
- strb r2, [r0]
- adds r4, 0x1
- adds r0, r1, r4
- strb r2, [r0]
- ldr r2, _080264B8 @ =0x000160e4
- adds r0, r1, r2
- strb r3, [r0]
- adds r4, 0x2
- adds r1, r4
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _080264BC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080264A8: .4byte 0x02000000
-_080264AC: .4byte 0x000160e0
-_080264B0: .4byte 0x000160e1
-_080264B4: .4byte 0x000160e2
-_080264B8: .4byte 0x000160e4
-_080264BC: .4byte gUnknown_02024C10
- thumb_func_end sub_8026468
-
- thumb_func_start sub_80264C0
-sub_80264C0: @ 80264C0
- push {r4-r7,lr}
- ldr r6, _080264F4 @ =gBattleMons
- ldr r7, _080264F8 @ =gUnknown_02024C07
- ldrb r0, [r7]
- movs r5, 0x58
- adds r1, r0, 0
- muls r1, r5
- adds r1, r6
- adds r1, 0x2A
- ldr r4, _080264FC @ =gUnknown_02024C08
- ldrb r3, [r4]
- adds r0, r3, 0
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bcc _0802650C
- ldr r0, _08026500 @ =0x02000000
- ldr r2, _08026504 @ =0x00016064
- adds r1, r3, r2
- adds r1, r0
- ldr r2, _08026508 @ =gUnknown_02024A6A
- lsls r0, r3, 1
- b _08026568
- .align 2, 0
-_080264F4: .4byte gBattleMons
-_080264F8: .4byte gUnknown_02024C07
-_080264FC: .4byte gUnknown_02024C08
-_08026500: .4byte 0x02000000
-_08026504: .4byte 0x00016064
-_08026508: .4byte gUnknown_02024A6A
-_0802650C:
- bl Random
- movs r3, 0xFF
- ands r3, r0
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r2, [r0]
- ldrb r4, [r4]
- adds r0, r4, 0
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r1, [r0]
- adds r2, r1
- adds r0, r3, 0
- muls r0, r2
- asrs r0, 8
- adds r0, 0x1
- lsrs r1, 2
- cmp r0, r1
- bhi _0802655C
- ldr r3, _08026558 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- movs r0, 0
- b _08026576
- .align 2, 0
-_08026558: .4byte gUnknown_02024C10
-_0802655C:
- ldr r0, _0802657C @ =0x02000000
- ldr r2, _08026580 @ =0x00016064
- adds r1, r4, r2
- adds r1, r0
- ldr r2, _08026584 @ =gUnknown_02024A6A
- lsls r0, r4, 1
-_08026568:
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r1, _08026588 @ =gUnknown_02024C10
- ldr r0, _0802658C @ =gUnknown_081D90FC
- str r0, [r1]
- movs r0, 0x1
-_08026576:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0802657C: .4byte 0x02000000
-_08026580: .4byte 0x00016064
-_08026584: .4byte gUnknown_02024A6A
-_08026588: .4byte gUnknown_02024C10
-_0802658C: .4byte gUnknown_081D90FC
- thumb_func_end sub_80264C0
-
- thumb_func_start sub_8026590
-sub_8026590: @ 8026590
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _08026628 @ =gUnknown_020239F8
- ldrh r1, [r4]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _080265A4
- b _0802687C
-_080265A4:
- ldr r5, _0802662C @ =gUnknown_02024C08
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- ldr r1, _08026630 @ =gEnemyParty
- mov r8, r1
- cmp r0, 0
- bne _080265BA
- ldr r2, _08026634 @ =gPlayerParty
- mov r8, r2
-_080265BA:
- ldrh r1, [r4]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08026638
- movs r7, 0
- movs r6, 0
- ldrb r0, [r5]
- bl sub_803FC34
- lsls r0, 24
- lsrs r0, 24
- bl sub_803FBFC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _080265E0
- movs r6, 0x3
-_080265E0:
- adds r5, r6, 0
- adds r0, r5, 0x3
- cmp r5, r0
- bge _08026678
-_080265E8:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802661A
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0802661A
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802661A
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_0802661A:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r6, 0x3
- cmp r5, r0
- blt _080265E8
- b _08026678
- .align 2, 0
-_08026628: .4byte gUnknown_020239F8
-_0802662C: .4byte gUnknown_02024C08
-_08026630: .4byte gEnemyParty
-_08026634: .4byte gPlayerParty
-_08026638:
- movs r7, 0
- movs r5, 0
-_0802663C:
- movs r0, 0x64
- muls r0, r5
- mov r2, r8
- adds r4, r2, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802666E
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0802666E
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802666E
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_0802666E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0802663C
-_08026678:
- cmp r7, 0x1
- bhi _08026688
- ldr r0, _080266BC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x41
- ands r0, r1
- cmp r0, 0x1
- bne _080266A0
-_08026688:
- cmp r7, 0x2
- bhi _080266C4
- ldr r0, _080266BC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080266C4
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080266C4
-_080266A0:
- ldr r3, _080266C0 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08026880
- .align 2, 0
-_080266BC: .4byte gUnknown_020239F8
-_080266C0: .4byte gUnknown_02024C10
-_080266C4:
- bl sub_80264C0
- lsls r0, 24
- cmp r0, 0
- bne _080266D0
- b _08026880
-_080266D0:
- ldr r0, _08026710 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08026774
-_080266DC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08026714 @ =gUnknown_02024C08
- ldrb r0, [r0]
- bl sub_803FC34
- lsls r0, 24
- lsrs r0, 24
- bl sub_803FBFC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _08026718
- adds r0, r6, 0x3
- lsls r0, 24
- lsrs r5, r0, 24
- b _0802671A
- .align 2, 0
-_08026710: .4byte gUnknown_020239F8
-_08026714: .4byte gUnknown_02024C08
-_08026718:
- adds r5, r6, 0
-_0802671A:
- ldr r4, _0802676C @ =gUnknown_02024A6A
- ldr r0, _08026770 @ =gUnknown_02024C08
- ldrb r2, [r0]
- lsls r1, r2, 1
- adds r1, r4
- lsls r0, r5, 16
- lsrs r3, r0, 16
- ldrh r1, [r1]
- cmp r3, r1
- beq _080266DC
- movs r0, 0x2
- eors r2, r0
- lsls r0, r2, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r3, r0
- beq _080266DC
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080266DC
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _080266DC
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080266DC
- b _08026832
- .align 2, 0
-_0802676C: .4byte gUnknown_02024A6A
-_08026770: .4byte gUnknown_02024C08
-_08026774:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080267E4
- ldr r6, _080267DC @ =gUnknown_02024A6A
-_0802677E:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080267E0 @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r6
- adds r2, r5, 0
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802677E
- movs r0, 0x2
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r6
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802677E
- movs r0, 0x64
- muls r0, r5
- mov r2, r8
- adds r4, r2, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802677E
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _0802677E
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802677E
- b _08026832
- .align 2, 0
-_080267DC: .4byte gUnknown_02024A6A
-_080267E0: .4byte gUnknown_02024C08
-_080267E4:
- ldr r6, _0802686C @ =gUnknown_02024A6A
-_080267E6:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08026870 @ =gUnknown_02024C08
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- cmp r5, r0
- beq _080267E6
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080267E6
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _080267E6
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080267E6
-_08026832:
- ldr r0, _08026874 @ =0x02000000
- ldr r4, _08026870 @ =gUnknown_02024C08
- ldrb r1, [r4]
- ldr r2, _08026878 @ =0x00016068
- adds r1, r2
- adds r1, r0
- strb r5, [r1]
- bl sub_806B528
- lsls r0, 24
- cmp r0, 0
- bne _08026850
- ldrb r0, [r4]
- bl sub_8012258
-_08026850:
- ldrb r0, [r4]
- adds r1, r5, 0
- movs r2, 0
- bl sub_8094B6C
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_8094B6C
- b _08026880
- .align 2, 0
-_0802686C: .4byte gUnknown_02024A6A
-_08026870: .4byte gUnknown_02024C08
-_08026874: .4byte 0x02000000
-_08026878: .4byte 0x00016068
-_0802687C:
- bl sub_80264C0
-_08026880:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8026590
-
- thumb_func_start sub_802688C
-sub_802688C: @ 802688C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- ldr r2, _08026920 @ =gBattleMons
- ldr r3, _08026924 @ =gUnknown_02024C07
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r1, r2, 0
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- mov r8, r2
- cmp r0, 0
- beq _080268CE
- movs r5, 0x58
- adds r2, r1, 0
-_080268B4:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bhi _080268CE
- lsls r1, r6, 1
- ldrb r0, [r3]
- muls r0, r5
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- cmp r0, 0
- bne _080268B4
-_080268CE:
- movs r3, 0
- cmp r3, r6
- bcs _08026950
- ldr r0, _08026928 @ =gBattleMoves
- mov r10, r0
- ldr r5, _08026920 @ =gBattleMons
- mov r12, r5
- ldr r7, _08026924 @ =gUnknown_02024C07
- ldrb r0, [r7]
- movs r4, 0x58
- adds r5, r0, 0
- muls r5, r4
- movs r0, 0xC
- add r0, r12
- mov r9, r0
-_080268EC:
- lsls r0, r3, 1
- adds r0, r5
- add r0, r9
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r10
- ldrb r2, [r0, 0x2]
- cmp r2, 0x9
- bne _0802692E
- mov r0, r8
- adds r1, r5, r0
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _0802691A
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _0802692C
-_0802691A:
- movs r2, 0x7
- b _0802692E
- .align 2, 0
-_08026920: .4byte gBattleMons
-_08026924: .4byte gUnknown_02024C07
-_08026928: .4byte gBattleMoves
-_0802692C:
- movs r2, 0
-_0802692E:
- ldrb r0, [r7]
- muls r0, r4
- add r0, r12
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r2, r1
- beq _08026946
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r2, r0
- bne _08026950
-_08026946:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r6
- bcc _080268EC
-_08026950:
- cmp r3, r6
- bne _08026974
- ldr r3, _08026970 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08026A18
- .align 2, 0
-_08026970: .4byte gUnknown_02024C10
-_08026974:
- movs r7, 0x3
- ldr r5, _080269CC @ =gBattleMoves
- mov r9, r5
-_0802697A:
- bl Random
- adds r3, r0, 0
- ands r3, r7
- cmp r3, r6
- bcs _0802697A
- ldr r4, _080269D0 @ =gBattleMons
- lsls r1, r3, 1
- ldr r3, _080269D4 @ =gUnknown_02024C07
- ldrb r2, [r3]
- movs r0, 0x58
- adds r5, r2, 0
- muls r5, r0
- adds r1, r5
- adds r0, r4, 0
- adds r0, 0xC
- adds r1, r0
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r2, [r0, 0x2]
- mov r8, r4
- adds r4, r3, 0
- cmp r2, 0x9
- bne _080269DA
- mov r0, r8
- adds r2, r5, r0
- adds r0, r2, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _080269C8
- adds r0, r2, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _080269D8
-_080269C8:
- movs r2, 0x7
- b _080269DA
- .align 2, 0
-_080269CC: .4byte gBattleMoves
-_080269D0: .4byte gBattleMons
-_080269D4: .4byte gUnknown_02024C07
-_080269D8:
- movs r2, 0
-_080269DA:
- ldrb r0, [r4]
- movs r3, 0x58
- muls r0, r3
- add r0, r8
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r5, [r1]
- cmp r2, r5
- beq _0802697A
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r2, r0
- beq _0802697A
- strb r2, [r1]
- ldrb r0, [r4]
- muls r0, r3
- add r0, r8
- adds r0, 0x22
- strb r2, [r0]
- ldr r1, _08026A28 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, _08026A2C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08026A18:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08026A28: .4byte gUnknown_030041C0
-_08026A2C: .4byte gUnknown_02024C10
- thumb_func_end sub_802688C
-
- thumb_func_start atk91_givemoney
-atk91_givemoney: @ 8026A30
- push {r4,lr}
- ldr r0, _08026A8C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08026AAC
- ldr r4, _08026A90 @ =gUnknown_02024D1A
- ldrh r0, [r4]
- cmp r0, 0
- beq _08026AAC
- ldr r0, _08026A94 @ =gSaveBlock1 + 0x490
- ldrh r2, [r4]
- ldr r1, _08026A98 @ =0x02000000
- ldr r3, _08026A9C @ =0x00016056
- adds r1, r3
- ldrb r1, [r1]
- muls r1, r2
- bl sub_80B79B8
- ldr r1, _08026AA0 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0x5
- strb r0, [r1, 0x3]
- ldrh r2, [r4]
- strb r2, [r1, 0x4]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r2
- lsrs r0, 8
- strb r0, [r1, 0x5]
- movs r0, 0xFF
- strb r0, [r1, 0x6]
- ldr r4, _08026AA4 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _08026AA8 @ =gUnknown_081D95DB
- str r0, [r4]
- b _08026AB4
- .align 2, 0
-_08026A8C: .4byte gUnknown_020239F8
-_08026A90: .4byte gUnknown_02024D1A
-_08026A94: .4byte gSaveBlock1 + 0x490
-_08026A98: .4byte 0x02000000
-_08026A9C: .4byte 0x00016056
-_08026AA0: .4byte gUnknown_030041C0
-_08026AA4: .4byte gUnknown_02024C10
-_08026AA8: .4byte gUnknown_081D95DB
-_08026AAC:
- ldr r1, _08026ABC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08026AB4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08026ABC: .4byte gUnknown_02024C10
- thumb_func_end atk91_givemoney
-
- thumb_func_start atk92_setlightscreen
-atk92_setlightscreen: @ 8026AC0
- push {r4-r6,lr}
- ldr r4, _08026AF0 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_get_per_side_status
- ldr r6, _08026AF4 @ =gUnknown_02024C7A
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08026B00
- ldr r2, _08026AF8 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08026AFC @ =gUnknown_02024D1E
- movs r0, 0
- b _08026B60
- .align 2, 0
-_08026AF0: .4byte gUnknown_02024C07
-_08026AF4: .4byte gUnknown_02024C7A
-_08026AF8: .4byte gUnknown_02024C68
-_08026AFC: .4byte gUnknown_02024D1E
-_08026B00:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r4]
- bl battle_get_per_side_status
- ldr r2, _08026B50 @ =gUnknown_02024C80
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strb r1, [r0, 0x1]
- ldr r0, _08026B54 @ =gUnknown_020239F8
- ldrh r1, [r0]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08026B5C
- movs r0, 0x1
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08026B5C
- ldr r1, _08026B58 @ =gUnknown_02024D1E
- movs r0, 0x4
- b _08026B60
- .align 2, 0
-_08026B50: .4byte gUnknown_02024C80
-_08026B54: .4byte gUnknown_020239F8
-_08026B58: .4byte gUnknown_02024D1E
-_08026B5C:
- ldr r1, _08026B70 @ =gUnknown_02024D1E
- movs r0, 0x3
-_08026B60:
- strb r0, [r1, 0x5]
- ldr r1, _08026B74 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08026B70: .4byte gUnknown_02024D1E
-_08026B74: .4byte gUnknown_02024C10
- thumb_func_end atk92_setlightscreen
-
- thumb_func_start sub_8026B78
-sub_8026B78: @ 8026B78
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r7, _08026BA8 @ =gBattleMons
- ldr r6, _08026BAC @ =gUnknown_02024C08
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08026BB4
- ldr r1, _08026BB0 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _08026BCE
- .align 2, 0
-_08026BA8: .4byte gBattleMons
-_08026BAC: .4byte gUnknown_02024C08
-_08026BB0: .4byte gEnigmaBerries
-_08026BB4:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_08026BCE:
- ldr r1, _08026C4C @ =gUnknown_02024C0B
- ldr r5, _08026C50 @ =gUnknown_02024C08
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _08026C0C
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _08026C0C
- ldrb r0, [r5]
- movs r1, 0x27
- bl sub_81074F8
- ldr r2, _08026C54 @ =gUnknown_02024D68
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_08026C0C:
- ldr r0, _08026C58 @ =gBattleMons
- mov r8, r0
- ldr r1, _08026C50 @ =gUnknown_02024C08
- ldrb r2, [r1]
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- mov r3, r8
- adds r5, r0, r3
- adds r0, r5, 0
- adds r0, 0x20
- ldrb r3, [r0]
- mov r10, r8
- cmp r3, 0x5
- bne _08026C6C
- ldr r2, _08026C5C @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08026C60 @ =byte_2024C06
- strb r3, [r0]
- ldr r1, _08026C64 @ =gUnknown_02024C10
- ldr r0, _08026C68 @ =gUnknown_081D9826
- str r0, [r1]
- ldr r1, _08026C50 @ =gUnknown_02024C08
- ldrb r0, [r1]
- movs r1, 0x5
- bl sub_81074C4
- b _08026E40
- .align 2, 0
-_08026C4C: .4byte gUnknown_02024C0B
-_08026C50: .4byte gUnknown_02024C08
-_08026C54: .4byte gUnknown_02024D68
-_08026C58: .4byte gBattleMons
-_08026C5C: .4byte gUnknown_02024C68
-_08026C60: .4byte byte_2024C06
-_08026C64: .4byte gUnknown_02024C10
-_08026C68: .4byte gUnknown_081D9826
-_08026C6C:
- ldr r1, _08026CE0 @ =gUnknown_02024C98
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x18
- ands r0, r1
- cmp r0, 0
- bne _08026CF4
- ldr r1, _08026CE4 @ =gBattleMoves
- ldr r0, _08026CE8 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldr r7, _08026CEC @ =gUnknown_02024C07
- ldrb r0, [r7]
- muls r0, r6
- add r0, r10
- adds r0, 0x2A
- ldrb r0, [r0]
- adds r1, r5, 0
- adds r1, 0x2A
- ldrb r1, [r1]
- subs r0, r1
- ldrb r2, [r2, 0x3]
- adds r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r0, 0x1
- cmp r0, r4
- bge _08026CDC
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- add r1, r10
- adds r1, 0x2A
- ldr r2, _08026CF0 @ =gUnknown_02024C08
- ldrb r0, [r2]
- muls r0, r6
- add r0, r10
- adds r0, 0x2A
- ldrb r1, [r1]
- movs r4, 0x1
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08026D20
-_08026CDC:
- mov r10, r8
- b _08026DE0
- .align 2, 0
-_08026CE0: .4byte gUnknown_02024C98
-_08026CE4: .4byte gBattleMoves
-_08026CE8: .4byte gUnknown_02024BE6
-_08026CEC: .4byte gUnknown_02024C07
-_08026CF0: .4byte gUnknown_02024C08
-_08026CF4:
- ldr r0, _08026D4C @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldr r2, _08026D50 @ =gUnknown_02024C07
- ldrb r0, [r1, 0x15]
- movs r4, 0
- ldrb r3, [r2]
- cmp r0, r3
- bne _08026D20
- ldrb r0, [r2]
- muls r0, r6
- add r0, r10
- adds r0, 0x2A
- adds r1, r5, 0
- adds r1, 0x2A
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08026D20
- movs r4, 0x1
-_08026D20:
- cmp r4, 0
- beq _08026DE0
- ldr r0, _08026D54 @ =gUnknown_02024D28
- ldr r1, _08026D58 @ =gUnknown_02024C08
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 30
- cmp r0, 0
- bge _08026D64
- ldr r1, _08026D5C @ =gUnknown_02024BEC
- movs r0, 0x58
- muls r0, r2
- add r0, r10
- ldrh r0, [r0, 0x28]
- subs r0, 0x1
- str r0, [r1]
- ldr r2, _08026D60 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x40
- b _08026DC6
- .align 2, 0
-_08026D4C: .4byte gUnknown_02024CA8
-_08026D50: .4byte gUnknown_02024C07
-_08026D54: .4byte gUnknown_02024D28
-_08026D58: .4byte gUnknown_02024C08
-_08026D5C: .4byte gUnknown_02024BEC
-_08026D60: .4byte gUnknown_02024C68
-_08026D64:
- ldr r0, _08026DA0 @ =gUnknown_02024D68
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _08026DB4
- ldr r1, _08026DA4 @ =gUnknown_02024BEC
- movs r3, 0x58
- adds r0, r2, 0
- muls r0, r3
- add r0, r10
- ldrh r0, [r0, 0x28]
- subs r0, 0x1
- str r0, [r1]
- ldr r2, _08026DA8 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08026DAC @ =gUnknown_02024C04
- ldr r2, _08026DB0 @ =gUnknown_02024C08
- ldrb r0, [r2]
- muls r0, r3
- add r0, r10
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
- b _08026DCA
- .align 2, 0
-_08026DA0: .4byte gUnknown_02024D68
-_08026DA4: .4byte gUnknown_02024BEC
-_08026DA8: .4byte gUnknown_02024C68
-_08026DAC: .4byte gUnknown_02024C04
-_08026DB0: .4byte gUnknown_02024C08
-_08026DB4:
- ldr r1, _08026DD4 @ =gUnknown_02024BEC
- movs r0, 0x58
- muls r0, r2
- add r0, r10
- ldrh r0, [r0, 0x28]
- str r0, [r1]
- ldr r2, _08026DD8 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x10
-_08026DC6:
- orrs r0, r1
- strb r0, [r2]
-_08026DCA:
- ldr r1, _08026DDC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08026E40
- .align 2, 0
-_08026DD4: .4byte gUnknown_02024BEC
-_08026DD8: .4byte gUnknown_02024C68
-_08026DDC: .4byte gUnknown_02024C10
-_08026DE0:
- ldr r2, _08026E10 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08026E14 @ =gUnknown_02024C07
- ldrb r0, [r0]
- movs r2, 0x58
- adds r1, r0, 0
- muls r1, r2
- add r1, r10
- adds r1, 0x2A
- ldr r3, _08026E18 @ =gUnknown_02024C08
- ldrb r0, [r3]
- muls r0, r2
- add r0, r10
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bcc _08026E20
- ldr r1, _08026E1C @ =gUnknown_02024D1E
- movs r0, 0
- b _08026E24
- .align 2, 0
-_08026E10: .4byte gUnknown_02024C68
-_08026E14: .4byte gUnknown_02024C07
-_08026E18: .4byte gUnknown_02024C08
-_08026E1C: .4byte gUnknown_02024D1E
-_08026E20:
- ldr r1, _08026E50 @ =gUnknown_02024D1E
- movs r0, 0x1
-_08026E24:
- strb r0, [r1, 0x5]
- ldr r3, _08026E54 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08026E40:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08026E50: .4byte gUnknown_02024D1E
-_08026E54: .4byte gUnknown_02024C10
- thumb_func_end sub_8026B78
-
- thumb_func_start atk94_gethalfcurrentenemyhp
-atk94_gethalfcurrentenemyhp: @ 8026E58
- push {lr}
- ldr r3, _08026E84 @ =gUnknown_02024BEC
- ldr r2, _08026E88 @ =gBattleMons
- ldr r0, _08026E8C @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- lsrs r0, 1
- str r0, [r3]
- cmp r0, 0
- bne _08026E76
- movs r0, 0x1
- str r0, [r3]
-_08026E76:
- ldr r1, _08026E90 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08026E84: .4byte gUnknown_02024BEC
-_08026E88: .4byte gBattleMons
-_08026E8C: .4byte gUnknown_02024C08
-_08026E90: .4byte gUnknown_02024C10
- thumb_func_end atk94_gethalfcurrentenemyhp
-
- thumb_func_start sub_8026E94
-sub_8026E94: @ 8026E94
- push {lr}
- ldr r2, _08026EB4 @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _08026EC0
- ldr r2, _08026EB8 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08026EBC @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _08026ED2
- .align 2, 0
-_08026EB4: .4byte word_2024DB8
-_08026EB8: .4byte gUnknown_02024C68
-_08026EBC: .4byte gUnknown_02024D1E
-_08026EC0:
- movs r0, 0x8
- strh r0, [r2]
- ldr r1, _08026EE0 @ =gUnknown_02024D1E
- movs r0, 0x3
- strb r0, [r1, 0x5]
- ldr r0, _08026EE4 @ =gUnknown_02024DBC
- adds r0, 0x28
- movs r1, 0x5
- strb r1, [r0]
-_08026ED2:
- ldr r1, _08026EE8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08026EE0: .4byte gUnknown_02024D1E
-_08026EE4: .4byte gUnknown_02024DBC
-_08026EE8: .4byte gUnknown_02024C10
- thumb_func_end sub_8026E94
-
- thumb_func_start sub_8026EEC
-sub_8026EEC: @ 8026EEC
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08026F0A
- b _0802701C
-_08026F0A:
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08026F20
- b _0802701C
-_08026F20:
- ldr r2, _08026F94 @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x18
- ands r0, r1
- adds r4, r2, 0
- ldr r5, _08026F98 @ =gUnknown_02024C07
- cmp r0, 0
- beq _08026FAE
- ldr r0, _08026F9C @ =gBattleMons
- ldrb r2, [r5]
- movs r1, 0x58
- muls r1, r2
- adds r3, r1, r0
- adds r0, r3, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x5
- beq _08026FA8
- cmp r0, 0x8
- beq _08026FA8
- cmp r0, 0x4
- beq _08026FA8
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x5
- beq _08026FA8
- cmp r0, 0x8
- beq _08026FA8
- cmp r0, 0x4
- beq _08026FA8
- adds r0, r3, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x8
- beq _08026FA8
- ldr r0, _08026FA0 @ =gUnknown_02024C98
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08026FA8
- movs r0, 0x80
- lsls r0, 11
- ands r1, r0
- cmp r1, 0
- bne _08026FA8
- ldr r1, _08026FA4 @ =gUnknown_02024BEC
- ldrh r0, [r3, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _08026FAE
- movs r0, 0x1
- b _08026FAC
- .align 2, 0
-_08026F94: .4byte word_2024DB8
-_08026F98: .4byte gUnknown_02024C07
-_08026F9C: .4byte gBattleMons
-_08026FA0: .4byte gUnknown_02024C98
-_08026FA4: .4byte gUnknown_02024BEC
-_08026FA8:
- ldr r1, _08027004 @ =gUnknown_02024BEC
- movs r0, 0
-_08026FAC:
- str r0, [r1]
-_08026FAE:
- ldrh r1, [r4]
- movs r4, 0x80
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08027024
- ldr r1, _08027008 @ =gBattleMons
- ldrb r3, [r5]
- movs r0, 0x58
- muls r0, r3
- adds r2, r0, r1
- adds r0, r2, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xF
- beq _08027010
- adds r0, r2, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xF
- beq _08027010
- ldr r0, _0802700C @ =gUnknown_02024C98
- lsls r1, r3, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r1, 0
- ands r0, r4
- cmp r0, 0
- bne _08027010
- movs r0, 0x80
- lsls r0, 11
- ands r1, r0
- cmp r1, 0
- bne _08027010
- ldr r1, _08027004 @ =gUnknown_02024BEC
- ldrh r0, [r2, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _08027024
- movs r0, 0x1
- str r0, [r1]
- b _08027024
- .align 2, 0
-_08027004: .4byte gUnknown_02024BEC
-_08027008: .4byte gBattleMons
-_0802700C: .4byte gUnknown_02024C98
-_08027010:
- ldr r1, _08027018 @ =gUnknown_02024BEC
- movs r0, 0
- str r0, [r1]
- b _08027024
- .align 2, 0
-_08027018: .4byte gUnknown_02024BEC
-_0802701C:
- ldr r1, _08027050 @ =gUnknown_02024BEC
- movs r0, 0
- str r0, [r1]
- ldr r5, _08027054 @ =gUnknown_02024C07
-_08027024:
- ldr r0, _08027058 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _0802705C @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0802703E
- ldr r1, _08027050 @ =gUnknown_02024BEC
- movs r0, 0
- str r0, [r1]
-_0802703E:
- ldr r1, _08027060 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08027050: .4byte gUnknown_02024BEC
-_08027054: .4byte gUnknown_02024C07
-_08027058: .4byte gUnknown_02024C0C
-_0802705C: .4byte gBitTable
-_08027060: .4byte gUnknown_02024C10
- thumb_func_end sub_8026EEC
-
- thumb_func_start sub_8027064
-sub_8027064: @ 8027064
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _08027090 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0802709C
- ldr r1, _08027094 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08027098 @ =gPlayerParty
- b _080270AC
- .align 2, 0
-_08027090: .4byte gUnknown_02024C07
-_08027094: .4byte gUnknown_02024A6A
-_08027098: .4byte gPlayerParty
-_0802709C:
- ldr r1, _080270D0 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080270D4 @ =gEnemyParty
-_080270AC:
- adds r5, r1, r0
- ldr r4, _080270D8 @ =gUnknown_02024C08
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080270E0
- ldr r1, _080270D0 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080270DC @ =gPlayerParty
- b _080270F0
- .align 2, 0
-_080270D0: .4byte gUnknown_02024A6A
-_080270D4: .4byte gEnemyParty
-_080270D8: .4byte gUnknown_02024C08
-_080270DC: .4byte gPlayerParty
-_080270E0:
- ldr r1, _0802714C @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08027150 @ =gEnemyParty
-_080270F0:
- adds r4, r1, r0
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- adds r0, r5, 0
- movs r1, 0
- bl GetMonData
- mov r9, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r7, r0, 0
- ldr r5, _08027154 @ =gUnknown_02024C08
- ldrb r0, [r5]
- movs r6, 0x58
- muls r0, r6
- ldr r1, _08027158 @ =gBattleMons
- adds r0, r1
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0xC
- bne _08027168
- ldr r1, _0802715C @ =gUnknown_02024C10
- ldr r0, _08027160 @ =gUnknown_081D98C9
- str r0, [r1]
- ldr r0, _08027164 @ =byte_2024C06
- strb r2, [r0]
- ldrb r0, [r5]
- movs r1, 0xC
- bl sub_81074C4
- b _0802721C
- .align 2, 0
-_0802714C: .4byte gUnknown_02024A6A
-_08027150: .4byte gEnemyParty
-_08027154: .4byte gUnknown_02024C08
-_08027158: .4byte gBattleMons
-_0802715C: .4byte gUnknown_02024C10
-_08027160: .4byte gUnknown_081D98C9
-_08027164: .4byte byte_2024C06
-_08027168:
- mov r0, r10
- mov r1, r9
- bl GetGenderFromSpeciesAndPersonality
- adds r4, r0, 0
- mov r0, r8
- adds r1, r7, 0
- bl GetGenderFromSpeciesAndPersonality
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080271CA
- ldr r1, _080271E8 @ =gUnknown_02024C98
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080271EC @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _080271CA
- adds r0, r2, 0
- muls r0, r6
- ldr r4, _080271F0 @ =gBattleMons
- adds r4, 0x50
- adds r0, r4
- ldr r0, [r0]
- movs r1, 0xF0
- lsls r1, 12
- ands r0, r1
- cmp r0, 0
- bne _080271CA
- mov r0, r10
- mov r1, r9
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080271CA
- mov r0, r8
- adds r1, r7, 0
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080271F8
-_080271CA:
- ldr r3, _080271F4 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802721C
- .align 2, 0
-_080271E8: .4byte gUnknown_02024C98
-_080271EC: .4byte 0x000400c0
-_080271F0: .4byte gBattleMons
-_080271F4: .4byte gUnknown_02024C10
-_080271F8:
- ldrb r0, [r5]
- adds r2, r0, 0
- muls r2, r6
- adds r2, r4
- ldr r1, _0802722C @ =gBitTable
- ldr r0, _08027230 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 16
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08027234 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802721C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802722C: .4byte gBitTable
-_08027230: .4byte gUnknown_02024C07
-_08027234: .4byte gUnknown_02024C10
- thumb_func_end sub_8027064
-
- thumb_func_start sub_8027238
-sub_8027238: @ 8027238
- push {r4-r7,lr}
- ldr r0, _08027280 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08027324
- ldr r5, _08027284 @ =gUnknown_02024C10
- ldr r1, [r5]
- ldrb r0, [r1, 0x1]
- cmp r0, 0x4
- beq _08027290
- bl sub_8015150
- ldr r4, _08027288 @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r3, _0802728C @ =gBattleMons
- ldrb r1, [r4]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r1, [r0]
- adds r3, 0x50
- adds r2, r3
- ldr r2, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x1A_aaaa_bbbb
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- b _08027324
- .align 2, 0
-_08027280: .4byte gUnknown_02024A64
-_08027284: .4byte gUnknown_02024C10
-_08027288: .4byte gUnknown_02024A60
-_0802728C: .4byte gBattleMons
-_08027290:
- ldr r4, _0802732C @ =gUnknown_02024A60
- ldr r5, _08027330 @ =gUnknown_02024C07
- ldrb r0, [r5]
- strb r0, [r4]
- ldr r6, _08027334 @ =gUnknown_02024C0C
- ldrb r1, [r6]
- ldr r7, _08027338 @ =gBitTable
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r7
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080272CC
- ldr r3, _0802733C @ =gBattleMons
- movs r0, 0x58
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r1, [r0]
- adds r3, 0x50
- adds r2, r3
- ldr r2, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x1A_aaaa_bbbb
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080272CC:
- ldr r0, _08027340 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802731C
- ldrb r0, [r5]
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- strb r0, [r4]
- ldrb r1, [r6]
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r7
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802731C
- ldr r3, _0802733C @ =gBattleMons
- movs r0, 0x58
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r1, [r0]
- adds r3, 0x50
- adds r2, r3
- ldr r2, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x1A_aaaa_bbbb
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_0802731C:
- ldr r1, _08027344 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08027324:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802732C: .4byte gUnknown_02024A60
-_08027330: .4byte gUnknown_02024C07
-_08027334: .4byte gUnknown_02024C0C
-_08027338: .4byte gBitTable
-_0802733C: .4byte gBattleMons
-_08027340: .4byte gUnknown_020239F8
-_08027344: .4byte gUnknown_02024C10
- thumb_func_end sub_8027238
-
- thumb_func_start sub_8027348
-sub_8027348: @ 8027348
- push {r4-r6,lr}
- ldr r6, _08027378 @ =gUnknown_02024C80
- ldr r4, _0802737C @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_get_per_side_status
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- beq _08027388
- ldr r2, _08027380 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08027384 @ =gUnknown_02024D1E
- strb r5, [r0, 0x5]
- b _080273C0
- .align 2, 0
-_08027378: .4byte gUnknown_02024C80
-_0802737C: .4byte gUnknown_02024C07
-_08027380: .4byte gUnknown_02024C68
-_08027384: .4byte gUnknown_02024D1E
-_08027388:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5
- strb r1, [r0, 0x2]
- ldrb r0, [r4]
- bl battle_get_per_side_status
- ldr r2, _080273D0 @ =gUnknown_02024C7A
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3, 0
- movs r3, 0
- orrs r0, r2
- strh r0, [r1]
- ldr r0, _080273D4 @ =gUnknown_02024D1E
- strb r3, [r0, 0x5]
-_080273C0:
- ldr r1, _080273D8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080273D0: .4byte gUnknown_02024C7A
-_080273D4: .4byte gUnknown_02024D1E
-_080273D8: .4byte gUnknown_02024C10
- thumb_func_end sub_8027348
-
- thumb_func_start atk9A_setincreasedcriticalchance
-atk9A_setincreasedcriticalchance: @ 80273DC
- push {lr}
- ldr r1, _0802740C @ =gBattleMons
- ldr r0, _08027410 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r3, 0x80
- lsls r3, 13
- adds r2, r1, 0
- ands r2, r3
- cmp r2, 0
- beq _0802741C
- ldr r2, _08027414 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08027418 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08027424
- .align 2, 0
-_0802740C: .4byte gBattleMons
-_08027410: .4byte gUnknown_02024C07
-_08027414: .4byte gUnknown_02024C68
-_08027418: .4byte gUnknown_02024D1E
-_0802741C:
- orrs r1, r3
- str r1, [r0]
- ldr r0, _08027430 @ =gUnknown_02024D1E
- strb r2, [r0, 0x5]
-_08027424:
- ldr r1, _08027434 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08027430: .4byte gUnknown_02024D1E
-_08027434: .4byte gUnknown_02024C10
- thumb_func_end atk9A_setincreasedcriticalchance
-
- thumb_func_start atk9B_transformdataexecution
-atk9B_transformdataexecution: @ 8027438
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r1, _08027490 @ =gUnknown_02024BE8
- ldr r2, _08027494 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08027498 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r7, _0802749C @ =gBattleMons
- ldr r0, _080274A0 @ =gUnknown_02024C08
- mov r12, r0
- ldrb r1, [r0]
- movs r6, 0x58
- adds r0, r1, 0
- muls r0, r6
- adds r5, r7, 0
- adds r5, 0x50
- adds r0, r5
- ldr r0, [r0]
- movs r4, 0x80
- lsls r4, 14
- ands r0, r4
- cmp r0, 0
- bne _0802747E
- ldr r0, _080274A4 @ =gUnknown_02024C98
- lsls r1, 2
- adds r1, r0
- ldr r2, [r1]
- ldr r0, _080274A8 @ =0x000400c0
- ands r2, r0
- cmp r2, 0
- beq _080274B4
-_0802747E:
- ldr r2, _080274AC @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080274B0 @ =gUnknown_02024D1E
- movs r0, 0x1
- b _080275C8
- .align 2, 0
-_08027490: .4byte gUnknown_02024BE8
-_08027494: .4byte 0x0000ffff
-_08027498: .4byte gUnknown_02024C10
-_0802749C: .4byte gBattleMons
-_080274A0: .4byte gUnknown_02024C08
-_080274A4: .4byte gUnknown_02024C98
-_080274A8: .4byte 0x000400c0
-_080274AC: .4byte gUnknown_02024C68
-_080274B0: .4byte gUnknown_02024D1E
-_080274B4:
- ldr r3, _08027588 @ =gUnknown_02024C07
- ldrb r0, [r3]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- ldr r0, [r1]
- orrs r0, r4
- str r0, [r1]
- ldr r4, _0802758C @ =gUnknown_02024CA8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x4]
- ldrb r0, [r3]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0xB]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xB]
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- mov r2, r12
- ldrb r1, [r2]
- muls r1, r6
- adds r2, r7, 0
- adds r2, 0x48
- adds r1, r2
- ldr r1, [r1]
- str r1, [r0]
- ldrb r0, [r3]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x18]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1, 0x18]
- ldr r1, _08027590 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x6
- strb r0, [r1, 0x1]
- mov r2, r12
- ldrb r0, [r2]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r2]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldrb r0, [r3]
- muls r0, r6
- adds r5, r0, r7
- ldrb r0, [r2]
- muls r0, r6
- adds r2, r0, r7
- movs r4, 0
- adds r6, r3, 0
- ldr r0, _08027594 @ =gUnknown_02024A60
- mov r8, r0
-_0802754C:
- adds r0, r5, r4
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x23
- bls _0802754C
- movs r4, 0
- ldr r7, _08027598 @ =gBattleMoves
- ldr r3, _0802759C @ =gUnknown_02024A8C
- adds r5, r3, 0
- adds r5, 0x18
-_08027564:
- lsls r1, r4, 1
- ldrb r2, [r6]
- movs r0, 0x58
- muls r2, r0
- adds r1, r2
- adds r1, r3
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r1, [r0, 0x4]
- cmp r1, 0x4
- bhi _080275A0
- adds r0, r4, r2
- adds r0, r5
- b _080275A6
- .align 2, 0
-_08027588: .4byte gUnknown_02024C07
-_0802758C: .4byte gUnknown_02024CA8
-_08027590: .4byte gUnknown_030041C0
-_08027594: .4byte gUnknown_02024A60
-_08027598: .4byte gBattleMoves
-_0802759C: .4byte gUnknown_02024A8C
-_080275A0:
- adds r0, r4, r2
- adds r0, r5
- movs r1, 0x5
-_080275A6:
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x3
- ble _08027564
- ldrb r0, [r6]
- mov r1, r8
- strb r0, [r1]
- movs r0, 0
- movs r1, 0x2
- bl dp01_build_cmdbuf_x38_a
- mov r2, r8
- ldrb r0, [r2]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _080275D4 @ =gUnknown_02024D1E
- movs r0, 0
-_080275C8:
- strb r0, [r1, 0x5]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080275D4: .4byte gUnknown_02024D1E
- thumb_func_end atk9B_transformdataexecution
-
- thumb_func_start sub_80275D8
-sub_80275D8: @ 80275D8
- push {r4-r7,lr}
- ldr r7, _08027608 @ =gBattleMons
- ldr r6, _0802760C @ =gUnknown_02024C07
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r3, r0, r7
- ldrh r0, [r3, 0x2C]
- lsrs r1, r0, 2
- adds r2, r1, 0
- cmp r1, 0
- bne _080275F2
- movs r2, 0x1
-_080275F2:
- ldrh r0, [r3, 0x28]
- cmp r0, r2
- bhi _08027618
- ldr r1, _08027610 @ =gUnknown_02024BEC
- movs r0, 0
- str r0, [r1]
- ldr r1, _08027614 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _0802766C
- .align 2, 0
-_08027608: .4byte gBattleMons
-_0802760C: .4byte gUnknown_02024C07
-_08027610: .4byte gUnknown_02024BEC
-_08027614: .4byte gUnknown_02024D1E
-_08027618:
- ldr r4, _0802767C @ =gUnknown_02024BEC
- str r1, [r4]
- cmp r1, 0
- bne _08027624
- movs r0, 0x1
- str r0, [r4]
-_08027624:
- ldrb r0, [r6]
- adds r2, r0, 0
- muls r2, r5
- adds r3, r7, 0
- adds r3, 0x50
- adds r2, r3
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 17
- orrs r0, r1
- str r0, [r2]
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r3
- ldr r0, [r1]
- ldr r2, _08027680 @ =0xffff1fff
- ands r0, r2
- str r0, [r1]
- ldr r2, _08027684 @ =gUnknown_02024CA8
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, [r4]
- movs r2, 0
- strb r1, [r0, 0xA]
- ldr r0, _08027688 @ =gUnknown_02024D1E
- strb r2, [r0, 0x5]
- ldr r2, _0802768C @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 1
- orrs r0, r1
- str r0, [r2]
-_0802766C:
- ldr r1, _08027690 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802767C: .4byte gUnknown_02024BEC
-_08027680: .4byte 0xffff1fff
-_08027684: .4byte gUnknown_02024CA8
-_08027688: .4byte gUnknown_02024D1E
-_0802768C: .4byte gUnknown_02024C6C
-_08027690: .4byte gUnknown_02024C10
- thumb_func_end sub_80275D8
-
- thumb_func_start sub_8027694
-sub_8027694: @ 8027694
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r3, 0
- ldr r0, _080276D4 @ =gUnknown_081FACFE
- ldrh r1, [r0]
- ldr r4, _080276D8 @ =0x0000fffe
- adds r5, r0, 0
- cmp r1, r4
- beq _080276BC
- cmp r1, r2
- beq _080276BC
- adds r1, r5, 0
-_080276AE:
- adds r1, 0x2
- adds r3, 0x1
- ldrh r0, [r1]
- cmp r0, r4
- beq _080276BC
- cmp r0, r2
- bne _080276AE
-_080276BC:
- lsls r0, r3, 1
- adds r0, r5
- ldrh r1, [r0]
- ldr r0, _080276D8 @ =0x0000fffe
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080276D4: .4byte gUnknown_081FACFE
-_080276D8: .4byte 0x0000fffe
- thumb_func_end sub_8027694
-
- thumb_func_start atk9D_copyattack
-atk9D_copyattack: @ 80276DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08027754 @ =gUnknown_02024BE8
- ldr r1, _08027758 @ =0x0000ffff
- adds r7, r1, 0
- strh r7, [r0]
- ldr r5, _0802775C @ =gUnknown_02024C34
- ldr r6, _08027760 @ =gUnknown_02024C08
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- bl sub_8027694
- lsls r0, 24
- cmp r0, 0
- bne _08027736
- ldr r3, _08027764 @ =gBattleMons
- ldr r2, _08027768 @ =gUnknown_02024C07
- ldrb r1, [r2]
- movs r0, 0x58
- adds r4, r1, 0
- muls r4, r0
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r4, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 14
- ands r1, r0
- mov r12, r3
- mov r9, r2
- cmp r1, 0
- bne _08027736
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r5
- ldrh r1, [r0]
- cmp r1, 0
- beq _08027736
- cmp r1, r7
- bne _08027770
-_08027736:
- ldr r3, _0802776C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _080278A8
- .align 2, 0
-_08027754: .4byte gUnknown_02024BE8
-_08027758: .4byte 0x0000ffff
-_0802775C: .4byte gUnknown_02024C34
-_08027760: .4byte gUnknown_02024C08
-_08027764: .4byte gBattleMons
-_08027768: .4byte gUnknown_02024C07
-_0802776C: .4byte gUnknown_02024C10
-_08027770:
- movs r2, 0
- mov r3, r12
- adds r3, 0xC
- adds r0, r4, r3
- ldrh r0, [r0]
- ldr r4, _08027800 @ =gUnknown_02024C10
- mov r10, r4
- cmp r0, r1
- beq _080277AA
- mov r8, r3
- adds r7, r5, 0
- adds r5, r6, 0
- mov r4, r9
- movs r3, 0x58
-_0802778C:
- adds r2, 0x1
- cmp r2, 0x3
- bgt _080277AA
- lsls r1, r2, 1
- ldrb r0, [r4]
- muls r0, r3
- adds r1, r0
- add r1, r8
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r7
- ldrh r1, [r1]
- ldrh r0, [r0]
- cmp r1, r0
- bne _0802778C
-_080277AA:
- cmp r2, 0x4
- bne _0802788C
- ldr r5, _08027804 @ =gUnknown_02024BE4
- ldrb r1, [r5]
- lsls r1, 1
- mov r2, r9
- ldrb r0, [r2]
- movs r6, 0x58
- muls r0, r6
- adds r1, r0
- mov r0, r12
- adds r0, 0xC
- adds r1, r0
- ldr r2, _08027808 @ =gUnknown_02024C34
- ldr r3, _0802780C @ =gUnknown_02024C08
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r4, _08027810 @ =gBattleMoves
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r4, [r0, 0x4]
- cmp r4, 0x4
- bhi _08027814
- mov r1, r9
- ldrb r0, [r1]
- muls r0, r6
- ldrb r1, [r5]
- adds r0, r1
- mov r1, r12
- adds r1, 0x24
- adds r0, r1
- strb r4, [r0]
- b _08027828
- .align 2, 0
-_08027800: .4byte gUnknown_02024C10
-_08027804: .4byte gUnknown_02024BE4
-_08027808: .4byte gUnknown_02024C34
-_0802780C: .4byte gUnknown_02024C08
-_08027810: .4byte gBattleMoves
-_08027814:
- mov r4, r9
- ldrb r0, [r4]
- muls r0, r6
- ldrb r1, [r5]
- adds r0, r1
- mov r1, r12
- adds r1, 0x24
- adds r0, r1
- movs r1, 0x5
- strb r1, [r0]
-_08027828:
- ldr r1, _08027880 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08027884 @ =gUnknown_02024CA8
- mov r2, r9
- ldrb r0, [r2]
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r4, [r2, 0x18]
- lsrs r3, r4, 4
- ldr r1, _08027888 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- orrs r1, r3
- lsls r1, 4
- movs r0, 0xF
- ands r0, r4
- orrs r0, r1
- strb r0, [r2, 0x18]
- mov r4, r10
- ldr r0, [r4]
- adds r0, 0x5
- str r0, [r4]
- b _080278A8
- .align 2, 0
-_08027880: .4byte gUnknown_030041C0
-_08027884: .4byte gUnknown_02024CA8
-_08027888: .4byte gBitTable
-_0802788C:
- mov r0, r10
- ldr r2, [r0]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- mov r2, r10
- str r1, [r2]
-_080278A8:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk9D_copyattack
-
- thumb_func_start sub_80278B8
-sub_80278B8: @ 80278B8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _08027938 @ =gUnknown_02024BE6
- movs r6, 0xB1
- lsls r6, 1
- ldr r5, _0802793C @ =gUnknown_081FACFE
- ldr r0, _08027940 @ =gUnknown_02024C10
- mov r8, r0
-_080278CA:
- bl Random
- ldr r2, _08027944 @ =0x000001ff
- adds r1, r2, 0
- ands r0, r1
- adds r0, 0x1
- strh r0, [r7]
- cmp r0, r6
- bhi _080278CA
- movs r0, 0x3
-_080278DE:
- subs r0, 0x1
- cmp r0, 0
- bge _080278DE
- ldr r4, _08027938 @ =gUnknown_02024BE6
- ldrh r2, [r4]
- ldr r3, _08027948 @ =0x0000ffff
- subs r0, r5, 0x2
-_080278EC:
- adds r0, 0x2
- ldrh r1, [r0]
- cmp r1, r2
- beq _080278F8
- cmp r1, r3
- bne _080278EC
-_080278F8:
- ldr r0, _08027948 @ =0x0000ffff
- cmp r1, r0
- bne _080278CA
- ldr r2, _0802794C @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _08027950 @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r3, _08027954 @ =gUnknown_081D6BBC
- ldr r2, _08027958 @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- mov r1, r8
- str r0, [r1]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _0802795C @ =gUnknown_02024C08
- strb r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027938: .4byte gUnknown_02024BE6
-_0802793C: .4byte gUnknown_081FACFE
-_08027940: .4byte gUnknown_02024C10
-_08027944: .4byte 0x000001ff
-_08027948: .4byte 0x0000ffff
-_0802794C: .4byte gUnknown_02024C6C
-_08027950: .4byte 0xfffffbff
-_08027954: .4byte gUnknown_081D6BBC
-_08027958: .4byte gBattleMoves
-_0802795C: .4byte gUnknown_02024C08
- thumb_func_end sub_80278B8
-
- thumb_func_start sub_8027960
-sub_8027960: @ 8027960
- ldr r3, _08027980 @ =gUnknown_02024BEC
- ldr r2, _08027984 @ =gBattleMons
- ldr r0, _08027988 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r0, [r0]
- str r0, [r3]
- ldr r1, _0802798C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08027980: .4byte gUnknown_02024BEC
-_08027984: .4byte gBattleMons
-_08027988: .4byte gUnknown_02024C07
-_0802798C: .4byte gUnknown_02024C10
- thumb_func_end sub_8027960
-
- thumb_func_start atkA0_psywavedamageeffect
-atkA0_psywavedamageeffect: @ 8027990
- push {r4,lr}
- movs r4, 0xF
-_08027994:
- bl Random
- adds r3, r4, 0
- ands r3, r0
- cmp r3, 0xA
- bgt _08027994
- lsls r0, r3, 2
- adds r0, r3
- lsls r3, r0, 1
- ldr r4, _080279D4 @ =gUnknown_02024BEC
- ldr r2, _080279D8 @ =gBattleMons
- ldr r0, _080279DC @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r1, [r0]
- adds r0, r3, 0
- adds r0, 0x32
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- ldr r1, _080279E0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080279D4: .4byte gUnknown_02024BEC
-_080279D8: .4byte gBattleMons
-_080279DC: .4byte gUnknown_02024C07
-_080279E0: .4byte gUnknown_02024C10
- thumb_func_end atkA0_psywavedamageeffect
-
- thumb_func_start atkA1_counterdamagecalculator
-atkA1_counterdamagecalculator: @ 80279E4
- push {r4-r6,lr}
- ldr r4, _08027A54 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _08027A58 @ =gUnknown_02024D28
- ldrb r0, [r4]
- lsls r0, 4
- adds r0, r5
- ldrb r0, [r0, 0xC]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r0, r5, 0x4
- adds r0, r1, r0
- ldr r3, [r0]
- cmp r3, 0
- beq _08027A98
- cmp r6, r2
- beq _08027A98
- ldr r6, _08027A5C @ =gBattleMons
- adds r0, r1, r5
- ldrb r0, [r0, 0xC]
- movs r4, 0x58
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08027A98
- ldr r1, _08027A60 @ =gUnknown_02024BEC
- lsls r0, r3, 1
- str r0, [r1]
- ldr r1, _08027A64 @ =gUnknown_02024C80
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x8]
- cmp r0, 0
- beq _08027A6C
- ldrb r1, [r1, 0x9]
- adds r0, r1, 0
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08027A6C
- ldr r0, _08027A68 @ =gUnknown_02024C08
- strb r1, [r0]
- b _08027A7C
- .align 2, 0
-_08027A54: .4byte gUnknown_02024C07
-_08027A58: .4byte gUnknown_02024D28
-_08027A5C: .4byte gBattleMons
-_08027A60: .4byte gUnknown_02024BEC
-_08027A64: .4byte gUnknown_02024C80
-_08027A68: .4byte gUnknown_02024C08
-_08027A6C:
- ldr r2, _08027A88 @ =gUnknown_02024C08
- ldr r1, _08027A8C @ =gUnknown_02024D28
- ldr r0, _08027A90 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0xC]
- strb r0, [r2]
-_08027A7C:
- ldr r1, _08027A94 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027AC8
- .align 2, 0
-_08027A88: .4byte gUnknown_02024C08
-_08027A8C: .4byte gUnknown_02024D28
-_08027A90: .4byte gUnknown_02024C07
-_08027A94: .4byte gUnknown_02024C10
-_08027A98:
- ldr r2, _08027AD0 @ =gUnknown_02024D68
- ldr r0, _08027AD4 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r3, _08027AD8 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08027AC8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08027AD0: .4byte gUnknown_02024D68
-_08027AD4: .4byte gUnknown_02024C07
-_08027AD8: .4byte gUnknown_02024C10
- thumb_func_end atkA1_counterdamagecalculator
-
- thumb_func_start atkA2_mirrorcoatdamagecalculator
-atkA2_mirrorcoatdamagecalculator: @ 8027ADC
- push {r4-r6,lr}
- ldr r4, _08027B4C @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _08027B50 @ =gUnknown_02024D28
- ldrb r0, [r4]
- lsls r0, 4
- adds r0, r5
- ldrb r0, [r0, 0xD]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r0, r5, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r3, [r0]
- cmp r3, 0
- beq _08027B90
- cmp r6, r2
- beq _08027B90
- ldr r6, _08027B54 @ =gBattleMons
- adds r0, r1, r5
- ldrb r0, [r0, 0xD]
- movs r4, 0x58
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08027B90
- ldr r1, _08027B58 @ =gUnknown_02024BEC
- lsls r0, r3, 1
- str r0, [r1]
- ldr r1, _08027B5C @ =gUnknown_02024C80
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x8]
- cmp r0, 0
- beq _08027B64
- ldrb r1, [r1, 0x9]
- adds r0, r1, 0
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08027B64
- ldr r0, _08027B60 @ =gUnknown_02024C08
- strb r1, [r0]
- b _08027B74
- .align 2, 0
-_08027B4C: .4byte gUnknown_02024C07
-_08027B50: .4byte gUnknown_02024D28
-_08027B54: .4byte gBattleMons
-_08027B58: .4byte gUnknown_02024BEC
-_08027B5C: .4byte gUnknown_02024C80
-_08027B60: .4byte gUnknown_02024C08
-_08027B64:
- ldr r2, _08027B80 @ =gUnknown_02024C08
- ldr r1, _08027B84 @ =gUnknown_02024D28
- ldr r0, _08027B88 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0xD]
- strb r0, [r2]
-_08027B74:
- ldr r1, _08027B8C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027BC0
- .align 2, 0
-_08027B80: .4byte gUnknown_02024C08
-_08027B84: .4byte gUnknown_02024D28
-_08027B88: .4byte gUnknown_02024C07
-_08027B8C: .4byte gUnknown_02024C10
-_08027B90:
- ldr r2, _08027BC8 @ =gUnknown_02024D68
- ldr r0, _08027BCC @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r3, _08027BD0 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08027BC0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08027BC8: .4byte gUnknown_02024D68
-_08027BCC: .4byte gUnknown_02024C07
-_08027BD0: .4byte gUnknown_02024C10
- thumb_func_end atkA2_mirrorcoatdamagecalculator
-
- thumb_func_start atkA3_disablelastusedattack
-atkA3_disablelastusedattack: @ 8027BD4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r4, 0
- ldr r2, _08027CD4 @ =gBattleMons
- ldr r3, _08027CD8 @ =gUnknown_02024C08
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r7, r2, 0
- adds r7, 0xC
- adds r0, r7
- ldr r5, _08027CDC @ =gUnknown_02024C34
- lsls r1, 1
- adds r1, r5
- ldrh r0, [r0]
- mov r9, r2
- adds r6, r3, 0
- ldr r2, _08027CE0 @ =gUnknown_02024CA8
- mov r8, r2
- ldrh r1, [r1]
- cmp r0, r1
- beq _08027C28
- mov r12, r6
- movs r3, 0x58
-_08027C08:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08027C28
- lsls r2, r4, 1
- mov r0, r12
- ldrb r1, [r0]
- adds r0, r1, 0
- muls r0, r3
- adds r2, r0
- adds r2, r7
- lsls r1, 1
- adds r1, r5
- ldrh r0, [r2]
- ldrh r1, [r1]
- cmp r0, r1
- bne _08027C08
-_08027C28:
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- ldrh r0, [r0, 0x4]
- cmp r0, 0
- bne _08027CEC
- cmp r4, 0x4
- beq _08027CEC
- movs r5, 0x58
- adds r0, r1, 0
- muls r0, r5
- adds r0, r4, r0
- mov r1, r9
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08027CEC
- ldr r1, _08027CE4 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- lsls r2, r4, 1
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r2, r0
- mov r3, r9
- adds r3, 0xC
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r2, r0
- adds r0, r3
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- muls r1, r5
- adds r2, r1
- adds r2, r3
- ldrh r1, [r2]
- strh r1, [r0, 0x4]
- bl Random
- ldrb r2, [r6]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r8
- movs r2, 0x3
- ands r2, r0
- adds r2, 0x2
- ldrb r3, [r1, 0xB]
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xB]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r3, [r1, 0xB]
- lsls r2, r3, 28
- lsrs r2, 24
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xB]
- ldr r1, _08027CE8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027D06
- .align 2, 0
-_08027CD4: .4byte gBattleMons
-_08027CD8: .4byte gUnknown_02024C08
-_08027CDC: .4byte gUnknown_02024C34
-_08027CE0: .4byte gUnknown_02024CA8
-_08027CE4: .4byte gUnknown_030041C0
-_08027CE8: .4byte gUnknown_02024C10
-_08027CEC:
- ldr r3, _08027D14 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08027D06:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027D14: .4byte gUnknown_02024C10
- thumb_func_end atkA3_disablelastusedattack
-
- thumb_func_start atkA4_setencore
-atkA4_setencore: @ 8027D18
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r5, 0
- ldr r3, _08027E0C @ =gBattleMons
- ldr r4, _08027E10 @ =gUnknown_02024C08
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r6, r3, 0
- adds r6, 0xC
- adds r0, r6
- ldr r2, _08027E14 @ =gUnknown_02024C34
- lsls r1, 1
- adds r1, r2
- ldrh r0, [r0]
- mov r10, r3
- mov r8, r2
- ldr r2, _08027E18 @ =gUnknown_02024CA8
- mov r9, r2
- ldrh r1, [r1]
- cmp r0, r1
- beq _08027D72
- mov r12, r4
- adds r7, r6, 0
- mov r6, r8
- movs r3, 0x58
-_08027D52:
- adds r5, 0x1
- cmp r5, 0x3
- bgt _08027D72
- lsls r2, r5, 1
- mov r0, r12
- ldrb r1, [r0]
- adds r0, r1, 0
- muls r0, r3
- adds r2, r0
- adds r2, r7
- lsls r1, 1
- adds r1, r6
- ldrh r0, [r2]
- ldrh r1, [r1]
- cmp r0, r1
- bne _08027D52
-_08027D72:
- ldrb r0, [r4]
- lsls r0, 1
- add r0, r8
- ldrh r2, [r0]
- cmp r2, 0xA5
- beq _08027D86
- cmp r2, 0xE3
- beq _08027D86
- cmp r2, 0x77
- bne _08027D88
-_08027D86:
- movs r5, 0x4
-_08027D88:
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r2, r9
- adds r3, r0, r2
- ldrh r0, [r3, 0x6]
- cmp r0, 0
- bne _08027E20
- cmp r5, 0x4
- beq _08027E20
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- adds r0, r5, r2
- mov r1, r10
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08027E20
- lsls r0, r5, 1
- adds r0, r2
- subs r1, 0x18
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3, 0x6]
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- strb r5, [r0, 0xC]
- bl Random
- ldrb r2, [r4]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r9
- movs r2, 0x3
- ands r2, r0
- adds r2, 0x3
- ldrb r3, [r1, 0xE]
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xE]
- ldrb r0, [r4]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r9
- ldrb r3, [r1, 0xE]
- lsls r2, r3, 28
- lsrs r2, 24
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xE]
- ldr r1, _08027E1C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027E3A
- .align 2, 0
-_08027E0C: .4byte gBattleMons
-_08027E10: .4byte gUnknown_02024C08
-_08027E14: .4byte gUnknown_02024C34
-_08027E18: .4byte gUnknown_02024CA8
-_08027E1C: .4byte gUnknown_02024C10
-_08027E20:
- ldr r3, _08027E48 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08027E3A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027E48: .4byte gUnknown_02024C10
- thumb_func_end atkA4_setencore
-
- thumb_func_start sub_8027E4C
-sub_8027E4C: @ 8027E4C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r7, _08027EEC @ =gBattleMons
- ldr r0, _08027EF0 @ =gUnknown_02024C08
- mov r8, r0
- ldrb r0, [r0]
- movs r6, 0x58
- adds r2, r0, 0
- muls r2, r6
- adds r0, r7, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _08027F18
- ldr r1, _08027EF4 @ =gUnknown_02024C07
- mov r12, r1
- ldrb r0, [r1]
- muls r0, r6
- adds r0, r7
- ldrh r4, [r0, 0x28]
- adds r0, r2, r7
- ldrh r2, [r0, 0x28]
- adds r4, r2
- asrs r4, 1
- ldr r5, _08027EF8 @ =gUnknown_02024BEC
- mov r9, r5
- subs r2, r4
- str r2, [r5]
- ldr r3, _08027EFC @ =0x02000000
- ldr r1, _08027F00 @ =0x00016014
- adds r0, r3, r1
- strb r2, [r0]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r2
- asrs r0, 8
- ldr r5, _08027F04 @ =0x00016015
- adds r1, r3, r5
- strb r0, [r1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r2
- asrs r0, 16
- adds r5, 0x1
- adds r1, r3, r5
- strb r0, [r1]
- lsrs r2, 24
- ldr r0, _08027F08 @ =0x00016017
- adds r3, r0
- strb r2, [r3]
- mov r1, r12
- ldrb r0, [r1]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0, 0x28]
- subs r0, r4
- mov r5, r9
- str r0, [r5]
- ldr r2, _08027F0C @ =gUnknown_02024D68
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r0, r2
- ldr r1, _08027F10 @ =0x0000ffff
- str r1, [r0]
- ldr r1, _08027F14 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027F32
- .align 2, 0
-_08027EEC: .4byte gBattleMons
-_08027EF0: .4byte gUnknown_02024C08
-_08027EF4: .4byte gUnknown_02024C07
-_08027EF8: .4byte gUnknown_02024BEC
-_08027EFC: .4byte 0x02000000
-_08027F00: .4byte 0x00016014
-_08027F04: .4byte 0x00016015
-_08027F08: .4byte 0x00016017
-_08027F0C: .4byte gUnknown_02024D68
-_08027F10: .4byte 0x0000ffff
-_08027F14: .4byte gUnknown_02024C10
-_08027F18:
- ldr r3, _08027F40 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08027F32:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027F40: .4byte gUnknown_02024C10
- thumb_func_end sub_8027E4C
-
- thumb_func_start sub_8027F44
-sub_8027F44: @ 8027F44
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, _08027FA8 @ =gUnknown_02024C3C
- ldr r4, _08027FAC @ =gUnknown_02024C07
- ldrb r0, [r4]
- lsls r0, 1
- adds r2, r0, r1
- ldrh r1, [r2]
- cmp r1, 0
- beq _08027F8C
- ldr r0, _08027FB0 @ =0x0000ffff
- cmp r1, r0
- beq _08027F8C
- ldrh r0, [r2]
- bl sub_8028350
- lsls r0, 24
- cmp r0, 0
- beq _08028024
- ldr r2, _08027FB4 @ =gUnknown_02024D28
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08028024
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08028024
-_08027F8C:
- ldr r3, _08027FB8 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08028110
- .align 2, 0
-_08027FA8: .4byte gUnknown_02024C3C
-_08027FAC: .4byte gUnknown_02024C07
-_08027FB0: .4byte 0x0000ffff
-_08027FB4: .4byte gUnknown_02024D28
-_08027FB8: .4byte gUnknown_02024C10
-_08027FBC:
- mov r0, r12
- strb r5, [r0]
- mov r1, r10
- ldrb r0, [r1]
- muls r0, r2
- adds r0, r7
- adds r0, 0x22
- strb r5, [r0]
- ldr r1, _08027FE0 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r5, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, _08027FE4 @ =gUnknown_02024C10
- b _08028012
- .align 2, 0
-_08027FE0: .4byte gUnknown_030041C0
-_08027FE4: .4byte gUnknown_02024C10
-_08027FE8:
- mov r0, r8
- adds r0, 0x1
- adds r0, r3
- ldrb r2, [r0]
- strb r2, [r4]
- mov r4, r10
- ldrb r0, [r4]
- muls r0, r6
- ldr r7, _0802801C @ =gBattleMons
- adds r0, r7
- adds r0, 0x22
- strb r2, [r0]
- ldr r1, _08028020 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- mov r1, r12
-_08028012:
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08028110
- .align 2, 0
-_0802801C: .4byte gBattleMons
-_08028020: .4byte gUnknown_030041C0
-_08028024:
- movs r4, 0
- mov r8, r4
- movs r7, 0x7F
- mov r9, r7
-_0802802C:
- bl Random
- mov r4, r9
- ands r4, r0
- cmp r4, 0x70
- bhi _0802802C
- lsls r0, r4, 1
- adds r4, r0, r4
- ldr r6, _08028120 @ =gTypeEffectiveness
- adds r3, r4, r6
- ldr r1, _08028124 @ =gUnknown_02024C44
- ldr r2, _08028128 @ =gUnknown_02024C07
- ldrb r5, [r2]
- lsls r0, r5, 1
- adds r0, r1
- ldrb r1, [r3]
- mov r10, r2
- ldrh r0, [r0]
- cmp r1, r0
- bne _08028088
- adds r0, r4, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _08028088
- ldr r7, _0802812C @ =gBattleMons
- movs r2, 0x58
- adds r0, r5, 0
- muls r0, r2
- adds r3, r0, r7
- movs r0, 0x21
- adds r0, r3
- mov r12, r0
- adds r0, r4, 0x1
- adds r0, r6
- ldrb r5, [r0]
- mov r1, r12
- ldrb r0, [r1]
- adds r1, r5, 0
- cmp r0, r1
- beq _08028088
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- bne _08027FBC
-_08028088:
- movs r7, 0x1
- add r8, r7
- ldr r0, _08028130 @ =0x000003e7
- cmp r8, r0
- ble _0802802C
- movs r0, 0
- mov r8, r0
- ldr r1, _08028134 @ =gUnknown_02024C10
- mov r12, r1
- ldr r3, _08028120 @ =gTypeEffectiveness
- adds r0, r4, 0x1
- adds r0, r3
- mov r9, r0
- adds r5, r3, 0
-_080280A4:
- ldrb r1, [r5]
- cmp r1, 0xFF
- bgt _080280AE
- cmp r1, 0xFE
- bge _080280E8
-_080280AE:
- mov r4, r10
- ldrb r2, [r4]
- lsls r0, r2, 1
- ldr r7, _08028124 @ =gUnknown_02024C44
- adds r0, r7
- ldrh r0, [r0]
- cmp r1, r0
- bne _080280E8
- ldrb r0, [r5, 0x2]
- cmp r0, 0x5
- bhi _080280E8
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- ldr r1, _0802812C @ =gBattleMons
- adds r2, r0, r1
- adds r4, r2, 0
- adds r4, 0x21
- ldrb r0, [r4]
- mov r7, r9
- ldrb r1, [r7]
- cmp r0, r1
- beq _080280E8
- adds r0, r2, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- beq _080280E8
- b _08027FE8
-_080280E8:
- adds r5, 0x3
- movs r0, 0x3
- add r8, r0
- ldr r0, _08028138 @ =0x0000014f
- cmp r8, r0
- bls _080280A4
- mov r1, r12
- ldr r2, [r1]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- mov r4, r12
- str r1, [r4]
-_08028110:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028120: .4byte gTypeEffectiveness
-_08028124: .4byte gUnknown_02024C44
-_08028128: .4byte gUnknown_02024C07
-_0802812C: .4byte gBattleMons
-_08028130: .4byte 0x000003e7
-_08028134: .4byte gUnknown_02024C10
-_08028138: .4byte 0x0000014f
- thumb_func_end sub_8027F44
-
- thumb_func_start atkA7_setalwayshitflag
-atkA7_setalwayshitflag: @ 802813C
- push {r4,lr}
- ldr r4, _08028180 @ =gUnknown_02024C98
- ldr r3, _08028184 @ =gUnknown_02024C08
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x19
- negs r2, r2
- ands r0, r2
- str r0, [r1]
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x10
- orrs r0, r2
- str r0, [r1]
- ldr r2, _08028188 @ =gUnknown_02024CA8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0802818C @ =gUnknown_02024C07
- ldrb r1, [r1]
- strb r1, [r0, 0x15]
- ldr r1, _08028190 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08028180: .4byte gUnknown_02024C98
-_08028184: .4byte gUnknown_02024C08
-_08028188: .4byte gUnknown_02024CA8
-_0802818C: .4byte gUnknown_02024C07
-_08028190: .4byte gUnknown_02024C10
- thumb_func_end atkA7_setalwayshitflag
-
- thumb_func_start atkA8_copymovepermanently
-atkA8_copymovepermanently: @ 8028194
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- ldr r0, _080282F4 @ =gUnknown_02024BE8
- ldr r1, _080282F8 @ =0x0000ffff
- adds r5, r1, 0
- strh r5, [r0]
- ldr r3, _080282FC @ =gBattleMons
- ldr r2, _08028300 @ =gUnknown_02024C07
- ldrb r1, [r2]
- movs r0, 0x58
- adds r4, r1, 0
- muls r4, r0
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r4, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 14
- ands r1, r0
- mov r12, r3
- mov r10, r2
- cmp r1, 0
- beq _080281CC
- b _08028320
-_080281CC:
- ldr r0, _08028304 @ =gUnknown_02024C2C
- ldr r2, _08028308 @ =gUnknown_02024C08
- ldrb r1, [r2]
- lsls r1, 1
- adds r1, r0
- ldrh r1, [r1]
- mov r9, r0
- mov r8, r2
- cmp r1, 0xA5
- bne _080281E2
- b _08028320
-_080281E2:
- cmp r1, 0
- bne _080281E8
- b _08028320
-_080281E8:
- cmp r1, r5
- bne _080281EE
- b _08028320
-_080281EE:
- cmp r1, 0xA6
- bne _080281F4
- b _08028320
-_080281F4:
- movs r7, 0
- mov r5, r9
- mov r0, r12
- adds r0, 0xC
- adds r1, r4, r0
- mov r3, r8
-_08028200:
- ldrh r2, [r1]
- cmp r2, 0xA6
- beq _08028212
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802821A
-_08028212:
- adds r1, 0x2
- adds r7, 0x1
- cmp r7, 0x3
- ble _08028200
-_0802821A:
- cmp r7, 0x4
- beq _08028220
- b _08028320
-_08028220:
- ldr r4, _0802830C @ =gUnknown_02024BE4
- ldrb r1, [r4]
- lsls r1, 1
- mov r2, r10
- ldrb r0, [r2]
- movs r3, 0x58
- muls r0, r3
- adds r1, r0
- mov r6, r12
- adds r6, 0xC
- adds r1, r6
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r1]
- mov r1, r10
- ldrb r0, [r1]
- adds r2, r0, 0
- muls r2, r3
- ldrb r4, [r4]
- adds r2, r4
- mov r5, r12
- adds r5, 0x24
- adds r2, r5
- ldr r4, _08028310 @ =gBattleMoves
- mov r1, r8
- ldrb r0, [r1]
- lsls r0, 1
- add r0, r9
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x4]
- strb r0, [r2]
- ldr r1, _08028314 @ =gUnknown_02024A60
- mov r2, r10
- ldrb r0, [r2]
- strb r0, [r1]
- movs r7, 0
- ldrb r0, [r2]
- muls r0, r3
- adds r4, r0, r5
- adds r3, r0, 0
- add r2, sp, 0x4
- add r5, sp, 0xC
-_08028282:
- adds r0, r3, r6
- ldrh r0, [r0]
- strh r0, [r2]
- adds r1, r5, r7
- ldrb r0, [r4]
- strb r0, [r1]
- adds r4, 0x1
- adds r3, 0x2
- adds r2, 0x2
- adds r7, 0x1
- cmp r7, 0x3
- ble _08028282
- add r2, sp, 0x4
- mov r0, r10
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r0, 0x3B
- ldrb r0, [r0]
- strb r0, [r2, 0xC]
- str r2, [sp]
- movs r0, 0
- movs r1, 0x3
- movs r2, 0
- movs r3, 0x10
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldr r0, _08028314 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08028318 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldr r3, _08028304 @ =gUnknown_02024C2C
- ldr r2, _08028308 @ =gUnknown_02024C08
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0802831C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802833A
- .align 2, 0
-_080282F4: .4byte gUnknown_02024BE8
-_080282F8: .4byte 0x0000ffff
-_080282FC: .4byte gBattleMons
-_08028300: .4byte gUnknown_02024C07
-_08028304: .4byte gUnknown_02024C2C
-_08028308: .4byte gUnknown_02024C08
-_0802830C: .4byte gUnknown_02024BE4
-_08028310: .4byte gBattleMoves
-_08028314: .4byte gUnknown_02024A60
-_08028318: .4byte gUnknown_030041C0
-_0802831C: .4byte gUnknown_02024C10
-_08028320:
- ldr r3, _0802834C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802833A:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802834C: .4byte gUnknown_02024C10
- thumb_func_end atkA8_copymovepermanently
-
- thumb_func_start sub_8028350
-sub_8028350: @ 8028350
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08028380 @ =gBattleMoves
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1]
- cmp r0, 0x91
- beq _0802837A
- cmp r0, 0x27
- beq _0802837A
- cmp r0, 0x4B
- beq _0802837A
- cmp r0, 0x97
- beq _0802837A
- cmp r0, 0x9B
- beq _0802837A
- cmp r0, 0x1A
- bne _08028384
-_0802837A:
- movs r0, 0x1
- b _08028386
- .align 2, 0
-_08028380: .4byte gBattleMoves
-_08028384:
- movs r0, 0
-_08028386:
- pop {r1}
- bx r1
- thumb_func_end sub_8028350
-
- thumb_func_start sub_802838C
-sub_802838C: @ 802838C
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _080283AA
- cmp r1, 0xD6
- beq _080283AA
- movs r0, 0x89
- lsls r0, 1
- cmp r1, r0
- beq _080283AA
- cmp r1, 0x77
- beq _080283AA
- cmp r1, 0x76
- bne _080283AE
-_080283AA:
- movs r0, 0x1
- b _080283B0
-_080283AE:
- movs r0, 0
-_080283B0:
- pop {r1}
- bx r1
- thumb_func_end sub_802838C
-
- thumb_func_start move_weather_interaction
-move_weather_interaction: @ 80283B4
- push {lr}
- lsls r1, 16
- lsrs r2, r1, 16
- ldr r1, _0802840C @ =gBattleMoves
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x97
- bne _080283D8
- ldr r0, _08028410 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- bne _08028418
-_080283D8:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0x91
- beq _080283FA
- cmp r0, 0x27
- beq _080283FA
- cmp r0, 0x4B
- beq _080283FA
- cmp r0, 0x97
- beq _080283FA
- cmp r0, 0x9B
- beq _080283FA
- cmp r0, 0x1A
- bne _08028418
-_080283FA:
- ldr r0, _08028414 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 20
- ands r0, r1
- cmp r0, 0
- beq _08028418
- movs r0, 0x1
- b _0802841A
- .align 2, 0
-_0802840C: .4byte gBattleMoves
-_08028410: .4byte word_2024DB8
-_08028414: .4byte gUnknown_02024C6C
-_08028418:
- movs r0, 0x2
-_0802841A:
- pop {r1}
- bx r1
- thumb_func_end move_weather_interaction
-
- thumb_func_start sub_8028420
-sub_8028420: @ 8028420
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- movs r5, 0
- ldr r0, _080284B0 @ =gUnknown_02024C07
- mov r9, r0
- movs r1, 0x58
- mov r8, r1
- ldr r7, _080284B4 @ =gUnknown_02024A8C
- movs r0, 0x84
- lsls r0, 1
- mov r10, r0
-_0802843E:
- lsls r4, r5, 1
- mov r1, r9
- ldrb r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r4, r0
- adds r0, r7
- ldrh r0, [r0]
- bl sub_802838C
- lsls r0, 24
- cmp r0, 0
- bne _0802847E
- mov r1, r9
- ldrb r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r4, r0
- adds r0, r7
- ldrh r1, [r0]
- cmp r1, r10
- beq _0802847E
- cmp r1, 0xFD
- beq _0802847E
- adds r0, r1, 0
- bl sub_8028350
- lsls r0, 24
- cmp r0, 0
- beq _0802848C
-_0802847E:
- ldr r1, _080284B8 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r1
- ldr r0, [r0]
- orrs r6, r0
- lsls r0, r6, 24
- lsrs r6, r0, 24
-_0802848C:
- adds r5, 0x1
- cmp r5, 0x3
- ble _0802843E
- ldr r0, _080284B0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- adds r1, r6, 0
- movs r2, 0xFD
- bl sub_8015A98
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xF
- bne _080284C0
- ldr r1, _080284BC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08028524
- .align 2, 0
-_080284B0: .4byte gUnknown_02024C07
-_080284B4: .4byte gUnknown_02024A8C
-_080284B8: .4byte gBitTable
-_080284BC: .4byte gUnknown_02024C10
-_080284C0:
- movs r7, 0x3
- ldr r4, _08028534 @ =gBitTable
-_080284C4:
- bl Random
- adds r5, r7, 0
- ands r5, r0
- lsls r0, r5, 2
- adds r0, r4
- ldr r0, [r0]
- ands r0, r6
- cmp r0, 0
- bne _080284C4
- ldr r4, _08028538 @ =gUnknown_02024BEA
- ldr r2, _0802853C @ =gBattleMons
- lsls r1, r5, 1
- ldr r0, _08028540 @ =gUnknown_02024C07
- ldrb r3, [r0]
- movs r0, 0x58
- muls r0, r3
- adds r1, r0
- adds r2, 0xC
- adds r1, r2
- ldrh r0, [r1]
- strh r0, [r4]
- ldr r0, _08028544 @ =gUnknown_02024BE4
- strb r5, [r0]
- ldr r2, _08028548 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0802854C @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08028550 @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r3, _08028554 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08028524:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028534: .4byte gBitTable
-_08028538: .4byte gUnknown_02024BEA
-_0802853C: .4byte gBattleMons
-_08028540: .4byte gUnknown_02024C07
-_08028544: .4byte gUnknown_02024BE4
-_08028548: .4byte gUnknown_02024C6C
-_0802854C: .4byte 0xfffffbff
-_08028550: .4byte gUnknown_02024C08
-_08028554: .4byte gUnknown_02024C10
- thumb_func_end sub_8028420
-
- thumb_func_start sub_8028558
-sub_8028558: @ 8028558
- ldr r1, _0802857C @ =gBattleMons
- ldr r0, _08028580 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 18
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08028584 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802857C: .4byte gBattleMons
-_08028580: .4byte gUnknown_02024C07
-_08028584: .4byte gUnknown_02024C10
- thumb_func_end sub_8028558
-
- thumb_func_start b_feature_update_destiny_bond
-b_feature_update_destiny_bond: @ 8028588
- push {r4,r5,lr}
- ldr r0, _080285D8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080285DC @ =gUnknown_02024C08
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _080285E0 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _080285D2
- cmp r5, r3
- beq _080285D2
- ldr r2, _080285E4 @ =gUnknown_02024C6C
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 17
- ands r0, r1
- cmp r0, 0
- bne _080285D2
- movs r0, 0x40
- orrs r1, r0
- str r1, [r2]
-_080285D2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080285D8: .4byte gUnknown_02024C07
-_080285DC: .4byte gUnknown_02024C08
-_080285E0: .4byte gBattleMons
-_080285E4: .4byte gUnknown_02024C6C
- thumb_func_end b_feature_update_destiny_bond
-
- thumb_func_start atkAB_802A458
-atkAB_802A458: @ 80285E8
- push {lr}
- bl b_feature_update_destiny_bond
- ldr r1, _080285FC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080285FC: .4byte gUnknown_02024C10
- thumb_func_end atkAB_802A458
-
- thumb_func_start atkAC_remaininghptopower
-atkAC_remaininghptopower: @ 8028600
- push {lr}
- ldr r2, _08028654 @ =gBattleMons
- ldr r0, _08028658 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- movs r2, 0x28
- ldrsh r0, [r1, r2]
- movs r2, 0x2C
- ldrsh r1, [r1, r2]
- movs r2, 0x30
- bl sub_80461D4
- lsls r0, 24
- lsrs r1, r0, 24
- movs r3, 0
- ldr r0, _0802865C @ =gUnknown_081FAD26
- ldrb r2, [r0]
- cmp r1, r2
- ble _0802863A
- adds r2, r0, 0
-_0802862C:
- adds r3, 0x2
- cmp r3, 0xB
- bgt _0802863A
- adds r0, r3, r2
- ldrb r0, [r0]
- cmp r1, r0
- bgt _0802862C
-_0802863A:
- ldr r2, _08028660 @ =gUnknown_02024DEC
- ldr r1, _0802865C @ =gUnknown_081FAD26
- adds r0, r3, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2]
- ldr r1, _08028664 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08028654: .4byte gBattleMons
-_08028658: .4byte gUnknown_02024C07
-_0802865C: .4byte gUnknown_081FAD26
-_08028660: .4byte gUnknown_02024DEC
-_08028664: .4byte gUnknown_02024C10
- thumb_func_end atkAC_remaininghptopower
-
- thumb_func_start sub_8028668
-sub_8028668: @ 8028668
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, _080287F8 @ =gUnknown_02024C34
- ldr r1, _080287FC @ =gUnknown_02024C08
- ldrb r2, [r1]
- lsls r0, r2, 1
- adds r0, r4
- ldrh r3, [r0]
- mov r8, r1
- cmp r3, 0
- bne _08028688
- b _08028828
-_08028688:
- ldr r0, _08028800 @ =0x0000ffff
- cmp r3, r0
- bne _08028690
- b _08028828
-_08028690:
- ldr r1, _08028804 @ =gUnknown_02024C98
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08028808 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _080286A2
- b _08028828
-_080286A2:
- movs r7, 0
- ldr r0, _0802880C @ =gBattleMons
- movs r1, 0x58
- muls r1, r2
- adds r2, r0, 0
- adds r2, 0xC
- adds r1, r2
- ldrh r1, [r1]
- cmp r3, r1
- beq _080286DA
- adds r6, r4, 0
- mov r5, r8
- adds r4, r2, 0
- movs r3, 0x58
-_080286BE:
- adds r7, 0x1
- cmp r7, 0x3
- bgt _080286DA
- ldrb r0, [r5]
- lsls r2, r0, 1
- adds r2, r6
- lsls r1, r7, 1
- muls r0, r3
- adds r1, r0
- adds r1, r4
- ldrh r0, [r2]
- ldrh r1, [r1]
- cmp r0, r1
- bne _080286BE
-_080286DA:
- cmp r7, 0x4
- bne _080286E0
- b _08028828
-_080286E0:
- mov r4, r8
- ldrb r0, [r4]
- movs r1, 0x58
- mov r9, r1
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7, r0
- ldr r1, _0802880C @ =gBattleMons
- adds r1, 0x24
- mov r10, r1
- add r0, r10
- ldrb r0, [r0]
- cmp r0, 0x1
- bhi _08028700
- b _08028828
-_08028700:
- bl Random
- movs r1, 0x3
- ands r1, r0
- adds r6, r1, 0x2
- ldrb r0, [r4]
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7, r0
- add r0, r10
- ldrb r0, [r0]
- cmp r0, r6
- bge _0802871E
- adds r6, r0, 0
-_0802871E:
- ldr r1, _08028810 @ =gUnknown_030041C0
- movs r5, 0xFD
- strb r5, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldr r2, _080287F8 @ =gUnknown_02024C34
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r4, _08028814 @ =gUnknown_03004290
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- strb r5, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x3]
- strb r6, [r4, 0x4]
- subs r0, 0x2
- strb r0, [r4, 0x5]
- mov r1, r8
- ldrb r0, [r1]
- mov r1, r9
- muls r1, r0
- adds r1, r7, r1
- add r1, r10
- ldrb r0, [r1]
- subs r0, r6
- strb r0, [r1]
- ldr r4, _08028818 @ =gUnknown_02024A60
- mov r3, r8
- ldrb r0, [r3]
- strb r0, [r4]
- ldr r1, _0802881C @ =gUnknown_02024CA8
- ldrb r3, [r4]
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _08028820 @ =gBitTable
- lsls r0, r7, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080287D2
- mov r2, r9
- muls r2, r3
- ldr r0, _0802880C @ =gBattleMons
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _080287D2
- adds r1, r7, 0
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- mov r3, r10
- adds r0, r2, r3
- adds r0, r7
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080287D2:
- ldr r1, _08028824 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r1, _0802880C @ =gBattleMons
- ldr r0, _080287FC @ =gUnknown_02024C08
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r7, r0
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08028842
- adds r0, r2, 0
- bl b_cancel_multi_turn_move_maybe
- b _08028842
- .align 2, 0
-_080287F8: .4byte gUnknown_02024C34
-_080287FC: .4byte gUnknown_02024C08
-_08028800: .4byte 0x0000ffff
-_08028804: .4byte gUnknown_02024C98
-_08028808: .4byte 0x000400c0
-_0802880C: .4byte gBattleMons
-_08028810: .4byte gUnknown_030041C0
-_08028814: .4byte gUnknown_03004290
-_08028818: .4byte gUnknown_02024A60
-_0802881C: .4byte gUnknown_02024CA8
-_08028820: .4byte gBitTable
-_08028824: .4byte gUnknown_02024C10
-_08028828:
- ldr r3, _08028854 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08028842:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028854: .4byte gUnknown_02024C10
- thumb_func_end sub_8028668
-
- thumb_func_start sub_8028858
-sub_8028858: @ 8028858
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- movs r4, 0
- str r4, [sp, 0x4]
- movs r7, 0
- ldr r0, _080288AC @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xD7
- beq _08028872
- b _08028A26
-_08028872:
- ldr r5, _080288B0 @ =gUnknown_02024D1E
- strb r7, [r5, 0x5]
- ldr r6, _080288B4 @ =gUnknown_02024C07
- ldrb r0, [r6]
- bl battle_side_get_owner
- lsls r0, 24
- ldr r1, _080288B8 @ =gEnemyParty
- mov r9, r1
- cmp r0, 0
- bne _0802888C
- ldr r2, _080288BC @ =gPlayerParty
- mov r9, r2
-_0802888C:
- ldr r4, _080288C0 @ =gBattleMons
- ldrb r3, [r6]
- movs r0, 0x58
- adds r2, r3, 0
- muls r2, r0
- adds r0, r2, r4
- adds r1, r0, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0x2B
- beq _080288C4
- adds r0, r4, 0
- adds r0, 0x4C
- adds r0, r2, r0
- str r7, [r0]
- b _080288D4
- .align 2, 0
-_080288AC: .4byte gUnknown_02024BE6
-_080288B0: .4byte gUnknown_02024D1E
-_080288B4: .4byte gUnknown_02024C07
-_080288B8: .4byte gEnemyParty
-_080288BC: .4byte gPlayerParty
-_080288C0: .4byte gBattleMons
-_080288C4:
- ldrb r1, [r1]
- adds r0, r3, 0
- bl sub_81074C4
- ldrb r0, [r5, 0x5]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r5, 0x5]
-_080288D4:
- ldr r4, _08028934 @ =gUnknown_02024A60
- ldr r0, _08028938 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_get_per_side_status
- movs r6, 0x2
- eors r0, r6
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r1, _0802893C @ =0x02000000
- ldr r2, _08028940 @ =0x00016003
- adds r1, r2
- strb r0, [r1]
- strb r0, [r4]
- ldr r0, _08028944 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08028964
- ldr r0, _08028948 @ =gUnknown_02024C0C
- ldrb r2, [r0]
- ldr r1, _0802894C @ =gBitTable
- ldrb r3, [r4]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- bne _08028964
- ldr r5, _08028950 @ =gBattleMons
- movs r0, 0x58
- adds r4, r3, 0
- muls r4, r0
- adds r0, r4, r5
- adds r1, r0, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0x2B
- beq _08028954
- adds r0, r5, 0
- adds r0, 0x4C
- adds r0, r4, r0
- str r2, [r0]
- b _08028964
- .align 2, 0
-_08028934: .4byte gUnknown_02024A60
-_08028938: .4byte gUnknown_02024C07
-_0802893C: .4byte 0x02000000
-_08028940: .4byte 0x00016003
-_08028944: .4byte gUnknown_020239F8
-_08028948: .4byte gUnknown_02024C0C
-_0802894C: .4byte gBitTable
-_08028950: .4byte gBattleMons
-_08028954:
- ldrb r1, [r1]
- adds r0, r3, 0
- bl sub_81074C4
- ldr r1, _080289AC @ =gUnknown_02024D1E
- ldrb r0, [r1, 0x5]
- orrs r0, r6
- strb r0, [r1, 0x5]
-_08028964:
- movs r6, 0
- ldr r0, _080289B0 @ =gBattleMons
- mov r8, r0
-_0802896A:
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- add r4, r9
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r5, 0
- beq _08028A1E
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- beq _08028A1E
- ldr r2, _080289B4 @ =gUnknown_02024A6A
- ldr r0, _080289B8 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r6
- bne _080289BC
- movs r0, 0x58
- muls r0, r1
- b _080289EC
- .align 2, 0
-_080289AC: .4byte gUnknown_02024D1E
-_080289B0: .4byte gBattleMons
-_080289B4: .4byte gUnknown_02024A6A
-_080289B8: .4byte gUnknown_02024C07
-_080289BC:
- ldr r0, _080289F4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08028A04
- ldr r0, _080289F8 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 1
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r6
- bne _08028A04
- ldr r0, _080289FC @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08028A00 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08028A04
- movs r0, 0x58
- muls r0, r3
-_080289EC:
- add r0, r8
- adds r0, 0x20
- ldrb r0, [r0]
- b _08028A10
- .align 2, 0
-_080289F4: .4byte gUnknown_020239F8
-_080289F8: .4byte gUnknown_02024A60
-_080289FC: .4byte gUnknown_02024C0C
-_08028A00: .4byte gBitTable
-_08028A04:
- adds r0, r5, 0
- adds r1, r4, 0
- bl GetAbilityBySpecies
- lsls r0, 24
- lsrs r0, 24
-_08028A10:
- cmp r0, 0x2B
- beq _08028A1E
- movs r0, 0x1
- lsls r0, r6
- orrs r7, r0
- lsls r0, r7, 24
- lsrs r7, r0, 24
-_08028A1E:
- adds r6, 0x1
- cmp r6, 0x5
- ble _0802896A
- b _08028A7E
-_08028A26:
- ldr r1, _08028AB4 @ =gUnknown_02024D1E
- movs r0, 0x4
- strb r0, [r1, 0x5]
- movs r7, 0x3F
- ldr r2, _08028AB8 @ =gBattleMons
- ldr r1, _08028ABC @ =gUnknown_02024C07
- ldrb r0, [r1]
- movs r6, 0x58
- muls r0, r6
- adds r5, r2, 0
- adds r5, 0x4C
- adds r0, r5
- str r4, [r0]
- ldrb r0, [r1]
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r3, _08028AC0 @ =gUnknown_02024A60
- strb r0, [r3]
- ldr r0, _08028AC4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08028A7E
- ldr r0, _08028AC8 @ =gUnknown_02024C0C
- ldrb r2, [r0]
- ldr r1, _08028ACC @ =gBitTable
- ldrb r3, [r3]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- bne _08028A7E
- adds r0, r3, 0
- muls r0, r6
- adds r0, r5
- str r2, [r0]
-_08028A7E:
- ldr r4, _08028AC0 @ =gUnknown_02024A60
- ldr r0, _08028ABC @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r4]
- add r1, sp, 0x4
- str r1, [sp]
- movs r0, 0
- movs r1, 0x28
- adds r2, r7, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08028AD0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028AB4: .4byte gUnknown_02024D1E
-_08028AB8: .4byte gBattleMons
-_08028ABC: .4byte gUnknown_02024C07
-_08028AC0: .4byte gUnknown_02024A60
-_08028AC4: .4byte gUnknown_020239F8
-_08028AC8: .4byte gUnknown_02024C0C
-_08028ACC: .4byte gBitTable
-_08028AD0: .4byte gUnknown_02024C10
- thumb_func_end sub_8028858
-
- thumb_func_start sub_8028AD4
-sub_8028AD4: @ 8028AD4
- push {r4-r7,lr}
- ldr r7, _08028B24 @ =gBattleMons
- ldr r0, _08028B28 @ =gUnknown_02024C08
- ldrb r3, [r0]
- movs r6, 0x58
- adds r1, r3, 0
- muls r1, r6
- adds r0, r7, 0
- adds r0, 0x50
- adds r4, r1, r0
- ldr r2, [r4]
- movs r5, 0x80
- lsls r5, 21
- adds r0, r2, 0
- ands r0, r5
- cmp r0, 0
- bne _08028B06
- ldr r1, _08028B2C @ =gUnknown_02024C98
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08028B30 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08028B38
-_08028B06:
- ldr r3, _08028B34 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08028B5C
- .align 2, 0
-_08028B24: .4byte gBattleMons
-_08028B28: .4byte gUnknown_02024C08
-_08028B2C: .4byte gUnknown_02024C98
-_08028B30: .4byte 0x000400c0
-_08028B34: .4byte gUnknown_02024C10
-_08028B38:
- orrs r2, r5
- str r2, [r4]
- ldr r1, _08028B64 @ =gUnknown_02024BEC
- ldr r0, _08028B68 @ =gUnknown_02024C07
- ldrb r0, [r0]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _08028B54
- movs r0, 0x1
- str r0, [r1]
-_08028B54:
- ldr r1, _08028B6C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08028B5C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028B64: .4byte gUnknown_02024BEC
-_08028B68: .4byte gUnknown_02024C07
-_08028B6C: .4byte gUnknown_02024C10
- thumb_func_end sub_8028AD4
-
- thumb_func_start sub_8028B70
-sub_8028B70: @ 8028B70
- push {r4,lr}
- ldr r4, _08028BC4 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08028BC8 @ =gUnknown_02024C80
- lsls r2, r0, 1
- adds r0, r2, r0
- lsls r0, 2
- adds r3, r0, r1
- ldrb r0, [r3, 0x6]
- cmp r0, 0x3
- bne _08028BD4
- ldr r2, _08028BCC @ =gUnknown_02024D68
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r3, _08028BD0 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08028BEE
- .align 2, 0
-_08028BC4: .4byte gUnknown_02024C07
-_08028BC8: .4byte gUnknown_02024C80
-_08028BCC: .4byte gUnknown_02024D68
-_08028BD0: .4byte gUnknown_02024C10
-_08028BD4:
- ldr r1, _08028BF4 @ =gUnknown_02024C7A
- adds r1, r2, r1
- ldrh r2, [r1]
- movs r0, 0x10
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r3, 0x6]
- adds r0, 0x1
- strb r0, [r3, 0x6]
- ldr r1, _08028BF8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08028BEE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08028BF4: .4byte gUnknown_02024C7A
-_08028BF8: .4byte gUnknown_02024C10
- thumb_func_end sub_8028B70
-
- thumb_func_start sub_8028BFC
-sub_8028BFC: @ 8028BFC
- ldr r1, _08028C20 @ =gBattleMons
- ldr r0, _08028C24 @ =gUnknown_02024C08
- ldrb r2, [r0]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 22
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08028C28 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08028C20: .4byte gBattleMons
-_08028C24: .4byte gUnknown_02024C08
-_08028C28: .4byte gUnknown_02024C10
- thumb_func_end sub_8028BFC
-
- thumb_func_start atkB2_setperishsong
-atkB2_setperishsong: @ 8028C2C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r6, 0
- movs r3, 0
- ldr r0, _08028C70 @ =gUnknown_02024A68
- adds r7, r0, 0
- ldr r0, _08028C74 @ =gUnknown_02024C07
- mov r8, r0
- ldrb r1, [r7]
- cmp r6, r1
- bge _08028C98
- movs r5, 0x20
- ldr r0, _08028C78 @ =gBattleMons
- mov r12, r0
- ldr r0, _08028C7C @ =gUnknown_02024CA8
- adds r4, r0, 0
- adds r4, 0xF
- ldr r2, _08028C80 @ =gUnknown_02024C98
-_08028C54:
- ldr r1, [r2]
- adds r0, r1, 0
- ands r0, r5
- cmp r0, 0
- bne _08028C6C
- movs r0, 0x58
- muls r0, r3
- add r0, r12
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2B
- bne _08028C84
-_08028C6C:
- adds r6, 0x1
- b _08028C8C
- .align 2, 0
-_08028C70: .4byte gUnknown_02024A68
-_08028C74: .4byte gUnknown_02024C07
-_08028C78: .4byte gBattleMons
-_08028C7C: .4byte gUnknown_02024CA8
-_08028C80: .4byte gUnknown_02024C98
-_08028C84:
- orrs r1, r5
- str r1, [r2]
- movs r0, 0x33
- strb r0, [r4]
-_08028C8C:
- adds r4, 0x1C
- adds r2, 0x4
- adds r3, 0x1
- ldrb r0, [r7]
- cmp r3, r0
- blt _08028C54
-_08028C98:
- mov r1, r8
- ldrb r0, [r1]
- bl sub_80153D0
- ldr r0, _08028CC4 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r6, r0
- bne _08028CCC
- ldr r3, _08028CC8 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08028CD4
- .align 2, 0
-_08028CC4: .4byte gUnknown_02024A68
-_08028CC8: .4byte gUnknown_02024C10
-_08028CCC:
- ldr r1, _08028CE0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08028CD4:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028CE0: .4byte gUnknown_02024C10
- thumb_func_end atkB2_setperishsong
-
- thumb_func_start atkB3_rolloutdamagecalculation
-atkB3_rolloutdamagecalculation: @ 8028CE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08028D08 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08028D18
- ldr r0, _08028D0C @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08028D10 @ =gUnknown_02024C10
- ldr r0, _08028D14 @ =BattleScript_1D6F74
- str r0, [r1]
- b _08028E30
- .align 2, 0
-_08028D08: .4byte gUnknown_02024C68
-_08028D0C: .4byte gUnknown_02024C07
-_08028D10: .4byte gUnknown_02024C10
-_08028D14: .4byte BattleScript_1D6F74
-_08028D18:
- ldr r2, _08028E3C @ =gBattleMons
- ldr r1, _08028E40 @ =gUnknown_02024C07
- ldrb r3, [r1]
- movs r5, 0x58
- adds r0, r3, 0
- muls r0, r5
- adds r4, r2, 0
- adds r4, 0x50
- adds r0, r4
- ldr r0, [r0]
- movs r7, 0x80
- lsls r7, 5
- ands r0, r7
- adds r6, r1, 0
- mov r9, r2
- ldr r1, _08028E44 @ =gUnknown_02024CA8
- mov r12, r1
- ldr r2, _08028E48 @ =gUnknown_02024BE6
- mov r8, r2
- cmp r0, 0
- bne _08028D8A
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- add r0, r12
- ldrb r2, [r0, 0x11]
- movs r1, 0x10
- negs r1, r1
- ands r1, r2
- movs r2, 0x5
- orrs r1, r2
- strb r1, [r0, 0x11]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- 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
- adds r1, r4
- ldr r0, [r1]
- orrs r0, r7
- str r0, [r1]
- ldr r1, _08028E4C @ =gUnknown_02024C54
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r1
- mov r2, r8
- ldrh r1, [r2]
- strh r1, [r0]
-_08028D8A:
- ldrb r0, [r6]
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- add r2, r12
- ldrb r3, [r2, 0x11]
- lsls r1, r3, 28
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x11]
- cmp r1, 0
- bne _08028DBE
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r4
- ldr r0, [r1]
- ldr r2, _08028E50 @ =0xffffefff
- ands r0, r2
- str r0, [r1]
-_08028DBE:
- ldr r3, _08028E54 @ =gUnknown_02024DEC
- ldr r2, _08028E58 @ =gBattleMoves
- mov r0, r8
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- strh r0, [r3]
- movs r2, 0x1
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r1, r12
- adds r4, r0, r1
- ldrb r0, [r4, 0x11]
- lsls r0, 28
- lsrs r0, 28
- movs r1, 0x5
- subs r1, r0
- ldr r7, _08028E5C @ =gUnknown_02024C10
- adds r5, r3, 0
- cmp r2, r1
- bge _08028E0C
- adds r1, r5, 0
- adds r3, r4, 0
- movs r4, 0x5
-_08028DF8:
- ldrh r0, [r1]
- lsls r0, 1
- strh r0, [r1]
- adds r2, 0x1
- ldrb r0, [r3, 0x11]
- lsls r0, 28
- lsrs r0, 28
- subs r0, r4, r0
- cmp r2, r0
- blt _08028DF8
-_08028E0C:
- ldrb r1, [r6]
- movs r0, 0x58
- muls r0, r1
- mov r1, r9
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 23
- ands r0, r1
- cmp r0, 0
- beq _08028E2A
- ldrh r0, [r5]
- lsls r0, 1
- strh r0, [r5]
-_08028E2A:
- ldr r0, [r7]
- adds r0, 0x1
- str r0, [r7]
-_08028E30:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028E3C: .4byte gBattleMons
-_08028E40: .4byte gUnknown_02024C07
-_08028E44: .4byte gUnknown_02024CA8
-_08028E48: .4byte gUnknown_02024BE6
-_08028E4C: .4byte gUnknown_02024C54
-_08028E50: .4byte 0xffffefff
-_08028E54: .4byte gUnknown_02024DEC
-_08028E58: .4byte gBattleMoves
-_08028E5C: .4byte gUnknown_02024C10
- thumb_func_end atkB3_rolloutdamagecalculation
-
- thumb_func_start atkB4_jumpifconfusedandattackmaxed
-atkB4_jumpifconfusedandattackmaxed: @ 8028E60
- push {r4,r5,lr}
- ldr r5, _08028EB0 @ =gBattleMons
- ldr r0, _08028EB4 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r5, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- ldr r4, _08028EB8 @ =gUnknown_02024C10
- cmp r0, 0
- beq _08028EBC
- ldr r2, [r4]
- ldrb r0, [r2, 0x1]
- adds r0, r3
- adds r1, r5, 0
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xC
- bne _08028EBC
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08028EC2
- .align 2, 0
-_08028EB0: .4byte gBattleMons
-_08028EB4: .4byte gUnknown_02024C08
-_08028EB8: .4byte gUnknown_02024C10
-_08028EBC:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_08028EC2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end atkB4_jumpifconfusedandattackmaxed
-
- thumb_func_start sub_8028EC8
-sub_8028EC8: @ 8028EC8
- push {r4,r5,lr}
- ldr r0, _08028EF0 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08028F04
- ldr r2, _08028EF4 @ =gUnknown_02024CA8
- ldr r0, _08028EF8 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x10]
- ldr r1, _08028EFC @ =gUnknown_02024C10
- ldr r0, _08028F00 @ =BattleScript_1D6F74
- str r0, [r1]
- b _08028F5C
- .align 2, 0
-_08028EF0: .4byte gUnknown_02024C68
-_08028EF4: .4byte gUnknown_02024CA8
-_08028EF8: .4byte gUnknown_02024C07
-_08028EFC: .4byte gUnknown_02024C10
-_08028F00: .4byte BattleScript_1D6F74
-_08028F04:
- ldr r5, _08028F64 @ =gUnknown_02024CA8
- ldr r4, _08028F68 @ =gUnknown_02024C07
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x10]
- cmp r0, 0x5
- beq _08028F1C
- adds r0, 0x1
- strb r0, [r1, 0x10]
-_08028F1C:
- ldr r3, _08028F6C @ =gUnknown_02024DEC
- ldr r2, _08028F70 @ =gBattleMoves
- ldr r0, _08028F74 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- strh r0, [r3]
- movs r2, 0x1
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r4, _08028F78 @ =gUnknown_02024C10
- ldrb r1, [r0, 0x10]
- cmp r2, r1
- bge _08028F56
- adds r1, r3, 0
- adds r3, r0, 0
-_08028F48:
- ldrh r0, [r1]
- lsls r0, 1
- strh r0, [r1]
- adds r2, 0x1
- ldrb r0, [r3, 0x10]
- cmp r2, r0
- blt _08028F48
-_08028F56:
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
-_08028F5C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08028F64: .4byte gUnknown_02024CA8
-_08028F68: .4byte gUnknown_02024C07
-_08028F6C: .4byte gUnknown_02024DEC
-_08028F70: .4byte gBattleMoves
-_08028F74: .4byte gUnknown_02024BE6
-_08028F78: .4byte gUnknown_02024C10
- thumb_func_end sub_8028EC8
-
- thumb_func_start atkB6_happinesstodamagecalculation
-atkB6_happinesstodamagecalculation: @ 8028F7C
- push {r4,lr}
- ldr r2, _08028FA8 @ =gBattleMoves
- ldr r0, _08028FAC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x79
- bne _08028FBC
- ldr r4, _08028FB0 @ =gUnknown_02024DEC
- ldr r2, _08028FB4 @ =gBattleMons
- ldr r0, _08028FB8 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2B
- ldrb r1, [r0]
- b _08028FD2
- .align 2, 0
-_08028FA8: .4byte gBattleMoves
-_08028FAC: .4byte gUnknown_02024BE6
-_08028FB0: .4byte gUnknown_02024DEC
-_08028FB4: .4byte gBattleMons
-_08028FB8: .4byte gUnknown_02024C07
-_08028FBC:
- ldr r4, _08028FF0 @ =gUnknown_02024DEC
- ldr r2, _08028FF4 @ =gBattleMons
- ldr r0, _08028FF8 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2B
- ldrb r0, [r0]
- movs r1, 0xFF
- subs r1, r0
-_08028FD2:
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- movs r1, 0x19
- bl __divsi3
- strh r0, [r4]
- ldr r1, _08028FFC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08028FF0: .4byte gUnknown_02024DEC
-_08028FF4: .4byte gBattleMons
-_08028FF8: .4byte gUnknown_02024C07
-_08028FFC: .4byte gUnknown_02024C10
- thumb_func_end atkB6_happinesstodamagecalculation
-
- thumb_func_start atkB7_presentdamagecalculation
-atkB7_presentdamagecalculation: @ 8029000
- push {r4,lr}
- bl Random
- movs r4, 0xFF
- ands r4, r0
- cmp r4, 0x65
- bgt _0802901C
- ldr r1, _08029018 @ =gUnknown_02024DEC
- movs r0, 0x28
- strh r0, [r1]
- b _0802905E
- .align 2, 0
-_08029018: .4byte gUnknown_02024DEC
-_0802901C:
- cmp r4, 0xB1
- bgt _0802902C
- ldr r1, _08029028 @ =gUnknown_02024DEC
- movs r0, 0x50
- strh r0, [r1]
- b _0802905E
- .align 2, 0
-_08029028: .4byte gUnknown_02024DEC
-_0802902C:
- cmp r4, 0xCB
- bgt _0802903C
- ldr r1, _08029038 @ =gUnknown_02024DEC
- movs r0, 0x78
- strh r0, [r1]
- b _0802905E
- .align 2, 0
-_08029038: .4byte gUnknown_02024DEC
-_0802903C:
- ldr r3, _08029068 @ =gUnknown_02024BEC
- ldr r2, _0802906C @ =gBattleMons
- ldr r0, _08029070 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2C]
- lsrs r0, 2
- str r0, [r3]
- cmp r0, 0
- bne _08029058
- movs r0, 0x1
- str r0, [r3]
-_08029058:
- ldr r0, [r3]
- negs r0, r0
- str r0, [r3]
-_0802905E:
- cmp r4, 0xCB
- bgt _0802907C
- ldr r1, _08029074 @ =gUnknown_02024C10
- ldr r0, _08029078 @ =BattleScript_1D6F44
- b _080290AC
- .align 2, 0
-_08029068: .4byte gUnknown_02024BEC
-_0802906C: .4byte gBattleMons
-_08029070: .4byte gUnknown_02024C08
-_08029074: .4byte gUnknown_02024C10
-_08029078: .4byte BattleScript_1D6F44
-_0802907C:
- ldr r2, _08029098 @ =gBattleMons
- ldr r0, _0802909C @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0, 0x2C]
- ldrh r0, [r0, 0x28]
- cmp r1, r0
- bne _080290A8
- ldr r1, _080290A0 @ =gUnknown_02024C10
- ldr r0, _080290A4 @ =BattleScript_1D83B5
- b _080290AC
- .align 2, 0
-_08029098: .4byte gBattleMons
-_0802909C: .4byte gUnknown_02024C08
-_080290A0: .4byte gUnknown_02024C10
-_080290A4: .4byte BattleScript_1D83B5
-_080290A8:
- ldr r1, _080290B4 @ =gUnknown_02024C10
- ldr r0, _080290B8 @ =BattleScript_1D839B
-_080290AC:
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080290B4: .4byte gUnknown_02024C10
-_080290B8: .4byte BattleScript_1D839B
- thumb_func_end atkB7_presentdamagecalculation
-
- thumb_func_start sub_80290BC
-sub_80290BC: @ 80290BC
- push {r4-r6,lr}
- ldr r4, _080290F0 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_get_per_side_status
- ldr r6, _080290F4 @ =gUnknown_02024C7A
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08029100
- ldr r2, _080290F8 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080290FC @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
- b _08029132
- .align 2, 0
-_080290F0: .4byte gUnknown_02024C07
-_080290F4: .4byte gUnknown_02024C7A
-_080290F8: .4byte gUnknown_02024C68
-_080290FC: .4byte gUnknown_02024D1E
-_08029100:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r0, [r1]
- movs r2, 0x20
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r4]
- bl battle_get_per_side_status
- ldr r2, _08029140 @ =gUnknown_02024C80
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strb r1, [r0, 0x7]
- ldr r0, _08029144 @ =gUnknown_02024D1E
- strb r1, [r0, 0x5]
-_08029132:
- ldr r1, _08029148 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08029140: .4byte gUnknown_02024C80
-_08029144: .4byte gUnknown_02024D1E
-_08029148: .4byte gUnknown_02024C10
- thumb_func_end sub_80290BC
-
- thumb_func_start atkB9_magnitudedamagecalculation
-atkB9_magnitudedamagecalculation: @ 802914C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x4
- bgt _08029178
- ldr r1, _08029174 @ =gUnknown_02024DEC
- movs r0, 0xA
- strh r0, [r1]
- movs r3, 0x4
- b _080291E4
- .align 2, 0
-_08029174: .4byte gUnknown_02024DEC
-_08029178:
- cmp r3, 0xE
- bgt _0802918C
- ldr r1, _08029188 @ =gUnknown_02024DEC
- movs r0, 0x1E
- strh r0, [r1]
- movs r3, 0x5
- b _080291E4
- .align 2, 0
-_08029188: .4byte gUnknown_02024DEC
-_0802918C:
- cmp r3, 0x22
- bgt _080291A0
- ldr r1, _0802919C @ =gUnknown_02024DEC
- movs r0, 0x32
- strh r0, [r1]
- movs r3, 0x6
- b _080291E4
- .align 2, 0
-_0802919C: .4byte gUnknown_02024DEC
-_080291A0:
- cmp r3, 0x40
- bgt _080291B4
- ldr r1, _080291B0 @ =gUnknown_02024DEC
- movs r0, 0x46
- strh r0, [r1]
- movs r3, 0x7
- b _080291E4
- .align 2, 0
-_080291B0: .4byte gUnknown_02024DEC
-_080291B4:
- cmp r3, 0x54
- bgt _080291C8
- ldr r1, _080291C4 @ =gUnknown_02024DEC
- movs r0, 0x5A
- strh r0, [r1]
- movs r3, 0x8
- b _080291E4
- .align 2, 0
-_080291C4: .4byte gUnknown_02024DEC
-_080291C8:
- cmp r3, 0x5E
- bgt _080291DC
- ldr r1, _080291D8 @ =gUnknown_02024DEC
- movs r0, 0x6E
- strh r0, [r1]
- movs r3, 0x9
- b _080291E4
- .align 2, 0
-_080291D8: .4byte gUnknown_02024DEC
-_080291DC:
- ldr r1, _08029250 @ =gUnknown_02024DEC
- movs r0, 0x96
- strh r0, [r1]
- movs r3, 0xA
-_080291E4:
- ldr r1, _08029254 @ =gUnknown_030041C0
- movs r2, 0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- strb r0, [r1, 0x2]
- movs r0, 0x2
- strb r0, [r1, 0x3]
- strb r3, [r1, 0x4]
- movs r0, 0xFF
- strb r0, [r1, 0x5]
- ldr r1, _08029258 @ =gUnknown_02024C08
- strb r2, [r1]
- ldr r0, _0802925C @ =gUnknown_02024A68
- ldrb r3, [r0]
- adds r6, r1, 0
- ldr r0, _08029260 @ =gUnknown_02024C10
- mov r8, r0
- cmp r2, r3
- bcs _0802923C
- adds r4, r6, 0
- ldr r0, _08029264 @ =gUnknown_02024C07
- ldrb r5, [r0]
- ldr r1, _08029268 @ =gBitTable
- mov r12, r1
- ldr r7, _0802926C @ =gUnknown_02024C0C
-_0802921A:
- ldrb r2, [r4]
- cmp r2, r5
- beq _08029230
- ldrb r0, [r7]
- ldrb r1, [r6]
- lsls r1, 2
- add r1, r12
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _0802923C
-_08029230:
- adds r0, r2, 0x1
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r3
- bcc _0802921A
-_0802923C:
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029250: .4byte gUnknown_02024DEC
-_08029254: .4byte gUnknown_030041C0
-_08029258: .4byte gUnknown_02024C08
-_0802925C: .4byte gUnknown_02024A68
-_08029260: .4byte gUnknown_02024C10
-_08029264: .4byte gUnknown_02024C07
-_08029268: .4byte gBitTable
-_0802926C: .4byte gUnknown_02024C0C
- thumb_func_end atkB9_magnitudedamagecalculation
-
- thumb_func_start sub_8029270
-sub_8029270: @ 8029270
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08029294 @ =gUnknown_02024C0E
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080292A0
- ldr r0, _08029298 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0802929C
- movs r0, 0x1
- b _080292BA
- .align 2, 0
-_08029294: .4byte gUnknown_02024C0E
-_08029298: .4byte gUnknown_02024C07
-_0802929C:
- movs r0, 0
- b _080292BA
-_080292A0:
- ldr r0, _080292B4 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080292B8
- movs r0, 0x3
- b _080292BA
- .align 2, 0
-_080292B4: .4byte gUnknown_02024C07
-_080292B8:
- movs r0, 0x2
-_080292BA:
- bl battle_get_side_with_given_state
- ldr r1, _0802937C @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r0, _08029380 @ =gUnknown_02024C18
- ldr r1, _0802937C @ =gUnknown_02024C08
- mov r9, r1
- ldrb r3, [r1]
- adds r0, r3, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _080293BC
- ldr r5, _08029384 @ =gUnknown_02024C07
- ldr r0, _08029388 @ =0x02000000
- ldr r2, _0802938C @ =0x00016010
- adds r1, r3, r2
- adds r1, r0
- ldrb r2, [r5]
- mov r10, r0
- ldrb r1, [r1]
- cmp r2, r1
- bne _080293BC
- ldr r4, _08029390 @ =gBattleMons
- movs r2, 0x58
- adds r0, r3, 0
- muls r0, r2
- adds r1, r4, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x27
- ands r0, r1
- cmp r0, 0
- bne _080293BC
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r4
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _080293BC
- ldr r0, _08029394 @ =gUnknown_02024CA8
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x18]
- lsls r0, 31
- cmp r0, 0
- bne _080293BC
- ldr r0, _08029398 @ =gUnknown_02024C60
- lsls r1, r3, 1
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0xE4
- bne _080293BC
- movs r1, 0
- ldr r0, _0802939C @ =gUnknown_02024A68
- ldr r7, _080293A0 @ =gUnknown_02024BE6
- mov r8, r7
- ldr r2, _080293A4 @ =gUnknown_02024C6C
- mov r12, r2
- ldrb r7, [r0]
- cmp r1, r7
- bge _0802935A
- ldr r6, _080293A8 @ =gUnknown_02024A7A
- mov r5, r9
- ldr r4, _080293AC @ =gUnknown_02024A76
- movs r3, 0xB
- adds r2, r0, 0
-_08029344:
- adds r0, r1, r6
- ldrb r0, [r0]
- ldrb r7, [r5]
- cmp r0, r7
- bne _08029352
- adds r0, r1, r4
- strb r3, [r0]
-_08029352:
- adds r1, 0x1
- ldrb r0, [r2]
- cmp r1, r0
- blt _08029344
-_0802935A:
- movs r0, 0xE4
- mov r1, r8
- strh r0, [r1]
- ldr r2, _080293B0 @ =gUnknown_02024C10
- ldr r0, [r2]
- adds r0, 0x5
- str r0, [r2]
- ldr r1, _080293B4 @ =0x00016002
- add r1, r10
- movs r0, 0x1
- strb r0, [r1]
- mov r7, r12
- ldr r0, [r7]
- ldr r1, _080293B8 @ =0xfffffbff
- ands r0, r1
- str r0, [r7]
- b _080293D6
- .align 2, 0
-_0802937C: .4byte gUnknown_02024C08
-_08029380: .4byte gUnknown_02024C18
-_08029384: .4byte gUnknown_02024C07
-_08029388: .4byte 0x02000000
-_0802938C: .4byte 0x00016010
-_08029390: .4byte gBattleMons
-_08029394: .4byte gUnknown_02024CA8
-_08029398: .4byte gUnknown_02024C60
-_0802939C: .4byte gUnknown_02024A68
-_080293A0: .4byte gUnknown_02024BE6
-_080293A4: .4byte gUnknown_02024C6C
-_080293A8: .4byte gUnknown_02024A7A
-_080293AC: .4byte gUnknown_02024A76
-_080293B0: .4byte gUnknown_02024C10
-_080293B4: .4byte 0x00016002
-_080293B8: .4byte 0xfffffbff
-_080293BC:
- ldr r3, _080293E4 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_080293D6:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080293E4: .4byte gUnknown_02024C10
- thumb_func_end sub_8029270
-
- thumb_func_start sub_80293E8
-sub_80293E8: @ 80293E8
- push {lr}
- ldr r2, _08029408 @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08029414
- ldr r2, _0802940C @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08029410 @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _08029426
- .align 2, 0
-_08029408: .4byte word_2024DB8
-_0802940C: .4byte gUnknown_02024C68
-_08029410: .4byte gUnknown_02024D1E
-_08029414:
- movs r0, 0x20
- strh r0, [r2]
- ldr r1, _08029434 @ =gUnknown_02024D1E
- movs r0, 0x4
- strb r0, [r1, 0x5]
- ldr r0, _08029438 @ =gUnknown_02024DBC
- adds r0, 0x28
- movs r1, 0x5
- strb r1, [r0]
-_08029426:
- ldr r1, _0802943C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029434: .4byte gUnknown_02024D1E
-_08029438: .4byte gUnknown_02024DBC
-_0802943C: .4byte gUnknown_02024C10
- thumb_func_end sub_80293E8
-
- thumb_func_start atkBC_maxattackhalvehp
-atkBC_maxattackhalvehp: @ 8029440
- push {r4,r5,lr}
- ldr r5, _0802948C @ =gBattleMons
- ldr r4, _08029490 @ =gUnknown_02024C07
- ldrb r0, [r4]
- movs r3, 0x58
- muls r0, r3
- adds r2, r0, r5
- ldrh r0, [r2, 0x2C]
- lsrs r1, r0, 1
- cmp r1, 0
- bne _08029458
- movs r1, 0x1
-_08029458:
- movs r0, 0x19
- ldrsb r0, [r2, r0]
- cmp r0, 0xB
- bgt _0802949C
- ldrh r0, [r2, 0x28]
- cmp r0, r1
- bls _0802949C
- movs r0, 0xC
- strb r0, [r2, 0x19]
- ldr r1, _08029494 @ =gUnknown_02024BEC
- ldrb r0, [r4]
- muls r0, r3
- adds r0, r5
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _08029480
- movs r0, 0x1
- str r0, [r1]
-_08029480:
- ldr r1, _08029498 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _080294B6
- .align 2, 0
-_0802948C: .4byte gBattleMons
-_08029490: .4byte gUnknown_02024C07
-_08029494: .4byte gUnknown_02024BEC
-_08029498: .4byte gUnknown_02024C10
-_0802949C:
- ldr r3, _080294BC @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_080294B6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080294BC: .4byte gUnknown_02024C10
- thumb_func_end atkBC_maxattackhalvehp
-
- thumb_func_start atkBD_copyfoestats
-atkBD_copyfoestats: @ 80294C0
- push {r4-r7,lr}
- movs r2, 0
- ldr r7, _080294F8 @ =gUnknown_02024C10
- ldr r6, _080294FC @ =gUnknown_02024C07
- movs r4, 0x58
- ldr r3, _08029500 @ =gUnknown_02024A98
- ldr r5, _08029504 @ =gUnknown_02024C08
-_080294CE:
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r4
- adds r1, r2, r1
- adds r1, r3
- ldrb r0, [r5]
- muls r0, r4
- adds r0, r2, r0
- adds r0, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0x7
- ble _080294CE
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080294F8: .4byte gUnknown_02024C10
-_080294FC: .4byte gUnknown_02024C07
-_08029500: .4byte gUnknown_02024A98
-_08029504: .4byte gUnknown_02024C08
- thumb_func_end atkBD_copyfoestats
-
- thumb_func_start atkBE_breakfree
-atkBE_breakfree: @ 8029508
- push {r4,r5,lr}
- ldr r1, _08029570 @ =gBattleMons
- ldr r5, _08029574 @ =gUnknown_02024C07
- ldrb r2, [r5]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r3, r0, r1
- ldr r1, [r3]
- movs r0, 0xE0
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08029594
- ldr r0, _08029578 @ =0xffff1fff
- ands r1, r0
- str r1, [r3]
- ldr r1, _0802957C @ =gUnknown_02024C08
- ldr r2, _08029580 @ =0x02000000
- ldrb r0, [r5]
- ldr r3, _08029584 @ =0x00016020
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _08029588 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldrb r0, [r5]
- lsls r0, 1
- subs r3, 0x1C
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r5]
- lsls r0, 1
- adds r3, 0x1
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- bl b_movescr_stack_push_cursor
- ldr r1, _0802958C @ =gUnknown_02024C10
- ldr r0, _08029590 @ =gUnknown_081D92C2
- b _0802963E
- .align 2, 0
-_08029570: .4byte gBattleMons
-_08029574: .4byte gUnknown_02024C07
-_08029578: .4byte 0xffff1fff
-_0802957C: .4byte gUnknown_02024C08
-_08029580: .4byte 0x02000000
-_08029584: .4byte 0x00016020
-_08029588: .4byte gUnknown_030041C0
-_0802958C: .4byte gUnknown_02024C10
-_08029590: .4byte gUnknown_081D92C2
-_08029594:
- ldr r4, _080295C8 @ =gUnknown_02024C98
- lsls r0, r2, 2
- adds r3, r0, r4
- ldr r1, [r3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080295D4
- movs r0, 0x5
- negs r0, r0
- ands r1, r0
- str r1, [r3]
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x4
- negs r2, r2
- ands r0, r2
- str r0, [r1]
- bl b_movescr_stack_push_cursor
- ldr r1, _080295CC @ =gUnknown_02024C10
- ldr r0, _080295D0 @ =gUnknown_081D92C9
- b _0802963E
- .align 2, 0
-_080295C8: .4byte gUnknown_02024C98
-_080295CC: .4byte gUnknown_02024C10
-_080295D0: .4byte gUnknown_081D92C9
-_080295D4:
- adds r0, r2, 0
- bl battle_side_get_owner
- ldr r4, _08029624 @ =gUnknown_02024C7A
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrh r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08029638
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrh r2, [r0]
- ldr r1, _08029628 @ =0x0000ffef
- ands r1, r2
- movs r4, 0
- strh r1, [r0]
- ldrb r0, [r5]
- bl battle_side_get_owner
- ldr r2, _0802962C @ =gUnknown_02024C80
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- strb r4, [r1, 0x6]
- bl b_movescr_stack_push_cursor
- ldr r1, _08029630 @ =gUnknown_02024C10
- ldr r0, _08029634 @ =gUnknown_081D92D0
- b _0802963E
- .align 2, 0
-_08029624: .4byte gUnknown_02024C7A
-_08029628: .4byte 0x0000ffef
-_0802962C: .4byte gUnknown_02024C80
-_08029630: .4byte gUnknown_02024C10
-_08029634: .4byte gUnknown_081D92D0
-_08029638:
- ldr r1, _08029648 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
-_0802963E:
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08029648: .4byte gUnknown_02024C10
- thumb_func_end atkBE_breakfree
-
- thumb_func_start sub_802964C
-sub_802964C: @ 802964C
- ldr r1, _08029670 @ =gBattleMons
- ldr r0, _08029674 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 23
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08029678 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08029670: .4byte gBattleMons
-_08029674: .4byte gUnknown_02024C07
-_08029678: .4byte gUnknown_02024C10
- thumb_func_end sub_802964C
-
- thumb_func_start atkC0_recoverbasedonsunlight
-atkC0_recoverbasedonsunlight: @ 802967C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _080296E8 @ =gUnknown_02024C08
- ldr r5, _080296EC @ =gUnknown_02024C07
- ldrb r0, [r5]
- strb r0, [r1]
- ldr r7, _080296F0 @ =gBattleMons
- ldrb r0, [r5]
- movs r6, 0x58
- muls r0, r6
- adds r0, r7
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- beq _0802975C
- ldr r4, _080296F4 @ =word_2024DB8
- ldrh r0, [r4]
- cmp r0, 0
- beq _080296CE
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080296CE
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _080296FC
-_080296CE:
- ldr r3, _080296F8 @ =gUnknown_02024BEC
- ldr r2, _080296F0 @ =gBattleMons
- ldr r0, _080296EC @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r3]
- adds r1, r3, 0
- b _08029736
- .align 2, 0
-_080296E8: .4byte gUnknown_02024C08
-_080296EC: .4byte gUnknown_02024C07
-_080296F0: .4byte gBattleMons
-_080296F4: .4byte word_2024DB8
-_080296F8: .4byte gUnknown_02024BEC
-_080296FC:
- ldrh r1, [r4]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08029728
- ldr r4, _08029724 @ =gUnknown_02024BEC
- ldrb r0, [r5]
- muls r0, r6
- adds r0, r7
- ldrh r1, [r0, 0x2C]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- movs r1, 0x1E
- bl __divsi3
- str r0, [r4]
- adds r1, r4, 0
- b _08029736
- .align 2, 0
-_08029724: .4byte gUnknown_02024BEC
-_08029728:
- ldr r1, _08029754 @ =gUnknown_02024BEC
- ldrb r0, [r5]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0, 0x2C]
- lsrs r0, 2
- str r0, [r1]
-_08029736:
- adds r2, r1, 0
- ldr r0, [r2]
- cmp r0, 0
- bne _08029742
- movs r0, 0x1
- str r0, [r2]
-_08029742:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldr r1, _08029758 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08029776
- .align 2, 0
-_08029754: .4byte gUnknown_02024BEC
-_08029758: .4byte gUnknown_02024C10
-_0802975C:
- ldr r3, _08029780 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08029776:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029780: .4byte gUnknown_02024C10
- thumb_func_end atkC0_recoverbasedonsunlight
-
- thumb_func_start sub_8029784
-sub_8029784: @ 8029784
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, _08029894 @ =gBattleMons
- ldr r0, _08029898 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- adds r4, r1, 0
- muls r4, r0
- adds r4, r2
- ldrb r0, [r4, 0x14]
- mov r10, r0
- mov r7, r10
- lsls r7, 27
- adds r0, r7, 0
- lsrs r0, 27
- mov r10, r0
- movs r1, 0x2
- mov r2, r10
- ands r2, r1
- asrs r2, 1
- ldrh r7, [r4, 0x14]
- mov r9, r7
- mov r0, r9
- lsls r0, 22
- mov r9, r0
- lsrs r3, r0, 27
- adds r0, r1, 0
- ands r0, r3
- orrs r2, r0
- ldrb r7, [r4, 0x15]
- mov r8, r7
- mov r0, r8
- lsls r0, 25
- mov r8, r0
- lsrs r3, r0, 27
- adds r0, r1, 0
- ands r0, r3
- lsls r0, 1
- orrs r2, r0
- ldr r6, [r4, 0x14]
- lsls r6, 12
- lsrs r3, r6, 27
- adds r0, r1, 0
- ands r0, r3
- lsls r0, 2
- orrs r2, r0
- ldrh r5, [r4, 0x16]
- lsls r5, 23
- lsrs r3, r5, 27
- adds r0, r1, 0
- ands r0, r3
- lsls r0, 3
- orrs r2, r0
- ldrb r3, [r4, 0x17]
- lsls r3, 26
- lsrs r0, r3, 27
- ands r1, r0
- lsls r1, 4
- orrs r2, r1
- movs r1, 0x1
- adds r4, r1, 0
- mov r7, r10
- ands r4, r7
- mov r0, r9
- lsrs r0, 27
- mov r9, r0
- adds r0, r1, 0
- mov r7, r9
- ands r0, r7
- lsls r0, 1
- orrs r4, r0
- mov r0, r8
- lsrs r0, 27
- mov r8, r0
- adds r0, r1, 0
- mov r7, r8
- ands r0, r7
- lsls r0, 2
- orrs r4, r0
- lsrs r6, 27
- adds r0, r1, 0
- ands r0, r6
- lsls r0, 3
- orrs r4, r0
- lsrs r5, 27
- adds r0, r1, 0
- ands r0, r5
- lsls r0, 4
- orrs r4, r0
- lsrs r3, 27
- ands r1, r3
- lsls r1, 5
- orrs r4, r1
- ldr r5, _0802989C @ =gUnknown_02024DEC
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- movs r1, 0x3F
- bl __divsi3
- adds r0, 0x1E
- strh r0, [r5]
- ldr r5, _080298A0 @ =0x02000000
- lsls r0, r4, 4
- subs r0, r4
- movs r1, 0x3F
- bl __divsi3
- adds r1, r0, 0x1
- ldr r0, _080298A4 @ =0x0001601c
- adds r5, r0
- strb r1, [r5]
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, 0x8
- bls _08029876
- adds r0, r1, 0x1
- strb r0, [r5]
-_08029876:
- ldrb r0, [r5]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r5]
- ldr r1, _080298A8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029894: .4byte gBattleMons
-_08029898: .4byte gUnknown_02024C07
-_0802989C: .4byte gUnknown_02024DEC
-_080298A0: .4byte 0x02000000
-_080298A4: .4byte 0x0001601c
-_080298A8: .4byte gUnknown_02024C10
- thumb_func_end sub_8029784
-
- thumb_func_start atkC2_selectnexttarget
-atkC2_selectnexttarget: @ 80298AC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08029908 @ =gUnknown_02024C08
- movs r1, 0
- strb r1, [r0]
- ldr r1, _0802990C @ =gUnknown_02024A68
- ldrb r1, [r1]
- adds r6, r0, 0
- ldr r0, _08029910 @ =gUnknown_02024C10
- mov r8, r0
- cmp r1, 0
- beq _080298F6
- adds r3, r6, 0
- ldr r0, _08029914 @ =gUnknown_02024C07
- ldrb r5, [r0]
- ldr r0, _08029918 @ =gBitTable
- mov r12, r0
- adds r4, r1, 0
- ldr r7, _0802991C @ =gUnknown_02024C0C
-_080298D4:
- ldrb r2, [r3]
- cmp r2, r5
- beq _080298EA
- ldrb r0, [r7]
- ldrb r1, [r6]
- lsls r1, 2
- add r1, r12
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _080298F6
-_080298EA:
- adds r0, r2, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcc _080298D4
-_080298F6:
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029908: .4byte gUnknown_02024C08
-_0802990C: .4byte gUnknown_02024A68
-_08029910: .4byte gUnknown_02024C10
-_08029914: .4byte gUnknown_02024C07
-_08029918: .4byte gBitTable
-_0802991C: .4byte gUnknown_02024C0C
- thumb_func_end atkC2_selectnexttarget
-
- thumb_func_start atkC3_setfutureattack
-atkC3_setfutureattack: @ 8029920
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r0, _08029958 @ =gUnknown_02024DBC
- mov r8, r0
- ldr r7, _0802995C @ =gUnknown_02024C08
- ldrb r1, [r7]
- adds r0, r1, r0
- ldrb r6, [r0]
- cmp r6, 0
- beq _08029964
- ldr r3, _08029960 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08029A2E
- .align 2, 0
-_08029958: .4byte gUnknown_02024DBC
-_0802995C: .4byte gUnknown_02024C08
-_08029960: .4byte gUnknown_02024C10
-_08029964:
- lsls r1, 1
- mov r0, r8
- adds r0, 0x18
- adds r1, r0
- ldr r2, _08029A04 @ =gUnknown_02024BE6
- mov r9, r2
- ldrh r0, [r2]
- strh r0, [r1]
- mov r0, r8
- adds r0, 0x4
- ldrb r4, [r7]
- adds r0, r4
- ldr r5, _08029A08 @ =gUnknown_02024C07
- ldrb r1, [r5]
- strb r1, [r0]
- ldrb r0, [r7]
- add r0, r8
- movs r1, 0x3
- strb r1, [r0]
- ldr r4, _08029A0C @ =gUnknown_02024C7A
- ldrb r0, [r7]
- bl battle_get_per_side_status
- movs r1, 0x1
- mov r10, r1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- ldr r2, _08029A10 @ =gBattleMons
- adds r0, r2
- ldrb r1, [r7]
- muls r1, r4
- adds r1, r2
- mov r4, r9
- ldrh r2, [r4]
- str r6, [sp]
- str r6, [sp, 0x4]
- ldrb r4, [r5]
- str r4, [sp, 0x8]
- ldrb r4, [r7]
- str r4, [sp, 0xC]
- bl CalculateBaseDamage
- ldrb r1, [r7]
- lsls r1, 2
- mov r2, r8
- adds r2, 0x8
- adds r1, r2
- str r0, [r1]
- ldr r1, _08029A14 @ =gUnknown_02024D28
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _080299F2
- ldrb r4, [r7]
- lsls r4, 2
- adds r4, r2
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_080299F2:
- mov r0, r9
- ldrh r1, [r0]
- ldr r0, _08029A18 @ =0x00000161
- cmp r1, r0
- bne _08029A20
- ldr r0, _08029A1C @ =gUnknown_02024D1E
- mov r1, r10
- strb r1, [r0, 0x5]
- b _08029A26
- .align 2, 0
-_08029A04: .4byte gUnknown_02024BE6
-_08029A08: .4byte gUnknown_02024C07
-_08029A0C: .4byte gUnknown_02024C7A
-_08029A10: .4byte gBattleMons
-_08029A14: .4byte gUnknown_02024D28
-_08029A18: .4byte 0x00000161
-_08029A1C: .4byte gUnknown_02024D1E
-_08029A20:
- ldr r1, _08029A40 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
-_08029A26:
- ldr r1, _08029A44 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08029A2E:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029A40: .4byte gUnknown_02024D1E
-_08029A44: .4byte gUnknown_02024C10
- thumb_func_end atkC3_setfutureattack
-
- thumb_func_start atkC4_802B910
-atkC4_802B910: @ 8029A48
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08029A8C @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- ldr r7, _08029A90 @ =gEnemyParty
- cmp r0, 0
- bne _08029A62
- ldr r7, _08029A94 @ =gPlayerParty
-_08029A62:
- ldr r2, _08029A98 @ =gBattleMons
- ldr r0, _08029A9C @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08029AA4
- ldr r3, _08029AA0 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- b _08029C40
- .align 2, 0
-_08029A8C: .4byte gUnknown_02024C07
-_08029A90: .4byte gEnemyParty
-_08029A94: .4byte gPlayerParty
-_08029A98: .4byte gBattleMons
-_08029A9C: .4byte gUnknown_02024C08
-_08029AA0: .4byte gUnknown_02024C10
-_08029AA4:
- ldr r6, _08029BE0 @ =gUnknown_02024D1E
- ldrb r0, [r6]
- mov r8, r0
- cmp r0, 0x5
- bls _08029AB0
- b _08029C0C
-_08029AB0:
- adds r4, r6, 0
- movs r5, 0x64
-_08029AB4:
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08029AF8
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08029AF8
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08029AF8
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x37
- bl GetMonData
- cmp r0, 0
- beq _08029B08
-_08029AF8:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- adds r6, r4, 0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bls _08029AB4
-_08029B08:
- ldr r1, _08029BE0 @ =gUnknown_02024D1E
- mov r9, r1
- ldrb r2, [r1]
- cmp r2, 0x5
- bhi _08029C0C
- ldr r1, _08029BE4 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r6, _08029BE8 @ =gUnknown_02024C07
- ldrb r0, [r6]
- strb r0, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08029BEC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x9
- str r0, [r1]
- ldr r2, _08029BF0 @ =gUnknown_02024BEC
- mov r8, r2
- ldr r5, _08029BF4 @ =gBaseStats
- mov r1, r9
- ldrb r0, [r1]
- movs r4, 0x64
- muls r0, r4
- adds r0, r7, r0
- movs r1, 0xB
- bl GetMonData
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r3, [r1, 0x1]
- mov r2, r8
- str r3, [r2]
- ldr r2, _08029BF8 @ =gBattleMoves
- ldr r0, _08029BFC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- muls r0, r3
- mov r1, r8
- str r0, [r1]
- mov r2, r9
- ldrb r0, [r2]
- muls r0, r4
- adds r0, r7, r0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 1
- movs r1, 0x5
- bl __udivsi3
- adds r0, 0x2
- mov r2, r8
- ldr r1, [r2]
- muls r0, r1
- str r0, [r2]
- ldr r3, _08029C00 @ =gBattleMons
- ldr r1, _08029C04 @ =gUnknown_02024C08
- ldrb r2, [r1]
- movs r1, 0x58
- muls r1, r2
- adds r1, r3
- ldrh r2, [r1]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r5
- ldrb r1, [r1, 0x2]
- bl __divsi3
- mov r1, r8
- str r0, [r1]
- movs r1, 0x32
- bl __divsi3
- adds r2, r0, 0x2
- mov r0, r8
- str r2, [r0]
- ldr r1, _08029C08 @ =gUnknown_02024D28
- ldrb r0, [r6]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _08029BD4
- lsls r0, r2, 4
- subs r0, r2
- movs r1, 0xA
- bl __divsi3
- mov r1, r8
- str r0, [r1]
-_08029BD4:
- mov r2, r9
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- b _08029C46
- .align 2, 0
-_08029BE0: .4byte gUnknown_02024D1E
-_08029BE4: .4byte gUnknown_030041C0
-_08029BE8: .4byte gUnknown_02024C07
-_08029BEC: .4byte gUnknown_02024C10
-_08029BF0: .4byte gUnknown_02024BEC
-_08029BF4: .4byte gBaseStats
-_08029BF8: .4byte gBattleMoves
-_08029BFC: .4byte gUnknown_02024BE6
-_08029C00: .4byte gBattleMons
-_08029C04: .4byte gUnknown_02024C08
-_08029C08: .4byte gUnknown_02024D28
-_08029C0C:
- mov r0, r8
- cmp r0, 0
- beq _08029C2C
- ldr r3, _08029C28 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- b _08029C40
- .align 2, 0
-_08029C28: .4byte gUnknown_02024C10
-_08029C2C:
- ldr r3, _08029C54 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
-_08029C40:
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08029C46:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029C54: .4byte gUnknown_02024C10
- thumb_func_end atkC4_802B910
-
- thumb_func_start atkC5_hidepreattack
-atkC5_hidepreattack: @ 8029C58
- push {lr}
- ldr r0, _08029C6C @ =gUnknown_02024BE6
- ldrh r1, [r0]
- cmp r1, 0x5B
- beq _08029C98
- cmp r1, 0x5B
- bgt _08029C70
- cmp r1, 0x13
- beq _08029C7C
- b _08029CC4
- .align 2, 0
-_08029C6C: .4byte gUnknown_02024BE6
-_08029C70:
- ldr r0, _08029C8C @ =0x00000123
- cmp r1, r0
- beq _08029CB0
- adds r0, 0x31
- cmp r1, r0
- bne _08029CC4
-_08029C7C:
- ldr r2, _08029C90 @ =gUnknown_02024C98
- ldr r0, _08029C94 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x40
- b _08029CC0
- .align 2, 0
-_08029C8C: .4byte 0x00000123
-_08029C90: .4byte gUnknown_02024C98
-_08029C94: .4byte gUnknown_02024C07
-_08029C98:
- ldr r2, _08029CA8 @ =gUnknown_02024C98
- ldr r0, _08029CAC @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x80
- b _08029CC0
- .align 2, 0
-_08029CA8: .4byte gUnknown_02024C98
-_08029CAC: .4byte gUnknown_02024C07
-_08029CB0:
- ldr r2, _08029CD0 @ =gUnknown_02024C98
- ldr r0, _08029CD4 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 11
-_08029CC0:
- orrs r0, r2
- str r0, [r1]
-_08029CC4:
- ldr r1, _08029CD8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029CD0: .4byte gUnknown_02024C98
-_08029CD4: .4byte gUnknown_02024C07
-_08029CD8: .4byte gUnknown_02024C10
- thumb_func_end atkC5_hidepreattack
-
- thumb_func_start atkC6_unhidepostattack
-atkC6_unhidepostattack: @ 8029CDC
- push {lr}
- ldr r0, _08029CF0 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- cmp r1, 0x5B
- beq _08029D20
- cmp r1, 0x5B
- bgt _08029CF4
- cmp r1, 0x13
- beq _08029D00
- b _08029D4E
- .align 2, 0
-_08029CF0: .4byte gUnknown_02024BE6
-_08029CF4:
- ldr r0, _08029D14 @ =0x00000123
- cmp r1, r0
- beq _08029D3C
- adds r0, 0x31
- cmp r1, r0
- bne _08029D4E
-_08029D00:
- ldr r2, _08029D18 @ =gUnknown_02024C98
- ldr r0, _08029D1C @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x41
- negs r2, r2
- b _08029D4A
- .align 2, 0
-_08029D14: .4byte 0x00000123
-_08029D18: .4byte gUnknown_02024C98
-_08029D1C: .4byte gUnknown_02024C07
-_08029D20:
- ldr r2, _08029D34 @ =gUnknown_02024C98
- ldr r0, _08029D38 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x81
- negs r2, r2
- b _08029D4A
- .align 2, 0
-_08029D34: .4byte gUnknown_02024C98
-_08029D38: .4byte gUnknown_02024C07
-_08029D3C:
- ldr r2, _08029D5C @ =gUnknown_02024C98
- ldr r0, _08029D60 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- ldr r2, _08029D64 @ =0xfffbffff
-_08029D4A:
- ands r0, r2
- str r0, [r1]
-_08029D4E:
- ldr r1, _08029D68 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029D5C: .4byte gUnknown_02024C98
-_08029D60: .4byte gUnknown_02024C07
-_08029D64: .4byte 0xfffbffff
-_08029D68: .4byte gUnknown_02024C10
- thumb_func_end atkC6_unhidepostattack
-
- thumb_func_start atkC7_setminimize
-atkC7_setminimize: @ 8029D6C
- push {lr}
- ldr r0, _08029D9C @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _08029D90
- ldr r2, _08029DA0 @ =gUnknown_02024C98
- ldr r0, _08029DA4 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 1
- orrs r0, r2
- str r0, [r1]
-_08029D90:
- ldr r1, _08029DA8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029D9C: .4byte gUnknown_02024C6C
-_08029DA0: .4byte gUnknown_02024C98
-_08029DA4: .4byte gUnknown_02024C07
-_08029DA8: .4byte gUnknown_02024C10
- thumb_func_end atkC7_setminimize
-
- thumb_func_start sub_8029DAC
-sub_8029DAC: @ 8029DAC
- push {lr}
- ldr r3, _08029DD0 @ =word_2024DB8
- ldrh r1, [r3]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08029DDC
- ldr r2, _08029DD4 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08029DD8 @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _08029DEA
- .align 2, 0
-_08029DD0: .4byte word_2024DB8
-_08029DD4: .4byte gUnknown_02024C68
-_08029DD8: .4byte gUnknown_02024D1E
-_08029DDC:
- strh r2, [r3]
- ldr r0, _08029DF8 @ =gUnknown_02024D1E
- movs r1, 0x5
- strb r1, [r0, 0x5]
- ldr r0, _08029DFC @ =gUnknown_02024DBC
- adds r0, 0x28
- strb r1, [r0]
-_08029DEA:
- ldr r1, _08029E00 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029DF8: .4byte gUnknown_02024D1E
-_08029DFC: .4byte gUnknown_02024DBC
-_08029E00: .4byte gUnknown_02024C10
- thumb_func_end sub_8029DAC
-
- thumb_func_start atkC9_jumpifattackandspecialattackcannotfall
-atkC9_jumpifattackandspecialattackcannotfall: @ 8029E04
- push {r4,lr}
- ldr r2, _08029E48 @ =gBattleMons
- ldr r0, _08029E4C @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- adds r3, r2, 0
- cmp r0, 0
- bne _08029E58
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bne _08029E58
- ldr r0, _08029E50 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- beq _08029E58
- ldr r3, _08029E54 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08029E84
- .align 2, 0
-_08029E48: .4byte gBattleMons
-_08029E4C: .4byte gUnknown_02024C08
-_08029E50: .4byte gUnknown_02024D1E
-_08029E54: .4byte gUnknown_02024C10
-_08029E58:
- ldr r4, _08029E8C @ =gUnknown_02024A60
- ldr r0, _08029E90 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r2, _08029E94 @ =gUnknown_02024BEC
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- str r0, [r2]
- ldr r1, _08029E98 @ =0x00007fff
- movs r0, 0
- bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08029E9C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08029E84:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08029E8C: .4byte gUnknown_02024A60
-_08029E90: .4byte gUnknown_02024C07
-_08029E94: .4byte gUnknown_02024BEC
-_08029E98: .4byte 0x00007fff
-_08029E9C: .4byte gUnknown_02024C10
- thumb_func_end atkC9_jumpifattackandspecialattackcannotfall
-
- thumb_func_start atkCA_setforcedtarget
-atkCA_setforcedtarget: @ 8029EA0
- push {r4,r5,lr}
- ldr r4, _08029EE0 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- ldr r5, _08029EE4 @ =gUnknown_02024C80
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r0, 0x1
- strb r0, [r1, 0x8]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r4]
- strb r0, [r1, 0x9]
- ldr r1, _08029EE8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08029EE0: .4byte gUnknown_02024C07
-_08029EE4: .4byte gUnknown_02024C80
-_08029EE8: .4byte gUnknown_02024C10
- thumb_func_end atkCA_setforcedtarget
-
- thumb_func_start atkCB_setcharge
-atkCB_setcharge: @ 8029EEC
- push {r4,lr}
- ldr r0, _08029F40 @ =gUnknown_02024C98
- ldr r3, _08029F44 @ =gUnknown_02024C07
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 2
- orrs r0, r2
- str r0, [r1]
- ldr r4, _08029F48 @ =gUnknown_02024CA8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0, 0x12]
- movs r1, 0x10
- negs r1, r1
- ands r1, r2
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0, 0x12]
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0, 0x12]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x12]
- ldr r1, _08029F4C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08029F40: .4byte gUnknown_02024C98
-_08029F44: .4byte gUnknown_02024C07
-_08029F48: .4byte gUnknown_02024CA8
-_08029F4C: .4byte gUnknown_02024C10
- thumb_func_end atkCB_setcharge
-
- thumb_func_start atkCC_callterrainattack
-atkCC_callterrainattack: @ 8029F50
- push {r4,lr}
- ldr r2, _08029FA0 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _08029FA4 @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _08029FA8 @ =gUnknown_02024BE6
- ldr r1, _08029FAC @ =gNaturePowerMoves
- ldr r0, _08029FB0 @ =gUnknown_0300428C
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08029FB4 @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r3, _08029FB8 @ =gUnknown_081D6BBC
- ldr r2, _08029FBC @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- bl b_movescr_stack_push
- ldr r1, _08029FC0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08029FA0: .4byte gUnknown_02024C6C
-_08029FA4: .4byte 0xfffffbff
-_08029FA8: .4byte gUnknown_02024BE6
-_08029FAC: .4byte gNaturePowerMoves
-_08029FB0: .4byte gUnknown_0300428C
-_08029FB4: .4byte gUnknown_02024C08
-_08029FB8: .4byte gUnknown_081D6BBC
-_08029FBC: .4byte gBattleMoves
-_08029FC0: .4byte gUnknown_02024C10
- thumb_func_end atkCC_callterrainattack
-
- thumb_func_start atkCD_cureifburnedparalysedorpoisoned
-atkCD_cureifburnedparalysedorpoisoned: @ 8029FC4
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r1, _0802A010 @ =gBattleMons
- ldr r3, _0802A014 @ =gUnknown_02024C07
- ldrb r0, [r3]
- movs r6, 0x58
- muls r0, r6
- adds r5, r1, 0
- adds r5, 0x4C
- adds r2, r0, r5
- ldr r0, [r2]
- movs r1, 0xD8
- ands r0, r1
- cmp r0, 0
- beq _0802A020
- movs r0, 0
- str r0, [r2]
- ldr r1, _0802A018 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r4, _0802A01C @ =gUnknown_02024A60
- ldrb r0, [r3]
- strb r0, [r4]
- ldrb r0, [r4]
- muls r0, r6
- adds r0, r5
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _0802A03A
- .align 2, 0
-_0802A010: .4byte gBattleMons
-_0802A014: .4byte gUnknown_02024C07
-_0802A018: .4byte gUnknown_02024C10
-_0802A01C: .4byte gUnknown_02024A60
-_0802A020:
- ldr r3, _0802A044 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A03A:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A044: .4byte gUnknown_02024C10
- thumb_func_end atkCD_cureifburnedparalysedorpoisoned
-
- thumb_func_start atkCE_settorment
-atkCE_settorment: @ 802A048
- push {lr}
- ldr r1, _0802A080 @ =gBattleMons
- ldr r0, _0802A084 @ =gUnknown_02024C08
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 24
- cmp r1, 0
- bge _0802A08C
- ldr r3, _0802A088 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A098
- .align 2, 0
-_0802A080: .4byte gBattleMons
-_0802A084: .4byte gUnknown_02024C08
-_0802A088: .4byte gUnknown_02024C10
-_0802A08C:
- orrs r1, r2
- str r1, [r0]
- ldr r1, _0802A09C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A098:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A09C: .4byte gUnknown_02024C10
- thumb_func_end atkCE_settorment
-
- thumb_func_start atkCF_jumpifnodamage
-atkCF_jumpifnodamage: @ 802A0A0
- push {lr}
- ldr r2, _0802A0CC @ =gUnknown_02024D28
- ldr r0, _0802A0D0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0802A0C0
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802A0D8
-_0802A0C0:
- ldr r1, _0802A0D4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A0F2
- .align 2, 0
-_0802A0CC: .4byte gUnknown_02024D28
-_0802A0D0: .4byte gUnknown_02024C07
-_0802A0D4: .4byte gUnknown_02024C10
-_0802A0D8:
- ldr r3, _0802A0F8 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A0F2:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A0F8: .4byte gUnknown_02024C10
- thumb_func_end atkCF_jumpifnodamage
-
- thumb_func_start atkD0_settaunt
-atkD0_settaunt: @ 802A0FC
- push {r4,lr}
- ldr r4, _0802A140 @ =gUnknown_02024CA8
- ldr r3, _0802A144 @ =gUnknown_02024C08
- ldrb r0, [r3]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r2, r1, r4
- ldrb r1, [r2, 0x13]
- lsls r0, r1, 28
- cmp r0, 0
- bne _0802A14C
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x13]
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0, 0x13]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x13]
- ldr r1, _0802A148 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A166
- .align 2, 0
-_0802A140: .4byte gUnknown_02024CA8
-_0802A144: .4byte gUnknown_02024C08
-_0802A148: .4byte gUnknown_02024C10
-_0802A14C:
- ldr r3, _0802A16C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A166:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A16C: .4byte gUnknown_02024C10
- thumb_func_end atkD0_settaunt
-
- thumb_func_start sub_802A170
-sub_802A170: @ 802A170
- push {r4,lr}
- ldr r4, _0802A1D8 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r3, _0802A1DC @ =gUnknown_02024C08
- strb r0, [r3]
- ldr r0, _0802A1E0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802A1F4
- ldr r0, _0802A1E4 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _0802A1E8 @ =gBitTable
- ldrb r3, [r3]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802A1F4
- ldr r1, _0802A1EC @ =gUnknown_02024D28
- ldrb r0, [r4]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- blt _0802A1F4
- lsls r0, r3, 4
- adds r2, r0, r1
- ldrb r1, [r2]
- lsls r0, r1, 28
- cmp r0, 0
- blt _0802A1F4
- movs r0, 0x8
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802A1F0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A20E
- .align 2, 0
-_0802A1D8: .4byte gUnknown_02024C07
-_0802A1DC: .4byte gUnknown_02024C08
-_0802A1E0: .4byte gUnknown_020239F8
-_0802A1E4: .4byte gUnknown_02024C0C
-_0802A1E8: .4byte gBitTable
-_0802A1EC: .4byte gUnknown_02024D28
-_0802A1F0: .4byte gUnknown_02024C10
-_0802A1F4:
- ldr r3, _0802A214 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A20E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A214: .4byte gUnknown_02024C10
- thumb_func_end sub_802A170
-
- thumb_func_start sub_802A218
-sub_802A218: @ 802A218
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _0802A30C @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0802A24C
- ldr r0, _0802A310 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0802A314 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0802A24C
- ldr r0, _0802A318 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _0802A2EE
-_0802A24C:
- ldr r4, _0802A30C @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0802A310 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0802A314 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0802A290
- ldr r0, _0802A318 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0802A290
- ldr r0, _0802A31C @ =gUnknown_02024DBC
- adds r0, 0x29
- adds r0, r2, r0
- ldrb r1, [r0]
- ldr r3, _0802A320 @ =gBitTable
- ldr r2, _0802A324 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802A2EE
-_0802A290:
- ldr r0, _0802A328 @ =gBattleMons
- mov r9, r0
- ldr r1, _0802A30C @ =gUnknown_02024C07
- ldrb r4, [r1]
- movs r2, 0x58
- mov r8, r2
- mov r0, r8
- muls r0, r4
- mov r3, r9
- adds r5, r0, r3
- ldrh r3, [r5, 0x2E]
- adds r1, r3, 0
- cmp r1, 0
- bne _0802A2BE
- ldr r0, _0802A32C @ =gUnknown_02024C08
- ldrb r0, [r0]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- beq _0802A2EE
-_0802A2BE:
- cmp r1, 0xAF
- beq _0802A2EE
- ldr r7, _0802A32C @ =gUnknown_02024C08
- ldrb r0, [r7]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- mov r1, r9
- adds r2, r0, r1
- ldrh r1, [r2, 0x2E]
- cmp r1, 0xAF
- beq _0802A2EE
- adds r0, r3, 0
- subs r0, 0x79
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bls _0802A2EE
- adds r0, r1, 0
- subs r0, 0x79
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bhi _0802A334
-_0802A2EE:
- ldr r3, _0802A330 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A49A
- .align 2, 0
-_0802A30C: .4byte gUnknown_02024C07
-_0802A310: .4byte gUnknown_020239F8
-_0802A314: .4byte 0x00000902
-_0802A318: .4byte gTrainerBattleOpponent
-_0802A31C: .4byte gUnknown_02024DBC
-_0802A320: .4byte gBitTable
-_0802A324: .4byte gUnknown_02024A6A
-_0802A328: .4byte gBattleMons
-_0802A32C: .4byte gUnknown_02024C08
-_0802A330: .4byte gUnknown_02024C10
-_0802A334:
- adds r0, r2, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3C
- bne _0802A36C
- ldr r1, _0802A360 @ =gUnknown_02024C10
- ldr r0, _0802A364 @ =gUnknown_081D9913
- str r0, [r1]
- ldr r1, _0802A368 @ =byte_2024C06
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- ldrb r1, [r1]
- bl sub_81074C4
- b _0802A49A
- .align 2, 0
-_0802A360: .4byte gUnknown_02024C10
-_0802A364: .4byte gUnknown_081D9913
-_0802A368: .4byte byte_2024C06
-_0802A36C:
- lsls r0, r4, 1
- ldr r4, _0802A458 @ =0x020160f0
- adds r6, r0, r4
- ldrh r5, [r5, 0x2E]
- mov r10, r5
- strh r1, [r6]
- ldr r3, _0802A45C @ =gUnknown_02024C07
- ldrb r0, [r3]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- mov r3, r10
- strh r3, [r0, 0x2E]
- ldr r5, _0802A460 @ =gUnknown_02024A60
- ldr r1, _0802A45C @ =gUnknown_02024C07
- ldrb r0, [r1]
- strb r0, [r5]
- str r6, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldr r2, _0802A45C @ =gUnknown_02024C07
- ldrb r0, [r2]
- bl dp01_battle_side_mark_buffer_for_execution
- ldrb r0, [r7]
- strb r0, [r5]
- ldrb r0, [r7]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- mov r1, r9
- adds r1, 0x2E
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, _0802A464 @ =0xfffe9f10
- adds r4, r0
- ldrb r0, [r7]
- lsls r0, 1
- ldr r2, _0802A468 @ =0x000160e8
- adds r0, r2
- adds r0, r4
- movs r1, 0
- strb r1, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _0802A46C @ =0x000160e9
- adds r0, r1
- adds r0, r4
- movs r3, 0
- strb r3, [r0]
- ldr r3, _0802A45C @ =gUnknown_02024C07
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- adds r0, r4
- movs r2, 0
- strb r2, [r0]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- adds r0, r4
- strb r2, [r0]
- ldr r1, _0802A470 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r1, _0802A474 @ =gUnknown_030041C0
- movs r3, 0xFD
- strb r3, [r1]
- movs r2, 0xA
- strb r2, [r1, 0x1]
- ldrh r0, [r6]
- strb r0, [r1, 0x2]
- ldrh r0, [r6]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0802A478 @ =gUnknown_03004290
- strb r3, [r1]
- strb r2, [r1, 0x1]
- mov r3, r10
- strb r3, [r1, 0x2]
- mov r2, r10
- lsrs r0, r2, 8
- strb r0, [r1, 0x3]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x4]
- cmp r2, 0
- beq _0802A480
- ldrh r0, [r6]
- cmp r0, 0
- beq _0802A494
- ldr r1, _0802A47C @ =gUnknown_02024D1E
- movs r0, 0x2
- b _0802A498
- .align 2, 0
-_0802A458: .4byte 0x020160f0
-_0802A45C: .4byte gUnknown_02024C07
-_0802A460: .4byte gUnknown_02024A60
-_0802A464: .4byte 0xfffe9f10
-_0802A468: .4byte 0x000160e8
-_0802A46C: .4byte 0x000160e9
-_0802A470: .4byte gUnknown_02024C10
-_0802A474: .4byte gUnknown_030041C0
-_0802A478: .4byte gUnknown_03004290
-_0802A47C: .4byte gUnknown_02024D1E
-_0802A480:
- ldrh r0, [r6]
- cmp r0, 0
- beq _0802A494
- ldr r0, _0802A490 @ =gUnknown_02024D1E
- movs r3, 0
- strb r3, [r0, 0x5]
- b _0802A49A
- .align 2, 0
-_0802A490: .4byte gUnknown_02024D1E
-_0802A494:
- ldr r1, _0802A4AC @ =gUnknown_02024D1E
- movs r0, 0x1
-_0802A498:
- strb r0, [r1, 0x5]
-_0802A49A:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A4AC: .4byte gUnknown_02024D1E
- thumb_func_end sub_802A218
-
- thumb_func_start sub_802A4B0
-sub_802A4B0: @ 802A4B0
- push {r4,lr}
- ldr r3, _0802A4F0 @ =gBattleMons
- ldr r4, _0802A4F4 @ =gUnknown_02024C08
- ldrb r0, [r4]
- movs r2, 0x58
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r1, [r0]
- adds r0, r1, 0
- cmp r0, 0
- beq _0802A504
- cmp r0, 0x19
- beq _0802A504
- ldr r0, _0802A4F8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- strb r1, [r0]
- ldr r1, _0802A4FC @ =byte_2024C06
- ldrb r0, [r4]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _0802A500 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A51E
- .align 2, 0
-_0802A4F0: .4byte gBattleMons
-_0802A4F4: .4byte gUnknown_02024C08
-_0802A4F8: .4byte gUnknown_02024C07
-_0802A4FC: .4byte byte_2024C06
-_0802A500: .4byte gUnknown_02024C10
-_0802A504:
- ldr r3, _0802A524 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A51E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A524: .4byte gUnknown_02024C10
- thumb_func_end sub_802A4B0
-
- thumb_func_start atkD4_802C408
-atkD4_802C408: @ 802A528
- push {r4-r7,lr}
- ldr r7, _0802A53C @ =gUnknown_02024C10
- ldr r2, [r7]
- ldrb r3, [r2, 0x1]
- cmp r3, 0
- beq _0802A540
- cmp r3, 0x1
- beq _0802A578
- b _0802A5F4
- .align 2, 0
-_0802A53C: .4byte gUnknown_02024C10
-_0802A540:
- ldr r1, _0802A56C @ =gUnknown_02024DBC
- ldr r4, _0802A570 @ =gUnknown_02024C07
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r5, [r4]
- adds r3, r0, r5
- ldrb r0, [r3]
- cmp r0, 0
- bne _0802A5C4
- movs r0, 0x2
- strb r0, [r3]
- ldrb r0, [r4]
- adds r1, 0x24
- adds r1, r0, r1
- ldr r2, _0802A574 @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r0, [r7]
- adds r0, 0x6
- b _0802A5F2
- .align 2, 0
-_0802A56C: .4byte gUnknown_02024DBC
-_0802A570: .4byte gUnknown_02024C07
-_0802A574: .4byte gUnknown_02024A6A
-_0802A578:
- ldr r1, _0802A5DC @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r4, _0802A5E0 @ =gUnknown_02024C08
- ldrb r0, [r4]
- strb r0, [r1, 0x2]
- ldr r0, _0802A5E4 @ =gUnknown_02024DBC
- adds r0, 0x24
- ldrb r5, [r4]
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0802A5E8 @ =gUnknown_02024BEC
- ldr r6, _0802A5EC @ =gBattleMons
- ldrb r0, [r4]
- movs r5, 0x58
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _0802A5B0
- str r3, [r1]
-_0802A5B0:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r6
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- bne _0802A5F0
-_0802A5C4:
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r7]
- b _0802A5F4
- .align 2, 0
-_0802A5DC: .4byte gUnknown_030041C0
-_0802A5E0: .4byte gUnknown_02024C08
-_0802A5E4: .4byte gUnknown_02024DBC
-_0802A5E8: .4byte gUnknown_02024BEC
-_0802A5EC: .4byte gBattleMons
-_0802A5F0:
- adds r0, r2, 0x6
-_0802A5F2:
- str r0, [r7]
-_0802A5F4:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atkD4_802C408
-
- thumb_func_start sub_802A5FC
-sub_802A5FC: @ 802A5FC
- push {lr}
- ldr r1, _0802A634 @ =gUnknown_02024C98
- ldr r0, _0802A638 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 3
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0802A640
- ldr r3, _0802A63C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A64C
- .align 2, 0
-_0802A634: .4byte gUnknown_02024C98
-_0802A638: .4byte gUnknown_02024C07
-_0802A63C: .4byte gUnknown_02024C10
-_0802A640:
- orrs r1, r3
- str r1, [r2]
- ldr r1, _0802A650 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A64C:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A650: .4byte gUnknown_02024C10
- thumb_func_end sub_802A5FC
-
- thumb_func_start atkD6_doubledamagedealtifdamaged
-atkD6_doubledamagedealtifdamaged: @ 802A654
- push {lr}
- ldr r3, _0802A6A4 @ =gUnknown_02024D28
- ldr r0, _0802A6A8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r0, r3, 0x4
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802A674
- adds r0, r2, r3
- ldr r1, _0802A6AC @ =gUnknown_02024C08
- ldrb r0, [r0, 0xC]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0802A68C
-_0802A674:
- adds r0, r3, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802A696
- adds r0, r2, r3
- ldr r1, _0802A6AC @ =gUnknown_02024C08
- ldrb r0, [r0, 0xD]
- ldrb r1, [r1]
- cmp r0, r1
- bne _0802A696
-_0802A68C:
- ldr r0, _0802A6B0 @ =0x02000000
- ldr r1, _0802A6B4 @ =0x0001601f
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
-_0802A696:
- ldr r1, _0802A6B8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802A6A4: .4byte gUnknown_02024D28
-_0802A6A8: .4byte gUnknown_02024C07
-_0802A6AC: .4byte gUnknown_02024C08
-_0802A6B0: .4byte 0x02000000
-_0802A6B4: .4byte 0x0001601f
-_0802A6B8: .4byte gUnknown_02024C10
- thumb_func_end atkD6_doubledamagedealtifdamaged
-
- thumb_func_start sub_802A6BC
-sub_802A6BC: @ 802A6BC
- push {r4,lr}
- ldr r1, _0802A700 @ =gUnknown_02024C98
- ldr r0, _0802A704 @ =gUnknown_02024C08
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r4, r0, r1
- ldr r2, [r4]
- movs r0, 0xC0
- lsls r0, 5
- ands r0, r2
- cmp r0, 0
- bne _0802A6E4
- ldr r1, _0802A708 @ =gBattleMons
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x4C
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802A710
-_0802A6E4:
- ldr r3, _0802A70C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A720
- .align 2, 0
-_0802A700: .4byte gUnknown_02024C98
-_0802A704: .4byte gUnknown_02024C08
-_0802A708: .4byte gBattleMons
-_0802A70C: .4byte gUnknown_02024C10
-_0802A710:
- movs r0, 0x80
- lsls r0, 5
- orrs r2, r0
- str r2, [r4]
- ldr r1, _0802A728 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A720:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A728: .4byte gUnknown_02024C10
- thumb_func_end sub_802A6BC
-
- thumb_func_start atkD8_setdamagetohealthdifference
-atkD8_setdamagetohealthdifference: @ 802A72C
- push {lr}
- ldr r2, _0802A768 @ =gBattleMons
- ldr r0, _0802A76C @ =gUnknown_02024C08
- ldrb r0, [r0]
- movs r1, 0x58
- muls r0, r1
- adds r3, r0, r2
- ldr r0, _0802A770 @ =gUnknown_02024C07
- ldrb r0, [r0]
- muls r0, r1
- adds r1, r0, r2
- ldrh r0, [r3, 0x28]
- ldrh r2, [r1, 0x28]
- cmp r0, r2
- bhi _0802A778
- ldr r3, _0802A774 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A78A
- .align 2, 0
-_0802A768: .4byte gBattleMons
-_0802A76C: .4byte gUnknown_02024C08
-_0802A770: .4byte gUnknown_02024C07
-_0802A774: .4byte gUnknown_02024C10
-_0802A778:
- ldr r2, _0802A790 @ =gUnknown_02024BEC
- ldrh r0, [r3, 0x28]
- ldrh r1, [r1, 0x28]
- subs r0, r1
- str r0, [r2]
- ldr r1, _0802A794 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A78A:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A790: .4byte gUnknown_02024BEC
-_0802A794: .4byte gUnknown_02024C10
- thumb_func_end atkD8_setdamagetohealthdifference
-
- thumb_func_start atkD9_scaledamagebyhealthratio
-atkD9_scaledamagebyhealthratio: @ 802A798
- push {r4,lr}
- ldr r4, _0802A7E4 @ =gUnknown_02024DEC
- ldrh r0, [r4]
- cmp r0, 0
- bne _0802A7D4
- ldr r2, _0802A7E8 @ =gBattleMoves
- ldr r0, _0802A7EC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r3, [r0, 0x1]
- ldr r2, _0802A7F0 @ =gBattleMons
- ldr r0, _0802A7F4 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r0, [r1, 0x28]
- muls r0, r3
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- strh r0, [r4]
- lsls r0, 16
- cmp r0, 0
- bne _0802A7D4
- movs r0, 0x1
- strh r0, [r4]
-_0802A7D4:
- ldr r1, _0802A7F8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A7E4: .4byte gUnknown_02024DEC
-_0802A7E8: .4byte gBattleMoves
-_0802A7EC: .4byte gUnknown_02024BE6
-_0802A7F0: .4byte gBattleMons
-_0802A7F4: .4byte gUnknown_02024C07
-_0802A7F8: .4byte gUnknown_02024C10
- thumb_func_end atkD9_scaledamagebyhealthratio
-
- thumb_func_start atkDA_abilityswap
-atkDA_abilityswap: @ 802A7FC
- push {r4-r6,lr}
- ldr r5, _0802A860 @ =gBattleMons
- ldr r0, _0802A864 @ =gUnknown_02024C07
- ldrb r0, [r0]
- movs r4, 0x58
- muls r0, r4
- adds r0, r5
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r1, [r2]
- cmp r1, 0
- bne _0802A824
- ldr r0, _0802A868 @ =gUnknown_02024C08
- ldrb r0, [r0]
- muls r0, r4
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802A844
-_0802A824:
- cmp r1, 0x19
- beq _0802A844
- ldr r6, _0802A868 @ =gUnknown_02024C08
- ldrb r0, [r6]
- muls r0, r4
- adds r0, r5
- adds r0, 0x20
- ldrb r3, [r0]
- cmp r3, 0x19
- beq _0802A844
- ldr r0, _0802A86C @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0802A874
-_0802A844:
- ldr r3, _0802A870 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A88A
- .align 2, 0
-_0802A860: .4byte gBattleMons
-_0802A864: .4byte gUnknown_02024C07
-_0802A868: .4byte gUnknown_02024C08
-_0802A86C: .4byte gUnknown_02024C68
-_0802A870: .4byte gUnknown_02024C10
-_0802A874:
- ldrb r1, [r2]
- strb r3, [r2]
- ldrb r0, [r6]
- muls r0, r4
- adds r0, r5
- adds r0, 0x20
- strb r1, [r0]
- ldr r1, _0802A890 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A88A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A890: .4byte gUnknown_02024C10
- thumb_func_end atkDA_abilityswap
-
- thumb_func_start atkDB_imprisoneffect
-atkDB_imprisoneffect: @ 802A894
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r0, 0
- mov r8, r0
- ldr r1, _0802A8B8 @ =gUnknown_02024C98
- ldr r0, _0802A8BC @ =gUnknown_02024C07
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _0802A8E8
- b _0802A95E
- .align 2, 0
-_0802A8B8: .4byte gUnknown_02024C98
-_0802A8BC: .4byte gUnknown_02024C07
-_0802A8C0:
- ldr r0, _0802A8E0 @ =gUnknown_02024C98
- mov r2, r9
- ldrb r1, [r2]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 6
- orrs r0, r2
- str r0, [r1]
- ldr r1, _0802A8E4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A956
- .align 2, 0
-_0802A8E0: .4byte gUnknown_02024C98
-_0802A8E4: .4byte gUnknown_02024C10
-_0802A8E8:
- adds r0, r2, 0
- bl sub_801529C
- movs r6, 0
- b _0802A94E
-_0802A8F2:
- adds r0, r6, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r8, r0
- beq _0802A948
- movs r4, 0
- ldr r7, _0802A984 @ =gUnknown_02024C07
- mov r9, r7
- ldr r0, _0802A988 @ =gBattleMons
- mov r12, r0
- mov r1, r9
- ldrb r0, [r1]
- mov r2, r12
- adds r2, 0xC
- movs r1, 0x58
- muls r0, r1
- adds r3, r0, r2
- adds r5, r6, 0
- muls r5, r1
-_0802A91C:
- movs r2, 0
- ldrh r1, [r3]
- mov r0, r12
- adds r0, 0xC
- adds r0, r5, r0
-_0802A926:
- ldrh r7, [r0]
- cmp r1, r7
- bne _0802A930
- cmp r1, 0
- bne _0802A938
-_0802A930:
- adds r0, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- ble _0802A926
-_0802A938:
- cmp r2, 0x4
- bne _0802A944
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0802A91C
-_0802A944:
- cmp r4, 0x4
- bne _0802A8C0
-_0802A948:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0802A94E:
- ldr r0, _0802A98C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r6, r0
- bcc _0802A8F2
-_0802A956:
- ldr r0, _0802A98C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r6, r0
- bne _0802A978
-_0802A95E:
- ldr r3, _0802A990 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802A978:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A984: .4byte gUnknown_02024C07
-_0802A988: .4byte gBattleMons
-_0802A98C: .4byte gUnknown_02024A68
-_0802A990: .4byte gUnknown_02024C10
- thumb_func_end atkDB_imprisoneffect
-
- thumb_func_start atkDC_setgrudge
-atkDC_setgrudge: @ 802A994
- push {lr}
- ldr r1, _0802A9CC @ =gUnknown_02024C98
- ldr r0, _0802A9D0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 7
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0802A9D8
- ldr r3, _0802A9D4 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802A9E4
- .align 2, 0
-_0802A9CC: .4byte gUnknown_02024C98
-_0802A9D0: .4byte gUnknown_02024C07
-_0802A9D4: .4byte gUnknown_02024C10
-_0802A9D8:
- orrs r1, r3
- str r1, [r2]
- ldr r1, _0802A9E8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A9E4:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A9E8: .4byte gUnknown_02024C10
- thumb_func_end atkDC_setgrudge
-
- thumb_func_start atkDD_weightdamagecalculation
-atkDD_weightdamagecalculation: @ 802A9EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r2, _0802AA50 @ =gWeightDamage
- ldrh r0, [r2]
- ldr r1, _0802AA54 @ =0x0000ffff
- cmp r0, r1
- beq _0802AA64
- adds r6, r2, 0
- ldr r0, _0802AA58 @ =gBattleMons
- mov r8, r0
- adds r7, r1, 0
- adds r4, r6, 0
-_0802AA08:
- ldr r0, _0802AA5C @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r8
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D54
- ldrh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0802AA36
- adds r4, 0x4
- adds r5, 0x2
- ldrh r0, [r4]
- cmp r0, r7
- bne _0802AA08
-_0802AA36:
- lsls r0, r5, 1
- adds r0, r6
- ldrh r1, [r0]
- ldr r0, _0802AA54 @ =0x0000ffff
- cmp r1, r0
- beq _0802AA64
- ldr r0, _0802AA60 @ =gUnknown_02024DEC
- adds r1, r5, 0x1
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- strh r1, [r0]
- b _0802AA6A
- .align 2, 0
-_0802AA50: .4byte gWeightDamage
-_0802AA54: .4byte 0x0000ffff
-_0802AA58: .4byte gBattleMons
-_0802AA5C: .4byte gUnknown_02024C08
-_0802AA60: .4byte gUnknown_02024DEC
-_0802AA64:
- ldr r1, _0802AA7C @ =gUnknown_02024DEC
- movs r0, 0x78
- strh r0, [r1]
-_0802AA6A:
- ldr r1, _0802AA80 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802AA7C: .4byte gUnknown_02024DEC
-_0802AA80: .4byte gUnknown_02024C10
- thumb_func_end atkDD_weightdamagecalculation
-
- thumb_func_start atkDE_asistattackselect
-atkDE_asistattackselect: @ 802AA84
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- mov r10, r0
- ldr r0, _0802AB9C @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_get_per_side_status
- movs r1, 0x1
- ands r1, r0
- ldr r0, _0802ABA0 @ =gPlayerParty
- str r0, [sp]
- cmp r1, 0
- beq _0802AAAC
- ldr r1, _0802ABA4 @ =gEnemyParty
- str r1, [sp]
-_0802AAAC:
- movs r2, 0
-_0802AAAE:
- ldr r1, _0802ABA8 @ =gUnknown_02024A6A
- ldr r0, _0802AB9C @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- adds r1, r2, 0x1
- str r1, [sp, 0x4]
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802AB54
- movs r0, 0x64
- adds r6, r2, 0
- muls r6, r0
- ldr r0, [sp]
- adds r4, r0, r6
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _0802AB54
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0802AB54
- movs r5, 0
- ldr r1, _0802ABAC @ =0x0000ffff
- mov r8, r1
- mov r9, r6
- mov r1, r10
- lsls r0, r1, 1
- ldr r1, _0802ABB0 @ =0x02016024
- adds r6, r0, r1
-_0802AAF8:
- movs r7, 0
- adds r1, r5, 0
- adds r1, 0xD
- ldr r0, [sp]
- add r0, r9
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl sub_802838C
- lsls r0, 24
- adds r1, r5, 0x1
- cmp r0, 0
- bne _0802AB4E
- ldr r0, _0802ABB4 @ =gUnknown_081FACFE
- ldrh r2, [r0]
- adds r3, r0, 0
- cmp r2, r8
- beq _0802AB42
- cmp r4, r2
- beq _0802AB38
- ldr r5, _0802ABAC @ =0x0000ffff
- adds r2, r3, 0
-_0802AB2A:
- adds r2, 0x2
- adds r7, 0x1
- ldrh r0, [r2]
- cmp r0, r5
- beq _0802AB42
- cmp r4, r0
- bne _0802AB2A
-_0802AB38:
- lsls r0, r7, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r8
- bne _0802AB4E
-_0802AB42:
- cmp r4, 0
- beq _0802AB4E
- strh r4, [r6]
- adds r6, 0x2
- movs r0, 0x1
- add r10, r0
-_0802AB4E:
- adds r5, r1, 0
- cmp r5, 0x3
- ble _0802AAF8
-_0802AB54:
- ldr r2, [sp, 0x4]
- cmp r2, 0x5
- ble _0802AAAE
- mov r1, r10
- cmp r1, 0
- beq _0802ABCC
- ldr r2, _0802ABB8 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0802ABBC @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _0802ABC0 @ =gUnknown_02024BEA
- bl Random
- movs r1, 0xFF
- ands r1, r0
- mov r0, r10
- muls r0, r1
- asrs r0, 8
- lsls r0, 1
- ldr r1, _0802ABB0 @ =0x02016024
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _0802ABC4 @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r1, _0802ABC8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802ABE6
- .align 2, 0
-_0802AB9C: .4byte gUnknown_02024C07
-_0802ABA0: .4byte gPlayerParty
-_0802ABA4: .4byte gEnemyParty
-_0802ABA8: .4byte gUnknown_02024A6A
-_0802ABAC: .4byte 0x0000ffff
-_0802ABB0: .4byte 0x02016024
-_0802ABB4: .4byte gUnknown_081FACFE
-_0802ABB8: .4byte gUnknown_02024C6C
-_0802ABBC: .4byte 0xfffffbff
-_0802ABC0: .4byte gUnknown_02024BEA
-_0802ABC4: .4byte gUnknown_02024C08
-_0802ABC8: .4byte gUnknown_02024C10
-_0802ABCC:
- ldr r3, _0802ABF8 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802ABE6:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802ABF8: .4byte gUnknown_02024C10
- thumb_func_end atkDE_asistattackselect
-
- thumb_func_start atkDF_setmagiccoat
-atkDF_setmagiccoat: @ 802ABFC
- push {lr}
- ldr r1, _0802AC44 @ =gUnknown_02024C08
- ldr r3, _0802AC48 @ =gUnknown_02024C07
- ldrb r0, [r3]
- strb r0, [r1]
- ldr r2, _0802AC4C @ =gUnknown_02024D68
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0802AC50 @ =gUnknown_02024A7E
- ldrb r1, [r0]
- ldr r0, _0802AC54 @ =gUnknown_02024A68
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _0802AC5C
- ldr r3, _0802AC58 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802AC74
- .align 2, 0
-_0802AC44: .4byte gUnknown_02024C08
-_0802AC48: .4byte gUnknown_02024C07
-_0802AC4C: .4byte gUnknown_02024D68
-_0802AC50: .4byte gUnknown_02024A7E
-_0802AC54: .4byte gUnknown_02024A68
-_0802AC58: .4byte gUnknown_02024C10
-_0802AC5C:
- ldr r0, _0802AC78 @ =gUnknown_02024D28
- ldrb r1, [r3]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x10
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _0802AC7C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802AC74:
- pop {r0}
- bx r0
- .align 2, 0
-_0802AC78: .4byte gUnknown_02024D28
-_0802AC7C: .4byte gUnknown_02024C10
- thumb_func_end atkDF_setmagiccoat
-
- thumb_func_start atkE0_setstealstatchange
-atkE0_setstealstatchange: @ 802AC80
- push {lr}
- ldr r2, _0802ACC4 @ =gUnknown_02024D68
- ldr r3, _0802ACC8 @ =gUnknown_02024C07
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0802ACCC @ =gUnknown_02024A7E
- ldrb r1, [r0]
- ldr r0, _0802ACD0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _0802ACD8
- ldr r3, _0802ACD4 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802ACEE
- .align 2, 0
-_0802ACC4: .4byte gUnknown_02024D68
-_0802ACC8: .4byte gUnknown_02024C07
-_0802ACCC: .4byte gUnknown_02024A7E
-_0802ACD0: .4byte gUnknown_02024A68
-_0802ACD4: .4byte gUnknown_02024C10
-_0802ACD8:
- ldr r0, _0802ACF4 @ =gUnknown_02024D28
- ldrb r1, [r3]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _0802ACF8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802ACEE:
- pop {r0}
- bx r0
- .align 2, 0
-_0802ACF4: .4byte gUnknown_02024D28
-_0802ACF8: .4byte gUnknown_02024C10
- thumb_func_end atkE0_setstealstatchange
-
- thumb_func_start atkE1_802CBE4
-atkE1_802CBE4: @ 802ACFC
- push {r4-r6,lr}
- ldr r4, _0802ADA0 @ =0x02000000
- ldr r1, _0802ADA4 @ =0x000160dd
- adds r0, r4, r1
- ldrb r0, [r0]
- subs r1, 0xDA
- adds r4, r1
- strb r0, [r4]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _0802ADA8 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x9
- strb r0, [r2, 0x1]
- ldr r3, _0802ADAC @ =gBattleMons
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r2, _0802ADB0 @ =gUnknown_02024C08
- ldr r1, _0802ADB4 @ =gUnknown_02024A68
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0802AD84
- adds r4, r2, 0
- ldr r6, _0802ADB8 @ =gBitTable
-_0802AD44:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- beq _0802AD66
- ldr r0, _0802ADBC @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ands r1, r0
- ldr r2, _0802ADB4 @ =gUnknown_02024A68
- cmp r1, 0
- beq _0802AD7A
-_0802AD66:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _0802ADB4 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- adds r2, r1, 0
- ldrb r1, [r2]
- cmp r0, r1
- bcc _0802AD44
-_0802AD7A:
- ldr r0, _0802ADB0 @ =gUnknown_02024C08
- ldrb r0, [r0]
- ldrb r2, [r2]
- cmp r0, r2
- bcc _0802ADC4
-_0802AD84:
- ldr r3, _0802ADC0 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802ADCC
- .align 2, 0
-_0802ADA0: .4byte 0x02000000
-_0802ADA4: .4byte 0x000160dd
-_0802ADA8: .4byte gUnknown_030041C0
-_0802ADAC: .4byte gBattleMons
-_0802ADB0: .4byte gUnknown_02024C08
-_0802ADB4: .4byte gUnknown_02024A68
-_0802ADB8: .4byte gBitTable
-_0802ADBC: .4byte gUnknown_02024C0C
-_0802ADC0: .4byte gUnknown_02024C10
-_0802ADC4:
- ldr r1, _0802ADD4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802ADCC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802ADD4: .4byte gUnknown_02024C10
- thumb_func_end atkE1_802CBE4
-
- thumb_func_start sub_802ADD8
-sub_802ADD8: @ 802ADD8
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r6, _0802AE44 @ =gUnknown_02024C10
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _0802AE48 @ =gUnknown_02024A60
- strb r0, [r5]
- ldr r4, _0802AE4C @ =gBattleMons
- ldrb r0, [r5]
- movs r1, 0x58
- mov r12, r1
- mov r1, r12
- muls r1, r0
- adds r0, r1, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1E
- bne _0802AE34
- adds r4, 0x4C
- adds r1, r4
- movs r0, 0
- str r0, [r1]
- ldr r2, _0802AE50 @ =gBitTable
- ldr r1, _0802AE54 @ =0x02000000
- ldrb r3, [r5]
- ldr r7, _0802AE58 @ =0x00016064
- adds r0, r3, r7
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0]
- mov r0, r12
- muls r0, r3
- adds r0, r4
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
-_0802AE34:
- ldr r0, [r6]
- adds r0, 0x2
- str r0, [r6]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802AE44: .4byte gUnknown_02024C10
-_0802AE48: .4byte gUnknown_02024A60
-_0802AE4C: .4byte gBattleMons
-_0802AE50: .4byte gBitTable
-_0802AE54: .4byte 0x02000000
-_0802AE58: .4byte 0x00016064
- thumb_func_end sub_802ADD8
-
- thumb_func_start atkE3_jumpiffainted
-atkE3_jumpiffainted: @ 802AE5C
- push {r4,lr}
- ldr r4, _0802AE98 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _0802AE9C @ =gUnknown_02024A60
- strb r0, [r1]
- ldr r2, _0802AEA0 @ =gBattleMons
- ldrb r1, [r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0802AEA4
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0802AEAA
- .align 2, 0
-_0802AE98: .4byte gUnknown_02024C10
-_0802AE9C: .4byte gUnknown_02024A60
-_0802AEA0: .4byte gBattleMons
-_0802AEA4:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_0802AEAA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atkE3_jumpiffainted
-
- thumb_func_start sub_802AEB0
-sub_802AEB0: @ 802AEB0
- push {lr}
- ldr r0, _0802AEC4 @ =gUnknown_0300428C
- ldrb r0, [r0]
- cmp r0, 0x7
- bhi _0802AF4C
- lsls r0, 2
- ldr r1, _0802AEC8 @ =_0802AECC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802AEC4: .4byte gUnknown_0300428C
-_0802AEC8: .4byte _0802AECC
- .align 2, 0
-_0802AECC:
- .4byte _0802AEEC
- .4byte _0802AEF8
- .4byte _0802AF04
- .4byte _0802AF10
- .4byte _0802AF1C
- .4byte _0802AF28
- .4byte _0802AF34
- .4byte _0802AF40
-_0802AEEC:
- ldr r1, _0802AEF4 @ =gUnknown_02024D1E
- movs r0, 0x2
- b _0802AF50
- .align 2, 0
-_0802AEF4: .4byte gUnknown_02024D1E
-_0802AEF8:
- ldr r1, _0802AF00 @ =gUnknown_02024D1E
- movs r0, 0x1
- b _0802AF50
- .align 2, 0
-_0802AF00: .4byte gUnknown_02024D1E
-_0802AF04:
- ldr r1, _0802AF0C @ =gUnknown_02024D1E
- movs r0, 0x1B
- b _0802AF50
- .align 2, 0
-_0802AF0C: .4byte gUnknown_02024D1E
-_0802AF10:
- ldr r1, _0802AF18 @ =gUnknown_02024D1E
- movs r0, 0x17
- b _0802AF50
- .align 2, 0
-_0802AF18: .4byte gUnknown_02024D1E
-_0802AF1C:
- ldr r1, _0802AF24 @ =gUnknown_02024D1E
- movs r0, 0x16
- b _0802AF50
- .align 2, 0
-_0802AF24: .4byte gUnknown_02024D1E
-_0802AF28:
- ldr r1, _0802AF30 @ =gUnknown_02024D1E
- movs r0, 0x18
- b _0802AF50
- .align 2, 0
-_0802AF30: .4byte gUnknown_02024D1E
-_0802AF34:
- ldr r1, _0802AF3C @ =gUnknown_02024D1E
- movs r0, 0x7
- b _0802AF50
- .align 2, 0
-_0802AF3C: .4byte gUnknown_02024D1E
-_0802AF40:
- ldr r1, _0802AF48 @ =gUnknown_02024D1E
- movs r0, 0x8
- b _0802AF50
- .align 2, 0
-_0802AF48: .4byte gUnknown_02024D1E
-_0802AF4C:
- ldr r1, _0802AF60 @ =gUnknown_02024D1E
- movs r0, 0x5
-_0802AF50:
- strb r0, [r1, 0x3]
- ldr r1, _0802AF64 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802AF60: .4byte gUnknown_02024D1E
-_0802AF64: .4byte gUnknown_02024C10
- thumb_func_end sub_802AEB0
-
- thumb_func_start sub_802AF68
-sub_802AF68: @ 802AF68
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r7, 0
- ldr r0, _0802AFB4 @ =gBaseStats
- mov r9, r0
- ldr r1, _0802AFB8 @ =gPickupItems
- mov r8, r1
-_0802AF7A:
- movs r0, 0x64
- adds r4, r7, 0
- muls r4, r0
- ldr r0, _0802AFBC @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- cmp r0, 0
- beq _0802AFC0
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x17]
- b _0802AFCA
- .align 2, 0
-_0802AFB4: .4byte gBaseStats
-_0802AFB8: .4byte gPickupItems
-_0802AFBC: .4byte gPlayerParty
-_0802AFC0:
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x16]
-_0802AFCA:
- adds r4, r7, 0x1
- cmp r0, 0x35
- bne _0802B032
- cmp r5, 0
- beq _0802B032
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- beq _0802B032
- cmp r6, 0
- bne _0802B032
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _0802B032
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- mov r1, r8
- ldrh r0, [r1, 0x2]
- cmp r0, r3
- bgt _0802B020
- adds r1, 0x2
-_0802B012:
- adds r1, 0x4
- adds r2, 0x2
- cmp r2, 0x11
- bgt _0802B020
- ldrh r0, [r1]
- cmp r0, r3
- ble _0802B012
-_0802B020:
- movs r0, 0x64
- muls r0, r7
- ldr r1, _0802B04C @ =gPlayerParty
- adds r0, r1
- lsls r2, 1
- add r2, r8
- movs r1, 0xC
- bl SetMonData
-_0802B032:
- adds r7, r4, 0
- cmp r7, 0x5
- ble _0802AF7A
- ldr r1, _0802B050 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B04C: .4byte gPlayerParty
-_0802B050: .4byte gUnknown_02024C10
- thumb_func_end sub_802AF68
-
- thumb_func_start atkE6_castform_transform
-atkE6_castform_transform: @ 802B054
- push {r4,lr}
- ldr r4, _0802B0A8 @ =gUnknown_02024A60
- ldr r3, _0802B0AC @ =0x02000000
- ldr r1, _0802B0B0 @ =0x00016003
- adds r0, r3, r1
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _0802B0B4 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0802B086
- ldr r0, _0802B0B8 @ =0x0001609b
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x80
- orrs r0, r1
- strb r0, [r2]
-_0802B086:
- ldr r1, _0802B0B8 @ =0x0001609b
- adds r0, r3, r1
- ldrb r2, [r0]
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0802B0BC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B0A8: .4byte gUnknown_02024A60
-_0802B0AC: .4byte 0x02000000
-_0802B0B0: .4byte 0x00016003
-_0802B0B4: .4byte gBattleMons
-_0802B0B8: .4byte 0x0001609b
-_0802B0BC: .4byte gUnknown_02024C10
- thumb_func_end atkE6_castform_transform
-
- thumb_func_start atkE7_castform_switch
-atkE7_castform_switch: @ 802B0C0
- push {r4,r5,lr}
- ldr r1, _0802B0F4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r5, _0802B0F8 @ =0x02000000
- ldr r1, _0802B0FC @ =0x00016003
- adds r0, r5, r1
- ldrb r0, [r0]
- bl castform_switch
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0802B0EC
- ldr r0, _0802B100 @ =gUnknown_081D977D
- bl b_push_move_exec
- subs r1, r4, 0x1
- ldr r2, _0802B104 @ =0x0001609b
- adds r0, r5, r2
- strb r1, [r0]
-_0802B0EC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B0F4: .4byte gUnknown_02024C10
-_0802B0F8: .4byte 0x02000000
-_0802B0FC: .4byte 0x00016003
-_0802B100: .4byte gUnknown_081D977D
-_0802B104: .4byte 0x0001609b
- thumb_func_end atkE7_castform_switch
-
- thumb_func_start atkE8_settypebasedhalvers
-atkE8_settypebasedhalvers: @ 802B108
- push {r4,lr}
- movs r4, 0
- ldr r2, _0802B144 @ =gBattleMoves
- ldr r0, _0802B148 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0xC9
- bne _0802B158
- ldr r1, _0802B14C @ =gUnknown_02024C98
- ldr r0, _0802B150 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 9
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _0802B17C
- orrs r1, r3
- str r1, [r2]
- ldr r0, _0802B154 @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- b _0802B180
- .align 2, 0
-_0802B144: .4byte gBattleMoves
-_0802B148: .4byte gUnknown_02024BE6
-_0802B14C: .4byte gUnknown_02024C98
-_0802B150: .4byte gUnknown_02024C07
-_0802B154: .4byte gUnknown_02024D1E
-_0802B158:
- ldr r1, _0802B18C @ =gUnknown_02024C98
- ldr r0, _0802B190 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 10
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _0802B17C
- orrs r1, r3
- str r1, [r2]
- ldr r1, _0802B194 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- movs r4, 0x1
-_0802B17C:
- cmp r4, 0
- beq _0802B19C
-_0802B180:
- ldr r1, _0802B198 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802B1B6
- .align 2, 0
-_0802B18C: .4byte gUnknown_02024C98
-_0802B190: .4byte gUnknown_02024C07
-_0802B194: .4byte gUnknown_02024D1E
-_0802B198: .4byte gUnknown_02024C10
-_0802B19C:
- ldr r3, _0802B1BC @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802B1B6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B1BC: .4byte gUnknown_02024C10
- thumb_func_end atkE8_settypebasedhalvers
-
- thumb_func_start sub_802B1C0
-sub_802B1C0: @ 802B1C0
- push {lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0802B276
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0802B276
- ldr r3, _0802B218 @ =word_2024DB8
- ldrb r0, [r3]
- ldr r2, _0802B21C @ =0x02000000
- cmp r0, 0
- beq _0802B202
- ldr r0, _0802B220 @ =0x0001601f
- adds r1, r2, r0
- movs r0, 0x2
- strb r0, [r1]
-_0802B202:
- ldrh r1, [r3]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0802B228
- ldr r0, _0802B224 @ =0x0001601c
- adds r1, r2, r0
- movs r0, 0x8B
- strb r0, [r1]
- b _0802B276
- .align 2, 0
-_0802B218: .4byte word_2024DB8
-_0802B21C: .4byte 0x02000000
-_0802B220: .4byte 0x0001601f
-_0802B224: .4byte 0x0001601c
-_0802B228:
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _0802B240
- ldr r0, _0802B23C @ =0x0001601c
- adds r1, r2, r0
- movs r0, 0x85
- strb r0, [r1]
- b _0802B276
- .align 2, 0
-_0802B23C: .4byte 0x0001601c
-_0802B240:
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0802B258
- ldr r0, _0802B254 @ =0x0001601c
- adds r1, r2, r0
- movs r0, 0x8A
- strb r0, [r1]
- b _0802B276
- .align 2, 0
-_0802B254: .4byte 0x0001601c
-_0802B258:
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0802B270
- ldr r0, _0802B26C @ =0x0001601c
- adds r1, r2, r0
- movs r0, 0x8F
- strb r0, [r1]
- b _0802B276
- .align 2, 0
-_0802B26C: .4byte 0x0001601c
-_0802B270:
- ldr r1, _0802B284 @ =0x0001601c
- adds r0, r2, r1
- strb r3, [r0]
-_0802B276:
- ldr r1, _0802B288 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0802B284: .4byte 0x0001601c
-_0802B288: .4byte gUnknown_02024C10
- thumb_func_end sub_802B1C0
-
- thumb_func_start atkEA_recycleitem
-atkEA_recycleitem: @ 802B28C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r7, _0802B2F0 @ =gUnknown_02024A60
- ldr r0, _0802B2F4 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r7]
- ldrb r2, [r7]
- lsls r1, r2, 1
- ldr r0, _0802B2F8 @ =0x020160cc
- adds r6, r1, r0
- ldrh r5, [r6]
- cmp r5, 0
- beq _0802B308
- ldr r4, _0802B2FC @ =gBattleMons
- movs r3, 0x58
- adds r0, r2, 0
- muls r0, r3
- adds r0, r4
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- bne _0802B308
- ldr r1, _0802B300 @ =gUnknown_02024C04
- strh r5, [r1]
- strh r0, [r6]
- ldrb r0, [r7]
- muls r0, r3
- adds r0, r4
- ldrh r1, [r1]
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- muls r0, r3
- adds r1, r4, 0
- adds r1, 0x2E
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0802B304 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802B322
- .align 2, 0
-_0802B2F0: .4byte gUnknown_02024A60
-_0802B2F4: .4byte gUnknown_02024C07
-_0802B2F8: .4byte 0x020160cc
-_0802B2FC: .4byte gBattleMons
-_0802B300: .4byte gUnknown_02024C04
-_0802B304: .4byte gUnknown_02024C10
-_0802B308:
- ldr r3, _0802B32C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802B322:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B32C: .4byte gUnknown_02024C10
- thumb_func_end atkEA_recycleitem
-
- thumb_func_start atkEB_settypetoterrain
-atkEB_settypetoterrain: @ 802B330
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0802B3A0 @ =gBattleMons
- mov r8, r0
- ldr r7, _0802B3A4 @ =gUnknown_02024C07
- ldrb r0, [r7]
- movs r6, 0x58
- muls r0, r6
- mov r1, r8
- adds r3, r0, r1
- movs r0, 0x21
- adds r0, r3
- mov r12, r0
- ldr r5, _0802B3A8 @ =gTerrainToType
- ldr r4, _0802B3AC @ =gUnknown_0300428C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r2, [r0]
- mov r1, r12
- ldrb r0, [r1]
- adds r1, r2, 0
- cmp r0, r1
- beq _0802B3B8
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- beq _0802B3B8
- mov r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- add r1, r8
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- adds r1, 0x22
- strb r0, [r1]
- ldr r1, _0802B3B0 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, _0802B3B4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802B3D2
- .align 2, 0
-_0802B3A0: .4byte gBattleMons
-_0802B3A4: .4byte gUnknown_02024C07
-_0802B3A8: .4byte gTerrainToType
-_0802B3AC: .4byte gUnknown_0300428C
-_0802B3B0: .4byte gUnknown_030041C0
-_0802B3B4: .4byte gUnknown_02024C10
-_0802B3B8:
- ldr r3, _0802B3DC @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802B3D2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B3DC: .4byte gUnknown_02024C10
- thumb_func_end atkEB_settypetoterrain
-
- thumb_func_start sub_802B3E0
-sub_802B3E0: @ 802B3E0
- push {r4,r5,lr}
- ldr r5, _0802B45C @ =gUnknown_02024C07
- ldrb r0, [r5]
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r4, _0802B460 @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r0, _0802B464 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802B490
- ldr r0, _0802B468 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _0802B46C @ =gBitTable
- ldrb r3, [r4]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802B490
- ldr r0, _0802B470 @ =gUnknown_02024C18
- adds r0, r3, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _0802B490
- ldr r1, _0802B474 @ =gUnknown_02024C60
- lsls r0, r3, 1
- adds r0, r1
- ldrh r2, [r0]
- cmp r2, 0xE4
- bne _0802B490
- ldr r0, _0802B478 @ =gUnknown_02024A76
- adds r0, r3, r0
- movs r1, 0xB
- strb r1, [r0]
- ldr r0, _0802B47C @ =gUnknown_02024BE6
- strh r2, [r0]
- ldr r1, _0802B480 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r1, _0802B484 @ =0x02000000
- ldr r0, _0802B488 @ =0x00016002
- adds r2, r1, r0
- movs r0, 0x1
- strb r0, [r2]
- ldrb r0, [r5]
- ldr r2, _0802B48C @ =0x000160a7
- adds r1, r2
- strb r0, [r1]
- ldrb r0, [r4]
- strb r0, [r5]
- b _0802B4AA
- .align 2, 0
-_0802B45C: .4byte gUnknown_02024C07
-_0802B460: .4byte gUnknown_02024A60
-_0802B464: .4byte gUnknown_020239F8
-_0802B468: .4byte gUnknown_02024C0C
-_0802B46C: .4byte gBitTable
-_0802B470: .4byte gUnknown_02024C18
-_0802B474: .4byte gUnknown_02024C60
-_0802B478: .4byte gUnknown_02024A76
-_0802B47C: .4byte gUnknown_02024BE6
-_0802B480: .4byte gUnknown_02024C10
-_0802B484: .4byte 0x02000000
-_0802B488: .4byte 0x00016002
-_0802B48C: .4byte 0x000160a7
-_0802B490:
- ldr r3, _0802B4B0 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802B4AA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B4B0: .4byte gUnknown_02024C10
- thumb_func_end sub_802B3E0
-
- thumb_func_start sub_802B4B4
-sub_802B4B4: @ 802B4B4
- push {r4,r5,lr}
- ldr r1, _0802B4DC @ =gUnknown_02024C0A
- ldr r3, _0802B4E0 @ =gUnknown_02024C07
- ldrb r0, [r3]
- strb r0, [r1]
- ldr r2, _0802B4E4 @ =gUnknown_02024C08
- lsls r0, 24
- lsrs r0, 24
- adds r4, r1, 0
- ldrb r1, [r2]
- cmp r0, r1
- bne _0802B4F0
- ldr r0, _0802B4E8 @ =0x02000000
- ldr r5, _0802B4EC @ =0x00016003
- adds r1, r0, r5
- ldrb r1, [r1]
- strb r1, [r2]
- strb r1, [r3]
- b _0802B4FA
- .align 2, 0
-_0802B4DC: .4byte gUnknown_02024C0A
-_0802B4E0: .4byte gUnknown_02024C07
-_0802B4E4: .4byte gUnknown_02024C08
-_0802B4E8: .4byte 0x02000000
-_0802B4EC: .4byte 0x00016003
-_0802B4F0:
- ldr r0, _0802B510 @ =0x02000000
- ldr r3, _0802B514 @ =0x00016003
- adds r1, r0, r3
- ldrb r1, [r1]
- strb r1, [r2]
-_0802B4FA:
- ldrb r1, [r4]
- ldr r5, _0802B514 @ =0x00016003
- adds r0, r5
- strb r1, [r0]
- ldr r1, _0802B518 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B510: .4byte 0x02000000
-_0802B514: .4byte 0x00016003
-_0802B518: .4byte gUnknown_02024C10
- thumb_func_end sub_802B4B4
-
- thumb_func_start sub_802B51C
-sub_802B51C: @ 802B51C
- push {r4,lr}
- ldr r0, _0802B56C @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0802B570 @ =gUnknown_02024C80
- lsls r3, r0, 1
- adds r0, r3, r0
- lsls r0, 2
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- bne _0802B544
- ldrb r2, [r4, 0x1]
- cmp r2, 0
- beq _0802B58C
-_0802B544:
- ldr r2, _0802B574 @ =gUnknown_02024C7A
- adds r2, r3, r2
- ldrh r1, [r2]
- ldr r0, _0802B578 @ =0x0000fffe
- ands r0, r1
- movs r3, 0
- ldr r1, _0802B57C @ =0x0000fffd
- ands r0, r1
- strh r0, [r2]
- strb r3, [r4]
- strb r3, [r4, 0x1]
- ldr r0, _0802B580 @ =0x02000000
- ldr r2, _0802B584 @ =0x00016002
- adds r1, r0, r2
- movs r2, 0x1
- strb r2, [r1]
- ldr r3, _0802B588 @ =0x000160a1
- adds r0, r3
- b _0802B598
- .align 2, 0
-_0802B56C: .4byte gUnknown_02024C07
-_0802B570: .4byte gUnknown_02024C80
-_0802B574: .4byte gUnknown_02024C7A
-_0802B578: .4byte 0x0000fffe
-_0802B57C: .4byte 0x0000fffd
-_0802B580: .4byte 0x02000000
-_0802B584: .4byte 0x00016002
-_0802B588: .4byte 0x000160a1
-_0802B58C:
- ldr r0, _0802B5A8 @ =0x02000000
- ldr r3, _0802B5AC @ =0x00016002
- adds r1, r0, r3
- strb r2, [r1]
- ldr r1, _0802B5B0 @ =0x000160a1
- adds r0, r1
-_0802B598:
- strb r2, [r0]
- ldr r1, _0802B5B4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B5A8: .4byte 0x02000000
-_0802B5AC: .4byte 0x00016002
-_0802B5B0: .4byte 0x000160a1
-_0802B5B4: .4byte gUnknown_02024C10
- thumb_func_end sub_802B51C
-
- thumb_func_start sub_802B5B8
-sub_802B5B8: @ 802B5B8
- push {r4-r7,lr}
- movs r4, 0
- ldr r0, _0802B5F8 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _0802B5C6
- b _0802B94E
-_0802B5C6:
- ldr r5, _0802B5FC @ =gUnknown_02024A60
- ldr r0, _0802B600 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r6, _0802B604 @ =gUnknown_02024C08
- movs r1, 0x1
- eors r0, r1
- strb r0, [r6]
- ldr r0, _0802B608 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0802B614
- movs r0, 0
- movs r1, 0x5
- bl dp01_build_cmdbuf_x0D_a
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0802B60C @ =gUnknown_02024C10
- ldr r0, _0802B610 @ =gUnknown_081D9F35
- b _0802B94C
- .align 2, 0
-_0802B5F8: .4byte gUnknown_02024A64
-_0802B5FC: .4byte gUnknown_02024A60
-_0802B600: .4byte gUnknown_02024C07
-_0802B604: .4byte gUnknown_02024C08
-_0802B608: .4byte gUnknown_020239F8
-_0802B60C: .4byte gUnknown_02024C10
-_0802B610: .4byte gUnknown_081D9F35
-_0802B614:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0802B63C
- movs r0, 0
- movs r1, 0x4
- bl dp01_build_cmdbuf_x0D_a
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0802B634 @ =gUnknown_02024C10
- ldr r0, _0802B638 @ =gUnknown_081D9F00
- b _0802B94C
- .align 2, 0
-_0802B634: .4byte gUnknown_02024C10
-_0802B638: .4byte gUnknown_081D9F00
-_0802B63C:
- ldr r0, _0802B660 @ =gUnknown_02024C04
- ldrh r0, [r0]
- cmp r0, 0x5
- bne _0802B66C
- ldr r0, _0802B664 @ =0x02000000
- ldr r1, _0802B668 @ =0x00016089
- adds r0, r1
- ldrb r0, [r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 8
- subs r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 24
- lsrs r5, r0, 24
- b _0802B684
- .align 2, 0
-_0802B660: .4byte gUnknown_02024C04
-_0802B664: .4byte 0x02000000
-_0802B668: .4byte 0x00016089
-_0802B66C:
- ldr r3, _0802B6A0 @ =gBaseStats
- ldr r2, _0802B6A4 @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r5, [r0, 0x8]
-_0802B684:
- ldr r2, _0802B6A8 @ =gUnknown_02024C04
- ldrh r0, [r2]
- cmp r0, 0x5
- bhi _0802B68E
- b _0802B784
-_0802B68E:
- subs r0, 0x6
- cmp r0, 0x6
- bls _0802B696
- b _0802B78E
-_0802B696:
- lsls r0, 2
- ldr r1, _0802B6AC @ =_0802B6B0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802B6A0: .4byte gBaseStats
-_0802B6A4: .4byte gBattleMons
-_0802B6A8: .4byte gUnknown_02024C04
-_0802B6AC: .4byte _0802B6B0
- .align 2, 0
-_0802B6B0:
- .4byte _0802B6CC
- .4byte _0802B6FC
- .4byte _0802B70E
- .4byte _0802B73C
- .4byte _0802B76C
- .4byte _0802B72E
- .4byte _0802B72E
-_0802B6CC:
- ldr r2, _0802B6F4 @ =gBattleMons
- ldr r0, _0802B6F8 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r1, 0xB
- beq _0802B760
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xB
- beq _0802B760
- cmp r1, 0x6
- beq _0802B760
- cmp r0, 0x6
- beq _0802B760
- b _0802B72E
- .align 2, 0
-_0802B6F4: .4byte gBattleMons
-_0802B6F8: .4byte gUnknown_02024C08
-_0802B6FC:
- bl sav1_map_get_light_level
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0xA
- cmp r0, 0x5
- bne _0802B78E
- movs r4, 0x23
- b _0802B78E
-_0802B70E:
- ldr r2, _0802B734 @ =gBattleMons
- ldr r0, _0802B738 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r1, [r0]
- cmp r1, 0x27
- bhi _0802B72E
- movs r0, 0x28
- subs r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bhi _0802B78E
-_0802B72E:
- movs r4, 0xA
- b _0802B78E
- .align 2, 0
-_0802B734: .4byte gBattleMons
-_0802B738: .4byte gUnknown_02024C08
-_0802B73C:
- ldr r2, _0802B764 @ =gBattleMons
- ldr r0, _0802B768 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- movs r4, 0xA
- cmp r0, 0
- beq _0802B78E
-_0802B760:
- movs r4, 0x1E
- b _0802B78E
- .align 2, 0
-_0802B764: .4byte gBattleMons
-_0802B768: .4byte gUnknown_02024C08
-_0802B76C:
- ldr r0, _0802B780 @ =gUnknown_030042E0
- ldrb r0, [r0, 0x13]
- adds r0, 0xA
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x28
- bls _0802B78E
- movs r4, 0x28
- b _0802B78E
- .align 2, 0
-_0802B780: .4byte gUnknown_030042E0
-_0802B784:
- ldr r1, _0802B7F4 @ =gBallCatchBonuses
- ldrh r0, [r2]
- subs r0, 0x2
- adds r0, r1
- ldrb r4, [r0]
-_0802B78E:
- adds r0, r5, 0
- muls r0, r4
- movs r1, 0xA
- bl __divsi3
- ldr r5, _0802B7F8 @ =gBattleMons
- ldr r1, _0802B7FC @ =gUnknown_02024C08
- ldrb r1, [r1]
- movs r7, 0x58
- adds r4, r1, 0
- muls r4, r7
- adds r3, r4, r5
- ldrh r2, [r3, 0x2C]
- lsls r1, r2, 1
- adds r1, r2
- ldrh r2, [r3, 0x28]
- lsls r2, 1
- subs r2, r1, r2
- muls r0, r2
- bl __divsi3
- adds r6, r0, 0
- adds r5, 0x4C
- adds r4, r5
- ldr r4, [r4]
- movs r0, 0x27
- ands r0, r4
- cmp r0, 0
- beq _0802B7CA
- lsls r6, 1
-_0802B7CA:
- ands r4, r7
- cmp r4, 0
- beq _0802B7DC
- lsls r0, r6, 4
- subs r0, r6
- movs r1, 0xA
- bl __udivsi3
- adds r6, r0, 0
-_0802B7DC:
- ldr r1, _0802B800 @ =gUnknown_02024C04
- ldrh r0, [r1]
- cmp r0, 0x5
- beq _0802B81C
- cmp r0, 0x1
- bne _0802B808
- ldr r0, _0802B804 @ =gUnknown_030042E0
- ldrb r1, [r0, 0x5]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0, 0x5]
- b _0802B81C
- .align 2, 0
-_0802B7F4: .4byte gBallCatchBonuses
-_0802B7F8: .4byte gBattleMons
-_0802B7FC: .4byte gUnknown_02024C08
-_0802B800: .4byte gUnknown_02024C04
-_0802B804: .4byte gUnknown_030042E0
-_0802B808:
- ldr r0, _0802B860 @ =gUnknown_030042E0
- ldrh r1, [r1]
- adds r0, r1
- adds r1, r0, 0
- adds r1, 0x34
- ldrb r0, [r1]
- cmp r0, 0xFE
- bhi _0802B81C
- adds r0, 0x1
- strb r0, [r1]
-_0802B81C:
- cmp r6, 0xFE
- bls _0802B880
- movs r0, 0
- movs r1, 0x4
- bl dp01_build_cmdbuf_x0D_a
- ldr r0, _0802B864 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0802B868 @ =gUnknown_02024C10
- ldr r0, _0802B86C @ =gUnknown_081D9EC2
- str r0, [r1]
- ldr r1, _0802B870 @ =gUnknown_02024A6A
- ldr r0, _0802B874 @ =gUnknown_02024C08
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802B878 @ =gEnemyParty
- adds r0, r1
- ldr r2, _0802B87C @ =gUnknown_02024C04
- movs r1, 0x26
- bl SetMonData
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- beq _0802B90E
- b _0802B938
- .align 2, 0
-_0802B860: .4byte gUnknown_030042E0
-_0802B864: .4byte gUnknown_02024A60
-_0802B868: .4byte gUnknown_02024C10
-_0802B86C: .4byte gUnknown_081D9EC2
-_0802B870: .4byte gUnknown_02024A6A
-_0802B874: .4byte gUnknown_02024C08
-_0802B878: .4byte gEnemyParty
-_0802B87C: .4byte gUnknown_02024C04
-_0802B880:
- movs r0, 0xFF
- lsls r0, 16
- adds r1, r6, 0
- bl __udivsi3
- bl Sqrt
- lsls r0, 16
- lsrs r0, 16
- bl Sqrt
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _0802B8A8 @ =0x000ffff0
- adds r1, r6, 0
- bl __udivsi3
- adds r6, r0, 0
- movs r4, 0
- b _0802B8B2
- .align 2, 0
-_0802B8A8: .4byte 0x000ffff0
-_0802B8AC:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0802B8B2:
- cmp r4, 0x3
- bhi _0802B8C2
- bl Random
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcc _0802B8AC
-_0802B8C2:
- ldr r5, _0802B918 @ =gUnknown_02024C04
- ldrh r0, [r5]
- cmp r0, 0x1
- bne _0802B8CC
- movs r4, 0x4
-_0802B8CC:
- movs r0, 0
- adds r1, r4, 0
- bl dp01_build_cmdbuf_x0D_a
- ldr r0, _0802B91C @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- cmp r4, 0x4
- bne _0802B944
- ldr r1, _0802B920 @ =gUnknown_02024C10
- ldr r0, _0802B924 @ =gUnknown_081D9EC2
- str r0, [r1]
- ldr r1, _0802B928 @ =gUnknown_02024A6A
- ldr r0, _0802B92C @ =gUnknown_02024C08
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802B930 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x26
- adds r2, r5, 0
- bl SetMonData
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _0802B938
-_0802B90E:
- ldr r1, _0802B934 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
- b _0802B94E
- .align 2, 0
-_0802B918: .4byte gUnknown_02024C04
-_0802B91C: .4byte gUnknown_02024A60
-_0802B920: .4byte gUnknown_02024C10
-_0802B924: .4byte gUnknown_081D9EC2
-_0802B928: .4byte gUnknown_02024A6A
-_0802B92C: .4byte gUnknown_02024C08
-_0802B930: .4byte gEnemyParty
-_0802B934: .4byte gUnknown_02024D1E
-_0802B938:
- ldr r1, _0802B940 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _0802B94E
- .align 2, 0
-_0802B940: .4byte gUnknown_02024D1E
-_0802B944:
- ldr r0, _0802B954 @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- ldr r1, _0802B958 @ =gUnknown_02024C10
- ldr r0, _0802B95C @ =gUnknown_081D9F0A
-_0802B94C:
- str r0, [r1]
-_0802B94E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B954: .4byte gUnknown_02024D1E
-_0802B958: .4byte gUnknown_02024C10
-_0802B95C: .4byte gUnknown_081D9F0A
- thumb_func_end sub_802B5B8
-
- thumb_func_start sub_802B960
-sub_802B960: @ 802B960
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r0, _0802B9C8 @ =gUnknown_02024A6A
- mov r9, r0
- ldr r5, _0802B9CC @ =gUnknown_02024C07
- ldrb r0, [r5]
- movs r4, 0x1
- eors r0, r4
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r6, _0802B9D0 @ =gEnemyParty
- adds r0, r6
- bl GiveMonToPlayer
- ldr r2, _0802B9D4 @ =gUnknown_030042E0
- ldr r1, _0802B9D8 @ =gBattleMons
- ldrb r0, [r5]
- eors r4, r0
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2, 0x28]
- lsls r4, 1
- add r4, r9
- ldrh r0, [r4]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- adds r2, 0x2A
- movs r1, 0x2
- bl GetMonData
- ldr r1, _0802B9DC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B9C8: .4byte gUnknown_02024A6A
-_0802B9CC: .4byte gUnknown_02024C07
-_0802B9D0: .4byte gEnemyParty
-_0802B9D4: .4byte gUnknown_030042E0
-_0802B9D8: .4byte gBattleMons
-_0802B9DC: .4byte gUnknown_02024C10
- thumb_func_end sub_802B960
-
- thumb_func_start sub_802B9E0
-sub_802B9E0: @ 802B9E0
- push {r4-r6,lr}
- ldr r4, _0802BA20 @ =gBattleMons
- ldr r6, _0802BA24 @ =gUnknown_02024C08
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r0, r4
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _0802BA2C
- ldr r3, _0802BA28 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0802BA82
- .align 2, 0
-_0802BA20: .4byte gBattleMons
-_0802BA24: .4byte gUnknown_02024C08
-_0802BA28: .4byte gUnknown_02024C10
-_0802BA2C:
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl sub_8090D90
- ldrb r0, [r6]
- adds r2, r0, 0
- muls r2, r5
- adds r0, r2, r4
- ldrh r0, [r0]
- cmp r0, 0xC9
- bne _0802BA5C
- ldr r0, _0802BA88 @ =gSaveBlock2
- adds r1, r4, 0
- adds r1, 0x48
- adds r1, r2, r1
- ldr r1, [r1]
- str r1, [r0, 0x1C]
-_0802BA5C:
- ldrb r0, [r6]
- adds r2, r0, 0
- muls r2, r5
- adds r0, r2, r4
- ldrh r1, [r0]
- movs r0, 0x9A
- lsls r0, 1
- cmp r1, r0
- bne _0802BA7A
- ldr r0, _0802BA88 @ =gSaveBlock2
- adds r1, r4, 0
- adds r1, 0x48
- adds r1, r2, r1
- ldr r1, [r1]
- str r1, [r0, 0x20]
-_0802BA7A:
- ldr r1, _0802BA8C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802BA82:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BA88: .4byte gSaveBlock2
-_0802BA8C: .4byte gUnknown_02024C10
- thumb_func_end sub_802B9E0
-
- thumb_func_start sub_802BA90
-sub_802BA90: @ 802BA90
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r7, _0802BAA8 @ =gUnknown_02024D1E
- ldrb r1, [r7]
- cmp r1, 0x1
- beq _0802BAC6
- cmp r1, 0x1
- bgt _0802BAAC
- cmp r1, 0
- beq _0802BAB8
- b _0802BBC4
- .align 2, 0
-_0802BAA8: .4byte gUnknown_02024D1E
-_0802BAAC:
- cmp r1, 0x2
- beq _0802BB10
- cmp r1, 0x3
- bne _0802BAB6
- b _0802BBB0
-_0802BAB6:
- b _0802BBC4
-_0802BAB8:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- b _0802BB6E
-_0802BAC6:
- ldr r0, _0802BB04 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802BBC4
- ldr r4, _0802BB08 @ =gBattleMons
- ldr r6, _0802BB0C @ =gUnknown_02024C08
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r0, r4
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r6]
- adds r2, r1, 0
- muls r2, r5
- adds r1, r4, 0
- adds r1, 0x54
- adds r1, r2, r1
- ldr r1, [r1]
- adds r4, 0x48
- adds r2, r4
- ldr r2, [r2]
- bl sub_809070C
- strb r0, [r7, 0x1]
- b _0802BB72
- .align 2, 0
-_0802BB04: .4byte gPaletteFade
-_0802BB08: .4byte gBattleMons
-_0802BB0C: .4byte gUnknown_02024C08
-_0802BB10:
- ldr r0, _0802BB7C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802BBC4
- ldr r0, _0802BB80 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0802BB84 @ =sub_800F808
- cmp r1, r0
- bne _0802BBC4
- ldr r2, _0802BB88 @ =gTasks
- ldrb r1, [r7, 0x1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r4, [r0, 0x4]
- cmp r4, 0
- bne _0802BBC4
- ldr r0, _0802BB8C @ =gBattleTerrainTiles_Building
- ldr r1, _0802BB90 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0802BB94 @ =gBattleTerrainTilemap_Building
- ldr r1, _0802BB98 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0802BB9C @ =gBattleTerrainPalette_BattleTower
- movs r1, 0x20
- movs r2, 0x60
- bl LoadCompressedPalette
- ldr r1, _0802BBA0 @ =REG_BG3CNT
- ldr r2, _0802BBA4 @ =0x00005a0b
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0802BBA8 @ =gUnknown_030041B0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0802BBAC @ =0x0000fffc
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
-_0802BB6E:
- bl BeginNormalPaletteFade
-_0802BB72:
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- b _0802BBC4
- .align 2, 0
-_0802BB7C: .4byte gPaletteFade
-_0802BB80: .4byte gMain
-_0802BB84: .4byte sub_800F808
-_0802BB88: .4byte gTasks
-_0802BB8C: .4byte gBattleTerrainTiles_Building
-_0802BB90: .4byte 0x06008000
-_0802BB94: .4byte gBattleTerrainTilemap_Building
-_0802BB98: .4byte 0x0600d000
-_0802BB9C: .4byte gBattleTerrainPalette_BattleTower
-_0802BBA0: .4byte REG_BG3CNT
-_0802BBA4: .4byte 0x00005a0b
-_0802BBA8: .4byte gUnknown_030041B0
-_0802BBAC: .4byte 0x0000fffc
-_0802BBB0:
- ldr r0, _0802BBCC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802BBC4
- ldr r1, _0802BBD0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0802BBC4:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BBCC: .4byte gPaletteFade
-_0802BBD0: .4byte gUnknown_02024C10
- thumb_func_end sub_802BA90
-
- thumb_func_start sub_802BBD4
-sub_802BBD4: @ 802BBD4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r4, 24
- lsrs r4, 24
- mov r8, r4
- mov r2, r12
- cmp r2, r7
- bgt _0802BC5A
- lsls r1, r6, 1
- ldr r0, _0802BC20 @ =0x0600c000
- adds r1, r0
- mov r9, r1
-_0802BC06:
- adds r1, r6, 0
- adds r0, r2, 0x1
- mov r10, r0
- cmp r1, r5
- bgt _0802BC54
- lsls r0, r2, 6
- mov r4, r9
- adds r3, r4, r0
-_0802BC16:
- cmp r2, r12
- bne _0802BC28
- ldr r0, _0802BC24 @ =0x00001022
- b _0802BC36
- .align 2, 0
-_0802BC20: .4byte 0x0600c000
-_0802BC24: .4byte 0x00001022
-_0802BC28:
- cmp r2, r7
- bne _0802BC34
- ldr r0, _0802BC30 @ =0x00001028
- b _0802BC36
- .align 2, 0
-_0802BC30: .4byte 0x00001028
-_0802BC34:
- ldr r0, _0802BC68 @ =0x00001025
-_0802BC36:
- cmp r1, r6
- beq _0802BC42
- adds r0, 0x1
- cmp r1, r5
- bne _0802BC42
- adds r0, 0x1
-_0802BC42:
- mov r4, r8
- cmp r4, 0
- beq _0802BC4A
- movs r0, 0
-_0802BC4A:
- strh r0, [r3]
- adds r3, 0x2
- adds r1, 0x1
- cmp r1, r5
- ble _0802BC16
-_0802BC54:
- mov r2, r10
- cmp r2, r7
- ble _0802BC06
-_0802BC5A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BC68: .4byte 0x00001025
- thumb_func_end sub_802BBD4
-
- thumb_func_start sub_802BC6C
-sub_802BC6C: @ 802BC6C
- push {lr}
- ldr r0, _0802BC88 @ =gUnknown_02024D1E
- ldrb r1, [r0, 0x1]
- lsls r1, 28
- movs r0, 0x90
- lsls r0, 23
- adds r1, r0
- lsrs r1, 24
- movs r0, 0xC8
- bl sub_814A880
- pop {r0}
- bx r0
- .align 2, 0
-_0802BC88: .4byte gUnknown_02024D1E
- thumb_func_end sub_802BC6C
-
- thumb_func_start nullsub_6
-nullsub_6: @ 802BC8C
- bx lr
- thumb_func_end nullsub_6
-
- thumb_func_start atkF3_receive_new_pokemon_maybe
-atkF3_receive_new_pokemon_maybe: @ 802BC90
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r0, _0802BCB4 @ =gUnknown_02024D1E
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x4
- bls _0802BCA8
- b _0802BEDA
-_0802BCA8:
- lsls r0, r1, 2
- ldr r1, _0802BCB8 @ =_0802BCBC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802BCB4: .4byte gUnknown_02024D1E
-_0802BCB8: .4byte _0802BCBC
- .align 2, 0
-_0802BCBC:
- .4byte _0802BCD0
- .4byte _0802BCEC
- .4byte _0802BD84
- .4byte _0802BE50
- .4byte _0802BEA4
-_0802BCD0:
- bl sub_8023A80
- ldr r0, _0802BCE8 @ =gUnknown_02024D1E
- ldrb r1, [r0]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r0]
- strb r2, [r0, 0x1]
- bl sub_802BC6C
- b _0802BEDA
- .align 2, 0
-_0802BCE8: .4byte gUnknown_02024D1E
-_0802BCEC:
- ldr r0, _0802BD60 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802BD10
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _0802BD10
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_0802BD10:
- ldr r0, _0802BD60 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802BD36
- ldr r4, _0802BD64 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _0802BD36
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_0802BD36:
- ldr r0, _0802BD60 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802BD68
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802BD64 @ =gUnknown_02024D1E
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _0802BD7A
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0x3
- bl BeginFastPaletteFade
- b _0802BEDA
- .align 2, 0
-_0802BD60: .4byte gMain
-_0802BD64: .4byte gUnknown_02024D1E
-_0802BD68:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0802BD72
- b _0802BEDA
-_0802BD72:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802BD80 @ =gUnknown_02024D1E
-_0802BD7A:
- movs r0, 0x4
- strb r0, [r1]
- b _0802BEDA
- .align 2, 0
-_0802BD80: .4byte gUnknown_02024D1E
-_0802BD84:
- ldr r0, _0802BE34 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802BD92
- b _0802BEDA
-_0802BD92:
- ldr r7, _0802BE38 @ =gUnknown_02024A6A
- ldr r0, _0802BE3C @ =gUnknown_02024C07
- mov r10, r0
- ldrb r0, [r0]
- movs r4, 0x1
- eors r0, r4
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r1, 0x64
- mov r9, r1
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- ldr r1, _0802BE40 @ =gEnemyParty
- mov r8, r1
- add r0, r8
- movs r1, 0x2
- ldr r2, _0802BE44 @ =0x02016079
- bl GetMonData
- mov r1, r10
- ldrb r0, [r1]
- eors r0, r4
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- movs r1, 0xB
- bl GetMonData
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- mov r1, r10
- ldrb r0, [r1]
- eors r0, r4
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- bl GetMonGender
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- mov r1, r10
- ldrb r0, [r1]
- eors r4, r0
- lsls r4, 1
- adds r4, r7
- ldrh r0, [r4]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- movs r1, 0
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r0, _0802BE48 @ =sub_800F808
- str r0, [sp, 0x4]
- movs r0, 0x2
- ldr r1, _0802BE44 @ =0x02016079
- adds r2, r6, 0
- adds r3, r5, 0
- bl DoNamingScreen
- ldr r1, _0802BE4C @ =gUnknown_02024D1E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0802BEDA
- .align 2, 0
-_0802BE34: .4byte gPaletteFade
-_0802BE38: .4byte gUnknown_02024A6A
-_0802BE3C: .4byte gUnknown_02024C07
-_0802BE40: .4byte gEnemyParty
-_0802BE44: .4byte 0x02016079
-_0802BE48: .4byte sub_800F808
-_0802BE4C: .4byte gUnknown_02024D1E
-_0802BE50:
- ldr r0, _0802BE88 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0802BE8C @ =sub_800F808
- cmp r1, r0
- bne _0802BEDA
- ldr r0, _0802BE90 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802BEDA
- ldr r2, _0802BE94 @ =gUnknown_02024A6A
- ldr r0, _0802BE98 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x1
- eors r0, r1
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802BE9C @ =gEnemyParty
- adds r0, r1
- ldr r2, _0802BEA0 @ =0x02016079
- movs r1, 0x2
- bl SetMonData
- b _0802BEC0
- .align 2, 0
-_0802BE88: .4byte gMain
-_0802BE8C: .4byte sub_800F808
-_0802BE90: .4byte gPaletteFade
-_0802BE94: .4byte gUnknown_02024A6A
-_0802BE98: .4byte gUnknown_02024C07
-_0802BE9C: .4byte gEnemyParty
-_0802BEA0: .4byte 0x02016079
-_0802BEA4:
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _0802BEC0
- ldr r1, _0802BEBC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802BEDA
- .align 2, 0
-_0802BEBC: .4byte gUnknown_02024C10
-_0802BEC0:
- ldr r3, _0802BEEC @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_0802BEDA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BEEC: .4byte gUnknown_02024C10
- thumb_func_end atkF3_receive_new_pokemon_maybe
-
- thumb_func_start sub_802BEF0
-sub_802BEF0: @ 802BEF0
- ldr r2, _0802BF10 @ =gBattleMons
- ldr r0, _0802BF14 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldr r0, _0802BF18 @ =gUnknown_02024BEC
- ldr r2, [r0]
- ldrh r0, [r1, 0x28]
- subs r0, r2
- strh r0, [r1, 0x28]
- ldr r1, _0802BF1C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802BF10: .4byte gBattleMons
-_0802BF14: .4byte gUnknown_02024C07
-_0802BF18: .4byte gUnknown_02024BEC
-_0802BF1C: .4byte gUnknown_02024C10
- thumb_func_end sub_802BEF0
-
- thumb_func_start sub_802BF20
-sub_802BF20: @ 802BF20
- ldr r1, _0802BF3C @ =gBattleMons
- ldr r0, _0802BF40 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- ldr r1, _0802BF44 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802BF3C: .4byte gBattleMons
-_0802BF40: .4byte gUnknown_02024C07
-_0802BF44: .4byte gUnknown_02024C10
- thumb_func_end sub_802BF20
-
- thumb_func_start sub_802BF48
-sub_802BF48: @ 802BF48
- ldr r1, _0802BF50 @ =gUnknown_02024A7F
- movs r0, 0xC
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0802BF50: .4byte gUnknown_02024A7F
- thumb_func_end sub_802BF48
-
- thumb_func_start sub_802BF54
-sub_802BF54: @ 802BF54
- ldr r1, _0802BF64 @ =gUnknown_02024A7F
- movs r0, 0xC
- strb r0, [r1]
- ldr r1, _0802BF68 @ =gUnknown_02024A7E
- ldr r0, _0802BF6C @ =gUnknown_02024A68
- ldrb r0, [r0]
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0802BF64: .4byte gUnknown_02024A7F
-_0802BF68: .4byte gUnknown_02024A7E
-_0802BF6C: .4byte gUnknown_02024A68
- thumb_func_end sub_802BF54
-
- thumb_func_start nullsub_91
-nullsub_91: @ 802BF70
- bx lr
- thumb_func_end nullsub_91
-
- thumb_func_start sub_802BF74
-sub_802BF74: @ 802BF74
- ldr r1, _0802BF8C @ =gUnknown_03004330
- ldr r0, _0802BF90 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802BF94 @ =sub_802C014
- str r1, [r0]
- ldr r1, _0802BF98 @ =gUnknown_02024E6D
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0802BF8C: .4byte gUnknown_03004330
-_0802BF90: .4byte gUnknown_02024A60
-_0802BF94: .4byte sub_802C014
-_0802BF98: .4byte gUnknown_02024E6D
- thumb_func_end sub_802BF74
-
- thumb_func_start dp01_tbl1_exec_completed
-dp01_tbl1_exec_completed: @ 802BF9C
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _0802BFDC @ =gUnknown_03004330
- ldr r4, _0802BFE0 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802BFE4 @ =sub_802C014
- str r1, [r0]
- ldr r0, _0802BFE8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802BFF0
- bl GetMultiplayerId
- mov r1, sp
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- mov r2, sp
- bl dp01_prepare_buffer_wireless_probably
- ldr r1, _0802BFEC @ =gUnknown_02023A60
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _0802C002
- .align 2, 0
-_0802BFDC: .4byte gUnknown_03004330
-_0802BFE0: .4byte gUnknown_02024A60
-_0802BFE4: .4byte sub_802C014
-_0802BFE8: .4byte gUnknown_020239F8
-_0802BFEC: .4byte gUnknown_02023A60
-_0802BFF0:
- ldr r2, _0802C00C @ =gUnknown_02024A64
- ldr r1, _0802C010 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_0802C002:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C00C: .4byte gUnknown_02024A64
-_0802C010: .4byte gBitTable
- thumb_func_end dp01_tbl1_exec_completed
-
- thumb_func_start sub_802C014
-sub_802C014: @ 802C014
- push {lr}
- ldr r2, _0802C048 @ =gUnknown_02024A64
- ldr r1, _0802C04C @ =gBitTable
- ldr r0, _0802C050 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0802C060
- ldr r0, _0802C054 @ =gUnknown_02023A60
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _0802C05C
- ldr r0, _0802C058 @ =gUnknown_081FAD98
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _0802C060
- .align 2, 0
-_0802C048: .4byte gUnknown_02024A64
-_0802C04C: .4byte gBitTable
-_0802C050: .4byte gUnknown_02024A60
-_0802C054: .4byte gUnknown_02023A60
-_0802C058: .4byte gUnknown_081FAD98
-_0802C05C:
- bl dp01_tbl1_exec_completed
-_0802C060:
- pop {r0}
- bx r0
- thumb_func_end sub_802C014
-
- thumb_func_start bx_0802E404
-bx_0802E404: @ 802C064
- push {lr}
- ldr r2, _0802C08C @ =gSprites
- ldr r1, _0802C090 @ =gUnknown_02024BE0
- ldr r0, _0802C094 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x24
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0802C086
- bl dp01_tbl1_exec_completed
-_0802C086:
- pop {r0}
- bx r0
- .align 2, 0
-_0802C08C: .4byte gSprites
-_0802C090: .4byte gUnknown_02024BE0
-_0802C094: .4byte gUnknown_02024A60
- thumb_func_end bx_0802E404
-
- thumb_func_start sub_802C098
-sub_802C098: @ 802C098
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _0802C0FC @ =gUnknown_02023A60
- ldr r4, _0802C100 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r2, r0, 9
- adds r1, r7, 0x2
- adds r1, r2, r1
- ldrb r5, [r1]
- adds r1, r7, 0x3
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r5, r1
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x1
- bl dp11b_obj_instanciate
- ldrb r0, [r4]
- movs r1, 0
- movs r2, 0x7
- movs r3, 0x1
- bl dp11b_obj_instanciate
- ldr r0, _0802C104 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0802C13E
- movs r0, 0x5
- bl PlaySE
- bl sub_814A7FC
- ldr r1, _0802C108 @ =gUnknown_02024E60
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0802C11C
- cmp r0, 0x1
- bgt _0802C10C
- cmp r0, 0
- beq _0802C116
- b _0802C138
- .align 2, 0
-_0802C0FC: .4byte gUnknown_02023A60
-_0802C100: .4byte gUnknown_02024A60
-_0802C104: .4byte gMain
-_0802C108: .4byte gUnknown_02024E60
-_0802C10C:
- cmp r0, 0x2
- beq _0802C122
- cmp r0, 0x3
- beq _0802C12E
- b _0802C138
-_0802C116:
- movs r0, 0x1
- movs r1, 0
- b _0802C126
-_0802C11C:
- movs r0, 0x1
- movs r1, 0x1
- b _0802C126
-_0802C122:
- movs r0, 0x1
- movs r1, 0x2
-_0802C126:
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- b _0802C138
-_0802C12E:
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
-_0802C138:
- bl dp01_tbl1_exec_completed
- b _0802C2AC
-_0802C13E:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0802C178
- ldr r5, _0802C174 @ =gUnknown_02024E60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0802C158
- b _0802C2AC
-_0802C158:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- b _0802C200
- .align 2, 0
-_0802C174: .4byte gUnknown_02024E60
-_0802C178:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802C1B0
- ldr r5, _0802C1AC @ =gUnknown_02024E60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0802C192
- b _0802C2AC
-_0802C192:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- b _0802C200
- .align 2, 0
-_0802C1AC: .4byte gUnknown_02024E60
-_0802C1B0:
- movs r0, 0x40
- mov r8, r0
- ands r0, r1
- cmp r0, 0
- beq _0802C1D0
- ldr r5, _0802C1CC @ =gUnknown_02024E60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802C2AC
- b _0802C1E8
- .align 2, 0
-_0802C1CC: .4byte gUnknown_02024E60
-_0802C1D0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802C218
- ldr r5, _0802C214 @ =gUnknown_02024E60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0802C2AC
-_0802C1E8:
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x2
-_0802C200:
- eors r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3E4
- b _0802C2AC
- .align 2, 0
-_0802C214: .4byte gUnknown_02024E60
-_0802C218:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802C2A0
- ldr r6, _0802C294 @ =gUnknown_020239F8
- ldrh r1, [r6]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0802C2AC
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0802C2AC
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _0802C298 @ =gUnknown_02024C0C
- ldrb r1, [r1]
- ldr r2, _0802C29C @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802C2AC
- ldrh r1, [r6]
- mov r0, r8
- ands r0, r1
- cmp r0, 0
- bne _0802C2AC
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, r7, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0802C278
- cmp r5, 0xC
- bhi _0802C2AC
- adds r0, r5, 0
- movs r1, 0x1
- bl AddBagItem
-_0802C278:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- bl dp01_tbl1_exec_completed
- bl sub_814A7FC
- b _0802C2AC
- .align 2, 0
-_0802C294: .4byte gUnknown_020239F8
-_0802C298: .4byte gUnknown_02024C0C
-_0802C29C: .4byte gBitTable
-_0802C2A0:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0802C2AC
- bl sub_804454C
-_0802C2AC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_802C098
-
- thumb_func_start unref_sub_802C2B8
-unref_sub_802C2B8: @ 802C2B8
- push {r4,lr}
- ldr r4, _0802C2E0 @ =gUnknown_02024A60
- ldrb r0, [r4]
- movs r1, 0x1
- bl dp11b_obj_free
- ldrb r0, [r4]
- movs r1, 0
- bl dp11b_obj_free
- ldr r1, _0802C2E4 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802C2E8 @ =sub_802C2EC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C2E0: .4byte gUnknown_02024A60
-_0802C2E4: .4byte gUnknown_03004330
-_0802C2E8: .4byte sub_802C2EC
- thumb_func_end unref_sub_802C2B8
-
- thumb_func_start sub_802C2EC
-sub_802C2EC: @ 802C2EC
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, _0802C384 @ =gUnknown_081FAE7C
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- ldr r0, _0802C388 @ =gUnknown_03004344
- ldrb r0, [r0]
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0x1
- bl dp11b_obj_instanciate
- movs r4, 0
- ldr r0, _0802C38C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802C32E
-_0802C312:
- ldr r0, _0802C388 @ =gUnknown_03004344
- ldrb r0, [r0]
- cmp r4, r0
- beq _0802C324
- lsls r0, r4, 24
- lsrs r0, 24
- movs r1, 0x1
- bl dp11b_obj_free
-_0802C324:
- adds r4, 0x1
- ldr r0, _0802C38C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _0802C312
-_0802C32E:
- ldr r0, _0802C390 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802C3A8
- bl sub_814A7FC
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0802C394 @ =gSprites
- ldr r1, _0802C398 @ =gUnknown_02024BE0
- ldr r4, _0802C388 @ =gUnknown_03004344
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802C39C @ =sub_8010574
- str r1, [r0]
- ldr r1, _0802C3A0 @ =gUnknown_02024E64
- ldr r0, _0802C3A4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldrb r0, [r4]
- lsls r0, 8
- orrs r2, r0
- movs r0, 0x1
- movs r1, 0xA
- bl dp01_build_cmdbuf_x21_a_bb
- ldrb r0, [r4]
- movs r1, 0x1
- bl dp11b_obj_free
- bl dp01_tbl1_exec_completed
- b _0802C658
- .align 2, 0
-_0802C384: .4byte gUnknown_081FAE7C
-_0802C388: .4byte gUnknown_03004344
-_0802C38C: .4byte gUnknown_02024A68
-_0802C390: .4byte gMain
-_0802C394: .4byte gSprites
-_0802C398: .4byte gUnknown_02024BE0
-_0802C39C: .4byte sub_8010574
-_0802C3A0: .4byte gUnknown_02024E64
-_0802C3A4: .4byte gUnknown_02024A60
-_0802C3A8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802C41C
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0802C400 @ =gSprites
- ldr r1, _0802C404 @ =gUnknown_02024BE0
- ldr r5, _0802C408 @ =gUnknown_03004344
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802C40C @ =sub_8010574
- str r1, [r0]
- ldr r1, _0802C410 @ =gUnknown_03004330
- ldr r4, _0802C414 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802C418 @ =sub_802C68C
- str r1, [r0]
- ldrb r0, [r4]
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x1
- bl dp11b_obj_instanciate
- ldrb r0, [r4]
- movs r1, 0
- movs r2, 0x7
- movs r3, 0x1
- bl dp11b_obj_instanciate
- ldrb r0, [r5]
- movs r1, 0x1
- bl dp11b_obj_free
- b _0802C658
- .align 2, 0
-_0802C400: .4byte gSprites
-_0802C404: .4byte gUnknown_02024BE0
-_0802C408: .4byte gUnknown_03004344
-_0802C40C: .4byte sub_8010574
-_0802C410: .4byte gUnknown_03004330
-_0802C414: .4byte gUnknown_02024A60
-_0802C418: .4byte sub_802C68C
-_0802C41C:
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- bne _0802C426
- b _0802C540
-_0802C426:
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0802C458 @ =gSprites
- ldr r1, _0802C45C @ =gUnknown_02024BE0
- ldr r3, _0802C460 @ =gUnknown_03004344
- ldrb r0, [r3]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802C464 @ =sub_8010574
- str r1, [r0]
- adds r5, r3, 0
-_0802C448:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r1, r0, 24
- movs r4, 0
- mov r0, sp
- b _0802C472
- .align 2, 0
-_0802C458: .4byte gSprites
-_0802C45C: .4byte gUnknown_02024BE0
-_0802C460: .4byte gUnknown_03004344
-_0802C464: .4byte sub_8010574
-_0802C468:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _0802C478
- mov r2, sp
- adds r0, r2, r4
-_0802C472:
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802C468
-_0802C478:
- subs r4, 0x1
- cmp r4, 0
- bge _0802C480
- movs r4, 0x3
-_0802C480:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- bl battle_get_side_with_given_state
- strb r0, [r5]
- ldr r1, _0802C4B4 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- beq _0802C478
- movs r4, 0
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0802C4FE
- cmp r0, 0x1
- bgt _0802C4B8
- cmp r0, 0
- beq _0802C4C2
- b _0802C500
- .align 2, 0
-_0802C4B4: .4byte gUnknown_02024A68
-_0802C4B8:
- cmp r0, 0x2
- beq _0802C4C2
- cmp r0, 0x3
- beq _0802C4FE
- b _0802C500
-_0802C4C2:
- ldr r2, _0802C520 @ =gUnknown_02024A60
- ldrb r0, [r2]
- ldrb r1, [r5]
- cmp r0, r1
- bne _0802C4FE
- ldr r1, _0802C524 @ =gUnknown_02024A6A
- ldrb r2, [r2]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802C528 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802C52C @ =gUnknown_02024E64
- adds r2, r1
- ldrb r1, [r2]
- adds r1, 0xD
- bl GetMonData
- ldr r2, _0802C530 @ =gBattleMoves
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x6]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802C500
-_0802C4FE:
- adds r4, 0x1
-_0802C500:
- ldr r0, _0802C534 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _0802C538 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- ldr r0, _0802C53C @ =gUnknown_03004344
- cmp r1, 0
- beq _0802C518
- movs r4, 0
-_0802C518:
- cmp r4, 0
- beq _0802C448
- b _0802C640
- .align 2, 0
-_0802C520: .4byte gUnknown_02024A60
-_0802C524: .4byte gUnknown_02024A6A
-_0802C528: .4byte gPlayerParty
-_0802C52C: .4byte gUnknown_02024E64
-_0802C530: .4byte gBattleMoves
-_0802C534: .4byte gUnknown_02024C0C
-_0802C538: .4byte gBitTable
-_0802C53C: .4byte gUnknown_03004344
-_0802C540:
- movs r0, 0x90
- ands r0, r1
- cmp r0, 0
- bne _0802C54A
- b _0802C658
-_0802C54A:
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0802C57C @ =gSprites
- ldr r1, _0802C580 @ =gUnknown_02024BE0
- ldr r3, _0802C584 @ =gUnknown_03004344
- ldrb r0, [r3]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802C588 @ =sub_8010574
- str r1, [r0]
- adds r5, r3, 0
-_0802C56C:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r1, r0, 24
- movs r4, 0
- mov r0, sp
- b _0802C596
- .align 2, 0
-_0802C57C: .4byte gSprites
-_0802C580: .4byte gUnknown_02024BE0
-_0802C584: .4byte gUnknown_03004344
-_0802C588: .4byte sub_8010574
-_0802C58C:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _0802C59C
- mov r2, sp
- adds r0, r2, r4
-_0802C596:
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802C58C
-_0802C59C:
- adds r4, 0x1
- cmp r4, 0x3
- ble _0802C5A4
- movs r4, 0
-_0802C5A4:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- bl battle_get_side_with_given_state
- strb r0, [r5]
- ldr r1, _0802C5D8 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- beq _0802C59C
- movs r4, 0
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0802C622
- cmp r0, 0x1
- bgt _0802C5DC
- cmp r0, 0
- beq _0802C5E6
- b _0802C624
- .align 2, 0
-_0802C5D8: .4byte gUnknown_02024A68
-_0802C5DC:
- cmp r0, 0x2
- beq _0802C5E6
- cmp r0, 0x3
- beq _0802C622
- b _0802C624
-_0802C5E6:
- ldr r2, _0802C660 @ =gUnknown_02024A60
- ldrb r0, [r2]
- ldrb r1, [r5]
- cmp r0, r1
- bne _0802C622
- ldr r1, _0802C664 @ =gUnknown_02024A6A
- ldrb r2, [r2]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802C668 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802C66C @ =gUnknown_02024E64
- adds r2, r1
- ldrb r1, [r2]
- adds r1, 0xD
- bl GetMonData
- ldr r2, _0802C670 @ =gBattleMoves
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x6]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802C624
-_0802C622:
- adds r4, 0x1
-_0802C624:
- ldr r0, _0802C674 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _0802C678 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- ldr r0, _0802C67C @ =gUnknown_03004344
- cmp r1, 0
- beq _0802C63C
- movs r4, 0
-_0802C63C:
- cmp r4, 0
- beq _0802C56C
-_0802C640:
- ldr r2, _0802C680 @ =gSprites
- ldr r1, _0802C684 @ =gUnknown_02024BE0
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802C688 @ =sub_8010520
- str r1, [r0]
-_0802C658:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C660: .4byte gUnknown_02024A60
-_0802C664: .4byte gUnknown_02024A6A
-_0802C668: .4byte gPlayerParty
-_0802C66C: .4byte gUnknown_02024E64
-_0802C670: .4byte gBattleMoves
-_0802C674: .4byte gUnknown_02024C0C
-_0802C678: .4byte gBitTable
-_0802C67C: .4byte gUnknown_03004344
-_0802C680: .4byte gSprites
-_0802C684: .4byte gUnknown_02024BE0
-_0802C688: .4byte sub_8010520
- thumb_func_end sub_802C2EC
-
- thumb_func_start sub_802C68C
-sub_802C68C: @ 802C68C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r0, 0
- mov r8, r0
- ldr r7, _0802C6E4 @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 9
- ldr r1, _0802C6E8 @ =gUnknown_02023A64
- adds r6, r0, r1
- ldr r0, _0802C6EC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r5, 0x1
- adds r4, r5, 0
- ands r4, r1
- cmp r4, 0
- bne _0802C6B2
- b _0802C864
-_0802C6B2:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802C6F0 @ =gUnknown_02024E64
- ldrb r0, [r7]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- adds r1, r6, r0
- ldrh r0, [r1]
- cmp r0, 0xAE
- bne _0802C6F4
- ldrb r0, [r6, 0x12]
- movs r4, 0
- cmp r0, 0x7
- beq _0802C702
- ldrb r1, [r6, 0x13]
- movs r0, 0x7
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- asrs r4, r0, 31
- movs r0, 0x10
- ands r4, r0
- b _0802C702
- .align 2, 0
-_0802C6E4: .4byte gUnknown_02024A60
-_0802C6E8: .4byte gUnknown_02023A64
-_0802C6EC: .4byte gMain
-_0802C6F0: .4byte gUnknown_02024E64
-_0802C6F4:
- ldr r2, _0802C714 @ =gBattleMoves
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r4, [r0, 0x6]
-_0802C702:
- movs r0, 0x10
- ands r0, r4
- cmp r0, 0
- beq _0802C720
- ldr r0, _0802C718 @ =gUnknown_03004344
- ldr r1, _0802C71C @ =gUnknown_02024A60
- ldrb r1, [r1]
- strb r1, [r0]
- b _0802C73A
- .align 2, 0
-_0802C714: .4byte gBattleMoves
-_0802C718: .4byte gUnknown_03004344
-_0802C71C: .4byte gUnknown_02024A60
-_0802C720:
- ldr r0, _0802C764 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_get_per_side_status
- adds r1, r0, 0
- movs r2, 0x1
- movs r0, 0x1
- ands r0, r1
- eors r0, r2
- bl battle_get_side_with_given_state
- ldr r1, _0802C768 @ =gUnknown_03004344
- strb r0, [r1]
-_0802C73A:
- ldr r3, _0802C76C @ =gUnknown_02023A60
- ldr r5, _0802C764 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r1, r2, 9
- adds r0, r3, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _0802C770
- movs r0, 0x2
- ands r0, r4
- cmp r0, 0
- beq _0802C7B2
- adds r0, r3, 0x2
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _0802C7B2
- movs r2, 0x1
- add r8, r2
- b _0802C7B2
- .align 2, 0
-_0802C764: .4byte gUnknown_02024A60
-_0802C768: .4byte gUnknown_03004344
-_0802C76C: .4byte gUnknown_02023A60
-_0802C770:
- movs r0, 0x7D
- ands r0, r4
- cmp r0, 0
- bne _0802C77C
- movs r0, 0x1
- add r8, r0
-_0802C77C:
- ldr r0, _0802C7D0 @ =gUnknown_02024E64
- adds r0, r2, r0
- adds r1, r6, 0
- adds r1, 0x8
- ldrb r0, [r0]
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0802C7B8
- movs r0, 0x12
- ands r0, r4
- cmp r0, 0
- bne _0802C7B2
- movs r0, 0
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0802C7B2
- ldrb r0, [r5]
- bl sub_803C434
- ldr r1, _0802C7D4 @ =gUnknown_03004344
- strb r0, [r1]
- movs r2, 0
- mov r8, r2
-_0802C7B2:
- mov r0, r8
- cmp r0, 0
- bne _0802C7DC
-_0802C7B8:
- bl sub_814A7FC
- ldr r1, _0802C7D0 @ =gUnknown_02024E64
- ldr r0, _0802C7D8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldr r0, _0802C7D4 @ =gUnknown_03004344
- ldrb r0, [r0]
- lsls r0, 8
- orrs r2, r0
- b _0802C888
- .align 2, 0
-_0802C7D0: .4byte gUnknown_02024E64
-_0802C7D4: .4byte gUnknown_03004344
-_0802C7D8: .4byte gUnknown_02024A60
-_0802C7DC:
- ldr r1, _0802C7F8 @ =gUnknown_03004330
- ldr r2, _0802C7FC @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802C800 @ =sub_802C2EC
- str r1, [r0]
- movs r0, 0x12
- ands r4, r0
- cmp r4, 0
- beq _0802C808
- ldr r1, _0802C804 @ =gUnknown_03004344
- ldrb r0, [r2]
- b _0802C838
- .align 2, 0
-_0802C7F8: .4byte gUnknown_03004330
-_0802C7FC: .4byte gUnknown_02024A60
-_0802C800: .4byte sub_802C2EC
-_0802C804: .4byte gUnknown_03004344
-_0802C808:
- movs r0, 0x1
- bl battle_get_side_with_given_state
- ldr r1, _0802C828 @ =gUnknown_02024C0C
- ldrb r1, [r1]
- ldr r2, _0802C82C @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0802C830
- movs r0, 0x3
- b _0802C832
- .align 2, 0
-_0802C828: .4byte gUnknown_02024C0C
-_0802C82C: .4byte gBitTable
-_0802C830:
- movs r0, 0x1
-_0802C832:
- bl battle_get_side_with_given_state
- ldr r1, _0802C854 @ =gUnknown_03004344
-_0802C838:
- strb r0, [r1]
- ldr r2, _0802C858 @ =gSprites
- ldr r1, _0802C85C @ =gUnknown_02024BE0
- ldr r0, _0802C854 @ =gUnknown_03004344
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802C860 @ =sub_8010520
- b _0802CA36
- .align 2, 0
-_0802C854: .4byte gUnknown_03004344
-_0802C858: .4byte gSprites
-_0802C85C: .4byte gUnknown_02024BE0
-_0802C860: .4byte sub_8010520
-_0802C864:
- movs r6, 0x2
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0802C8A4
- bl sub_814A7FC
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0802C898 @ =gUnknown_030042A4
- strh r4, [r0]
- ldr r1, _0802C89C @ =gUnknown_030042A0
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _0802C8A0 @ =0x0000ffff
-_0802C888:
- movs r0, 0x1
- movs r1, 0xA
- bl dp01_build_cmdbuf_x21_a_bb
- bl dp01_tbl1_exec_completed
- b _0802CA38
- .align 2, 0
-_0802C898: .4byte gUnknown_030042A4
-_0802C89C: .4byte gUnknown_030042A0
-_0802C8A0: .4byte 0x0000ffff
-_0802C8A4:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0802C8D4
- ldr r4, _0802C8D0 @ =gUnknown_02024E64
- adds r2, r4
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _0802C8BC
- b _0802CA38
-_0802C8BC:
- ldrb r0, [r2]
- bl nullsub_7
- ldrb r1, [r7]
- adds r1, r4
- ldrb r0, [r1]
- movs r2, 0x1
- eors r0, r2
- b _0802C976
- .align 2, 0
-_0802C8D0: .4byte gUnknown_02024E64
-_0802C8D4:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802C914
- ldr r4, _0802C90C @ =gUnknown_02024E64
- adds r3, r2, r4
- ldrb r2, [r3]
- movs r6, 0x1
- adds r0, r5, 0
- ands r0, r2
- cmp r0, 0
- beq _0802C8EE
- b _0802CA38
-_0802C8EE:
- ldr r1, _0802C910 @ =gUnknown_03004348
- adds r0, r6, 0
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0802C8FC
- b _0802CA38
-_0802C8FC:
- ldrb r0, [r3]
- bl nullsub_7
- ldrb r1, [r7]
- adds r1, r4
- ldrb r0, [r1]
- eors r0, r6
- b _0802C976
- .align 2, 0
-_0802C90C: .4byte gUnknown_02024E64
-_0802C910: .4byte gUnknown_03004348
-_0802C914:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802C944
- ldr r4, _0802C940 @ =gUnknown_02024E64
- adds r2, r4
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _0802C92C
- b _0802CA38
-_0802C92C:
- ldrb r0, [r2]
- bl nullsub_7
- ldrb r1, [r7]
- adds r1, r4
- ldrb r0, [r1]
- movs r2, 0x2
- eors r0, r2
- b _0802C976
- .align 2, 0
-_0802C940: .4byte gUnknown_02024E64
-_0802C944:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802C99C
- ldr r4, _0802C994 @ =gUnknown_02024E64
- adds r3, r2, r4
- ldrb r2, [r3]
- movs r5, 0x2
- adds r0, r6, 0
- ands r0, r2
- cmp r0, 0
- bne _0802CA38
- ldr r1, _0802C998 @ =gUnknown_03004348
- adds r0, r5, 0
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0802CA38
- ldrb r0, [r3]
- bl nullsub_7
- ldrb r1, [r7]
- adds r1, r4
- ldrb r0, [r1]
- eors r0, r5
-_0802C976:
- strb r0, [r1]
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r7]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3B4
- bl sub_802E220
- bl sub_802E2D4
- b _0802CA38
- .align 2, 0
-_0802C994: .4byte gUnknown_02024E64
-_0802C998: .4byte gUnknown_03004348
-_0802C99C:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0802CA38
- ldr r0, _0802C9D8 @ =gUnknown_03004348
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _0802CA38
- ldr r0, _0802C9DC @ =gUnknown_020239F8
- ldrh r1, [r0]
- adds r0, r6, 0
- ands r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- bne _0802CA38
- ldr r4, _0802C9E0 @ =gUnknown_02024E64
- adds r0, r2, r4
- ldrb r0, [r0]
- ldr r1, _0802C9E4 @ =gUnknown_081FAE80
- bl sub_802E12C
- ldrb r0, [r7]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802C9EC
- ldr r0, _0802C9E8 @ =gUnknown_03004344
- strb r5, [r0]
- b _0802C9F4
- .align 2, 0
-_0802C9D8: .4byte gUnknown_03004348
-_0802C9DC: .4byte gUnknown_020239F8
-_0802C9E0: .4byte gUnknown_02024E64
-_0802C9E4: .4byte gUnknown_081FAE80
-_0802C9E8: .4byte gUnknown_03004344
-_0802C9EC:
- ldr r1, _0802CA44 @ =gUnknown_03004344
- adds r0, 0x1
- strb r0, [r1]
- adds r0, r1, 0
-_0802C9F4:
- ldrb r0, [r0]
- movs r1, 0x1B
- bl sub_802E3B4
- ldr r4, _0802CA48 @ =gUnknown_03004210
- ldr r1, _0802CA4C @ =0x00001016
- movs r0, 0x1C
- str r0, [sp]
- movs r0, 0x3A
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x17
- movs r3, 0x37
- bl FillWindowRect
- ldr r1, _0802CA50 @ =gUnknown_08400D89
- movs r2, 0xA4
- lsls r2, 2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x17
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0802CA54 @ =gUnknown_03004330
- ldr r0, _0802CA58 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802CA5C @ =sub_802CA60
-_0802CA36:
- str r1, [r0]
-_0802CA38:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802CA44: .4byte gUnknown_03004344
-_0802CA48: .4byte gUnknown_03004210
-_0802CA4C: .4byte 0x00001016
-_0802CA50: .4byte gUnknown_08400D89
-_0802CA54: .4byte gUnknown_03004330
-_0802CA58: .4byte gUnknown_02024A60
-_0802CA5C: .4byte sub_802CA60
- thumb_func_end sub_802C68C
-
- thumb_func_start sub_802CA60
-sub_802CA60: @ 802CA60
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- ldr r0, _0802CDEC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x5
- ands r0, r1
- cmp r0, 0
- bne _0802CA7A
- b _0802CE78
-_0802CA7A:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0802CDF0 @ =gUnknown_02024E64
- mov r10, r0
- ldr r1, _0802CDF4 @ =gUnknown_02024A60
- mov r8, r1
- ldrb r1, [r1]
- adds r2, r1, r0
- ldr r5, _0802CDF8 @ =gUnknown_03004344
- ldrb r0, [r2]
- ldrb r3, [r5]
- cmp r0, r3
- bne _0802CA98
- b _0802CE14
-_0802CA98:
- lsls r1, 9
- ldr r0, _0802CDFC @ =gUnknown_02023A64
- adds r1, r0
- mov r9, r1
- ldrb r1, [r2]
- lsls r1, 1
- add r1, r9
- ldrh r6, [r1]
- ldrb r0, [r5]
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r1]
- ldrb r0, [r5]
- lsls r0, 1
- add r0, r9
- strh r6, [r0]
- mov r1, r8
- ldrb r0, [r1]
- add r0, r10
- ldrb r1, [r0]
- mov r7, r9
- adds r7, 0x8
- 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, r10
- ldrb r1, [r0]
- mov r2, r9
- 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, r0
- strb r6, [r2]
- mov r3, r8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r2, _0802CE00 @ =gUnknown_02024CA8
- adds r6, r0, r2
- ldrb r4, [r6, 0x18]
- lsls r3, r4, 24
- lsrs r2, r3, 28
- ldr r0, _0802CE04 @ =gBitTable
- mov r12, r0
- add r1, r10
- ldrb r0, [r1]
- lsls r0, 2
- add r0, r12
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- beq _0802CB52
- lsrs r1, r3, 28
- bics r1, r0
- lsls 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, r0
- lsls r1, 2
- ldr r3, _0802CE00 @ =gUnknown_02024CA8
- adds r1, r3
- ldrb r4, [r1, 0x18]
- lsrs r3, r4, 4
- ldrb r0, [r5]
- lsls r0, 2
- add r0, r12
- ldr r0, [r0]
- orrs r0, r3
- lsls r0, 4
- ands r2, r4
- orrs r2, r0
- strb r2, [r1, 0x18]
-_0802CB52:
- bl sub_802E1B0
- movs r6, 0
- mov r12, r7
- mov r5, sp
- adds r5, 0x20
- str r5, [sp, 0x28]
- ldr r2, _0802CE08 @ =gBattleMons
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r4, r0, 0
- adds r4, 0x3B
- mov r7, r8
- mov r10, r2
- movs r5, 0x3
-_0802CB76:
- mov r3, sp
- adds r3, r6
- adds r3, 0x8
- 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, 0x1
- cmp r6, 0x3
- ble _0802CB76
- ldr r1, _0802CDF0 @ =gUnknown_02024E64
- ldrb r0, [r7]
- adds r0, r1
- ldrb r0, [r0]
- add r0, sp
- adds r0, 0x8
- ldrb r0, [r0]
- ldr r2, [sp, 0x28]
- strb r0, [r2]
- ldrb r0, [r7]
- adds r0, r1
- ldrb r0, [r0]
- mov r2, sp
- adds r2, r0
- adds r2, 0x8
- ldr r1, _0802CDF8 @ =gUnknown_03004344
- ldrb r0, [r1]
- add r0, sp
- adds r0, 0x8
- ldrb r0, [r0]
- movs r3, 0
- strb r0, [r2]
- ldrb r0, [r1]
- mov r1, sp
- adds r1, r0
- adds r1, 0x8
- ldr r5, [sp, 0x28]
- ldrb r0, [r5]
- strb r0, [r1]
- strb r3, [r5]
- movs r6, 0
- ldr r2, [sp, 0x28]
-_0802CBD0:
- mov r0, sp
- adds r0, r6
- adds r0, 0x8
- ldrb r1, [r0]
- lsls r0, r6, 1
- lsls r1, r0
- ldrb r0, [r2]
- orrs r0, r1
- strb r0, [r2]
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CBD0
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r10
- adds r0, 0x3B
- ldr r2, [sp, 0x28]
- ldrb r1, [r2]
- strb r1, [r0]
- movs r6, 0
- adds r4, r7, 0
- movs r3, 0x58
- movs r5, 0x24
- add r5, r10
- mov r8, r5
- mov r2, r9
- mov r7, r10
- adds r7, 0xC
- mov r5, r12
-_0802CC0C:
- lsls r1, r6, 1
- ldrb r0, [r4]
- muls r0, r3
- adds r1, r0
- adds r1, r7
- ldrh r0, [r2]
- strh r0, [r1]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r3
- adds r1, r6, r1
- add r1, r8
- adds r0, r5, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CC0C
- ldr r2, _0802CDF4 @ =gUnknown_02024A60
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- mov r1, r10
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- beq _0802CC4E
- b _0802CE1C
-_0802CC4E:
- movs r6, 0
- mov r0, sp
- adds r0, 0xC
- str r0, [sp, 0x24]
- add r1, sp, 0x14
- mov r10, r1
- ldr r3, _0802CE0C @ =gUnknown_02024A6A
- mov r9, r3
- mov r8, r2
- movs r7, 0x64
- ldr r5, _0802CE10 @ =gPlayerParty
- adds r4, r0, 0
-_0802CC66:
- mov r1, r8
- ldrb r0, [r1]
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- muls r0, r7
- adds r0, r5
- adds r1, r6, 0
- adds r1, 0xD
- bl GetMonData
- strh r0, [r4]
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- muls r0, r7
- adds r0, r5
- adds r1, r6, 0
- adds r1, 0x11
- bl GetMonData
- mov r3, r10
- adds r1, r3, r6
- strb r0, [r1]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CC66
- ldr r1, _0802CE0C @ =gUnknown_02024A6A
- ldr r0, _0802CDF4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802CE10 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- ldr r5, [sp, 0x28]
- strb r0, [r5]
- movs r6, 0
- movs r5, 0x3
- ldr r4, [sp, 0x28]
-_0802CCC6:
- mov r3, sp
- adds r3, r6
- adds r3, 0x8
- 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, 0x1
- cmp r6, 0x3
- ble _0802CCC6
- ldr r4, _0802CDF0 @ =gUnknown_02024E64
- ldr r3, _0802CDF4 @ =gUnknown_02024A60
- ldrb r0, [r3]
- adds r0, r4
- ldrb r1, [r0]
- lsls r1, 1
- ldr r0, [sp, 0x24]
- adds r1, r0, r1
- ldrh r6, [r1]
- ldr r2, _0802CDF8 @ =gUnknown_03004344
- ldrb r0, [r2]
- lsls r0, 1
- ldr r5, [sp, 0x24]
- adds r0, r5, r0
- ldrh r0, [r0]
- movs r5, 0
- strh r0, [r1]
- ldrb r0, [r2]
- lsls r0, 1
- ldr r1, [sp, 0x24]
- adds r0, r1, r0
- strh r6, [r0]
- ldrb r0, [r3]
- adds r0, r4
- ldrb r1, [r0]
- add r1, r10
- ldrb r6, [r1]
- ldrb r0, [r2]
- add r0, r10
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r2]
- add r0, r10
- strb r6, [r0]
- ldrb r0, [r3]
- adds r0, r4
- ldrb r0, [r0]
- add r0, sp
- adds r0, 0x8
- ldrb r0, [r0]
- ldr r1, [sp, 0x28]
- strb r0, [r1]
- ldrb r0, [r3]
- adds r0, r4
- ldrb r0, [r0]
- mov r1, sp
- adds r1, r0
- adds r1, 0x8
- ldrb r0, [r2]
- add r0, sp
- adds r0, 0x8
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r2]
- mov r1, sp
- adds r1, r0
- adds r1, 0x8
- ldr r2, [sp, 0x28]
- ldrb r0, [r2]
- strb r0, [r1]
- strb r5, [r2]
- movs r6, 0
- ldr r2, [sp, 0x28]
-_0802CD5E:
- mov r0, sp
- adds r0, r6
- adds r0, 0x8
- ldrb r1, [r0]
- lsls r0, r6, 1
- lsls r1, r0
- ldrb r0, [r2]
- orrs r0, r1
- strb r0, [r2]
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CD5E
- movs r6, 0
- ldr r3, _0802CE0C @ =gUnknown_02024A6A
- mov r10, r3
- ldr r5, _0802CDF4 @ =gUnknown_02024A60
- mov r9, r5
- movs r0, 0x64
- mov r8, r0
- ldr r7, _0802CE10 @ =gPlayerParty
- ldr r5, [sp, 0x24]
- adds r5, 0x8
- ldr r4, [sp, 0x24]
-_0802CD8C:
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- add r0, r10
- ldrh r0, [r0]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- adds r1, r6, 0
- adds r1, 0xD
- adds r2, r4, 0
- bl SetMonData
- mov r3, r9
- ldrb r0, [r3]
- lsls r0, 1
- add r0, r10
- ldrh r0, [r0]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- adds r1, r6, 0
- adds r1, 0x11
- adds r2, r5, 0
- bl SetMonData
- adds r5, 0x1
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CD8C
- ldr r1, _0802CE0C @ =gUnknown_02024A6A
- ldr r0, _0802CDF4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802CE10 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- ldr r2, [sp, 0x28]
- bl SetMonData
- b _0802CE1C
- .align 2, 0
-_0802CDEC: .4byte gMain
-_0802CDF0: .4byte gUnknown_02024E64
-_0802CDF4: .4byte gUnknown_02024A60
-_0802CDF8: .4byte gUnknown_03004344
-_0802CDFC: .4byte gUnknown_02023A64
-_0802CE00: .4byte gUnknown_02024CA8
-_0802CE04: .4byte gBitTable
-_0802CE08: .4byte gBattleMons
-_0802CE0C: .4byte gUnknown_02024A6A
-_0802CE10: .4byte gPlayerParty
-_0802CE14:
- ldrb r0, [r5]
- ldr r1, _0802CF20 @ =gUnknown_08400D49
- bl sub_802E12C
-_0802CE1C:
- ldr r1, _0802CF24 @ =gUnknown_03004330
- ldr r2, _0802CF28 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802CF2C @ =sub_802C68C
- str r1, [r0]
- ldr r3, _0802CF30 @ =gUnknown_02024E64
- ldrb r0, [r2]
- adds r0, r3
- ldr r1, _0802CF34 @ =gUnknown_03004344
- ldrb r1, [r1]
- strb r1, [r0]
- ldrb r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3B4
- ldr r4, _0802CF38 @ =gUnknown_03004210
- ldr r1, _0802CF3C @ =0x00001016
- movs r0, 0x1C
- str r0, [sp]
- movs r0, 0x3A
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x17
- movs r3, 0x37
- bl FillWindowRect
- ldr r1, _0802CF40 @ =gUnknown_08400D38
- movs r2, 0xA4
- lsls r2, 2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x17
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- bl sub_802E220
- bl sub_802E2D4
-_0802CE78:
- ldr r6, _0802CF44 @ =gMain
- ldrh r1, [r6, 0x2E]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- beq _0802CEF0
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0802CF34 @ =gUnknown_03004344
- ldrb r0, [r0]
- bl nullsub_7
- ldr r5, _0802CF30 @ =gUnknown_02024E64
- ldr r4, _0802CF28 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3B4
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- ldr r1, _0802CF20 @ =gUnknown_08400D49
- bl sub_802E12C
- ldr r1, _0802CF24 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802CF2C @ =sub_802C68C
- str r1, [r0]
- ldr r4, _0802CF38 @ =gUnknown_03004210
- ldr r1, _0802CF3C @ =0x00001016
- movs r0, 0x1C
- str r0, [sp]
- movs r0, 0x3A
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x17
- movs r3, 0x37
- bl FillWindowRect
- ldr r1, _0802CF40 @ =gUnknown_08400D38
- movs r2, 0xA4
- lsls r2, 2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x17
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- bl sub_802E220
- bl sub_802E2D4
-_0802CEF0:
- ldrh r1, [r6, 0x2E]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0802CF8C
- ldr r3, _0802CF34 @ =gUnknown_03004344
- ldrb r2, [r3]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _0802CF8C
- ldr r0, _0802CF30 @ =gUnknown_02024E64
- ldr r1, _0802CF28 @ =gUnknown_02024A60
- ldrb r1, [r1]
- adds r1, r0
- ldrb r5, [r1]
- cmp r2, r5
- bne _0802CF48
- ldrb r0, [r1]
- movs r1, 0x1D
- bl sub_802E3B4
- b _0802CF4E
- .align 2, 0
-_0802CF20: .4byte gUnknown_08400D49
-_0802CF24: .4byte gUnknown_03004330
-_0802CF28: .4byte gUnknown_02024A60
-_0802CF2C: .4byte sub_802C68C
-_0802CF30: .4byte gUnknown_02024E64
-_0802CF34: .4byte gUnknown_03004344
-_0802CF38: .4byte gUnknown_03004210
-_0802CF3C: .4byte 0x00001016
-_0802CF40: .4byte gUnknown_08400D38
-_0802CF44: .4byte gMain
-_0802CF48:
- ldrb r0, [r3]
- bl nullsub_7
-_0802CF4E:
- ldr r4, _0802CF78 @ =gUnknown_03004344
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802CF7C @ =gUnknown_02024E64
- ldr r0, _0802CF80 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802CF84
- adds r0, r1, 0
- movs r1, 0
- bl sub_802E3B4
- b _0802CF8C
- .align 2, 0
-_0802CF78: .4byte gUnknown_03004344
-_0802CF7C: .4byte gUnknown_02024E64
-_0802CF80: .4byte gUnknown_02024A60
-_0802CF84:
- ldrb r0, [r4]
- movs r1, 0x1B
- bl sub_802E3B4
-_0802CF8C:
- ldr r0, _0802CFC8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802D020
- ldr r3, _0802CFCC @ =gUnknown_03004344
- ldrb r2, [r3]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _0802D020
- ldr r1, _0802CFD0 @ =gUnknown_03004348
- movs r0, 0x1
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0802D020
- ldr r0, _0802CFD4 @ =gUnknown_02024E64
- ldr r1, _0802CFD8 @ =gUnknown_02024A60
- ldrb r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- cmp r2, r0
- bne _0802CFDC
- ldrb r0, [r1]
- movs r1, 0x1D
- bl sub_802E3B4
- b _0802CFE2
- .align 2, 0
-_0802CFC8: .4byte gMain
-_0802CFCC: .4byte gUnknown_03004344
-_0802CFD0: .4byte gUnknown_03004348
-_0802CFD4: .4byte gUnknown_02024E64
-_0802CFD8: .4byte gUnknown_02024A60
-_0802CFDC:
- ldrb r0, [r3]
- bl nullsub_7
-_0802CFE2:
- ldr r4, _0802D00C @ =gUnknown_03004344
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802D010 @ =gUnknown_02024E64
- ldr r0, _0802D014 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802D018
- adds r0, r1, 0
- movs r1, 0
- bl sub_802E3B4
- b _0802D020
- .align 2, 0
-_0802D00C: .4byte gUnknown_03004344
-_0802D010: .4byte gUnknown_02024E64
-_0802D014: .4byte gUnknown_02024A60
-_0802D018:
- ldrb r0, [r4]
- movs r1, 0x1B
- bl sub_802E3B4
-_0802D020:
- ldr r0, _0802D050 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802D0A4
- ldr r3, _0802D054 @ =gUnknown_03004344
- ldrb r2, [r3]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0802D0A4
- ldr r0, _0802D058 @ =gUnknown_02024E64
- ldr r1, _0802D05C @ =gUnknown_02024A60
- ldrb r1, [r1]
- adds r1, r0
- ldrb r5, [r1]
- cmp r2, r5
- bne _0802D060
- ldrb r0, [r1]
- movs r1, 0x1D
- bl sub_802E3B4
- b _0802D066
- .align 2, 0
-_0802D050: .4byte gMain
-_0802D054: .4byte gUnknown_03004344
-_0802D058: .4byte gUnknown_02024E64
-_0802D05C: .4byte gUnknown_02024A60
-_0802D060:
- ldrb r0, [r3]
- bl nullsub_7
-_0802D066:
- ldr r4, _0802D090 @ =gUnknown_03004344
- ldrb r0, [r4]
- movs r1, 0x2
- eors r0, r1
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802D094 @ =gUnknown_02024E64
- ldr r0, _0802D098 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802D09C
- adds r0, r1, 0
- movs r1, 0
- bl sub_802E3B4
- b _0802D0A4
- .align 2, 0
-_0802D090: .4byte gUnknown_03004344
-_0802D094: .4byte gUnknown_02024E64
-_0802D098: .4byte gUnknown_02024A60
-_0802D09C:
- ldrb r0, [r4]
- movs r1, 0x1B
- bl sub_802E3B4
-_0802D0A4:
- ldr r0, _0802D0E0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802D138
- ldr r3, _0802D0E4 @ =gUnknown_03004344
- ldrb r2, [r3]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- bne _0802D138
- ldr r1, _0802D0E8 @ =gUnknown_03004348
- movs r0, 0x2
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0802D138
- ldr r0, _0802D0EC @ =gUnknown_02024E64
- ldr r1, _0802D0F0 @ =gUnknown_02024A60
- ldrb r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- cmp r2, r0
- bne _0802D0F4
- ldrb r0, [r1]
- movs r1, 0x1D
- bl sub_802E3B4
- b _0802D0FA
- .align 2, 0
-_0802D0E0: .4byte gMain
-_0802D0E4: .4byte gUnknown_03004344
-_0802D0E8: .4byte gUnknown_03004348
-_0802D0EC: .4byte gUnknown_02024E64
-_0802D0F0: .4byte gUnknown_02024A60
-_0802D0F4:
- ldrb r0, [r3]
- bl nullsub_7
-_0802D0FA:
- ldr r4, _0802D124 @ =gUnknown_03004344
- ldrb r0, [r4]
- movs r1, 0x2
- eors r0, r1
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802D128 @ =gUnknown_02024E64
- ldr r0, _0802D12C @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802D130
- adds r0, r1, 0
- movs r1, 0
- bl sub_802E3B4
- b _0802D138
- .align 2, 0
-_0802D124: .4byte gUnknown_03004344
-_0802D128: .4byte gUnknown_02024E64
-_0802D12C: .4byte gUnknown_02024A60
-_0802D130:
- ldrb r0, [r4]
- movs r1, 0x1B
- bl sub_802E3B4
-_0802D138:
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_802CA60
-
- thumb_func_start sub_802D148
-sub_802D148: @ 802D148
- push {lr}
- ldr r0, _0802D178 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0802D174
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r3, _0802D17C @ =gMain
- ldr r0, _0802D180 @ =0x0000043d
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _0802D184 @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r3]
- ldr r0, _0802D188 @ =c2_8011A1C
- bl SetMainCallback2
-_0802D174:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D178: .4byte gReceivedRemoteLinkPlayers
-_0802D17C: .4byte gMain
-_0802D180: .4byte 0x0000043d
-_0802D184: .4byte gUnknown_030042D0
-_0802D188: .4byte c2_8011A1C
- thumb_func_end sub_802D148
-
- thumb_func_start sub_802D18C
-sub_802D18C: @ 802D18C
- push {lr}
- ldr r0, _0802D1BC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802D1F2
- ldr r0, _0802D1C0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802D1D0
- bl sub_800832C
- ldr r1, _0802D1C4 @ =gUnknown_03004330
- ldr r0, _0802D1C8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802D1CC @ =sub_802D148
- str r1, [r0]
- b _0802D1F2
- .align 2, 0
-_0802D1BC: .4byte gPaletteFade
-_0802D1C0: .4byte gUnknown_020239F8
-_0802D1C4: .4byte gUnknown_03004330
-_0802D1C8: .4byte gUnknown_02024A60
-_0802D1CC: .4byte sub_802D148
-_0802D1D0:
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r2, _0802D1F8 @ =gMain
- ldr r0, _0802D1FC @ =0x0000043d
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _0802D200 @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_0802D1F2:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D1F8: .4byte gMain
-_0802D1FC: .4byte 0x0000043d
-_0802D200: .4byte gUnknown_030042D0
- thumb_func_end sub_802D18C
-
- thumb_func_start sub_802D204
-sub_802D204: @ 802D204
- push {lr}
- ldr r2, _0802D22C @ =gSprites
- ldr r1, _0802D230 @ =gUnknown_02024BE0
- ldr r0, _0802D234 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0802D238 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D228
- bl dp01_tbl1_exec_completed
-_0802D228:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D22C: .4byte gSprites
-_0802D230: .4byte gUnknown_02024BE0
-_0802D234: .4byte gUnknown_02024A60
-_0802D238: .4byte SpriteCallbackDummy
- thumb_func_end sub_802D204
-
- thumb_func_start sub_802D23C
-sub_802D23C: @ 802D23C
- push {lr}
- ldr r2, _0802D264 @ =gSprites
- ldr r1, _0802D268 @ =gUnknown_02024BE0
- ldr r0, _0802D26C @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0802D270 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D260
- bl dp01_tbl1_exec_completed
-_0802D260:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D264: .4byte gSprites
-_0802D268: .4byte gUnknown_02024BE0
-_0802D26C: .4byte gUnknown_02024A60
-_0802D270: .4byte SpriteCallbackDummy
- thumb_func_end sub_802D23C
-
- thumb_func_start sub_802D274
-sub_802D274: @ 802D274
- push {r4-r6,lr}
- ldr r6, _0802D2CC @ =gSprites
- ldr r5, _0802D2D0 @ =gUnknown_02024BE0
- ldr r4, _0802D2D4 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _0802D2D8 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D2C6
- ldr r0, _0802D2DC @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- bl nullsub_10
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl FreeSpriteOamMatrix
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- bl dp01_tbl1_exec_completed
-_0802D2C6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D2CC: .4byte gSprites
-_0802D2D0: .4byte gUnknown_02024BE0
-_0802D2D4: .4byte gUnknown_02024A60
-_0802D2D8: .4byte SpriteCallbackDummy
-_0802D2DC: .4byte gSaveBlock2
- thumb_func_end sub_802D274
-
- thumb_func_start sub_802D2E0
-sub_802D2E0: @ 802D2E0
- push {lr}
- ldr r3, _0802D314 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, _0802D318 @ =0x02017810
- adds r1, r2
- ldrb r0, [r1, 0x9]
- subs r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0802D310
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0
- strb r0, [r1, 0x9]
- bl dp01_tbl1_exec_completed
-_0802D310:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D314: .4byte gUnknown_02024A60
-_0802D318: .4byte 0x02017810
- thumb_func_end sub_802D2E0
-
- thumb_func_start sub_802D31C
-sub_802D31C: @ 802D31C
- push {r4-r7,lr}
- movs r6, 0
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0802D340
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0802D374
- ldr r0, _0802D360 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802D374
-_0802D340:
- ldr r2, _0802D364 @ =gSprites
- ldr r1, _0802D368 @ =gUnknown_03004340
- ldr r0, _0802D36C @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0802D370 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D3AA
- b _0802D3A8
- .align 2, 0
-_0802D360: .4byte gUnknown_020239F8
-_0802D364: .4byte gSprites
-_0802D368: .4byte gUnknown_03004340
-_0802D36C: .4byte gUnknown_02024A60
-_0802D370: .4byte SpriteCallbackDummy
-_0802D374:
- ldr r2, _0802D45C @ =gSprites
- ldr r5, _0802D460 @ =gUnknown_03004340
- ldr r0, _0802D464 @ =gUnknown_02024A60
- ldrb r3, [r0]
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r4, [r0]
- ldr r0, _0802D468 @ =SpriteCallbackDummy
- cmp r4, r0
- bne _0802D3AA
- movs r0, 0x2
- eors r3, r0
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, r4
- bne _0802D3AA
-_0802D3A8:
- movs r6, 0x1
-_0802D3AA:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _0802D3B6
- movs r6, 0
-_0802D3B6:
- cmp r6, 0
- bne _0802D3BC
- b _0802D4DA
-_0802D3BC:
- ldr r7, _0802D464 @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r5, _0802D46C @ =0x02017810
- adds r4, r0, r5
- ldrb r1, [r4, 0x1]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0802D3D8
- b _0802D4DA
-_0802D3D8:
- movs r6, 0x2
- adds r1, r6, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0802D4DA
- ldrb r1, [r4]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r4]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x1]
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- ands r4, r1
- strb r4, [r0, 0x1]
- ldr r4, _0802D470 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r0, _0802D474 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802D47C
- ldr r0, _0802D478 @ =gMPlay_BGM
- bl m4aMPlayContinue
- b _0802D488
- .align 2, 0
-_0802D45C: .4byte gSprites
-_0802D460: .4byte gUnknown_03004340
-_0802D464: .4byte gUnknown_02024A60
-_0802D468: .4byte SpriteCallbackDummy
-_0802D46C: .4byte 0x02017810
-_0802D470: .4byte 0x000027f9
-_0802D474: .4byte gUnknown_020239F8
-_0802D478: .4byte gMPlay_BGM
-_0802D47C:
- ldr r0, _0802D4E0 @ =gMPlay_BGM
- ldr r1, _0802D4E4 @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_0802D488:
- ldr r7, _0802D4E8 @ =gUnknown_02024A6A
- ldr r4, _0802D4EC @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _0802D4F0 @ =gPlayerParty
- adds r0, r5
- bl sub_80324F8
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0802D4BE
- ldrb r0, [r4]
- movs r1, 0x2
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- bl sub_80324F8
-_0802D4BE:
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802D4F4 @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x9]
- ldr r1, _0802D4F8 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802D4FC @ =sub_802D2E0
- str r1, [r0]
-_0802D4DA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D4E0: .4byte gMPlay_BGM
-_0802D4E4: .4byte 0x0000ffff
-_0802D4E8: .4byte gUnknown_02024A6A
-_0802D4EC: .4byte gUnknown_02024A60
-_0802D4F0: .4byte gPlayerParty
-_0802D4F4: .4byte 0x02017810
-_0802D4F8: .4byte gUnknown_03004330
-_0802D4FC: .4byte sub_802D2E0
- thumb_func_end sub_802D31C
-
- thumb_func_start sub_802D500
-sub_802D500: @ 802D500
- push {r4-r7,lr}
- ldr r5, _0802D654 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r4, _0802D658 @ =0x02017810
- adds r0, r4
- ldrb r1, [r0]
- movs r7, 0x88
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _0802D530
- ldr r0, _0802D65C @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0802D660 @ =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_0802D530:
- ldrb r0, [r5]
- movs r6, 0x2
- adds r2, r6, 0
- eors r2, r0
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _0802D55E
- ldr r0, _0802D65C @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0802D660 @ =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_0802D55E:
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r3, 0x8
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0802D64C
- adds r1, r6, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0802D64C
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0802D5EE
- ldr r0, _0802D664 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0802D5EE
- ldr r1, _0802D668 @ =gUnknown_0300434C
- ldrb r0, [r5]
- eors r0, r6
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802D66C @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r4, _0802D670 @ =gUnknown_03004340
- ldrb r0, [r5]
- adds r1, r6, 0
- eors r1, r0
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _0802D65C @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0802D660 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r5]
- eors r0, r6
- bl sub_804777C
- ldrb r0, [r5]
- eors r0, r6
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
-_0802D5EE:
- ldr r1, _0802D668 @ =gUnknown_0300434C
- ldr r4, _0802D654 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802D66C @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r5, _0802D670 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _0802D65C @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0802D660 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r4]
- bl sub_804777C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- ldr r2, _0802D674 @ =0x02017840
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _0802D678 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802D67C @ =sub_802D31C
- str r1, [r0]
-_0802D64C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D654: .4byte gUnknown_02024A60
-_0802D658: .4byte 0x02017810
-_0802D65C: .4byte gUnknown_02024A6A
-_0802D660: .4byte gPlayerParty
-_0802D664: .4byte gUnknown_020239F8
-_0802D668: .4byte gUnknown_0300434C
-_0802D66C: .4byte gSprites
-_0802D670: .4byte gUnknown_03004340
-_0802D674: .4byte 0x02017840
-_0802D678: .4byte gUnknown_03004330
-_0802D67C: .4byte sub_802D31C
- thumb_func_end sub_802D500
-
- thumb_func_start sub_802D680
-sub_802D680: @ 802D680
- push {r4-r6,lr}
- ldr r2, _0802D710 @ =gSprites
- ldr r0, _0802D714 @ =gUnknown_03004340
- ldr r6, _0802D718 @ =gUnknown_02024A60
- ldrb r3, [r6]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0802D71C @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D708
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r5, _0802D720 @ =0x02017810
- adds r2, r0, r5
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802D708
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r6]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _0802D724 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldrb r2, [r6]
- lsls r0, r2, 2
- adds r1, r5, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0802D6FC
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
-_0802D6FC:
- ldr r0, _0802D728 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0802D72C @ =sub_802D730
- str r0, [r1]
-_0802D708:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D710: .4byte gSprites
-_0802D714: .4byte gUnknown_03004340
-_0802D718: .4byte gUnknown_02024A60
-_0802D71C: .4byte SpriteCallbackDummy
-_0802D720: .4byte 0x02017810
-_0802D724: .4byte 0x000027f9
-_0802D728: .4byte gUnknown_03004330
-_0802D72C: .4byte sub_802D730
- thumb_func_end sub_802D680
-
- thumb_func_start sub_802D730
-sub_802D730: @ 802D730
- push {r4,lr}
- ldr r4, _0802D780 @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802D784 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0802D77A
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- bne _0802D77A
- ldr r0, _0802D788 @ =gMPlay_BGM
- ldr r1, _0802D78C @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- ldr r2, _0802D790 @ =gUnknown_02024A6A
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0802D794 @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- bl dp01_tbl1_exec_completed
-_0802D77A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D780: .4byte gUnknown_02024A60
-_0802D784: .4byte 0x02017810
-_0802D788: .4byte gMPlay_BGM
-_0802D78C: .4byte 0x0000ffff
-_0802D790: .4byte gUnknown_02024A6A
-_0802D794: .4byte gPlayerParty
- thumb_func_end sub_802D730
-
- thumb_func_start sub_802D798
-sub_802D798: @ 802D798
- push {r4-r6,lr}
- ldr r5, _0802D844 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r6, _0802D848 @ =0x02017810
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _0802D7C6
- ldr r0, _0802D84C @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0802D850 @ =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_0802D7C6:
- ldr r4, _0802D854 @ =gSprites
- ldr r0, _0802D858 @ =gUnknown_0300434C
- ldrb r2, [r5]
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r3, r0, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r3, r0
- ldr r1, [r0]
- ldr r0, _0802D85C @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D83C
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0802D83C
- adds r0, r3, r4
- bl DestroySprite
- ldr r4, _0802D860 @ =gUnknown_03004340
- ldrb r1, [r5]
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _0802D84C @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0802D850 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r5]
- bl sub_804777C
- ldrb r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r0, [r5]
- bl sub_8031F88
- ldr r1, _0802D864 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802D868 @ =sub_802D680
- str r1, [r0]
-_0802D83C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D844: .4byte gUnknown_02024A60
-_0802D848: .4byte 0x02017810
-_0802D84C: .4byte gUnknown_02024A6A
-_0802D850: .4byte gPlayerParty
-_0802D854: .4byte gSprites
-_0802D858: .4byte gUnknown_0300434C
-_0802D85C: .4byte SpriteCallbackDummy
-_0802D860: .4byte gUnknown_03004340
-_0802D864: .4byte gUnknown_03004330
-_0802D868: .4byte sub_802D680
- thumb_func_end sub_802D798
-
- thumb_func_start c3_0802FDF4
-c3_0802FDF4: @ 802D86C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- bne _0802D88E
- ldr r0, _0802D894 @ =gMPlay_BGM
- ldr r1, _0802D898 @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- adds r0, r4, 0
- bl DestroyTask
-_0802D88E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D894: .4byte gMPlay_BGM
-_0802D898: .4byte 0x0000ffff
- thumb_func_end c3_0802FDF4
-
- thumb_func_start bx_t1_healthbar_update
-bx_t1_healthbar_update: @ 802D89C
- push {r4-r6,lr}
- ldr r5, _0802D8DC @ =gUnknown_02024A60
- ldrb r0, [r5]
- ldr r6, _0802D8E0 @ =gUnknown_03004340
- adds r1, r0, r6
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0
- bl sub_8045C78
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- bl sub_8043DFC
- lsls r4, 16
- asrs r1, r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0802D8E4
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- movs r2, 0
- bl sub_80440EC
- b _0802D8FE
- .align 2, 0
-_0802D8DC: .4byte gUnknown_02024A60
-_0802D8E0: .4byte gUnknown_03004340
-_0802D8E4:
- ldr r2, _0802D904 @ =gUnknown_02024A6A
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0802D908 @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- bl dp01_tbl1_exec_completed
-_0802D8FE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D904: .4byte gUnknown_02024A6A
-_0802D908: .4byte gPlayerParty
- thumb_func_end bx_t1_healthbar_update
-
- thumb_func_start sub_802D90C
-sub_802D90C: @ 802D90C
- push {lr}
- ldr r0, _0802D920 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _0802D91A
- bl dp01_tbl1_exec_completed
-_0802D91A:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D920: .4byte gUnknown_03004210
- thumb_func_end sub_802D90C
-
- thumb_func_start sub_802D924
-sub_802D924: @ 802D924
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _0802DA24 @ =gTasks
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- mov r8, r0
- ldrb r0, [r0, 0x8]
- mov r10, r0
- mov r1, r8
- ldrb r7, [r1, 0xC]
- str r7, [sp, 0x8]
- ldrh r2, [r1, 0xA]
- str r2, [sp, 0xC]
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0802D96A
- ldr r1, _0802DA28 @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r10, r0
- bne _0802D96A
- b _0802DA80
-_0802D96A:
- movs r0, 0x64
- mov r1, r10
- muls r1, r0
- ldr r0, _0802DA2C @ =gPlayerParty
- adds r6, r1, r0
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x4]
- ldr r3, _0802DA30 @ =gExperienceTables
- adds r4, 0x1
- lsls r4, 2
- ldr r2, _0802DA34 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x13]
- movs r1, 0xCA
- lsls r1, 1
- muls r1, r2
- adds r4, r1
- adds r4, r3
- ldr r2, [r4]
- str r2, [sp]
- ldr r3, [sp, 0xC]
- lsls r1, r3, 16
- asrs r1, 16
- adds r0, r1
- cmp r0, r2
- bcc _0802DA58
- adds r0, r6, 0
- movs r1, 0x19
- mov r2, sp
- bl SetMonData
- adds r0, r6, 0
- bl CalculateMonStats
- ldr r2, [sp]
- add r0, sp, 0x4
- ldrh r0, [r0]
- subs r2, r0
- ldr r0, [sp, 0xC]
- subs r2, r0, r2
- ldr r4, _0802DA38 @ =gUnknown_02024A60
- ldrb r5, [r4]
- strb r7, [r4]
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x1
- movs r1, 0xB
- bl dp01_build_cmdbuf_x21_a_bb
- strb r5, [r4]
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0802DA40
- ldr r2, _0802DA28 @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r2
- mov r1, r10
- ldrh r0, [r0]
- cmp r1, r0
- beq _0802DA1E
- movs r0, 0x2
- eors r7, r0
- lsls r0, r7, 1
- adds r0, r2
- ldrh r0, [r0]
- cmp r1, r0
- bne _0802DA40
-_0802DA1E:
- ldr r0, _0802DA3C @ =sub_802DCB0
- b _0802DA82
- .align 2, 0
-_0802DA24: .4byte gTasks
-_0802DA28: .4byte gUnknown_02024A6A
-_0802DA2C: .4byte gPlayerParty
-_0802DA30: .4byte gExperienceTables
-_0802DA34: .4byte gBaseStats
-_0802DA38: .4byte gUnknown_02024A60
-_0802DA3C: .4byte sub_802DCB0
-_0802DA40:
- ldr r0, _0802DA50 @ =gTasks
- mov r2, r9
- lsls r1, r2, 2
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldr r0, _0802DA54 @ =sub_802DDC4
- b _0802DA84
- .align 2, 0
-_0802DA50: .4byte gTasks
-_0802DA54: .4byte sub_802DDC4
-_0802DA58:
- str r0, [sp, 0x4]
- add r2, sp, 0x4
- adds r0, r6, 0
- movs r1, 0x19
- bl SetMonData
- ldr r1, _0802DA78 @ =gUnknown_03004330
- ldr r3, [sp, 0x8]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, _0802DA7C @ =sub_802D90C
- str r1, [r0]
- mov r0, r9
- bl DestroyTask
- b _0802DA86
- .align 2, 0
-_0802DA78: .4byte gUnknown_03004330
-_0802DA7C: .4byte sub_802D90C
-_0802DA80:
- ldr r0, _0802DA98 @ =sub_802DA9C
-_0802DA82:
- mov r1, r8
-_0802DA84:
- str r0, [r1]
-_0802DA86:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DA98: .4byte sub_802DA9C
- thumb_func_end sub_802D924
-
- thumb_func_start sub_802DA9C
-sub_802DA9C: @ 802DA9C
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0802DB54 @ =gTasks
- lsls r2, r0, 2
- mov r8, r2
- add r8, r0
- mov r0, r8
- lsls r0, 3
- mov r8, r0
- add r8, r1
- mov r2, r8
- ldrb r1, [r2, 0x8]
- movs r0, 0xA
- ldrsh r2, [r2, r0]
- mov r9, r2
- mov r2, r8
- ldrb r2, [r2, 0xC]
- mov r10, r2
- movs r0, 0x64
- adds r6, r1, 0
- muls r6, r0
- ldr r0, _0802DB58 @ =gPlayerParty
- adds r6, r0
- adds r0, r6, 0
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- movs r1, 0x19
- bl GetMonData
- adds r3, r0, 0
- ldr r6, _0802DB5C @ =gExperienceTables
- lsls r1, r4, 2
- ldr r2, _0802DB60 @ =gBaseStats
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r2
- adds r1, r0
- adds r1, r6
- ldr r1, [r1]
- subs r3, r1
- adds r4, 0x1
- lsls r4, 2
- adds r4, r0
- adds r4, r6
- ldr r2, [r4]
- subs r2, r1
- ldr r0, _0802DB64 @ =gUnknown_03004340
- add r0, r10
- ldrb r1, [r0]
- mov r0, r9
- negs r0, r0
- str r0, [sp]
- mov r0, r10
- bl sub_8043D84
- movs r0, 0x21
- bl PlaySE
- ldr r0, _0802DB68 @ =sub_802DB6C
- mov r1, r8
- str r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DB54: .4byte gTasks
-_0802DB58: .4byte gPlayerParty
-_0802DB5C: .4byte gExperienceTables
-_0802DB60: .4byte gBaseStats
-_0802DB64: .4byte gUnknown_03004340
-_0802DB68: .4byte sub_802DB6C
- thumb_func_end sub_802DA9C
-
- thumb_func_start sub_802DB6C
-sub_802DB6C: @ 802DB6C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _0802DB98 @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r6, r0, r1
- ldrh r1, [r6, 0x1C]
- movs r2, 0x1C
- ldrsh r0, [r6, r2]
- cmp r0, 0xC
- bgt _0802DB9C
- adds r0, r1, 0x1
- strh r0, [r6, 0x1C]
- b _0802DC98
- .align 2, 0
-_0802DB98: .4byte gTasks
-_0802DB9C:
- ldrb r0, [r6, 0x8]
- mov r9, r0
- ldrh r2, [r6, 0xA]
- mov r10, r2
- ldrb r7, [r6, 0xC]
- ldr r5, _0802DC64 @ =gUnknown_03004340
- adds r5, r7, r5
- ldrb r1, [r5]
- adds r0, r7, 0
- movs r2, 0x1
- movs r3, 0
- bl sub_8045C78
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- bl sub_8043DFC
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- bne _0802DC98
- movs r0, 0x21
- bl m4aSongNumStop
- movs r0, 0x64
- mov r1, r9
- muls r1, r0
- ldr r0, _0802DC68 @ =gPlayerParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r3, _0802DC6C @ =gExperienceTables
- adds r4, 0x1
- lsls r4, 2
- ldr r2, _0802DC70 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r1
- adds r4, r0
- adds r4, r3
- ldr r1, [r4]
- str r1, [sp]
- mov r2, r10
- lsls r0, r2, 16
- asrs r4, r0, 16
- ldr r0, [sp, 0x4]
- adds r0, r4
- cmp r0, r1
- blt _0802DC7C
- adds r0, r5, 0
- movs r1, 0x19
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- bl CalculateMonStats
- ldr r2, [sp]
- add r0, sp, 0x4
- ldrh r0, [r0]
- subs r2, r0
- subs r2, r4, r2
- ldr r4, _0802DC74 @ =gUnknown_02024A60
- ldrb r5, [r4]
- strb r7, [r4]
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x1
- movs r1, 0xB
- bl dp01_build_cmdbuf_x21_a_bb
- strb r5, [r4]
- ldr r0, _0802DC78 @ =sub_802DCB0
- str r0, [r6]
- b _0802DC98
- .align 2, 0
-_0802DC64: .4byte gUnknown_03004340
-_0802DC68: .4byte gPlayerParty
-_0802DC6C: .4byte gExperienceTables
-_0802DC70: .4byte gBaseStats
-_0802DC74: .4byte gUnknown_02024A60
-_0802DC78: .4byte sub_802DCB0
-_0802DC7C:
- str r0, [sp, 0x4]
- add r2, sp, 0x4
- adds r0, r5, 0
- movs r1, 0x19
- bl SetMonData
- ldr r1, _0802DCA8 @ =gUnknown_03004330
- lsls r0, r7, 2
- adds r0, r1
- ldr r1, _0802DCAC @ =sub_802D90C
- str r1, [r0]
- mov r0, r8
- bl DestroyTask
-_0802DC98:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DCA8: .4byte gUnknown_03004330
-_0802DCAC: .4byte sub_802D90C
- thumb_func_end sub_802DB6C
-
- thumb_func_start sub_802DCB0
-sub_802DCB0: @ 802DCB0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0802DD04 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrb r4, [r0, 0xC]
- ldrb r6, [r0, 0x8]
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0802DCE4
- ldr r1, _0802DD08 @ =gUnknown_02024A6A
- movs r0, 0x2
- adds r2, r4, 0
- eors r2, r0
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- bne _0802DCE4
- adds r4, r2, 0
-_0802DCE4:
- adds r0, r4, 0
- adds r1, r4, 0
- adds r2, r4, 0
- movs r3, 0
- bl move_anim_start_t4
- ldr r0, _0802DD04 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0802DD0C @ =sub_802DD10
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DD04: .4byte gTasks
-_0802DD08: .4byte gUnknown_02024A6A
-_0802DD0C: .4byte sub_802DD10
- thumb_func_end sub_802DCB0
-
- thumb_func_start sub_802DD10
-sub_802DD10: @ 802DD10
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0802DD78 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r2, r0, r1
- ldrb r5, [r2, 0xC]
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- ldr r1, _0802DD7C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0802DDAE
- ldrb r4, [r2, 0x8]
- movs r0, 0x64
- adds r1, r4, 0
- muls r1, r0
- ldr r0, _0802DD80 @ =gPlayerParty
- adds r7, r1, r0
- adds r0, r7, 0
- movs r1, 0x38
- bl GetMonData
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0802DD8C
- ldr r1, _0802DD84 @ =gUnknown_02024A6A
- movs r0, 0x2
- adds r2, r5, 0
- eors r2, r0
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- bne _0802DD8C
- ldr r0, _0802DD88 @ =gUnknown_03004340
- adds r0, r2, r0
- ldrb r0, [r0]
- adds r1, r7, 0
- movs r2, 0
- bl sub_8045A5C
- b _0802DDA0
- .align 2, 0
-_0802DD78: .4byte gTasks
-_0802DD7C: .4byte 0x02017810
-_0802DD80: .4byte gPlayerParty
-_0802DD84: .4byte gUnknown_02024A6A
-_0802DD88: .4byte gUnknown_03004340
-_0802DD8C:
- ldr r0, _0802DDB4 @ =gUnknown_03004340
- adds r0, r5, r0
- ldrb r0, [r0]
- movs r1, 0x64
- muls r1, r4
- ldr r2, _0802DDB8 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
-_0802DDA0:
- ldr r0, _0802DDBC @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0802DDC0 @ =sub_802DDC4
- str r0, [r1]
-_0802DDAE:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DDB4: .4byte gUnknown_03004340
-_0802DDB8: .4byte gPlayerParty
-_0802DDBC: .4byte gTasks
-_0802DDC0: .4byte sub_802DDC4
- thumb_func_end sub_802DD10
-
- thumb_func_start sub_802DDC4
-sub_802DDC4: @ 802DDC4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0802DE00 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r1, [r4, 0x8]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802DE04 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- bl GetMonData
- ldrb r0, [r4, 0xC]
- ldr r1, _0802DE08 @ =gUnknown_03004330
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802DE0C @ =sub_802D90C
- str r1, [r0]
- adds r0, r5, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DE00: .4byte gTasks
-_0802DE04: .4byte gPlayerParty
-_0802DE08: .4byte gUnknown_03004330
-_0802DE0C: .4byte sub_802D90C
- thumb_func_end sub_802DDC4
-
- thumb_func_start sub_802DE10
-sub_802DE10: @ 802DE10
- push {r4-r6,lr}
- ldr r6, _0802DE94 @ =gSprites
- ldr r5, _0802DE98 @ =gUnknown_02024BE0
- ldr r4, _0802DE9C @ =gUnknown_02024A60
- ldrb r2, [r4]
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r3, 0x22
- ldrsh r1, [r0, r3]
- movs r3, 0x26
- ldrsh r0, [r0, r3]
- adds r1, r0
- cmp r1, 0xA0
- ble _0802DE8C
- ldr r1, _0802DEA0 @ =gUnknown_02024A6A
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802DEA4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl nullsub_9
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- ldr r1, _0802DEA8 @ =gUnknown_03004340
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl1_exec_completed
-_0802DE8C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DE94: .4byte gSprites
-_0802DE98: .4byte gUnknown_02024BE0
-_0802DE9C: .4byte gUnknown_02024A60
-_0802DEA0: .4byte gUnknown_02024A6A
-_0802DEA4: .4byte gPlayerParty
-_0802DEA8: .4byte gUnknown_03004340
- thumb_func_end sub_802DE10
-
- thumb_func_start sub_802DEAC
-sub_802DEAC: @ 802DEAC
- push {r4-r6,lr}
- ldr r6, _0802DF04 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _0802DF08 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0802DEFC
- ldr r5, _0802DF0C @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0802DF10 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _0802DF14 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl1_exec_completed
-_0802DEFC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DF04: .4byte gUnknown_02024A60
-_0802DF08: .4byte 0x02017810
-_0802DF0C: .4byte gUnknown_02024BE0
-_0802DF10: .4byte gSprites
-_0802DF14: .4byte gUnknown_03004340
- thumb_func_end sub_802DEAC
-
- thumb_func_start sub_802DF18
-sub_802DF18: @ 802DF18
- push {lr}
- ldr r0, _0802DF2C @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _0802DF26
- bl dp01_tbl1_exec_completed
-_0802DF26:
- pop {r0}
- bx r0
- .align 2, 0
-_0802DF2C: .4byte gUnknown_03004210
- thumb_func_end sub_802DF18
-
- thumb_func_start sub_802DF30
-sub_802DF30: @ 802DF30
- push {r4,lr}
- ldr r0, _0802DF70 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802DF6A
- ldr r1, _0802DF74 @ =gUnknown_03004330
- ldr r2, _0802DF78 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802DF7C @ =sub_802DF88
- str r1, [r0]
- ldr r3, _0802DF80 @ =gTasks
- ldr r1, _0802DF84 @ =gUnknown_0300434C
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldrb r4, [r1, 0x8]
- bl DestroyTask
- adds r0, r4, 0
- bl sub_8094E20
-_0802DF6A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DF70: .4byte gPaletteFade
-_0802DF74: .4byte gUnknown_03004330
-_0802DF78: .4byte gUnknown_02024A60
-_0802DF7C: .4byte sub_802DF88
-_0802DF80: .4byte gTasks
-_0802DF84: .4byte gUnknown_0300434C
- thumb_func_end sub_802DF30
-
- thumb_func_start sub_802DF88
-sub_802DF88: @ 802DF88
- push {lr}
- ldr r0, _0802DFB8 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0802DFBC @ =sub_800F808
- cmp r1, r0
- bne _0802DFF8
- ldr r0, _0802DFC0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802DFF8
- ldr r0, _0802DFC4 @ =gUnknown_0202E8F4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0802DFD0
- ldr r0, _0802DFC8 @ =gUnknown_0202E8F5
- ldrb r1, [r0]
- ldr r2, _0802DFCC @ =gUnknown_02038470
- movs r0, 0x1
- bl dp01_build_cmdbuf_x22_a_three_bytes
- b _0802DFDA
- .align 2, 0
-_0802DFB8: .4byte gMain
-_0802DFBC: .4byte sub_800F808
-_0802DFC0: .4byte gPaletteFade
-_0802DFC4: .4byte gUnknown_0202E8F4
-_0802DFC8: .4byte gUnknown_0202E8F5
-_0802DFCC: .4byte gUnknown_02038470
-_0802DFD0:
- movs r0, 0x1
- movs r1, 0x6
- movs r2, 0
- bl dp01_build_cmdbuf_x22_a_three_bytes
-_0802DFDA:
- ldr r1, _0802DFFC @ =gUnknown_02023A60
- ldr r0, _0802E000 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x1
- bne _0802DFF4
- bl b_link_standby_message
-_0802DFF4:
- bl dp01_tbl1_exec_completed
-_0802DFF8:
- pop {r0}
- bx r0
- .align 2, 0
-_0802DFFC: .4byte gUnknown_02023A60
-_0802E000: .4byte gUnknown_02024A60
- thumb_func_end sub_802DF88
-
- thumb_func_start sub_802E004
-sub_802E004: @ 802E004
- push {lr}
- ldr r0, _0802E02C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802E028
- ldr r1, _0802E030 @ =gUnknown_03004330
- ldr r0, _0802E034 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802E038 @ =sub_802E03C
- str r1, [r0]
- bl nullsub_14
- bl sub_80A6DCC
-_0802E028:
- pop {r0}
- bx r0
- .align 2, 0
-_0802E02C: .4byte gPaletteFade
-_0802E030: .4byte gUnknown_03004330
-_0802E034: .4byte gUnknown_02024A60
-_0802E038: .4byte sub_802E03C
- thumb_func_end sub_802E004
-
- thumb_func_start sub_802E03C
-sub_802E03C: @ 802E03C
- push {lr}
- ldr r0, _0802E068 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0802E06C @ =sub_800F808
- cmp r1, r0
- bne _0802E062
- ldr r0, _0802E070 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802E062
- ldr r0, _0802E074 @ =word_203855E
- ldrh r1, [r0]
- movs r0, 0x1
- bl dp01_build_cmdbuf_x23_aa_0
- bl dp01_tbl1_exec_completed
-_0802E062:
- pop {r0}
- bx r0
- .align 2, 0
-_0802E068: .4byte gMain
-_0802E06C: .4byte sub_800F808
-_0802E070: .4byte gPaletteFade
-_0802E074: .4byte word_203855E
- thumb_func_end sub_802E03C
-
- thumb_func_start bx_wait_t1
-bx_wait_t1: @ 802E078
- push {lr}
- ldr r0, _0802E0A4 @ =gUnknown_02024E6D
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802E09A
- ldr r0, _0802E0A8 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802E0AC @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0802E09E
-_0802E09A:
- bl dp01_tbl1_exec_completed
-_0802E09E:
- pop {r0}
- bx r0
- .align 2, 0
-_0802E0A4: .4byte gUnknown_02024E6D
-_0802E0A8: .4byte gUnknown_02024A60
-_0802E0AC: .4byte 0x02017810
- thumb_func_end bx_wait_t1
-
- thumb_func_start bx_blink_t1
-bx_blink_t1: @ 802E0B0
- push {r4,lr}
- ldr r1, _0802E0EC @ =gUnknown_02024BE0
- ldr r0, _0802E0F0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _0802E0F4 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bne _0802E0FC
- movs r3, 0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x5
- ands r0, r1
- strb r0, [r2]
- ldr r0, _0802E0F8 @ =gUnknown_02024E6D
- strb r3, [r0]
- bl dp01_tbl1_exec_completed
- b _0802E126
- .align 2, 0
-_0802E0EC: .4byte gUnknown_02024BE0
-_0802E0F0: .4byte gUnknown_02024A60
-_0802E0F4: .4byte gSprites
-_0802E0F8: .4byte gUnknown_02024E6D
-_0802E0FC:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0802E120
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_0802E120:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_0802E126:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end bx_blink_t1
-
- thumb_func_start sub_802E12C
-sub_802E12C: @ 802E12C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r0, _0802E180 @ =gUnknown_02024A60
- ldrb r4, [r0]
- lsls r4, 9
- ldr r0, _0802E184 @ =gUnknown_02023A64
- adds r4, r0
- ldr r5, _0802E188 @ =gUnknown_020238CC
- adds r0, r5, 0
- bl StringCopy
- lsls r0, r6, 1
- adds r4, r0
- ldrh r1, [r4]
- movs r0, 0xD
- muls r1, r0
- ldr r0, _0802E18C @ =gMoveNames
- adds r1, r0
- adds r0, r5, 0
- bl StringAppend
- ldr r4, _0802E190 @ =gUnknown_03004210
- adds r1, r5, 0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 18
- movs r2, 0xC0
- lsls r2, 18
- adds r0, r2
- lsrs r2, r0, 16
- movs r0, 0x1
- ands r0, r6
- movs r3, 0x1
- cmp r0, 0
- beq _0802E176
- movs r3, 0xB
-_0802E176:
- cmp r6, 0x1
- bgt _0802E194
- movs r0, 0x37
- b _0802E196
- .align 2, 0
-_0802E180: .4byte gUnknown_02024A60
-_0802E184: .4byte gUnknown_02023A64
-_0802E188: .4byte gUnknown_020238CC
-_0802E18C: .4byte gMoveNames
-_0802E190: .4byte gUnknown_03004210
-_0802E194:
- movs r0, 0x39
-_0802E196:
- str r0, [sp]
- adds r0, r4, 0
- bl InitWindow
- ldr r0, _0802E1AC @ =gUnknown_03004210
- bl sub_8002F44
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E1AC: .4byte gUnknown_03004210
- thumb_func_end sub_802E12C
-
- thumb_func_start sub_802E1B0
-sub_802E1B0: @ 802E1B0
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r0, _0802E208 @ =gUnknown_02024A60
- ldrb r4, [r0]
- lsls r4, 9
- ldr r0, _0802E20C @ =gUnknown_02023A64
- adds r4, r0
- ldr r5, _0802E210 @ =gUnknown_03004348
- movs r0, 0
- strb r0, [r5]
- ldr r0, _0802E214 @ =gUnknown_03004210
- ldr r1, _0802E218 @ =0x00001016
- movs r2, 0x14
- str r2, [sp]
- movs r2, 0x3A
- str r2, [sp, 0x4]
- movs r2, 0x1
- movs r3, 0x37
- bl FillWindowRect
- movs r6, 0
-_0802E1DA:
- lsls r0, r6, 24
- lsrs r0, 24
- bl nullsub_7
- adds r0, r6, 0
- ldr r1, _0802E21C @ =gUnknown_08400D49
- bl sub_802E12C
- ldrh r0, [r4]
- cmp r0, 0
- beq _0802E1F6
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
-_0802E1F6:
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802E1DA
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E208: .4byte gUnknown_02024A60
-_0802E20C: .4byte gUnknown_02023A64
-_0802E210: .4byte gUnknown_03004348
-_0802E214: .4byte gUnknown_03004210
-_0802E218: .4byte 0x00001016
-_0802E21C: .4byte gUnknown_08400D49
- thumb_func_end sub_802E1B0
-
- thumb_func_start sub_802E220
-sub_802E220: @ 802E220
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r4, _0802E2B8 @ =gUnknown_02023A60
- ldr r6, _0802E2BC @ =gUnknown_02024A60
- ldrb r0, [r6]
- lsls r1, r0, 9
- adds r0, r4, 0x2
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0802E2B0
- adds r4, 0x4
- adds r4, r1, r4
- ldr r2, _0802E2C0 @ =gUnknown_020238CC
- ldr r1, _0802E2C4 @ =gUnknown_08400D49
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- movs r1, 0xFC
- strb r1, [r2]
- movs r0, 0x11
- strb r0, [r2, 0x1]
- movs r0, 0x2
- strb r0, [r2, 0x2]
- adds r2, 0x3
- strb r1, [r2]
- movs r0, 0x14
- strb r0, [r2, 0x1]
- movs r0, 0x6
- strb r0, [r2, 0x2]
- adds r2, 0x3
- ldr r5, _0802E2C8 @ =gUnknown_02024E64
- ldrb r1, [r6]
- adds r1, r5
- adds r0, r4, 0
- adds r0, 0x8
- ldrb r1, [r1]
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r2, r0, 0
- movs r0, 0xBA
- strb r0, [r2]
- adds r2, 0x1
- ldrb r0, [r6]
- adds r0, r5
- adds r4, 0xC
- ldrb r0, [r0]
- adds r4, r0
- ldrb r1, [r4]
- adds r0, r2, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r4, _0802E2CC @ =gUnknown_03004210
- ldr r1, _0802E2C0 @ =gUnknown_020238CC
- ldr r2, _0802E2D0 @ =0x000002a2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x19
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
-_0802E2B0:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E2B8: .4byte gUnknown_02023A60
-_0802E2BC: .4byte gUnknown_02024A60
-_0802E2C0: .4byte gUnknown_020238CC
-_0802E2C4: .4byte gUnknown_08400D49
-_0802E2C8: .4byte gUnknown_02024E64
-_0802E2CC: .4byte gUnknown_03004210
-_0802E2D0: .4byte 0x000002a2
- thumb_func_end sub_802E220
-
- thumb_func_start sub_802E2D4
-sub_802E2D4: @ 802E2D4
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, _0802E314 @ =gUnknown_02023A60
- ldr r5, _0802E318 @ =gUnknown_02024A60
- ldrb r0, [r5]
- lsls r1, r0, 9
- adds r0, r4, 0x2
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0802E328
- ldr r4, _0802E31C @ =gUnknown_03004210
- ldr r1, _0802E320 @ =0x00001016
- movs r0, 0x1C
- str r0, [sp]
- movs r0, 0x3A
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x17
- movs r3, 0x37
- bl FillWindowRect
- ldr r1, _0802E324 @ =gUnknown_08400D52
- movs r2, 0xA4
- lsls r2, 2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x13
- bl InitWindow
- b _0802E388
- .align 2, 0
-_0802E314: .4byte gUnknown_02023A60
-_0802E318: .4byte gUnknown_02024A60
-_0802E31C: .4byte gUnknown_03004210
-_0802E320: .4byte 0x00001016
-_0802E324: .4byte gUnknown_08400D52
-_0802E328:
- adds r4, 0x4
- adds r4, r1, r4
- ldr r3, _0802E398 @ =gUnknown_020238CC
- ldr r1, _0802E39C @ =gUnknown_08400D49
- adds r0, r3, 0
- bl StringCopy
- adds r3, r0, 0
- ldr r2, _0802E3A0 @ =gBattleMoves
- ldr r1, _0802E3A4 @ =gUnknown_02024E64
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r0
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- lsls r1, r0, 3
- subs r1, r0
- ldr r0, _0802E3A8 @ =gTypeNames
- adds r1, r0
- adds r0, r3, 0
- bl StringCopy
- ldr r4, _0802E3AC @ =gUnknown_03004210
- ldr r1, _0802E3B0 @ =0x00001016
- movs r0, 0x1C
- str r0, [sp]
- movs r0, 0x3A
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x17
- movs r3, 0x39
- bl FillWindowRect
- ldr r1, _0802E398 @ =gUnknown_020238CC
- movs r2, 0xB0
- lsls r2, 2
- movs r0, 0x39
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x17
- bl InitWindow
-_0802E388:
- ldr r0, _0802E3AC @ =gUnknown_03004210
- bl sub_8002F44
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E398: .4byte gUnknown_020238CC
-_0802E39C: .4byte gUnknown_08400D49
-_0802E3A0: .4byte gBattleMoves
-_0802E3A4: .4byte gUnknown_02024E64
-_0802E3A8: .4byte gTypeNames
-_0802E3AC: .4byte gUnknown_03004210
-_0802E3B0: .4byte 0x00001016
- thumb_func_end sub_802E2D4
-
- thumb_func_start sub_802E3B4
-sub_802E3B4: @ 802E3B4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x48
- bl sub_814A958
- ldr r1, _0802E3DC @ =gUnknown_081FAE89
- lsls r4, 1
- adds r0, r4, r1
- ldrb r0, [r0]
- adds r1, 0x1
- adds r4, r1
- ldrb r1, [r4]
- bl sub_814A880
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E3DC: .4byte gUnknown_081FAE89
- thumb_func_end sub_802E3B4
-
- thumb_func_start nullsub_7
-nullsub_7: @ 802E3E0
- bx lr
- thumb_func_end nullsub_7
-
- thumb_func_start sub_802E3E4
-sub_802E3E4: @ 802E3E4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2A
- bl sub_814A958
- ldr r1, _0802E40C @ =gUnknown_081FAE91
- lsls r4, 1
- adds r0, r4, r1
- ldrb r0, [r0]
- adds r1, 0x1
- adds r4, r1
- ldrb r1, [r4]
- bl sub_814A880
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E40C: .4byte gUnknown_081FAE91
- thumb_func_end sub_802E3E4
-
- thumb_func_start nullsub_8
-nullsub_8: @ 802E410
- bx lr
- thumb_func_end nullsub_8
-
- thumb_func_start sub_802E414
-sub_802E414: @ 802E414
- push {lr}
- ldr r0, _0802E420 @ =sub_807AD58
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0802E420: .4byte sub_807AD58
- thumb_func_end sub_802E414
-
- thumb_func_start sub_802E424
-sub_802E424: @ 802E424
- push {lr}
- ldr r0, _0802E430 @ =sub_807AD58
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0802E430: .4byte sub_807AD58
- thumb_func_end sub_802E424
-
- thumb_func_start sub_802E434
-sub_802E434: @ 802E434
- push {lr}
- ldr r0, _0802E458 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802E45C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0802E452
- bl dp01_tbl1_exec_completed
-_0802E452:
- pop {r0}
- bx r0
- .align 2, 0
-_0802E458: .4byte gUnknown_02024A60
-_0802E45C: .4byte 0x02017810
- thumb_func_end sub_802E434
-
- thumb_func_start sub_802E460
-sub_802E460: @ 802E460
- push {lr}
- ldr r0, _0802E484 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802E488 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0802E47E
- bl dp01_tbl1_exec_completed
-_0802E47E:
- pop {r0}
- bx r0
- .align 2, 0
-_0802E484: .4byte gUnknown_02024A60
-_0802E488: .4byte 0x02017810
- thumb_func_end sub_802E460
-
- thumb_func_start b_link_standby_message
-b_link_standby_message: @ 802E48C
- push {lr}
- sub sp, 0x4
- ldr r0, _0802E4BC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802E4B6
- ldr r0, _0802E4C0 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0802E4C4 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r0, _0802E4C8 @ =gUnknown_03004210
- ldr r1, _0802E4CC @ =gUnknown_08400CE0
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
-_0802E4B6:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0802E4BC: .4byte gUnknown_020239F8
-_0802E4C0: .4byte gUnknown_030042A4
-_0802E4C4: .4byte gUnknown_030042A0
-_0802E4C8: .4byte gUnknown_03004210
-_0802E4CC: .4byte gUnknown_08400CE0
- thumb_func_end b_link_standby_message
-
- thumb_func_start dp01t_00_1_getattr
-dp01t_00_1_getattr: @ 802E4D0
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, _0802E4FC @ =gUnknown_02023A60
- ldr r0, _0802E500 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _0802E508
- ldr r0, _0802E504 @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl dp01_getattr_by_ch1_for_player_pokemon_
- adds r6, r0, 0
- b _0802E52A
- .align 2, 0
-_0802E4FC: .4byte gUnknown_02023A60
-_0802E500: .4byte gUnknown_02024A60
-_0802E504: .4byte gUnknown_02024A6A
-_0802E508:
- ldrb r4, [r1]
- movs r5, 0
-_0802E50C:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0802E522
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl dp01_getattr_by_ch1_for_player_pokemon_
- adds r6, r0
-_0802E522:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _0802E50C
-_0802E52A:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl dp01_tbl1_exec_completed
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end dp01t_00_1_getattr
-
- thumb_func_start dp01_getattr_by_ch1_for_player_pokemon_
-dp01_getattr_by_ch1_for_player_pokemon_: @ 802E544
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x90
- adds r7, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _0802E578 @ =gUnknown_02023A60
- ldr r3, _0802E57C @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _0802E56E
- bl _0802ECDA
-_0802E56E:
- lsls r0, 2
- ldr r1, _0802E580 @ =_0802E584
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802E578: .4byte gUnknown_02023A60
-_0802E57C: .4byte gUnknown_02024A60
-_0802E580: .4byte _0802E584
- .align 2, 0
-_0802E584:
- .4byte _0802E674
- .4byte _0802E898
- .4byte _0802E8A8
- .4byte _0802E8B8
- .4byte _0802E920
- .4byte _0802E920
- .4byte _0802E920
- .4byte _0802E920
- .4byte _0802E93C
- .4byte _0802E978
- .4byte _0802E978
- .4byte _0802E978
- .4byte _0802E978
- .4byte _0802ECDA
- .4byte _0802ECDA
- .4byte _0802ECDA
- .4byte _0802ECDA
- .4byte _0802E994
- .4byte _0802E9A4
- .4byte _0802E9D4
- .4byte _0802E9E4
- .4byte _0802E9F4
- .4byte _0802EA04
- .4byte _0802EA14
- .4byte _0802EA24
- .4byte _0802EA34
- .4byte _0802EA44
- .4byte _0802EA54
- .4byte _0802EA64
- .4byte _0802EA74
- .4byte _0802EA84
- .4byte _0802EA94
- .4byte _0802EAE4
- .4byte _0802EAF4
- .4byte _0802EB04
- .4byte _0802EB14
- .4byte _0802EB24
- .4byte _0802EB34
- .4byte _0802EB44
- .4byte _0802EB54
- .4byte _0802EB64
- .4byte _0802EB98
- .4byte _0802EBA8
- .4byte _0802EBB8
- .4byte _0802EBC8
- .4byte _0802EBD8
- .4byte _0802EBE8
- .4byte _0802EBF8
- .4byte _0802EC08
- .4byte _0802EC28
- .4byte _0802EC38
- .4byte _0802EC48
- .4byte _0802EC58
- .4byte _0802EC68
- .4byte _0802EC78
- .4byte _0802EC88
- .4byte _0802EC98
- .4byte _0802ECA8
- .4byte _0802ECB8
- .4byte _0802ECC8
-_0802E674:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0802E888 @ =gPlayerParty
- adds 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 r9, r0
- movs r1, 0x3B
- add r1, sp
- mov r10, 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, 0x5
- str r2, [sp, 0x84]
- adds r0, 0x12
- str r0, [sp, 0x88]
- mov r8, r4
- add r4, sp, 0xC
-_0802E6C0:
- 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, r9
- adds r1, r2, r6
- strb r0, [r1]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802E6C0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0802E888 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- mov r1, r10
- 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
- negs r1, r1
- 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, 5
- ldrh r2, [r3, 0x14]
- ldr r1, _0802E88C @ =0xfffffc1f
- 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, 2
- ldrb r2, [r3, 0x15]
- movs r1, 0x7D
- negs r1, r1
- 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, 15
- ldr r0, [sp, 0x14]
- ldr r2, _0802E890 @ =0xfff07fff
- 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, 4
- ldrh r2, [r3, 0x16]
- ldr r1, _0802E894 @ =0xfffffe0f
- 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, 1
- ldrb r2, [r3, 0x17]
- movs r1, 0x3F
- negs r1, r1
- 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, 0x2]
- adds r0, r4, 0
- movs r1, 0x3C
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- movs r1, 0x3D
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x6]
- adds r0, r4, 0
- movs r1, 0x3E
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x8]
- 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, 0x1
- ands r0, r1
- lsls r0, 6
- ldrb r2, [r3, 0x17]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- mov r3, sp
- lsls 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, 0x1
- bl GetMonData
- str r0, [sp, 0x54]
- adds r0, r4, 0
- movs r1, 0x2
- ldr r2, [sp, 0x8C]
- bl GetMonData
- ldr r0, [sp, 0x84]
- ldr r1, [sp, 0x8C]
- bl StringCopy10
- adds r0, r4, 0
- movs r1, 0x7
- ldr r2, [sp, 0x88]
- bl GetMonData
- mov r2, sp
- movs r6, 0
-_0802E878:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _0802E878
- b _0802ECDA
- .align 2, 0
-_0802E888: .4byte gPlayerParty
-_0802E88C: .4byte 0xfffffc1f
-_0802E890: .4byte 0xfff07fff
-_0802E894: .4byte 0xfffffe0f
-_0802E898:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E8A4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- b _0802EC12
- .align 2, 0
-_0802E8A4: .4byte gPlayerParty
-_0802E8A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E8B4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- b _0802EC12
- .align 2, 0
-_0802E8B4: .4byte gPlayerParty
-_0802E8B8:
- movs r6, 0
- add r2, sp, 0x58
- mov r9, r2
- add r0, sp, 0x60
- mov r10, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0802E91C @ =gPlayerParty
- adds r4, r1, r0
- mov r8, r9
-_0802E8CE:
- 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, r10
- adds r1, r2, r6
- strb r0, [r1]
- movs r0, 0x2
- add r8, r0
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802E8CE
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E91C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_0802E90C:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _0802E90C
- b _0802ECDA
- .align 2, 0
-_0802E91C: .4byte gPlayerParty
-_0802E920:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E938 @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _0802EC12
- .align 2, 0
-_0802E938: .4byte gPlayerParty
-_0802E93C:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, _0802E974 @ =gPlayerParty
- mov r8, r2
-_0802E948:
- 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, 0x1
- cmp r6, 0x3
- ble _0802E948
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E974 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _0802ECDA
- .align 2, 0
-_0802E974: .4byte gPlayerParty
-_0802E978:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E990 @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _0802ECD2
- .align 2, 0
-_0802E990: .4byte gPlayerParty
-_0802E994:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E9A0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1
- b _0802E9AE
- .align 2, 0
-_0802E9A0: .4byte gPlayerParty
-_0802E9A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E9D0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x19
-_0802E9AE:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- movs r6, 0x3
- b _0802ECDA
- .align 2, 0
-_0802E9D0: .4byte gPlayerParty
-_0802E9D4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E9E0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1A
- b _0802ECD2
- .align 2, 0
-_0802E9E0: .4byte gPlayerParty
-_0802E9E4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E9F0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1B
- b _0802ECD2
- .align 2, 0
-_0802E9F0: .4byte gPlayerParty
-_0802E9F4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA00 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1C
- b _0802ECD2
- .align 2, 0
-_0802EA00: .4byte gPlayerParty
-_0802EA04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA10 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1D
- b _0802ECD2
- .align 2, 0
-_0802EA10: .4byte gPlayerParty
-_0802EA14:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA20 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1E
- b _0802ECD2
- .align 2, 0
-_0802EA20: .4byte gPlayerParty
-_0802EA24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA30 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1F
- b _0802ECD2
- .align 2, 0
-_0802EA30: .4byte gPlayerParty
-_0802EA34:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA40 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x20
- b _0802ECD2
- .align 2, 0
-_0802EA40: .4byte gPlayerParty
-_0802EA44:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA50 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x22
- b _0802ECD2
- .align 2, 0
-_0802EA50: .4byte gPlayerParty
-_0802EA54:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA60 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x23
- b _0802ECD2
- .align 2, 0
-_0802EA60: .4byte gPlayerParty
-_0802EA64:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA70 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x24
- b _0802ECD2
- .align 2, 0
-_0802EA70: .4byte gPlayerParty
-_0802EA74:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA80 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x25
- b _0802ECD2
- .align 2, 0
-_0802EA80: .4byte gPlayerParty
-_0802EA84:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA90 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x26
- b _0802ECD2
- .align 2, 0
-_0802EA90: .4byte gPlayerParty
-_0802EA94:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0802EAE0 @ =gPlayerParty
- adds 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, 0x1]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- strb r0, [r7, 0x2]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- strb r0, [r7, 0x3]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- strb r0, [r7, 0x4]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- strb r0, [r7, 0x5]
- movs r6, 0x6
- b _0802ECDA
- .align 2, 0
-_0802EAE0: .4byte gPlayerParty
-_0802EAE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EAF0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x27
- b _0802ECD2
- .align 2, 0
-_0802EAF0: .4byte gPlayerParty
-_0802EAF4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB00 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x28
- b _0802ECD2
- .align 2, 0
-_0802EB00: .4byte gPlayerParty
-_0802EB04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB10 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x29
- b _0802ECD2
- .align 2, 0
-_0802EB10: .4byte gPlayerParty
-_0802EB14:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB20 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2A
- b _0802ECD2
- .align 2, 0
-_0802EB20: .4byte gPlayerParty
-_0802EB24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB30 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2B
- b _0802ECD2
- .align 2, 0
-_0802EB30: .4byte gPlayerParty
-_0802EB34:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB40 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2C
- b _0802ECD2
- .align 2, 0
-_0802EB40: .4byte gPlayerParty
-_0802EB44:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB50 @ =gPlayerParty
- adds r0, r1
- movs r1, 0
- b _0802EB6E
- .align 2, 0
-_0802EB50: .4byte gPlayerParty
-_0802EB54:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB60 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x9
- b _0802EC12
- .align 2, 0
-_0802EB60: .4byte gPlayerParty
-_0802EB64:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB94 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x37
-_0802EB6E:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- lsrs r0, r1, 24
- strb r0, [r7, 0x3]
- movs r6, 0x4
- b _0802ECDA
- .align 2, 0
-_0802EB94: .4byte gPlayerParty
-_0802EB98:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EBA4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- b _0802ECD2
- .align 2, 0
-_0802EBA4: .4byte gPlayerParty
-_0802EBA8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EBB4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x39
- b _0802EC12
- .align 2, 0
-_0802EBB4: .4byte gPlayerParty
-_0802EBB8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EBC4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3A
- b _0802EC12
- .align 2, 0
-_0802EBC4: .4byte gPlayerParty
-_0802EBC8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EBD4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3B
- b _0802EC12
- .align 2, 0
-_0802EBD4: .4byte gPlayerParty
-_0802EBD8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EBE4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3C
- b _0802EC12
- .align 2, 0
-_0802EBE4: .4byte gPlayerParty
-_0802EBE8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EBF4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3D
- b _0802EC12
- .align 2, 0
-_0802EBF4: .4byte gPlayerParty
-_0802EBF8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC04 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3E
- b _0802EC12
- .align 2, 0
-_0802EC04: .4byte gPlayerParty
-_0802EC08:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC24 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3F
-_0802EC12:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _0802ECDA
- .align 2, 0
-_0802EC24: .4byte gPlayerParty
-_0802EC28:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC34 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x16
- b _0802ECD2
- .align 2, 0
-_0802EC34: .4byte gPlayerParty
-_0802EC38:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC44 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x17
- b _0802ECD2
- .align 2, 0
-_0802EC44: .4byte gPlayerParty
-_0802EC48:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC54 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x18
- b _0802ECD2
- .align 2, 0
-_0802EC54: .4byte gPlayerParty
-_0802EC58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC64 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x21
- b _0802ECD2
- .align 2, 0
-_0802EC64: .4byte gPlayerParty
-_0802EC68:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC74 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2F
- b _0802ECD2
- .align 2, 0
-_0802EC74: .4byte gPlayerParty
-_0802EC78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC84 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x30
- b _0802ECD2
- .align 2, 0
-_0802EC84: .4byte gPlayerParty
-_0802EC88:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC94 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x32
- b _0802ECD2
- .align 2, 0
-_0802EC94: .4byte gPlayerParty
-_0802EC98:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802ECA4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x33
- b _0802ECD2
- .align 2, 0
-_0802ECA4: .4byte gPlayerParty
-_0802ECA8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802ECB4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x34
- b _0802ECD2
- .align 2, 0
-_0802ECB4: .4byte gPlayerParty
-_0802ECB8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802ECC4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x35
- b _0802ECD2
- .align 2, 0
-_0802ECC4: .4byte gPlayerParty
-_0802ECC8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802ECEC @ =gPlayerParty
- adds r0, r1
- movs r1, 0x36
-_0802ECD2:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_0802ECDA:
- adds r0, r6, 0
- add sp, 0x90
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0802ECEC: .4byte gPlayerParty
- thumb_func_end dp01_getattr_by_ch1_for_player_pokemon_
-
- thumb_func_start sub_802ECF0
-sub_802ECF0: @ 802ECF0
- push {r4-r7,lr}
- sub sp, 0x58
- ldr r2, _0802ED68 @ =gUnknown_02024A6A
- ldr r5, _0802ED6C @ =gUnknown_02024A60
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- adds r4, r2, 0
- muls r4, r0
- ldr r3, _0802ED70 @ =gUnknown_02023A60
- lsls r1, 9
- adds r0, r3, 0x1
- adds r0, r1, r0
- ldrb r2, [r0]
- ldr r0, _0802ED74 @ =gPlayerParty
- adds r0, r2, r0
- adds r6, r4, r0
- mov r0, sp
- adds r4, r0, r2
- movs r2, 0
- adds r0, r3, 0x2
- adds r1, r0
- adds r7, r5, 0
- mov r12, r3
- ldrb r1, [r1]
- cmp r2, r1
- bcs _0802ED46
- adds r3, r0, 0
-_0802ED2C:
- adds r1, r4, r2
- adds r0, r6, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r5]
- lsls r0, 9
- adds r0, r3
- ldrb r0, [r0]
- cmp r2, r0
- bcc _0802ED2C
-_0802ED46:
- ldrb r0, [r7]
- lsls r0, 9
- mov r1, r12
- adds r1, 0x2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- adds r2, r4, 0
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl dp01_tbl1_exec_completed
- add sp, 0x58
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802ED68: .4byte gUnknown_02024A6A
-_0802ED6C: .4byte gUnknown_02024A60
-_0802ED70: .4byte gUnknown_02023A60
-_0802ED74: .4byte gPlayerParty
- thumb_func_end sub_802ECF0
-
- thumb_func_start dp01t_02_1_setattr
-dp01t_02_1_setattr: @ 802ED78
- push {r4,r5,lr}
- ldr r1, _0802ED9C @ =gUnknown_02023A60
- ldr r0, _0802EDA0 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _0802EDA8
- ldr r0, _0802EDA4 @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl dp01_setattr_by_ch1_for_player_pokemon
- b _0802EDC6
- .align 2, 0
-_0802ED9C: .4byte gUnknown_02023A60
-_0802EDA0: .4byte gUnknown_02024A60
-_0802EDA4: .4byte gUnknown_02024A6A
-_0802EDA8:
- ldrb r4, [r1]
- movs r5, 0
-_0802EDAC:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0802EDBA
- adds r0, r5, 0
- bl dp01_setattr_by_ch1_for_player_pokemon
-_0802EDBA:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0802EDAC
-_0802EDC6:
- bl dp01_tbl1_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end dp01t_02_1_setattr
-
- thumb_func_start dp01_setattr_by_ch1_for_player_pokemon
-dp01_setattr_by_ch1_for_player_pokemon: @ 802EDD0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0802EE08 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- ldr r2, _0802EE0C @ =gUnknown_02023A63
- adds r3, r0, r2
- adds r6, r3, 0
- subs r1, r2, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r7, r2, 0
- cmp r0, 0x3B
- bls _0802EDFC
- bl _0802F796
-_0802EDFC:
- lsls r0, 2
- ldr r1, _0802EE10 @ =_0802EE14
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802EE08: .4byte gUnknown_02024A60
-_0802EE0C: .4byte gUnknown_02023A63
-_0802EE10: .4byte _0802EE14
- .align 2, 0
-_0802EE14:
- .4byte _0802EF04
- .4byte _0802F09C
- .4byte _0802F0BC
- .4byte _0802F0DC
- .4byte _0802F134
- .4byte _0802F134
- .4byte _0802F134
- .4byte _0802F134
- .4byte _0802F15C
- .4byte _0802F1C0
- .4byte _0802F1C0
- .4byte _0802F1C0
- .4byte _0802F1C0
- .4byte _0802F796
- .4byte _0802F796
- .4byte _0802F796
- .4byte _0802F796
- .4byte _0802F1F0
- .4byte _0802F210
- .4byte _0802F230
- .4byte _0802F250
- .4byte _0802F270
- .4byte _0802F290
- .4byte _0802F2B0
- .4byte _0802F2D0
- .4byte _0802F2F0
- .4byte _0802F310
- .4byte _0802F330
- .4byte _0802F350
- .4byte _0802F370
- .4byte _0802F390
- .4byte _0802F3B0
- .4byte _0802F420
- .4byte _0802F440
- .4byte _0802F460
- .4byte _0802F480
- .4byte _0802F4A0
- .4byte _0802F4C0
- .4byte _0802F4E0
- .4byte _0802F500
- .4byte _0802F520
- .4byte _0802F540
- .4byte _0802F560
- .4byte _0802F580
- .4byte _0802F5A0
- .4byte _0802F5C0
- .4byte _0802F5E0
- .4byte _0802F600
- .4byte _0802F620
- .4byte _0802F640
- .4byte _0802F660
- .4byte _0802F680
- .4byte _0802F6A0
- .4byte _0802F6C0
- .4byte _0802F6E0
- .4byte _0802F700
- .4byte _0802F720
- .4byte _0802F740
- .4byte _0802F760
- .4byte _0802F780
-_0802EF04:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0802F098 @ =gPlayerParty
- adds 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, r6
- mov r10, r0
- adds r0, r6, 0
- adds r0, 0x2B
- str r0, [sp, 0x20]
- adds r0, 0x19
- str r0, [sp, 0x28]
- adds r0, 0x4
- str r0, [sp, 0x2C]
- adds r0, 0x4
- str r0, [sp, 0x30]
- subs r0, 0x22
- str r0, [sp, 0x1C]
- subs r0, 0x2
- str r0, [sp, 0x18]
- adds r0, 0x4
- str r0, [sp, 0x24]
- adds r0, r6, 0x2
- str r0, [sp, 0x4]
- adds r0, r6, 0x4
- str r0, [sp, 0x8]
- adds r0, r6, 0x6
- str r0, [sp, 0xC]
- adds r0, 0x2
- str r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x14]
- mov r9, r4
- adds r7, r6, 0
- adds r7, 0x24
- adds r4, r6, 0
- adds r4, 0xC
-_0802EF6A:
- mov r1, r8
- adds r1, 0xD
- mov r0, r9
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- mov r0, r9
- adds r2, r7, 0
- bl SetMonData
- adds r7, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _0802EF6A
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0802F098 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- mov r2, r10
- 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, 27
- lsrs r0, 27
- 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, 22
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x28
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r6, 0x15]
- lsls r0, 25
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x29
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldr r0, [r6, 0x14]
- lsls r0, 12
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2A
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r6, 0x16]
- lsls r0, 23
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2B
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r6, 0x17]
- lsls r0, 26
- lsrs r0, 27
- 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, 0x4]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3C
- ldr r2, [sp, 0x8]
- 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 _0802F796
- .align 2, 0
-_0802F098: .4byte gPlayerParty
-_0802F09C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F0B4 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F0B8 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xB
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F0B4: .4byte gPlayerParty
-_0802F0B8: .4byte gUnknown_02024A60
-_0802F0BC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F0D4 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F0D8 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xC
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F0D4: .4byte gPlayerParty
-_0802F0D8: .4byte gUnknown_02024A60
-_0802F0DC:
- movs r0, 0
- mov r8, r0
- movs r0, 0xC
- adds r0, r3
- mov r9, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0802F130 @ =gPlayerParty
- adds r7, r1, r0
- adds r6, r3, 0
- adds r6, 0x8
- adds r4, r3, 0
-_0802F0F6:
- 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, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _0802F0F6
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F130 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F130: .4byte gPlayerParty
-_0802F134:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F150 @ =gPlayerParty
- adds r0, r1
- ldr r3, _0802F154 @ =gUnknown_02023A60
- ldr r1, _0802F158 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _0802F1D8
- .align 2, 0
-_0802F150: .4byte gPlayerParty
-_0802F154: .4byte gUnknown_02023A60
-_0802F158: .4byte gUnknown_02024A60
-_0802F15C:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0802F1B8 @ =gPlayerParty
- adds r4, r0
- ldr r5, _0802F1BC @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r2, 9
- adds r2, r7
- adds r0, r4, 0
- movs r1, 0x11
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x12
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x13
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x14
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F1B8: .4byte gPlayerParty
-_0802F1BC: .4byte gUnknown_02024A60
-_0802F1C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F1E4 @ =gPlayerParty
- adds r0, r1
- ldr r3, _0802F1E8 @ =gUnknown_02023A60
- ldr r1, _0802F1EC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_0802F1D8:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F1E4: .4byte gPlayerParty
-_0802F1E8: .4byte gUnknown_02023A60
-_0802F1EC: .4byte gUnknown_02024A60
-_0802F1F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F208 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F20C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F208: .4byte gPlayerParty
-_0802F20C: .4byte gUnknown_02024A60
-_0802F210:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F228 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F22C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x19
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F228: .4byte gPlayerParty
-_0802F22C: .4byte gUnknown_02024A60
-_0802F230:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F248 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F24C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1A
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F248: .4byte gPlayerParty
-_0802F24C: .4byte gUnknown_02024A60
-_0802F250:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F268 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F26C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1B
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F268: .4byte gPlayerParty
-_0802F26C: .4byte gUnknown_02024A60
-_0802F270:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F288 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F28C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1C
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F288: .4byte gPlayerParty
-_0802F28C: .4byte gUnknown_02024A60
-_0802F290:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F2A8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F2AC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1D
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F2A8: .4byte gPlayerParty
-_0802F2AC: .4byte gUnknown_02024A60
-_0802F2B0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F2C8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F2CC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1E
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F2C8: .4byte gPlayerParty
-_0802F2CC: .4byte gUnknown_02024A60
-_0802F2D0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F2E8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F2EC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1F
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F2E8: .4byte gPlayerParty
-_0802F2EC: .4byte gUnknown_02024A60
-_0802F2F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F308 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F30C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x20
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F308: .4byte gPlayerParty
-_0802F30C: .4byte gUnknown_02024A60
-_0802F310:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F328 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F32C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x22
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F328: .4byte gPlayerParty
-_0802F32C: .4byte gUnknown_02024A60
-_0802F330:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F348 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F34C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x23
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F348: .4byte gPlayerParty
-_0802F34C: .4byte gUnknown_02024A60
-_0802F350:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F368 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F36C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x24
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F368: .4byte gPlayerParty
-_0802F36C: .4byte gUnknown_02024A60
-_0802F370:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F388 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F38C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x25
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F388: .4byte gPlayerParty
-_0802F38C: .4byte gUnknown_02024A60
-_0802F390:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F3A8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F3AC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x26
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F3A8: .4byte gPlayerParty
-_0802F3AC: .4byte gUnknown_02024A60
-_0802F3B0:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0802F418 @ =gPlayerParty
- adds r4, r0
- ldr r5, _0802F41C @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r2, 9
- adds r2, r7
- adds r0, r4, 0
- movs r1, 0x27
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x28
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x29
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2A
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2B
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x5
- adds r2, r0
- adds r0, r4, 0
- b _0802F4D0
- .align 2, 0
-_0802F418: .4byte gPlayerParty
-_0802F41C: .4byte gUnknown_02024A60
-_0802F420:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F438 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F43C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x27
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F438: .4byte gPlayerParty
-_0802F43C: .4byte gUnknown_02024A60
-_0802F440:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F458 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F45C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x28
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F458: .4byte gPlayerParty
-_0802F45C: .4byte gUnknown_02024A60
-_0802F460:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F478 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F47C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x29
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F478: .4byte gPlayerParty
-_0802F47C: .4byte gUnknown_02024A60
-_0802F480:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F498 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F49C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2A
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F498: .4byte gPlayerParty
-_0802F49C: .4byte gUnknown_02024A60
-_0802F4A0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F4B8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F4BC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2B
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F4B8: .4byte gPlayerParty
-_0802F4BC: .4byte gUnknown_02024A60
-_0802F4C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F4D8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F4DC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
-_0802F4D0:
- movs r1, 0x2C
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F4D8: .4byte gPlayerParty
-_0802F4DC: .4byte gUnknown_02024A60
-_0802F4E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F4F8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F4FC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F4F8: .4byte gPlayerParty
-_0802F4FC: .4byte gUnknown_02024A60
-_0802F500:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F518 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F51C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x9
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F518: .4byte gPlayerParty
-_0802F51C: .4byte gUnknown_02024A60
-_0802F520:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F538 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F53C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x37
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F538: .4byte gPlayerParty
-_0802F53C: .4byte gUnknown_02024A60
-_0802F540:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F558 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F55C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x38
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F558: .4byte gPlayerParty
-_0802F55C: .4byte gUnknown_02024A60
-_0802F560:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F578 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F57C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x39
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F578: .4byte gPlayerParty
-_0802F57C: .4byte gUnknown_02024A60
-_0802F580:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F598 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F59C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3A
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F598: .4byte gPlayerParty
-_0802F59C: .4byte gUnknown_02024A60
-_0802F5A0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F5B8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F5BC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3B
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F5B8: .4byte gPlayerParty
-_0802F5BC: .4byte gUnknown_02024A60
-_0802F5C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F5D8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F5DC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3C
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F5D8: .4byte gPlayerParty
-_0802F5DC: .4byte gUnknown_02024A60
-_0802F5E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F5F8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F5FC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3D
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F5F8: .4byte gPlayerParty
-_0802F5FC: .4byte gUnknown_02024A60
-_0802F600:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F618 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F61C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3E
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F618: .4byte gPlayerParty
-_0802F61C: .4byte gUnknown_02024A60
-_0802F620:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F638 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F63C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3F
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F638: .4byte gPlayerParty
-_0802F63C: .4byte gUnknown_02024A60
-_0802F640:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F658 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F65C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x16
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F658: .4byte gPlayerParty
-_0802F65C: .4byte gUnknown_02024A60
-_0802F660:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F678 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F67C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x17
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F678: .4byte gPlayerParty
-_0802F67C: .4byte gUnknown_02024A60
-_0802F680:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F698 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F69C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x18
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F698: .4byte gPlayerParty
-_0802F69C: .4byte gUnknown_02024A60
-_0802F6A0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F6B8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F6BC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x21
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F6B8: .4byte gPlayerParty
-_0802F6BC: .4byte gUnknown_02024A60
-_0802F6C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F6D8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F6DC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2F
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F6D8: .4byte gPlayerParty
-_0802F6DC: .4byte gUnknown_02024A60
-_0802F6E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F6F8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F6FC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x30
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F6F8: .4byte gPlayerParty
-_0802F6FC: .4byte gUnknown_02024A60
-_0802F700:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F718 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F71C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x32
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F718: .4byte gPlayerParty
-_0802F71C: .4byte gUnknown_02024A60
-_0802F720:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F738 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F73C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x33
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F738: .4byte gPlayerParty
-_0802F73C: .4byte gUnknown_02024A60
-_0802F740:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F758 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F75C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x34
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F758: .4byte gPlayerParty
-_0802F75C: .4byte gUnknown_02024A60
-_0802F760:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F778 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F77C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x35
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F778: .4byte gPlayerParty
-_0802F77C: .4byte gUnknown_02024A60
-_0802F780:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F7C0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F7C4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x36
- bl SetMonData
-_0802F796:
- ldr r2, _0802F7C8 @ =gUnknown_02024A6A
- ldr r0, _0802F7C4 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0802F7C0 @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802F7C0: .4byte gPlayerParty
-_0802F7C4: .4byte gUnknown_02024A60
-_0802F7C8: .4byte gUnknown_02024A6A
- thumb_func_end dp01_setattr_by_ch1_for_player_pokemon
-
- thumb_func_start sub_802F7CC
-sub_802F7CC: @ 802F7CC
- push {r4-r7,lr}
- ldr r1, _0802F830 @ =gUnknown_02024A6A
- ldr r7, _0802F834 @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- adds r3, r1, 0
- muls r3, r0
- ldr r4, _0802F838 @ =gUnknown_02023A60
- lsls r2, 9
- adds r0, r4, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- ldr r1, _0802F83C @ =gPlayerParty
- adds r0, r1
- adds r5, r3, r0
- movs r3, 0
- adds r0, r4, 0x2
- adds r2, r0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _0802F824
- adds r6, r4, 0
- adds r2, r7, 0
- adds r4, r0, 0
-_0802F802:
- adds r1, r5, r3
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, 0x3
- adds r0, r3, r0
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r3, r0
- bcc _0802F802
-_0802F824:
- bl dp01_tbl1_exec_completed
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802F830: .4byte gUnknown_02024A6A
-_0802F834: .4byte gUnknown_02024A60
-_0802F838: .4byte gUnknown_02023A60
-_0802F83C: .4byte gPlayerParty
- thumb_func_end sub_802F7CC
-
- thumb_func_start sub_802F840
-sub_802F840: @ 802F840
- push {r4,lr}
- ldr r2, _0802F88C @ =gUnknown_02024A6A
- ldr r4, _0802F890 @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0802F894 @ =gPlayerParty
- adds r0, r2
- bl sub_80318FC
- ldr r2, _0802F898 @ =gSprites
- ldr r0, _0802F89C @ =gUnknown_02024BE0
- ldrb r3, [r4]
- adds r0, r3, r0
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldr r1, _0802F8A0 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802F8A4 @ =bx_0802E404
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802F88C: .4byte gUnknown_02024A6A
-_0802F890: .4byte gUnknown_02024A60
-_0802F894: .4byte gPlayerParty
-_0802F898: .4byte gSprites
-_0802F89C: .4byte gUnknown_02024BE0
-_0802F8A0: .4byte gUnknown_03004330
-_0802F8A4: .4byte bx_0802E404
- thumb_func_end sub_802F840
-
- thumb_func_start sub_802F8A8
-sub_802F8A8: @ 802F8A8
- push {r4-r6,lr}
- ldr r5, _0802F914 @ =gUnknown_02024A60
- ldrb r0, [r5]
- ldr r4, _0802F918 @ =gUnknown_02023A60
- lsls r1, r0, 9
- adds r6, r4, 0x2
- adds r1, r6
- ldrb r1, [r1]
- bl sub_8032AA8
- ldr r2, _0802F91C @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r2
- lsls r0, 9
- adds r4, 0x1
- adds r0, r4
- ldrb r0, [r0]
- movs r4, 0
- strh r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0802F920 @ =gPlayerParty
- adds r0, r2
- bl sub_80318FC
- ldr r1, _0802F924 @ =gUnknown_02024E60
- ldrb r0, [r5]
- adds r0, r1
- strb r4, [r0]
- ldr r1, _0802F928 @ =gUnknown_02024E64
- ldrb r0, [r5]
- adds r0, r1
- strb r4, [r0]
- ldrb r0, [r5]
- lsls r1, r0, 9
- adds r1, r6
- ldrb r1, [r1]
- bl sub_802F934
- ldr r1, _0802F92C @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802F930 @ =sub_802D798
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802F914: .4byte gUnknown_02024A60
-_0802F918: .4byte gUnknown_02023A60
-_0802F91C: .4byte gUnknown_02024A6A
-_0802F920: .4byte gPlayerParty
-_0802F924: .4byte gUnknown_02024E60
-_0802F928: .4byte gUnknown_02024E64
-_0802F92C: .4byte gUnknown_03004330
-_0802F930: .4byte sub_802D798
- thumb_func_end sub_802F8A8
-
- thumb_func_start sub_802F934
-sub_802F934: @ 802F934
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8032AA8
- ldr r0, _0802FA78 @ =gUnknown_02024A6A
- lsls r2, r6, 1
- adds r2, r0
- ldr r0, _0802FA7C @ =gUnknown_02023A60
- lsls r1, r6, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r2]
- ldrh r1, [r2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802FA80 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _0802FA84 @ =sub_80312F0
- bl object_new_hidden_with_callback
- ldr r1, _0802FA88 @ =gUnknown_0300434C
- mov r9, r1
- add r9, r6
- mov r1, r9
- strb r0, [r1]
- adds r0, r6, 0
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _0802FA8C @ =gUnknown_02024E8C
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r10
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _0802FA90 @ =gUnknown_02024BE0
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, _0802FA94 @ =gSprites
- mov r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r6, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0802FA98 @ =gUnknown_02024E84
- adds r6, r1
- ldrb r1, [r6]
- bl StartSpriteAnim
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0802FA9C @ =SpriteCallbackDummy
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFF
- bl sub_8046400
- mov r1, r9
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x2E]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FA78: .4byte gUnknown_02024A6A
-_0802FA7C: .4byte gUnknown_02023A60
-_0802FA80: .4byte gPlayerParty
-_0802FA84: .4byte sub_80312F0
-_0802FA88: .4byte gUnknown_0300434C
-_0802FA8C: .4byte gUnknown_02024E8C
-_0802FA90: .4byte gUnknown_02024BE0
-_0802FA94: .4byte gSprites
-_0802FA98: .4byte gUnknown_02024E84
-_0802FA9C: .4byte SpriteCallbackDummy
- thumb_func_end sub_802F934
-
- thumb_func_start sub_802FAA0
-sub_802FAA0: @ 802FAA0
- push {r4-r6,lr}
- ldr r1, _0802FAD0 @ =gUnknown_02023A60
- ldr r6, _0802FAD4 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r3, [r0]
- cmp r3, 0
- bne _0802FAE4
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _0802FAD8 @ =0x02017810
- adds r0, r1
- strb r3, [r0, 0x4]
- ldr r1, _0802FADC @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802FAE0 @ =sub_802FB2C
- str r1, [r0]
- b _0802FB1A
- .align 2, 0
-_0802FAD0: .4byte gUnknown_02023A60
-_0802FAD4: .4byte gUnknown_02024A60
-_0802FAD8: .4byte 0x02017810
-_0802FADC: .4byte gUnknown_03004330
-_0802FAE0: .4byte sub_802FB2C
-_0802FAE4:
- ldr r5, _0802FB20 @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0802FB24 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _0802FB28 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl1_exec_completed
-_0802FB1A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FB20: .4byte gUnknown_02024BE0
-_0802FB24: .4byte gSprites
-_0802FB28: .4byte gUnknown_03004340
- thumb_func_end sub_802FAA0
-
- thumb_func_start sub_802FB2C
-sub_802FB2C: @ 802FB2C
- push {r4,r5,lr}
- ldr r5, _0802FB48 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _0802FB4C @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _0802FB50
- cmp r0, 0x1
- beq _0802FB7C
- b _0802FBA4
- .align 2, 0
-_0802FB48: .4byte gUnknown_02024A60
-_0802FB4C: .4byte 0x02017810
-_0802FB50:
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0802FB6C
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0802FB6C:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _0802FBA4
-_0802FB7C:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0802FBA4
- strb r0, [r3, 0x4]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x1
- bl move_anim_start_t4
- ldr r1, _0802FBAC @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802FBB0 @ =sub_802DEAC
- str r1, [r0]
-_0802FBA4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FBAC: .4byte gUnknown_03004330
-_0802FBB0: .4byte sub_802DEAC
- thumb_func_end sub_802FB2C
-
- thumb_func_start sub_802FBB4
-sub_802FBB4: @ 802FBB4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0802FBDC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802FBE8
- ldr r0, _0802FBE0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_get_per_side_status
- movs r1, 0x2
- ands r1, r0
- ldr r7, _0802FBE4 @ =0x0000fff0
- cmp r1, 0
- beq _0802FBEA
- movs r7, 0x10
- b _0802FBEA
- .align 2, 0
-_0802FBDC: .4byte gUnknown_020239F8
-_0802FBE0: .4byte gUnknown_02024A60
-_0802FBE4: .4byte 0x0000fff0
-_0802FBE8:
- movs r7, 0
-_0802FBEA:
- ldr r4, _0802FCB8 @ =gSaveBlock2
- ldrb r0, [r4, 0x8]
- ldr r6, _0802FCBC @ =gUnknown_02024A60
- ldrb r1, [r6]
- bl sub_8031AF4
- ldrb r5, [r4, 0x8]
- ldrb r0, [r6]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl GetMonSpriteTemplate_803C5A0
- ldr r0, _0802FCC0 @ =gUnknown_02024E8C
- mov r8, r0
- lsls r5, r7, 16
- movs r0, 0xA0
- lsls r0, 15
- adds r5, r0
- asrs r5, 16
- ldr r1, _0802FCC4 @ =gTrainerBackPicCoords
- ldrb r0, [r4, 0x8]
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- movs r4, 0x8
- subs r4, r0
- lsls r4, 18
- movs r0, 0xA0
- lsls r0, 15
- adds r4, r0
- asrs r4, 16
- ldrb r0, [r6]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r5, _0802FCC8 @ =gUnknown_02024BE0
- ldrb r1, [r6]
- adds r1, r5
- strb r0, [r1]
- ldr r4, _0802FCCC @ =gSprites
- ldrb r3, [r6]
- adds r0, r3, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xF0
- strh r1, [r0, 0x24]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0802FCD0 @ =0x0000fffe
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _0802FCD4 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _0802FCD8 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802FCDC @ =sub_802D204
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FCB8: .4byte gSaveBlock2
-_0802FCBC: .4byte gUnknown_02024A60
-_0802FCC0: .4byte gUnknown_02024E8C
-_0802FCC4: .4byte gTrainerBackPicCoords
-_0802FCC8: .4byte gUnknown_02024BE0
-_0802FCCC: .4byte gSprites
-_0802FCD0: .4byte 0x0000fffe
-_0802FCD4: .4byte sub_80313A0
-_0802FCD8: .4byte gUnknown_03004330
-_0802FCDC: .4byte sub_802D204
- thumb_func_end sub_802FBB4
-
- thumb_func_start sub_802FCE0
-sub_802FCE0: @ 802FCE0
- push {r4-r6,lr}
- ldr r4, _0802FD94 @ =gSaveBlock2
- ldrb r0, [r4, 0x8]
- ldr r5, _0802FD98 @ =gUnknown_02024A60
- ldrb r1, [r5]
- bl sub_8031AF4
- ldrb r6, [r4, 0x8]
- ldrb r0, [r5]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl GetMonSpriteTemplate_803C5A0
- ldr r0, _0802FD9C @ =gUnknown_02024E8C
- ldr r2, _0802FDA0 @ =gTrainerBackPicCoords
- ldrb r1, [r4, 0x8]
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r2, r1
- asrs r2, 16
- movs r1, 0x50
- movs r3, 0x1E
- bl CreateSprite
- ldr r6, _0802FDA4 @ =gUnknown_02024BE0
- ldrb r1, [r5]
- adds r1, r6
- strb r0, [r1]
- ldr r4, _0802FDA8 @ =gSprites
- ldrb r3, [r5]
- adds r0, r3, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0802FDAC @ =0x0000ffa0
- strh r1, [r0, 0x24]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _0802FDB0 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _0802FDB4 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802FDB8 @ =sub_802D23C
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FD94: .4byte gSaveBlock2
-_0802FD98: .4byte gUnknown_02024A60
-_0802FD9C: .4byte gUnknown_02024E8C
-_0802FDA0: .4byte gTrainerBackPicCoords
-_0802FDA4: .4byte gUnknown_02024BE0
-_0802FDA8: .4byte gSprites
-_0802FDAC: .4byte 0x0000ffa0
-_0802FDB0: .4byte sub_80313A0
-_0802FDB4: .4byte gUnknown_03004330
-_0802FDB8: .4byte sub_802D23C
- thumb_func_end sub_802FCE0
-
- thumb_func_start sub_802FDBC
-sub_802FDBC: @ 802FDBC
- push {r4-r6,lr}
- ldr r5, _0802FE5C @ =gUnknown_02024BE0
- ldr r6, _0802FE60 @ =gUnknown_02024A60
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0802FE64 @ =gSprites
- adds r0, r4
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x32
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0802FE68 @ =0x0000ffd8
- strh r1, [r0, 0x32]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0802FE6C @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0802FE70 @ =SpriteCallbackDummy
- bl oamt_set_x3A_32
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r1, _0802FE74 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802FE78 @ =sub_802D274
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FE5C: .4byte gUnknown_02024BE0
-_0802FE60: .4byte gUnknown_02024A60
-_0802FE64: .4byte gSprites
-_0802FE68: .4byte 0x0000ffd8
-_0802FE6C: .4byte sub_8078B34
-_0802FE70: .4byte SpriteCallbackDummy
-_0802FE74: .4byte gUnknown_03004330
-_0802FE78: .4byte sub_802D274
- thumb_func_end sub_802FDBC
-
- thumb_func_start sub_802FE7C
-sub_802FE7C: @ 802FE7C
- push {r4,r5,lr}
- ldr r5, _0802FEC0 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _0802FEC4 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- bne _0802FEC8
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0802FEAE
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0802FEAE:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _0802FF3E
- .align 2, 0
-_0802FEC0: .4byte gUnknown_02024A60
-_0802FEC4: .4byte 0x02017810
-_0802FEC8:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0802FF3E
- strb r4, [r3, 0x4]
- ldr r2, _0802FF44 @ =gUnknown_02024A6A
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0802FF48 @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- movs r1, 0x40
- negs r1, r1
- movs r0, 0x10
- bl PlaySE12WithPanning
- ldr r2, _0802FF4C @ =gSprites
- ldr r3, _0802FF50 @ =gUnknown_02024BE0
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x30]
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strh r1, [r0, 0x32]
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802FF54 @ =sub_80105EC
- str r1, [r0]
- ldr r1, _0802FF58 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802FF5C @ =sub_802DE10
- str r1, [r0]
-_0802FF3E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FF44: .4byte gUnknown_02024A6A
-_0802FF48: .4byte gPlayerParty
-_0802FF4C: .4byte gSprites
-_0802FF50: .4byte gUnknown_02024BE0
-_0802FF54: .4byte sub_80105EC
-_0802FF58: .4byte gUnknown_03004330
-_0802FF5C: .4byte sub_802DE10
- thumb_func_end sub_802FE7C
-
- thumb_func_start sub_802FF60
-sub_802FF60: @ 802FF60
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- bl dp01_tbl1_exec_completed
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802FF60
-
- thumb_func_start sub_802FF80
-sub_802FF80: @ 802FF80
- push {r4,r5,lr}
- ldr r1, _0802FFBC @ =0x02017840
- movs r0, 0x4
- strb r0, [r1, 0x8]
- ldr r1, _0802FFC0 @ =gUnknown_02024E6D
- movs r0, 0x1
- strb r0, [r1]
- ldr r5, _0802FFC4 @ =gUnknown_02024A60
- ldrb r4, [r5]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x3
- bl move_anim_start_t4
- ldr r1, _0802FFC8 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802FFCC @ =bx_wait_t1
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FFBC: .4byte 0x02017840
-_0802FFC0: .4byte gUnknown_02024E6D
-_0802FFC4: .4byte gUnknown_02024A60
-_0802FFC8: .4byte gUnknown_03004330
-_0802FFCC: .4byte bx_wait_t1
- thumb_func_end sub_802FF80
-
- thumb_func_start sub_802FFD0
-sub_802FFD0: @ 802FFD0
- push {r4,r5,lr}
- ldr r1, _08030014 @ =gUnknown_02023A60
- ldr r5, _08030018 @ =gUnknown_02024A60
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r1, [r0]
- ldr r0, _0803001C @ =0x02017840
- strb r1, [r0, 0x8]
- ldr r1, _08030020 @ =gUnknown_02024E6D
- movs r0, 0x1
- strb r0, [r1]
- ldrb r4, [r5]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x3
- bl move_anim_start_t4
- ldr r1, _08030024 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030028 @ =bx_wait_t1
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08030014: .4byte gUnknown_02023A60
-_08030018: .4byte gUnknown_02024A60
-_0803001C: .4byte 0x02017840
-_08030020: .4byte gUnknown_02024E6D
-_08030024: .4byte gUnknown_03004330
-_08030028: .4byte bx_wait_t1
- thumb_func_end sub_802FFD0
-
- thumb_func_start sub_803002C
-sub_803002C: @ 803002C
- push {lr}
- ldr r1, _08030054 @ =gUnknown_02023A60
- ldr r0, _08030058 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0803004A
-_08030040:
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08030040
-_0803004A:
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030054: .4byte gUnknown_02023A60
-_08030058: .4byte gUnknown_02024A60
- thumb_func_end sub_803002C
-
- thumb_func_start dp01t_0F_1_move_anim
-dp01t_0F_1_move_anim: @ 803005C
- push {r4-r6,lr}
- ldr r6, _08030140 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- beq _0803006E
- b _0803017E
-_0803006E:
- ldr r0, _08030144 @ =gUnknown_02023A60
- mov r12, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _08030148 @ =gUnknown_0202F7C4
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _0803014C @ =gUnknown_0202F7BC
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x4
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x5
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r4, _08030150 @ =gUnknown_0202F7B8
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x6
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x7
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r3, r1
- mov r1, r12
- adds r1, 0x8
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 16
- orrs r3, r1
- mov r1, r12
- adds r1, 0x9
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 24
- orrs r3, r1
- str r3, [r4]
- ldr r3, _08030154 @ =gUnknown_0202F7BE
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _08030158 @ =gUnknown_0202F7C0
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0xC
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0xD
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r3, _0803015C @ =gUnknown_0202F7B4
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _08030160 @ =gUnknown_02024E70
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r3
- ldr r2, [r2]
- str r2, [r1]
- ldrb r1, [r5]
- bl sub_8031720
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08030164
- bl dp01_tbl1_exec_completed
- b _0803017E
- .align 2, 0
-_08030140: .4byte gUnknown_02024A60
-_08030144: .4byte gUnknown_02023A60
-_08030148: .4byte gUnknown_0202F7C4
-_0803014C: .4byte gUnknown_0202F7BC
-_08030150: .4byte gUnknown_0202F7B8
-_08030154: .4byte gUnknown_0202F7BE
-_08030158: .4byte gUnknown_0202F7C0
-_0803015C: .4byte gUnknown_0202F7B4
-_08030160: .4byte gUnknown_02024E70
-_08030164:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08030184 @ =0x02017810
- adds r0, r1
- strb r2, [r0, 0x4]
- ldr r1, _08030188 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803018C @ =sub_8030190
- str r1, [r0]
-_0803017E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08030184: .4byte 0x02017810
-_08030188: .4byte gUnknown_03004330
-_0803018C: .4byte sub_8030190
- thumb_func_end dp01t_0F_1_move_anim
-
- thumb_func_start sub_8030190
-sub_8030190: @ 8030190
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _080301D4 @ =gUnknown_02023A60
- ldr r5, _080301D8 @ =gUnknown_02024A60
- ldrb r3, [r5]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r9, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r6, r2, 0x2
- mov r8, r6
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- adds r2, 0xB
- adds r1, r2
- ldrb r7, [r1]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r6, _080301DC @ =0x02017810
- adds r0, r6
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _0803021E
- cmp r2, 0x1
- bgt _080301E0
- cmp r2, 0
- beq _080301EA
- b _080302E8
- .align 2, 0
-_080301D4: .4byte gUnknown_02023A60
-_080301D8: .4byte gUnknown_02024A60
-_080301DC: .4byte 0x02017810
-_080301E0:
- cmp r2, 0x2
- beq _08030244
- cmp r2, 0x3
- beq _080302B0
- b _080302E8
-_080301EA:
- lsls r1, r3, 2
- adds r0, r6, 0
- subs r0, 0x10
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0xC
- ands r0, r2
- cmp r0, 0x4
- bne _0803020E
- movs r0, 0x8
- orrs r0, r2
- strb r0, [r1]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0803020E:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _080302E8
-_0803021E:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080302E8
- movs r0, 0
- bl sub_80326EC
- adds r0, r4, 0
- bl move_anim_start_t1
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _080302E8
-_08030244:
- ldr r0, _080302A0 @ =gUnknown_0202F7AC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _080302A4 @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080302E8
- movs r0, 0x1
- bl sub_80326EC
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r4, r6, 0
- subs r4, 0x10
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0803028C
- cmp r7, 0x1
- bhi _0803028C
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0]
- movs r1, 0x9
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_0803028C:
- ldr r0, _080302A8 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080302AC @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x4]
- b _080302E8
- .align 2, 0
-_080302A0: .4byte gUnknown_0202F7AC
-_080302A4: .4byte gUnknown_0202F7B1
-_080302A8: .4byte gUnknown_02024A60
-_080302AC: .4byte 0x02017810
-_080302B0:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080302E8
- bl sub_8031F24
- ldrb r0, [r5]
- lsls r2, r0, 9
- mov r3, r9
- adds r1, r2, r3
- ldrb r1, [r1]
- add r2, r8
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl sub_80324BC
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r4, [r0, 0x4]
- bl dp01_tbl1_exec_completed
-_080302E8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8030190
-
- thumb_func_start sub_80302F4
-sub_80302F4: @ 80302F4
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08030338 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0803033C @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r4, _08030340 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 9
- ldr r1, _08030344 @ =gUnknown_02023A62
- adds r0, r1
- ldrh r0, [r0]
- bl sub_8120AA8
- ldr r0, _08030348 @ =gUnknown_03004210
- ldr r1, _0803034C @ =gUnknown_020238CC
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08030350 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030354 @ =sub_802DF18
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08030338: .4byte gUnknown_030042A4
-_0803033C: .4byte gUnknown_030042A0
-_08030340: .4byte gUnknown_02024A60
-_08030344: .4byte gUnknown_02023A62
-_08030348: .4byte gUnknown_03004210
-_0803034C: .4byte gUnknown_020238CC
-_08030350: .4byte gUnknown_03004330
-_08030354: .4byte sub_802DF18
- thumb_func_end sub_80302F4
-
- thumb_func_start dp01t_11_1_message_for_player_only
-dp01t_11_1_message_for_player_only: @ 8030358
- push {lr}
- ldr r0, _08030370 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08030374
- bl sub_80302F4
- b _08030378
- .align 2, 0
-_08030370: .4byte gUnknown_02024A60
-_08030374:
- bl dp01_tbl1_exec_completed
-_08030378:
- pop {r0}
- bx r0
- thumb_func_end dp01t_11_1_message_for_player_only
-
- thumb_func_start sub_803037C
-sub_803037C: @ 803037C
- push {r4,lr}
- sub sp, 0x8
- ldr r1, _08030434 @ =gUnknown_030042A4
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08030438 @ =gUnknown_030042A0
- movs r0, 0xA0
- strh r0, [r1]
- ldr r4, _0803043C @ =gUnknown_03004210
- movs r0, 0x1B
- str r0, [sp]
- movs r0, 0x12
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0xF
- bl FillWindowRect
- movs r0, 0x10
- str r0, [sp]
- movs r0, 0x26
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0x23
- bl FillWindowRect
- ldr r1, _08030440 @ =gUnknown_03004330
- ldr r0, _08030444 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030448 @ =sub_802C098
- str r1, [r0]
- ldr r1, _0803044C @ =gUnknown_08400CF3
- movs r2, 0xC8
- lsls r2, 1
- movs r0, 0x23
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x12
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _08030450 @ =0x0000ffff
- ldr r3, _08030454 @ =0x00002d9f
- movs r0, 0
- str r0, [sp]
- movs r2, 0xC
- bl sub_814A5C0
- movs r4, 0
-_080303EC:
- lsls r0, r4, 24
- lsrs r0, 24
- bl nullsub_8
- adds r4, 0x1
- cmp r4, 0x3
- ble _080303EC
- ldr r1, _08030458 @ =gUnknown_02024E60
- ldr r0, _08030444 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3E4
- ldr r0, _0803045C @ =gUnknown_08400CA8
- bl get_battle_strings_
- ldr r4, _0803043C @ =gUnknown_03004210
- ldr r1, _08030460 @ =gUnknown_020238CC
- movs r2, 0xDC
- lsls r2, 1
- movs r0, 0x23
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x2
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08030434: .4byte gUnknown_030042A4
-_08030438: .4byte gUnknown_030042A0
-_0803043C: .4byte gUnknown_03004210
-_08030440: .4byte gUnknown_03004330
-_08030444: .4byte gUnknown_02024A60
-_08030448: .4byte sub_802C098
-_0803044C: .4byte gUnknown_08400CF3
-_08030450: .4byte 0x0000ffff
-_08030454: .4byte 0x00002d9f
-_08030458: .4byte gUnknown_02024E60
-_0803045C: .4byte gUnknown_08400CA8
-_08030460: .4byte gUnknown_020238CC
- thumb_func_end sub_803037C
-
- thumb_func_start nullsub_42
-nullsub_42: @ 8030464
- bx lr
- thumb_func_end nullsub_42
-
- thumb_func_start sub_8030468
-sub_8030468: @ 8030468
- push {lr}
- sub sp, 0x4
- ldr r1, _08030494 @ =0x0000ffff
- ldr r3, _08030498 @ =0x00002d9f
- movs r0, 0
- str r0, [sp]
- movs r2, 0xC
- bl sub_814A5C0
- bl sub_80304A8
- ldr r1, _0803049C @ =gUnknown_03004330
- ldr r0, _080304A0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080304A4 @ =sub_802C68C
- str r1, [r0]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08030494: .4byte 0x0000ffff
-_08030498: .4byte 0x00002d9f
-_0803049C: .4byte gUnknown_03004330
-_080304A0: .4byte gUnknown_02024A60
-_080304A4: .4byte sub_802C68C
- thumb_func_end sub_8030468
-
- thumb_func_start sub_80304A8
-sub_80304A8: @ 80304A8
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _08030510 @ =gUnknown_030042A4
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08030514 @ =gUnknown_030042A0
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- bl sub_802E1B0
- ldr r1, _08030518 @ =gUnknown_03004344
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _0803051C @ =gUnknown_02024E64
- ldr r4, _08030520 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3B4
- ldr r1, _08030524 @ =gUnknown_02023A60
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08030500
- ldr r4, _08030528 @ =gUnknown_03004210
- ldr r1, _0803052C @ =gUnknown_08400D38
- movs r2, 0xA4
- lsls r2, 2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x17
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
-_08030500:
- bl sub_802E220
- bl sub_802E2D4
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08030510: .4byte gUnknown_030042A4
-_08030514: .4byte gUnknown_030042A0
-_08030518: .4byte gUnknown_03004344
-_0803051C: .4byte gUnknown_02024E64
-_08030520: .4byte gUnknown_02024A60
-_08030524: .4byte gUnknown_02023A60
-_08030528: .4byte gUnknown_03004210
-_0803052C: .4byte gUnknown_08400D38
- thumb_func_end sub_80304A8
-
- thumb_func_start sub_8030530
-sub_8030530: @ 8030530
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0803057C @ =gUnknown_03004330
- ldr r2, _08030580 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030584 @ =sub_802E004
- str r1, [r0]
- ldr r1, _08030588 @ =gUnknown_02024E6C
- ldrb r0, [r2]
- strb r0, [r1]
- movs r3, 0
- ldr r5, _0803058C @ =gUnknown_02038470
- ldr r4, _08030590 @ =gUnknown_02023A60
-_0803055E:
- adds r0, r3, r5
- ldrb r1, [r2]
- lsls r1, 9
- adds r1, 0x1
- adds r1, r3, r1
- adds r1, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x2
- ble _0803055E
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0803057C: .4byte gUnknown_03004330
-_08030580: .4byte gUnknown_02024A60
-_08030584: .4byte sub_802E004
-_08030588: .4byte gUnknown_02024E6C
-_0803058C: .4byte gUnknown_02038470
-_08030590: .4byte gUnknown_02023A60
- thumb_func_end sub_8030530
-
- thumb_func_start sub_8030594
-sub_8030594: @ 8030594
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _08030644 @ =TaskDummy
- movs r1, 0xFF
- bl CreateTask
- ldr r3, _08030648 @ =gUnknown_0300434C
- ldr r5, _0803064C @ =gUnknown_02024A60
- ldrb r1, [r5]
- adds r1, r3
- strb r0, [r1]
- ldr r4, _08030650 @ =gTasks
- ldrb r2, [r5]
- adds r3, r2, r3
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldr r4, _08030654 @ =gUnknown_02023A60
- lsls r2, 9
- adds r3, r4, 0x1
- adds r2, r3
- ldrb r2, [r2]
- movs r0, 0xF
- ands r0, r2
- strh r0, [r1, 0x8]
- ldr r2, _08030658 @ =0x02000000
- ldrb r0, [r5]
- lsls r0, 9
- adds r0, r3
- ldrb r0, [r0]
- lsrs r0, 4
- ldr r3, _0803065C @ =0x00016054
- adds r1, r2, r3
- strb r0, [r1]
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, r4, 0x2
- adds r0, r1
- ldrb r1, [r0]
- adds r3, 0x49
- adds r0, r2, r3
- strb r1, [r0]
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, r4, 0x3
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _08030660 @ =0x000160c0
- adds r2, r1
- strb r0, [r2]
- movs r2, 0
- ldr r3, _08030664 @ =gUnknown_02038470
-_08030600:
- adds r0, r2, r3
- ldrb r1, [r5]
- lsls r1, 9
- adds r1, 0x4
- adds r1, r2, r1
- adds r1, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x2
- ble _08030600
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08030668 @ =gUnknown_03004330
- ldr r2, _0803064C @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803066C @ =sub_802DF30
- str r1, [r0]
- ldr r1, _08030670 @ =gUnknown_02024E6C
- ldrb r0, [r2]
- strb r0, [r1]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08030644: .4byte TaskDummy
-_08030648: .4byte gUnknown_0300434C
-_0803064C: .4byte gUnknown_02024A60
-_08030650: .4byte gTasks
-_08030654: .4byte gUnknown_02023A60
-_08030658: .4byte 0x02000000
-_0803065C: .4byte 0x00016054
-_08030660: .4byte 0x000160c0
-_08030664: .4byte gUnknown_02038470
-_08030668: .4byte gUnknown_03004330
-_0803066C: .4byte sub_802DF30
-_08030670: .4byte gUnknown_02024E6C
- thumb_func_end sub_8030594
-
- thumb_func_start sub_8030674
-sub_8030674: @ 8030674
- push {lr}
- sub sp, 0x4
- bl sub_80325B8
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- bl dp01_tbl1_exec_completed
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8030674
-
- thumb_func_start sub_8030698
-sub_8030698: @ 8030698
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r0, 0
- bl load_gfxc_health_bar
- ldr r3, _08030710 @ =gUnknown_02023A60
- ldr r0, _08030714 @ =gUnknown_02024A60
- mov r9, r0
- ldrb r4, [r0]
- lsls r2, r4, 9
- adds r0, r3, 0x2
- adds r0, r2, r0
- ldrb r1, [r0]
- adds r3, 0x3
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- asrs r7, r1, 16
- ldr r0, _08030718 @ =0x00007fff
- cmp r7, r0
- beq _08030728
- ldr r6, _0803071C @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _08030720 @ =gPlayerParty
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- mov r8, r0
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _08030724 @ =gUnknown_03004340
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl sub_8043D84
- b _08030762
- .align 2, 0
-_08030710: .4byte gUnknown_02023A60
-_08030714: .4byte gUnknown_02024A60
-_08030718: .4byte 0x00007fff
-_0803071C: .4byte gUnknown_02024A6A
-_08030720: .4byte gPlayerParty
-_08030724: .4byte gUnknown_03004340
-_08030728:
- ldr r1, _08030780 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08030784 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r4, _08030788 @ =gUnknown_03004340
- adds r1, r0, r4
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl sub_8043D84
- mov r1, r9
- ldrb r0, [r1]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- movs r2, 0
- bl sub_80440EC
-_08030762:
- ldr r1, _0803078C @ =gUnknown_03004330
- ldr r0, _08030790 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030794 @ =bx_t1_healthbar_update
- str r1, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08030780: .4byte gUnknown_02024A6A
-_08030784: .4byte gPlayerParty
-_08030788: .4byte gUnknown_03004340
-_0803078C: .4byte gUnknown_03004330
-_08030790: .4byte gUnknown_02024A60
-_08030794: .4byte bx_t1_healthbar_update
- thumb_func_end sub_8030698
-
- thumb_func_start sub_8030798
-sub_8030798: @ 8030798
- push {r4-r7,lr}
- ldr r5, _080307C4 @ =gUnknown_02023A60
- ldr r6, _080307C8 @ =gUnknown_02024A60
- ldrb r0, [r6]
- lsls r0, 9
- adds r1, r5, 0x1
- adds r0, r1
- ldrb r7, [r0]
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _080307CC @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x63
- bls _080307D0
- bl dp01_tbl1_exec_completed
- b _0803081C
- .align 2, 0
-_080307C4: .4byte gUnknown_02023A60
-_080307C8: .4byte gUnknown_02024A60
-_080307CC: .4byte gPlayerParty
-_080307D0:
- movs r0, 0x1
- bl load_gfxc_health_bar
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- ldrb r1, [r6]
- lsls r1, 9
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r0, r5, 0x3
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- ldr r0, _08030824 @ =sub_802D924
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08030828 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r7, [r1, 0x8]
- strh r4, [r1, 0xA]
- ldrb r0, [r6]
- strh r0, [r1, 0xC]
- ldr r1, _0803082C @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030830 @ =nullsub_91
- str r1, [r0]
-_0803081C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08030824: .4byte sub_802D924
-_08030828: .4byte gTasks
-_0803082C: .4byte gUnknown_03004330
-_08030830: .4byte nullsub_91
- thumb_func_end sub_8030798
-
- thumb_func_start sub_8030834
-sub_8030834: @ 8030834
- push {r4,lr}
- ldr r4, _0803088C @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08030884
- ldr r0, _08030890 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _08030894 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08030898 @ =gPlayerParty
- adds r1, r2
- movs r2, 0x9
- bl sub_8045A5C
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _0803089C @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, _080308A0 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080308A4 @ =sub_802E434
- str r1, [r0]
-_08030884:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803088C: .4byte gUnknown_02024A60
-_08030890: .4byte gUnknown_03004340
-_08030894: .4byte gUnknown_02024A6A
-_08030898: .4byte gPlayerParty
-_0803089C: .4byte 0x02017810
-_080308A0: .4byte gUnknown_03004330
-_080308A4: .4byte sub_802E434
- thumb_func_end sub_8030834
-
- thumb_func_start sub_80308A8
-sub_80308A8: @ 80308A8
- push {r4,r5,lr}
- ldr r5, _08030900 @ =gUnknown_02024A60
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _080308F8
- ldr r4, _08030904 @ =gUnknown_02023A60
- ldrb r3, [r5]
- lsls r3, 9
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- adds r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- adds r2, r4, 0x4
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 16
- orrs r1, r2
- adds r4, 0x5
- adds r3, r4
- ldrb r2, [r3]
- lsls r2, 24
- orrs r1, r2
- bl move_anim_start_t2_for_situation
- ldr r1, _08030908 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803090C @ =sub_802E434
- str r1, [r0]
-_080308F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08030900: .4byte gUnknown_02024A60
-_08030904: .4byte gUnknown_02023A60
-_08030908: .4byte gUnknown_03004330
-_0803090C: .4byte sub_802E434
- thumb_func_end sub_80308A8
-
- thumb_func_start sub_8030910
-sub_8030910: @ 8030910
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- ldr r0, _0803096C @ =gUnknown_02024A6A
- mov r8, r0
- ldr r4, _08030970 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 1
- add r0, r8
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08030974 @ =gPlayerParty
- adds r0, r5
- movs r1, 0x37
- bl GetMonData
- ldr r2, _08030978 @ =gUnknown_02023A60
- ldrb r1, [r4]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- eors r0, r1
- mov r1, sp
- strb r0, [r1]
- ldrb r0, [r4]
- lsls r0, 1
- add r0, r8
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0x37
- mov r2, sp
- bl SetMonData
- bl dp01_tbl1_exec_completed
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803096C: .4byte gUnknown_02024A6A
-_08030970: .4byte gUnknown_02024A60
-_08030974: .4byte gPlayerParty
-_08030978: .4byte gUnknown_02023A60
- thumb_func_end sub_8030910
-
- thumb_func_start sub_803097C
-sub_803097C: @ 803097C
- push {lr}
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803097C
-
- thumb_func_start sub_8030988
-sub_8030988: @ 8030988
- push {r4,r5,lr}
- ldr r3, _080309EC @ =gUnknown_02023A60
- ldr r0, _080309F0 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r2, 9
- adds r0, r3, 0x1
- adds r0, r2, r0
- ldrb r5, [r0]
- adds r0, r3, 0x2
- adds r0, r2, r0
- ldrb r0, [r0]
- lsls r0, 8
- orrs r5, r0
- adds r0, r3, 0x3
- adds r0, r2, r0
- ldrb r0, [r0]
- lsls r0, 16
- orrs r5, r0
- adds r0, r3, 0x4
- adds r0, r2, r0
- ldrb r4, [r0]
- lsls r4, 24
- adds r0, r3, 0x5
- adds r0, r2, r0
- ldrb r1, [r0]
- adds r0, r3, 0x6
- adds r0, r2, r0
- ldrb r0, [r0]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- adds r3, 0x7
- adds r2, r3
- orrs r5, r4
- lsrs r4, r1, 16
- movs r0, 0x80
- lsls r0, 5
- cmp r4, r0
- bhi _080309F8
- ldr r0, _080309F4 @ =0x040000d4
- str r2, [r0]
- str r5, [r0, 0x4]
- lsrs r1, 17
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _08030A24
- .align 2, 0
-_080309EC: .4byte gUnknown_02023A60
-_080309F0: .4byte gUnknown_02024A60
-_080309F4: .4byte 0x040000d4
-_080309F8:
- ldr r3, _08030A30 @ =0x040000d4
- str r2, [r3]
- str r5, [r3, 0x4]
- ldr r0, _08030A34 @ =0x80000800
- str r0, [r3, 0x8]
- ldr r0, [r3, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r2, r0
- adds r5, r0
- ldr r1, _08030A38 @ =0xfffff000
- adds r4, r1
- cmp r4, r0
- bhi _080309F8
- str r2, [r3]
- str r5, [r3, 0x4]
- lsrs r0, r4, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r3, 0x8]
- ldr r0, [r3, 0x8]
-_08030A24:
- bl dp01_tbl1_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08030A30: .4byte 0x040000d4
-_08030A34: .4byte 0x80000800
-_08030A38: .4byte 0xfffff000
- thumb_func_end sub_8030988
-
- thumb_func_start sub_8030A3C
-sub_8030A3C: @ 8030A3C
- push {lr}
- ldr r2, _08030A64 @ =gUnknown_02023A60
- ldr r0, _08030A68 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayBGM
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030A64: .4byte gUnknown_02023A60
-_08030A68: .4byte gUnknown_02024A60
- thumb_func_end sub_8030A3C
-
- thumb_func_start sub_8030A6C
-sub_8030A6C: @ 8030A6C
- push {lr}
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8030A6C
-
- thumb_func_start sub_8030A78
-sub_8030A78: @ 8030A78
- push {lr}
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8030A78
-
- thumb_func_start sub_8030A8C
-sub_8030A8C: @ 8030A8C
- push {lr}
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl dp01_build_cmdbuf_x22_a_three_bytes
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8030A8C
-
- thumb_func_start sub_8030AA0
-sub_8030AA0: @ 8030AA0
- push {lr}
- movs r0, 0x1
- movs r1, 0
- bl dp01_build_cmdbuf_x23_aa_0
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8030AA0
-
- thumb_func_start sub_8030AB4
-sub_8030AB4: @ 8030AB4
- push {lr}
- movs r0, 0x1
- movs r1, 0
- bl dp01_build_cmdbuf_x24_aa_0
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8030AB4
-
- thumb_func_start sub_8030AC8
-sub_8030AC8: @ 8030AC8
- push {lr}
- ldr r2, _08030AE0 @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030AE0: .4byte gUnknown_020238C8
- thumb_func_end sub_8030AC8
-
- thumb_func_start sub_8030AE4
-sub_8030AE4: @ 8030AE4
- push {lr}
- ldr r3, _08030B10 @ =gUnknown_020238C8
- ldr r1, _08030B14 @ =gUnknown_02023A60
- ldr r0, _08030B18 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x7F
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030B10: .4byte gUnknown_020238C8
-_08030B14: .4byte gUnknown_02023A60
-_08030B18: .4byte gUnknown_02024A60
- thumb_func_end sub_8030AE4
-
- thumb_func_start sub_8030B1C
-sub_8030B1C: @ 8030B1C
- push {lr}
- ldr r2, _08030B30 @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030B30: .4byte gUnknown_020238C8
- thumb_func_end sub_8030B1C
-
- thumb_func_start sub_8030B34
-sub_8030B34: @ 8030B34
- push {lr}
- ldr r3, _08030B58 @ =gUnknown_020238C8
- ldr r1, [r3]
- lsls r1, 24
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 7
- ldrb r2, [r3]
- movs r0, 0x7F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030B58: .4byte gUnknown_020238C8
- thumb_func_end sub_8030B34
-
- thumb_func_start dp01t_29_1_blink
-dp01t_29_1_blink: @ 8030B5C
- push {r4,lr}
- ldr r3, _08030B84 @ =gSprites
- ldr r2, _08030B88 @ =gUnknown_02024BE0
- ldr r4, _08030B8C @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _08030B90
- bl dp01_tbl1_exec_completed
- b _08030BBA
- .align 2, 0
-_08030B84: .4byte gSprites
-_08030B88: .4byte gUnknown_02024BE0
-_08030B8C: .4byte gUnknown_02024A60
-_08030B90:
- ldr r1, _08030BC0 @ =gUnknown_02024E6D
- movs r0, 0x1
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r4]
- bl sub_8047858
- ldr r1, _08030BC4 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030BC8 @ =bx_blink_t1
- str r1, [r0]
-_08030BBA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08030BC0: .4byte gUnknown_02024E6D
-_08030BC4: .4byte gUnknown_03004330
-_08030BC8: .4byte bx_blink_t1
- thumb_func_end dp01t_29_1_blink
-
- thumb_func_start sub_8030BCC
-sub_8030BCC: @ 8030BCC
- push {lr}
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8030BCC
-
- thumb_func_start sub_8030BD8
-sub_8030BD8: @ 8030BD8
- push {r4,lr}
- ldr r4, _08030C14 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _08030BEC
- movs r3, 0xC0
-_08030BEC:
- ldr r2, _08030C18 @ =gUnknown_02023A60
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- lsls r1, r3, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- bl dp01_tbl1_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08030C14: .4byte gUnknown_02024A60
-_08030C18: .4byte gUnknown_02023A60
- thumb_func_end sub_8030BD8
-
- thumb_func_start sub_8030C1C
-sub_8030C1C: @ 8030C1C
- push {lr}
- ldr r2, _08030C44 @ =gUnknown_02023A60
- ldr r0, _08030C48 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030C44: .4byte gUnknown_02023A60
-_08030C48: .4byte gUnknown_02024A60
- thumb_func_end sub_8030C1C
-
- thumb_func_start sub_8030C4C
-sub_8030C4C: @ 8030C4C
- push {lr}
- ldr r1, _08030C80 @ =gUnknown_02024A6A
- ldr r0, _08030C84 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08030C88 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- negs r1, r1
- movs r2, 0x5
- bl PlayCry3
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030C80: .4byte gUnknown_02024A6A
-_08030C84: .4byte gUnknown_02024A60
-_08030C88: .4byte gPlayerParty
- thumb_func_end sub_8030C4C
-
- thumb_func_start dp01t_2E_1_battle_intro
-dp01t_2E_1_battle_intro: @ 8030C8C
- push {lr}
- ldr r1, _08030CB4 @ =gUnknown_02023A60
- ldr r0, _08030CB8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _08030CBC @ =gUnknown_02024DE8
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030CB4: .4byte gUnknown_02023A60
-_08030CB8: .4byte gUnknown_02024A60
-_08030CBC: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_1_battle_intro
-
- thumb_func_start sub_8030CC0
-sub_8030CC0: @ 8030CC0
- push {r4-r7,lr}
- ldr r6, _08030DF8 @ =gUnknown_02024BE0
- ldr r7, _08030DFC @ =gUnknown_02024A60
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _08030E00 @ =gSprites
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x32
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08030E04 @ =0x0000ffd8
- strh r1, [r0, 0x32]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08030E08 @ =sub_8078B34
- str r1, [r0]
- ldrb r2, [r7]
- adds r0, r2, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x38]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08030E0C @ =sub_8030E38
- bl oamt_set_x3A_32
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _08030E10 @ =0x0000d6f8
- bl AllocSpritePalette
- adds r4, r0, 0
- lsls r4, 24
- ldr r1, _08030E14 @ =gTrainerBackPicPaletteTable
- ldr r0, _08030E18 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- lsrs r4, 20
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- movs r2, 0x20
- bl LoadCompressedPalette
- ldrb r0, [r7]
- adds r0, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r4
- strb r0, [r1, 0x5]
- ldr r0, _08030E1C @ =task05_08033660
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08030E20 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r7]
- strh r0, [r1, 0x8]
- ldrb r3, [r7]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r2, _08030E24 @ =0x02017810
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08030DDC
- ldr r0, _08030E28 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, _08030E2C @ =sub_8044CA0
- str r1, [r0]
-_08030DDC:
- adds r2, 0x30
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _08030E30 @ =gUnknown_03004330
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030E34 @ =nullsub_91
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08030DF8: .4byte gUnknown_02024BE0
-_08030DFC: .4byte gUnknown_02024A60
-_08030E00: .4byte gSprites
-_08030E04: .4byte 0x0000ffd8
-_08030E08: .4byte sub_8078B34
-_08030E0C: .4byte sub_8030E38
-_08030E10: .4byte 0x0000d6f8
-_08030E14: .4byte gTrainerBackPicPaletteTable
-_08030E18: .4byte gSaveBlock2
-_08030E1C: .4byte task05_08033660
-_08030E20: .4byte gTasks
-_08030E24: .4byte 0x02017810
-_08030E28: .4byte gUnknown_02024E68
-_08030E2C: .4byte sub_8044CA0
-_08030E30: .4byte gUnknown_03004330
-_08030E34: .4byte nullsub_91
- thumb_func_end sub_8030CC0
-
- thumb_func_start sub_8030E38
-sub_8030E38: @ 8030E38
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r4, [r5, 0x38]
- lsls r4, 24
- lsrs r4, 24
- bl FreeSpriteOamMatrix
- ldrb r0, [r5, 0x5]
- lsrs r0, 4
- bl GetSpritePaletteTagByPaletteNum
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpritePaletteByTag
- adds r0, r5, 0
- bl DestroySprite
- ldr r1, _08030E90 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08030E94 @ =gPlayerParty
- adds r0, r1
- adds r1, r4, 0
- bl sub_80318FC
- ldr r0, _08030E98 @ =gUnknown_02024BE0
- adds r4, r0
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08030E9C @ =gSprites
- adds r0, r1
- movs r1, 0
- bl StartSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08030E90: .4byte gUnknown_02024A6A
-_08030E94: .4byte gPlayerParty
-_08030E98: .4byte gUnknown_02024BE0
-_08030E9C: .4byte gSprites
- thumb_func_end sub_8030E38
-
- thumb_func_start task05_08033660
-task05_08033660: @ 8030EA0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _08030EC8 @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x1E
- bgt _08030ECC
- adds r0, r2, 0x1
- strh r0, [r1, 0xA]
- b _08030F88
- .align 2, 0
-_08030EC8: .4byte gTasks
-_08030ECC:
- ldr r7, _08030F0C @ =gUnknown_02024A60
- ldrb r0, [r7]
- mov r9, r0
- ldrh r0, [r1, 0x8]
- strb r0, [r7]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08030EEC
- ldr r0, _08030F10 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08030F1C
-_08030EEC:
- ldr r0, _08030F14 @ =gUnknown_02023A60
- ldrb r1, [r7]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, _08030F18 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_802F934
- b _08030F70
- .align 2, 0
-_08030F0C: .4byte gUnknown_02024A60
-_08030F10: .4byte gUnknown_020239F8
-_08030F14: .4byte gUnknown_02023A60
-_08030F18: .4byte gUnknown_02024A6A
-_08030F1C:
- ldr r4, _08030F94 @ =gUnknown_02023A60
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r4, 0x1
- adds r1, r4
- ldr r5, _08030F98 @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_802F934
- ldrb r0, [r7]
- movs r6, 0x2
- eors r0, r6
- strb r0, [r7]
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r1, r4
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r0, r1, 1
- adds r0, r5
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _08030F9C @ =gPlayerParty
- adds r0, r2
- bl sub_80318FC
- ldrb r0, [r7]
- movs r1, 0
- bl sub_802F934
- ldrb r0, [r7]
- eors r0, r6
- strb r0, [r7]
-_08030F70:
- ldr r1, _08030FA0 @ =gUnknown_03004330
- ldr r2, _08030FA4 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030FA8 @ =sub_802D500
- str r1, [r0]
- mov r3, r9
- strb r3, [r2]
- mov r0, r8
- bl DestroyTask
-_08030F88:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08030F94: .4byte gUnknown_02023A60
-_08030F98: .4byte gUnknown_02024A6A
-_08030F9C: .4byte gPlayerParty
-_08030FA0: .4byte gUnknown_03004330
-_08030FA4: .4byte gUnknown_02024A60
-_08030FA8: .4byte sub_802D500
- thumb_func_end task05_08033660
-
- thumb_func_start sub_8030FAC
-sub_8030FAC: @ 8030FAC
- push {r4-r6,lr}
- ldr r1, _08030FD4 @ =gUnknown_02023A60
- ldr r0, _08030FD8 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08030FDC
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08030FDC
- bl dp01_tbl1_exec_completed
- b _08031044
- .align 2, 0
-_08030FD4: .4byte gUnknown_02023A60
-_08030FD8: .4byte gUnknown_02024A60
-_08030FDC:
- ldr r5, _0803104C @ =gUnknown_02024A60
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r6, _08031050 @ =0x02017810
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldrb r0, [r5]
- lsls r3, r0, 9
- ldr r4, _08031054 @ =gUnknown_02023A64
- adds r1, r3, r4
- subs r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- subs r4, 0x2
- adds r3, r4
- ldrb r3, [r3]
- bl sub_8044804
- ldr r2, _08031058 @ =gUnknown_02024E68
- ldrb r1, [r5]
- adds r1, r2
- movs r2, 0
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r2, [r0, 0x5]
- ldrb r1, [r5]
- lsls r0, r1, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08031038
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5D
- strb r1, [r0, 0x5]
-_08031038:
- ldr r0, _0803105C @ =gUnknown_03004330
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08031060 @ =sub_8031064
- str r0, [r1]
-_08031044:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803104C: .4byte gUnknown_02024A60
-_08031050: .4byte 0x02017810
-_08031054: .4byte gUnknown_02023A64
-_08031058: .4byte gUnknown_02024E68
-_0803105C: .4byte gUnknown_03004330
-_08031060: .4byte sub_8031064
- thumb_func_end sub_8030FAC
-
- thumb_func_start sub_8031064
-sub_8031064: @ 8031064
- push {r4,lr}
- ldr r4, _0803109C @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _080310A0 @ =0x02017810
- adds r0, r3
- ldrb r1, [r0, 0x5]
- adds r2, r1, 0x1
- strb r2, [r0, 0x5]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x5C
- bls _08031094
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r0, 0
- strb r0, [r1, 0x5]
- bl dp01_tbl1_exec_completed
-_08031094:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803109C: .4byte gUnknown_02024A60
-_080310A0: .4byte 0x02017810
- thumb_func_end sub_8031064
-
- thumb_func_start sub_80310A4
-sub_80310A4: @ 80310A4
- push {lr}
- ldr r0, _080310DC @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r1, _080310E0 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080310D2
- ldr r2, _080310E4 @ =gTasks
- ldr r0, _080310E8 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _080310EC @ =sub_8044CA0
- str r1, [r0]
-_080310D2:
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_080310DC: .4byte gUnknown_02024A60
-_080310E0: .4byte 0x02017810
-_080310E4: .4byte gTasks
-_080310E8: .4byte gUnknown_02024E68
-_080310EC: .4byte sub_8044CA0
- thumb_func_end sub_80310A4
-
- thumb_func_start sub_80310F0
-sub_80310F0: @ 80310F0
- push {r4,lr}
- ldr r4, _08031110 @ =gUnknown_02024A60
- ldrb r0, [r4]
- movs r1, 0x1
- bl dp11b_obj_free
- ldrb r0, [r4]
- movs r1, 0
- bl dp11b_obj_free
- bl dp01_tbl1_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08031110: .4byte gUnknown_02024A60
- thumb_func_end sub_80310F0
-
- thumb_func_start dp01t_33_1_enemy_move
-dp01t_33_1_enemy_move: @ 8031114
- push {r4,lr}
- ldr r4, _08031164 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _0803115A
- ldr r3, _08031168 @ =gSprites
- ldr r0, _0803116C @ =gUnknown_02024BE0
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldr r0, _08031170 @ =gUnknown_02023A60
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- adds r2, 0x3E
- movs r0, 0x1
- ldrb r1, [r1]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- bl sub_8031F88
-_0803115A:
- bl dp01_tbl1_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08031164: .4byte gUnknown_02024A60
-_08031168: .4byte gSprites
-_0803116C: .4byte gUnknown_02024BE0
-_08031170: .4byte gUnknown_02023A60
- thumb_func_end dp01t_33_1_enemy_move
-
- thumb_func_start bx_exec_buffer_A_ch0_tbl1
-bx_exec_buffer_A_ch0_tbl1: @ 8031174
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _080311B8 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _080311CC
- ldr r5, _080311BC @ =gUnknown_02023A60
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _080311C0
- bl dp01_tbl1_exec_completed
- b _080311CC
- .align 2, 0
-_080311B8: .4byte gUnknown_02024A60
-_080311BC: .4byte gUnknown_02023A60
-_080311C0:
- ldr r0, _080311D4 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _080311D8 @ =sub_802E460
- str r0, [r1]
-_080311CC:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080311D4: .4byte gUnknown_03004330
-_080311D8: .4byte sub_802E460
- thumb_func_end bx_exec_buffer_A_ch0_tbl1
-
- thumb_func_start dp01t_35_1_link_standby_message_and_free_vram
-dp01t_35_1_link_standby_message_and_free_vram: @ 80311DC
- push {r4,lr}
- ldr r1, _080311FC @ =gUnknown_02023A60
- ldr r0, _08031200 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0803120E
- cmp r0, 0x1
- bgt _08031204
- cmp r0, 0
- beq _0803120A
- b _0803122C
- .align 2, 0
-_080311FC: .4byte gUnknown_02023A60
-_08031200: .4byte gUnknown_02024A60
-_08031204:
- cmp r0, 0x2
- beq _08031228
- b _0803122C
-_0803120A:
- bl b_link_standby_message
-_0803120E:
- ldr r4, _08031224 @ =gUnknown_02024A60
- ldrb r0, [r4]
- movs r1, 0x1
- bl dp11b_obj_free
- ldrb r0, [r4]
- movs r1, 0
- bl dp11b_obj_free
- b _0803122C
- .align 2, 0
-_08031224: .4byte gUnknown_02024A60
-_08031228:
- bl b_link_standby_message
-_0803122C:
- bl dp01_tbl1_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end dp01t_35_1_link_standby_message_and_free_vram
-
- thumb_func_start sub_8031238
-sub_8031238: @ 8031238
- push {r4,lr}
- ldr r1, _08031258 @ =gUnknown_02023A60
- ldr r4, _0803125C @ =gUnknown_02024A60
- ldrb r3, [r4]
- lsls r0, r3, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r2, [r0]
- cmp r2, 0x1
- beq _08031280
- cmp r2, 0x1
- bgt _08031260
- cmp r2, 0
- beq _08031266
- b _08031290
- .align 2, 0
-_08031258: .4byte gUnknown_02023A60
-_0803125C: .4byte gUnknown_02024A60
-_08031260:
- cmp r2, 0x2
- beq _08031288
- b _08031290
-_08031266:
- ldr r0, _08031278 @ =gUnknown_02024E60
- adds r0, r3, r0
- strb r2, [r0]
- ldr r1, _0803127C @ =gUnknown_02024E64
- ldrb r0, [r4]
- adds r0, r1
- strb r2, [r0]
- b _08031290
- .align 2, 0
-_08031278: .4byte gUnknown_02024E60
-_0803127C: .4byte gUnknown_02024E64
-_08031280:
- ldr r0, _08031284 @ =gUnknown_02024E60
- b _0803128A
- .align 2, 0
-_08031284: .4byte gUnknown_02024E60
-_08031288:
- ldr r0, _0803129C @ =gUnknown_02024E64
-_0803128A:
- adds r0, r3, r0
- movs r1, 0
- strb r1, [r0]
-_08031290:
- bl dp01_tbl1_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803129C: .4byte gUnknown_02024E64
- thumb_func_end sub_8031238
-
- thumb_func_start sub_80312A0
-sub_80312A0: @ 80312A0
- push {r4,lr}
- ldr r2, _080312D8 @ =gUnknown_02024D26
- ldr r1, _080312DC @ =gUnknown_02023A60
- ldr r4, _080312E0 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0x5
- bl FadeOutMapMusic
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl dp01_tbl1_exec_completed
- ldr r1, _080312E4 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080312E8 @ =sub_802D18C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080312D8: .4byte gUnknown_02024D26
-_080312DC: .4byte gUnknown_02023A60
-_080312E0: .4byte gUnknown_02024A60
-_080312E4: .4byte gUnknown_03004330
-_080312E8: .4byte sub_802D18C
- thumb_func_end sub_80312A0
-
- thumb_func_start nullsub_43
-nullsub_43: @ 80312EC
- bx lr
- thumb_func_end nullsub_43
-
- thumb_func_start sub_80312F0
-sub_80312F0: @ 80312F0
- push {r4-r7,lr}
- adds r6, r0, 0
- ldrh r0, [r6, 0x30]
- lsls r0, 24
- lsrs r0, 24
- ldr r7, _08031334 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- adds r3, r5, r7
- adds r0, r3, 0
- adds r0, 0x3F
- ldrb r4, [r0]
- lsls r0, r4, 26
- cmp r0, 0
- bge _08031354
- adds r0, r3, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _08031354
- adds r1, r3, 0
- adds r1, 0x2C
- ldrb r2, [r1]
- lsls r0, r2, 25
- cmp r0, 0
- bge _08031338
- movs r0, 0x41
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- b _08031354
- .align 2, 0
-_08031334: .4byte gSprites
-_08031338:
- lsls r0, r4, 27
- cmp r0, 0
- bge _08031354
- adds r0, r7, 0
- adds r0, 0x1C
- adds r0, r5, r0
- ldr r1, _0803135C @ =sub_80105DC
- str r1, [r0]
- adds r0, r3, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- ldr r0, _08031360 @ =SpriteCallbackDummy
- str r0, [r6, 0x1C]
-_08031354:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803135C: .4byte sub_80105DC
-_08031360: .4byte SpriteCallbackDummy
- thumb_func_end sub_80312F0
-
- thumb_func_start unref_sub_8031364
-unref_sub_8031364: @ 8031364
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- adds r3, r4, 0
- adds r3, 0x2C
- ldrb r0, [r3]
- movs r2, 0x40
- orrs r0, r2
- strb r0, [r3]
- ldr r0, _08031388 @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
- cmp r1, 0
- bne _0803138C
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _08031394
- .align 2, 0
-_08031388: .4byte SpriteCallbackDummy
-_0803138C:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_08031394:
- adds r0, r4, 0
- bl AnimateSprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_8031364
-
- thumb_func_start sub_80313A0
-sub_80313A0: @ 80313A0
- push {lr}
- adds r2, r0, 0
- ldr r0, _080313C8 @ =gUnknown_02024DE8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080313C2
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _080313C2
- ldr r0, _080313CC @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_080313C2:
- pop {r0}
- bx r0
- .align 2, 0
-_080313C8: .4byte gUnknown_02024DE8
-_080313CC: .4byte SpriteCallbackDummy
- thumb_func_end sub_80313A0
-
- thumb_func_start move_anim_start_t2_for_situation
-move_anim_start_t2_for_situation: @ 80313D0
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- ldr r5, _08031400 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- ldr r6, _08031404 @ =0x02017810
- adds r1, r6
- ldrb r2, [r1]
- movs r3, 0x10
- orrs r2, r3
- strb r2, [r1]
- cmp r0, 0
- bne _0803144C
- cmp r4, 0x20
- bne _08031408
- ldrb r0, [r5]
- movs r1, 0x6
- bl move_anim_start_t2
- b _080314C2
- .align 2, 0
-_08031400: .4byte gUnknown_02024A60
-_08031404: .4byte 0x02017810
-_08031408:
- cmp r4, 0x8
- beq _08031414
- movs r0, 0x80
- ands r0, r4
- cmp r0, 0
- beq _0803141E
-_08031414:
- ldrb r0, [r5]
- movs r1, 0
- bl move_anim_start_t2
- b _080314C2
-_0803141E:
- cmp r4, 0x10
- bne _0803142C
- ldrb r0, [r5]
- movs r1, 0x2
- bl move_anim_start_t2
- b _080314C2
-_0803142C:
- movs r0, 0x7
- ands r0, r4
- cmp r0, 0
- beq _0803143E
- ldrb r0, [r5]
- movs r1, 0x4
- bl move_anim_start_t2
- b _080314C2
-_0803143E:
- cmp r4, 0x40
- bne _080314AE
- ldrb r0, [r5]
- movs r1, 0x5
- bl move_anim_start_t2
- b _080314C2
-_0803144C:
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r4
- cmp r0, 0
- beq _08031460
- ldrb r0, [r5]
- movs r1, 0x3
- bl move_anim_start_t2
- b _080314C2
-_08031460:
- movs r0, 0x7
- ands r0, r4
- cmp r0, 0
- beq _08031472
- ldrb r0, [r5]
- movs r1, 0x1
- bl move_anim_start_t2
- b _080314C2
-_08031472:
- movs r0, 0x80
- lsls r0, 21
- ands r0, r4
- cmp r0, 0
- beq _08031486
- ldrb r0, [r5]
- movs r1, 0x7
- bl move_anim_start_t2
- b _080314C2
-_08031486:
- movs r0, 0x80
- lsls r0, 20
- ands r0, r4
- cmp r0, 0
- beq _0803149A
- ldrb r0, [r5]
- movs r1, 0x8
- bl move_anim_start_t2
- b _080314C2
-_0803149A:
- movs r0, 0xE0
- lsls r0, 8
- ands r0, r4
- cmp r0, 0
- beq _080314AE
- ldrb r0, [r5]
- movs r1, 0x9
- bl move_anim_start_t2
- b _080314C2
-_080314AE:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
-_080314C2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end move_anim_start_t2_for_situation
-
- thumb_func_start move_anim_start_t3
-move_anim_start_t3: @ 80314C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- lsls r3, 24
- lsrs r5, r3, 24
- lsls r4, 16
- lsrs r7, r4, 16
- cmp r5, 0
- bne _0803150C
- movs r0, 0x80
- ands r0, r7
- cmp r0, 0
- beq _0803150C
- ldr r0, _08031508 @ =gUnknown_02024E84
- adds r0, r6, r0
- movs r2, 0x7F
- adds r1, r7, 0
- ands r1, r2
- strb r1, [r0]
- movs r0, 0x1
- b _080315C2
- .align 2, 0
-_08031508: .4byte gUnknown_02024E84
-_0803150C:
- lsls r1, r6, 2
- ldr r0, _08031530 @ =0x02017800
- adds r4, r1, r0
- ldrb r1, [r4]
- movs r0, 0x4
- mov r8, r0
- ands r0, r1
- cmp r0, 0
- beq _08031578
- adds r0, r5, 0
- bl sub_803163C
- lsls r0, 24
- cmp r0, 0
- bne _08031534
- movs r0, 0x1
- b _080315C2
- .align 2, 0
-_08031530: .4byte 0x02017800
-_08031534:
- ldrb r1, [r4]
- mov r0, r8
- ands r0, r1
- cmp r0, 0
- beq _08031578
- cmp r5, 0x2
- bne _08031578
- ldr r1, _08031570 @ =gSprites
- ldr r0, _08031574 @ =gUnknown_02024BE0
- adds r0, r6, r0
- ldrb r2, [r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _08031578
- adds r0, r6, 0
- movs r1, 0x1
- bl refresh_graphics_maybe
- adds r0, r6, 0
- bl sub_80324E0
- movs r0, 0x1
- b _080315C2
- .align 2, 0
-_08031570: .4byte gSprites
-_08031574: .4byte gUnknown_02024BE0
-_08031578:
- ldr r0, _080315D0 @ =gUnknown_0202F7C8
- mov r1, r9
- strb r1, [r0]
- ldr r0, _080315D4 @ =gUnknown_0202F7C9
- mov r1, r10
- strb r1, [r0]
- ldr r4, _080315D8 @ =0x02017840
- strh r7, [r4]
- ldr r0, _080315DC @ =gBattleAnims_Unknown1
- adds r1, r5, 0
- movs r2, 0
- bl move_something
- ldr r0, _080315E0 @ =sub_80315E8
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080315E4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r6, [r1, 0x8]
- movs r0, 0x8
- ldrsh r1, [r1, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- subs r4, 0x30
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0
-_080315C2:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080315D0: .4byte gUnknown_0202F7C8
-_080315D4: .4byte gUnknown_0202F7C9
-_080315D8: .4byte 0x02017840
-_080315DC: .4byte gBattleAnims_Unknown1
-_080315E0: .4byte sub_80315E8
-_080315E4: .4byte gTasks
- thumb_func_end move_anim_start_t3
-
- thumb_func_start sub_80315E8
-sub_80315E8: @ 80315E8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0803162C @ =gUnknown_0202F7AC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _08031630 @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08031626
- ldr r1, _08031634 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _08031638 @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_08031626:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803162C: .4byte gUnknown_0202F7AC
-_08031630: .4byte gUnknown_0202F7B1
-_08031634: .4byte gTasks
-_08031638: .4byte 0x02017810
- thumb_func_end sub_80315E8
-
- thumb_func_start sub_803163C
-sub_803163C: @ 803163C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bgt _08031650
- cmp r0, 0xA
- bge _08031654
- cmp r0, 0x2
- beq _08031654
- b _08031658
-_08031650:
- cmp r0, 0x11
- bne _08031658
-_08031654:
- movs r0, 0x1
- b _0803165A
-_08031658:
- movs r0, 0
-_0803165A:
- pop {r1}
- bx r1
- thumb_func_end sub_803163C
-
- thumb_func_start move_anim_start_t4
-move_anim_start_t4: @ 8031660
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _080316B4 @ =gUnknown_0202F7C8
- strb r1, [r0]
- ldr r0, _080316B8 @ =gUnknown_0202F7C9
- strb r2, [r0]
- ldr r0, _080316BC @ =gBattleAnims_Unknown2
- adds r1, r3, 0
- movs r2, 0
- bl move_something
- ldr r0, _080316C0 @ =sub_80316CC
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080316C4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- movs r0, 0x8
- ldrsh r1, [r1, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080316C8 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080316B4: .4byte gUnknown_0202F7C8
-_080316B8: .4byte gUnknown_0202F7C9
-_080316BC: .4byte gBattleAnims_Unknown2
-_080316C0: .4byte sub_80316CC
-_080316C4: .4byte gTasks
-_080316C8: .4byte 0x02017810
- thumb_func_end move_anim_start_t4
-
- thumb_func_start sub_80316CC
-sub_80316CC: @ 80316CC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08031710 @ =gUnknown_0202F7AC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _08031714 @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0803170A
- ldr r1, _08031718 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _0803171C @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x41
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_0803170A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08031710: .4byte gUnknown_0202F7AC
-_08031714: .4byte gUnknown_0202F7B1
-_08031718: .4byte gTasks
-_0803171C: .4byte 0x02017810
- thumb_func_end sub_80316CC
-
- thumb_func_start sub_8031720
-sub_8031720: @ 8031720
- movs r0, 0
- bx lr
- thumb_func_end sub_8031720
-
- thumb_func_start mplay_80342A4
-mplay_80342A4: @ 8031724
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08031764
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- ldr r2, _0803176C @ =0x02017810
- adds r1, r2
- ldrb r0, [r1, 0x8]
- adds r0, 0x1
- strb r0, [r1, 0x8]
- ldr r0, _08031770 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x8]
- cmp r0, 0x1D
- bls _08031768
- ldr r0, _08031774 @ =gMPlay_SE1
- bl m4aMPlayStop
- ldr r0, _08031778 @ =gMPlay_SE2
- bl m4aMPlayStop
-_08031764:
- cmp r5, 0
- beq _0803177C
-_08031768:
- movs r0, 0x1
- b _0803178A
- .align 2, 0
-_0803176C: .4byte 0x02017810
-_08031770: .4byte gUnknown_02024A60
-_08031774: .4byte gMPlay_SE1
-_08031778: .4byte gMPlay_SE2
-_0803177C:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- ldr r1, _08031790 @ =0x02017810
- adds r0, r1
- strb r5, [r0, 0x8]
- movs r0, 0
-_0803178A:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08031790: .4byte 0x02017810
- thumb_func_end mplay_80342A4
-
- thumb_func_start sub_8031794
-sub_8031794: @ 8031794
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0xC]
- mov r0, r9
- lsls r1, r0, 2
- ldr r0, _080317D0 @ =0x02017800
- adds r2, r1, r0
- ldrh r0, [r2, 0x2]
- cmp r0, 0
- bne _080317D4
- mov r0, r8
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r7, [sp, 0xC]
- b _080317DC
- .align 2, 0
-_080317D0: .4byte 0x02017800
-_080317D4:
- ldrh r6, [r2, 0x2]
- ldr r0, _08031838 @ =gUnknown_02024E70
- adds r0, r1, r0
- ldr r7, [r0]
-_080317DC:
- mov r0, r8
- movs r1, 0x1
- bl GetMonData
- mov r10, r0
- mov r0, r9
- bl battle_get_per_side_status
- lsls r0, 24
- lsls r5, r6, 3
- ldr r1, _0803183C @ =gMonFrontPicTable
- adds r5, r1
- ldr r1, _08031840 @ =gMonFrontPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08031844 @ =gUnknown_081FAF4C
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- str r0, [sp]
- str r6, [sp, 0x4]
- str r7, [sp, 0x8]
- adds r0, r5, 0
- bl sub_800D334
- mov r1, r9
- lsls r2, r1, 4
- movs r0, 0x80
- lsls r0, 1
- adds r7, r2, r0
- lsls r1, 2
- ldr r0, _08031848 @ =0x02017800
- adds r0, r1, r0
- ldrh r0, [r0, 0x2]
- str r1, [sp, 0x10]
- adds r4, r2, 0
- cmp r0, 0
- bne _0803184C
- mov r0, r8
- bl pokemon_get_pal
- b _08031856
- .align 2, 0
-_08031838: .4byte gUnknown_02024E70
-_0803183C: .4byte gMonFrontPicTable
-_08031840: .4byte gMonFrontPicCoords
-_08031844: .4byte gUnknown_081FAF4C
-_08031848: .4byte 0x02017800
-_0803184C:
- adds r0, r6, 0
- mov r1, r10
- ldr r2, [sp, 0xC]
- bl species_and_otid_get_pal
-_08031856:
- adds r5, r0, 0
- ldr r1, _080318E0 @ =0x02000000
- mov r8, r1
- adds r0, r5, 0
- bl sub_800D238
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0x20
- bl LoadPalette
- adds r1, r4, 0
- adds r1, 0x80
- mov r0, r8
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080318E4 @ =SPECIES_CASTFORM
- cmp r6, r0
- bne _080318A2
- subs r0, 0x81
- adds r7, r4, r0
- movs r4, 0xB2
- lsls r4, 9
- add r4, r8
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_800D238
- ldr r0, _080318E8 @ =gUnknown_02024E84
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 5
- adds r0, r4
- adds r1, r7, 0
- movs r2, 0x20
- bl LoadPalette
-_080318A2:
- movs r0, 0xBC
- lsls r0, 9
- add r0, r8
- ldr r1, [sp, 0x10]
- adds r0, r1, r0
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- beq _080318CE
- ldr r3, _080318EC @ =0x00007fff
- adds r0, r7, 0
- movs r1, 0x10
- movs r2, 0x6
- bl BlendPalette
- lsls r1, r7, 1
- ldr r0, _080318F0 @ =gPlttBufferFaded
- adds r0, r1, r0
- ldr r2, _080318F4 @ =gPlttBufferUnfaded
- adds r1, r2
- ldr r2, _080318F8 @ =REG_BG0CNT
- bl CpuSet
-_080318CE:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080318E0: .4byte 0x02000000
-_080318E4: .4byte SPECIES_CASTFORM
-_080318E8: .4byte gUnknown_02024E84
-_080318EC: .4byte 0x00007fff
-_080318F0: .4byte gPlttBufferFaded
-_080318F4: .4byte gPlttBufferUnfaded
-_080318F8: .4byte REG_BG0CNT
- thumb_func_end sub_8031794
-
- thumb_func_start sub_80318FC
-sub_80318FC: @ 80318FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0xC]
- mov r0, r9
- lsls r1, r0, 2
- ldr r0, _08031938 @ =0x02017800
- adds r2, r1, r0
- ldrh r0, [r2, 0x2]
- cmp r0, 0
- bne _0803193C
- mov r0, r8
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r7, [sp, 0xC]
- b _08031944
- .align 2, 0
-_08031938: .4byte 0x02017800
-_0803193C:
- ldrh r6, [r2, 0x2]
- ldr r0, _080319A0 @ =gUnknown_02024E70
- adds r0, r1, r0
- ldr r7, [r0]
-_08031944:
- mov r0, r8
- movs r1, 0x1
- bl GetMonData
- mov r10, r0
- mov r0, r9
- bl battle_get_per_side_status
- lsls r0, 24
- lsls r5, r6, 3
- ldr r1, _080319A4 @ =gMonBackPicTable
- adds r5, r1
- ldr r1, _080319A8 @ =gMonBackPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _080319AC @ =gUnknown_081FAF4C
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- str r0, [sp]
- str r6, [sp, 0x4]
- str r7, [sp, 0x8]
- adds r0, r5, 0
- bl sub_800D334
- mov r1, r9
- lsls r2, r1, 4
- movs r0, 0x80
- lsls r0, 1
- adds r7, r2, r0
- lsls r1, 2
- ldr r0, _080319B0 @ =0x02017800
- adds r0, r1, r0
- ldrh r0, [r0, 0x2]
- str r1, [sp, 0x10]
- adds r4, r2, 0
- cmp r0, 0
- bne _080319B4
- mov r0, r8
- bl pokemon_get_pal
- b _080319BE
- .align 2, 0
-_080319A0: .4byte gUnknown_02024E70
-_080319A4: .4byte gMonBackPicTable
-_080319A8: .4byte gMonBackPicCoords
-_080319AC: .4byte gUnknown_081FAF4C
-_080319B0: .4byte 0x02017800
-_080319B4:
- adds r0, r6, 0
- mov r1, r10
- ldr r2, [sp, 0xC]
- bl species_and_otid_get_pal
-_080319BE:
- adds r5, r0, 0
- ldr r1, _08031A48 @ =0x02000000
- mov r8, r1
- adds r0, r5, 0
- bl sub_800D238
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0x20
- bl LoadPalette
- adds r1, r4, 0
- adds r1, 0x80
- mov r0, r8
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08031A4C @ =SPECIES_CASTFORM
- cmp r6, r0
- bne _08031A0A
- subs r0, 0x81
- adds r7, r4, r0
- movs r4, 0xB2
- lsls r4, 9
- add r4, r8
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_800D238
- ldr r0, _08031A50 @ =gUnknown_02024E84
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 5
- adds r0, r4
- adds r1, r7, 0
- movs r2, 0x20
- bl LoadPalette
-_08031A0A:
- movs r0, 0xBC
- lsls r0, 9
- add r0, r8
- ldr r1, [sp, 0x10]
- adds r0, r1, r0
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- beq _08031A36
- ldr r3, _08031A54 @ =0x00007fff
- adds r0, r7, 0
- movs r1, 0x10
- movs r2, 0x6
- bl BlendPalette
- lsls r1, r7, 1
- ldr r0, _08031A58 @ =gPlttBufferFaded
- adds r0, r1, r0
- ldr r2, _08031A5C @ =gPlttBufferUnfaded
- adds r1, r2
- ldr r2, _08031A60 @ =REG_BG0CNT
- bl CpuSet
-_08031A36:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08031A48: .4byte 0x02000000
-_08031A4C: .4byte SPECIES_CASTFORM
-_08031A50: .4byte gUnknown_02024E84
-_08031A54: .4byte 0x00007fff
-_08031A58: .4byte gPlttBufferFaded
-_08031A5C: .4byte gPlttBufferUnfaded
-_08031A60: .4byte REG_BG0CNT
- thumb_func_end sub_80318FC
-
- thumb_func_start unref_sub_8031A64
-unref_sub_8031A64: @ 8031A64
- bx lr
- thumb_func_end unref_sub_8031A64
-
- thumb_func_start nullsub_9
-nullsub_9: @ 8031A68
- bx lr
- thumb_func_end nullsub_9
-
- thumb_func_start sub_8031A6C
-sub_8031A6C: @ 8031A6C
- push {r4-r6,lr}
- sub sp, 0x10
- adds r4, r0, 0
- adds r0, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_per_side_status
- lsls r0, 24
- lsls r6, r4, 3
- ldr r5, _08031ADC @ =gTrainerFrontPicTable
- adds r5, r6, r5
- ldr r1, _08031AE0 @ =gTrainerFrontPicCoords
- lsls r4, 2
- adds r4, r1
- ldrb r1, [r4]
- ldrb r2, [r4, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08031AE4 @ =gUnknown_081FAF4C
- lsrs r0, 22
- adds r0, r4
- ldr r4, [r0]
- str r4, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- adds r0, r5, 0
- bl DecompressPicFromTable_2
- str r4, [sp, 0x8]
- ldrh r2, [r5, 0x4]
- ldr r0, _08031AE8 @ =0xffff0000
- ldr r1, [sp, 0xC]
- ands r1, r0
- orrs r1, r2
- str r1, [sp, 0xC]
- ldrh r2, [r5, 0x6]
- lsls r2, 16
- ldr r0, _08031AEC @ =0x0000ffff
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0xC]
- add r0, sp, 0x8
- bl LoadCompressedObjectPic
- ldr r0, _08031AF0 @ =gTrainerFrontPicPaletteTable
- adds r6, r0
- adds r0, r6, 0
- bl LoadCompressedObjectPalette
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08031ADC: .4byte gTrainerFrontPicTable
-_08031AE0: .4byte gTrainerFrontPicCoords
-_08031AE4: .4byte gUnknown_081FAF4C
-_08031AE8: .4byte 0xffff0000
-_08031AEC: .4byte 0x0000ffff
-_08031AF0: .4byte gTrainerFrontPicPaletteTable
- thumb_func_end sub_8031A6C
-
- thumb_func_start sub_8031AF4
-sub_8031AF4: @ 8031AF4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsls r1, r4, 3
- mov r8, r1
- ldr r6, _08031B60 @ =gTrainerBackPicTable
- add r6, r8
- ldr r1, _08031B64 @ =gTrainerBackPicCoords
- lsls r4, 2
- adds r4, r1
- ldrb r1, [r4]
- ldrb r2, [r4, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08031B68 @ =gUnknown_081FAF4C
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- adds r0, r6, 0
- bl DecompressPicFromTable_2
- ldr r0, _08031B6C @ =gTrainerBackPicPaletteTable
- add r8, r0
- mov r1, r8
- ldr r0, [r1]
- lsls r5, 20
- movs r1, 0x80
- lsls r1, 17
- adds r5, r1
- lsrs r5, 16
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08031B60: .4byte gTrainerBackPicTable
-_08031B64: .4byte gTrainerBackPicCoords
-_08031B68: .4byte gUnknown_081FAF4C
-_08031B6C: .4byte gTrainerBackPicPaletteTable
- thumb_func_end sub_8031AF4
-
- thumb_func_start nullsub_10
-nullsub_10: @ 8031B70
- bx lr
- thumb_func_end nullsub_10
-
- thumb_func_start sub_8031B74
-sub_8031B74: @ 8031B74
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- ldr r0, _08031B98 @ =gTrainerFrontPicPaletteTable
- lsrs r4, 13
- adds r0, r4, r0
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- ldr r0, _08031B9C @ =gTrainerFrontPicTable
- adds r4, r0
- ldrh r0, [r4, 0x6]
- bl FreeSpriteTilesByTag
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08031B98: .4byte gTrainerFrontPicPaletteTable
-_08031B9C: .4byte gTrainerFrontPicTable
- thumb_func_end sub_8031B74
-
- thumb_func_start unref_sub_8031BA0
-unref_sub_8031BA0: @ 8031BA0
- push {r4-r7,lr}
- ldr r4, _08031BCC @ =gUnknown_0820A4D4
- adds r0, r4, 0
- bl LoadSpritePalette
- adds r4, 0x8
- adds r0, r4, 0
- bl LoadSpritePalette
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _08031BD8
- ldr r0, _08031BD0 @ =gUnknown_0820A47C
- bl LoadCompressedObjectPic
- ldr r0, _08031BD4 @ =gUnknown_0820A484
- bl LoadCompressedObjectPic
- movs r5, 0x2
- b _08031BFA
- .align 2, 0
-_08031BCC: .4byte gUnknown_0820A4D4
-_08031BD0: .4byte gUnknown_0820A47C
-_08031BD4: .4byte gUnknown_0820A484
-_08031BD8:
- ldr r4, _08031C20 @ =gUnknown_0820A48C
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- adds r4, 0x8
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- ldr r4, _08031C24 @ =gUnknown_0820A49C
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- adds r4, 0x8
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- movs r5, 0x4
-_08031BFA:
- movs r4, 0
- cmp r4, r5
- bcs _08031C1A
- ldr r7, _08031C28 @ =gUnknown_02024A72
- ldr r6, _08031C2C @ =gUnknown_0820A4B4
-_08031C04:
- adds r0, r4, r7
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r6
- bl LoadCompressedObjectPic
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _08031C04
-_08031C1A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08031C20: .4byte gUnknown_0820A48C
-_08031C24: .4byte gUnknown_0820A49C
-_08031C28: .4byte gUnknown_02024A72
-_08031C2C: .4byte gUnknown_0820A4B4
- thumb_func_end unref_sub_8031BA0
-
- thumb_func_start sub_8031C30
-sub_8031C30: @ 8031C30
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- movs r6, 0
- cmp r4, 0
- bne _08031C40
- b _08031D52
-_08031C40:
- cmp r4, 0x1
- bne _08031C5C
- ldr r4, _08031C58 @ =gUnknown_0820A4D4
- adds r0, r4, 0
- bl LoadSpritePalette
- adds r4, 0x8
- adds r0, r4, 0
- bl LoadSpritePalette
- b _08031D52
- .align 2, 0
-_08031C58: .4byte gUnknown_0820A4D4
-_08031C5C:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _08031CC4
- cmp r4, 0x2
- bne _08031C94
- ldr r0, _08031C80 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08031C88
- ldr r0, _08031C84 @ =gUnknown_0820A4AC
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031C80: .4byte gUnknown_020239F8
-_08031C84: .4byte gUnknown_0820A4AC
-_08031C88:
- ldr r0, _08031C90 @ =gUnknown_0820A47C
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031C90: .4byte gUnknown_0820A47C
-_08031C94:
- cmp r4, 0x3
- bne _08031CA4
- ldr r0, _08031CA0 @ =gUnknown_0820A484
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031CA0: .4byte gUnknown_0820A484
-_08031CA4:
- cmp r4, 0x4
- bne _08031CB4
- ldr r0, _08031CB0 @ =gUnknown_02024A72
- ldrb r0, [r0]
- b _08031D3C
- .align 2, 0
-_08031CB0: .4byte gUnknown_02024A72
-_08031CB4:
- cmp r4, 0x5
- bne _08031D50
- ldr r0, _08031CC0 @ =gUnknown_02024A72
- ldrb r0, [r0, 0x1]
- b _08031D3C
- .align 2, 0
-_08031CC0: .4byte gUnknown_02024A72
-_08031CC4:
- cmp r4, 0x2
- bne _08031CD4
- ldr r0, _08031CD0 @ =gUnknown_0820A48C
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031CD0: .4byte gUnknown_0820A48C
-_08031CD4:
- cmp r4, 0x3
- bne _08031CE4
- ldr r0, _08031CE0 @ =gUnknown_0820A494
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031CE0: .4byte gUnknown_0820A494
-_08031CE4:
- cmp r4, 0x4
- bne _08031CF4
- ldr r0, _08031CF0 @ =gUnknown_0820A49C
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031CF0: .4byte gUnknown_0820A49C
-_08031CF4:
- cmp r4, 0x5
- bne _08031D04
- ldr r0, _08031D00 @ =gUnknown_0820A4A4
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031D00: .4byte gUnknown_0820A4A4
-_08031D04:
- cmp r4, 0x6
- bne _08031D14
- ldr r0, _08031D10 @ =gUnknown_02024A72
- ldrb r0, [r0]
- b _08031D3C
- .align 2, 0
-_08031D10: .4byte gUnknown_02024A72
-_08031D14:
- cmp r4, 0x7
- bne _08031D24
- ldr r0, _08031D20 @ =gUnknown_02024A72
- ldrb r0, [r0, 0x1]
- b _08031D3C
- .align 2, 0
-_08031D20: .4byte gUnknown_02024A72
-_08031D24:
- cmp r4, 0x8
- bne _08031D34
- ldr r0, _08031D30 @ =gUnknown_02024A72
- ldrb r0, [r0, 0x2]
- b _08031D3C
- .align 2, 0
-_08031D30: .4byte gUnknown_02024A72
-_08031D34:
- cmp r5, 0x9
- bne _08031D50
- ldr r0, _08031D48 @ =gUnknown_02024A72
- ldrb r0, [r0, 0x3]
-_08031D3C:
- lsls r0, 3
- ldr r1, _08031D4C @ =gUnknown_0820A4B4
- adds r0, r1
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031D48: .4byte gUnknown_02024A72
-_08031D4C: .4byte gUnknown_0820A4B4
-_08031D50:
- movs r6, 0x1
-_08031D52:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8031C30
-
- thumb_func_start load_gfxc_health_bar
-load_gfxc_health_bar: @ 8031D5C
- push {lr}
- ldr r0, _08031D6C @ =gUnknown_08D09C48
- movs r1, 0x80
- lsls r1, 18
- bl sub_800D238
- pop {r0}
- bx r0
- .align 2, 0
-_08031D6C: .4byte gUnknown_08D09C48
- thumb_func_end load_gfxc_health_bar
-
- thumb_func_start battle_load_something
-battle_load_something: @ 8031D70
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r6, 0
- ldrb r0, [r5]
- cmp r0, 0x6
- bls _08031D80
- b _08031EDE
-_08031D80:
- lsls r0, 2
- ldr r1, _08031D8C @ =_08031D90
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08031D8C: .4byte _08031D90
- .align 2, 0
-_08031D90:
- .4byte _08031DAC
- .4byte _08031DB2
- .4byte _08031EBC
- .4byte _08031DC8
- .4byte _08031DF8
- .4byte _08031E34
- .4byte _08031ED4
-_08031DAC:
- bl sub_8031F0C
- b _08031EBC
-_08031DB2:
- ldrb r0, [r4]
- bl sub_8031C30
- lsls r0, 24
- cmp r0, 0
- beq _08031DC0
- b _08031EB8
-_08031DC0:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08031EDE
-_08031DC8:
- ldr r0, _08031DE0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08031DE4
- ldrb r0, [r4]
- cmp r0, 0
- bne _08031DE4
- bl battle_make_oam_safari_battle
- b _08031DEA
- .align 2, 0
-_08031DE0: .4byte gUnknown_020239F8
-_08031DE4:
- ldrb r0, [r4]
- bl battle_make_oam_normal_battle
-_08031DEA:
- ldr r2, _08031DF4 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r1, r2
- strb r0, [r1]
- b _08031EA6
- .align 2, 0
-_08031DF4: .4byte gUnknown_03004340
-_08031DF8:
- ldrb r0, [r4]
- bl sub_8043F44
- ldr r0, _08031E18 @ =gUnknown_02024A72
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0x1
- bhi _08031E20
- ldr r0, _08031E1C @ =gUnknown_03004340
- adds r0, r1, r0
- ldrb r0, [r0]
- movs r1, 0
- bl nullsub_11
- b _08031EA6
- .align 2, 0
-_08031E18: .4byte gUnknown_02024A72
-_08031E1C: .4byte gUnknown_03004340
-_08031E20:
- ldr r0, _08031E30 @ =gUnknown_03004340
- adds r0, r1, r0
- ldrb r0, [r0]
- movs r1, 0x1
- bl nullsub_11
- b _08031EA6
- .align 2, 0
-_08031E30: .4byte gUnknown_03004340
-_08031E34:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08031E7C
- ldr r0, _08031E6C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08031E9A
- ldr r0, _08031E70 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _08031E74 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08031E78 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- b _08031E9A
- .align 2, 0
-_08031E6C: .4byte gUnknown_020239F8
-_08031E70: .4byte gUnknown_03004340
-_08031E74: .4byte gUnknown_02024A6A
-_08031E78: .4byte gPlayerParty
-_08031E7C:
- ldr r0, _08031EC4 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _08031EC8 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08031ECC @ =gEnemyParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
-_08031E9A:
- ldr r1, _08031EC4 @ =gUnknown_03004340
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
-_08031EA6:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08031ED0 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _08031EDE
-_08031EB8:
- movs r0, 0
- strb r0, [r4]
-_08031EBC:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _08031EDE
- .align 2, 0
-_08031EC4: .4byte gUnknown_03004340
-_08031EC8: .4byte gUnknown_02024A6A
-_08031ECC: .4byte gEnemyParty
-_08031ED0: .4byte gUnknown_02024A68
-_08031ED4:
- bl sub_80327CC
- bl sub_8094958
- movs r6, 0x1
-_08031EDE:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end battle_load_something
-
- thumb_func_start sub_8031EE8
-sub_8031EE8: @ 8031EE8
- push {r4,lr}
- ldr r4, _08031F08 @ =0x02017810
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x30
- bl memset
- adds r4, 0x30
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x10
- bl memset
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08031F08: .4byte 0x02017810
- thumb_func_end sub_8031EE8
-
- thumb_func_start sub_8031F0C
-sub_8031F0C: @ 8031F0C
- push {lr}
- bl sub_8031EE8
- ldr r0, _08031F20 @ =0x02017800
- movs r1, 0
- movs r2, 0x10
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_08031F20: .4byte 0x02017800
- thumb_func_end sub_8031F0C
-
- thumb_func_start sub_8031F24
-sub_8031F24: @ 8031F24
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r4, 0
- ldr r5, _08031F78 @ =gUnknown_02024A68
- ldrb r0, [r5]
- cmp r4, r0
- bge _08031F6E
- ldr r0, _08031F7C @ =gSprites
- mov r8, r0
- movs r7, 0x1
- movs r0, 0x2
- negs r0, r0
- mov r12, r0
- ldr r6, _08031F80 @ =gUnknown_02024BE0
- ldr r3, _08031F84 @ =0x02017800
-_08031F44:
- adds r0, r4, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 31
- ands r1, r7
- ldrb r2, [r3]
- mov r0, r12
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- adds r3, 0x4
- adds r4, 0x1
- ldrb r0, [r5]
- cmp r4, r0
- blt _08031F44
-_08031F6E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08031F78: .4byte gUnknown_02024A68
-_08031F7C: .4byte gSprites
-_08031F80: .4byte gUnknown_02024BE0
-_08031F84: .4byte 0x02017800
- thumb_func_end sub_8031F24
-
- thumb_func_start sub_8031F88
-sub_8031F88: @ 8031F88
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r0, 2
- ldr r1, _08031FB8 @ =0x02017800
- adds r3, r1
- ldr r2, _08031FBC @ =gSprites
- ldr r1, _08031FC0 @ =gUnknown_02024BE0
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 31
- ldrb r2, [r3]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bx lr
- .align 2, 0
-_08031FB8: .4byte 0x02017800
-_08031FBC: .4byte gSprites
-_08031FC0: .4byte gUnknown_02024BE0
- thumb_func_end sub_8031F88
-
- thumb_func_start sub_8031FC4
-sub_8031FC4: @ 8031FC4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0xC]
- lsls r2, 24
- cmp r2, 0
- beq _08032088
- ldr r0, _08032064 @ =gUnknown_02024BE0
- mov r1, r8
- adds r6, r1, r0
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r7, _08032068 @ =gSprites
- adds r0, r7
- ldr r4, _0803206C @ =0x02017840
- ldrb r1, [r4]
- bl StartSpriteAnim
- mov r2, r8
- lsls r0, r2, 20
- movs r5, 0x80
- lsls r5, 17
- adds r0, r5
- lsrs r5, r0, 16
- ldrh r0, [r4]
- lsls r0, 5
- ldr r2, _08032070 @ =0xffffebc0
- adds r1, r4, r2
- adds r0, r1
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08032074 @ =gUnknown_02024E84
- add r0, r8
- ldrh r1, [r4]
- strb r1, [r0]
- mov r1, r8
- lsls r0, r1, 2
- subs r4, 0x40
- adds r0, r4
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- beq _0803204C
- ldr r3, _08032078 @ =0x00007fff
- adds r0, r5, 0
- movs r1, 0x10
- movs r2, 0x6
- bl BlendPalette
- lsls r1, r5, 1
- ldr r0, _0803207C @ =gPlttBufferFaded
- adds r0, r1, r0
- ldr r2, _08032080 @ =gPlttBufferUnfaded
- adds r1, r2
- ldr r2, _08032084 @ =REG_BG0CNT
- bl CpuSet
-_0803204C:
- mov r0, r8
- bl sub_8077F68
- ldrb r2, [r6]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r7
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x22]
- b _080322F6
- .align 2, 0
-_08032064: .4byte gUnknown_02024BE0
-_08032068: .4byte gSprites
-_0803206C: .4byte 0x02017840
-_08032070: .4byte 0xffffebc0
-_08032074: .4byte gUnknown_02024E84
-_08032078: .4byte 0x00007fff
-_0803207C: .4byte gPlttBufferFaded
-_08032080: .4byte gPlttBufferUnfaded
-_08032084: .4byte REG_BG0CNT
-_08032088:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080320D0
- movs r2, 0
- mov r10, r2
- ldr r5, _080320C0 @ =0x02019348
- ldrh r7, [r5, 0x2]
- ldr r4, [r5, 0x8]
- mov r9, r4
- ldr r6, [r5, 0xC]
- lsls r0, r7, 3
- ldr r1, _080320C4 @ =gMonBackPicTable
- adds r0, r1
- ldr r1, _080320C8 @ =gMonBackPicCoords
- lsls r2, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _080320CC @ =gUnknown_081FAF4C
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- ldr r4, [r5, 0x10]
- b _08032184
- .align 2, 0
-_080320C0: .4byte 0x02019348
-_080320C4: .4byte gMonBackPicTable
-_080320C8: .4byte gMonBackPicCoords
-_080320CC: .4byte gUnknown_081FAF4C
-_080320D0:
- mov r0, r8
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, [sp, 0xC]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08032104
- ldr r1, _080320FC @ =gUnknown_02024A6A
- ldr r5, [sp, 0xC]
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08032100 @ =gEnemyParty
- b _08032114
- .align 2, 0
-_080320FC: .4byte gUnknown_02024A6A
-_08032100: .4byte gEnemyParty
-_08032104:
- ldr r1, _0803218C @ =gUnknown_02024A6A
- ldr r2, [sp, 0xC]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08032190 @ =gPlayerParty
-_08032114:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- mov r0, r8
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080321A4
- ldr r0, _0803218C @ =gUnknown_02024A6A
- mov r5, r8
- lsls r4, r5, 1
- adds r4, r0
- ldrh r0, [r4]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08032190 @ =gPlayerParty
- adds r0, r5
- movs r1, 0
- bl GetMonData
- mov r9, r0
- ldrh r0, [r4]
- muls r0, r6
- adds r0, r5
- movs r1, 0x1
- bl GetMonData
- adds r6, r0, 0
- lsls r0, r7, 3
- ldr r1, _08032194 @ =gMonBackPicTable
- adds r0, r1
- ldr r1, _08032198 @ =gMonBackPicCoords
- lsls r2, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _0803219C @ =gUnknown_081FAF4C
- mov r12, r4
- mov r5, r10
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- ldr r4, _080321A0 @ =gUnknown_02024E70
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
-_08032184:
- str r4, [sp, 0x8]
- bl sub_800D334
- b _08032202
- .align 2, 0
-_0803218C: .4byte gUnknown_02024A6A
-_08032190: .4byte gPlayerParty
-_08032194: .4byte gMonBackPicTable
-_08032198: .4byte gMonBackPicCoords
-_0803219C: .4byte gUnknown_081FAF4C
-_080321A0: .4byte gUnknown_02024E70
-_080321A4:
- ldr r0, _08032308 @ =gUnknown_02024A6A
- mov r1, r8
- lsls r4, r1, 1
- adds r4, r0
- ldrh r0, [r4]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _0803230C @ =gEnemyParty
- adds r0, r5
- movs r1, 0
- bl GetMonData
- mov r9, r0
- ldrh r0, [r4]
- muls r0, r6
- adds r0, r5
- movs r1, 0x1
- bl GetMonData
- adds r6, r0, 0
- lsls r0, r7, 3
- ldr r1, _08032310 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _08032314 @ =gMonFrontPicCoords
- lsls r2, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08032318 @ =gUnknown_081FAF4C
- mov r12, r4
- mov r5, r10
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- ldr r4, _0803231C @ =gUnknown_02024E70
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp, 0x8]
- bl sub_800D334
-_08032202:
- ldr r1, _08032318 @ =gUnknown_081FAF4C
- mov r2, r10
- lsls r0, r2, 2
- adds r0, r1
- ldr r2, [r0]
- ldr r0, _08032320 @ =gUnknown_02024BE0
- add r0, r8
- mov r10, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08032324 @ =gSprites
- adds r0, r4
- ldrh r0, [r0, 0x4]
- lsls r0, 22
- lsrs r0, 17
- ldr r1, _08032328 @ =0x06010000
- adds r0, r1
- ldr r1, _0803232C @ =0x040000d4
- str r2, [r1]
- str r0, [r1, 0x4]
- ldr r0, _08032330 @ =0x84000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r5, r8
- lsls r0, r5, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r5, r0, 16
- adds r0, r7, 0
- adds r1, r6, 0
- mov r2, r9
- bl species_and_otid_get_pal
- adds r6, r0, 0
- ldr r2, _08032334 @ =0x02000000
- mov r9, r2
- mov r1, r9
- bl sub_800D238
- mov r0, r9
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08032338 @ =SPECIES_CASTFORM
- cmp r7, r0
- bne _08032288
- movs r4, 0xB2
- lsls r4, 9
- add r4, r9
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_800D238
- ldr r0, _0803233C @ =gUnknown_02024E84
- ldr r1, [sp, 0xC]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 5
- adds r0, r4
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
-_08032288:
- ldr r3, _08032340 @ =0x00007fff
- adds r0, r5, 0
- movs r1, 0x10
- movs r2, 0x6
- bl BlendPalette
- lsls r1, r5, 1
- ldr r0, _08032344 @ =gPlttBufferFaded
- adds r0, r1, r0
- ldr r2, _08032348 @ =gPlttBufferUnfaded
- adds r1, r2
- ldr r2, _0803234C @ =REG_BG0CNT
- bl CpuSet
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080322C8
- mov r2, r8
- lsls r0, r2, 2
- movs r1, 0xBC
- lsls r1, 9
- add r1, r9
- adds r0, r1
- strh r7, [r0, 0x2]
- ldr r0, _0803233C @ =gUnknown_02024E84
- adds r1, r2, r0
- ldr r4, [sp, 0xC]
- adds r0, r4, r0
- ldrb r0, [r0]
- strb r0, [r1]
-_080322C8:
- mov r0, r8
- bl sub_8077F68
- mov r5, r10
- ldrb r2, [r5]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r2, _08032324 @ =gSprites
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x22]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0803233C @ =gUnknown_02024E84
- add r1, r8
- ldrb r1, [r1]
- bl StartSpriteAnim
-_080322F6:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08032308: .4byte gUnknown_02024A6A
-_0803230C: .4byte gEnemyParty
-_08032310: .4byte gMonFrontPicTable
-_08032314: .4byte gMonFrontPicCoords
-_08032318: .4byte gUnknown_081FAF4C
-_0803231C: .4byte gUnknown_02024E70
-_08032320: .4byte gUnknown_02024BE0
-_08032324: .4byte gSprites
-_08032328: .4byte 0x06010000
-_0803232C: .4byte 0x040000d4
-_08032330: .4byte 0x84000200
-_08032334: .4byte 0x02000000
-_08032338: .4byte SPECIES_CASTFORM
-_0803233C: .4byte gUnknown_02024E84
-_08032340: .4byte 0x00007fff
-_08032344: .4byte gPlttBufferFaded
-_08032348: .4byte gPlttBufferUnfaded
-_0803234C: .4byte REG_BG0CNT
- thumb_func_end sub_8031FC4
-
- thumb_func_start sub_8032350
-sub_8032350: @ 8032350
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- lsls r1, 24
- cmp r1, 0
- bne _08032408
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0803236C
- movs r4, 0
- b _08032376
-_0803236C:
- adds r0, r4, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r4, r0, 24
-_08032376:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08032388
- ldr r0, _08032384 @ =gSubstituteDollTilemap
- b _08032396
- .align 2, 0
-_08032384: .4byte gSubstituteDollTilemap
-_08032388:
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080323AC
- ldr r0, _080323A4 @ =gSubstituteDollGfx
-_08032396:
- ldr r1, _080323A8 @ =gUnknown_081FAF4C
- lsls r4, 2
- adds r1, r4, r1
- ldr r1, [r1]
- bl LZDecompressVram
- b _080323BA
- .align 2, 0
-_080323A4: .4byte gSubstituteDollGfx
-_080323A8: .4byte gUnknown_081FAF4C
-_080323AC:
- ldr r0, _080323F4 @ =gSubstituteDollTilemap
- ldr r1, _080323F8 @ =gUnknown_081FAF4C
- lsls r4, 2
- adds r1, r4, r1
- ldr r1, [r1]
- bl LZDecompressVram
-_080323BA:
- lsls r7, r5, 4
- ldr r0, _080323FC @ =gSubstituteDollPal
- mov r12, r0
- ldr r0, _080323F8 @ =gUnknown_081FAF4C
- adds r0, r4, r0
- ldr r4, [r0]
- ldr r3, _08032400 @ =0x040000d4
- ldr r6, _08032404 @ =0x84000200
- movs r0, 0x80
- lsls r0, 4
- adds r2, r4, r0
- adds r5, r0, 0
- movs r1, 0x2
-_080323D4:
- str r4, [r3]
- str r2, [r3, 0x4]
- str r6, [r3, 0x8]
- ldr r0, [r3, 0x8]
- adds r2, r5
- subs r1, 0x1
- cmp r1, 0
- bge _080323D4
- movs r0, 0x80
- lsls r0, 1
- adds r1, r7, r0
- mov r0, r12
- movs r2, 0x20
- bl LoadCompressedPalette
- b _08032456
- .align 2, 0
-_080323F4: .4byte gSubstituteDollTilemap
-_080323F8: .4byte gUnknown_081FAF4C
-_080323FC: .4byte gSubstituteDollPal
-_08032400: .4byte 0x040000d4
-_08032404: .4byte 0x84000200
-_08032408:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08032456
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08032440
- ldr r1, _08032438 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0803243C @ =gEnemyParty
- adds r0, r1
- adds r1, r4, 0
- bl sub_8031794
- b _08032456
- .align 2, 0
-_08032438: .4byte gUnknown_02024A6A
-_0803243C: .4byte gEnemyParty
-_08032440:
- ldr r1, _0803245C @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08032460 @ =gPlayerParty
- adds r0, r1
- adds r1, r5, 0
- bl sub_80318FC
-_08032456:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803245C: .4byte gUnknown_02024A6A
-_08032460: .4byte gPlayerParty
- thumb_func_end sub_8032350
-
- thumb_func_start refresh_graphics_maybe
-refresh_graphics_maybe: @ 8032464
- push {r4-r6,lr}
- adds r5, r1, 0
- adds r4, r2, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_8032350
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _080324A0 @ =gSprites
- adds r4, r0, r1
- ldr r0, _080324A4 @ =gUnknown_02024E84
- adds r0, r6, r0
- ldrb r1, [r0]
- adds r0, r4, 0
- bl StartSpriteAnim
- cmp r5, 0
- bne _080324A8
- adds r0, r6, 0
- bl sub_8077F7C
- b _080324AE
- .align 2, 0
-_080324A0: .4byte gSprites
-_080324A4: .4byte gUnknown_02024E84
-_080324A8:
- adds r0, r6, 0
- bl sub_8077F68
-_080324AE:
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end refresh_graphics_maybe
-
- thumb_func_start sub_80324BC
-sub_80324BC: @ 80324BC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0xA4
- bne _080324D8
- lsls r2, r0, 2
- ldr r0, _080324DC @ =0x02017800
- adds r2, r0
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080324D8:
- pop {r0}
- bx r0
- .align 2, 0
-_080324DC: .4byte 0x02017800
- thumb_func_end sub_80324BC
-
- thumb_func_start sub_80324E0
-sub_80324E0: @ 80324E0
- lsls r0, 24
- lsrs r0, 22
- ldr r1, _080324F4 @ =0x02017800
- adds r0, r1
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080324F4: .4byte 0x02017800
- thumb_func_end sub_80324E0
-
- thumb_func_start sub_80324F8
-sub_80324F8: @ 80324F8
- push {r4-r7,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- adds r7, r6, 0
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- adds r1, r0, 0
- lsls r4, 16
- asrs r4, 16
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_8046200
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08032568
- lsls r0, r6, 2
- ldr r3, _08032564 @ =0x02017800
- adds r4, r0, r3
- ldrb r1, [r4]
- movs r5, 0x2
- movs r2, 0x2
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080325B2
- adds r0, r6, 0
- eors r0, r5
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0803255A
- movs r0, 0x5A
- bl PlaySE
-_0803255A:
- ldrb r0, [r4]
- orrs r0, r5
- strb r0, [r4]
- b _080325B2
- .align 2, 0
-_08032564: .4byte 0x02017800
-_08032568:
- lsls r1, r6, 2
- ldr r4, _0803258C @ =0x02017800
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _08032590
- movs r0, 0x5A
- bl m4aSongNumStop
- b _080325B2
- .align 2, 0
-_0803258C: .4byte 0x02017800
-_08032590:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080325B2
- movs r0, 0x2
- eors r7, r0
- lsls r0, r7, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080325B2
- movs r0, 0x5A
- bl m4aSongNumStop
-_080325B2:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80324F8
-
- thumb_func_start sub_80325B8
-sub_80325B8: @ 80325B8
- push {r4-r6,lr}
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, r4, 2
- ldr r6, _08032600 @ =0x02017800
- adds r1, r6
- ldrb r2, [r1]
- movs r5, 0x3
- negs r5, r5
- adds r0, r5, 0
- ands r0, r2
- strb r0, [r1]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080325F2
- movs r0, 0x2
- adds r1, r4, 0
- eors r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1]
- adds r0, r5, 0
- ands r0, r2
- strb r0, [r1]
-_080325F2:
- movs r0, 0x5A
- bl m4aSongNumStop
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08032600: .4byte 0x02017800
- thumb_func_end sub_80325B8
-
- thumb_func_start unref_sub_8032604
-unref_sub_8032604: @ 8032604
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- adds r1, r0, 0
- lsls r4, 16
- asrs r4, 16
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_8046200
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8032604
-
- thumb_func_start sub_8032638
-sub_8032638: @ 8032638
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _080326DC @ =gMain
- ldr r1, _080326E0 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080326CE
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0x2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r5, _080326E4 @ =gUnknown_02024A6A
- mov r1, r8
- lsls r0, r1, 1
- adds r0, r5
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r1, r9
- lsls r0, r1, 1
- adds r0, r5
- ldrb r0, [r0]
- bl pokemon_order_func
- lsls r0, 24
- lsrs r5, r0, 24
- movs r7, 0x64
- adds r0, r4, 0
- muls r0, r7
- ldr r6, _080326E8 @ =gPlayerParty
- adds r4, r0, r6
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080326AA
- adds r0, r4, 0
- mov r1, r8
- bl sub_80324F8
-_080326AA:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080326CE
- adds r0, r5, 0
- muls r0, r7
- adds r4, r0, r6
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080326CE
- adds r0, r4, 0
- mov r1, r9
- bl sub_80324F8
-_080326CE:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080326DC: .4byte gMain
-_080326E0: .4byte 0x0000043d
-_080326E4: .4byte gUnknown_02024A6A
-_080326E8: .4byte gPlayerParty
- thumb_func_end sub_8032638
-
- thumb_func_start sub_80326EC
-sub_80326EC: @ 80326EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r5, 0
- ldr r0, _08032778 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- bge _080327B4
- movs r0, 0x3
- mov r10, r8
- mov r1, r10
- ands r1, r0
- mov r10, r1
- movs r6, 0
- movs r2, 0x3F
- negs r2, r2
- mov r9, r2
-_08032718:
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _080327A8
- ldr r4, _0803277C @ =gSprites
- ldr r0, _08032780 @ =gUnknown_02024BE0
- adds r3, r5, r0
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x1]
- movs r7, 0x4
- negs r7, r7
- adds r2, r7, 0
- ands r1, r2
- mov r2, r10
- orrs r1, r2
- strb r1, [r0, 0x1]
- mov r7, r8
- cmp r7, 0
- bne _08032788
- ldr r2, _08032784 @ =0x02017810
- adds r2, r6, r2
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- strb r0, [r2, 0x6]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x3]
- mov r2, r9
- ands r1, r2
- strb r1, [r0, 0x3]
- b _080327A8
- .align 2, 0
-_08032778: .4byte gUnknown_02024A68
-_0803277C: .4byte gSprites
-_08032780: .4byte gUnknown_02024BE0
-_08032784: .4byte 0x02017810
-_08032788:
- ldrb r0, [r3]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- ldr r0, _080327C4 @ =0x02017810
- adds r0, r6, r0
- ldrb r1, [r0, 0x6]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r0, [r2, 0x3]
- mov r3, r9
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x3]
-_080327A8:
- adds r6, 0xC
- adds r5, 0x1
- ldr r0, _080327C8 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- blt _08032718
-_080327B4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080327C4: .4byte 0x02017810
-_080327C8: .4byte gUnknown_02024A68
- thumb_func_end sub_80326EC
-
- thumb_func_start sub_80327CC
-sub_80327CC: @ 80327CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08032894 @ =gUnknown_081FAF24
- bl LoadCompressedObjectPic
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _08032898 @ =gSpriteTemplate_81FAF34
- mov r8, r0
- adds r0, r5, 0
- movs r1, 0
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8077ABC
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 8
- movs r0, 0x80
- lsls r0, 14
- adds r2, r0
- asrs r2, 16
- mov r0, r8
- adds r1, r4, 0
- movs r3, 0xC8
- bl CreateSprite
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- ldr r6, _0803289C @ =0x02017810
- adds r1, r6
- strb r0, [r1, 0x7]
- ldr r7, _080328A0 @ =gSprites
- ldrb r1, [r1, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r5, [r0, 0x2E]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0803288A
- movs r0, 0x3
- bl battle_get_side_with_given_state
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- movs r1, 0
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8077ABC
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 8
- movs r0, 0x80
- lsls r0, 14
- adds r2, r0
- asrs r2, 16
- mov r0, r8
- adds r1, r4, 0
- movs r3, 0xC8
- bl CreateSprite
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r6
- strb r0, [r1, 0x7]
- ldrb r1, [r1, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r5, [r0, 0x2E]
-_0803288A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08032894: .4byte gUnknown_081FAF24
-_08032898: .4byte gSpriteTemplate_81FAF34
-_0803289C: .4byte 0x02017810
-_080328A0: .4byte gSprites
- thumb_func_end sub_80327CC
-
- thumb_func_start sub_80328A4
-sub_80328A4: @ 80328A4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- movs r0, 0
- mov r8, r0
- ldrh r0, [r5, 0x2E]
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080328E8 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080328EC @ =gSprites
- adds r7, r0, r1
- adds r6, r7, 0
- adds r6, 0x3E
- ldrb r1, [r6]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080328E0
- adds r0, r4, 0
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- bne _080328F4
-_080328E0:
- ldr r0, _080328F0 @ =sub_8032978
- str r0, [r5, 0x1C]
- b _08032964
- .align 2, 0
-_080328E8: .4byte gUnknown_02024BE0
-_080328EC: .4byte gSprites
-_080328F0: .4byte sub_8032978
-_080328F4:
- ldr r0, _08032910 @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08032906
- ldrb r1, [r6]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08032918
-_08032906:
- movs r0, 0x1
- mov r8, r0
- lsls r4, 2
- ldr r6, _08032914 @ =0x02017800
- b _08032938
- .align 2, 0
-_08032910: .4byte gUnknown_0202F7B1
-_08032914: .4byte 0x02017800
-_08032918:
- lsls r0, r4, 2
- ldr r1, _08032970 @ =0x02017800
- adds r3, r0, r1
- ldrh r2, [r3, 0x2]
- adds r4, r0, 0
- adds r6, r1, 0
- cmp r2, 0
- beq _08032938
- ldr r0, _08032974 @ =gEnemyMonElevation
- adds r1, r2, 0
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _08032938
- movs r0, 0x1
- mov r8, r0
-_08032938:
- adds r0, r4, r6
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08032948
- movs r0, 0x1
- mov r8, r0
-_08032948:
- 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, 0x5
- negs r0, r0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
-_08032964:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08032970: .4byte 0x02017800
-_08032974: .4byte gEnemyMonElevation
- thumb_func_end sub_80328A4
-
- thumb_func_start sub_8032978
-sub_8032978: @ 8032978
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- bx lr
- thumb_func_end sub_8032978
-
- thumb_func_start sub_8032984
-sub_8032984: @ 8032984
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- lsls r1, 16
- lsrs r5, r1, 16
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080329FA
- lsls r0, r4, 2
- ldr r3, _080329D0 @ =0x02017800
- adds r1, r0, r3
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- beq _080329AA
- adds r5, r0, 0
-_080329AA:
- ldr r0, _080329D4 @ =gEnemyMonElevation
- adds r0, r5, r0
- ldrb r0, [r0]
- cmp r0, 0
- beq _080329E0
- ldr r2, _080329D8 @ =gSprites
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r3, r0
- ldrb r1, [r0, 0x17]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080329DC @ =sub_80328A4
- b _080329F8
- .align 2, 0
-_080329D0: .4byte 0x02017800
-_080329D4: .4byte gEnemyMonElevation
-_080329D8: .4byte gSprites
-_080329DC: .4byte sub_80328A4
-_080329E0:
- ldr r2, _08032A00 @ =gSprites
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r3, r0
- ldrb r1, [r0, 0x17]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _08032A04 @ =sub_8032978
-_080329F8:
- str r1, [r0]
-_080329FA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08032A00: .4byte gSprites
-_08032A04: .4byte sub_8032978
- thumb_func_end sub_8032984
-
- thumb_func_start sub_8032A08
-sub_8032A08: @ 8032A08
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08032A2C @ =gSprites
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _08032A30 @ =0x02017810
- adds r1, r0
- ldrb r1, [r1, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _08032A34 @ =sub_8032978
- str r1, [r0]
- bx lr
- .align 2, 0
-_08032A2C: .4byte gSprites
-_08032A30: .4byte 0x02017810
-_08032A34: .4byte sub_8032978
- thumb_func_end sub_8032A08
-
- thumb_func_start sub_8032A38
-sub_8032A38: @ 8032A38
- push {r4-r6,lr}
- ldr r3, _08032AA4 @ =0x06000240
- movs r0, 0
- movs r6, 0xF0
- lsls r6, 8
-_08032A42:
- adds r5, r0, 0x1
- movs r4, 0xF
-_08032A46:
- ldrh r1, [r3]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _08032A56
- adds r0, r6, 0
- orrs r0, r1
- strh r0, [r3]
-_08032A56:
- ldrh r1, [r3]
- movs r2, 0xF0
- lsls r2, 4
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08032A6A
- adds r0, r2, 0
- orrs r0, r1
- strh r0, [r3]
-_08032A6A:
- ldrh r1, [r3]
- movs r2, 0xF0
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- bne _08032A7C
- adds r0, r1, 0
- orrs r0, r2
- strh r0, [r3]
-_08032A7C:
- ldrh r1, [r3]
- movs r2, 0xF
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _08032A8E
- adds r0, r1, 0
- orrs r0, r2
- strh r0, [r3]
-_08032A8E:
- adds r3, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _08032A46
- adds r0, r5, 0
- cmp r0, 0x8
- ble _08032A42
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08032AA4: .4byte 0x06000240
- thumb_func_end sub_8032A38
-
- thumb_func_start sub_8032AA8
-sub_8032AA8: @ 8032AA8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsls r2, r4, 2
- ldr r0, _08032AD4 @ =0x02017800
- adds r2, r0
- movs r3, 0
- movs r0, 0
- strh r0, [r2, 0x2]
- ldr r0, _08032AD8 @ =gUnknown_02024E84
- adds r0, r4, r0
- strb r3, [r0]
- cmp r1, 0
- bne _08032ACC
- adds r0, r4, 0
- bl sub_80324E0
-_08032ACC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08032AD4: .4byte 0x02017800
-_08032AD8: .4byte gUnknown_02024E84
- thumb_func_end sub_8032AA8
-
- thumb_func_start nullsub_45
-nullsub_45: @ 8032ADC
- bx lr
- thumb_func_end nullsub_45
-
- thumb_func_start sub_8032AE0
-sub_8032AE0: @ 8032AE0
- ldr r1, _08032AF0 @ =gUnknown_03004330
- ldr r0, _08032AF4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08032AF8 @ =sub_8032AFC
- str r1, [r0]
- bx lr
- .align 2, 0
-_08032AF0: .4byte gUnknown_03004330
-_08032AF4: .4byte gUnknown_02024A60
-_08032AF8: .4byte sub_8032AFC
- thumb_func_end sub_8032AE0
-
- thumb_func_start sub_8032AFC
-sub_8032AFC: @ 8032AFC
- push {lr}
- ldr r2, _08032B30 @ =gUnknown_02024A64
- ldr r1, _08032B34 @ =gBitTable
- ldr r0, _08032B38 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08032B48
- ldr r0, _08032B3C @ =gUnknown_02023A60
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _08032B44
- ldr r0, _08032B40 @ =gUnknown_081FAF5C
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _08032B48
- .align 2, 0
-_08032B30: .4byte gUnknown_02024A64
-_08032B34: .4byte gBitTable
-_08032B38: .4byte gUnknown_02024A60
-_08032B3C: .4byte gUnknown_02023A60
-_08032B40: .4byte gUnknown_081FAF5C
-_08032B44:
- bl sub_80334EC
-_08032B48:
- pop {r0}
- bx r0
- thumb_func_end sub_8032AFC
-
- thumb_func_start sub_8032B4C
-sub_8032B4C: @ 8032B4C
- push {lr}
- ldr r2, _08032B74 @ =gSprites
- ldr r1, _08032B78 @ =gUnknown_02024BE0
- ldr r0, _08032B7C @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08032B80 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08032B70
- bl sub_80334EC
-_08032B70:
- pop {r0}
- bx r0
- .align 2, 0
-_08032B74: .4byte gSprites
-_08032B78: .4byte gUnknown_02024BE0
-_08032B7C: .4byte gUnknown_02024A60
-_08032B80: .4byte SpriteCallbackDummy
- thumb_func_end sub_8032B4C
-
- thumb_func_start sub_8032B84
-sub_8032B84: @ 8032B84
- push {lr}
- ldr r2, _08032BAC @ =gSprites
- ldr r1, _08032BB0 @ =gUnknown_02024BE0
- ldr r0, _08032BB4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08032BB8 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08032BA8
- bl sub_80334EC
-_08032BA8:
- pop {r0}
- bx r0
- .align 2, 0
-_08032BAC: .4byte gSprites
-_08032BB0: .4byte gUnknown_02024BE0
-_08032BB4: .4byte gUnknown_02024A60
-_08032BB8: .4byte SpriteCallbackDummy
- thumb_func_end sub_8032B84
-
- thumb_func_start sub_8032BBC
-sub_8032BBC: @ 8032BBC
- push {r4-r6,lr}
- ldr r4, _08032C34 @ =gSprites
- ldr r6, _08032C38 @ =gUnknown_02024BE0
- ldr r5, _08032C3C @ =gUnknown_02024A60
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r2, r0, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, [r0]
- ldr r0, _08032C40 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08032C2C
- adds r0, r2, r4
- ldrh r0, [r0, 0x6]
- bl sub_8031B74
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x38]
- ldr r2, _08032C44 @ =0x000003ff
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _08032C48 @ =0xfffffc00
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- bl sub_80334EC
-_08032C2C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08032C34: .4byte gSprites
-_08032C38: .4byte gUnknown_02024BE0
-_08032C3C: .4byte gUnknown_02024A60
-_08032C40: .4byte SpriteCallbackDummy
-_08032C44: .4byte 0x000003ff
-_08032C48: .4byte 0xfffffc00
- thumb_func_end sub_8032BBC
-
- thumb_func_start sub_8032C4C
-sub_8032C4C: @ 8032C4C
- push {lr}
- ldr r3, _08032C80 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, _08032C84 @ =0x02017810
- adds r1, r2
- ldrb r0, [r1, 0x9]
- subs r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _08032C7C
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0
- strb r0, [r1, 0x9]
- bl sub_80334EC
-_08032C7C:
- pop {r0}
- bx r0
- .align 2, 0
-_08032C80: .4byte gUnknown_02024A60
-_08032C84: .4byte 0x02017810
- thumb_func_end sub_8032C4C
-
- thumb_func_start sub_8032C88
-sub_8032C88: @ 8032C88
- push {r4-r7,lr}
- movs r6, 0
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08032CAC
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08032CE0
- ldr r0, _08032CCC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08032CE0
-_08032CAC:
- ldr r2, _08032CD0 @ =gSprites
- ldr r1, _08032CD4 @ =gUnknown_03004340
- ldr r0, _08032CD8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08032CDC @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08032D16
- b _08032D14
- .align 2, 0
-_08032CCC: .4byte gUnknown_020239F8
-_08032CD0: .4byte gSprites
-_08032CD4: .4byte gUnknown_03004340
-_08032CD8: .4byte gUnknown_02024A60
-_08032CDC: .4byte SpriteCallbackDummy
-_08032CE0:
- ldr r2, _08032DC4 @ =gSprites
- ldr r5, _08032DC8 @ =gUnknown_03004340
- ldr r0, _08032DCC @ =gUnknown_02024A60
- ldrb r3, [r0]
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r4, [r0]
- ldr r0, _08032DD0 @ =SpriteCallbackDummy
- cmp r4, r0
- bne _08032D16
- movs r0, 0x2
- eors r3, r0
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, r4
- bne _08032D16
-_08032D14:
- movs r6, 0x1
-_08032D16:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _08032D22
- movs r6, 0
-_08032D22:
- cmp r6, 0
- beq _08032E0E
- ldr r7, _08032DCC @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r5, _08032DD4 @ =0x02017810
- adds r4, r0, r5
- ldrb r1, [r4, 0x1]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08032E0E
- movs r6, 0x2
- adds r1, r6, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08032E0E
- ldrb r1, [r4]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r4]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x1]
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- ands r4, r1
- strb r4, [r0, 0x1]
- ldr r4, _08032DD8 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r0, _08032DDC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08032DE4
- ldr r0, _08032DE0 @ =gMPlay_BGM
- bl m4aMPlayContinue
- b _08032DF0
- .align 2, 0
-_08032DC4: .4byte gSprites
-_08032DC8: .4byte gUnknown_03004340
-_08032DCC: .4byte gUnknown_02024A60
-_08032DD0: .4byte SpriteCallbackDummy
-_08032DD4: .4byte 0x02017810
-_08032DD8: .4byte 0x000027f9
-_08032DDC: .4byte gUnknown_020239F8
-_08032DE0: .4byte gMPlay_BGM
-_08032DE4:
- ldr r0, _08032E14 @ =gMPlay_BGM
- ldr r1, _08032E18 @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_08032DF0:
- ldr r2, _08032E1C @ =gUnknown_02024A60
- ldrb r1, [r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08032E20 @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x9]
- ldr r1, _08032E24 @ =gUnknown_03004330
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08032E28 @ =sub_8032C4C
- str r1, [r0]
-_08032E0E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08032E14: .4byte gMPlay_BGM
-_08032E18: .4byte 0x0000ffff
-_08032E1C: .4byte gUnknown_02024A60
-_08032E20: .4byte 0x02017810
-_08032E24: .4byte gUnknown_03004330
-_08032E28: .4byte sub_8032C4C
- thumb_func_end sub_8032C88
-
- thumb_func_start sub_8032E2C
-sub_8032E2C: @ 8032E2C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08032FEC @ =gUnknown_02024A60
- mov r9, r0
- ldrb r2, [r0]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r4, _08032FF0 @ =0x02017810
- adds r0, r4
- ldrb r1, [r0]
- movs r5, 0x88
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08032E64
- ldr r0, _08032FF4 @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08032FF8 @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08032E64:
- mov r1, r9
- ldrb r0, [r1]
- movs r7, 0x2
- adds r2, r7, 0
- eors r2, r0
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08032E94
- ldr r0, _08032FF4 @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08032FF8 @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08032E94:
- mov r0, r9
- ldrb r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r3, 0x8
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08032EAE
- b _08032FE0
-_08032EAE:
- adds r1, r7, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08032EC6
- b _08032FE0
-_08032EC6:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08032F58
- ldr r0, _08032FFC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08032F58
- ldr r1, _08033000 @ =gUnknown_0300434C
- mov r2, r9
- ldrb r0, [r2]
- eors r0, r7
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08033004 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r4, _08033008 @ =gUnknown_03004340
- mov r1, r9
- ldrb r0, [r1]
- adds r1, r7, 0
- eors r1, r0
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _08032FF4 @ =gUnknown_02024A6A
- mov r8, r2
- lsls r1, 1
- add r1, r8
- ldrh r1, [r1]
- movs r6, 0x64
- muls r1, r6
- ldr r5, _08032FF8 @ =gEnemyParty
- adds r1, r5
- movs r2, 0
- bl sub_8045A5C
- mov r1, r9
- ldrb r0, [r1]
- eors r0, r7
- bl sub_804777C
- mov r2, r9
- ldrb r0, [r2]
- eors r0, r7
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
- mov r1, r9
- ldrb r0, [r1]
- adds r4, r7, 0
- eors r4, r0
- lsls r0, r4, 1
- add r0, r8
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
-_08032F58:
- ldr r1, _08033000 @ =gUnknown_0300434C
- ldr r4, _08032FEC @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08033004 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r5, _08033008 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _08032FF4 @ =gUnknown_02024A6A
- mov r9, r2
- lsls r1, 1
- add r1, r9
- ldrh r1, [r1]
- movs r2, 0x64
- mov r8, r2
- mov r2, r8
- muls r2, r1
- adds r1, r2, 0
- ldr r6, _08032FF8 @ =gEnemyParty
- adds r1, r6
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r4]
- bl sub_804777C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r5, [r4]
- lsls r0, r5, 1
- add r0, r9
- ldrh r0, [r0]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl sub_8032984
- ldr r2, _0803300C @ =0x02017840
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _08033010 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08033014 @ =sub_8032C88
- str r1, [r0]
-_08032FE0:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08032FEC: .4byte gUnknown_02024A60
-_08032FF0: .4byte 0x02017810
-_08032FF4: .4byte gUnknown_02024A6A
-_08032FF8: .4byte gEnemyParty
-_08032FFC: .4byte gUnknown_020239F8
-_08033000: .4byte gUnknown_0300434C
-_08033004: .4byte gSprites
-_08033008: .4byte gUnknown_03004340
-_0803300C: .4byte 0x02017840
-_08033010: .4byte gUnknown_03004330
-_08033014: .4byte sub_8032C88
- thumb_func_end sub_8032E2C
-
- thumb_func_start sub_8033018
-sub_8033018: @ 8033018
- push {r4-r7,lr}
- ldr r2, _08033070 @ =gSprites
- ldr r0, _08033074 @ =gUnknown_02024BE0
- ldr r7, _08033078 @ =gUnknown_02024A60
- ldrb r3, [r7]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r2, r0, 31
- cmp r2, 0x1
- bne _080330BC
- movs r4, 0x24
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bne _080330BC
- lsls r4, r3, 1
- adds r0, r4, r3
- lsls r0, 2
- ldr r6, _0803307C @ =0x02017810
- adds r1, r0, r6
- ldrb r5, [r1]
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- bne _08033088
- ldr r0, _08033080 @ =gUnknown_02024A6A
- adds r0, r4, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08033084 @ =gEnemyParty
- adds r1, r0
- adds r0, r3, 0
- bl sub_8141828
- b _080330BC
- .align 2, 0
-_08033070: .4byte gSprites
-_08033074: .4byte gUnknown_02024BE0
-_08033078: .4byte gUnknown_02024A60
-_0803307C: .4byte 0x02017810
-_08033080: .4byte gUnknown_02024A6A
-_08033084: .4byte gEnemyParty
-_08033088:
- ldrb r0, [r1, 0x1]
- ands r2, r0
- cmp r2, 0
- beq _080330BC
- movs r0, 0x7F
- ands r0, r5
- strb r0, [r1]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _080330C4 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- bl sub_80334EC
-_080330BC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080330C4: .4byte 0x000027f9
- thumb_func_end sub_8033018
-
- thumb_func_start sub_80330C8
-sub_80330C8: @ 80330C8
- push {r4-r6,lr}
- ldr r6, _08033108 @ =gUnknown_02024A60
- ldrb r0, [r6]
- ldr r5, _0803310C @ =gUnknown_03004340
- adds r1, r0, r5
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0
- bl sub_8045C78
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r6]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- lsls r4, 16
- asrs r1, r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08033110
- ldrb r0, [r6]
- adds r0, r5
- ldrb r0, [r0]
- movs r2, 0
- bl sub_80440EC
- b _08033114
- .align 2, 0
-_08033108: .4byte gUnknown_02024A60
-_0803310C: .4byte gUnknown_03004340
-_08033110:
- bl sub_80334EC
-_08033114:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80330C8
-
- thumb_func_start sub_803311C
-sub_803311C: @ 803311C
- push {lr}
- ldr r2, _08033150 @ =gSprites
- ldr r0, _08033154 @ =gUnknown_02024BE0
- ldr r1, _08033158 @ =gUnknown_02024A60
- ldrb r3, [r1]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- bne _0803314A
- ldr r0, _0803315C @ =gUnknown_03004340
- adds r0, r3, r0
- ldrb r0, [r0]
- bl sub_8043DB0
- bl sub_80334EC
-_0803314A:
- pop {r0}
- bx r0
- .align 2, 0
-_08033150: .4byte gSprites
-_08033154: .4byte gUnknown_02024BE0
-_08033158: .4byte gUnknown_02024A60
-_0803315C: .4byte gUnknown_03004340
- thumb_func_end sub_803311C
-
- thumb_func_start sub_8033160
-sub_8033160: @ 8033160
- push {r4-r6,lr}
- ldr r6, _080331BC @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _080331C0 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080331B6
- ldr r5, _080331C4 @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080331C8 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldrb r0, [r6]
- bl sub_8032A08
- ldr r1, _080331CC @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl sub_80334EC
-_080331B6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080331BC: .4byte gUnknown_02024A60
-_080331C0: .4byte 0x02017810
-_080331C4: .4byte gUnknown_02024BE0
-_080331C8: .4byte gSprites
-_080331CC: .4byte gUnknown_03004340
- thumb_func_end sub_8033160
-
- thumb_func_start sub_80331D0
-sub_80331D0: @ 80331D0
- push {lr}
- ldr r0, _080331E4 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _080331DE
- bl sub_80334EC
-_080331DE:
- pop {r0}
- bx r0
- .align 2, 0
-_080331E4: .4byte gUnknown_03004210
- thumb_func_end sub_80331D0
-
- thumb_func_start bx_blink_t7
-bx_blink_t7: @ 80331E8
- push {r4,lr}
- ldr r1, _08033224 @ =gUnknown_02024BE0
- ldr r0, _08033228 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _0803322C @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bne _08033234
- movs r3, 0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x5
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08033230 @ =gUnknown_02024E6D
- strb r3, [r0]
- bl sub_80334EC
- b _0803325E
- .align 2, 0
-_08033224: .4byte gUnknown_02024BE0
-_08033228: .4byte gUnknown_02024A60
-_0803322C: .4byte gSprites
-_08033230: .4byte gUnknown_02024E6D
-_08033234:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08033258
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_08033258:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_0803325E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end bx_blink_t7
-
- thumb_func_start sub_8033264
-sub_8033264: @ 8033264
- push {r4,lr}
- ldr r2, _080332B4 @ =gSprites
- ldr r0, _080332B8 @ =gUnknown_03004340
- ldr r4, _080332BC @ =gUnknown_02024A60
- ldrb r3, [r4]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _080332C0 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _080332AC
- lsls r0, r3, 2
- ldr r1, _080332C4 @ =0x02017800
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080332A0
- adds r0, r3, 0
- adds r1, r3, 0
- adds r2, r3, 0
- movs r3, 0x6
- bl move_anim_start_t4
-_080332A0:
- ldr r0, _080332C8 @ =gUnknown_03004330
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, _080332CC @ =sub_80332D0
- str r0, [r1]
-_080332AC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080332B4: .4byte gSprites
-_080332B8: .4byte gUnknown_03004340
-_080332BC: .4byte gUnknown_02024A60
-_080332C0: .4byte SpriteCallbackDummy
-_080332C4: .4byte 0x02017800
-_080332C8: .4byte gUnknown_03004330
-_080332CC: .4byte sub_80332D0
- thumb_func_end sub_8033264
-
- thumb_func_start sub_80332D0
-sub_80332D0: @ 80332D0
- push {lr}
- ldr r0, _080332FC @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08033300 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080332F6
- ldr r0, _08033304 @ =c3_0802FDF4
- movs r1, 0xA
- bl CreateTask
- bl sub_80334EC
-_080332F6:
- pop {r0}
- bx r0
- .align 2, 0
-_080332FC: .4byte gUnknown_02024A60
-_08033300: .4byte 0x02017810
-_08033304: .4byte c3_0802FDF4
- thumb_func_end sub_80332D0
-
- thumb_func_start sub_8033308
-sub_8033308: @ 8033308
- push {r4,r5,lr}
- ldr r5, _080333AC @ =gUnknown_02024A60
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _080333B0 @ =0x02017810
- adds r2, r0, r3
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080333A4
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _080333B4 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r1, _080333B8 @ =gUnknown_02024BE0
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080333BC @ =gSprites
- adds r0, r1
- movs r1, 0
- bl StartSpriteAnim
- ldr r4, _080333C0 @ =gUnknown_03004340
- ldrb r1, [r5]
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _080333C4 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _080333C8 @ =gEnemyParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r5]
- bl sub_804777C
- ldrb r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r0, [r5]
- bl sub_8031F88
- ldr r1, _080333CC @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080333D0 @ =sub_8033264
- str r1, [r0]
-_080333A4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080333AC: .4byte gUnknown_02024A60
-_080333B0: .4byte 0x02017810
-_080333B4: .4byte 0x000027f9
-_080333B8: .4byte gUnknown_02024BE0
-_080333BC: .4byte gSprites
-_080333C0: .4byte gUnknown_03004340
-_080333C4: .4byte gUnknown_02024A6A
-_080333C8: .4byte gEnemyParty
-_080333CC: .4byte gUnknown_03004330
-_080333D0: .4byte sub_8033264
- thumb_func_end sub_8033308
-
- thumb_func_start sub_80333D4
-sub_80333D4: @ 80333D4
- push {r4-r6,lr}
- ldr r5, _08033470 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r6, _08033474 @ =0x02017810
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _08033402
- ldr r0, _08033478 @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0803347C @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08033402:
- ldr r4, _08033480 @ =gSprites
- ldr r0, _08033484 @ =gUnknown_0300434C
- ldrb r2, [r5]
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r3, r0, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r3, r0
- ldr r1, [r0]
- ldr r0, _08033488 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08033468
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08033468
- adds r0, r3, r4
- bl DestroySprite
- ldrb r4, [r5]
- ldr r1, _08033478 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0803347C @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
- ldr r1, _0803348C @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08033490 @ =sub_8033308
- str r1, [r0]
-_08033468:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08033470: .4byte gUnknown_02024A60
-_08033474: .4byte 0x02017810
-_08033478: .4byte gUnknown_02024A6A
-_0803347C: .4byte gEnemyParty
-_08033480: .4byte gSprites
-_08033484: .4byte gUnknown_0300434C
-_08033488: .4byte SpriteCallbackDummy
-_0803348C: .4byte gUnknown_03004330
-_08033490: .4byte sub_8033308
- thumb_func_end sub_80333D4
-
- thumb_func_start sub_8033494
-sub_8033494: @ 8033494
- push {lr}
- ldr r0, _080334B8 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080334BC @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080334B2
- bl sub_80334EC
-_080334B2:
- pop {r0}
- bx r0
- .align 2, 0
-_080334B8: .4byte gUnknown_02024A60
-_080334BC: .4byte 0x02017810
- thumb_func_end sub_8033494
-
- thumb_func_start sub_80334C0
-sub_80334C0: @ 80334C0
- push {lr}
- ldr r0, _080334E4 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080334E8 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _080334DE
- bl sub_80334EC
-_080334DE:
- pop {r0}
- bx r0
- .align 2, 0
-_080334E4: .4byte gUnknown_02024A60
-_080334E8: .4byte 0x02017810
- thumb_func_end sub_80334C0
-
- thumb_func_start sub_80334EC
-sub_80334EC: @ 80334EC
- ldr r1, _08033510 @ =gUnknown_03004330
- ldr r2, _08033514 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08033518 @ =sub_8032AFC
- str r1, [r0]
- ldr r3, _0803351C @ =gUnknown_02024A64
- ldr r1, _08033520 @ =gBitTable
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r3]
- bics r0, r1
- str r0, [r3]
- bx lr
- .align 2, 0
-_08033510: .4byte gUnknown_03004330
-_08033514: .4byte gUnknown_02024A60
-_08033518: .4byte sub_8032AFC
-_0803351C: .4byte gUnknown_02024A64
-_08033520: .4byte gBitTable
- thumb_func_end sub_80334EC
-
- thumb_func_start dp01t_00_7_getattr
-dp01t_00_7_getattr: @ 8033524
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, _08033550 @ =gUnknown_02023A60
- ldr r0, _08033554 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _0803355C
- ldr r0, _08033558 @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl sub_8033598
- adds r6, r0, 0
- b _0803357E
- .align 2, 0
-_08033550: .4byte gUnknown_02023A60
-_08033554: .4byte gUnknown_02024A60
-_08033558: .4byte gUnknown_02024A6A
-_0803355C:
- ldrb r4, [r1]
- movs r5, 0
-_08033560:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _08033576
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl sub_8033598
- adds r6, r0
-_08033576:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _08033560
-_0803357E:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl sub_80334EC
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end dp01t_00_7_getattr
-
- thumb_func_start sub_8033598
-sub_8033598: @ 8033598
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x90
- adds r7, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _080335CC @ =gUnknown_02023A60
- ldr r3, _080335D0 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _080335C2
- bl _08033D2E
-_080335C2:
- lsls r0, 2
- ldr r1, _080335D4 @ =_080335D8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080335CC: .4byte gUnknown_02023A60
-_080335D0: .4byte gUnknown_02024A60
-_080335D4: .4byte _080335D8
- .align 2, 0
-_080335D8:
- .4byte _080336C8
- .4byte _080338EC
- .4byte _080338FC
- .4byte _0803390C
- .4byte _08033974
- .4byte _08033974
- .4byte _08033974
- .4byte _08033974
- .4byte _08033990
- .4byte _080339CC
- .4byte _080339CC
- .4byte _080339CC
- .4byte _080339CC
- .4byte _08033D2E
- .4byte _08033D2E
- .4byte _08033D2E
- .4byte _08033D2E
- .4byte _080339E8
- .4byte _080339F8
- .4byte _08033A28
- .4byte _08033A38
- .4byte _08033A48
- .4byte _08033A58
- .4byte _08033A68
- .4byte _08033A78
- .4byte _08033A88
- .4byte _08033A98
- .4byte _08033AA8
- .4byte _08033AB8
- .4byte _08033AC8
- .4byte _08033AD8
- .4byte _08033AE8
- .4byte _08033B38
- .4byte _08033B48
- .4byte _08033B58
- .4byte _08033B68
- .4byte _08033B78
- .4byte _08033B88
- .4byte _08033B98
- .4byte _08033BA8
- .4byte _08033BB8
- .4byte _08033BEC
- .4byte _08033BFC
- .4byte _08033C0C
- .4byte _08033C1C
- .4byte _08033C2C
- .4byte _08033C3C
- .4byte _08033C4C
- .4byte _08033C5C
- .4byte _08033C7C
- .4byte _08033C8C
- .4byte _08033C9C
- .4byte _08033CAC
- .4byte _08033CBC
- .4byte _08033CCC
- .4byte _08033CDC
- .4byte _08033CEC
- .4byte _08033CFC
- .4byte _08033D0C
- .4byte _08033D1C
-_080336C8:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080338DC @ =gEnemyParty
- adds 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 r9, r0
- movs r1, 0x3B
- add r1, sp
- mov r10, 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, 0x5
- str r2, [sp, 0x84]
- adds r0, 0x12
- str r0, [sp, 0x88]
- mov r8, r4
- add r4, sp, 0xC
-_08033714:
- 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, r9
- adds r1, r2, r6
- strb r0, [r1]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _08033714
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080338DC @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- mov r1, r10
- 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
- negs r1, r1
- 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, 5
- ldrh r2, [r3, 0x14]
- ldr r1, _080338E0 @ =0xfffffc1f
- 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, 2
- ldrb r2, [r3, 0x15]
- movs r1, 0x7D
- negs r1, r1
- 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, 15
- ldr r0, [sp, 0x14]
- ldr r2, _080338E4 @ =0xfff07fff
- 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, 4
- ldrh r2, [r3, 0x16]
- ldr r1, _080338E8 @ =0xfffffe0f
- 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, 1
- ldrb r2, [r3, 0x17]
- movs r1, 0x3F
- negs r1, r1
- 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, 0x2]
- adds r0, r4, 0
- movs r1, 0x3C
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- movs r1, 0x3D
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x6]
- adds r0, r4, 0
- movs r1, 0x3E
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x8]
- 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, 0x1
- ands r0, r1
- lsls r0, 6
- ldrb r2, [r3, 0x17]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- mov r3, sp
- lsls 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, 0x1
- bl GetMonData
- str r0, [sp, 0x54]
- adds r0, r4, 0
- movs r1, 0x2
- ldr r2, [sp, 0x8C]
- bl GetMonData
- ldr r0, [sp, 0x84]
- ldr r1, [sp, 0x8C]
- bl StringCopy10
- adds r0, r4, 0
- movs r1, 0x7
- ldr r2, [sp, 0x88]
- bl GetMonData
- mov r2, sp
- movs r6, 0
-_080338CC:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _080338CC
- b _08033D2E
- .align 2, 0
-_080338DC: .4byte gEnemyParty
-_080338E0: .4byte 0xfffffc1f
-_080338E4: .4byte 0xfff07fff
-_080338E8: .4byte 0xfffffe0f
-_080338EC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080338F8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- b _08033C66
- .align 2, 0
-_080338F8: .4byte gEnemyParty
-_080338FC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033908 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xC
- b _08033C66
- .align 2, 0
-_08033908: .4byte gEnemyParty
-_0803390C:
- movs r6, 0
- add r2, sp, 0x58
- mov r9, r2
- add r0, sp, 0x60
- mov r10, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08033970 @ =gEnemyParty
- adds r4, r1, r0
- mov r8, r9
-_08033922:
- 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, r10
- adds r1, r2, r6
- strb r0, [r1]
- movs r0, 0x2
- add r8, r0
- adds r6, 0x1
- cmp r6, 0x3
- ble _08033922
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033970 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_08033960:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _08033960
- b _08033D2E
- .align 2, 0
-_08033970: .4byte gEnemyParty
-_08033974:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803398C @ =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _08033C66
- .align 2, 0
-_0803398C: .4byte gEnemyParty
-_08033990:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, _080339C8 @ =gEnemyParty
- mov r8, r2
-_0803399C:
- 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, 0x1
- cmp r6, 0x3
- ble _0803399C
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080339C8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _08033D2E
- .align 2, 0
-_080339C8: .4byte gEnemyParty
-_080339CC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080339E4 @ =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _08033D26
- .align 2, 0
-_080339E4: .4byte gEnemyParty
-_080339E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080339F4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1
- b _08033A02
- .align 2, 0
-_080339F4: .4byte gEnemyParty
-_080339F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A24 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x19
-_08033A02:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- movs r6, 0x3
- b _08033D2E
- .align 2, 0
-_08033A24: .4byte gEnemyParty
-_08033A28:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A34 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1A
- b _08033D26
- .align 2, 0
-_08033A34: .4byte gEnemyParty
-_08033A38:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A44 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1B
- b _08033D26
- .align 2, 0
-_08033A44: .4byte gEnemyParty
-_08033A48:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A54 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1C
- b _08033D26
- .align 2, 0
-_08033A54: .4byte gEnemyParty
-_08033A58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A64 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1D
- b _08033D26
- .align 2, 0
-_08033A64: .4byte gEnemyParty
-_08033A68:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A74 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1E
- b _08033D26
- .align 2, 0
-_08033A74: .4byte gEnemyParty
-_08033A78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A84 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1F
- b _08033D26
- .align 2, 0
-_08033A84: .4byte gEnemyParty
-_08033A88:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A94 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x20
- b _08033D26
- .align 2, 0
-_08033A94: .4byte gEnemyParty
-_08033A98:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033AA4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x22
- b _08033D26
- .align 2, 0
-_08033AA4: .4byte gEnemyParty
-_08033AA8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033AB4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x23
- b _08033D26
- .align 2, 0
-_08033AB4: .4byte gEnemyParty
-_08033AB8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033AC4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x24
- b _08033D26
- .align 2, 0
-_08033AC4: .4byte gEnemyParty
-_08033AC8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033AD4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x25
- b _08033D26
- .align 2, 0
-_08033AD4: .4byte gEnemyParty
-_08033AD8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033AE4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x26
- b _08033D26
- .align 2, 0
-_08033AE4: .4byte gEnemyParty
-_08033AE8:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08033B34 @ =gEnemyParty
- adds 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, 0x1]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- strb r0, [r7, 0x2]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- strb r0, [r7, 0x3]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- strb r0, [r7, 0x4]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- strb r0, [r7, 0x5]
- movs r6, 0x6
- b _08033D2E
- .align 2, 0
-_08033B34: .4byte gEnemyParty
-_08033B38:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033B44 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x27
- b _08033D26
- .align 2, 0
-_08033B44: .4byte gEnemyParty
-_08033B48:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033B54 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x28
- b _08033D26
- .align 2, 0
-_08033B54: .4byte gEnemyParty
-_08033B58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033B64 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x29
- b _08033D26
- .align 2, 0
-_08033B64: .4byte gEnemyParty
-_08033B68:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033B74 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2A
- b _08033D26
- .align 2, 0
-_08033B74: .4byte gEnemyParty
-_08033B78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033B84 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2B
- b _08033D26
- .align 2, 0
-_08033B84: .4byte gEnemyParty
-_08033B88:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033B94 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2C
- b _08033D26
- .align 2, 0
-_08033B94: .4byte gEnemyParty
-_08033B98:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033BA4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0
- b _08033BC2
- .align 2, 0
-_08033BA4: .4byte gEnemyParty
-_08033BA8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033BB4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x9
- b _08033C66
- .align 2, 0
-_08033BB4: .4byte gEnemyParty
-_08033BB8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033BE8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x37
-_08033BC2:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- lsrs r0, r1, 24
- strb r0, [r7, 0x3]
- movs r6, 0x4
- b _08033D2E
- .align 2, 0
-_08033BE8: .4byte gEnemyParty
-_08033BEC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033BF8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x38
- b _08033D26
- .align 2, 0
-_08033BF8: .4byte gEnemyParty
-_08033BFC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C08 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- b _08033C66
- .align 2, 0
-_08033C08: .4byte gEnemyParty
-_08033C0C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C18 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- b _08033C66
- .align 2, 0
-_08033C18: .4byte gEnemyParty
-_08033C1C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C28 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3B
- b _08033C66
- .align 2, 0
-_08033C28: .4byte gEnemyParty
-_08033C2C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C38 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3C
- b _08033C66
- .align 2, 0
-_08033C38: .4byte gEnemyParty
-_08033C3C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C48 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3D
- b _08033C66
- .align 2, 0
-_08033C48: .4byte gEnemyParty
-_08033C4C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C58 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3E
- b _08033C66
- .align 2, 0
-_08033C58: .4byte gEnemyParty
-_08033C5C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C78 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3F
-_08033C66:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _08033D2E
- .align 2, 0
-_08033C78: .4byte gEnemyParty
-_08033C7C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C88 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x16
- b _08033D26
- .align 2, 0
-_08033C88: .4byte gEnemyParty
-_08033C8C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C98 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x17
- b _08033D26
- .align 2, 0
-_08033C98: .4byte gEnemyParty
-_08033C9C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033CA8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x18
- b _08033D26
- .align 2, 0
-_08033CA8: .4byte gEnemyParty
-_08033CAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033CB8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x21
- b _08033D26
- .align 2, 0
-_08033CB8: .4byte gEnemyParty
-_08033CBC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033CC8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2F
- b _08033D26
- .align 2, 0
-_08033CC8: .4byte gEnemyParty
-_08033CCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033CD8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x30
- b _08033D26
- .align 2, 0
-_08033CD8: .4byte gEnemyParty
-_08033CDC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033CE8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x32
- b _08033D26
- .align 2, 0
-_08033CE8: .4byte gEnemyParty
-_08033CEC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033CF8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x33
- b _08033D26
- .align 2, 0
-_08033CF8: .4byte gEnemyParty
-_08033CFC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033D08 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x34
- b _08033D26
- .align 2, 0
-_08033D08: .4byte gEnemyParty
-_08033D0C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033D18 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x35
- b _08033D26
- .align 2, 0
-_08033D18: .4byte gEnemyParty
-_08033D1C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033D40 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x36
-_08033D26:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_08033D2E:
- adds r0, r6, 0
- add sp, 0x90
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08033D40: .4byte gEnemyParty
- thumb_func_end sub_8033598
-
- thumb_func_start dp01t_01_2_read_pokmon_data_slice
-dp01t_01_2_read_pokmon_data_slice: @ 8033D44
- push {r4-r7,lr}
- sub sp, 0x58
- ldr r2, _08033DBC @ =gUnknown_02024A6A
- ldr r5, _08033DC0 @ =gUnknown_02024A60
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- adds r4, r2, 0
- muls r4, r0
- ldr r3, _08033DC4 @ =gUnknown_02023A60
- lsls r1, 9
- adds r0, r3, 0x1
- adds r0, r1, r0
- ldrb r2, [r0]
- ldr r0, _08033DC8 @ =gEnemyParty
- adds r0, r2, r0
- adds r6, r4, r0
- mov r0, sp
- adds r4, r0, r2
- movs r2, 0
- adds r0, r3, 0x2
- adds r1, r0
- adds r7, r5, 0
- mov r12, r3
- ldrb r1, [r1]
- cmp r2, r1
- bcs _08033D9A
- adds r3, r0, 0
-_08033D80:
- adds r1, r4, r2
- adds r0, r6, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r5]
- lsls r0, 9
- adds r0, r3
- ldrb r0, [r0]
- cmp r2, r0
- bcc _08033D80
-_08033D9A:
- ldrb r0, [r7]
- lsls r0, 9
- mov r1, r12
- adds r1, 0x2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- adds r2, r4, 0
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl sub_80334EC
- add sp, 0x58
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08033DBC: .4byte gUnknown_02024A6A
-_08033DC0: .4byte gUnknown_02024A60
-_08033DC4: .4byte gUnknown_02023A60
-_08033DC8: .4byte gEnemyParty
- thumb_func_end dp01t_01_2_read_pokmon_data_slice
-
- thumb_func_start dp01t_02_7_setattr
-dp01t_02_7_setattr: @ 8033DCC
- push {r4,r5,lr}
- ldr r1, _08033DF0 @ =gUnknown_02023A60
- ldr r0, _08033DF4 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _08033DFC
- ldr r0, _08033DF8 @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl sub_8033E24
- b _08033E1A
- .align 2, 0
-_08033DF0: .4byte gUnknown_02023A60
-_08033DF4: .4byte gUnknown_02024A60
-_08033DF8: .4byte gUnknown_02024A6A
-_08033DFC:
- ldrb r4, [r1]
- movs r5, 0
-_08033E00:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _08033E0E
- adds r0, r5, 0
- bl sub_8033E24
-_08033E0E:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08033E00
-_08033E1A:
- bl sub_80334EC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end dp01t_02_7_setattr
-
- thumb_func_start sub_8033E24
-sub_8033E24: @ 8033E24
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x38
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r3, _08033E5C @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r0, 9
- ldr r2, _08033E60 @ =gUnknown_02023A63
- adds r4, r0, r2
- adds r7, r4, 0
- subs r1, r2, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r6, r3, 0
- adds r3, r2, 0
- cmp r0, 0x3B
- bls _08033E52
- bl _08034730
-_08033E52:
- lsls r0, 2
- ldr r1, _08033E64 @ =_08033E68
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08033E5C: .4byte gUnknown_02024A60
-_08033E60: .4byte gUnknown_02023A63
-_08033E64: .4byte _08033E68
- .align 2, 0
-_08033E68:
- .4byte _08033F58
- .4byte _080340F0
- .4byte _0803410C
- .4byte _08034128
- .4byte _0803417C
- .4byte _0803417C
- .4byte _0803417C
- .4byte _0803417C
- .4byte _0803419C
- .4byte _08034204
- .4byte _08034204
- .4byte _08034204
- .4byte _08034204
- .4byte _08034730
- .4byte _08034730
- .4byte _08034730
- .4byte _08034730
- .4byte _0803422C
- .4byte _08034248
- .4byte _08034264
- .4byte _08034280
- .4byte _0803429C
- .4byte _080342B8
- .4byte _080342D4
- .4byte _080342F0
- .4byte _0803430C
- .4byte _08034328
- .4byte _08034344
- .4byte _08034360
- .4byte _0803437C
- .4byte _08034398
- .4byte _080343B4
- .4byte _08034428
- .4byte _08034444
- .4byte _08034460
- .4byte _0803447C
- .4byte _08034498
- .4byte _080344B4
- .4byte _080344D0
- .4byte _080344EC
- .4byte _08034508
- .4byte _08034524
- .4byte _08034540
- .4byte _0803455C
- .4byte _08034578
- .4byte _08034594
- .4byte _080345B0
- .4byte _080345CC
- .4byte _080345E8
- .4byte _08034604
- .4byte _08034620
- .4byte _0803463C
- .4byte _08034658
- .4byte _08034674
- .4byte _08034690
- .4byte _080346AC
- .4byte _080346C8
- .4byte _080346E4
- .4byte _08034700
- .4byte _0803471C
-_08033F58:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080340EC @ =gEnemyParty
- adds 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, r7
- mov r10, r0
- adds r0, r7, 0
- adds r0, 0x2B
- str r0, [sp, 0x20]
- adds r0, 0x19
- str r0, [sp, 0x28]
- adds r0, 0x4
- str r0, [sp, 0x2C]
- adds r0, 0x4
- str r0, [sp, 0x30]
- subs r0, 0x22
- str r0, [sp, 0x1C]
- subs r0, 0x2
- str r0, [sp, 0x18]
- adds r0, 0x4
- str r0, [sp, 0x24]
- adds r0, r7, 0x2
- str r0, [sp, 0x4]
- adds r0, r7, 0x4
- str r0, [sp, 0x8]
- adds r0, r7, 0x6
- str r0, [sp, 0xC]
- adds r0, 0x2
- str r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x14]
- mov r9, r4
- adds r6, r7, 0
- adds r6, 0x24
- adds r4, r7, 0
- adds r4, 0xC
-_08033FBE:
- mov r1, r8
- adds r1, 0xD
- mov r0, r9
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- mov r0, r9
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _08033FBE
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080340EC @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- mov r2, r10
- 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, 27
- lsrs r0, 27
- 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, 22
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x28
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r7, 0x15]
- lsls r0, 25
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x29
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldr r0, [r7, 0x14]
- lsls r0, 12
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2A
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r7, 0x16]
- lsls r0, 23
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2B
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r7, 0x17]
- lsls r0, 26
- lsrs r0, 27
- 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, 0x4]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3C
- ldr r2, [sp, 0x8]
- 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 _08034730
- .align 2, 0
-_080340EC: .4byte gEnemyParty
-_080340F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034108 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xB
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034108: .4byte gEnemyParty
-_0803410C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034124 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xC
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034124: .4byte gEnemyParty
-_08034128:
- movs r0, 0
- mov r8, r0
- movs r0, 0xC
- adds r0, r4
- mov r9, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08034178 @ =gEnemyParty
- adds r7, r1, r0
- adds r6, r4, 0
- adds r6, 0x8
-_08034140:
- 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, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _08034140
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034178 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034178: .4byte gEnemyParty
-_0803417C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034194 @ =gEnemyParty
- adds r0, r1
- ldr r3, _08034198 @ =gUnknown_02023A60
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _0803421A
- .align 2, 0
-_08034194: .4byte gEnemyParty
-_08034198: .4byte gUnknown_02023A60
-_0803419C:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08034200 @ =gEnemyParty
- adds r4, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- adds r0, r4, 0
- movs r1, 0x11
- str r3, [sp, 0x34]
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x12
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x13
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x14
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034200: .4byte gEnemyParty
-_08034204:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034224 @ =gEnemyParty
- adds r0, r1
- ldr r3, _08034228 @ =gUnknown_02023A60
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_0803421A:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034224: .4byte gEnemyParty
-_08034228: .4byte gUnknown_02023A60
-_0803422C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034244 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034244: .4byte gEnemyParty
-_08034248:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034260 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x19
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034260: .4byte gEnemyParty
-_08034264:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803427C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1A
- bl SetMonData
- b _08034730
- .align 2, 0
-_0803427C: .4byte gEnemyParty
-_08034280:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034298 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1B
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034298: .4byte gEnemyParty
-_0803429C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080342B4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1C
- bl SetMonData
- b _08034730
- .align 2, 0
-_080342B4: .4byte gEnemyParty
-_080342B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080342D0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1D
- bl SetMonData
- b _08034730
- .align 2, 0
-_080342D0: .4byte gEnemyParty
-_080342D4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080342EC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1E
- bl SetMonData
- b _08034730
- .align 2, 0
-_080342EC: .4byte gEnemyParty
-_080342F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034308 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1F
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034308: .4byte gEnemyParty
-_0803430C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034324 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x20
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034324: .4byte gEnemyParty
-_08034328:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034340 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x22
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034340: .4byte gEnemyParty
-_08034344:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803435C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x23
- bl SetMonData
- b _08034730
- .align 2, 0
-_0803435C: .4byte gEnemyParty
-_08034360:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034378 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x24
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034378: .4byte gEnemyParty
-_0803437C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034394 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x25
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034394: .4byte gEnemyParty
-_08034398:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080343B0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x26
- bl SetMonData
- b _08034730
- .align 2, 0
-_080343B0: .4byte gEnemyParty
-_080343B4:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08034424 @ =gEnemyParty
- adds r4, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- adds r0, r4, 0
- movs r1, 0x27
- str r3, [sp, 0x34]
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x28
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x29
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2A
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2B
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x5
- adds r2, r0
- adds r0, r4, 0
- b _080344C2
- .align 2, 0
-_08034424: .4byte gEnemyParty
-_08034428:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034440 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x27
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034440: .4byte gEnemyParty
-_08034444:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803445C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x28
- bl SetMonData
- b _08034730
- .align 2, 0
-_0803445C: .4byte gEnemyParty
-_08034460:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034478 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x29
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034478: .4byte gEnemyParty
-_0803447C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034494 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2A
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034494: .4byte gEnemyParty
-_08034498:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080344B0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2B
- bl SetMonData
- b _08034730
- .align 2, 0
-_080344B0: .4byte gEnemyParty
-_080344B4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080344CC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
-_080344C2:
- movs r1, 0x2C
- bl SetMonData
- b _08034730
- .align 2, 0
-_080344CC: .4byte gEnemyParty
-_080344D0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080344E8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0
- bl SetMonData
- b _08034730
- .align 2, 0
-_080344E8: .4byte gEnemyParty
-_080344EC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034504 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x9
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034504: .4byte gEnemyParty
-_08034508:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034520 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x37
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034520: .4byte gEnemyParty
-_08034524:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803453C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x38
- bl SetMonData
- b _08034730
- .align 2, 0
-_0803453C: .4byte gEnemyParty
-_08034540:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034558 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x39
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034558: .4byte gEnemyParty
-_0803455C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034574 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3A
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034574: .4byte gEnemyParty
-_08034578:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034590 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3B
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034590: .4byte gEnemyParty
-_08034594:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080345AC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3C
- bl SetMonData
- b _08034730
- .align 2, 0
-_080345AC: .4byte gEnemyParty
-_080345B0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080345C8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3D
- bl SetMonData
- b _08034730
- .align 2, 0
-_080345C8: .4byte gEnemyParty
-_080345CC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080345E4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3E
- bl SetMonData
- b _08034730
- .align 2, 0
-_080345E4: .4byte gEnemyParty
-_080345E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034600 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3F
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034600: .4byte gEnemyParty
-_08034604:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803461C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x16
- bl SetMonData
- b _08034730
- .align 2, 0
-_0803461C: .4byte gEnemyParty
-_08034620:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034638 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x17
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034638: .4byte gEnemyParty
-_0803463C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034654 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x18
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034654: .4byte gEnemyParty
-_08034658:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034670 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x21
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034670: .4byte gEnemyParty
-_08034674:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803468C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2F
- bl SetMonData
- b _08034730
- .align 2, 0
-_0803468C: .4byte gEnemyParty
-_08034690:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080346A8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x30
- bl SetMonData
- b _08034730
- .align 2, 0
-_080346A8: .4byte gEnemyParty
-_080346AC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080346C4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x32
- bl SetMonData
- b _08034730
- .align 2, 0
-_080346C4: .4byte gEnemyParty
-_080346C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080346E0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x33
- bl SetMonData
- b _08034730
- .align 2, 0
-_080346E0: .4byte gEnemyParty
-_080346E4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080346FC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x34
- bl SetMonData
- b _08034730
- .align 2, 0
-_080346FC: .4byte gEnemyParty
-_08034700:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034718 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x35
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034718: .4byte gEnemyParty
-_0803471C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034740 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x36
- bl SetMonData
-_08034730:
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08034740: .4byte gEnemyParty
- thumb_func_end sub_8033E24
-
- thumb_func_start sub_8034744
-sub_8034744: @ 8034744
- push {r4-r7,lr}
- ldr r1, _080347A8 @ =gUnknown_02024A6A
- ldr r7, _080347AC @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- adds r3, r1, 0
- muls r3, r0
- ldr r4, _080347B0 @ =gUnknown_02023A60
- lsls r2, 9
- adds r0, r4, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- ldr r1, _080347B4 @ =gEnemyParty
- adds r0, r1
- adds r5, r3, r0
- movs r3, 0
- adds r0, r4, 0x2
- adds r2, r0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _0803479C
- adds r6, r4, 0
- adds r2, r7, 0
- adds r4, r0, 0
-_0803477A:
- adds r1, r5, r3
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, 0x3
- adds r0, r3, r0
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r3, r0
- bcc _0803477A
-_0803479C:
- bl sub_80334EC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080347A8: .4byte gUnknown_02024A6A
-_080347AC: .4byte gUnknown_02024A60
-_080347B0: .4byte gUnknown_02023A60
-_080347B4: .4byte gEnemyParty
- thumb_func_end sub_8034744
-
- thumb_func_start sub_80347B8
-sub_80347B8: @ 80347B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r6, _080348E8 @ =gUnknown_02024A60
- ldrb r0, [r6]
- lsls r0, 1
- ldr r1, _080348EC @ =gUnknown_02024A6A
- adds r0, r1
- ldrh r0, [r0]
- movs r7, 0x64
- muls r0, r7
- ldr r2, _080348F0 @ =gEnemyParty
- mov r10, r2
- add r0, r10
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldrb r1, [r6]
- lsls r0, r1, 1
- ldr r2, _080348EC @ =gUnknown_02024A6A
- adds r0, r2
- ldrh r0, [r0]
- muls r0, r7
- add r0, r10
- bl sub_8031794
- ldrb r0, [r6]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _080348F4 @ =gUnknown_02024E8C
- mov r9, r0
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r6]
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r9
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _080348F8 @ =gUnknown_02024BE0
- ldrb r1, [r6]
- adds r1, r4
- strb r0, [r1]
- ldr r5, _080348FC @ =gSprites
- ldrb r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08034900 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r2, [r6]
- adds r0, r2, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds 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, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r2, [r6]
- adds r4, r2, r4
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08034904 @ =gUnknown_02024E84
- adds r2, r1
- ldrb r1, [r2]
- bl StartSpriteAnim
- ldrb r4, [r6]
- lsls r0, r4, 1
- ldr r2, _080348EC @ =gUnknown_02024A6A
- adds r0, r2
- ldrh r0, [r0]
- muls r0, r7
- add r0, r10
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
- ldr r1, _08034908 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803490C @ =sub_8033018
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080348E8: .4byte gUnknown_02024A60
-_080348EC: .4byte gUnknown_02024A6A
-_080348F0: .4byte gEnemyParty
-_080348F4: .4byte gUnknown_02024E8C
-_080348F8: .4byte gUnknown_02024BE0
-_080348FC: .4byte gSprites
-_08034900: .4byte 0x0000ff10
-_08034904: .4byte gUnknown_02024E84
-_08034908: .4byte gUnknown_03004330
-_0803490C: .4byte sub_8033018
- thumb_func_end sub_80347B8
-
- thumb_func_start sub_8034910
-sub_8034910: @ 8034910
- push {r4,lr}
- ldr r1, _08034948 @ =gUnknown_02024A6A
- ldr r4, _0803494C @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r2, r0, 1
- adds r2, r1
- ldr r3, _08034950 @ =gUnknown_02023A60
- lsls r0, 9
- adds r1, r3, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2]
- ldrb r0, [r4]
- lsls r1, r0, 9
- adds r3, 0x2
- adds r1, r3
- ldrb r1, [r1]
- bl sub_803495C
- ldr r1, _08034954 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08034958 @ =sub_80333D4
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08034948: .4byte gUnknown_02024A6A
-_0803494C: .4byte gUnknown_02024A60
-_08034950: .4byte gUnknown_02023A60
-_08034954: .4byte gUnknown_03004330
-_08034958: .4byte sub_80333D4
- thumb_func_end sub_8034910
-
- thumb_func_start sub_803495C
-sub_803495C: @ 803495C
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8032AA8
- ldr r0, _08034AB8 @ =gUnknown_02024A6A
- lsls r4, r6, 1
- adds r4, r0
- ldr r0, _08034ABC @ =gUnknown_02023A60
- lsls r1, r6, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0x64
- mov r9, r1
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- ldr r5, _08034AC0 @ =gEnemyParty
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _08034AC4 @ =sub_80312F0
- bl object_new_hidden_with_callback
- ldr r1, _08034AC8 @ =gUnknown_0300434C
- mov r10, r1
- add r10, r6
- mov r1, r10
- strb r0, [r1]
- ldrh r0, [r4]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- adds r0, r5
- adds r1, r6, 0
- bl sub_8031794
- adds r0, r6, 0
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _08034ACC @ =gUnknown_02024E8C
- mov r9, r0
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r9
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _08034AD0 @ =gUnknown_02024BE0
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, _08034AD4 @ =gSprites
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- mov r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x30]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r6, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08034AD8 @ =gUnknown_02024E84
- adds r6, r1
- ldrb r1, [r6]
- bl StartSpriteAnim
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08034ADC @ =SpriteCallbackDummy
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFE
- bl sub_8046400
- mov r1, r10
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x2E]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08034AB8: .4byte gUnknown_02024A6A
-_08034ABC: .4byte gUnknown_02023A60
-_08034AC0: .4byte gEnemyParty
-_08034AC4: .4byte sub_80312F0
-_08034AC8: .4byte gUnknown_0300434C
-_08034ACC: .4byte gUnknown_02024E8C
-_08034AD0: .4byte gUnknown_02024BE0
-_08034AD4: .4byte gSprites
-_08034AD8: .4byte gUnknown_02024E84
-_08034ADC: .4byte SpriteCallbackDummy
- thumb_func_end sub_803495C
-
- thumb_func_start sub_8034AE0
-sub_8034AE0: @ 8034AE0
- push {r4-r6,lr}
- ldr r1, _08034B10 @ =gUnknown_02023A60
- ldr r6, _08034B14 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r3, [r0]
- cmp r3, 0
- bne _08034B24
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _08034B18 @ =0x02017810
- adds r0, r1
- strb r3, [r0, 0x4]
- ldr r1, _08034B1C @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08034B20 @ =sub_8034B74
- str r1, [r0]
- b _08034B60
- .align 2, 0
-_08034B10: .4byte gUnknown_02023A60
-_08034B14: .4byte gUnknown_02024A60
-_08034B18: .4byte 0x02017810
-_08034B1C: .4byte gUnknown_03004330
-_08034B20: .4byte sub_8034B74
-_08034B24:
- ldr r5, _08034B68 @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08034B6C @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldrb r0, [r6]
- bl sub_8032A08
- ldr r1, _08034B70 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl sub_80334EC
-_08034B60:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08034B68: .4byte gUnknown_02024BE0
-_08034B6C: .4byte gSprites
-_08034B70: .4byte gUnknown_03004340
- thumb_func_end sub_8034AE0
-
- thumb_func_start sub_8034B74
-sub_8034B74: @ 8034B74
- push {r4,r5,lr}
- ldr r5, _08034B90 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _08034B94 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _08034B98
- cmp r0, 0x1
- beq _08034BC4
- b _08034BEC
- .align 2, 0
-_08034B90: .4byte gUnknown_02024A60
-_08034B94: .4byte 0x02017810
-_08034B98:
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08034BB4
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08034BB4:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08034BEC
-_08034BC4:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08034BEC
- strb r0, [r3, 0x4]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x2
- bl move_anim_start_t4
- ldr r1, _08034BF4 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08034BF8 @ =sub_8033160
- str r1, [r0]
-_08034BEC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08034BF4: .4byte gUnknown_03004330
-_08034BF8: .4byte sub_8033160
- thumb_func_end sub_8034B74
-
- thumb_func_start sub_8034BFC
-sub_8034BFC: @ 8034BFC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r3, _08034C18 @ =gTrainerBattleOpponent
- ldrh r1, [r3]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _08034C1C
- bl GetSecretBaseTrainerPicIndex
- b _08034C42
- .align 2, 0
-_08034C18: .4byte gTrainerBattleOpponent
-_08034C1C:
- ldr r0, _08034C30 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08034C34
- bl get_trainer_class_pic_index
- b _08034C42
- .align 2, 0
-_08034C30: .4byte gUnknown_020239F8
-_08034C34:
- movs r0, 0x80
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _08034C48
- bl sub_8135FBC
-_08034C42:
- lsls r0, 24
- lsrs r0, 24
- b _08034C56
-_08034C48:
- ldr r2, _08034D88 @ =gTrainers
- ldrh r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x3]
-_08034C56:
- mov r9, r0
- ldr r0, _08034D8C @ =gUnknown_02024A60
- mov r8, r0
- ldrb r1, [r0]
- mov r0, r9
- bl sub_8031A6C
- mov r1, r8
- ldrb r0, [r1]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- bl GetMonSpriteTemplate_803C5A0
- ldr r5, _08034D90 @ =gUnknown_02024E8C
- ldr r1, _08034D94 @ =gTrainerFrontPicCoords
- mov r2, r9
- lsls r0, r2, 2
- adds r0, r1
- ldrb r0, [r0]
- movs r4, 0x8
- subs r4, r0
- lsls r4, 18
- movs r0, 0xA0
- lsls r0, 14
- adds r4, r0
- asrs r4, 16
- mov r1, r8
- ldrb r0, [r1]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- movs r1, 0xB0
- adds r2, r4, 0
- bl CreateSprite
- ldr r5, _08034D98 @ =gUnknown_02024BE0
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- strb r0, [r1]
- ldr r4, _08034D9C @ =gSprites
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08034DA0 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldr r0, _08034DA4 @ =gTrainerFrontPicPaletteTable
- mov r1, r9
- lsls r6, r1, 3
- adds r0, r6, r0
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r1, [r1]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r4
- lsls r0, 4
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r0
- strb r1, [r2, 0x5]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r1, 0x38]
- ldr r0, _08034DA8 @ =gTrainerFrontPicTable
- adds r6, r0
- ldrh r0, [r6, 0x6]
- bl GetSpriteTileStartByTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldr r2, _08034DAC @ =0x000003ff
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _08034DB0 @ =0xfffffc00
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r2, r9
- strh r2, [r0, 0x6]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _08034DB4 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _08034DB8 @ =gUnknown_03004330
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08034DBC @ =sub_8032B4C
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08034D88: .4byte gTrainers
-_08034D8C: .4byte gUnknown_02024A60
-_08034D90: .4byte gUnknown_02024E8C
-_08034D94: .4byte gTrainerFrontPicCoords
-_08034D98: .4byte gUnknown_02024BE0
-_08034D9C: .4byte gSprites
-_08034DA0: .4byte 0x0000ff10
-_08034DA4: .4byte gTrainerFrontPicPaletteTable
-_08034DA8: .4byte gTrainerFrontPicTable
-_08034DAC: .4byte 0x000003ff
-_08034DB0: .4byte 0xfffffc00
-_08034DB4: .4byte sub_80313A0
-_08034DB8: .4byte gUnknown_03004330
-_08034DBC: .4byte sub_8032B4C
- thumb_func_end sub_8034BFC
-
- thumb_func_start sub_8034DC0
-sub_8034DC0: @ 8034DC0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r3, _08034DDC @ =gTrainerBattleOpponent
- ldrh r1, [r3]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _08034DE0
- bl GetSecretBaseTrainerPicIndex
- b _08034E06
- .align 2, 0
-_08034DDC: .4byte gTrainerBattleOpponent
-_08034DE0:
- ldr r0, _08034DF4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08034DF8
- bl get_trainer_class_pic_index
- b _08034E06
- .align 2, 0
-_08034DF4: .4byte gUnknown_020239F8
-_08034DF8:
- movs r0, 0x80
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _08034E0C
- bl sub_8135FBC
-_08034E06:
- lsls r0, 24
- lsrs r0, 24
- b _08034E1A
-_08034E0C:
- ldr r2, _08034F4C @ =gTrainers
- ldrh r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x3]
-_08034E1A:
- mov r9, r0
- ldr r0, _08034F50 @ =gUnknown_02024A60
- mov r8, r0
- ldrb r1, [r0]
- mov r0, r9
- bl sub_8031A6C
- mov r1, r8
- ldrb r0, [r1]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- bl GetMonSpriteTemplate_803C5A0
- ldr r0, _08034F54 @ =gUnknown_02024E8C
- ldr r2, _08034F58 @ =gTrainerFrontPicCoords
- mov r3, r9
- lsls r1, r3, 2
- adds r1, r2
- ldrb r1, [r1]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 14
- adds r2, r1
- asrs r2, 16
- movs r1, 0xB0
- movs r3, 0x1E
- bl CreateSprite
- ldr r5, _08034F5C @ =gUnknown_02024BE0
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- strb r0, [r1]
- ldr r4, _08034F60 @ =gSprites
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x60
- strh r1, [r0, 0x24]
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x20]
- adds r1, 0x20
- strh r1, [r0, 0x20]
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08034F64 @ =0x0000fffe
- strh r1, [r0, 0x2E]
- ldr r0, _08034F68 @ =gTrainerFrontPicPaletteTable
- mov r3, r9
- lsls r6, r3, 3
- adds r0, r6, r0
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r1, [r1]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r4
- lsls r0, 4
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r0
- strb r1, [r2, 0x5]
- mov r3, r8
- ldrb r0, [r3]
- adds r0, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r1, 0x38]
- ldr r0, _08034F6C @ =gTrainerFrontPicTable
- adds r6, r0
- ldrh r0, [r6, 0x6]
- bl GetSpriteTileStartByTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldr r2, _08034F70 @ =0x000003ff
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _08034F74 @ =0xfffffc00
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- mov r3, r8
- ldrb r0, [r3]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r1, r9
- strh r1, [r0, 0x6]
- ldrb r0, [r3]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _08034F78 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _08034F7C @ =gUnknown_03004330
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08034F80 @ =sub_8032B84
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08034F4C: .4byte gTrainers
-_08034F50: .4byte gUnknown_02024A60
-_08034F54: .4byte gUnknown_02024E8C
-_08034F58: .4byte gTrainerFrontPicCoords
-_08034F5C: .4byte gUnknown_02024BE0
-_08034F60: .4byte gSprites
-_08034F64: .4byte 0x0000fffe
-_08034F68: .4byte gTrainerFrontPicPaletteTable
-_08034F6C: .4byte gTrainerFrontPicTable
-_08034F70: .4byte 0x000003ff
-_08034F74: .4byte 0xfffffc00
-_08034F78: .4byte sub_80313A0
-_08034F7C: .4byte gUnknown_03004330
-_08034F80: .4byte sub_8032B84
- thumb_func_end sub_8034DC0
-
- thumb_func_start sub_8034F84
-sub_8034F84: @ 8034F84
- push {r4-r6,lr}
- ldr r6, _08035014 @ =gUnknown_02024BE0
- ldr r4, _08035018 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _0803501C @ =gSprites
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x8C
- lsls r1, 1
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08035020 @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08035024 @ =SpriteCallbackDummy
- bl oamt_set_x3A_32
- ldr r1, _08035028 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803502C @ =sub_8032BBC
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08035014: .4byte gUnknown_02024BE0
-_08035018: .4byte gUnknown_02024A60
-_0803501C: .4byte gSprites
-_08035020: .4byte sub_8078B34
-_08035024: .4byte SpriteCallbackDummy
-_08035028: .4byte gUnknown_03004330
-_0803502C: .4byte sub_8032BBC
- thumb_func_end sub_8034F84
-
- thumb_func_start sub_8035030
-sub_8035030: @ 8035030
- push {r4,r5,lr}
- ldr r5, _08035074 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _08035078 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- bne _0803507C
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08035062
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08035062:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _080350B8
- .align 2, 0
-_08035074: .4byte gUnknown_02024A60
-_08035078: .4byte 0x02017810
-_0803507C:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080350B8
- strb r0, [r3, 0x4]
- movs r0, 0x10
- movs r1, 0x3F
- bl PlaySE12WithPanning
- ldr r2, _080350C0 @ =gSprites
- ldr r1, _080350C4 @ =gUnknown_02024BE0
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080350C8 @ =sub_8010384
- str r1, [r0]
- ldr r1, _080350CC @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080350D0 @ =sub_803311C
- str r1, [r0]
-_080350B8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080350C0: .4byte gSprites
-_080350C4: .4byte gUnknown_02024BE0
-_080350C8: .4byte sub_8010384
-_080350CC: .4byte gUnknown_03004330
-_080350D0: .4byte sub_803311C
- thumb_func_end sub_8035030
-
- thumb_func_start sub_80350D4
-sub_80350D4: @ 80350D4
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80350D4
-
- thumb_func_start sub_80350E0
-sub_80350E0: @ 80350E0
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80350E0
-
- thumb_func_start sub_80350EC
-sub_80350EC: @ 80350EC
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80350EC
-
- thumb_func_start sub_80350F8
-sub_80350F8: @ 80350F8
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80350F8
-
- thumb_func_start sub_8035104
-sub_8035104: @ 8035104
- push {r4-r6,lr}
- ldr r6, _080351E8 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- beq _08035116
- b _08035226
-_08035116:
- ldr r0, _080351EC @ =gUnknown_02023A60
- mov r12, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _080351F0 @ =gUnknown_0202F7C4
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _080351F4 @ =gUnknown_0202F7BC
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x4
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x5
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r4, _080351F8 @ =gUnknown_0202F7B8
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x6
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x7
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r3, r1
- mov r1, r12
- adds r1, 0x8
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 16
- orrs r3, r1
- mov r1, r12
- adds r1, 0x9
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 24
- orrs r3, r1
- str r3, [r4]
- ldr r3, _080351FC @ =gUnknown_0202F7BE
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _08035200 @ =gUnknown_0202F7C0
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0xC
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0xD
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r3, _08035204 @ =gUnknown_0202F7B4
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _08035208 @ =gUnknown_02024E70
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r3
- ldr r2, [r2]
- str r2, [r1]
- ldrb r1, [r5]
- bl sub_8031720
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0803520C
- bl sub_80334EC
- b _08035226
- .align 2, 0
-_080351E8: .4byte gUnknown_02024A60
-_080351EC: .4byte gUnknown_02023A60
-_080351F0: .4byte gUnknown_0202F7C4
-_080351F4: .4byte gUnknown_0202F7BC
-_080351F8: .4byte gUnknown_0202F7B8
-_080351FC: .4byte gUnknown_0202F7BE
-_08035200: .4byte gUnknown_0202F7C0
-_08035204: .4byte gUnknown_0202F7B4
-_08035208: .4byte gUnknown_02024E70
-_0803520C:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0803522C @ =0x02017810
- adds r0, r1
- strb r2, [r0, 0x4]
- ldr r1, _08035230 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08035234 @ =sub_8035238
- str r1, [r0]
-_08035226:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803522C: .4byte 0x02017810
-_08035230: .4byte gUnknown_03004330
-_08035234: .4byte sub_8035238
- thumb_func_end sub_8035104
-
- thumb_func_start sub_8035238
-sub_8035238: @ 8035238
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _0803527C @ =gUnknown_02023A60
- ldr r5, _08035280 @ =gUnknown_02024A60
- ldrb r3, [r5]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r9, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r6, r2, 0x2
- mov r8, r6
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- adds r2, 0xB
- adds r1, r2
- ldrb r7, [r1]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r6, _08035284 @ =0x02017810
- adds r0, r6
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _080352C6
- cmp r2, 0x1
- bgt _08035288
- cmp r2, 0
- beq _08035292
- b _08035390
- .align 2, 0
-_0803527C: .4byte gUnknown_02023A60
-_08035280: .4byte gUnknown_02024A60
-_08035284: .4byte 0x02017810
-_08035288:
- cmp r2, 0x2
- beq _080352EC
- cmp r2, 0x3
- beq _08035358
- b _08035390
-_08035292:
- lsls r1, r3, 2
- adds r0, r6, 0
- subs r0, 0x10
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0xC
- ands r0, r2
- cmp r0, 0x4
- bne _080352B6
- movs r0, 0x8
- orrs r0, r2
- strb r0, [r1]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_080352B6:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08035390
-_080352C6:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08035390
- movs r0, 0
- bl sub_80326EC
- adds r0, r4, 0
- bl move_anim_start_t1
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08035390
-_080352EC:
- ldr r0, _08035348 @ =gUnknown_0202F7AC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _0803534C @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08035390
- movs r0, 0x1
- bl sub_80326EC
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r4, r6, 0
- subs r4, 0x10
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08035334
- cmp r7, 0x1
- bhi _08035334
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0]
- movs r1, 0x9
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_08035334:
- ldr r0, _08035350 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08035354 @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x4]
- b _08035390
- .align 2, 0
-_08035348: .4byte gUnknown_0202F7AC
-_0803534C: .4byte gUnknown_0202F7B1
-_08035350: .4byte gUnknown_02024A60
-_08035354: .4byte 0x02017810
-_08035358:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08035390
- bl sub_8031F24
- ldrb r0, [r5]
- lsls r2, r0, 9
- mov r3, r9
- adds r1, r2, r3
- ldrb r1, [r1]
- add r2, r8
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl sub_80324BC
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r4, [r0, 0x4]
- bl sub_80334EC
-_08035390:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8035238
-
- thumb_func_start sub_803539C
-sub_803539C: @ 803539C
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080353E0 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080353E4 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r4, _080353E8 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 9
- ldr r1, _080353EC @ =gUnknown_02023A62
- adds r0, r1
- ldrh r0, [r0]
- bl sub_8120AA8
- ldr r0, _080353F0 @ =gUnknown_03004210
- ldr r1, _080353F4 @ =gUnknown_020238CC
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _080353F8 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080353FC @ =sub_80331D0
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080353E0: .4byte gUnknown_030042A4
-_080353E4: .4byte gUnknown_030042A0
-_080353E8: .4byte gUnknown_02024A60
-_080353EC: .4byte gUnknown_02023A62
-_080353F0: .4byte gUnknown_03004210
-_080353F4: .4byte gUnknown_020238CC
-_080353F8: .4byte gUnknown_03004330
-_080353FC: .4byte sub_80331D0
- thumb_func_end sub_803539C
-
- thumb_func_start sub_8035400
-sub_8035400: @ 8035400
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_8035400
-
- thumb_func_start sub_803540C
-sub_803540C: @ 803540C
- push {lr}
- bl sub_8036B0C
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_803540C
-
- thumb_func_start sub_803541C
-sub_803541C: @ 803541C
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_803541C
-
- thumb_func_start sub_8035428
-sub_8035428: @ 8035428
- push {r4-r6,lr}
- ldr r6, _0803545C @ =gUnknown_02024A60
- ldrb r0, [r6]
- lsls r0, 9
- ldr r1, _08035460 @ =gUnknown_02023A64
- adds r5, r0, r1
- ldr r0, _08035464 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x93
- lsls r0, 3
- ands r0, r1
- cmp r0, 0
- beq _080354F8
- bl sub_810715C
- bl sub_81072A8
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- beq _08035468
- cmp r4, 0x5
- bne _08035474
- movs r0, 0x1
- movs r1, 0x4
- b _0803546C
- .align 2, 0
-_0803545C: .4byte gUnknown_02024A60
-_08035460: .4byte gUnknown_02023A64
-_08035464: .4byte gUnknown_020239F8
-_08035468:
- movs r0, 0x1
- movs r1, 0x3
-_0803546C:
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- b _080354E0
-_08035474:
- ldr r3, _080354E8 @ =gBattleMoves
- lsls r0, r4, 1
- adds r2, r5, r0
- ldrh r1, [r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x6]
- movs r0, 0x12
- ands r0, r1
- cmp r0, 0
- beq _08035494
- ldr r1, _080354EC @ =gUnknown_02024C08
- ldrb r0, [r6]
- strb r0, [r1]
-_08035494:
- ldrh r1, [r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x6]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080354CE
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r5, _080354EC @ =gUnknown_02024C08
- strb r0, [r5]
- ldr r0, _080354F0 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _080354F4 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080354CE
- movs r0, 0x2
- bl battle_get_side_with_given_state
- strb r0, [r5]
-_080354CE:
- ldr r0, _080354EC @ =gUnknown_02024C08
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- movs r0, 0x1
- movs r1, 0xA
- adds r2, r4, 0
- bl dp01_build_cmdbuf_x21_a_bb
-_080354E0:
- bl sub_80334EC
- b _0803558A
- .align 2, 0
-_080354E8: .4byte gBattleMoves
-_080354EC: .4byte gUnknown_02024C08
-_080354F0: .4byte gUnknown_02024C0C
-_080354F4: .4byte gBitTable
-_080354F8:
- movs r6, 0x3
-_080354FA:
- bl Random
- adds r4, r0, 0
- ands r4, r6
- lsls r0, r4, 1
- adds r0, r5, r0
- ldrh r2, [r0]
- cmp r2, 0
- beq _080354FA
- ldr r1, _08035534 @ =gBattleMoves
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x6]
- movs r0, 0x12
- ands r0, r1
- cmp r0, 0
- beq _0803553C
- ldr r0, _08035538 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- movs r0, 0x1
- movs r1, 0xA
- adds r2, r4, 0
- bl dp01_build_cmdbuf_x21_a_bb
- b _08035586
- .align 2, 0
-_08035534: .4byte gBattleMoves
-_08035538: .4byte gUnknown_02024A60
-_0803553C:
- ldr r0, _0803556C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08035570
- bl Random
- movs r1, 0x2
- ands r1, r0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r1, 0
- bl battle_get_side_with_given_state
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 16
- orrs r2, r4
- movs r0, 0x1
- movs r1, 0xA
- bl dp01_build_cmdbuf_x21_a_bb
- b _08035586
- .align 2, 0
-_0803556C: .4byte gUnknown_020239F8
-_08035570:
- movs r0, 0
- bl battle_get_side_with_given_state
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 16
- orrs r2, r4
- movs r0, 0x1
- movs r1, 0xA
- bl dp01_build_cmdbuf_x21_a_bb
-_08035586:
- bl sub_80334EC
-_0803558A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8035428
-
- thumb_func_start sub_8035590
-sub_8035590: @ 8035590
- push {lr}
- ldr r1, _080355B4 @ =0x02000000
- ldr r0, _080355B8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsrs r0, 1
- lsls r0, 1
- ldr r2, _080355BC @ =0x000160d4
- adds r0, r2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- bl dp01_build_cmdbuf_x23_aa_0
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_080355B4: .4byte 0x02000000
-_080355B8: .4byte gUnknown_02024A60
-_080355BC: .4byte 0x000160d4
- thumb_func_end sub_8035590
-
- thumb_func_start sub_80355C0
-sub_80355C0: @ 80355C0
- push {r4-r6,lr}
- ldr r6, _08035604 @ =0x02000000
- ldr r5, _08035608 @ =gUnknown_02024A60
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 25
- ldr r1, _0803560C @ =0x000160c8
- adds r0, r1
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _08035664
- bl sub_8036CD4
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bne _0803568A
- ldr r0, _08035610 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08035614
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- b _08035628
- .align 2, 0
-_08035604: .4byte 0x02000000
-_08035608: .4byte gUnknown_02024A60
-_0803560C: .4byte 0x000160c8
-_08035610: .4byte gUnknown_020239F8
-_08035614:
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0x3
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r5, r0, 24
-_08035628:
- movs r4, 0
- b _0803562E
-_0803562C:
- adds r4, 0x1
-_0803562E:
- cmp r4, 0x5
- bgt _0803568A
- movs r0, 0x64
- muls r0, r4
- ldr r1, _0803565C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0803562C
- ldr r1, _08035660 @ =gUnknown_02024A6A
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- beq _0803562C
- lsls r0, r5, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- beq _0803562C
- b _0803568A
- .align 2, 0
-_0803565C: .4byte gEnemyParty
-_08035660: .4byte gUnknown_02024A6A
-_08035664:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 25
- ldr r2, _080356B0 @ =0x000160c8
- adds r0, r2
- adds r0, r6
- ldrb r4, [r0]
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 25
- ldr r1, _080356B0 @ =0x000160c8
- adds r0, r1
- adds r0, r6
- movs r1, 0x6
- strb r1, [r0]
-_0803568A:
- ldr r1, _080356B4 @ =0x02000000
- ldr r0, _080356B8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- ldr r2, _080356BC @ =0x00016068
- adds r0, r2
- adds r0, r1
- strb r4, [r0]
- lsls r1, r4, 24
- lsrs r1, 24
- movs r0, 0x1
- movs r2, 0
- bl dp01_build_cmdbuf_x22_a_three_bytes
- bl sub_80334EC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080356B0: .4byte 0x000160c8
-_080356B4: .4byte 0x02000000
-_080356B8: .4byte gUnknown_02024A60
-_080356BC: .4byte 0x00016068
- thumb_func_end sub_80355C0
-
- thumb_func_start sub_80356C0
-sub_80356C0: @ 80356C0
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80356C0
-
- thumb_func_start sub_80356CC
-sub_80356CC: @ 80356CC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r0, 0
- bl load_gfxc_health_bar
- ldr r3, _08035744 @ =gUnknown_02023A60
- ldr r0, _08035748 @ =gUnknown_02024A60
- mov r9, r0
- ldrb r4, [r0]
- lsls r2, r4, 9
- adds r0, r3, 0x3
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r1, 8
- adds r3, 0x2
- adds r2, r3
- ldrb r0, [r2]
- orrs r0, r1
- lsls r0, 16
- asrs r7, r0, 16
- ldr r0, _0803574C @ =0x00007fff
- cmp r7, r0
- beq _0803575C
- ldr r6, _08035750 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _08035754 @ =gEnemyParty
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- mov r8, r0
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _08035758 @ =gUnknown_03004340
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl sub_8043D84
- b _08035786
- .align 2, 0
-_08035744: .4byte gUnknown_02023A60
-_08035748: .4byte gUnknown_02024A60
-_0803574C: .4byte 0x00007fff
-_08035750: .4byte gUnknown_02024A6A
-_08035754: .4byte gEnemyParty
-_08035758: .4byte gUnknown_03004340
-_0803575C:
- ldr r1, _080357A4 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080357A8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _080357AC @ =gUnknown_03004340
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl sub_8043D84
-_08035786:
- ldr r1, _080357B0 @ =gUnknown_03004330
- ldr r0, _080357B4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080357B8 @ =sub_80330C8
- str r1, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080357A4: .4byte gUnknown_02024A6A
-_080357A8: .4byte gEnemyParty
-_080357AC: .4byte gUnknown_03004340
-_080357B0: .4byte gUnknown_03004330
-_080357B4: .4byte gUnknown_02024A60
-_080357B8: .4byte sub_80330C8
- thumb_func_end sub_80356CC
-
- thumb_func_start sub_80357BC
-sub_80357BC: @ 80357BC
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80357BC
-
- thumb_func_start sub_80357C8
-sub_80357C8: @ 80357C8
- push {r4,lr}
- ldr r4, _08035820 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08035818
- ldr r0, _08035824 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _08035828 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0803582C @ =gEnemyParty
- adds r1, r2
- movs r2, 0x9
- bl sub_8045A5C
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _08035830 @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, _08035834 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08035838 @ =sub_8033494
- str r1, [r0]
-_08035818:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08035820: .4byte gUnknown_02024A60
-_08035824: .4byte gUnknown_03004340
-_08035828: .4byte gUnknown_02024A6A
-_0803582C: .4byte gEnemyParty
-_08035830: .4byte 0x02017810
-_08035834: .4byte gUnknown_03004330
-_08035838: .4byte sub_8033494
- thumb_func_end sub_80357C8
-
- thumb_func_start sub_803583C
-sub_803583C: @ 803583C
- push {r4,r5,lr}
- ldr r5, _08035894 @ =gUnknown_02024A60
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _0803588C
- ldr r4, _08035898 @ =gUnknown_02023A60
- ldrb r3, [r5]
- lsls r3, 9
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- adds r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- adds r2, r4, 0x4
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 16
- orrs r1, r2
- adds r4, 0x5
- adds r3, r4
- ldrb r2, [r3]
- lsls r2, 24
- orrs r1, r2
- bl move_anim_start_t2_for_situation
- ldr r1, _0803589C @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080358A0 @ =sub_8033494
- str r1, [r0]
-_0803588C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08035894: .4byte gUnknown_02024A60
-_08035898: .4byte gUnknown_02023A60
-_0803589C: .4byte gUnknown_03004330
-_080358A0: .4byte sub_8033494
- thumb_func_end sub_803583C
-
- thumb_func_start sub_80358A4
-sub_80358A4: @ 80358A4
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358A4
-
- thumb_func_start sub_80358B0
-sub_80358B0: @ 80358B0
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358B0
-
- thumb_func_start sub_80358BC
-sub_80358BC: @ 80358BC
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358BC
-
- thumb_func_start sub_80358C8
-sub_80358C8: @ 80358C8
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358C8
-
- thumb_func_start sub_80358D4
-sub_80358D4: @ 80358D4
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358D4
-
- thumb_func_start sub_80358E0
-sub_80358E0: @ 80358E0
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358E0
-
- thumb_func_start sub_80358EC
-sub_80358EC: @ 80358EC
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358EC
-
- thumb_func_start sub_80358F8
-sub_80358F8: @ 80358F8
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358F8
-
- thumb_func_start sub_8035904
-sub_8035904: @ 8035904
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_8035904
-
- thumb_func_start sub_8035910
-sub_8035910: @ 8035910
- push {lr}
- ldr r2, _08035928 @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035928: .4byte gUnknown_020238C8
- thumb_func_end sub_8035910
-
- thumb_func_start sub_803592C
-sub_803592C: @ 803592C
- push {lr}
- ldr r3, _08035958 @ =gUnknown_020238C8
- ldr r1, _0803595C @ =gUnknown_02023A60
- ldr r0, _08035960 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x7F
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035958: .4byte gUnknown_020238C8
-_0803595C: .4byte gUnknown_02023A60
-_08035960: .4byte gUnknown_02024A60
- thumb_func_end sub_803592C
-
- thumb_func_start sub_8035964
-sub_8035964: @ 8035964
- push {lr}
- ldr r2, _08035978 @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035978: .4byte gUnknown_020238C8
- thumb_func_end sub_8035964
-
- thumb_func_start sub_803597C
-sub_803597C: @ 803597C
- push {lr}
- ldr r3, _080359A0 @ =gUnknown_020238C8
- ldr r1, [r3]
- lsls r1, 24
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 7
- ldrb r2, [r3]
- movs r0, 0x7F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_080359A0: .4byte gUnknown_020238C8
- thumb_func_end sub_803597C
-
- thumb_func_start dp01t_29_7_blink
-dp01t_29_7_blink: @ 80359A4
- push {r4,lr}
- ldr r3, _080359CC @ =gSprites
- ldr r2, _080359D0 @ =gUnknown_02024BE0
- ldr r4, _080359D4 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _080359D8
- bl sub_80334EC
- b _08035A02
- .align 2, 0
-_080359CC: .4byte gSprites
-_080359D0: .4byte gUnknown_02024BE0
-_080359D4: .4byte gUnknown_02024A60
-_080359D8:
- ldr r1, _08035A08 @ =gUnknown_02024E6D
- movs r0, 0x1
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r4]
- bl sub_8047858
- ldr r1, _08035A0C @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08035A10 @ =bx_blink_t7
- str r1, [r0]
-_08035A02:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08035A08: .4byte gUnknown_02024E6D
-_08035A0C: .4byte gUnknown_03004330
-_08035A10: .4byte bx_blink_t7
- thumb_func_end dp01t_29_7_blink
-
- thumb_func_start sub_8035A14
-sub_8035A14: @ 8035A14
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_8035A14
-
- thumb_func_start sub_8035A20
-sub_8035A20: @ 8035A20
- push {r4,lr}
- ldr r4, _08035A5C @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _08035A34
- movs r3, 0xC0
-_08035A34:
- ldr r2, _08035A60 @ =gUnknown_02023A60
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- lsls r1, r3, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- bl sub_80334EC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08035A5C: .4byte gUnknown_02024A60
-_08035A60: .4byte gUnknown_02023A60
- thumb_func_end sub_8035A20
-
- thumb_func_start sub_8035A64
-sub_8035A64: @ 8035A64
- push {lr}
- ldr r2, _08035A8C @ =gUnknown_02023A60
- ldr r0, _08035A90 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035A8C: .4byte gUnknown_02023A60
-_08035A90: .4byte gUnknown_02024A60
- thumb_func_end sub_8035A64
-
- thumb_func_start sub_8035A94
-sub_8035A94: @ 8035A94
- push {lr}
- ldr r1, _08035AC4 @ =gUnknown_02024A6A
- ldr r0, _08035AC8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08035ACC @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- movs r2, 0x5
- bl PlayCry3
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035AC4: .4byte gUnknown_02024A6A
-_08035AC8: .4byte gUnknown_02024A60
-_08035ACC: .4byte gEnemyParty
- thumb_func_end sub_8035A94
-
- thumb_func_start dp01t_2E_7_battle_intro
-dp01t_2E_7_battle_intro: @ 8035AD0
- push {lr}
- ldr r1, _08035AF8 @ =gUnknown_02023A60
- ldr r0, _08035AFC @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _08035B00 @ =gUnknown_02024DE8
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035AF8: .4byte gUnknown_02023A60
-_08035AFC: .4byte gUnknown_02024A60
-_08035B00: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_7_battle_intro
-
- thumb_func_start sub_8035B04
-sub_8035B04: @ 8035B04
- push {r4-r6,lr}
- ldr r5, _08035BE0 @ =gUnknown_02024BE0
- ldr r6, _08035BE4 @ =gUnknown_02024A60
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08035BE8 @ =gSprites
- adds r0, r4
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x8C
- lsls r1, 1
- strh r1, [r0, 0x32]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08035BEC @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08035BF0 @ =sub_8035C10
- bl oamt_set_x3A_32
- ldr r0, _08035BF4 @ =sub_8035C44
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08035BF8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r6]
- strh r0, [r1, 0x8]
- ldrb r3, [r6]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r2, _08035BFC @ =0x02017810
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08035BC2
- ldr r0, _08035C00 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, _08035C04 @ =sub_8044CA0
- str r1, [r0]
-_08035BC2:
- adds r2, 0x30
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _08035C08 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08035C0C @ =nullsub_45
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08035BE0: .4byte gUnknown_02024BE0
-_08035BE4: .4byte gUnknown_02024A60
-_08035BE8: .4byte gSprites
-_08035BEC: .4byte sub_8078B34
-_08035BF0: .4byte sub_8035C10
-_08035BF4: .4byte sub_8035C44
-_08035BF8: .4byte gTasks
-_08035BFC: .4byte 0x02017810
-_08035C00: .4byte gUnknown_02024E68
-_08035C04: .4byte sub_8044CA0
-_08035C08: .4byte gUnknown_03004330
-_08035C0C: .4byte nullsub_45
- thumb_func_end sub_8035B04
-
- thumb_func_start sub_8035C10
-sub_8035C10: @ 8035C10
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x6]
- bl sub_8031B74
- ldrh r0, [r4, 0x38]
- ldr r1, _08035C3C @ =0x000003ff
- ands r1, r0
- ldrh r2, [r4, 0x4]
- ldr r0, _08035C40 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08035C3C: .4byte 0x000003ff
-_08035C40: .4byte 0xfffffc00
- thumb_func_end sub_8035C10
-
- thumb_func_start sub_8035C44
-sub_8035C44: @ 8035C44
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r7, _08035C9C @ =gUnknown_02024A60
- ldrb r0, [r7]
- mov r9, r0
- ldr r1, _08035CA0 @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- strb r0, [r7]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08035C7E
- ldr r0, _08035CA4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08035CB0
-_08035C7E:
- ldr r0, _08035CA8 @ =gUnknown_02023A60
- ldrb r1, [r7]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, _08035CAC @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_803495C
- b _08035CF0
- .align 2, 0
-_08035C9C: .4byte gUnknown_02024A60
-_08035CA0: .4byte gTasks
-_08035CA4: .4byte gUnknown_020239F8
-_08035CA8: .4byte gUnknown_02023A60
-_08035CAC: .4byte gUnknown_02024A6A
-_08035CB0:
- ldr r4, _08035D14 @ =gUnknown_02023A60
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r4, 0x1
- adds r1, r4
- ldr r6, _08035D18 @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_803495C
- ldrb r0, [r7]
- movs r5, 0x2
- eors r0, r5
- strb r0, [r7]
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r1, r4
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_803495C
- ldrb r0, [r7]
- eors r0, r5
- strb r0, [r7]
-_08035CF0:
- ldr r1, _08035D1C @ =gUnknown_03004330
- ldr r2, _08035D20 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08035D24 @ =sub_8032E2C
- str r1, [r0]
- mov r0, r9
- strb r0, [r2]
- mov r0, r8
- bl DestroyTask
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08035D14: .4byte gUnknown_02023A60
-_08035D18: .4byte gUnknown_02024A6A
-_08035D1C: .4byte gUnknown_03004330
-_08035D20: .4byte gUnknown_02024A60
-_08035D24: .4byte sub_8032E2C
- thumb_func_end sub_8035C44
-
- thumb_func_start dp01t_30_7_0803D67C
-dp01t_30_7_0803D67C: @ 8035D28
- push {r4-r6,lr}
- ldr r1, _08035D50 @ =gUnknown_02023A60
- ldr r0, _08035D54 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08035D58
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08035D58
- bl sub_80334EC
- b _08035E12
- .align 2, 0
-_08035D50: .4byte gUnknown_02023A60
-_08035D54: .4byte gUnknown_02024A60
-_08035D58:
- ldr r3, _08035DA8 @ =gUnknown_02024A60
- ldrb r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r4, _08035DAC @ =0x02017810
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _08035DB0 @ =gUnknown_02023A60
- ldrb r2, [r3]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r6, r3, 0
- cmp r0, 0
- beq _08035DBC
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r4
- ldrb r2, [r3, 0x1]
- lsls r1, r2, 26
- lsrs r0, r1, 27
- cmp r0, 0x1
- bhi _08035DB4
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- lsls r0, 1
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
- b _08035E12
- .align 2, 0
-_08035DA8: .4byte gUnknown_02024A60
-_08035DAC: .4byte 0x02017810
-_08035DB0: .4byte gUnknown_02023A60
-_08035DB4:
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- strb r0, [r3, 0x1]
-_08035DBC:
- adds r5, r6, 0
- ldrb r0, [r5]
- lsls r3, r0, 9
- ldr r4, _08035E18 @ =gUnknown_02023A64
- adds r1, r3, r4
- subs r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- subs r4, 0x2
- adds r3, r4
- ldrb r3, [r3]
- bl sub_8044804
- ldr r2, _08035E1C @ =gUnknown_02024E68
- ldrb r1, [r5]
- adds r1, r2
- movs r2, 0
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _08035E20 @ =0x02017810
- adds r0, r3
- strb r2, [r0, 0x5]
- ldrb r1, [r5]
- lsls r0, r1, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08035E06
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x5D
- strb r1, [r0, 0x5]
-_08035E06:
- ldr r0, _08035E24 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08035E28 @ =sub_8035E2C
- str r0, [r1]
-_08035E12:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08035E18: .4byte gUnknown_02023A64
-_08035E1C: .4byte gUnknown_02024E68
-_08035E20: .4byte 0x02017810
-_08035E24: .4byte gUnknown_03004330
-_08035E28: .4byte sub_8035E2C
- thumb_func_end dp01t_30_7_0803D67C
-
- thumb_func_start sub_8035E2C
-sub_8035E2C: @ 8035E2C
- push {r4,lr}
- ldr r4, _08035E64 @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _08035E68 @ =0x02017810
- adds r0, r3
- ldrb r1, [r0, 0x5]
- adds r2, r1, 0x1
- strb r2, [r0, 0x5]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x5C
- bls _08035E5C
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r0, 0
- strb r0, [r1, 0x5]
- bl sub_80334EC
-_08035E5C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08035E64: .4byte gUnknown_02024A60
-_08035E68: .4byte 0x02017810
- thumb_func_end sub_8035E2C
-
- thumb_func_start sub_8035E6C
-sub_8035E6C: @ 8035E6C
- push {lr}
- ldr r0, _08035EA4 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r1, _08035EA8 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08035E9A
- ldr r2, _08035EAC @ =gTasks
- ldr r0, _08035EB0 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _08035EB4 @ =sub_8044CA0
- str r1, [r0]
-_08035E9A:
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035EA4: .4byte gUnknown_02024A60
-_08035EA8: .4byte 0x02017810
-_08035EAC: .4byte gTasks
-_08035EB0: .4byte gUnknown_02024E68
-_08035EB4: .4byte sub_8044CA0
- thumb_func_end sub_8035E6C
-
- thumb_func_start sub_8035EB8
-sub_8035EB8: @ 8035EB8
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_8035EB8
-
- thumb_func_start sub_8035EC4
-sub_8035EC4: @ 8035EC4
- push {r4,lr}
- ldr r4, _08035F14 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _08035F0A
- ldr r3, _08035F18 @ =gSprites
- ldr r0, _08035F1C @ =gUnknown_02024BE0
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldr r0, _08035F20 @ =gUnknown_02023A60
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- adds r2, 0x3E
- movs r0, 0x1
- ldrb r1, [r1]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- bl sub_8031F88
-_08035F0A:
- bl sub_80334EC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08035F14: .4byte gUnknown_02024A60
-_08035F18: .4byte gSprites
-_08035F1C: .4byte gUnknown_02024BE0
-_08035F20: .4byte gUnknown_02023A60
- thumb_func_end sub_8035EC4
-
- thumb_func_start dp01t_34_7_move_anim_start_t3
-dp01t_34_7_move_anim_start_t3: @ 8035F24
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _08035F68 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08035F7C
- ldr r5, _08035F6C @ =gUnknown_02023A60
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _08035F70
- bl sub_80334EC
- b _08035F7C
- .align 2, 0
-_08035F68: .4byte gUnknown_02024A60
-_08035F6C: .4byte gUnknown_02023A60
-_08035F70:
- ldr r0, _08035F84 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08035F88 @ =sub_80334C0
- str r0, [r1]
-_08035F7C:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08035F84: .4byte gUnknown_03004330
-_08035F88: .4byte sub_80334C0
- thumb_func_end dp01t_34_7_move_anim_start_t3
-
- thumb_func_start sub_8035F8C
-sub_8035F8C: @ 8035F8C
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_8035F8C
-
- thumb_func_start sub_8035F98
-sub_8035F98: @ 8035F98
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_8035F98
-
- thumb_func_start sub_8035FA4
-sub_8035FA4: @ 8035FA4
- push {lr}
- ldr r0, _08035FD8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0x2
- bne _08035FCE
- ldr r2, _08035FDC @ =gMain
- ldr r0, _08035FE0 @ =0x0000043d
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _08035FE4 @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_08035FCE:
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035FD8: .4byte gUnknown_020239F8
-_08035FDC: .4byte gMain
-_08035FE0: .4byte 0x0000043d
-_08035FE4: .4byte gUnknown_030042D0
- thumb_func_end sub_8035FA4
-
- thumb_func_start nullsub_46
-nullsub_46: @ 8035FE8
- bx lr
- thumb_func_end nullsub_46
-
- thumb_func_start ai_switch_perish_song
-ai_switch_perish_song: @ 8035FEC
- push {lr}
- ldr r1, _08036038 @ =gUnknown_02024C98
- ldr r0, _0803603C @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0803604C
- ldr r0, _08036040 @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xF]
- lsls r0, 28
- cmp r0, 0
- bne _0803604C
- adds r0, r2, 0
- bl battle_get_per_side_status
- ldr r1, _08036044 @ =0x02000000
- lsls r0, 24
- lsrs r0, 25
- ldr r2, _08036048 @ =0x000160c8
- adds r0, r2
- adds r0, r1
- movs r1, 0x6
- strb r1, [r0]
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- movs r0, 0x1
- b _0803604E
- .align 2, 0
-_08036038: .4byte gUnknown_02024C98
-_0803603C: .4byte gUnknown_02024A60
-_08036040: .4byte gUnknown_02024CA8
-_08036044: .4byte 0x02000000
-_08036048: .4byte 0x000160c8
-_0803604C:
- movs r0, 0
-_0803604E:
- pop {r1}
- bx r1
- thumb_func_end ai_switch_perish_song
-
- thumb_func_start sub_8036054
-sub_8036054: @ 8036054
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _0803606C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080360A0
- b _080361C8
- .align 2, 0
-_0803606C: .4byte gUnknown_020239F8
-_08036070:
- ldr r0, _08036094 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_get_per_side_status
- ldr r1, _08036098 @ =0x02000000
- lsls r0, 24
- lsrs r0, 25
- ldr r2, _0803609C @ =0x000160c8
- adds r0, r2
- adds r0, r1
- strb r6, [r0]
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- movs r0, 0x1
- b _080361CA
- .align 2, 0
-_08036094: .4byte gUnknown_02024A60
-_08036098: .4byte 0x02000000
-_0803609C: .4byte 0x000160c8
-_080360A0:
- ldr r4, _080361D8 @ =gBattleMons
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x58
- muls r0, r1
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x19
- beq _080360BC
- b _080361C8
-_080360BC:
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r2, r0, 24
- movs r6, 0
- adds r7, r4, 0
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r4, r0, r7
- movs r3, 0x20
- adds r3, r4
- mov r8, r3
-_080360D8:
- lsls r1, r6, 1
- ldr r0, _080361DC @ =gUnknown_02024A60
- ldrb r0, [r0]
- muls r0, r5
- adds r1, r0
- adds r0, r7, 0
- adds r0, 0xC
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _08036104
- ldrh r1, [r4]
- mov r3, r8
- ldrb r2, [r3]
- bl ai_rate_move
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0x2
- ands r1, r0
- cmp r1, 0
- bne _080361C8
-_08036104:
- adds r6, 0x1
- cmp r6, 0x3
- ble _080360D8
- movs r6, 0
- ldr r0, _080361E0 @ =gEnemyParty
- mov r9, r0
-_08036110:
- movs r0, 0x64
- adds r5, r6, 0
- muls r5, r0
- mov r2, r9
- adds r4, r5, r2
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080361C2
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _080361C2
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _080361C2
- ldr r1, _080361E4 @ =gUnknown_02024A6A
- ldr r0, _080361DC @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- beq _080361C2
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r2, r0, 24
- movs r4, 0
- mov r8, r5
- ldr r1, _080361D8 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r5, r0, r1
- adds r7, r5, 0
- adds r7, 0x20
-_0803617C:
- adds r1, r4, 0
- adds r1, 0xD
- mov r0, r8
- add r0, r9
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _080361BC
- ldrh r1, [r5]
- ldrb r2, [r7]
- bl ai_rate_move
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0x2
- ands r1, r0
- cmp r1, 0
- beq _080361BC
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080361BC
- b _08036070
-_080361BC:
- adds r4, 0x1
- cmp r4, 0x3
- ble _0803617C
-_080361C2:
- adds r6, 0x1
- cmp r6, 0x5
- ble _08036110
-_080361C8:
- movs r0, 0
-_080361CA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080361D8: .4byte gBattleMons
-_080361DC: .4byte gUnknown_02024A60
-_080361E0: .4byte gEnemyParty
-_080361E4: .4byte gUnknown_02024A6A
- thumb_func_end sub_8036054
-
- thumb_func_start sub_80361E8
-sub_80361E8: @ 80361E8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0x1
- bl ai_has_super_effective_move_on_field
- lsls r0, 24
- cmp r0, 0
- beq _08036214
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08036214
- b _08036400
-_08036214:
- ldr r1, _0803627C @ =gUnknown_02024C3C
- ldr r5, _08036280 @ =gUnknown_02024A60
- ldrb r3, [r5]
- lsls r0, r3, 1
- adds r4, r0, r1
- ldrh r1, [r4]
- cmp r1, 0
- bne _08036226
- b _08036400
-_08036226:
- ldr r0, _08036284 @ =0x0000ffff
- cmp r1, r0
- bne _0803622E
- b _08036400
-_0803622E:
- ldr r2, _08036288 @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _08036242
- b _08036400
-_08036242:
- ldr r0, _0803628C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080362AE
- mov r8, r3
- mov r0, r8
- bl battle_get_per_side_status
- movs r4, 0x2
- eors r0, r4
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r1, _08036290 @ =gUnknown_02024C0C
- ldrb r1, [r1]
- ldr r2, _08036294 @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08036298
- ldrb r7, [r5]
- b _080362B2
- .align 2, 0
-_0803627C: .4byte gUnknown_02024C3C
-_08036280: .4byte gUnknown_02024A60
-_08036284: .4byte 0x0000ffff
-_08036288: .4byte gBattleMoves
-_0803628C: .4byte gUnknown_020239F8
-_08036290: .4byte gUnknown_02024C0C
-_08036294: .4byte gBitTable
-_08036298:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- eors r0, r4
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r7, r0, 24
- b _080362B2
-_080362AE:
- adds r7, r3, 0
- mov r8, r7
-_080362B2:
- ldr r3, _080362D4 @ =gBattleMoves
- ldr r1, _080362D8 @ =gUnknown_02024C3C
- ldr r2, _080362DC @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x2]
- adds r1, r2, 0
- cmp r0, 0xA
- bne _080362E0
- movs r0, 0x12
- b _080362F2
- .align 2, 0
-_080362D4: .4byte gBattleMoves
-_080362D8: .4byte gUnknown_02024C3C
-_080362DC: .4byte gUnknown_02024A60
-_080362E0:
- cmp r0, 0xB
- bne _080362EA
- movs r2, 0xB
- mov r10, r2
- b _080362F4
-_080362EA:
- cmp r0, 0xD
- beq _080362F0
- b _08036400
-_080362F0:
- movs r0, 0xA
-_080362F2:
- mov r10, r0
-_080362F4:
- ldr r2, _08036308 @ =gBattleMons
- ldrb r1, [r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r10
- bne _0803633C
- b _08036400
- .align 2, 0
-_08036308: .4byte gBattleMons
-_0803630C:
- ldr r0, _08036330 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_get_per_side_status
- ldr r1, _08036334 @ =0x02000000
- lsls r0, 24
- lsrs r0, 25
- ldr r2, _08036338 @ =0x000160c8
- adds r0, r2
- adds r0, r1
- strb r6, [r0]
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- movs r0, 0x1
- b _08036402
- .align 2, 0
-_08036330: .4byte gUnknown_02024A60
-_08036334: .4byte 0x02000000
-_08036338: .4byte 0x000160c8
-_0803633C:
- movs r6, 0
- ldr r0, _080363CC @ =gBaseStats
- mov r9, r0
-_08036342:
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _080363D0 @ =gEnemyParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080363FA
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _080363FA
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _080363FA
- ldr r1, _080363D4 @ =gUnknown_02024A6A
- mov r2, r8
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- beq _080363FA
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- beq _080363FA
- ldr r1, _080363D8 @ =0x02000000
- ldr r0, _080363DC @ =0x00016068
- add r0, r8
- adds r0, r1
- ldrb r0, [r0]
- cmp r6, r0
- beq _080363FA
- ldr r2, _080363DC @ =0x00016068
- adds r0, r7, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r6, r0
- beq _080363FA
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r5, 0
- movs r1, 0x2E
- bl GetMonData
- cmp r0, 0
- beq _080363E0
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x17]
- b _080363EA
- .align 2, 0
-_080363CC: .4byte gBaseStats
-_080363D0: .4byte gEnemyParty
-_080363D4: .4byte gUnknown_02024A6A
-_080363D8: .4byte 0x02000000
-_080363DC: .4byte 0x00016068
-_080363E0:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x16]
-_080363EA:
- cmp r10, r0
- bne _080363FA
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _0803630C
-_080363FA:
- adds r6, 0x1
- cmp r6, 0x5
- ble _08036342
-_08036400:
- movs r0, 0
-_08036402:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80361E8
-
- thumb_func_start ai_switchout_natural_cure
-ai_switchout_natural_cure: @ 8036410
- push {r4,r5,lr}
- ldr r3, _08036468 @ =gBattleMons
- ldr r5, _0803646C @ =gUnknown_02024A60
- ldrb r4, [r5]
- movs r0, 0x58
- adds r2, r4, 0
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _080364D8
- adds r1, r2, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1E
- bne _080364D8
- ldrh r0, [r1, 0x2C]
- ldrh r1, [r1, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bcc _080364D8
- ldr r1, _08036470 @ =gUnknown_02024C3C
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- cmp r1, 0
- beq _08036456
- ldr r0, _08036474 @ =0x0000ffff
- cmp r1, r0
- bne _08036478
-_08036456:
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08036478
- ldrb r0, [r5]
- b _080364E0
- .align 2, 0
-_08036468: .4byte gBattleMons
-_0803646C: .4byte gUnknown_02024A60
-_08036470: .4byte gUnknown_02024C3C
-_08036474: .4byte 0x0000ffff
-_08036478:
- ldr r2, _080364A4 @ =gBattleMoves
- ldr r1, _080364A8 @ =gUnknown_02024C3C
- ldr r4, _080364AC @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _080364B0
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080364B0
- ldrb r0, [r4]
- b _080364E0
- .align 2, 0
-_080364A4: .4byte gBattleMoves
-_080364A8: .4byte gUnknown_02024C3C
-_080364AC: .4byte gUnknown_02024A60
-_080364B0:
- movs r0, 0x8
- movs r1, 0x1
- bl sub_80366A4
- lsls r0, 24
- cmp r0, 0
- bne _080364FE
- movs r0, 0x4
- movs r1, 0x1
- bl sub_80366A4
- lsls r0, 24
- cmp r0, 0
- bne _080364FE
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _080364DC
-_080364D8:
- movs r0, 0
- b _08036500
-_080364DC:
- ldr r0, _08036508 @ =gUnknown_02024A60
- ldrb r0, [r0]
-_080364E0:
- bl battle_get_per_side_status
- ldr r1, _0803650C @ =0x02000000
- lsls r0, 24
- lsrs r0, 25
- ldr r2, _08036510 @ =0x000160c8
- adds r0, r2
- adds r0, r1
- movs r1, 0x6
- strb r1, [r0]
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
-_080364FE:
- movs r0, 0x1
-_08036500:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08036508: .4byte gUnknown_02024A60
-_0803650C: .4byte 0x02000000
-_08036510: .4byte 0x000160c8
- thumb_func_end ai_switchout_natural_cure
-
- thumb_func_start ai_has_super_effective_move_on_field
-ai_has_super_effective_move_on_field: @ 8036514
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _080365AC @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _080365B0 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803659C
- movs r4, 0
- ldr r6, _080365B4 @ =gBattleMons
- movs r7, 0x58
- adds r0, r3, 0
- muls r0, r7
- adds r5, r0, r6
- movs r0, 0x20
- adds r0, r5
- mov r9, r0
-_08036550:
- lsls r1, r4, 1
- ldr r0, _080365B8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- muls r0, r7
- adds r1, r0
- adds r0, r6, 0
- adds r0, 0xC
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _08036596
- ldrh r1, [r5]
- mov r3, r9
- ldrb r2, [r3]
- bl ai_rate_move
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0x2
- ands r1, r0
- cmp r1, 0
- beq _08036596
- mov r0, r8
- cmp r0, 0
- bne _080365C0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _080365C0
-_08036596:
- adds r4, 0x1
- cmp r4, 0x3
- ble _08036550
-_0803659C:
- ldr r0, _080365BC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080365C4
- b _0803663E
- .align 2, 0
-_080365AC: .4byte gUnknown_02024C0C
-_080365B0: .4byte gBitTable
-_080365B4: .4byte gBattleMons
-_080365B8: .4byte gUnknown_02024A60
-_080365BC: .4byte gUnknown_020239F8
-_080365C0:
- movs r0, 0x1
- b _08036640
-_080365C4:
- movs r0, 0x2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0803664C @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08036650 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803663E
- movs r4, 0
- ldr r6, _08036654 @ =gBattleMons
- movs r7, 0x58
- adds r0, r3, 0
- muls r0, r7
- adds r5, r0, r6
- movs r3, 0x20
- adds r3, r5
- mov r9, r3
-_080365F2:
- lsls r1, r4, 1
- ldr r0, _08036658 @ =gUnknown_02024A60
- ldrb r0, [r0]
- muls r0, r7
- adds r1, r0
- adds r0, r6, 0
- adds r0, 0xC
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _08036638
- ldrh r1, [r5]
- mov r3, r9
- ldrb r2, [r3]
- bl ai_rate_move
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0x2
- ands r1, r0
- cmp r1, 0
- beq _08036638
- mov r0, r8
- cmp r0, 0
- bne _080365C0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _080365C0
-_08036638:
- adds r4, 0x1
- cmp r4, 0x3
- ble _080365F2
-_0803663E:
- movs r0, 0
-_08036640:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0803664C: .4byte gUnknown_02024C0C
-_08036650: .4byte gBitTable
-_08036654: .4byte gBattleMons
-_08036658: .4byte gUnknown_02024A60
- thumb_func_end ai_has_super_effective_move_on_field
-
- thumb_func_start ai_is_too_invested_in_stat_buffs
-ai_is_too_invested_in_stat_buffs: @ 803665C
- push {r4,lr}
- movs r4, 0
- ldr r1, _0803669C @ =gBattleMons
- ldr r0, _080366A0 @ =gUnknown_02024A60
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x18
- adds r2, r0, r1
- movs r3, 0x7
-_08036670:
- ldrb r1, [r2]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0x6
- ble _08036686
- subs r1, 0x6
- lsls r0, r4, 24
- asrs r0, 24
- adds r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
-_08036686:
- adds r2, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _08036670
- movs r0, 0
- cmp r4, 0x3
- bls _08036696
- movs r0, 0x1
-_08036696:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0803669C: .4byte gBattleMons
-_080366A0: .4byte gUnknown_02024A60
- thumb_func_end ai_is_too_invested_in_stat_buffs
-
- thumb_func_start sub_80366A4
-sub_80366A4: @ 80366A4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x4]
- ldr r1, _08036730 @ =gUnknown_02024C3C
- ldr r5, _08036734 @ =gUnknown_02024A60
- ldrb r3, [r5]
- lsls r0, r3, 1
- adds r4, r0, r1
- ldrh r1, [r4]
- cmp r1, 0
- bne _080366CE
- b _080368D8
-_080366CE:
- ldr r0, _08036738 @ =0x0000ffff
- cmp r1, r0
- bne _080366D6
- b _080368D8
-_080366D6:
- ldr r0, _0803673C @ =gUnknown_02024C5C
- adds r0, r3, r0
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080366E2
- b _080368D8
-_080366E2:
- ldr r2, _08036740 @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _080366F6
- b _080368D8
-_080366F6:
- ldr r0, _08036744 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08036798
- mov r9, r3
- mov r0, r9
- bl battle_get_per_side_status
- movs r4, 0x2
- eors r0, r4
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r1, _08036748 @ =gUnknown_02024C0C
- ldrb r1, [r1]
- ldr r2, _0803674C @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08036750
- ldrb r5, [r5]
- mov r10, r5
- b _0803679C
- .align 2, 0
-_08036730: .4byte gUnknown_02024C3C
-_08036734: .4byte gUnknown_02024A60
-_08036738: .4byte 0x0000ffff
-_0803673C: .4byte gUnknown_02024C5C
-_08036740: .4byte gBattleMoves
-_08036744: .4byte gUnknown_020239F8
-_08036748: .4byte gUnknown_02024C0C
-_0803674C: .4byte gBitTable
-_08036750:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- eors r0, r4
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- b _0803679C
-_08036768:
- ldr r0, _0803678C @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_get_per_side_status
- ldr r1, _08036790 @ =0x02000000
- lsls r0, 24
- lsrs r0, 25
- ldr r2, _08036794 @ =0x000160c8
- adds r0, r2
- adds r0, r1
- strb r6, [r0]
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- movs r0, 0x1
- b _080368DA
- .align 2, 0
-_0803678C: .4byte gUnknown_02024A60
-_08036790: .4byte 0x02000000
-_08036794: .4byte 0x000160c8
-_08036798:
- mov r9, r3
- mov r10, r9
-_0803679C:
- movs r6, 0
-_0803679E:
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _08036830 @ =gEnemyParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _080367B6
- b _080368D0
-_080367B6:
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- bne _080367C4
- b _080368D0
-_080367C4:
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _080368D0
- ldr r1, _08036834 @ =gUnknown_02024A6A
- mov r2, r9
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- beq _080368D0
- mov r2, r10
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- beq _080368D0
- ldr r1, _08036838 @ =0x02000000
- ldr r0, _0803683C @ =0x00016068
- add r0, r9
- adds r0, r1
- ldrb r0, [r0]
- cmp r6, r0
- beq _080368D0
- ldr r0, _0803683C @ =0x00016068
- add r0, r10
- adds r0, r1
- ldrb r0, [r0]
- cmp r6, r0
- beq _080368D0
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r5, 0
- movs r1, 0x2E
- bl GetMonData
- cmp r0, 0
- beq _08036844
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r1, _08036840 @ =gBaseStats
- adds r0, r1
- ldrb r2, [r0, 0x17]
- b _08036850
- .align 2, 0
-_08036830: .4byte gEnemyParty
-_08036834: .4byte gUnknown_02024A6A
-_08036838: .4byte 0x02000000
-_0803683C: .4byte 0x00016068
-_08036840: .4byte gBaseStats
-_08036844:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r2, _080368EC @ =gBaseStats
- adds r0, r2
- ldrb r2, [r0, 0x16]
-_08036850:
- ldr r1, _080368F0 @ =gUnknown_02024C3C
- ldr r5, _080368F4 @ =gUnknown_02024A60
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- adds r1, r4, 0
- bl ai_rate_move
- ldr r1, [sp]
- ands r1, r0
- cmp r1, 0
- beq _080368D0
- ldr r1, _080368F8 @ =gUnknown_02024C5C
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- mov r9, r0
- movs r4, 0
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- mov r8, r1
- ldr r1, _080368FC @ =gBattleMons
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r5, r0, r1
- adds r7, r5, 0
- adds r7, 0x20
-_0803688E:
- ldr r0, _08036900 @ =gEnemyParty
- adds r1, r4, 0
- adds r1, 0xD
- add r0, r8
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _080368CA
- ldrh r1, [r5]
- ldrb r2, [r7]
- bl ai_rate_move
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0x2
- ands r1, r0
- cmp r1, 0
- beq _080368CA
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp, 0x4]
- bl __modsi3
- cmp r0, 0
- bne _080368CA
- b _08036768
-_080368CA:
- adds r4, 0x1
- cmp r4, 0x3
- ble _0803688E
-_080368D0:
- adds r6, 0x1
- cmp r6, 0x5
- bgt _080368D8
- b _0803679E
-_080368D8:
- movs r0, 0
-_080368DA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080368EC: .4byte gBaseStats
-_080368F0: .4byte gUnknown_02024C3C
-_080368F4: .4byte gUnknown_02024A60
-_080368F8: .4byte gUnknown_02024C5C
-_080368FC: .4byte gBattleMons
-_08036900: .4byte gEnemyParty
- thumb_func_end sub_80366A4
-
- thumb_func_start sub_8036904
-sub_8036904: @ 8036904
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r6, _080369E0 @ =gBattleMons
- ldr r4, _080369E4 @ =gUnknown_02024A60
- ldrb r2, [r4]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r6, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080369E8 @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- beq _0803692A
- b _08036AFC
-_0803692A:
- ldr r0, _080369EC @ =gUnknown_02024C98
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x80
- lsls r0, 3
- ands r1, r0
- cmp r1, 0
- beq _0803693E
- b _08036AFC
-_0803693E:
- str r1, [sp]
- movs r0, 0xC
- adds r1, r2, 0
- movs r2, 0x17
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08036956
- b _08036AFC
-_08036956:
- ldrb r1, [r4]
- str r0, [sp]
- movs r0, 0xC
- movs r2, 0x47
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0803696E
- b _08036AFC
-_0803696E:
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x2A
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _080369A0
- ldrb r0, [r4]
- muls r0, r5
- adds r1, r0, r6
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _08036994
- b _08036AFC
-_08036994:
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _080369A0
- b _08036AFC
-_080369A0:
- movs r0, 0
- mov r8, r0
- ldr r0, _080369F0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08036A12
- ldr r4, _080369E4 @ =gUnknown_02024A60
- ldrb r7, [r4]
- adds r0, r7, 0
- bl battle_get_per_side_status
- movs r5, 0x2
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r1, _080369F4 @ =gUnknown_02024C0C
- ldrb r1, [r1]
- ldr r2, _080369F8 @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080369FC
- ldrb r6, [r4]
- b _08036A18
- .align 2, 0
-_080369E0: .4byte gBattleMons
-_080369E4: .4byte gUnknown_02024A60
-_080369E8: .4byte 0x0400e000
-_080369EC: .4byte gUnknown_02024C98
-_080369F0: .4byte gUnknown_020239F8
-_080369F4: .4byte gUnknown_02024C0C
-_080369F8: .4byte gBitTable
-_080369FC:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- b _08036A18
-_08036A12:
- ldr r0, _08036AE8 @ =gUnknown_02024A60
- ldrb r6, [r0]
- adds r7, r6, 0
-_08036A18:
- movs r5, 0
-_08036A1A:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08036AEC @ =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08036A7E
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08036A7E
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08036A7E
- ldr r1, _08036AF0 @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- beq _08036A7E
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- beq _08036A7E
- ldr r1, _08036AF4 @ =0x02000000
- ldr r2, _08036AF8 @ =0x00016068
- adds r0, r7, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r5, r0
- beq _08036A7E
- adds r0, r6, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r5, r0
- beq _08036A7E
- movs r0, 0x1
- add r8, r0
-_08036A7E:
- adds r5, 0x1
- cmp r5, 0x5
- ble _08036A1A
- mov r2, r8
- cmp r2, 0
- beq _08036AFC
- bl ai_switch_perish_song
- lsls r0, 24
- cmp r0, 0
- bne _08036AE4
- bl sub_8036054
- lsls r0, 24
- cmp r0, 0
- bne _08036AE4
- bl sub_80361E8
- lsls r0, 24
- cmp r0, 0
- bne _08036AE4
- bl ai_switchout_natural_cure
- lsls r0, 24
- cmp r0, 0
- bne _08036AE4
- movs r0, 0
- bl ai_has_super_effective_move_on_field
- lsls r0, 24
- cmp r0, 0
- bne _08036AFC
- bl ai_is_too_invested_in_stat_buffs
- lsls r0, 24
- cmp r0, 0
- bne _08036AFC
- movs r0, 0x8
- movs r1, 0x2
- bl sub_80366A4
- lsls r0, 24
- cmp r0, 0
- bne _08036AE4
- movs r0, 0x4
- movs r1, 0x3
- bl sub_80366A4
- lsls r0, 24
- cmp r0, 0
- beq _08036AFC
-_08036AE4:
- movs r0, 0x1
- b _08036AFE
- .align 2, 0
-_08036AE8: .4byte gUnknown_02024A60
-_08036AEC: .4byte gEnemyParty
-_08036AF0: .4byte gUnknown_02024A6A
-_08036AF4: .4byte 0x02000000
-_08036AF8: .4byte 0x00016068
-_08036AFC:
- movs r0, 0
-_08036AFE:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8036904
-
- thumb_func_start sub_8036B0C
-sub_8036B0C: @ 8036B0C
- push {r4-r6,lr}
- ldr r5, _08036B68 @ =gUnknown_020239F8
- ldrh r1, [r5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08036B1C
- b _08036C2E
-_08036B1C:
- bl sub_8036904
- lsls r0, 24
- cmp r0, 0
- bne _08036B28
- b _08036C24
-_08036B28:
- ldr r4, _08036B6C @ =0x02000000
- ldr r0, _08036B70 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 25
- ldr r1, _08036B74 @ =0x000160c8
- adds r0, r1
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _08036BEA
- bl sub_8036CD4
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bne _08036BD4
- ldrh r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08036B78
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- b _08036B8C
- .align 2, 0
-_08036B68: .4byte gUnknown_020239F8
-_08036B6C: .4byte 0x02000000
-_08036B70: .4byte gUnknown_02024A60
-_08036B74: .4byte 0x000160c8
-_08036B78:
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0x3
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r5, r0, 24
-_08036B8C:
- movs r4, 0
-_08036B8E:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _08036C0C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08036BCE
- ldr r1, _08036C10 @ =gUnknown_02024A6A
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- beq _08036BCE
- lsls r0, r5, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- beq _08036BCE
- ldr r1, _08036C14 @ =0x02000000
- ldr r2, _08036C18 @ =0x00016068
- adds r0, r6, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r4, r0
- beq _08036BCE
- adds r0, r5, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r4, r0
- bne _08036BD4
-_08036BCE:
- adds r4, 0x1
- cmp r4, 0x5
- ble _08036B8E
-_08036BD4:
- ldr r0, _08036C1C @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_get_per_side_status
- ldr r1, _08036C14 @ =0x02000000
- lsls r0, 24
- lsrs r0, 25
- ldr r3, _08036C20 @ =0x000160c8
- adds r0, r3
- adds r0, r1
- strb r4, [r0]
-_08036BEA:
- ldr r4, _08036C1C @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_get_per_side_status
- ldr r2, _08036C14 @ =0x02000000
- ldrb r1, [r4]
- ldr r3, _08036C18 @ =0x00016068
- adds r1, r3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 25
- adds r3, 0x60
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- b _08036C40
- .align 2, 0
-_08036C0C: .4byte gEnemyParty
-_08036C10: .4byte gUnknown_02024A6A
-_08036C14: .4byte 0x02000000
-_08036C18: .4byte 0x00016068
-_08036C1C: .4byte gUnknown_02024A60
-_08036C20: .4byte 0x000160c8
-_08036C24:
- bl sub_803708C
- lsls r0, 24
- cmp r0, 0
- bne _08036C40
-_08036C2E:
- ldr r0, _08036C48 @ =gUnknown_02024A60
- ldrb r0, [r0]
- movs r2, 0x1
- eors r2, r0
- lsls r2, 8
- movs r0, 0x1
- movs r1, 0
- bl dp01_build_cmdbuf_x21_a_bb
-_08036C40:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08036C48: .4byte gUnknown_02024A60
- thumb_func_end sub_8036B0C
-
- thumb_func_start sub_8036C4C
-sub_8036C4C: @ 8036C4C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r6, r3, 0
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- movs r7, 0
- ldr r0, _08036CD0 @ =gTypeEffectiveness
- mov r10, r0
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _08036CBE
- mov r5, r10
-_08036C7A:
- ldrb r0, [r5]
- cmp r0, 0xFE
- beq _08036CB0
- ldr r1, [sp]
- cmp r0, r1
- bne _08036CB0
- ldrb r4, [r5, 0x1]
- cmp r4, r9
- bne _08036C9A
- ldrb r1, [r6]
- ldrb r0, [r5, 0x2]
- muls r0, r1
- movs r1, 0xA
- bl __divsi3
- strb r0, [r6]
-_08036C9A:
- cmp r4, r8
- bne _08036CB0
- cmp r9, r8
- beq _08036CB0
- ldrb r1, [r6]
- ldrb r0, [r5, 0x2]
- muls r0, r1
- movs r1, 0xA
- bl __divsi3
- strb r0, [r6]
-_08036CB0:
- adds r5, 0x3
- adds r7, 0x3
- mov r1, r10
- adds r0, r7, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08036C7A
-_08036CBE:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08036CD0: .4byte gTypeEffectiveness
- thumb_func_end sub_8036C4C
-
- thumb_func_start sub_8036CD4
-sub_8036CD4: @ 8036CD4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r0, _08036D1C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08036D78
- ldr r4, _08036D20 @ =gUnknown_02024A60
- ldrb r0, [r4]
- str r0, [sp, 0xC]
- bl battle_get_per_side_status
- movs r5, 0x2
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r1, _08036D24 @ =gUnknown_02024C0C
- ldrb r1, [r1]
- ldr r2, _08036D28 @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08036D2C
- ldrb r4, [r4]
- str r4, [sp, 0x10]
- b _08036D42
- .align 2, 0
-_08036D1C: .4byte gUnknown_020239F8
-_08036D20: .4byte gUnknown_02024A60
-_08036D24: .4byte gUnknown_02024C0C
-_08036D28: .4byte gBitTable
-_08036D2C:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
-_08036D42:
- bl Random
- movs r3, 0x2
- ands r0, r3
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _08036D70 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08036D74 @ =gBitTable
- mov r4, r10
- lsls r0, r4, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08036D8C
- eors r4, r3
- lsls r0, r4, 24
- lsrs r0, 24
- mov r10, r0
- b _08036D8C
- .align 2, 0
-_08036D70: .4byte gUnknown_02024C0C
-_08036D74: .4byte gBitTable
-_08036D78:
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _08036E5C @ =gUnknown_02024A60
- ldrb r0, [r0]
- str r0, [sp, 0x10]
- str r0, [sp, 0xC]
-_08036D8C:
- movs r0, 0
- mov r9, r0
- mov r1, sp
- str r1, [sp, 0x14]
-_08036D94:
- movs r2, 0
- str r2, [sp, 0x4]
- movs r3, 0x6
- str r3, [sp, 0x8]
- movs r7, 0
- ldr r4, _08036E60 @ =gBitTable
- mov r8, r4
-_08036DA2:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _08036E64 @ =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _08036E7C
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08036E7C
- mov r1, r8
- ldr r0, [r1]
- mov r2, r9
- ands r0, r2
- cmp r0, 0
- bne _08036E7C
- ldr r1, _08036E68 @ =gUnknown_02024A6A
- ldr r3, [sp, 0xC]
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r7
- beq _08036E7C
- ldr r4, [sp, 0x10]
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r7
- beq _08036E7C
- ldr r1, _08036E6C @ =0x02000000
- ldr r2, _08036E70 @ =0x00016068
- adds r0, r3, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r7, r0
- beq _08036E7C
- adds r0, r4, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r7, r0
- beq _08036E7C
- ldr r1, _08036E74 @ =gBaseStats
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r5, [r0, 0x6]
- ldrb r6, [r0, 0x7]
- movs r0, 0xA
- ldr r3, [sp, 0x14]
- strb r0, [r3]
- movs r0, 0x58
- mov r4, r10
- muls r4, r0
- ldr r0, _08036E78 @ =gBattleMons
- adds r4, r0
- adds r0, r4, 0
- adds r0, 0x21
- ldrb r0, [r0]
- adds r1, r5, 0
- adds r2, r6, 0
- mov r3, sp
- bl sub_8036C4C
- adds r4, 0x22
- ldrb r0, [r4]
- adds r1, r5, 0
- adds r2, r6, 0
- mov r3, sp
- bl sub_8036C4C
- ldr r2, [sp, 0x4]
- ldr r1, [sp, 0x14]
- ldrb r1, [r1]
- cmp r2, r1
- bcs _08036E8A
- ldr r2, [sp, 0x14]
- ldrb r2, [r2]
- str r2, [sp, 0x4]
- lsls r0, r7, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- b _08036E8A
- .align 2, 0
-_08036E5C: .4byte gUnknown_02024A60
-_08036E60: .4byte gBitTable
-_08036E64: .4byte gEnemyParty
-_08036E68: .4byte gUnknown_02024A6A
-_08036E6C: .4byte 0x02000000
-_08036E70: .4byte 0x00016068
-_08036E74: .4byte gBaseStats
-_08036E78: .4byte gBattleMons
-_08036E7C:
- mov r3, r8
- ldr r0, [r3]
- mov r4, r9
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r0, 24
- mov r9, r0
-_08036E8A:
- movs r0, 0x4
- add r8, r0
- adds r7, 0x1
- cmp r7, 0x5
- ble _08036DA2
- ldr r1, [sp, 0x8]
- cmp r1, 0x6
- beq _08036EF8
- movs r7, 0
- movs r0, 0x64
- adds r5, r1, 0
- muls r5, r0
- ldr r6, _08036EEC @ =gEnemyParty
-_08036EA4:
- adds r1, r7, 0
- adds r1, 0xD
- adds r0, r5, r6
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _08036ECA
- ldr r0, _08036EF0 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r0, r4, 0
- mov r2, r10
- bl move_effectiveness_something
- movs r1, 0x2
- ands r1, r0
- cmp r1, 0
- bne _08036ED0
-_08036ECA:
- adds r7, 0x1
- cmp r7, 0x3
- ble _08036EA4
-_08036ED0:
- cmp r7, 0x4
- beq _08036ED6
- b _08036FEE
-_08036ED6:
- ldr r2, [sp, 0x8]
- lsls r0, r2, 2
- ldr r3, _08036EF4 @ =gBitTable
- adds r0, r3
- ldr r0, [r0]
- mov r4, r9
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r0, 24
- b _08036EFA
- .align 2, 0
-_08036EEC: .4byte gEnemyParty
-_08036EF0: .4byte gUnknown_02024A60
-_08036EF4: .4byte gBitTable
-_08036EF8:
- movs r0, 0x3F
-_08036EFA:
- mov r9, r0
- mov r1, r9
- cmp r1, 0x3F
- beq _08036F04
- b _08036D94
-_08036F04:
- ldr r0, _08037000 @ =gUnknown_02024DEC
- movs r2, 0
- strh r2, [r0]
- ldr r0, _08037004 @ =0x02000000
- ldr r3, _08037008 @ =0x0001601c
- adds r1, r0, r3
- strb r2, [r1]
- ldr r4, _0803700C @ =0x0001601f
- adds r0, r4
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08037010 @ =gUnknown_02024C68
- strb r2, [r0]
- ldr r0, _08037014 @ =gCritMultiplier
- strb r1, [r0]
- movs r0, 0
- str r0, [sp, 0x4]
- movs r1, 0x6
- str r1, [sp, 0x8]
- movs r7, 0
-_08036F2C:
- movs r0, 0x64
- adds r6, r7, 0
- muls r6, r0
- ldr r2, _08037018 @ =gEnemyParty
- adds r4, r6, r2
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- adds r3, r7, 0x1
- str r3, [sp, 0x18]
- cmp r0, 0
- beq _08036FE8
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08036FE8
- ldr r1, _0803701C @ =gUnknown_02024A6A
- ldr r4, [sp, 0xC]
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r7
- beq _08036FE8
- ldr r2, [sp, 0x10]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r7
- beq _08036FE8
- ldr r1, _08037004 @ =0x02000000
- ldr r3, _08037020 @ =0x00016068
- adds r0, r4, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r7, r0
- beq _08036FE8
- adds r0, r2, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r7, r0
- beq _08036FE8
- movs r5, 0
- mov r9, r6
- ldr r4, _08037024 @ =gUnknown_02024BEC
- mov r8, r4
- ldr r6, _08037028 @ =gUnknown_02024A60
-_08036F90:
- adds r1, r5, 0
- adds r1, 0xD
- ldr r0, _08037018 @ =gEnemyParty
- add r0, r9
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0
- mov r1, r8
- str r0, [r1]
- cmp r4, 0
- beq _08036FCC
- ldr r0, _0803702C @ =gBattleMoves
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0x1
- beq _08036FCC
- ldrb r0, [r6]
- mov r1, r10
- bl sub_801CAF8
- ldrb r1, [r6]
- adds r0, r4, 0
- mov r2, r10
- bl move_effectiveness_something
-_08036FCC:
- mov r2, r8
- ldr r0, [r2]
- ldr r3, [sp, 0x4]
- cmp r3, r0
- bge _08036FE2
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- lsls r0, r7, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
-_08036FE2:
- adds r5, 0x1
- cmp r5, 0x3
- ble _08036F90
-_08036FE8:
- ldr r7, [sp, 0x18]
- cmp r7, 0x5
- ble _08036F2C
-_08036FEE:
- ldr r0, [sp, 0x8]
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08037000: .4byte gUnknown_02024DEC
-_08037004: .4byte 0x02000000
-_08037008: .4byte 0x0001601c
-_0803700C: .4byte 0x0001601f
-_08037010: .4byte gUnknown_02024C68
-_08037014: .4byte gCritMultiplier
-_08037018: .4byte gEnemyParty
-_0803701C: .4byte gUnknown_02024A6A
-_08037020: .4byte 0x00016068
-_08037024: .4byte gUnknown_02024BEC
-_08037028: .4byte gUnknown_02024A60
-_0803702C: .4byte gBattleMoves
- thumb_func_end sub_8036CD4
-
- thumb_func_start ai_identify_item_effect
-ai_identify_item_effect: @ 8037030
- push {r4,lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bne _08037040
- movs r0, 0x1
- b _08037086
-_08037040:
- ldrb r1, [r2, 0x4]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0803704E
- movs r0, 0x2
- b _08037086
-_0803704E:
- ldrb r4, [r2, 0x3]
- movs r3, 0x3F
- adds r0, r3, 0
- ands r0, r4
- cmp r0, 0
- beq _0803705E
- movs r0, 0x3
- b _08037086
-_0803705E:
- ldrb r1, [r2]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08037074
- ldrb r0, [r2, 0x1]
- cmp r0, 0
- bne _08037074
- ldrb r0, [r2, 0x2]
- cmp r0, 0
- beq _08037078
-_08037074:
- movs r0, 0x4
- b _08037086
-_08037078:
- movs r0, 0x80
- ands r0, r4
- cmp r0, 0
- bne _08037084
- movs r0, 0x6
- b _08037086
-_08037084:
- movs r0, 0x5
-_08037086:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ai_identify_item_effect
-
- thumb_func_start sub_803708C
-sub_803708C: @ 803708C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- str r0, [sp]
- mov r8, r0
- mov r9, r0
-_080370A0:
- movs r0, 0x64
- mov r1, r9
- muls r1, r0
- ldr r0, _08037170 @ =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080370DC
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _080370DC
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _080370DC
- ldr r0, [sp]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_080370DC:
- movs r1, 0x1
- add r9, r1
- mov r2, r9
- cmp r2, 0x5
- ble _080370A0
- movs r3, 0
- mov r9, r3
-_080370EA:
- ldr r4, _08037174 @ =0x02016a00
- mov r0, r9
- cmp r0, 0
- beq _08037106
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r0, [r0]
- mov r1, r9
- subs r0, r1
- adds r0, 0x1
- ldr r2, [sp]
- cmp r2, r0
- ble _08037106
- b _080374EC
-_08037106:
- mov r3, r9
- lsls r1, r3, 1
- adds r0, r4, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldrh r0, [r0]
- mov r10, r0
- str r1, [sp, 0x4]
- cmp r0, 0
- bne _0803711C
- b _080374EC
-_0803711C:
- ldr r1, _08037178 @ =gItemEffectTable
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- cmp r1, 0
- bne _0803712C
- b _080374EC
-_0803712C:
- adds r5, r1, 0
- mov r0, r10
- cmp r0, 0xAF
- bne _08037136
- ldr r5, _0803717C @ =gSaveBlock1 + 0x3676
-_08037136:
- mov r1, r10
- lsls r0, r1, 24
- lsrs r0, 24
- adds r1, r5, 0
- bl ai_identify_item_effect
- ldr r2, _08037180 @ =0xfffe9600
- adds r4, r2
- ldr r3, _08037184 @ =gUnknown_02024A60
- ldrb r1, [r3]
- lsrs r1, 1
- ldr r2, _08037188 @ =0x000160d8
- adds r1, r2
- adds r1, r4
- strb r0, [r1]
- ldrb r0, [r3]
- lsrs r0, 1
- adds r0, r2
- adds r0, r4
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, 0x5
- bls _08037166
- b _080374A8
-_08037166:
- lsls r0, 2
- ldr r1, _0803718C @ =_08037190
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08037170: .4byte gEnemyParty
-_08037174: .4byte 0x02016a00
-_08037178: .4byte gItemEffectTable
-_0803717C: .4byte gSaveBlock1 + 0x3676
-_08037180: .4byte 0xfffe9600
-_08037184: .4byte gUnknown_02024A60
-_08037188: .4byte 0x000160d8
-_0803718C: .4byte _08037190
- .align 2, 0
-_08037190:
- .4byte _080371A8
- .4byte _080371D0
- .4byte _0803721C
- .4byte _08037388
- .4byte _08037468
- .4byte _080374F8
-_080371A8:
- ldr r2, _080371C8 @ =gBattleMons
- ldr r0, _080371CC @ =gUnknown_02024A60
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0, 0x2C]
- ldrh r0, [r0, 0x28]
- lsrs r1, 2
- cmp r0, r1
- bcc _080371C0
- b _080374A8
-_080371C0:
- cmp r0, 0
- bne _080371C6
- b _080374A8
-_080371C6:
- b _08037450
- .align 2, 0
-_080371C8: .4byte gBattleMons
-_080371CC: .4byte gUnknown_02024A60
-_080371D0:
- mov r0, r10
- movs r1, 0x4
- movs r2, 0x4
- bl sub_803F1DC
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080371E4
- b _080374A8
-_080371E4:
- ldr r2, _08037214 @ =gBattleMons
- ldr r0, _08037218 @ =gUnknown_02024A60
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- ldrh r2, [r1, 0x28]
- cmp r2, 0
- bne _080371F8
- b _080374A8
-_080371F8:
- ldrh r3, [r1, 0x2C]
- lsrs r0, r3, 2
- cmp r2, r0
- bcs _08037202
- b _08037496
-_08037202:
- adds r0, r2, 0
- subs r0, r3, r0
- adds r1, r5, r4
- ldrb r1, [r1]
- cmp r0, r1
- bgt _08037210
- b _080374A8
-_08037210:
- b _08037496
- .align 2, 0
-_08037214: .4byte gBattleMons
-_08037218: .4byte gUnknown_02024A60
-_0803721C:
- ldr r2, _08037378 @ =0x02000000
- ldr r3, _0803737C @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsrs r0, 1
- ldr r6, _08037380 @ =0x000160da
- adds r0, r6
- adds r0, r2
- movs r1, 0
- mov r12, r1
- movs r1, 0
- strb r1, [r0]
- ldrb r1, [r5, 0x3]
- movs r7, 0x20
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08037264
- ldr r1, _08037384 @ =gBattleMons
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08037264
- lsrs r1, r4, 1
- adds r1, r6
- adds r1, r2
- ldrb r0, [r1]
- orrs r0, r7
- strb r0, [r1]
- movs r0, 0x1
- mov r8, r0
-_08037264:
- ldrb r1, [r5, 0x3]
- movs r6, 0x10
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080372A0
- ldr r1, _08037384 @ =gBattleMons
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0803728E
- movs r0, 0x80
- ands r1, r0
- cmp r1, 0
- beq _080372A0
-_0803728E:
- lsrs r1, r4, 1
- ldr r0, _08037380 @ =0x000160da
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- movs r1, 0x1
- mov r8, r1
-_080372A0:
- ldrb r1, [r5, 0x3]
- movs r6, 0x8
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080372D4
- ldr r1, _08037384 @ =gBattleMons
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080372D4
- lsrs r0, r4, 1
- ldr r1, _08037380 @ =0x000160da
- adds r0, r1
- adds r0, r2
- ldrb r1, [r0]
- orrs r1, r6
- strb r1, [r0]
- movs r0, 0x1
- mov r8, r0
-_080372D4:
- ldrb r1, [r5, 0x3]
- movs r6, 0x4
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08037308
- ldr r1, _08037384 @ =gBattleMons
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08037308
- lsrs r0, r4, 1
- ldr r1, _08037380 @ =0x000160da
- adds r0, r1
- adds r0, r2
- ldrb r1, [r0]
- orrs r1, r6
- strb r1, [r0]
- movs r0, 0x1
- mov r8, r0
-_08037308:
- ldrb r1, [r5, 0x3]
- movs r6, 0x2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803733C
- ldr r1, _08037384 @ =gBattleMons
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0803733C
- lsrs r0, r4, 1
- ldr r1, _08037380 @ =0x000160da
- adds r0, r1
- adds r0, r2
- ldrb r1, [r0]
- orrs r1, r6
- strb r1, [r0]
- movs r0, 0x1
- mov r8, r0
-_0803733C:
- ldrb r1, [r5, 0x3]
- movs r4, 0x1
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0803734A
- b _080374A8
-_0803734A:
- ldr r1, _08037384 @ =gBattleMons
- ldrb r3, [r3]
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08037362
- b _080374A8
-_08037362:
- lsrs r0, r3, 1
- ldr r1, _08037380 @ =0x000160da
- adds r0, r1
- adds r0, r2
- ldrb r1, [r0]
- orrs r1, r4
- strb r1, [r0]
- movs r2, 0x1
- mov r8, r2
- b _080374AE
- .align 2, 0
-_08037378: .4byte 0x02000000
-_0803737C: .4byte gUnknown_02024A60
-_08037380: .4byte 0x000160da
-_08037384: .4byte gBattleMons
-_08037388:
- ldr r6, _08037458 @ =0x02000000
- ldr r4, _0803745C @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsrs r0, 1
- ldr r3, _08037460 @ =0x000160da
- adds r0, r3
- adds r0, r6
- movs r1, 0
- mov r12, r1
- movs r1, 0
- strb r1, [r0]
- ldr r1, _08037464 @ =gUnknown_02024CA8
- ldrb r2, [r4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x16]
- cmp r0, 0
- beq _080374A8
- ldrb r1, [r5]
- movs r7, 0xF
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _080373CA
- lsrs r0, r2, 1
- adds r0, r3
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
-_080373CA:
- ldrb r1, [r5, 0x1]
- movs r2, 0xF0
- mov r8, r2
- mov r0, r8
- ands r0, r1
- cmp r0, 0
- beq _080373E8
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
-_080373E8:
- ldrb r1, [r5, 0x1]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _08037402
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_08037402:
- ldrb r1, [r5, 0x2]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _0803741C
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
-_0803741C:
- ldrb r1, [r5, 0x2]
- mov r0, r8
- ands r0, r1
- cmp r0, 0
- beq _08037436
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
-_08037436:
- ldrb r1, [r5]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- beq _08037450
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_08037450:
- movs r3, 0x1
- mov r8, r3
- b _080374AE
- .align 2, 0
-_08037458: .4byte 0x02000000
-_0803745C: .4byte gUnknown_02024A60
-_08037460: .4byte 0x000160da
-_08037464: .4byte gUnknown_02024CA8
-_08037468:
- ldr r4, _0803749C @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080374A0 @ =gUnknown_02024CA8
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x16]
- cmp r0, 0
- beq _080374A8
- ldr r0, _080374A4 @ =gUnknown_02024C80
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- bne _080374A8
-_08037496:
- movs r0, 0x1
- mov r8, r0
- b _080374AE
- .align 2, 0
-_0803749C: .4byte gUnknown_02024A60
-_080374A0: .4byte gUnknown_02024CA8
-_080374A4: .4byte gUnknown_02024C80
-_080374A8:
- mov r1, r8
- cmp r1, 0
- beq _080374EC
-_080374AE:
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- ldr r1, _080374DC @ =0x02000000
- ldr r0, _080374E0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsrs r0, 1
- lsls r0, 1
- ldr r2, _080374E4 @ =0x000160d4
- adds r0, r2
- adds r0, r1
- movs r2, 0
- mov r3, r10
- strb r3, [r0]
- ldr r0, _080374E8 @ =0x00016a24
- adds r1, r0
- ldr r3, [sp, 0x4]
- adds r1, r3, r1
- strh r2, [r1]
- mov r0, r8
- b _080374FA
- .align 2, 0
-_080374DC: .4byte 0x02000000
-_080374E0: .4byte gUnknown_02024A60
-_080374E4: .4byte 0x000160d4
-_080374E8: .4byte 0x00016a24
-_080374EC:
- movs r0, 0x1
- add r9, r0
- mov r1, r9
- cmp r1, 0x3
- bgt _080374F8
- b _080370EA
-_080374F8:
- movs r0, 0
-_080374FA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_803708C
-
- thumb_func_start nullsub_47
-nullsub_47: @ 803750C
- bx lr
- thumb_func_end nullsub_47
-
- thumb_func_start sub_8037510
-sub_8037510: @ 8037510
- ldr r1, _08037520 @ =gUnknown_03004330
- ldr r0, _08037524 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037528 @ =sub_803752C
- str r1, [r0]
- bx lr
- .align 2, 0
-_08037520: .4byte gUnknown_03004330
-_08037524: .4byte gUnknown_02024A60
-_08037528: .4byte sub_803752C
- thumb_func_end sub_8037510
-
- thumb_func_start sub_803752C
-sub_803752C: @ 803752C
- push {lr}
- ldr r2, _08037560 @ =gUnknown_02024A64
- ldr r1, _08037564 @ =gBitTable
- ldr r0, _08037568 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08037578
- ldr r0, _0803756C @ =gUnknown_02023A60
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _08037574
- ldr r0, _08037570 @ =gUnknown_081FB048
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _08037578
- .align 2, 0
-_08037560: .4byte gUnknown_02024A64
-_08037564: .4byte gBitTable
-_08037568: .4byte gUnknown_02024A60
-_0803756C: .4byte gUnknown_02023A60
-_08037570: .4byte gUnknown_081FB048
-_08037574:
- bl dp01_tbl4_exec_completed
-_08037578:
- pop {r0}
- bx r0
- thumb_func_end sub_803752C
-
- thumb_func_start sub_803757C
-sub_803757C: @ 803757C
- push {lr}
- ldr r2, _080375A4 @ =gSprites
- ldr r1, _080375A8 @ =gUnknown_02024BE0
- ldr r0, _080375AC @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _080375B0 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _080375A0
- bl dp01_tbl4_exec_completed
-_080375A0:
- pop {r0}
- bx r0
- .align 2, 0
-_080375A4: .4byte gSprites
-_080375A8: .4byte gUnknown_02024BE0
-_080375AC: .4byte gUnknown_02024A60
-_080375B0: .4byte SpriteCallbackDummy
- thumb_func_end sub_803757C
-
- thumb_func_start sub_80375B4
-sub_80375B4: @ 80375B4
- push {r4-r6,lr}
- ldr r4, _0803762C @ =gSprites
- ldr r6, _08037630 @ =gUnknown_02024BE0
- ldr r5, _08037634 @ =gUnknown_02024A60
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r2, r0, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, [r0]
- ldr r0, _08037638 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08037624
- adds r0, r2, r4
- ldrh r0, [r0, 0x6]
- bl sub_8031B74
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x38]
- ldr r2, _0803763C @ =0x000003ff
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _08037640 @ =0xfffffc00
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- bl dp01_tbl4_exec_completed
-_08037624:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803762C: .4byte gSprites
-_08037630: .4byte gUnknown_02024BE0
-_08037634: .4byte gUnknown_02024A60
-_08037638: .4byte SpriteCallbackDummy
-_0803763C: .4byte 0x000003ff
-_08037640: .4byte 0xfffffc00
- thumb_func_end sub_80375B4
-
- thumb_func_start sub_8037644
-sub_8037644: @ 8037644
- push {lr}
- ldr r3, _08037678 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, _0803767C @ =0x02017810
- adds r1, r2
- ldrb r0, [r1, 0x9]
- subs r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _08037674
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0
- strb r0, [r1, 0x9]
- bl dp01_tbl4_exec_completed
-_08037674:
- pop {r0}
- bx r0
- .align 2, 0
-_08037678: .4byte gUnknown_02024A60
-_0803767C: .4byte 0x02017810
- thumb_func_end sub_8037644
-
- thumb_func_start sub_8037680
-sub_8037680: @ 8037680
- push {r4-r7,lr}
- movs r6, 0
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080376A4
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080376D8
- ldr r0, _080376C4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080376D8
-_080376A4:
- ldr r2, _080376C8 @ =gSprites
- ldr r1, _080376CC @ =gUnknown_03004340
- ldr r0, _080376D0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _080376D4 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0803770E
- b _0803770C
- .align 2, 0
-_080376C4: .4byte gUnknown_020239F8
-_080376C8: .4byte gSprites
-_080376CC: .4byte gUnknown_03004340
-_080376D0: .4byte gUnknown_02024A60
-_080376D4: .4byte SpriteCallbackDummy
-_080376D8:
- ldr r2, _080377D8 @ =gSprites
- ldr r5, _080377DC @ =gUnknown_03004340
- ldr r0, _080377E0 @ =gUnknown_02024A60
- ldrb r3, [r0]
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r4, [r0]
- ldr r0, _080377E4 @ =SpriteCallbackDummy
- cmp r4, r0
- bne _0803770E
- movs r0, 0x2
- eors r3, r0
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, r4
- bne _0803770E
-_0803770C:
- movs r6, 0x1
-_0803770E:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _0803771A
- movs r6, 0
-_0803771A:
- cmp r6, 0
- bne _08037720
- b _08037822
-_08037720:
- ldr r7, _080377E0 @ =gUnknown_02024A60
- ldrb r0, [r7]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1
- bne _080377B4
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r5, _080377E8 @ =0x02017810
- adds r4, r0, r5
- ldrb r1, [r4, 0x1]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08037822
- movs r6, 0x2
- adds r1, r6, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08037822
- ldrb r1, [r4]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r4]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x1]
- movs r4, 0x2
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- ands r4, r1
- strb r4, [r0, 0x1]
- ldr r4, _080377EC @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
-_080377B4:
- ldr r0, _080377F0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080377F8
- ldrb r0, [r7]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08037804
- ldr r0, _080377F4 @ =gMPlay_BGM
- bl m4aMPlayContinue
- b _08037804
- .align 2, 0
-_080377D8: .4byte gSprites
-_080377DC: .4byte gUnknown_03004340
-_080377E0: .4byte gUnknown_02024A60
-_080377E4: .4byte SpriteCallbackDummy
-_080377E8: .4byte 0x02017810
-_080377EC: .4byte 0x000027f9
-_080377F0: .4byte gUnknown_020239F8
-_080377F4: .4byte gMPlay_BGM
-_080377F8:
- ldr r0, _08037828 @ =gMPlay_BGM
- ldr r1, _0803782C @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_08037804:
- ldr r2, _08037830 @ =gUnknown_02024A60
- ldrb r1, [r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037834 @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x9]
- ldr r1, _08037838 @ =gUnknown_03004330
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803783C @ =sub_8037644
- str r1, [r0]
-_08037822:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08037828: .4byte gMPlay_BGM
-_0803782C: .4byte 0x0000ffff
-_08037830: .4byte gUnknown_02024A60
-_08037834: .4byte 0x02017810
-_08037838: .4byte gUnknown_03004330
-_0803783C: .4byte sub_8037644
- thumb_func_end sub_8037680
-
- thumb_func_start sub_8037840
-sub_8037840: @ 8037840
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r6, _08037A48 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r5, _08037A4C @ =0x02017810
- adds r0, r5
- ldrb r1, [r0]
- movs r4, 0x88
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _08037878
- ldr r0, _08037A50 @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08037A54 @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08037878:
- ldrb r0, [r6]
- movs r7, 0x2
- adds r2, r7, 0
- eors r2, r0
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _080378A6
- ldr r0, _08037A50 @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08037A54 @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_080378A6:
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- movs r3, 0x8
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080378BE
- b _08037A3A
-_080378BE:
- adds r1, r2, 0
- eors r1, r7
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080378DA
- b _08037A3A
-_080378DA:
- ldr r0, _08037A58 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0803791A
- adds r0, r2, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0803791A
- ldrb r0, [r6]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x9]
- adds r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0803790E
- b _08037A3A
-_0803790E:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strb r4, [r0, 0x9]
-_0803791A:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080379B2
- ldr r0, _08037A58 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080379B2
- ldr r1, _08037A5C @ =gUnknown_0300434C
- ldr r5, _08037A48 @ =gUnknown_02024A60
- ldrb r0, [r5]
- movs r4, 0x2
- eors r0, r4
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037A60 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r0, _08037A64 @ =gUnknown_03004340
- mov r8, r0
- ldrb r0, [r5]
- adds r1, r4, 0
- eors r1, r0
- mov r2, r8
- adds r0, r1, r2
- ldrb r0, [r0]
- ldr r2, _08037A50 @ =gUnknown_02024A6A
- mov r10, r2
- lsls r1, 1
- add r1, r10
- ldrh r1, [r1]
- movs r2, 0x64
- mov r9, r2
- mov r2, r9
- muls r2, r1
- adds r1, r2, 0
- ldr r6, _08037A54 @ =gEnemyParty
- adds r1, r6
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r5]
- eors r0, r4
- bl sub_804777C
- ldrb r0, [r5]
- eors r0, r4
- add r0, r8
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r0, [r5]
- eors r4, r0
- lsls r0, r4, 1
- add r0, r10
- ldrh r0, [r0]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
-_080379B2:
- ldr r1, _08037A5C @ =gUnknown_0300434C
- ldr r4, _08037A48 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037A60 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r5, _08037A64 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _08037A50 @ =gUnknown_02024A6A
- mov r9, r2
- lsls r1, 1
- add r1, r9
- ldrh r1, [r1]
- movs r2, 0x64
- mov r8, r2
- mov r2, r8
- muls r2, r1
- adds r1, r2, 0
- ldr r6, _08037A54 @ =gEnemyParty
- adds r1, r6
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r4]
- bl sub_804777C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r5, [r4]
- lsls r0, r5, 1
- add r0, r9
- ldrh r0, [r0]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl sub_8032984
- ldr r2, _08037A68 @ =0x02017840
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _08037A6C @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037A70 @ =sub_8037680
- str r1, [r0]
-_08037A3A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08037A48: .4byte gUnknown_02024A60
-_08037A4C: .4byte 0x02017810
-_08037A50: .4byte gUnknown_02024A6A
-_08037A54: .4byte gEnemyParty
-_08037A58: .4byte gUnknown_020239F8
-_08037A5C: .4byte gUnknown_0300434C
-_08037A60: .4byte gSprites
-_08037A64: .4byte gUnknown_03004340
-_08037A68: .4byte 0x02017840
-_08037A6C: .4byte gUnknown_03004330
-_08037A70: .4byte sub_8037680
- thumb_func_end sub_8037840
-
- thumb_func_start sub_8037A74
-sub_8037A74: @ 8037A74
- push {r4-r7,lr}
- ldr r2, _08037ACC @ =gSprites
- ldr r0, _08037AD0 @ =gUnknown_02024BE0
- ldr r7, _08037AD4 @ =gUnknown_02024A60
- ldrb r3, [r7]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r2, r0, 31
- cmp r2, 0x1
- bne _08037B18
- movs r4, 0x24
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bne _08037B18
- lsls r4, r3, 1
- adds r0, r4, r3
- lsls r0, 2
- ldr r6, _08037AD8 @ =0x02017810
- adds r1, r0, r6
- ldrb r5, [r1]
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- bne _08037AE4
- ldr r0, _08037ADC @ =gUnknown_02024A6A
- adds r0, r4, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08037AE0 @ =gEnemyParty
- adds r1, r0
- adds r0, r3, 0
- bl sub_8141828
- b _08037B18
- .align 2, 0
-_08037ACC: .4byte gSprites
-_08037AD0: .4byte gUnknown_02024BE0
-_08037AD4: .4byte gUnknown_02024A60
-_08037AD8: .4byte 0x02017810
-_08037ADC: .4byte gUnknown_02024A6A
-_08037AE0: .4byte gEnemyParty
-_08037AE4:
- ldrb r0, [r1, 0x1]
- ands r2, r0
- cmp r2, 0
- beq _08037B18
- movs r0, 0x7F
- ands r0, r5
- strb r0, [r1]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _08037B20 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- bl dp01_tbl4_exec_completed
-_08037B18:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08037B20: .4byte 0x000027f9
- thumb_func_end sub_8037A74
-
- thumb_func_start sub_8037B24
-sub_8037B24: @ 8037B24
- push {r4-r6,lr}
- ldr r6, _08037B64 @ =gUnknown_02024A60
- ldrb r0, [r6]
- ldr r5, _08037B68 @ =gUnknown_03004340
- adds r1, r0, r5
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0
- bl sub_8045C78
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r6]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- lsls r4, 16
- asrs r1, r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08037B6C
- ldrb r0, [r6]
- adds r0, r5
- ldrb r0, [r0]
- movs r2, 0
- bl sub_80440EC
- b _08037B70
- .align 2, 0
-_08037B64: .4byte gUnknown_02024A60
-_08037B68: .4byte gUnknown_03004340
-_08037B6C:
- bl dp01_tbl4_exec_completed
-_08037B70:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8037B24
-
- thumb_func_start sub_8037B78
-sub_8037B78: @ 8037B78
- push {lr}
- ldr r2, _08037BAC @ =gSprites
- ldr r0, _08037BB0 @ =gUnknown_02024BE0
- ldr r1, _08037BB4 @ =gUnknown_02024A60
- ldrb r3, [r1]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- bne _08037BA6
- ldr r0, _08037BB8 @ =gUnknown_03004340
- adds r0, r3, r0
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl4_exec_completed
-_08037BA6:
- pop {r0}
- bx r0
- .align 2, 0
-_08037BAC: .4byte gSprites
-_08037BB0: .4byte gUnknown_02024BE0
-_08037BB4: .4byte gUnknown_02024A60
-_08037BB8: .4byte gUnknown_03004340
- thumb_func_end sub_8037B78
-
- thumb_func_start sub_8037BBC
-sub_8037BBC: @ 8037BBC
- push {r4-r6,lr}
- ldr r6, _08037C18 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _08037C1C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08037C12
- ldr r5, _08037C20 @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08037C24 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldrb r0, [r6]
- bl sub_8032A08
- ldr r1, _08037C28 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl4_exec_completed
-_08037C12:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08037C18: .4byte gUnknown_02024A60
-_08037C1C: .4byte 0x02017810
-_08037C20: .4byte gUnknown_02024BE0
-_08037C24: .4byte gSprites
-_08037C28: .4byte gUnknown_03004340
- thumb_func_end sub_8037BBC
-
- thumb_func_start sub_8037C2C
-sub_8037C2C: @ 8037C2C
- push {lr}
- ldr r0, _08037C40 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _08037C3A
- bl dp01_tbl4_exec_completed
-_08037C3A:
- pop {r0}
- bx r0
- .align 2, 0
-_08037C40: .4byte gUnknown_03004210
- thumb_func_end sub_8037C2C
-
- thumb_func_start dp01t_0F_4_move_anim
-dp01t_0F_4_move_anim: @ 8037C44
- push {r4,lr}
- ldr r1, _08037C80 @ =gUnknown_02024BE0
- ldr r0, _08037C84 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _08037C88 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bne _08037C90
- movs r3, 0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x5
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08037C8C @ =gUnknown_02024E6D
- strb r3, [r0]
- bl dp01_tbl4_exec_completed
- b _08037CBA
- .align 2, 0
-_08037C80: .4byte gUnknown_02024BE0
-_08037C84: .4byte gUnknown_02024A60
-_08037C88: .4byte gSprites
-_08037C8C: .4byte gUnknown_02024E6D
-_08037C90:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08037CB4
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_08037CB4:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_08037CBA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end dp01t_0F_4_move_anim
-
- thumb_func_start sub_8037CC0
-sub_8037CC0: @ 8037CC0
- push {r4,lr}
- ldr r2, _08037D10 @ =gSprites
- ldr r0, _08037D14 @ =gUnknown_03004340
- ldr r4, _08037D18 @ =gUnknown_02024A60
- ldrb r3, [r4]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08037D1C @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08037D08
- lsls r0, r3, 2
- ldr r1, _08037D20 @ =0x02017800
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08037CFC
- adds r0, r3, 0
- adds r1, r3, 0
- adds r2, r3, 0
- movs r3, 0x6
- bl move_anim_start_t4
-_08037CFC:
- ldr r0, _08037D24 @ =gUnknown_03004330
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08037D28 @ =sub_8037D2C
- str r0, [r1]
-_08037D08:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08037D10: .4byte gSprites
-_08037D14: .4byte gUnknown_03004340
-_08037D18: .4byte gUnknown_02024A60
-_08037D1C: .4byte SpriteCallbackDummy
-_08037D20: .4byte 0x02017800
-_08037D24: .4byte gUnknown_03004330
-_08037D28: .4byte sub_8037D2C
- thumb_func_end sub_8037CC0
-
- thumb_func_start sub_8037D2C
-sub_8037D2C: @ 8037D2C
- push {lr}
- ldr r0, _08037D58 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037D5C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08037D52
- ldr r0, _08037D60 @ =c3_0802FDF4
- movs r1, 0xA
- bl CreateTask
- bl dp01_tbl4_exec_completed
-_08037D52:
- pop {r0}
- bx r0
- .align 2, 0
-_08037D58: .4byte gUnknown_02024A60
-_08037D5C: .4byte 0x02017810
-_08037D60: .4byte c3_0802FDF4
- thumb_func_end sub_8037D2C
-
- thumb_func_start sub_8037D64
-sub_8037D64: @ 8037D64
- push {r4,r5,lr}
- ldr r5, _08037E08 @ =gUnknown_02024A60
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _08037E0C @ =0x02017810
- adds r2, r0, r3
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08037E00
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _08037E10 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r1, _08037E14 @ =gUnknown_02024BE0
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037E18 @ =gSprites
- adds r0, r1
- movs r1, 0
- bl StartSpriteAnim
- ldr r4, _08037E1C @ =gUnknown_03004340
- ldrb r1, [r5]
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _08037E20 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08037E24 @ =gEnemyParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r5]
- bl sub_804777C
- ldrb r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r0, [r5]
- bl sub_8031F88
- ldr r1, _08037E28 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037E2C @ =sub_8037CC0
- str r1, [r0]
-_08037E00:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08037E08: .4byte gUnknown_02024A60
-_08037E0C: .4byte 0x02017810
-_08037E10: .4byte 0x000027f9
-_08037E14: .4byte gUnknown_02024BE0
-_08037E18: .4byte gSprites
-_08037E1C: .4byte gUnknown_03004340
-_08037E20: .4byte gUnknown_02024A6A
-_08037E24: .4byte gEnemyParty
-_08037E28: .4byte gUnknown_03004330
-_08037E2C: .4byte sub_8037CC0
- thumb_func_end sub_8037D64
-
- thumb_func_start sub_8037E30
-sub_8037E30: @ 8037E30
- push {r4-r6,lr}
- ldr r5, _08037ECC @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r6, _08037ED0 @ =0x02017810
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _08037E5E
- ldr r0, _08037ED4 @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08037ED8 @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08037E5E:
- ldr r4, _08037EDC @ =gSprites
- ldr r0, _08037EE0 @ =gUnknown_0300434C
- ldrb r2, [r5]
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r3, r0, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r3, r0
- ldr r1, [r0]
- ldr r0, _08037EE4 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08037EC4
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08037EC4
- adds r0, r3, r4
- bl DestroySprite
- ldrb r4, [r5]
- ldr r1, _08037ED4 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08037ED8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
- ldr r1, _08037EE8 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037EEC @ =sub_8037D64
- str r1, [r0]
-_08037EC4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08037ECC: .4byte gUnknown_02024A60
-_08037ED0: .4byte 0x02017810
-_08037ED4: .4byte gUnknown_02024A6A
-_08037ED8: .4byte gEnemyParty
-_08037EDC: .4byte gSprites
-_08037EE0: .4byte gUnknown_0300434C
-_08037EE4: .4byte SpriteCallbackDummy
-_08037EE8: .4byte gUnknown_03004330
-_08037EEC: .4byte sub_8037D64
- thumb_func_end sub_8037E30
-
- thumb_func_start sub_8037EF0
-sub_8037EF0: @ 8037EF0
- push {lr}
- ldr r0, _08037F20 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08037F1C
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r3, _08037F24 @ =gMain
- ldr r0, _08037F28 @ =0x0000043d
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08037F2C @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r3]
- ldr r0, _08037F30 @ =c2_8011A1C
- bl SetMainCallback2
-_08037F1C:
- pop {r0}
- bx r0
- .align 2, 0
-_08037F20: .4byte gReceivedRemoteLinkPlayers
-_08037F24: .4byte gMain
-_08037F28: .4byte 0x0000043d
-_08037F2C: .4byte gUnknown_030042D0
-_08037F30: .4byte c2_8011A1C
- thumb_func_end sub_8037EF0
-
- thumb_func_start sub_8037F34
-sub_8037F34: @ 8037F34
- push {lr}
- ldr r0, _08037F64 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08037F9A
- ldr r0, _08037F68 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08037F78
- bl sub_800832C
- ldr r1, _08037F6C @ =gUnknown_03004330
- ldr r0, _08037F70 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037F74 @ =sub_8037EF0
- str r1, [r0]
- b _08037F9A
- .align 2, 0
-_08037F64: .4byte gPaletteFade
-_08037F68: .4byte gUnknown_020239F8
-_08037F6C: .4byte gUnknown_03004330
-_08037F70: .4byte gUnknown_02024A60
-_08037F74: .4byte sub_8037EF0
-_08037F78:
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r2, _08037FA0 @ =gMain
- ldr r0, _08037FA4 @ =0x0000043d
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _08037FA8 @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_08037F9A:
- pop {r0}
- bx r0
- .align 2, 0
-_08037FA0: .4byte gMain
-_08037FA4: .4byte 0x0000043d
-_08037FA8: .4byte gUnknown_030042D0
- thumb_func_end sub_8037F34
-
- thumb_func_start sub_8037FAC
-sub_8037FAC: @ 8037FAC
- push {lr}
- ldr r0, _08037FD0 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037FD4 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08037FCA
- bl dp01_tbl4_exec_completed
-_08037FCA:
- pop {r0}
- bx r0
- .align 2, 0
-_08037FD0: .4byte gUnknown_02024A60
-_08037FD4: .4byte 0x02017810
- thumb_func_end sub_8037FAC
-
- thumb_func_start sub_8037FD8
-sub_8037FD8: @ 8037FD8
- push {lr}
- ldr r0, _08037FFC @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08038000 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08037FF6
- bl dp01_tbl4_exec_completed
-_08037FF6:
- pop {r0}
- bx r0
- .align 2, 0
-_08037FFC: .4byte gUnknown_02024A60
-_08038000: .4byte 0x02017810
- thumb_func_end sub_8037FD8
-
- thumb_func_start dp01_tbl4_exec_completed
-dp01_tbl4_exec_completed: @ 8038004
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _08038044 @ =gUnknown_03004330
- ldr r4, _08038048 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803804C @ =sub_803752C
- str r1, [r0]
- ldr r0, _08038050 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08038058
- bl GetMultiplayerId
- mov r1, sp
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- mov r2, sp
- bl dp01_prepare_buffer_wireless_probably
- ldr r1, _08038054 @ =gUnknown_02023A60
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _0803806A
- .align 2, 0
-_08038044: .4byte gUnknown_03004330
-_08038048: .4byte gUnknown_02024A60
-_0803804C: .4byte sub_803752C
-_08038050: .4byte gUnknown_020239F8
-_08038054: .4byte gUnknown_02023A60
-_08038058:
- ldr r2, _08038074 @ =gUnknown_02024A64
- ldr r1, _08038078 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_0803806A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08038074: .4byte gUnknown_02024A64
-_08038078: .4byte gBitTable
- thumb_func_end dp01_tbl4_exec_completed
-
- thumb_func_start dp01t_00_4_getattr
-dp01t_00_4_getattr: @ 803807C
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, _080380A8 @ =gUnknown_02023A60
- ldr r0, _080380AC @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _080380B4
- ldr r0, _080380B0 @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl dp01_getattr_by_ch1_for_player_pokemon__
- adds r6, r0, 0
- b _080380D6
- .align 2, 0
-_080380A8: .4byte gUnknown_02023A60
-_080380AC: .4byte gUnknown_02024A60
-_080380B0: .4byte gUnknown_02024A6A
-_080380B4:
- ldrb r4, [r1]
- movs r5, 0
-_080380B8:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080380CE
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl dp01_getattr_by_ch1_for_player_pokemon__
- adds r6, r0
-_080380CE:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _080380B8
-_080380D6:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl dp01_tbl4_exec_completed
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end dp01t_00_4_getattr
-
- thumb_func_start dp01_getattr_by_ch1_for_player_pokemon__
-dp01_getattr_by_ch1_for_player_pokemon__: @ 80380F0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x90
- adds r7, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _08038124 @ =gUnknown_02023A60
- ldr r3, _08038128 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _0803811A
- bl _08038886
-_0803811A:
- lsls r0, 2
- ldr r1, _0803812C @ =_08038130
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08038124: .4byte gUnknown_02023A60
-_08038128: .4byte gUnknown_02024A60
-_0803812C: .4byte _08038130
- .align 2, 0
-_08038130:
- .4byte _08038220
- .4byte _08038444
- .4byte _08038454
- .4byte _08038464
- .4byte _080384CC
- .4byte _080384CC
- .4byte _080384CC
- .4byte _080384CC
- .4byte _080384E8
- .4byte _08038524
- .4byte _08038524
- .4byte _08038524
- .4byte _08038524
- .4byte _08038886
- .4byte _08038886
- .4byte _08038886
- .4byte _08038886
- .4byte _08038540
- .4byte _08038550
- .4byte _08038580
- .4byte _08038590
- .4byte _080385A0
- .4byte _080385B0
- .4byte _080385C0
- .4byte _080385D0
- .4byte _080385E0
- .4byte _080385F0
- .4byte _08038600
- .4byte _08038610
- .4byte _08038620
- .4byte _08038630
- .4byte _08038640
- .4byte _08038690
- .4byte _080386A0
- .4byte _080386B0
- .4byte _080386C0
- .4byte _080386D0
- .4byte _080386E0
- .4byte _080386F0
- .4byte _08038700
- .4byte _08038710
- .4byte _08038744
- .4byte _08038754
- .4byte _08038764
- .4byte _08038774
- .4byte _08038784
- .4byte _08038794
- .4byte _080387A4
- .4byte _080387B4
- .4byte _080387D4
- .4byte _080387E4
- .4byte _080387F4
- .4byte _08038804
- .4byte _08038814
- .4byte _08038824
- .4byte _08038834
- .4byte _08038844
- .4byte _08038854
- .4byte _08038864
- .4byte _08038874
-_08038220:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038434 @ =gEnemyParty
- adds 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 r9, r0
- movs r1, 0x3B
- add r1, sp
- mov r10, 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, 0x5
- str r2, [sp, 0x84]
- adds r0, 0x12
- str r0, [sp, 0x88]
- mov r8, r4
- add r4, sp, 0xC
-_0803826C:
- 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, r9
- adds r1, r2, r6
- strb r0, [r1]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0803826C
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038434 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- mov r1, r10
- 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
- negs r1, r1
- 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, 5
- ldrh r2, [r3, 0x14]
- ldr r1, _08038438 @ =0xfffffc1f
- 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, 2
- ldrb r2, [r3, 0x15]
- movs r1, 0x7D
- negs r1, r1
- 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, 15
- ldr r0, [sp, 0x14]
- ldr r2, _0803843C @ =0xfff07fff
- 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, 4
- ldrh r2, [r3, 0x16]
- ldr r1, _08038440 @ =0xfffffe0f
- 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, 1
- ldrb r2, [r3, 0x17]
- movs r1, 0x3F
- negs r1, r1
- 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, 0x2]
- adds r0, r4, 0
- movs r1, 0x3C
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- movs r1, 0x3D
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x6]
- adds r0, r4, 0
- movs r1, 0x3E
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x8]
- 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, 0x1
- ands r0, r1
- lsls r0, 6
- ldrb r2, [r3, 0x17]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- mov r3, sp
- lsls 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, 0x1
- bl GetMonData
- str r0, [sp, 0x54]
- adds r0, r4, 0
- movs r1, 0x2
- ldr r2, [sp, 0x8C]
- bl GetMonData
- ldr r0, [sp, 0x84]
- ldr r1, [sp, 0x8C]
- bl StringCopy10
- adds r0, r4, 0
- movs r1, 0x7
- ldr r2, [sp, 0x88]
- bl GetMonData
- mov r2, sp
- movs r6, 0
-_08038424:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _08038424
- b _08038886
- .align 2, 0
-_08038434: .4byte gEnemyParty
-_08038438: .4byte 0xfffffc1f
-_0803843C: .4byte 0xfff07fff
-_08038440: .4byte 0xfffffe0f
-_08038444:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038450 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- b _080387BE
- .align 2, 0
-_08038450: .4byte gEnemyParty
-_08038454:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038460 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xC
- b _080387BE
- .align 2, 0
-_08038460: .4byte gEnemyParty
-_08038464:
- movs r6, 0
- add r2, sp, 0x58
- mov r9, r2
- add r0, sp, 0x60
- mov r10, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080384C8 @ =gEnemyParty
- adds r4, r1, r0
- mov r8, r9
-_0803847A:
- 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, r10
- adds r1, r2, r6
- strb r0, [r1]
- movs r0, 0x2
- add r8, r0
- adds r6, 0x1
- cmp r6, 0x3
- ble _0803847A
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080384C8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_080384B8:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _080384B8
- b _08038886
- .align 2, 0
-_080384C8: .4byte gEnemyParty
-_080384CC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080384E4 @ =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _080387BE
- .align 2, 0
-_080384E4: .4byte gEnemyParty
-_080384E8:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, _08038520 @ =gEnemyParty
- mov r8, r2
-_080384F4:
- 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, 0x1
- cmp r6, 0x3
- ble _080384F4
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038520 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _08038886
- .align 2, 0
-_08038520: .4byte gEnemyParty
-_08038524:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803853C @ =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _0803887E
- .align 2, 0
-_0803853C: .4byte gEnemyParty
-_08038540:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803854C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1
- b _0803855A
- .align 2, 0
-_0803854C: .4byte gEnemyParty
-_08038550:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803857C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x19
-_0803855A:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- movs r6, 0x3
- b _08038886
- .align 2, 0
-_0803857C: .4byte gEnemyParty
-_08038580:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803858C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1A
- b _0803887E
- .align 2, 0
-_0803858C: .4byte gEnemyParty
-_08038590:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803859C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1B
- b _0803887E
- .align 2, 0
-_0803859C: .4byte gEnemyParty
-_080385A0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385AC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1C
- b _0803887E
- .align 2, 0
-_080385AC: .4byte gEnemyParty
-_080385B0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385BC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1D
- b _0803887E
- .align 2, 0
-_080385BC: .4byte gEnemyParty
-_080385C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385CC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1E
- b _0803887E
- .align 2, 0
-_080385CC: .4byte gEnemyParty
-_080385D0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385DC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1F
- b _0803887E
- .align 2, 0
-_080385DC: .4byte gEnemyParty
-_080385E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385EC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x20
- b _0803887E
- .align 2, 0
-_080385EC: .4byte gEnemyParty
-_080385F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385FC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x22
- b _0803887E
- .align 2, 0
-_080385FC: .4byte gEnemyParty
-_08038600:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803860C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x23
- b _0803887E
- .align 2, 0
-_0803860C: .4byte gEnemyParty
-_08038610:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803861C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x24
- b _0803887E
- .align 2, 0
-_0803861C: .4byte gEnemyParty
-_08038620:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803862C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x25
- b _0803887E
- .align 2, 0
-_0803862C: .4byte gEnemyParty
-_08038630:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803863C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x26
- b _0803887E
- .align 2, 0
-_0803863C: .4byte gEnemyParty
-_08038640:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0803868C @ =gEnemyParty
- adds 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, 0x1]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- strb r0, [r7, 0x2]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- strb r0, [r7, 0x3]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- strb r0, [r7, 0x4]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- strb r0, [r7, 0x5]
- movs r6, 0x6
- b _08038886
- .align 2, 0
-_0803868C: .4byte gEnemyParty
-_08038690:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803869C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x27
- b _0803887E
- .align 2, 0
-_0803869C: .4byte gEnemyParty
-_080386A0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386AC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x28
- b _0803887E
- .align 2, 0
-_080386AC: .4byte gEnemyParty
-_080386B0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386BC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x29
- b _0803887E
- .align 2, 0
-_080386BC: .4byte gEnemyParty
-_080386C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386CC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2A
- b _0803887E
- .align 2, 0
-_080386CC: .4byte gEnemyParty
-_080386D0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386DC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2B
- b _0803887E
- .align 2, 0
-_080386DC: .4byte gEnemyParty
-_080386E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386EC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2C
- b _0803887E
- .align 2, 0
-_080386EC: .4byte gEnemyParty
-_080386F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386FC @ =gEnemyParty
- adds r0, r1
- movs r1, 0
- b _0803871A
- .align 2, 0
-_080386FC: .4byte gEnemyParty
-_08038700:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803870C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x9
- b _080387BE
- .align 2, 0
-_0803870C: .4byte gEnemyParty
-_08038710:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038740 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x37
-_0803871A:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- lsrs r0, r1, 24
- strb r0, [r7, 0x3]
- movs r6, 0x4
- b _08038886
- .align 2, 0
-_08038740: .4byte gEnemyParty
-_08038744:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038750 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x38
- b _0803887E
- .align 2, 0
-_08038750: .4byte gEnemyParty
-_08038754:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038760 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- b _080387BE
- .align 2, 0
-_08038760: .4byte gEnemyParty
-_08038764:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038770 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- b _080387BE
- .align 2, 0
-_08038770: .4byte gEnemyParty
-_08038774:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038780 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3B
- b _080387BE
- .align 2, 0
-_08038780: .4byte gEnemyParty
-_08038784:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038790 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3C
- b _080387BE
- .align 2, 0
-_08038790: .4byte gEnemyParty
-_08038794:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387A0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3D
- b _080387BE
- .align 2, 0
-_080387A0: .4byte gEnemyParty
-_080387A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387B0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3E
- b _080387BE
- .align 2, 0
-_080387B0: .4byte gEnemyParty
-_080387B4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387D0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3F
-_080387BE:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _08038886
- .align 2, 0
-_080387D0: .4byte gEnemyParty
-_080387D4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387E0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x16
- b _0803887E
- .align 2, 0
-_080387E0: .4byte gEnemyParty
-_080387E4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387F0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x17
- b _0803887E
- .align 2, 0
-_080387F0: .4byte gEnemyParty
-_080387F4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038800 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x18
- b _0803887E
- .align 2, 0
-_08038800: .4byte gEnemyParty
-_08038804:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038810 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x21
- b _0803887E
- .align 2, 0
-_08038810: .4byte gEnemyParty
-_08038814:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038820 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2F
- b _0803887E
- .align 2, 0
-_08038820: .4byte gEnemyParty
-_08038824:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038830 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x30
- b _0803887E
- .align 2, 0
-_08038830: .4byte gEnemyParty
-_08038834:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038840 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x32
- b _0803887E
- .align 2, 0
-_08038840: .4byte gEnemyParty
-_08038844:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038850 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x33
- b _0803887E
- .align 2, 0
-_08038850: .4byte gEnemyParty
-_08038854:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038860 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x34
- b _0803887E
- .align 2, 0
-_08038860: .4byte gEnemyParty
-_08038864:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038870 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x35
- b _0803887E
- .align 2, 0
-_08038870: .4byte gEnemyParty
-_08038874:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038898 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x36
-_0803887E:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_08038886:
- adds r0, r6, 0
- add sp, 0x90
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08038898: .4byte gEnemyParty
- thumb_func_end dp01_getattr_by_ch1_for_player_pokemon__
-
- thumb_func_start sub_803889C
-sub_803889C: @ 803889C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803889C
-
- thumb_func_start sub_80388A8
-sub_80388A8: @ 80388A8
- push {r4,r5,lr}
- ldr r1, _080388CC @ =gUnknown_02023A60
- ldr r0, _080388D0 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _080388D8
- ldr r0, _080388D4 @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl sub_8038900
- b _080388F6
- .align 2, 0
-_080388CC: .4byte gUnknown_02023A60
-_080388D0: .4byte gUnknown_02024A60
-_080388D4: .4byte gUnknown_02024A6A
-_080388D8:
- ldrb r4, [r1]
- movs r5, 0
-_080388DC:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080388EA
- adds r0, r5, 0
- bl sub_8038900
-_080388EA:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080388DC
-_080388F6:
- bl dp01_tbl4_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80388A8
-
- thumb_func_start sub_8038900
-sub_8038900: @ 8038900
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x38
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r3, _08038938 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r0, 9
- ldr r2, _0803893C @ =gUnknown_02023A63
- adds r4, r0, r2
- adds r7, r4, 0
- subs r1, r2, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r6, r3, 0
- adds r3, r2, 0
- cmp r0, 0x3B
- bls _0803892E
- bl _0803920C
-_0803892E:
- lsls r0, 2
- ldr r1, _08038940 @ =_08038944
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08038938: .4byte gUnknown_02024A60
-_0803893C: .4byte gUnknown_02023A63
-_08038940: .4byte _08038944
- .align 2, 0
-_08038944:
- .4byte _08038A34
- .4byte _08038BCC
- .4byte _08038BE8
- .4byte _08038C04
- .4byte _08038C58
- .4byte _08038C58
- .4byte _08038C58
- .4byte _08038C58
- .4byte _08038C78
- .4byte _08038CE0
- .4byte _08038CE0
- .4byte _08038CE0
- .4byte _08038CE0
- .4byte _0803920C
- .4byte _0803920C
- .4byte _0803920C
- .4byte _0803920C
- .4byte _08038D08
- .4byte _08038D24
- .4byte _08038D40
- .4byte _08038D5C
- .4byte _08038D78
- .4byte _08038D94
- .4byte _08038DB0
- .4byte _08038DCC
- .4byte _08038DE8
- .4byte _08038E04
- .4byte _08038E20
- .4byte _08038E3C
- .4byte _08038E58
- .4byte _08038E74
- .4byte _08038E90
- .4byte _08038F04
- .4byte _08038F20
- .4byte _08038F3C
- .4byte _08038F58
- .4byte _08038F74
- .4byte _08038F90
- .4byte _08038FAC
- .4byte _08038FC8
- .4byte _08038FE4
- .4byte _08039000
- .4byte _0803901C
- .4byte _08039038
- .4byte _08039054
- .4byte _08039070
- .4byte _0803908C
- .4byte _080390A8
- .4byte _080390C4
- .4byte _080390E0
- .4byte _080390FC
- .4byte _08039118
- .4byte _08039134
- .4byte _08039150
- .4byte _0803916C
- .4byte _08039188
- .4byte _080391A4
- .4byte _080391C0
- .4byte _080391DC
- .4byte _080391F8
-_08038A34:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038BC8 @ =gEnemyParty
- adds 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, r7
- mov r10, r0
- adds r0, r7, 0
- adds r0, 0x2B
- str r0, [sp, 0x20]
- adds r0, 0x19
- str r0, [sp, 0x28]
- adds r0, 0x4
- str r0, [sp, 0x2C]
- adds r0, 0x4
- str r0, [sp, 0x30]
- subs r0, 0x22
- str r0, [sp, 0x1C]
- subs r0, 0x2
- str r0, [sp, 0x18]
- adds r0, 0x4
- str r0, [sp, 0x24]
- adds r0, r7, 0x2
- str r0, [sp, 0x4]
- adds r0, r7, 0x4
- str r0, [sp, 0x8]
- adds r0, r7, 0x6
- str r0, [sp, 0xC]
- adds r0, 0x2
- str r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x14]
- mov r9, r4
- adds r6, r7, 0
- adds r6, 0x24
- adds r4, r7, 0
- adds r4, 0xC
-_08038A9A:
- mov r1, r8
- adds r1, 0xD
- mov r0, r9
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- mov r0, r9
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _08038A9A
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038BC8 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- mov r2, r10
- 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, 27
- lsrs r0, 27
- 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, 22
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x28
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r7, 0x15]
- lsls r0, 25
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x29
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldr r0, [r7, 0x14]
- lsls r0, 12
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2A
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r7, 0x16]
- lsls r0, 23
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2B
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r7, 0x17]
- lsls r0, 26
- lsrs r0, 27
- 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, 0x4]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3C
- ldr r2, [sp, 0x8]
- 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 _0803920C
- .align 2, 0
-_08038BC8: .4byte gEnemyParty
-_08038BCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038BE4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xB
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038BE4: .4byte gEnemyParty
-_08038BE8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038C00 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xC
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038C00: .4byte gEnemyParty
-_08038C04:
- movs r0, 0
- mov r8, r0
- movs r0, 0xC
- adds r0, r4
- mov r9, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08038C54 @ =gEnemyParty
- adds r7, r1, r0
- adds r6, r4, 0
- adds r6, 0x8
-_08038C1C:
- 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, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _08038C1C
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038C54 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038C54: .4byte gEnemyParty
-_08038C58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038C70 @ =gEnemyParty
- adds r0, r1
- ldr r3, _08038C74 @ =gUnknown_02023A60
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _08038CF6
- .align 2, 0
-_08038C70: .4byte gEnemyParty
-_08038C74: .4byte gUnknown_02023A60
-_08038C78:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038CDC @ =gEnemyParty
- adds r4, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- adds r0, r4, 0
- movs r1, 0x11
- str r3, [sp, 0x34]
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x12
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x13
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x14
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038CDC: .4byte gEnemyParty
-_08038CE0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D00 @ =gEnemyParty
- adds r0, r1
- ldr r3, _08038D04 @ =gUnknown_02023A60
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_08038CF6:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D00: .4byte gEnemyParty
-_08038D04: .4byte gUnknown_02023A60
-_08038D08:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D20 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D20: .4byte gEnemyParty
-_08038D24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D3C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x19
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D3C: .4byte gEnemyParty
-_08038D40:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D58 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1A
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D58: .4byte gEnemyParty
-_08038D5C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D74 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1B
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D74: .4byte gEnemyParty
-_08038D78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D90 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1C
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D90: .4byte gEnemyParty
-_08038D94:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038DAC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1D
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038DAC: .4byte gEnemyParty
-_08038DB0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038DC8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1E
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038DC8: .4byte gEnemyParty
-_08038DCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038DE4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1F
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038DE4: .4byte gEnemyParty
-_08038DE8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E00 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x20
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E00: .4byte gEnemyParty
-_08038E04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E1C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x22
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E1C: .4byte gEnemyParty
-_08038E20:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E38 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x23
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E38: .4byte gEnemyParty
-_08038E3C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E54 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x24
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E54: .4byte gEnemyParty
-_08038E58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E70 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x25
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E70: .4byte gEnemyParty
-_08038E74:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E8C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x26
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E8C: .4byte gEnemyParty
-_08038E90:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038F00 @ =gEnemyParty
- adds r4, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- adds r0, r4, 0
- movs r1, 0x27
- str r3, [sp, 0x34]
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x28
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x29
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2A
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2B
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x5
- adds r2, r0
- adds r0, r4, 0
- b _08038F9E
- .align 2, 0
-_08038F00: .4byte gEnemyParty
-_08038F04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F1C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x27
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F1C: .4byte gEnemyParty
-_08038F20:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F38 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x28
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F38: .4byte gEnemyParty
-_08038F3C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F54 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x29
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F54: .4byte gEnemyParty
-_08038F58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F70 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2A
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F70: .4byte gEnemyParty
-_08038F74:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F8C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2B
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F8C: .4byte gEnemyParty
-_08038F90:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FA8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
-_08038F9E:
- movs r1, 0x2C
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FA8: .4byte gEnemyParty
-_08038FAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FC4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FC4: .4byte gEnemyParty
-_08038FC8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FE0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x9
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FE0: .4byte gEnemyParty
-_08038FE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FFC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x37
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FFC: .4byte gEnemyParty
-_08039000:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039018 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x38
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039018: .4byte gEnemyParty
-_0803901C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039034 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x39
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039034: .4byte gEnemyParty
-_08039038:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039050 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3A
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039050: .4byte gEnemyParty
-_08039054:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803906C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3B
- bl SetMonData
- b _0803920C
- .align 2, 0
-_0803906C: .4byte gEnemyParty
-_08039070:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039088 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3C
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039088: .4byte gEnemyParty
-_0803908C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390A4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3D
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390A4: .4byte gEnemyParty
-_080390A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390C0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3E
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390C0: .4byte gEnemyParty
-_080390C4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390DC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3F
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390DC: .4byte gEnemyParty
-_080390E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390F8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x16
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390F8: .4byte gEnemyParty
-_080390FC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039114 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x17
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039114: .4byte gEnemyParty
-_08039118:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039130 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x18
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039130: .4byte gEnemyParty
-_08039134:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803914C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x21
- bl SetMonData
- b _0803920C
- .align 2, 0
-_0803914C: .4byte gEnemyParty
-_08039150:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039168 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2F
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039168: .4byte gEnemyParty
-_0803916C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039184 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x30
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039184: .4byte gEnemyParty
-_08039188:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391A0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x32
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391A0: .4byte gEnemyParty
-_080391A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391BC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x33
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391BC: .4byte gEnemyParty
-_080391C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391D8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x34
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391D8: .4byte gEnemyParty
-_080391DC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391F4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x35
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391F4: .4byte gEnemyParty
-_080391F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803921C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x36
- bl SetMonData
-_0803920C:
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803921C: .4byte gEnemyParty
- thumb_func_end sub_8038900
-
- thumb_func_start sub_8039220
-sub_8039220: @ 8039220
- push {r4-r7,lr}
- ldr r1, _08039284 @ =gUnknown_02024A6A
- ldr r7, _08039288 @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- adds r3, r1, 0
- muls r3, r0
- ldr r4, _0803928C @ =gUnknown_02023A60
- lsls r2, 9
- adds r0, r4, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- ldr r1, _08039290 @ =gEnemyParty
- adds r0, r1
- adds r5, r3, r0
- movs r3, 0
- adds r0, r4, 0x2
- adds r2, r0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _08039278
- adds r6, r4, 0
- adds r2, r7, 0
- adds r4, r0, 0
-_08039256:
- adds r1, r5, r3
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, 0x3
- adds r0, r3, r0
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r3, r0
- bcc _08039256
-_08039278:
- bl dp01_tbl4_exec_completed
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08039284: .4byte gUnknown_02024A6A
-_08039288: .4byte gUnknown_02024A60
-_0803928C: .4byte gUnknown_02023A60
-_08039290: .4byte gEnemyParty
- thumb_func_end sub_8039220
-
- thumb_func_start sub_8039294
-sub_8039294: @ 8039294
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r7, _080393BC @ =gUnknown_02024A6A
- ldr r6, _080393C0 @ =gUnknown_02024A60
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r1, 0x64
- mov r10, r1
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- ldr r1, _080393C4 @ =gEnemyParty
- mov r9, r1
- add r0, r9
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- bl sub_8031794
- ldrb r0, [r6]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _080393C8 @ =gUnknown_02024E8C
- mov r8, r0
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r6]
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _080393CC @ =gUnknown_02024BE0
- ldrb r1, [r6]
- adds r1, r4
- strb r0, [r1]
- ldr r5, _080393D0 @ =gSprites
- ldrb r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080393D4 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r2, [r6]
- adds r0, r2, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x2E]
- ldrb r3, [r6]
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r2, [r6]
- adds r4, r2, r4
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080393D8 @ =gUnknown_02024E84
- adds r2, r1
- ldrb r1, [r2]
- bl StartSpriteAnim
- ldrb r4, [r6]
- lsls r0, r4, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
- ldr r1, _080393DC @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080393E0 @ =sub_8037A74
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080393BC: .4byte gUnknown_02024A6A
-_080393C0: .4byte gUnknown_02024A60
-_080393C4: .4byte gEnemyParty
-_080393C8: .4byte gUnknown_02024E8C
-_080393CC: .4byte gUnknown_02024BE0
-_080393D0: .4byte gSprites
-_080393D4: .4byte 0x0000ff10
-_080393D8: .4byte gUnknown_02024E84
-_080393DC: .4byte gUnknown_03004330
-_080393E0: .4byte sub_8037A74
- thumb_func_end sub_8039294
-
- thumb_func_start sub_80393E4
-sub_80393E4: @ 80393E4
- push {r4,lr}
- ldr r1, _0803941C @ =gUnknown_02024A6A
- ldr r4, _08039420 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r2, r0, 1
- adds r2, r1
- ldr r3, _08039424 @ =gUnknown_02023A60
- lsls r0, 9
- adds r1, r3, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2]
- ldrb r0, [r4]
- lsls r1, r0, 9
- adds r3, 0x2
- adds r1, r3
- ldrb r1, [r1]
- bl sub_8039430
- ldr r1, _08039428 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803942C @ =sub_8037E30
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803941C: .4byte gUnknown_02024A6A
-_08039420: .4byte gUnknown_02024A60
-_08039424: .4byte gUnknown_02023A60
-_08039428: .4byte gUnknown_03004330
-_0803942C: .4byte sub_8037E30
- thumb_func_end sub_80393E4
-
- thumb_func_start sub_8039430
-sub_8039430: @ 8039430
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8032AA8
- ldr r0, _0803958C @ =gUnknown_02024A6A
- lsls r4, r6, 1
- adds r4, r0
- ldr r0, _08039590 @ =gUnknown_02023A60
- lsls r1, r6, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0x64
- mov r9, r1
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- ldr r5, _08039594 @ =gEnemyParty
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _08039598 @ =sub_80312F0
- bl object_new_hidden_with_callback
- ldr r1, _0803959C @ =gUnknown_0300434C
- mov r10, r1
- add r10, r6
- mov r1, r10
- strb r0, [r1]
- ldrh r0, [r4]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- adds r0, r5
- adds r1, r6, 0
- bl sub_8031794
- adds r0, r6, 0
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _080395A0 @ =gUnknown_02024E8C
- mov r9, r0
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r9
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _080395A4 @ =gUnknown_02024BE0
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, _080395A8 @ =gSprites
- mov r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r6, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080395AC @ =gUnknown_02024E84
- adds r6, r1
- ldrb r1, [r6]
- bl StartSpriteAnim
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _080395B0 @ =SpriteCallbackDummy
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFE
- bl sub_8046400
- mov r1, r10
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x2E]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803958C: .4byte gUnknown_02024A6A
-_08039590: .4byte gUnknown_02023A60
-_08039594: .4byte gEnemyParty
-_08039598: .4byte sub_80312F0
-_0803959C: .4byte gUnknown_0300434C
-_080395A0: .4byte gUnknown_02024E8C
-_080395A4: .4byte gUnknown_02024BE0
-_080395A8: .4byte gSprites
-_080395AC: .4byte gUnknown_02024E84
-_080395B0: .4byte SpriteCallbackDummy
- thumb_func_end sub_8039430
-
- thumb_func_start sub_80395B4
-sub_80395B4: @ 80395B4
- push {r4-r6,lr}
- ldr r1, _080395E4 @ =gUnknown_02023A60
- ldr r6, _080395E8 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r3, [r0]
- cmp r3, 0
- bne _080395F8
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _080395EC @ =0x02017810
- adds r0, r1
- strb r3, [r0, 0x4]
- ldr r1, _080395F0 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080395F4 @ =sub_8039648
- str r1, [r0]
- b _08039634
- .align 2, 0
-_080395E4: .4byte gUnknown_02023A60
-_080395E8: .4byte gUnknown_02024A60
-_080395EC: .4byte 0x02017810
-_080395F0: .4byte gUnknown_03004330
-_080395F4: .4byte sub_8039648
-_080395F8:
- ldr r5, _0803963C @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08039640 @ =gSprites
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldrb r0, [r6]
- bl sub_8032A08
- ldr r1, _08039644 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl4_exec_completed
-_08039634:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803963C: .4byte gUnknown_02024BE0
-_08039640: .4byte gSprites
-_08039644: .4byte gUnknown_03004340
- thumb_func_end sub_80395B4
-
- thumb_func_start sub_8039648
-sub_8039648: @ 8039648
- push {r4,r5,lr}
- ldr r5, _08039664 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _08039668 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _0803966C
- cmp r0, 0x1
- beq _08039698
- b _080396C0
- .align 2, 0
-_08039664: .4byte gUnknown_02024A60
-_08039668: .4byte 0x02017810
-_0803966C:
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08039688
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08039688:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _080396C0
-_08039698:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080396C0
- strb r0, [r3, 0x4]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x2
- bl move_anim_start_t4
- ldr r1, _080396C8 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080396CC @ =sub_8037BBC
- str r1, [r0]
-_080396C0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080396C8: .4byte gUnknown_03004330
-_080396CC: .4byte sub_8037BBC
- thumb_func_end sub_8039648
-
- thumb_func_start sub_80396D0
-sub_80396D0: @ 80396D0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r0, _08039704 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08039714
- ldr r6, _08039708 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl battle_get_per_side_status
- movs r1, 0x2
- ands r1, r0
- movs r5, 0x10
- cmp r1, 0
- beq _080396F8
- ldr r5, _0803970C @ =0x0000fff0
-_080396F8:
- ldr r4, _08039710 @ =gLinkPlayers
- ldrb r0, [r6]
- bl sub_803FC34
- b _08039724
- .align 2, 0
-_08039704: .4byte gUnknown_020239F8
-_08039708: .4byte gUnknown_02024A60
-_0803970C: .4byte 0x0000fff0
-_08039710: .4byte gLinkPlayers
-_08039714:
- movs r5, 0
- ldr r4, _0803986C @ =gLinkPlayers
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
-_08039724:
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x13]
- mov r9, r0
- ldr r0, _08039870 @ =gUnknown_02024A60
- mov r8, r0
- ldrb r1, [r0]
- mov r0, r9
- bl sub_8031A6C
- mov r1, r8
- ldrb r0, [r1]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- bl GetMonSpriteTemplate_803C5A0
- ldr r6, _08039874 @ =gUnknown_02024E8C
- lsls r5, 16
- movs r2, 0xB0
- lsls r2, 16
- adds r5, r2
- asrs r5, 16
- ldr r1, _08039878 @ =gTrainerFrontPicCoords
- mov r2, r9
- lsls r0, r2, 2
- adds r0, r1
- ldrb r0, [r0]
- movs r4, 0x8
- subs r4, r0
- lsls r4, 18
- movs r0, 0xA0
- lsls r0, 14
- adds r4, r0
- asrs r4, 16
- mov r1, r8
- ldrb r0, [r1]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r5, _0803987C @ =gUnknown_02024BE0
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- strb r0, [r1]
- ldr r4, _08039880 @ =gSprites
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08039884 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldr r0, _08039888 @ =gTrainerFrontPicPaletteTable
- mov r1, r9
- lsls r6, r1, 3
- adds r0, r6, r0
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r1, [r1]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r4
- lsls r0, 4
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r0
- strb r1, [r2, 0x5]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r1, 0x38]
- ldr r0, _0803988C @ =gTrainerFrontPicTable
- adds r6, r0
- ldrh r0, [r6, 0x6]
- bl GetSpriteTileStartByTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldr r2, _08039890 @ =0x000003ff
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _08039894 @ =0xfffffc00
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r2, r9
- strh r2, [r0, 0x6]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _08039898 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _0803989C @ =gUnknown_03004330
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080398A0 @ =sub_803757C
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803986C: .4byte gLinkPlayers
-_08039870: .4byte gUnknown_02024A60
-_08039874: .4byte gUnknown_02024E8C
-_08039878: .4byte gTrainerFrontPicCoords
-_0803987C: .4byte gUnknown_02024BE0
-_08039880: .4byte gSprites
-_08039884: .4byte 0x0000ff10
-_08039888: .4byte gTrainerFrontPicPaletteTable
-_0803988C: .4byte gTrainerFrontPicTable
-_08039890: .4byte 0x000003ff
-_08039894: .4byte 0xfffffc00
-_08039898: .4byte sub_80313A0
-_0803989C: .4byte gUnknown_03004330
-_080398A0: .4byte sub_803757C
- thumb_func_end sub_80396D0
-
- thumb_func_start sub_80398A4
-sub_80398A4: @ 80398A4
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_80398A4
-
- thumb_func_start sub_80398B0
-sub_80398B0: @ 80398B0
- push {r4-r6,lr}
- ldr r6, _08039940 @ =gUnknown_02024BE0
- ldr r4, _08039944 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _08039948 @ =gSprites
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x8C
- lsls r1, 1
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0803994C @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08039950 @ =SpriteCallbackDummy
- bl oamt_set_x3A_32
- ldr r1, _08039954 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039958 @ =sub_80375B4
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08039940: .4byte gUnknown_02024BE0
-_08039944: .4byte gUnknown_02024A60
-_08039948: .4byte gSprites
-_0803994C: .4byte sub_8078B34
-_08039950: .4byte SpriteCallbackDummy
-_08039954: .4byte gUnknown_03004330
-_08039958: .4byte sub_80375B4
- thumb_func_end sub_80398B0
-
- thumb_func_start sub_803995C
-sub_803995C: @ 803995C
- push {r4,r5,lr}
- ldr r5, _080399A0 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _080399A4 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- bne _080399A8
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0803998E
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0803998E:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _080399E4
- .align 2, 0
-_080399A0: .4byte gUnknown_02024A60
-_080399A4: .4byte 0x02017810
-_080399A8:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080399E4
- strb r0, [r3, 0x4]
- movs r0, 0x10
- movs r1, 0x3F
- bl PlaySE12WithPanning
- ldr r2, _080399EC @ =gSprites
- ldr r1, _080399F0 @ =gUnknown_02024BE0
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080399F4 @ =sub_8010384
- str r1, [r0]
- ldr r1, _080399F8 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080399FC @ =sub_8037B78
- str r1, [r0]
-_080399E4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080399EC: .4byte gSprites
-_080399F0: .4byte gUnknown_02024BE0
-_080399F4: .4byte sub_8010384
-_080399F8: .4byte gUnknown_03004330
-_080399FC: .4byte sub_8037B78
- thumb_func_end sub_803995C
-
- thumb_func_start sub_8039A00
-sub_8039A00: @ 8039A00
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A00
-
- thumb_func_start sub_8039A0C
-sub_8039A0C: @ 8039A0C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A0C
-
- thumb_func_start sub_8039A18
-sub_8039A18: @ 8039A18
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A18
-
- thumb_func_start sub_8039A24
-sub_8039A24: @ 8039A24
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A24
-
- thumb_func_start sub_8039A30
-sub_8039A30: @ 8039A30
- push {r4-r6,lr}
- ldr r6, _08039B14 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- beq _08039A42
- b _08039B52
-_08039A42:
- ldr r0, _08039B18 @ =gUnknown_02023A60
- mov r12, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _08039B1C @ =gUnknown_0202F7C4
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _08039B20 @ =gUnknown_0202F7BC
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x4
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x5
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r4, _08039B24 @ =gUnknown_0202F7B8
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x6
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x7
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r3, r1
- mov r1, r12
- adds r1, 0x8
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 16
- orrs r3, r1
- mov r1, r12
- adds r1, 0x9
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 24
- orrs r3, r1
- str r3, [r4]
- ldr r3, _08039B28 @ =gUnknown_0202F7BE
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _08039B2C @ =gUnknown_0202F7C0
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0xC
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0xD
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r3, _08039B30 @ =gUnknown_0202F7B4
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _08039B34 @ =gUnknown_02024E70
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r3
- ldr r2, [r2]
- str r2, [r1]
- ldrb r1, [r5]
- bl sub_8031720
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08039B38
- bl dp01_tbl4_exec_completed
- b _08039B52
- .align 2, 0
-_08039B14: .4byte gUnknown_02024A60
-_08039B18: .4byte gUnknown_02023A60
-_08039B1C: .4byte gUnknown_0202F7C4
-_08039B20: .4byte gUnknown_0202F7BC
-_08039B24: .4byte gUnknown_0202F7B8
-_08039B28: .4byte gUnknown_0202F7BE
-_08039B2C: .4byte gUnknown_0202F7C0
-_08039B30: .4byte gUnknown_0202F7B4
-_08039B34: .4byte gUnknown_02024E70
-_08039B38:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08039B58 @ =0x02017810
- adds r0, r1
- strb r2, [r0, 0x4]
- ldr r1, _08039B5C @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039B60 @ =sub_8039B64
- str r1, [r0]
-_08039B52:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08039B58: .4byte 0x02017810
-_08039B5C: .4byte gUnknown_03004330
-_08039B60: .4byte sub_8039B64
- thumb_func_end sub_8039A30
-
- thumb_func_start sub_8039B64
-sub_8039B64: @ 8039B64
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _08039BA8 @ =gUnknown_02023A60
- ldr r5, _08039BAC @ =gUnknown_02024A60
- ldrb r3, [r5]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r9, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r6, r2, 0x2
- mov r8, r6
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- adds r2, 0xB
- adds r1, r2
- ldrb r7, [r1]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r6, _08039BB0 @ =0x02017810
- adds r0, r6
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _08039BF2
- cmp r2, 0x1
- bgt _08039BB4
- cmp r2, 0
- beq _08039BBE
- b _08039CBC
- .align 2, 0
-_08039BA8: .4byte gUnknown_02023A60
-_08039BAC: .4byte gUnknown_02024A60
-_08039BB0: .4byte 0x02017810
-_08039BB4:
- cmp r2, 0x2
- beq _08039C18
- cmp r2, 0x3
- beq _08039C84
- b _08039CBC
-_08039BBE:
- lsls r1, r3, 2
- adds r0, r6, 0
- subs r0, 0x10
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0xC
- ands r0, r2
- cmp r0, 0x4
- bne _08039BE2
- movs r0, 0x8
- orrs r0, r2
- strb r0, [r1]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08039BE2:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08039CBC
-_08039BF2:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08039CBC
- movs r0, 0
- bl sub_80326EC
- adds r0, r4, 0
- bl move_anim_start_t1
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08039CBC
-_08039C18:
- ldr r0, _08039C74 @ =gUnknown_0202F7AC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _08039C78 @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08039CBC
- movs r0, 0x1
- bl sub_80326EC
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r4, r6, 0
- subs r4, 0x10
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08039C60
- cmp r7, 0x1
- bhi _08039C60
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0]
- movs r1, 0x9
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_08039C60:
- ldr r0, _08039C7C @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08039C80 @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x4]
- b _08039CBC
- .align 2, 0
-_08039C74: .4byte gUnknown_0202F7AC
-_08039C78: .4byte gUnknown_0202F7B1
-_08039C7C: .4byte gUnknown_02024A60
-_08039C80: .4byte 0x02017810
-_08039C84:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08039CBC
- bl sub_8031F24
- ldrb r0, [r5]
- lsls r2, r0, 9
- mov r3, r9
- adds r1, r2, r3
- ldrb r1, [r1]
- add r2, r8
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl sub_80324BC
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r4, [r0, 0x4]
- bl dp01_tbl4_exec_completed
-_08039CBC:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8039B64
-
- thumb_func_start sub_8039CC8
-sub_8039CC8: @ 8039CC8
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08039D0C @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08039D10 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r4, _08039D14 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 9
- ldr r1, _08039D18 @ =gUnknown_02023A62
- adds r0, r1
- ldrh r0, [r0]
- bl sub_8120AA8
- ldr r0, _08039D1C @ =gUnknown_03004210
- ldr r1, _08039D20 @ =gUnknown_020238CC
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08039D24 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039D28 @ =sub_8037C2C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08039D0C: .4byte gUnknown_030042A4
-_08039D10: .4byte gUnknown_030042A0
-_08039D14: .4byte gUnknown_02024A60
-_08039D18: .4byte gUnknown_02023A62
-_08039D1C: .4byte gUnknown_03004210
-_08039D20: .4byte gUnknown_020238CC
-_08039D24: .4byte gUnknown_03004330
-_08039D28: .4byte sub_8037C2C
- thumb_func_end sub_8039CC8
-
- thumb_func_start sub_8039D2C
-sub_8039D2C: @ 8039D2C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D2C
-
- thumb_func_start sub_8039D38
-sub_8039D38: @ 8039D38
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D38
-
- thumb_func_start sub_8039D44
-sub_8039D44: @ 8039D44
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D44
-
- thumb_func_start sub_8039D50
-sub_8039D50: @ 8039D50
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D50
-
- thumb_func_start sub_8039D5C
-sub_8039D5C: @ 8039D5C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D5C
-
- thumb_func_start sub_8039D68
-sub_8039D68: @ 8039D68
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D68
-
- thumb_func_start sub_8039D74
-sub_8039D74: @ 8039D74
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D74
-
- thumb_func_start sub_8039D80
-sub_8039D80: @ 8039D80
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r0, 0
- bl load_gfxc_health_bar
- ldr r3, _08039DF8 @ =gUnknown_02023A60
- ldr r0, _08039DFC @ =gUnknown_02024A60
- mov r9, r0
- ldrb r4, [r0]
- lsls r2, r4, 9
- adds r0, r3, 0x2
- adds r0, r2, r0
- ldrb r1, [r0]
- adds r3, 0x3
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- asrs r7, r1, 16
- ldr r0, _08039E00 @ =0x00007fff
- cmp r7, r0
- beq _08039E10
- ldr r6, _08039E04 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _08039E08 @ =gEnemyParty
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- mov r8, r0
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _08039E0C @ =gUnknown_03004340
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl sub_8043D84
- b _08039E3A
- .align 2, 0
-_08039DF8: .4byte gUnknown_02023A60
-_08039DFC: .4byte gUnknown_02024A60
-_08039E00: .4byte 0x00007fff
-_08039E04: .4byte gUnknown_02024A6A
-_08039E08: .4byte gEnemyParty
-_08039E0C: .4byte gUnknown_03004340
-_08039E10:
- ldr r1, _08039E58 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08039E5C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _08039E60 @ =gUnknown_03004340
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl sub_8043D84
-_08039E3A:
- ldr r1, _08039E64 @ =gUnknown_03004330
- ldr r0, _08039E68 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039E6C @ =sub_8037B24
- str r1, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08039E58: .4byte gUnknown_02024A6A
-_08039E5C: .4byte gEnemyParty
-_08039E60: .4byte gUnknown_03004340
-_08039E64: .4byte gUnknown_03004330
-_08039E68: .4byte gUnknown_02024A60
-_08039E6C: .4byte sub_8037B24
- thumb_func_end sub_8039D80
-
- thumb_func_start sub_8039E70
-sub_8039E70: @ 8039E70
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039E70
-
- thumb_func_start sub_8039E7C
-sub_8039E7C: @ 8039E7C
- push {r4,lr}
- ldr r4, _08039ED4 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08039ECC
- ldr r0, _08039ED8 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _08039EDC @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08039EE0 @ =gEnemyParty
- adds r1, r2
- movs r2, 0x9
- bl sub_8045A5C
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _08039EE4 @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, _08039EE8 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039EEC @ =sub_8037FAC
- str r1, [r0]
-_08039ECC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08039ED4: .4byte gUnknown_02024A60
-_08039ED8: .4byte gUnknown_03004340
-_08039EDC: .4byte gUnknown_02024A6A
-_08039EE0: .4byte gEnemyParty
-_08039EE4: .4byte 0x02017810
-_08039EE8: .4byte gUnknown_03004330
-_08039EEC: .4byte sub_8037FAC
- thumb_func_end sub_8039E7C
-
- thumb_func_start sub_8039EF0
-sub_8039EF0: @ 8039EF0
- push {r4,r5,lr}
- ldr r5, _08039F48 @ =gUnknown_02024A60
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08039F40
- ldr r4, _08039F4C @ =gUnknown_02023A60
- ldrb r3, [r5]
- lsls r3, 9
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- adds r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- adds r2, r4, 0x4
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 16
- orrs r1, r2
- adds r4, 0x5
- adds r3, r4
- ldrb r2, [r3]
- lsls r2, 24
- orrs r1, r2
- bl move_anim_start_t2_for_situation
- ldr r1, _08039F50 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039F54 @ =sub_8037FAC
- str r1, [r0]
-_08039F40:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08039F48: .4byte gUnknown_02024A60
-_08039F4C: .4byte gUnknown_02023A60
-_08039F50: .4byte gUnknown_03004330
-_08039F54: .4byte sub_8037FAC
- thumb_func_end sub_8039EF0
-
- thumb_func_start sub_8039F58
-sub_8039F58: @ 8039F58
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F58
-
- thumb_func_start sub_8039F64
-sub_8039F64: @ 8039F64
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F64
-
- thumb_func_start sub_8039F70
-sub_8039F70: @ 8039F70
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F70
-
- thumb_func_start sub_8039F7C
-sub_8039F7C: @ 8039F7C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F7C
-
- thumb_func_start sub_8039F88
-sub_8039F88: @ 8039F88
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F88
-
- thumb_func_start sub_8039F94
-sub_8039F94: @ 8039F94
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F94
-
- thumb_func_start sub_8039FA0
-sub_8039FA0: @ 8039FA0
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039FA0
-
- thumb_func_start sub_8039FAC
-sub_8039FAC: @ 8039FAC
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039FAC
-
- thumb_func_start sub_8039FB8
-sub_8039FB8: @ 8039FB8
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039FB8
-
- thumb_func_start sub_8039FC4
-sub_8039FC4: @ 8039FC4
- push {lr}
- ldr r2, _08039FDC @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08039FDC: .4byte gUnknown_020238C8
- thumb_func_end sub_8039FC4
-
- thumb_func_start sub_8039FE0
-sub_8039FE0: @ 8039FE0
- push {lr}
- ldr r3, _0803A00C @ =gUnknown_020238C8
- ldr r1, _0803A010 @ =gUnknown_02023A60
- ldr r0, _0803A014 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x7F
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A00C: .4byte gUnknown_020238C8
-_0803A010: .4byte gUnknown_02023A60
-_0803A014: .4byte gUnknown_02024A60
- thumb_func_end sub_8039FE0
-
- thumb_func_start sub_803A018
-sub_803A018: @ 803A018
- push {lr}
- ldr r2, _0803A02C @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A02C: .4byte gUnknown_020238C8
- thumb_func_end sub_803A018
-
- thumb_func_start sub_803A030
-sub_803A030: @ 803A030
- push {lr}
- ldr r3, _0803A054 @ =gUnknown_020238C8
- ldr r1, [r3]
- lsls r1, 24
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 7
- ldrb r2, [r3]
- movs r0, 0x7F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A054: .4byte gUnknown_020238C8
- thumb_func_end sub_803A030
-
- thumb_func_start dp01t_29_4_blink
-dp01t_29_4_blink: @ 803A058
- push {r4,lr}
- ldr r3, _0803A080 @ =gSprites
- ldr r2, _0803A084 @ =gUnknown_02024BE0
- ldr r4, _0803A088 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _0803A08C
- bl dp01_tbl4_exec_completed
- b _0803A0B6
- .align 2, 0
-_0803A080: .4byte gSprites
-_0803A084: .4byte gUnknown_02024BE0
-_0803A088: .4byte gUnknown_02024A60
-_0803A08C:
- ldr r1, _0803A0BC @ =gUnknown_02024E6D
- movs r0, 0x1
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r4]
- bl sub_8047858
- ldr r1, _0803A0C0 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A0C4 @ =dp01t_0F_4_move_anim
- str r1, [r0]
-_0803A0B6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A0BC: .4byte gUnknown_02024E6D
-_0803A0C0: .4byte gUnknown_03004330
-_0803A0C4: .4byte dp01t_0F_4_move_anim
- thumb_func_end dp01t_29_4_blink
-
- thumb_func_start sub_803A0C8
-sub_803A0C8: @ 803A0C8
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A0C8
-
- thumb_func_start sub_803A0D4
-sub_803A0D4: @ 803A0D4
- push {r4,lr}
- ldr r4, _0803A110 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _0803A0E8
- movs r3, 0xC0
-_0803A0E8:
- ldr r2, _0803A114 @ =gUnknown_02023A60
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- lsls r1, r3, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- bl dp01_tbl4_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A110: .4byte gUnknown_02024A60
-_0803A114: .4byte gUnknown_02023A60
- thumb_func_end sub_803A0D4
-
- thumb_func_start sub_803A118
-sub_803A118: @ 803A118
- push {lr}
- ldr r2, _0803A140 @ =gUnknown_02023A60
- ldr r0, _0803A144 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A140: .4byte gUnknown_02023A60
-_0803A144: .4byte gUnknown_02024A60
- thumb_func_end sub_803A118
-
- thumb_func_start sub_803A148
-sub_803A148: @ 803A148
- push {lr}
- ldr r1, _0803A178 @ =gUnknown_02024A6A
- ldr r0, _0803A17C @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0803A180 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- movs r2, 0x5
- bl PlayCry3
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A178: .4byte gUnknown_02024A6A
-_0803A17C: .4byte gUnknown_02024A60
-_0803A180: .4byte gEnemyParty
- thumb_func_end sub_803A148
-
- thumb_func_start dp01t_2E_4_battle_intro
-dp01t_2E_4_battle_intro: @ 803A184
- push {lr}
- ldr r1, _0803A1AC @ =gUnknown_02023A60
- ldr r0, _0803A1B0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _0803A1B4 @ =gUnknown_02024DE8
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A1AC: .4byte gUnknown_02023A60
-_0803A1B0: .4byte gUnknown_02024A60
-_0803A1B4: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_4_battle_intro
-
- thumb_func_start sub_803A1B8
-sub_803A1B8: @ 803A1B8
- push {r4-r6,lr}
- ldr r5, _0803A294 @ =gUnknown_02024BE0
- ldr r6, _0803A298 @ =gUnknown_02024A60
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0803A29C @ =gSprites
- adds r0, r4
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x8C
- lsls r1, 1
- strh r1, [r0, 0x32]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0803A2A0 @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0803A2A4 @ =sub_803A3A8
- bl oamt_set_x3A_32
- ldr r0, _0803A2A8 @ =sub_803A2C4
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _0803A2AC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r6]
- strh r0, [r1, 0x8]
- ldrb r3, [r6]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r2, _0803A2B0 @ =0x02017810
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803A276
- ldr r0, _0803A2B4 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, _0803A2B8 @ =sub_8044CA0
- str r1, [r0]
-_0803A276:
- adds r2, 0x30
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _0803A2BC @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A2C0 @ =nullsub_47
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A294: .4byte gUnknown_02024BE0
-_0803A298: .4byte gUnknown_02024A60
-_0803A29C: .4byte gSprites
-_0803A2A0: .4byte sub_8078B34
-_0803A2A4: .4byte sub_803A3A8
-_0803A2A8: .4byte sub_803A2C4
-_0803A2AC: .4byte gTasks
-_0803A2B0: .4byte 0x02017810
-_0803A2B4: .4byte gUnknown_02024E68
-_0803A2B8: .4byte sub_8044CA0
-_0803A2BC: .4byte gUnknown_03004330
-_0803A2C0: .4byte nullsub_47
- thumb_func_end sub_803A1B8
-
- thumb_func_start sub_803A2C4
-sub_803A2C4: @ 803A2C4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r7, _0803A31C @ =gUnknown_02024A60
- ldrb r0, [r7]
- mov r9, r0
- ldr r1, _0803A320 @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- strb r0, [r7]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0803A2FE
- ldr r0, _0803A324 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0803A330
-_0803A2FE:
- ldr r0, _0803A328 @ =gUnknown_02023A60
- ldrb r1, [r7]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, _0803A32C @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8039430
- b _0803A370
- .align 2, 0
-_0803A31C: .4byte gUnknown_02024A60
-_0803A320: .4byte gTasks
-_0803A324: .4byte gUnknown_020239F8
-_0803A328: .4byte gUnknown_02023A60
-_0803A32C: .4byte gUnknown_02024A6A
-_0803A330:
- ldr r4, _0803A394 @ =gUnknown_02023A60
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r4, 0x1
- adds r1, r4
- ldr r6, _0803A398 @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8039430
- ldrb r0, [r7]
- movs r5, 0x2
- eors r0, r5
- strb r0, [r7]
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r1, r4
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8039430
- ldrb r0, [r7]
- eors r0, r5
- strb r0, [r7]
-_0803A370:
- ldr r1, _0803A39C @ =gUnknown_03004330
- ldr r2, _0803A3A0 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A3A4 @ =sub_8037840
- str r1, [r0]
- mov r0, r9
- strb r0, [r2]
- mov r0, r8
- bl DestroyTask
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A394: .4byte gUnknown_02023A60
-_0803A398: .4byte gUnknown_02024A6A
-_0803A39C: .4byte gUnknown_03004330
-_0803A3A0: .4byte gUnknown_02024A60
-_0803A3A4: .4byte sub_8037840
- thumb_func_end sub_803A2C4
-
- thumb_func_start sub_803A3A8
-sub_803A3A8: @ 803A3A8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x6]
- bl sub_8031B74
- ldrh r0, [r4, 0x38]
- ldr r1, _0803A3D4 @ =0x000003ff
- ands r1, r0
- ldrh r2, [r4, 0x4]
- ldr r0, _0803A3D8 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A3D4: .4byte 0x000003ff
-_0803A3D8: .4byte 0xfffffc00
- thumb_func_end sub_803A3A8
-
- thumb_func_start sub_803A3DC
-sub_803A3DC: @ 803A3DC
- push {r4-r6,lr}
- ldr r1, _0803A404 @ =gUnknown_02023A60
- ldr r0, _0803A408 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0803A40C
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803A40C
- bl dp01_tbl4_exec_completed
- b _0803A4C6
- .align 2, 0
-_0803A404: .4byte gUnknown_02023A60
-_0803A408: .4byte gUnknown_02024A60
-_0803A40C:
- ldr r3, _0803A45C @ =gUnknown_02024A60
- ldrb r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r4, _0803A460 @ =0x02017810
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _0803A464 @ =gUnknown_02023A60
- ldrb r2, [r3]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r6, r3, 0
- cmp r0, 0
- beq _0803A470
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r4
- ldrb r2, [r3, 0x1]
- lsls r1, r2, 26
- lsrs r0, r1, 27
- cmp r0, 0x1
- bhi _0803A468
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- lsls r0, 1
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
- b _0803A4C6
- .align 2, 0
-_0803A45C: .4byte gUnknown_02024A60
-_0803A460: .4byte 0x02017810
-_0803A464: .4byte gUnknown_02023A60
-_0803A468:
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- strb r0, [r3, 0x1]
-_0803A470:
- adds r5, r6, 0
- ldrb r0, [r5]
- lsls r3, r0, 9
- ldr r4, _0803A4CC @ =gUnknown_02023A64
- adds r1, r3, r4
- subs r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- subs r4, 0x2
- adds r3, r4
- ldrb r3, [r3]
- bl sub_8044804
- ldr r2, _0803A4D0 @ =gUnknown_02024E68
- ldrb r1, [r5]
- adds r1, r2
- movs r2, 0
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _0803A4D4 @ =0x02017810
- adds r0, r3
- strb r2, [r0, 0x5]
- ldrb r1, [r5]
- lsls r0, r1, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0803A4BA
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x5D
- strb r1, [r0, 0x5]
-_0803A4BA:
- ldr r0, _0803A4D8 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0803A4DC @ =sub_803A4E0
- str r0, [r1]
-_0803A4C6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A4CC: .4byte gUnknown_02023A64
-_0803A4D0: .4byte gUnknown_02024E68
-_0803A4D4: .4byte 0x02017810
-_0803A4D8: .4byte gUnknown_03004330
-_0803A4DC: .4byte sub_803A4E0
- thumb_func_end sub_803A3DC
-
- thumb_func_start sub_803A4E0
-sub_803A4E0: @ 803A4E0
- push {r4,lr}
- ldr r4, _0803A518 @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _0803A51C @ =0x02017810
- adds r0, r3
- ldrb r1, [r0, 0x5]
- adds r2, r1, 0x1
- strb r2, [r0, 0x5]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x5C
- bls _0803A510
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r0, 0
- strb r0, [r1, 0x5]
- bl dp01_tbl4_exec_completed
-_0803A510:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A518: .4byte gUnknown_02024A60
-_0803A51C: .4byte 0x02017810
- thumb_func_end sub_803A4E0
-
- thumb_func_start sub_803A520
-sub_803A520: @ 803A520
- push {lr}
- ldr r0, _0803A558 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r1, _0803A55C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803A54E
- ldr r2, _0803A560 @ =gTasks
- ldr r0, _0803A564 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _0803A568 @ =sub_8044CA0
- str r1, [r0]
-_0803A54E:
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A558: .4byte gUnknown_02024A60
-_0803A55C: .4byte 0x02017810
-_0803A560: .4byte gTasks
-_0803A564: .4byte gUnknown_02024E68
-_0803A568: .4byte sub_8044CA0
- thumb_func_end sub_803A520
-
- thumb_func_start sub_803A56C
-sub_803A56C: @ 803A56C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A56C
-
- thumb_func_start sub_803A578
-sub_803A578: @ 803A578
- push {r4,lr}
- ldr r4, _0803A5C8 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _0803A5BE
- ldr r3, _0803A5CC @ =gSprites
- ldr r0, _0803A5D0 @ =gUnknown_02024BE0
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldr r0, _0803A5D4 @ =gUnknown_02023A60
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- adds r2, 0x3E
- movs r0, 0x1
- ldrb r1, [r1]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- bl sub_8031F88
-_0803A5BE:
- bl dp01_tbl4_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A5C8: .4byte gUnknown_02024A60
-_0803A5CC: .4byte gSprites
-_0803A5D0: .4byte gUnknown_02024BE0
-_0803A5D4: .4byte gUnknown_02023A60
- thumb_func_end sub_803A578
-
- thumb_func_start bx_exec_buffer_A_ch0_tbl4
-bx_exec_buffer_A_ch0_tbl4: @ 803A5D8
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _0803A61C @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _0803A630
- ldr r5, _0803A620 @ =gUnknown_02023A60
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _0803A624
- bl dp01_tbl4_exec_completed
- b _0803A630
- .align 2, 0
-_0803A61C: .4byte gUnknown_02024A60
-_0803A620: .4byte gUnknown_02023A60
-_0803A624:
- ldr r0, _0803A638 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0803A63C @ =sub_8037FD8
- str r0, [r1]
-_0803A630:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A638: .4byte gUnknown_03004330
-_0803A63C: .4byte sub_8037FD8
- thumb_func_end bx_exec_buffer_A_ch0_tbl4
-
- thumb_func_start sub_803A640
-sub_803A640: @ 803A640
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A640
-
- thumb_func_start sub_803A64C
-sub_803A64C: @ 803A64C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A64C
-
- thumb_func_start sub_803A658
-sub_803A658: @ 803A658
- push {lr}
- ldr r1, _0803A674 @ =gUnknown_02023A60
- ldr r0, _0803A678 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r2, [r0]
- cmp r2, 0x3
- bne _0803A680
- ldr r0, _0803A67C @ =gUnknown_02024D26
- strb r2, [r0]
- b _0803A688
- .align 2, 0
-_0803A674: .4byte gUnknown_02023A60
-_0803A678: .4byte gUnknown_02024A60
-_0803A67C: .4byte gUnknown_02024D26
-_0803A680:
- ldr r0, _0803A6AC @ =gUnknown_02024D26
- movs r1, 0x3
- eors r1, r2
- strb r1, [r0]
-_0803A688:
- movs r0, 0x5
- bl FadeOutMapMusic
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl dp01_tbl4_exec_completed
- ldr r1, _0803A6B0 @ =gUnknown_03004330
- ldr r0, _0803A6B4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A6B8 @ =sub_8037F34
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0803A6AC: .4byte gUnknown_02024D26
-_0803A6B0: .4byte gUnknown_03004330
-_0803A6B4: .4byte gUnknown_02024A60
-_0803A6B8: .4byte sub_8037F34
- thumb_func_end sub_803A658
-
- thumb_func_start nullsub_48
-nullsub_48: @ 803A6BC
- bx lr
- thumb_func_end nullsub_48
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom5.s b/asm/rom5.s
index a9d49a60e..4b0947a5d 100644
--- a/asm/rom5.s
+++ b/asm/rom5.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/rom6.s b/asm/rom6.s
index 898686d41..ad1e71be5 100644
--- a/asm/rom6.s
+++ b/asm/rom6.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -32,7 +32,7 @@ npc_before_player_of_type: @ 810B2D4
ldrb r0, [r2, 0x5]
cmp r0, r5
bne _0810B320
- ldr r1, _0810B31C @ =gUnknown_0202E8DE
+ ldr r1, _0810B31C @ =gScriptLastTalked
ldrb r0, [r2, 0x8]
strh r0, [r1]
movs r0, 0x1
@@ -40,7 +40,7 @@ npc_before_player_of_type: @ 810B2D4
.align 2, 0
_0810B314: .4byte gUnknown_0203923C
_0810B318: .4byte gMapObjects
-_0810B31C: .4byte gUnknown_0202E8DE
+_0810B31C: .4byte gScriptLastTalked
_0810B320:
movs r0, 0
_0810B322:
@@ -488,7 +488,7 @@ sub_810B68C: @ 810B68C
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
- ldr r1, _0810B6B0 @ =gBG2TilemapBuffer
+ ldr r1, _0810B6B0 @ =gBGTilemapBuffers + 0x1000
ldr r2, _0810B6B4 @ =0x06007800
ldr r0, _0810B6B8 @ =0x040000d4
str r1, [r0]
@@ -499,7 +499,7 @@ sub_810B68C: @ 810B68C
pop {r0}
bx r0
.align 2, 0
-_0810B6B0: .4byte gBG2TilemapBuffer
+_0810B6B0: .4byte gBGTilemapBuffers + 0x1000
_0810B6B4: .4byte 0x06007800
_0810B6B8: .4byte 0x040000d4
_0810B6BC: .4byte 0x80000400
@@ -862,12 +862,12 @@ _0810B9DC: .4byte gMenuPokeblock_Gfx
_0810B9E0: .4byte 0x06008000
_0810B9E4:
ldr r0, _0810B9F0 @ =gMenuPokeblock_Tilemap
- ldr r1, _0810B9F4 @ =gBG2TilemapBuffer
+ ldr r1, _0810B9F4 @ =gBGTilemapBuffers + 0x1000
bl sub_800D238
b _0810BA0E
.align 2, 0
_0810B9F0: .4byte gMenuPokeblock_Tilemap
-_0810B9F4: .4byte gBG2TilemapBuffer
+_0810B9F4: .4byte gBGTilemapBuffers + 0x1000
_0810B9F8:
ldr r0, _0810BA04 @ =gMenuPokeblock_Pal
movs r1, 0
@@ -1133,7 +1133,7 @@ _0810BC08:
adds r0, r1
ldrb r0, [r0]
lsls r0, 2
- ldr r1, _0810BC7C @ =gUnknown_083F7EB8
+ ldr r1, _0810BC7C @ =gPokeblockNames
adds r0, r1
ldr r1, [r0]
mov r0, r9
@@ -1180,7 +1180,7 @@ _0810BC6C:
pop {r0}
bx r0
.align 2, 0
-_0810BC7C: .4byte gUnknown_083F7EB8
+_0810BC7C: .4byte gPokeblockNames
_0810BC80: .4byte gSaveBlock1 + 0x7F8
thumb_func_end sub_810BB88
@@ -1317,7 +1317,7 @@ sub_810BD64: @ 810BD64
lsrs r3, r0, 16
movs r2, 0
ldr r5, _0810BDA4 @ =gUnknown_02039248
- ldr r4, _0810BDA8 @ =gBG2TilemapBuffer
+ ldr r4, _0810BDA8 @ =gBGTilemapBuffers + 0x1000
_0810BD70:
ldrb r0, [r5]
lsls r0, 1
@@ -1346,7 +1346,7 @@ _0810BD70:
bx r0
.align 2, 0
_0810BDA4: .4byte gUnknown_02039248
-_0810BDA8: .4byte gBG2TilemapBuffer
+_0810BDA8: .4byte gBGTilemapBuffers + 0x1000
thumb_func_end sub_810BD64
thumb_func_start sub_810BDAC
@@ -1409,7 +1409,7 @@ _0810BE20:
bl sub_80F979C
_0810BE28:
movs r6, 0
- ldr r7, _0810BE94 @ =gBG2TilemapBuffer
+ ldr r7, _0810BE94 @ =gBGTilemapBuffers + 0x1000
movs r0, 0xF
mov r8, r0
_0810BE30:
@@ -1461,7 +1461,7 @@ _0810BE30:
strh r2, [r0]
b _0810BECC
.align 2, 0
-_0810BE94: .4byte gBG2TilemapBuffer
+_0810BE94: .4byte gBGTilemapBuffers + 0x1000
_0810BE98: .4byte 0x000001a1
_0810BE9C: .4byte gUnknown_02039248
_0810BEA0: .4byte gSaveBlock1 + 0x7F8
@@ -1887,7 +1887,7 @@ _0810C1D8:
lsls r0, 1
adds r1, r0, 0x1
lsls r5, r1, 5
- ldr r3, _0810C238 @ =gBG2TilemapBuffer
+ ldr r3, _0810C238 @ =gBGTilemapBuffers + 0x1000
adds r0, 0x2
lsls r4, r0, 5
_0810C208:
@@ -1914,7 +1914,7 @@ _0810C226:
_0810C22C: .4byte 0x00001005
_0810C230: .4byte gTasks
_0810C234: .4byte gUnknown_02039248
-_0810C238: .4byte gBG2TilemapBuffer
+_0810C238: .4byte gBGTilemapBuffers + 0x1000
thumb_func_end sub_810C1C8
thumb_func_start sub_810C23C
@@ -2047,7 +2047,7 @@ sub_810C31C: @ 810C31C
ldrb r0, [r0]
cmp r0, 0x1
bls _0810C342
- ldr r0, _0810C35C @ =word_203855E
+ ldr r0, _0810C35C @ =gScriptItemId
strh r5, [r0]
_0810C342:
ldr r0, _0810C360 @ =gTasks
@@ -2063,7 +2063,7 @@ _0810C342:
bx r0
.align 2, 0
_0810C358: .4byte gUnknown_02039244
-_0810C35C: .4byte word_203855E
+_0810C35C: .4byte gScriptItemId
_0810C360: .4byte gTasks
_0810C364: .4byte sub_810C2C8
thumb_func_end sub_810C31C
@@ -2111,7 +2111,7 @@ _0810C37C:
movs r1, 0x8
adds r2, r4, 0
bl InitMenu
- ldr r2, _0810C3FC @ =word_203855E
+ ldr r2, _0810C3FC @ =gScriptItemId
ldr r1, _0810C400 @ =gUnknown_02039248
ldrb r0, [r1]
ldrb r1, [r1, 0x1]
@@ -2134,7 +2134,7 @@ _0810C3EC: .4byte gWindowConfig_81E6E50
_0810C3F0: .4byte gUnknown_0203924C
_0810C3F4: .4byte gUnknown_083F7EF4
_0810C3F8: .4byte gUnknown_03000758
-_0810C3FC: .4byte word_203855E
+_0810C3FC: .4byte gScriptItemId
_0810C400: .4byte gUnknown_02039248
_0810C404: .4byte gTasks
_0810C408: .4byte sub_810C40C
@@ -2237,7 +2237,7 @@ sub_810C4C4: @ 810C4C4
cmp r0, 0
bne _0810C4F0
bl sub_810C2B0
- ldr r0, _0810C4FC @ =word_203855E
+ ldr r0, _0810C4FC @ =gScriptItemId
ldrh r0, [r0]
lsls r0, 3
ldr r1, _0810C500 @ =gSaveBlock1 + 0x7F8
@@ -2252,7 +2252,7 @@ _0810C4F0:
bx r0
.align 2, 0
_0810C4F8: .4byte gPaletteFade
-_0810C4FC: .4byte word_203855E
+_0810C4FC: .4byte gScriptItemId
_0810C500: .4byte gSaveBlock1 + 0x7F8
_0810C504: .4byte sub_810B96C
thumb_func_end sub_810C4C4
@@ -2302,7 +2302,7 @@ sub_810C540: @ 810C540
movs r3, 0xB
bl MenuZeroFillWindowRect
ldr r0, _0810C5A4 @ =gStringVar1
- ldr r4, _0810C5A8 @ =gUnknown_083F7EB8
+ ldr r4, _0810C5A8 @ =gPokeblockNames
ldr r3, _0810C5AC @ =gSaveBlock1
ldr r2, _0810C5B0 @ =gUnknown_02039248
ldrb r1, [r2]
@@ -2333,7 +2333,7 @@ sub_810C540: @ 810C540
.align 2, 0
_0810C5A0: .4byte gWindowConfig_81E6E50
_0810C5A4: .4byte gStringVar1
-_0810C5A8: .4byte gUnknown_083F7EB8
+_0810C5A8: .4byte gPokeblockNames
_0810C5AC: .4byte gSaveBlock1
_0810C5B0: .4byte gUnknown_02039248
_0810C5B4: .4byte gStringVar4
@@ -2577,7 +2577,7 @@ sub_810C788: @ 810C788
bl GetNature
lsls r0, 24
lsrs r0, 24
- ldr r7, _0810C838 @ =word_203855E
+ ldr r7, _0810C838 @ =gScriptItemId
ldrh r1, [r7]
lsls r1, 3
ldr r5, _0810C83C @ =gSaveBlock1 + 0x7F8
@@ -2587,7 +2587,7 @@ sub_810C788: @ 810C788
lsls r4, 16
lsrs r4, 16
ldr r0, _0810C840 @ =gUnknown_030041C0
- ldr r2, _0810C844 @ =gUnknown_083F7EB8
+ ldr r2, _0810C844 @ =gPokeblockNames
ldr r1, _0810C848 @ =0xfffff808
adds r5, r1
ldrh r1, [r7]
@@ -2652,10 +2652,10 @@ _0810C808:
bx r0
.align 2, 0
_0810C834: .4byte gEnemyParty
-_0810C838: .4byte word_203855E
+_0810C838: .4byte gScriptItemId
_0810C83C: .4byte gSaveBlock1 + 0x7F8
_0810C840: .4byte gUnknown_030041C0
-_0810C844: .4byte gUnknown_083F7EB8
+_0810C844: .4byte gPokeblockNames
_0810C848: .4byte 0xfffff808
_0810C84C: .4byte gTasks
_0810C850: .4byte sub_810C2C8
@@ -2668,11 +2668,11 @@ sub_810C854: @ 810C854
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r4, _0810C8B8 @ =word_203855E
+ ldr r4, _0810C8B8 @ =gScriptItemId
ldrb r0, [r4]
- bl sub_80C8478
+ bl SafariZoneActivatePokeblockFeeder
ldr r0, _0810C8BC @ =gStringVar1
- ldr r3, _0810C8C0 @ =gUnknown_083F7EB8
+ ldr r3, _0810C8C0 @ =gPokeblockNames
ldr r2, _0810C8C4 @ =gSaveBlock1
ldrh r1, [r4]
lsls r1, 3
@@ -2710,9 +2710,9 @@ sub_810C854: @ 810C854
pop {r0}
bx r0
.align 2, 0
-_0810C8B8: .4byte word_203855E
+_0810C8B8: .4byte gScriptItemId
_0810C8BC: .4byte gStringVar1
-_0810C8C0: .4byte gUnknown_083F7EB8
+_0810C8C0: .4byte gPokeblockNames
_0810C8C4: .4byte gSaveBlock1
_0810C8C8: .4byte gScriptResult
_0810C8CC: .4byte gTasks
@@ -3083,7 +3083,7 @@ sub_810CB44: @ 810CB44
movs r1, 0
bl sub_810CA9C
lsls r0, 24
- ldr r1, _0810CB64 @ =gUnknown_083F7EB8
+ ldr r1, _0810CB64 @ =gPokeblockNames
lsrs r0, 22
adds r0, r1
ldr r1, [r0]
@@ -3093,7 +3093,7 @@ sub_810CB44: @ 810CB44
pop {r0}
bx r0
.align 2, 0
-_0810CB64: .4byte gUnknown_083F7EB8
+_0810CB64: .4byte gPokeblockNames
thumb_func_end sub_810CB44
thumb_func_start sub_810CB68
@@ -3103,7 +3103,7 @@ sub_810CB68: @ 810CB68
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
- ldr r7, _0810CB98 @ =gUnknown_083F7EB8
+ ldr r7, _0810CB98 @ =gPokeblockNames
_0810CB74:
lsls r1, r4, 3
ldr r0, _0810CB9C @ =gUnknown_083F7F9C
@@ -3122,7 +3122,7 @@ _0810CB74:
movs r0, 0x1
b _0810CBAC
.align 2, 0
-_0810CB98: .4byte gUnknown_083F7EB8
+_0810CB98: .4byte gPokeblockNames
_0810CB9C: .4byte gUnknown_083F7F9C
_0810CBA0:
adds r0, r4, 0x1
@@ -4240,29 +4240,29 @@ _0810D438: .4byte 0x00004049
thumb_func_start ScriptGetPokedexInfo
ScriptGetPokedexInfo: @ 810D43C
push {lr}
- ldr r0, _0810D458 @ =gUnknown_0202E8CC
+ ldr r0, _0810D458 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0
bne _0810D460
movs r0, 0
bl GetHoennPokedexCount
- ldr r1, _0810D45C @ =gUnknown_0202E8CE
+ ldr r1, _0810D45C @ =gSpecialVar_0x8005
strh r0, [r1]
movs r0, 0x1
bl GetHoennPokedexCount
b _0810D470
.align 2, 0
-_0810D458: .4byte gUnknown_0202E8CC
-_0810D45C: .4byte gUnknown_0202E8CE
+_0810D458: .4byte gSpecialVar_0x8004
+_0810D45C: .4byte gSpecialVar_0x8005
_0810D460:
movs r0, 0
bl GetNationalPokedexCount
- ldr r1, _0810D480 @ =gUnknown_0202E8CE
+ ldr r1, _0810D480 @ =gSpecialVar_0x8005
strh r0, [r1]
movs r0, 0x1
bl GetNationalPokedexCount
_0810D470:
- ldr r1, _0810D484 @ =gUnknown_0202E8D0
+ ldr r1, _0810D484 @ =gSpecialVar_0x8006
strh r0, [r1]
bl IsNationalPokedex
lsls r0, 16
@@ -4270,8 +4270,8 @@ _0810D470:
pop {r1}
bx r1
.align 2, 0
-_0810D480: .4byte gUnknown_0202E8CE
-_0810D484: .4byte gUnknown_0202E8D0
+_0810D480: .4byte gSpecialVar_0x8005
+_0810D484: .4byte gSpecialVar_0x8006
thumb_func_end ScriptGetPokedexInfo
thumb_func_start GetPokedexRatingText
@@ -4483,14 +4483,14 @@ _0810D5FC: .4byte gUnknown_081C4ADA
thumb_func_start ShowPokedexRatingMessage
ShowPokedexRatingMessage: @ 810D600
push {lr}
- ldr r0, _0810D614 @ =gUnknown_0202E8CC
+ ldr r0, _0810D614 @ =gSpecialVar_0x8004
ldrh r0, [r0]
bl GetPokedexRatingText
bl ShowFieldMessage
pop {r0}
bx r0
.align 2, 0
-_0810D614: .4byte gUnknown_0202E8CC
+_0810D614: .4byte gSpecialVar_0x8004
thumb_func_end ShowPokedexRatingMessage
thumb_func_start AccessHallOfFamePC
@@ -4511,7 +4511,7 @@ ReturnFromHallOfFamePC: @ 810D62C
ldr r0, _0810D640 @ =c2_exit_to_overworld_2_switch
bl SetMainCallback2
ldr r1, _0810D644 @ =gUnknown_0300485C
- ldr r0, _0810D648 @ =mapldr_080CA5C0
+ ldr r0, _0810D648 @ =ReshowPCMenuAfterHallOfFamePC
str r0, [r1]
pop {r0}
bx r0
@@ -5317,7 +5317,7 @@ _0810DC56:
lsls r0, 24
lsrs r6, r0, 24
_0810DC5C:
- ldr r0, _0810DC78 @ =gUnknown_0202E8CC
+ ldr r0, _0810DC78 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r6, r0
bcc _0810DBDC
@@ -5331,7 +5331,7 @@ _0810DC5C:
bx r0
.align 2, 0
_0810DC74: .4byte gLinkPlayers
-_0810DC78: .4byte gUnknown_0202E8CC
+_0810DC78: .4byte gSpecialVar_0x8004
thumb_func_end sub_810DB28
thumb_func_start sub_810DC7C
@@ -5340,7 +5340,7 @@ sub_810DC7C: @ 810DC7C
movs r4, 0
ldr r5, _0810DC9C @ =gUnknown_083F8364
_0810DC82:
- ldr r0, _0810DCA0 @ =gUnknown_0202E8CC
+ ldr r0, _0810DCA0 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r4, r0
bne _0810DCA8
@@ -5353,7 +5353,7 @@ _0810DC82:
b _0810DCB6
.align 2, 0
_0810DC9C: .4byte gUnknown_083F8364
-_0810DCA0: .4byte gUnknown_0202E8CC
+_0810DCA0: .4byte gSpecialVar_0x8004
_0810DCA4: .4byte 0x00000206
_0810DCA8:
lsls r1, r4, 2
@@ -5816,7 +5816,7 @@ sub_810E09C: @ 810E09C
ldrb r0, [r0]
cmp r0, r2
bne _0810E0F8
- ldr r0, _0810E0F0 @ =gUnknown_0202E8CC
+ ldr r0, _0810E0F0 @ =gSpecialVar_0x8004
ldrb r0, [r0]
ldr r2, _0810E0F4 @ =gUnknown_083F8376
lsls r1, 1
@@ -5840,7 +5840,7 @@ sub_810E09C: @ 810E09C
_0810E0E4: .4byte gUnknown_083F8370
_0810E0E8: .4byte gUnknown_02039259
_0810E0EC: .4byte gUnknown_02039258
-_0810E0F0: .4byte gUnknown_0202E8CC
+_0810E0F0: .4byte gSpecialVar_0x8004
_0810E0F4: .4byte gUnknown_083F8376
_0810E0F8:
adds r0, r2, 0x1
@@ -6012,7 +6012,7 @@ _0810E21E:
thumb_func_start sub_810E230
sub_810E230: @ 810E230
push {lr}
- ldr r0, _0810E244 @ =gUnknown_0202E8CC
+ ldr r0, _0810E244 @ =gSpecialVar_0x8004
ldrb r0, [r0]
ldr r1, _0810E248 @ =gUnknown_083F8376
ldrh r1, [r1, 0x8]
@@ -6020,7 +6020,7 @@ sub_810E230: @ 810E230
pop {r0}
bx r0
.align 2, 0
-_0810E244: .4byte gUnknown_0202E8CC
+_0810E244: .4byte gSpecialVar_0x8004
_0810E248: .4byte gUnknown_083F8376
thumb_func_end sub_810E230
@@ -6037,18 +6037,18 @@ _0810E258: .4byte gStringVar4
thumb_func_start StorePlayerCoordsInVars
StorePlayerCoordsInVars: @ 810E25C
- ldr r1, _0810E26C @ =gUnknown_0202E8CC
+ ldr r1, _0810E26C @ =gSpecialVar_0x8004
ldr r2, _0810E270 @ =gSaveBlock1
ldrh r0, [r2]
strh r0, [r1]
- ldr r1, _0810E274 @ =gUnknown_0202E8CE
+ ldr r1, _0810E274 @ =gSpecialVar_0x8005
ldrh r0, [r2, 0x2]
strh r0, [r1]
bx lr
.align 2, 0
-_0810E26C: .4byte gUnknown_0202E8CC
+_0810E26C: .4byte gSpecialVar_0x8004
_0810E270: .4byte gSaveBlock1
-_0810E274: .4byte gUnknown_0202E8CE
+_0810E274: .4byte gSpecialVar_0x8005
thumb_func_end StorePlayerCoordsInVars
thumb_func_start GetPlayerTrainerIdOnesDigit
@@ -6136,7 +6136,7 @@ _0810E308: .4byte gUnknown_02024D26
CableCarWarp: @ 810E30C
push {lr}
sub sp, 0x4
- ldr r0, _0810E32C @ =gUnknown_0202E8CC
+ ldr r0, _0810E32C @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0
beq _0810E330
@@ -6150,7 +6150,7 @@ CableCarWarp: @ 810E30C
bl warp1_set
b _0810E342
.align 2, 0
-_0810E32C: .4byte gUnknown_0202E8CC
+_0810E32C: .4byte gSpecialVar_0x8004
_0810E330:
movs r2, 0x1
negs r2, r2
@@ -6169,13 +6169,13 @@ _0810E342:
thumb_func_start SetFlagInVar
SetFlagInVar: @ 810E348
push {lr}
- ldr r0, _0810E358 @ =gUnknown_0202E8CC
+ ldr r0, _0810E358 @ =gSpecialVar_0x8004
ldrh r0, [r0]
bl FlagSet
pop {r0}
bx r0
.align 2, 0
-_0810E358: .4byte gUnknown_0202E8CC
+_0810E358: .4byte gSpecialVar_0x8004
thumb_func_end SetFlagInVar
thumb_func_start GetWeekCount
@@ -6281,7 +6281,7 @@ _0810E410: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
thumb_func_start FieldShowRegionMap
FieldShowRegionMap: @ 810E414
push {lr}
- ldr r0, _0810E420 @ =sub_810E404
+ ldr r0, _0810E420 @ =CB2_FieldShowRegionMap
bl SetMainCallback2
pop {r0}
bx r0
@@ -6292,7 +6292,7 @@ _0810E420: .4byte CB2_FieldShowRegionMap
thumb_func_start DoPCTurnOnEffect
DoPCTurnOnEffect: @ 810E424
push {r4,lr}
- ldr r4, _0810E460 @ =sub_810E468
+ ldr r4, _0810E460 @ =Task_PCTurnOnEffect
adds r0, r4, 0
bl FuncIsActiveTask
lsls r0, 24
@@ -6425,14 +6425,14 @@ PCTurnOffEffect_1: @ 810E508
lsls r0, 16
cmp r0, 0
beq _0810E544
- ldr r0, _0810E528 @ =gUnknown_0202E8CC
+ ldr r0, _0810E528 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0
bne _0810E52C
movs r3, 0x4
b _0810E566
.align 2, 0
-_0810E528: .4byte gUnknown_0202E8CC
+_0810E528: .4byte gSpecialVar_0x8004
_0810E52C:
cmp r0, 0x1
bne _0810E538
@@ -6448,14 +6448,14 @@ _0810E538:
.align 2, 0
_0810E540: .4byte 0x00000259
_0810E544:
- ldr r0, _0810E550 @ =gUnknown_0202E8CC
+ ldr r0, _0810E550 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0
bne _0810E554
movs r3, 0x5
b _0810E566
.align 2, 0
-_0810E550: .4byte gUnknown_0202E8CC
+_0810E550: .4byte gSpecialVar_0x8004
_0810E554:
cmp r0, 0x1
bne _0810E560
@@ -6535,14 +6535,14 @@ _0810E5D6:
_0810E5D8:
movs r5, 0xFF
_0810E5DA:
- ldr r0, _0810E5E8 @ =gUnknown_0202E8CC
+ ldr r0, _0810E5E8 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0
bne _0810E5EC
movs r4, 0x4
b _0810E5FE
.align 2, 0
-_0810E5E8: .4byte gUnknown_0202E8CC
+_0810E5E8: .4byte gSpecialVar_0x8004
_0810E5EC:
cmp r0, 0x1
bne _0810E5F8
@@ -6586,7 +6586,7 @@ _0810E634: .4byte gSaveBlock1
thumb_func_start DoLotteryCornerComputerEffect
DoLotteryCornerComputerEffect: @ 810E638
push {r4,lr}
- ldr r4, _0810E674 @ =sub_810E67C
+ ldr r4, _0810E674 @ =Task_LotteryCornerComputerEffect
adds r0, r4, 0
bl FuncIsActiveTask
lsls r0, 24
@@ -6789,7 +6789,7 @@ ScriptAddElevatorMenuItem: @ 810E7AC
lsls r3, 24
lsrs r3, 24
mov r8, r3
- ldr r0, _0810E81C @ =gUnknown_0202E8CC
+ ldr r0, _0810E81C @ =gSpecialVar_0x8004
ldrh r1, [r0]
adds r2, r0, 0
ldr r3, _0810E820 @ =gUnknown_03000760
@@ -6835,7 +6835,7 @@ _0810E7E8:
pop {r0}
bx r0
.align 2, 0
-_0810E81C: .4byte gUnknown_0202E8CC
+_0810E81C: .4byte gSpecialVar_0x8004
_0810E820: .4byte gUnknown_03000760
thumb_func_end ScriptAddElevatorMenuItem
@@ -6991,7 +6991,7 @@ sub_810E944: @ 810E944
movs r3, 0x40
bl sub_8072BD8
ldr r1, _0810E97C @ =gUnknown_083F8380
- ldr r0, _0810E980 @ =gUnknown_0202E8CE
+ ldr r0, _0810E980 @ =gSpecialVar_0x8005
ldrh r0, [r0]
lsls r0, 2
adds r0, r1
@@ -7005,7 +7005,7 @@ sub_810E944: @ 810E944
.align 2, 0
_0810E978: .4byte gOtherText_NowOn
_0810E97C: .4byte gUnknown_083F8380
-_0810E980: .4byte gUnknown_0202E8CE
+_0810E980: .4byte gSpecialVar_0x8005
thumb_func_end sub_810E944
thumb_func_start sub_810E984
@@ -7079,7 +7079,7 @@ _0810E9E8:
str r5, [sp, 0x4]
movs r0, 0
bl saved_warp2_set_2
- ldr r1, _0810EA54 @ =gUnknown_0202E8CE
+ ldr r1, _0810EA54 @ =gSpecialVar_0x8005
ldrh r0, [r1]
ldrb r2, [r4]
cmp r0, r2
@@ -7102,7 +7102,7 @@ _0810EA44: .4byte gMain
_0810EA48: .4byte gUnknown_0203925B
_0810EA4C: .4byte gUnknown_0203925A
_0810EA50: .4byte gUnknown_03000760
-_0810EA54: .4byte gUnknown_0202E8CE
+_0810EA54: .4byte gSpecialVar_0x8005
_0810EA58: .4byte gScriptResult
_0810EA5C:
ldr r0, _0810EA88 @ =gScriptResult
@@ -7110,7 +7110,7 @@ _0810EA5C:
ldrb r0, [r4]
strh r0, [r1]
bl sub_810EBEC
- ldr r0, _0810EA8C @ =gUnknown_0202E8DE
+ ldr r0, _0810EA8C @ =gScriptLastTalked
ldrb r0, [r0]
ldr r2, _0810EA90 @ =gSaveBlock1
ldrb r1, [r2, 0x5]
@@ -7124,7 +7124,7 @@ _0810EA5C:
b _0810EABC
.align 2, 0
_0810EA88: .4byte gScriptResult
-_0810EA8C: .4byte gUnknown_0202E8DE
+_0810EA8C: .4byte gScriptLastTalked
_0810EA90: .4byte gSaveBlock1
_0810EA94:
movs r0, 0x2
@@ -7690,28 +7690,28 @@ _0810EF08: .4byte gUnknown_0203925C
thumb_func_start SetTrickHouseEndRoomFlag
SetTrickHouseEndRoomFlag: @ 810EF0C
push {lr}
- ldr r1, _0810EF1C @ =gUnknown_0202E8CC
+ ldr r1, _0810EF1C @ =gSpecialVar_0x8004
ldr r0, _0810EF20 @ =0x00000259
strh r0, [r1]
bl FlagSet
pop {r0}
bx r0
.align 2, 0
-_0810EF1C: .4byte gUnknown_0202E8CC
+_0810EF1C: .4byte gSpecialVar_0x8004
_0810EF20: .4byte 0x00000259
thumb_func_end SetTrickHouseEndRoomFlag
thumb_func_start ResetTrickHouseEndRoomFlag
ResetTrickHouseEndRoomFlag: @ 810EF24
push {lr}
- ldr r1, _0810EF34 @ =gUnknown_0202E8CC
+ ldr r1, _0810EF34 @ =gSpecialVar_0x8004
ldr r0, _0810EF38 @ =0x00000259
strh r0, [r1]
bl FlagReset
pop {r0}
bx r0
.align 2, 0
-_0810EF34: .4byte gUnknown_0202E8CC
+_0810EF34: .4byte gSpecialVar_0x8004
_0810EF38: .4byte 0x00000259
thumb_func_end ResetTrickHouseEndRoomFlag
@@ -8378,7 +8378,7 @@ sub_810F424: @ 810F424
ldrh r2, [r2]
adds r1, r2
ldr r2, _0810F464 @ =gUnknown_083F83E0
- ldr r0, _0810F468 @ =gUnknown_0202E8CC
+ ldr r0, _0810F468 @ =gSpecialVar_0x8004
ldrh r0, [r0]
adds r0, r2
ldrb r0, [r0]
@@ -8395,7 +8395,7 @@ _0810F458: .4byte gSaveBlock1
_0810F45C: .4byte 0x00002dd4
_0810F460: .4byte 0x00002dd6
_0810F464: .4byte gUnknown_083F83E0
-_0810F468: .4byte gUnknown_0202E8CC
+_0810F468: .4byte gSpecialVar_0x8004
_0810F46C: .4byte gUnknown_083F83EC
_0810F470:
ldr r4, _0810F484 @ =gUnknown_083F83F8
@@ -8415,7 +8415,7 @@ _0810F484: .4byte gUnknown_083F83F8
thumb_func_start sub_810F488
sub_810F488: @ 810F488
push {lr}
- ldr r1, _0810F4A0 @ =gUnknown_0202E8CC
+ ldr r1, _0810F4A0 @ =gSpecialVar_0x8004
ldr r0, _0810F4A4 @ =0x00000277
strh r0, [r1]
bl FlagGet
@@ -8425,7 +8425,7 @@ sub_810F488: @ 810F488
movs r0, 0x1
b _0810F4AA
.align 2, 0
-_0810F4A0: .4byte gUnknown_0202E8CC
+_0810F4A0: .4byte gSpecialVar_0x8004
_0810F4A4: .4byte 0x00000277
_0810F4A8:
movs r0, 0
@@ -8437,7 +8437,7 @@ _0810F4AA:
thumb_func_start sub_810F4B0
sub_810F4B0: @ 810F4B0
push {lr}
- ldr r1, _0810F4C8 @ =gUnknown_0202E8CC
+ ldr r1, _0810F4C8 @ =gSpecialVar_0x8004
movs r0, 0x9E
lsls r0, 2
strh r0, [r1]
@@ -8448,7 +8448,7 @@ sub_810F4B0: @ 810F4B0
movs r0, 0x1
b _0810F4CE
.align 2, 0
-_0810F4C8: .4byte gUnknown_0202E8CC
+_0810F4C8: .4byte gSpecialVar_0x8004
_0810F4CC:
movs r0, 0
_0810F4CE:
@@ -8459,7 +8459,7 @@ _0810F4CE:
thumb_func_start sub_810F4D4
sub_810F4D4: @ 810F4D4
push {lr}
- ldr r1, _0810F4EC @ =gUnknown_0202E8CC
+ ldr r1, _0810F4EC @ =gSpecialVar_0x8004
ldr r0, _0810F4F0 @ =0x00000279
strh r0, [r1]
bl FlagGet
@@ -8469,7 +8469,7 @@ sub_810F4D4: @ 810F4D4
movs r0, 0x1
b _0810F4F6
.align 2, 0
-_0810F4EC: .4byte gUnknown_0202E8CC
+_0810F4EC: .4byte gSpecialVar_0x8004
_0810F4F0: .4byte 0x00000279
_0810F4F4:
movs r0, 0
@@ -8481,7 +8481,7 @@ _0810F4F6:
thumb_func_start sub_810F4FC
sub_810F4FC: @ 810F4FC
push {lr}
- ldr r1, _0810F514 @ =gUnknown_0202E8CC
+ ldr r1, _0810F514 @ =gSpecialVar_0x8004
ldr r0, _0810F518 @ =0x0000027a
strh r0, [r1]
bl FlagGet
@@ -8491,7 +8491,7 @@ sub_810F4FC: @ 810F4FC
movs r0, 0x1
b _0810F51E
.align 2, 0
-_0810F514: .4byte gUnknown_0202E8CC
+_0810F514: .4byte gSpecialVar_0x8004
_0810F518: .4byte 0x0000027a
_0810F51C:
movs r0, 0
@@ -8810,14 +8810,14 @@ sub_810F758: @ 810F758
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r0, _0810F7A0 @ =gUnknown_0202E8CE
+ ldr r0, _0810F7A0 @ =gSpecialVar_0x8005
ldrh r2, [r0]
movs r0, 0
strh r2, [r1, 0x8]
strh r0, [r1, 0xA]
strh r0, [r1, 0xC]
strh r0, [r1, 0xE]
- ldr r0, _0810F7A4 @ =gUnknown_0202E8CC
+ ldr r0, _0810F7A4 @ =gSpecialVar_0x8004
ldrh r0, [r0]
strh r0, [r1, 0x10]
movs r0, 0x5
@@ -8831,8 +8831,8 @@ sub_810F758: @ 810F758
.align 2, 0
_0810F798: .4byte sub_810F7A8
_0810F79C: .4byte gTasks
-_0810F7A0: .4byte gUnknown_0202E8CE
-_0810F7A4: .4byte gUnknown_0202E8CC
+_0810F7A0: .4byte gSpecialVar_0x8005
+_0810F7A4: .4byte gSpecialVar_0x8004
thumb_func_end sub_810F758
thumb_func_start sub_810F7A8
@@ -8998,7 +8998,7 @@ _0810F8CC:
thumb_func_start ScriptGetPartyMonSpecies
ScriptGetPartyMonSpecies: @ 810F8D4
push {lr}
- ldr r0, _0810F8F4 @ =gUnknown_0202E8CC
+ ldr r0, _0810F8F4 @ =gSpecialVar_0x8004
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
@@ -9012,7 +9012,7 @@ ScriptGetPartyMonSpecies: @ 810F8D4
pop {r1}
bx r1
.align 2, 0
-_0810F8F4: .4byte gUnknown_0202E8CC
+_0810F8F4: .4byte gSpecialVar_0x8004
_0810F8F8: .4byte gPlayerParty
thumb_func_end ScriptGetPartyMonSpecies
@@ -9083,7 +9083,7 @@ _0810F968: .4byte gLocalTime
thumb_func_start sub_810F96C
sub_810F96C: @ 810F96C
push {r4,lr}
- ldr r0, _0810F994 @ =gUnknown_0202E8CC
+ ldr r0, _0810F994 @ =gSpecialVar_0x8004
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
@@ -9101,7 +9101,7 @@ sub_810F96C: @ 810F96C
movs r0, 0x1
b _0810F9A6
.align 2, 0
-_0810F994: .4byte gUnknown_0202E8CC
+_0810F994: .4byte gSpecialVar_0x8004
_0810F998: .4byte gPlayerParty
_0810F99C: .4byte gStringVar1
_0810F9A0: .4byte gSaveBlock2
@@ -9596,7 +9596,7 @@ sub_810FD60: @ 810FD60
ldr r1, _0810FD78 @ =0x000013c2
adds r0, r1
ldrh r0, [r0]
- ldr r1, _0810FD7C @ =gUnknown_0202E8CC
+ ldr r1, _0810FD7C @ =gSpecialVar_0x8004
ldrh r1, [r1]
asrs r0, r1
movs r1, 0x1
@@ -9605,7 +9605,7 @@ sub_810FD60: @ 810FD60
.align 2, 0
_0810FD74: .4byte gSaveBlock1
_0810FD78: .4byte 0x000013c2
-_0810FD7C: .4byte gUnknown_0202E8CC
+_0810FD7C: .4byte gSpecialVar_0x8004
thumb_func_end sub_810FD60
thumb_func_start sub_810FD80
@@ -9638,7 +9638,7 @@ sub_810FDAC: @ 810FDAC
push {lr}
movs r3, 0
movs r2, 0
- ldr r0, _0810FDC8 @ =gUnknown_0202E8CC
+ ldr r0, _0810FDC8 @ =gSpecialVar_0x8004
ldrh r0, [r0]
subs r0, 0x8
cmp r0, 0x7
@@ -9649,7 +9649,7 @@ sub_810FDAC: @ 810FDAC
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_0810FDC8: .4byte gUnknown_0202E8CC
+_0810FDC8: .4byte gSpecialVar_0x8004
_0810FDCC: .4byte _0810FDD0
.align 2, 0
_0810FDD0:
@@ -9849,7 +9849,7 @@ _0810FF5C: .4byte 0x000013c2
thumb_func_start sub_810FF60
sub_810FF60: @ 810FF60
push {lr}
- ldr r0, _0810FF74 @ =gUnknown_0202E8CC
+ ldr r0, _0810FF74 @ =gSpecialVar_0x8004
ldrb r0, [r0]
bl sub_810FB10
lsls r0, 24
@@ -9857,7 +9857,7 @@ sub_810FF60: @ 810FF60
pop {r1}
bx r1
.align 2, 0
-_0810FF74: .4byte gUnknown_0202E8CC
+_0810FF74: .4byte gSpecialVar_0x8004
thumb_func_end sub_810FF60
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_800D42C.s b/asm/rom_800D42C.s
new file mode 100644
index 000000000..fdb390563
--- /dev/null
+++ b/asm/rom_800D42C.s
@@ -0,0 +1,88931 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_800D42C
+unref_sub_800D42C: @ 800D42C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ mov r9, r0
+ str r1, [sp]
+ str r2, [sp, 0x4]
+ adds r5, r3, 0
+ movs r0, 0x1
+ mov r1, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _0800D44C
+ b _0800D5E4
+_0800D44C:
+ asrs r0, r1, 1
+ adds r0, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ movs r0, 0
+ ldr r2, [sp]
+ cmp r0, r2
+ blt _0800D460
+ b _0800D674
+_0800D460:
+ movs r4, 0x8
+ subs r1, r4, r1
+ str r1, [sp, 0x10]
+_0800D466:
+ movs r7, 0
+ adds r0, 0x1
+ str r0, [sp, 0x14]
+ ldr r0, [sp, 0x10]
+ cmp r7, r0
+ bge _0800D4E2
+ ldr r1, [sp, 0x8]
+ lsls r1, 8
+ str r1, [sp, 0x18]
+ movs r2, 0
+ mov r10, r2
+ mov r0, r9
+ movs r4, 0x8
+ subs r0, r4, r0
+ str r0, [sp, 0xC]
+_0800D484:
+ movs r3, 0
+ asrs r0, r7, 1
+ adds r1, r7, 0
+ movs r2, 0x1
+ ands r1, r2
+ str r1, [sp, 0x20]
+ lsls r0, 8
+ mov r8, r0
+ mov r12, r5
+_0800D496:
+ lsls r1, r3, 5
+ ldr r4, [sp, 0x18]
+ adds r0, r5, r4
+ adds r0, r1
+ mov r1, r8
+ adds r2, r0, r1
+ mov r1, r12
+ add r1, r8
+ movs r6, 0xF
+_0800D4A8:
+ ldr r4, [sp, 0x20]
+ cmp r4, 0
+ bne _0800D4B8
+ strb r4, [r1]
+ add r4, sp, 0x20
+ ldrb r4, [r4]
+ strb r4, [r2, 0x10]
+ b _0800D4C6
+_0800D4B8:
+ mov r0, r10
+ strb r0, [r1, 0x10]
+ movs r4, 0x80
+ lsls r4, 1
+ adds r4, r2, r4
+ str r4, [sp, 0x1C]
+ strb r0, [r4]
+_0800D4C6:
+ adds r2, 0x1
+ adds r1, 0x1
+ subs r6, 0x1
+ cmp r6, 0
+ bge _0800D4A8
+ movs r0, 0x20
+ add r12, r0
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _0800D496
+ adds r7, 0x1
+ ldr r1, [sp, 0xC]
+ cmp r7, r1
+ blt _0800D484
+_0800D4E2:
+ movs r7, 0
+ movs r2, 0
+_0800D4E6:
+ movs r6, 0
+ adds r4, r7, 0x1
+ mov r8, r4
+ lsls r4, r7, 5
+_0800D4EE:
+ adds r0, r6, 0x1
+ mov r10, r0
+ lsls r1, r6, 8
+ adds r0, r1, 0
+ adds r0, 0xC0
+ adds r0, r5, r0
+ adds r0, r4
+ adds r1, r5, r1
+ adds r1, r4
+ movs r3, 0x1F
+_0800D502:
+ strb r2, [r1]
+ strb r2, [r0]
+ adds r0, 0x1
+ adds r1, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0800D502
+ mov r6, r10
+ cmp r6, 0x7
+ ble _0800D4EE
+ mov r7, r8
+ cmp r7, 0x1
+ ble _0800D4E6
+ mov r1, r9
+ cmp r1, 0x5
+ bne _0800D528
+ movs r2, 0x90
+ lsls r2, 1
+ adds r5, r2
+_0800D528:
+ movs r7, 0
+ cmp r7, r9
+ bge _0800D5BE
+_0800D52E:
+ movs r3, 0
+ adds r7, 0x1
+ mov r8, r7
+ cmp r3, r9
+ bge _0800D59E
+_0800D538:
+ adds r3, 0x1
+ mov r10, r3
+ ldr r4, [sp, 0x4]
+ adds r4, 0x20
+ adds r7, r5, 0
+ adds r7, 0x20
+ movs r0, 0x12
+ adds r0, r5
+ mov r12, r0
+ ldr r2, [sp, 0x4]
+ adds r3, r5, 0
+ movs r6, 0x3
+_0800D550:
+ ldrb r0, [r2]
+ mov r1, r12
+ strb r0, [r1]
+ ldrb r0, [r2, 0x1]
+ strb r0, [r1, 0x1]
+ ldrb r0, [r2, 0x2]
+ strb r0, [r1, 0x1E]
+ ldrb r0, [r2, 0x3]
+ strb r0, [r1, 0x1F]
+ movs r0, 0x81
+ lsls r0, 1
+ adds r1, r3, r0
+ ldrb r0, [r2, 0x10]
+ strb r0, [r1]
+ ldr r0, _0800D5A8 @ =0x00000103
+ adds r1, r3, r0
+ ldrb r0, [r2, 0x11]
+ strb r0, [r1]
+ movs r0, 0x90
+ lsls r0, 1
+ adds r1, r3, r0
+ ldrb r0, [r2, 0x12]
+ strb r0, [r1]
+ ldr r0, _0800D5AC @ =0x00000121
+ adds r1, r3, r0
+ ldrb r0, [r2, 0x13]
+ strb r0, [r1]
+ movs r1, 0x4
+ add r12, r1
+ adds r2, 0x4
+ adds r3, 0x4
+ subs r6, 0x1
+ cmp r6, 0
+ bge _0800D550
+ str r4, [sp, 0x4]
+ adds r5, r7, 0
+ mov r3, r10
+ cmp r3, r9
+ blt _0800D538
+_0800D59E:
+ mov r2, r9
+ cmp r2, 0x7
+ bne _0800D5B0
+ adds r5, 0x20
+ b _0800D5B8
+ .align 2, 0
+_0800D5A8: .4byte 0x00000103
+_0800D5AC: .4byte 0x00000121
+_0800D5B0:
+ mov r4, r9
+ cmp r4, 0x5
+ bne _0800D5B8
+ adds r5, 0x60
+_0800D5B8:
+ mov r7, r8
+ cmp r7, r9
+ blt _0800D52E
+_0800D5BE:
+ mov r0, r9
+ cmp r0, 0x7
+ bne _0800D5CC
+ movs r1, 0x80
+ lsls r1, 1
+ adds r5, r1
+ b _0800D5D8
+_0800D5CC:
+ mov r2, r9
+ cmp r2, 0x5
+ bne _0800D5D8
+ movs r4, 0xF0
+ lsls r4, 1
+ adds r5, r4
+_0800D5D8:
+ ldr r0, [sp, 0x14]
+ ldr r1, [sp]
+ cmp r0, r1
+ bge _0800D5E2
+ b _0800D466
+_0800D5E2:
+ b _0800D674
+_0800D5E4:
+ movs r6, 0
+ ldr r2, [sp]
+ cmp r6, r2
+ bge _0800D674
+_0800D5EC:
+ adds r6, 0x1
+ mov r10, r6
+ mov r4, r9
+ cmp r4, 0x6
+ bne _0800D604
+ movs r0, 0
+ movs r3, 0xFF
+_0800D5FA:
+ strb r0, [r5]
+ adds r5, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0800D5FA
+_0800D604:
+ movs r7, 0
+ cmp r7, r9
+ bge _0800D658
+_0800D60A:
+ adds r7, 0x1
+ mov r8, r7
+ mov r1, r9
+ lsls r0, r1, 5
+ cmp r1, 0x6
+ bne _0800D624
+ movs r1, 0
+ movs r3, 0x1F
+_0800D61A:
+ strb r1, [r5]
+ adds r5, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0800D61A
+_0800D624:
+ adds r1, r0, 0
+ cmp r1, 0
+ ble _0800D63E
+ adds r3, r1, 0
+_0800D62C:
+ ldr r2, [sp, 0x4]
+ ldrb r0, [r2]
+ strb r0, [r5]
+ adds r2, 0x1
+ str r2, [sp, 0x4]
+ adds r5, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bne _0800D62C
+_0800D63E:
+ mov r4, r9
+ cmp r4, 0x6
+ bne _0800D652
+ movs r0, 0
+ movs r3, 0x1F
+_0800D648:
+ strb r0, [r5]
+ adds r5, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0800D648
+_0800D652:
+ mov r7, r8
+ cmp r7, r9
+ blt _0800D60A
+_0800D658:
+ mov r0, r9
+ cmp r0, 0x6
+ bne _0800D66C
+ movs r0, 0
+ movs r3, 0xFF
+_0800D662:
+ strb r0, [r5]
+ adds r5, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0800D662
+_0800D66C:
+ mov r6, r10
+ ldr r1, [sp]
+ cmp r6, r1
+ blt _0800D5EC
+_0800D674:
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_800D42C
+
+ thumb_func_start unref_sub_800D684
+unref_sub_800D684: @ 800D684
+ push {lr}
+ bl ResetSpriteData
+ ldr r0, _0800D6B8 @ =gSpriteTemplate_81F96D0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0800D6BC @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r0, _0800D6C0 @ =sub_800D6C4
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800D6B8: .4byte gSpriteTemplate_81F96D0
+_0800D6BC: .4byte gSprites
+_0800D6C0: .4byte sub_800D6C4
+ thumb_func_end unref_sub_800D684
+
+ thumb_func_start sub_800D6C4
+sub_800D6C4: @ 800D6C4
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800D6C4
+
+ thumb_func_start sub_800D6D4
+sub_800D6D4: @ 800D6D4
+ push {r4,r5,lr}
+ ldr r3, _0800D72C @ =0x04000208
+ ldrh r2, [r3]
+ movs r5, 0
+ strh r5, [r3]
+ ldr r4, _0800D730 @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r1, _0800D734 @ =REG_DISPSTAT
+ movs r0, 0x8
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r2, 0x98
+ lsls r2, 8
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0800D738 @ =0x00009c04
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0800D73C @ =0x00005e05
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0800D740 @ =0x00005a0b
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0800D744 @ =REG_BLDCNT
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ subs r1, 0xE
+ ldr r2, _0800D748 @ =0x0000bf40
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800D72C: .4byte 0x04000208
+_0800D730: .4byte 0x04000200
+_0800D734: .4byte REG_DISPSTAT
+_0800D738: .4byte 0x00009c04
+_0800D73C: .4byte 0x00005e05
+_0800D740: .4byte 0x00005a0b
+_0800D744: .4byte REG_BLDCNT
+_0800D748: .4byte 0x0000bf40
+ thumb_func_end sub_800D6D4
+
+ thumb_func_start sub_800D74C
+sub_800D74C: @ 800D74C
+ push {r4,lr}
+ movs r0, 0x12
+ bl SetTextWindowBaseTileNum
+ ldr r4, _0800D79C @ =gUnknown_03004210
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl LoadTextWindowGraphics_OverridePalSlot
+ movs r0, 0x22
+ bl SetTextWindowBaseTileNum
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl LoadTextWindowGraphics_OverridePalSlot
+ ldr r3, _0800D7A0 @ =gPlttBufferUnfaded
+ adds r0, r3, 0
+ adds r0, 0xB8
+ ldr r1, _0800D7A4 @ =0x00007fe0
+ strh r1, [r0]
+ adds r2, r3, 0
+ adds r2, 0xBA
+ ldr r1, _0800D7A8 @ =0x00002529
+ strh r1, [r2]
+ adds r2, 0x2
+ ldr r1, _0800D7AC @ =0x00007fff
+ strh r1, [r2]
+ adds r2, 0x2
+ ldr r1, _0800D7B0 @ =0x0000675a
+ strh r1, [r2]
+ ldr r1, _0800D7B4 @ =gPlttBufferFaded + 0xB8
+ movs r2, 0x4
+ bl CpuSet
+ bl sub_8032A38
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800D79C: .4byte gUnknown_03004210
+_0800D7A0: .4byte gPlttBufferUnfaded
+_0800D7A4: .4byte 0x00007fe0
+_0800D7A8: .4byte 0x00002529
+_0800D7AC: .4byte 0x00007fff
+_0800D7B0: .4byte 0x0000675a
+_0800D7B4: .4byte gPlttBufferFaded + 0xB8
+ thumb_func_end sub_800D74C
+
+ thumb_func_start sub_800D7B8
+sub_800D7B8: @ 800D7B8
+ push {r4,r5,lr}
+ ldr r0, _0800D7DC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _0800D7E0 @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ beq _0800D7F8
+ ldr r0, _0800D7E4 @ =gBattleTerrainTiles_Building
+ ldr r1, _0800D7E8 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D7EC @ =gBattleTerrainTilemap_Building
+ ldr r1, _0800D7F0 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D7F4 @ =gBattleTerrainPalette_BattleTower
+ b _0800DA66
+ .align 2, 0
+_0800D7DC: .4byte gUnknown_020239F8
+_0800D7E0: .4byte 0x00000902
+_0800D7E4: .4byte gBattleTerrainTiles_Building
+_0800D7E8: .4byte 0x06008000
+_0800D7EC: .4byte gBattleTerrainTilemap_Building
+_0800D7F0: .4byte 0x0600d000
+_0800D7F4: .4byte gBattleTerrainPalette_BattleTower
+_0800D7F8:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _0800D860
+ ldr r0, _0800D820 @ =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0800D838
+ ldr r0, _0800D824 @ =gBattleTerrainTiles_Cave
+ ldr r1, _0800D828 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D82C @ =gBattleTerrainTilemap_Cave
+ ldr r1, _0800D830 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D834 @ =gBattleTerrainPalette_Groudon
+ b _0800DA66
+ .align 2, 0
+_0800D820: .4byte gGameVersion
+_0800D824: .4byte gBattleTerrainTiles_Cave
+_0800D828: .4byte 0x06008000
+_0800D82C: .4byte gBattleTerrainTilemap_Cave
+_0800D830: .4byte 0x0600d000
+_0800D834: .4byte gBattleTerrainPalette_Groudon
+_0800D838:
+ ldr r0, _0800D84C @ =gBattleTerrainTiles_Water
+ ldr r1, _0800D850 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D854 @ =gBattleTerrainTilemap_Water
+ ldr r1, _0800D858 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D85C @ =gBattleTerrainPalette_Kyogre
+ b _0800DA66
+ .align 2, 0
+_0800D84C: .4byte gBattleTerrainTiles_Water
+_0800D850: .4byte 0x06008000
+_0800D854: .4byte gBattleTerrainTilemap_Water
+_0800D858: .4byte 0x0600d000
+_0800D85C: .4byte gBattleTerrainPalette_Kyogre
+_0800D860:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0800D8D8
+ ldr r2, _0800D890 @ =gTrainers
+ ldr r0, _0800D894 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x19
+ bne _0800D8AC
+ ldr r0, _0800D898 @ =gBattleTerrainTiles_Building
+ ldr r1, _0800D89C @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D8A0 @ =gBattleTerrainTilemap_Building
+ ldr r1, _0800D8A4 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D8A8 @ =gBattleTerrainPalette_BuildingLeader
+ b _0800DA66
+ .align 2, 0
+_0800D890: .4byte gTrainers
+_0800D894: .4byte gTrainerBattleOpponent
+_0800D898: .4byte gBattleTerrainTiles_Building
+_0800D89C: .4byte 0x06008000
+_0800D8A0: .4byte gBattleTerrainTilemap_Building
+_0800D8A4: .4byte 0x0600d000
+_0800D8A8: .4byte gBattleTerrainPalette_BuildingLeader
+_0800D8AC:
+ cmp r0, 0x20
+ bne _0800D8D8
+ ldr r0, _0800D8C4 @ =gBattleTerrainTiles_Stadium
+ ldr r1, _0800D8C8 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D8CC @ =gBattleTerrainTilemap_Stadium
+ ldr r1, _0800D8D0 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D8D4 @ =gBattleTerrainPalette_StadiumSteven
+ b _0800DA66
+ .align 2, 0
+_0800D8C4: .4byte gBattleTerrainTiles_Stadium
+_0800D8C8: .4byte 0x06008000
+_0800D8CC: .4byte gBattleTerrainTilemap_Stadium
+_0800D8D0: .4byte 0x0600d000
+_0800D8D4: .4byte gBattleTerrainPalette_StadiumSteven
+_0800D8D8:
+ bl sav1_map_get_battletype
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ bls _0800D8E6
+ b _0800DA9E
+_0800D8E6:
+ lsls r0, 2
+ ldr r1, _0800D8F0 @ =_0800D8F4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800D8F0: .4byte _0800D8F4
+ .align 2, 0
+_0800D8F4:
+ .4byte _0800D918
+ .4byte _0800D964
+ .4byte _0800D98C
+ .4byte _0800D9B4
+ .4byte _0800D9DC
+ .4byte _0800DA04
+ .4byte _0800DA2C
+ .4byte _0800DA54
+ .4byte _0800DA84
+_0800D918:
+ ldr r4, _0800D954 @ =gBattleTerrainTable
+ ldr r5, _0800D958 @ =gUnknown_0300428C
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ldr r1, _0800D95C @ =0x06008000
+ bl LZDecompressVram
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _0800D960 @ =0x0600d000
+ bl LZDecompressVram
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x10
+ adds r0, r4
+ ldr r0, [r0]
+ b _0800DA66
+ .align 2, 0
+_0800D954: .4byte gBattleTerrainTable
+_0800D958: .4byte gUnknown_0300428C
+_0800D95C: .4byte 0x06008000
+_0800D960: .4byte 0x0600d000
+_0800D964:
+ ldr r0, _0800D978 @ =gBattleTerrainTiles_Building
+ ldr r1, _0800D97C @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D980 @ =gBattleTerrainTilemap_Building
+ ldr r1, _0800D984 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D988 @ =gBattleTerrainPalette_BuildingGym
+ b _0800DA66
+ .align 2, 0
+_0800D978: .4byte gBattleTerrainTiles_Building
+_0800D97C: .4byte 0x06008000
+_0800D980: .4byte gBattleTerrainTilemap_Building
+_0800D984: .4byte 0x0600d000
+_0800D988: .4byte gBattleTerrainPalette_BuildingGym
+_0800D98C:
+ ldr r0, _0800D9A0 @ =gBattleTerrainTiles_Stadium
+ ldr r1, _0800D9A4 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D9A8 @ =gBattleTerrainTilemap_Stadium
+ ldr r1, _0800D9AC @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D9B0 @ =gBattleTerrainPalette_StadiumMagma
+ b _0800DA66
+ .align 2, 0
+_0800D9A0: .4byte gBattleTerrainTiles_Stadium
+_0800D9A4: .4byte 0x06008000
+_0800D9A8: .4byte gBattleTerrainTilemap_Stadium
+_0800D9AC: .4byte 0x0600d000
+_0800D9B0: .4byte gBattleTerrainPalette_StadiumMagma
+_0800D9B4:
+ ldr r0, _0800D9C8 @ =gBattleTerrainTiles_Stadium
+ ldr r1, _0800D9CC @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D9D0 @ =gBattleTerrainTilemap_Stadium
+ ldr r1, _0800D9D4 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D9D8 @ =gBattleTerrainPalette_StadiumAqua
+ b _0800DA66
+ .align 2, 0
+_0800D9C8: .4byte gBattleTerrainTiles_Stadium
+_0800D9CC: .4byte 0x06008000
+_0800D9D0: .4byte gBattleTerrainTilemap_Stadium
+_0800D9D4: .4byte 0x0600d000
+_0800D9D8: .4byte gBattleTerrainPalette_StadiumAqua
+_0800D9DC:
+ ldr r0, _0800D9F0 @ =gBattleTerrainTiles_Stadium
+ ldr r1, _0800D9F4 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D9F8 @ =gBattleTerrainTilemap_Stadium
+ ldr r1, _0800D9FC @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800DA00 @ =gBattleTerrainPalette_StadiumSidney
+ b _0800DA66
+ .align 2, 0
+_0800D9F0: .4byte gBattleTerrainTiles_Stadium
+_0800D9F4: .4byte 0x06008000
+_0800D9F8: .4byte gBattleTerrainTilemap_Stadium
+_0800D9FC: .4byte 0x0600d000
+_0800DA00: .4byte gBattleTerrainPalette_StadiumSidney
+_0800DA04:
+ ldr r0, _0800DA18 @ =gBattleTerrainTiles_Stadium
+ ldr r1, _0800DA1C @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800DA20 @ =gBattleTerrainTilemap_Stadium
+ ldr r1, _0800DA24 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800DA28 @ =gBattleTerrainPalette_StadiumPhoebe
+ b _0800DA66
+ .align 2, 0
+_0800DA18: .4byte gBattleTerrainTiles_Stadium
+_0800DA1C: .4byte 0x06008000
+_0800DA20: .4byte gBattleTerrainTilemap_Stadium
+_0800DA24: .4byte 0x0600d000
+_0800DA28: .4byte gBattleTerrainPalette_StadiumPhoebe
+_0800DA2C:
+ ldr r0, _0800DA40 @ =gBattleTerrainTiles_Stadium
+ ldr r1, _0800DA44 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800DA48 @ =gBattleTerrainTilemap_Stadium
+ ldr r1, _0800DA4C @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800DA50 @ =gBattleTerrainPalette_StadiumGlacia
+ b _0800DA66
+ .align 2, 0
+_0800DA40: .4byte gBattleTerrainTiles_Stadium
+_0800DA44: .4byte 0x06008000
+_0800DA48: .4byte gBattleTerrainTilemap_Stadium
+_0800DA4C: .4byte 0x0600d000
+_0800DA50: .4byte gBattleTerrainPalette_StadiumGlacia
+_0800DA54:
+ ldr r0, _0800DA70 @ =gBattleTerrainTiles_Stadium
+ ldr r1, _0800DA74 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800DA78 @ =gBattleTerrainTilemap_Stadium
+ ldr r1, _0800DA7C @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800DA80 @ =gBattleTerrainPalette_StadiumDrake
+_0800DA66:
+ movs r1, 0x20
+ movs r2, 0x60
+ bl LoadCompressedPalette
+ b _0800DA9E
+ .align 2, 0
+_0800DA70: .4byte gBattleTerrainTiles_Stadium
+_0800DA74: .4byte 0x06008000
+_0800DA78: .4byte gBattleTerrainTilemap_Stadium
+_0800DA7C: .4byte 0x0600d000
+_0800DA80: .4byte gBattleTerrainPalette_StadiumDrake
+_0800DA84:
+ ldr r0, _0800DAA4 @ =gBattleTerrainTiles_Building
+ ldr r1, _0800DAA8 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800DAAC @ =gBattleTerrainTilemap_Building
+ ldr r1, _0800DAB0 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800DAB4 @ =gBattleTerrainPalette_BattleTower
+ movs r1, 0x20
+ movs r2, 0x60
+ bl LoadCompressedPalette
+_0800DA9E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800DAA4: .4byte gBattleTerrainTiles_Building
+_0800DAA8: .4byte 0x06008000
+_0800DAAC: .4byte gBattleTerrainTilemap_Building
+_0800DAB0: .4byte 0x0600d000
+_0800DAB4: .4byte gBattleTerrainPalette_BattleTower
+ thumb_func_end sub_800D7B8
+
+ thumb_func_start sub_800DAB8
+sub_800DAB8: @ 800DAB8
+ push {lr}
+ ldr r0, _0800DAE8 @ =gUnknown_08D00000
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZDecompressVram
+ ldr r0, _0800DAEC @ =gUnknown_08D00524
+ ldr r1, _0800DAF0 @ =0x0600c000
+ movs r2, 0x80
+ lsls r2, 4
+ bl CpuSet
+ ldr r0, _0800DAF4 @ =gUnknown_08D004E0
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadCompressedPalette
+ bl sub_800D74C
+ bl sub_800D7B8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800DAE8: .4byte gUnknown_08D00000
+_0800DAEC: .4byte gUnknown_08D00524
+_0800DAF0: .4byte 0x0600c000
+_0800DAF4: .4byte gUnknown_08D004E0
+ thumb_func_end sub_800DAB8
+
+ thumb_func_start sub_800DAF8
+sub_800DAF8: @ 800DAF8
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r7, r2, 0
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r5, r2, 0
+ lsls r1, 24
+ lsrs r3, r1, 24
+ movs r4, 0
+ ldr r0, _0800DB38 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0800DBB4
+ ldr r0, _0800DB3C @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x12
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _0800DB52
+ cmp r3, 0x1
+ beq _0800DB7A
+ cmp r3, 0x1
+ bgt _0800DB40
+ cmp r3, 0
+ beq _0800DB4A
+ b _0800DB84
+ .align 2, 0
+_0800DB38: .4byte gUnknown_020239F8
+_0800DB3C: .4byte gTasks
+_0800DB40:
+ cmp r3, 0x2
+ beq _0800DB4E
+ cmp r3, 0x3
+ beq _0800DB6E
+ b _0800DB84
+_0800DB4A:
+ ldrh r0, [r1, 0xE]
+ b _0800DB70
+_0800DB4E:
+ ldrh r1, [r1, 0xE]
+ b _0800DB7C
+_0800DB52:
+ cmp r3, 0x1
+ beq _0800DB6E
+ cmp r3, 0x1
+ bgt _0800DB60
+ cmp r3, 0
+ beq _0800DB6A
+ b _0800DB84
+_0800DB60:
+ cmp r3, 0x2
+ beq _0800DB76
+ cmp r3, 0x3
+ beq _0800DB7A
+ b _0800DB84
+_0800DB6A:
+ ldrh r0, [r1, 0xE]
+ b _0800DB70
+_0800DB6E:
+ ldrh r0, [r1, 0x10]
+_0800DB70:
+ movs r4, 0x3F
+ ands r4, r0
+ b _0800DB84
+_0800DB76:
+ ldrh r1, [r1, 0xE]
+ b _0800DB7C
+_0800DB7A:
+ ldrh r1, [r1, 0x10]
+_0800DB7C:
+ movs r0, 0xFC
+ lsls r0, 4
+ ands r0, r1
+ lsrs r4, r0, 6
+_0800DB84:
+ movs r3, 0
+ movs r6, 0x3
+ ldr r0, _0800DBB0 @ =0x00006001
+ adds r5, r0, 0
+ mov r2, sp
+_0800DB8E:
+ lsls r1, r3, 1
+ adds r0, r6, 0
+ lsls r0, r1
+ ands r0, r4
+ asrs r0, r1
+ adds r0, r5
+ strh r0, [r2]
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x2
+ ble _0800DB8E
+ mov r0, sp
+ adds r1, r7, 0
+ movs r2, 0x3
+ bl CpuSet
+ b _0800DC12
+ .align 2, 0
+_0800DBB0: .4byte 0x00006001
+_0800DBB4:
+ ldr r0, _0800DBD0 @ =0x02000000
+ ldr r1, _0800DBD4 @ =0x000160cb
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r3, r0
+ bne _0800DBDC
+ ldr r1, _0800DBD8 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldrh r4, [r0, 0xE]
+ b _0800DBE8
+ .align 2, 0
+_0800DBD0: .4byte 0x02000000
+_0800DBD4: .4byte 0x000160cb
+_0800DBD8: .4byte gTasks
+_0800DBDC:
+ ldr r1, _0800DC1C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r4, [r0, 0x10]
+_0800DBE8:
+ movs r3, 0
+ movs r6, 0x3
+ ldr r2, _0800DC20 @ =0x00006001
+ adds r5, r2, 0
+ mov r2, sp
+_0800DBF2:
+ lsls r1, r3, 1
+ adds r0, r6, 0
+ lsls r0, r1
+ ands r0, r4
+ asrs r0, r1
+ adds r0, r5
+ strh r0, [r2]
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x5
+ ble _0800DBF2
+ mov r0, sp
+ adds r1, r7, 0
+ movs r2, 0x6
+ bl CpuSet
+_0800DC12:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800DC1C: .4byte gTasks
+_0800DC20: .4byte 0x00006001
+ thumb_func_end sub_800DAF8
+
+ thumb_func_start sub_800DC24
+sub_800DC24: @ 800DC24
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, _0800DC40 @ =gUnknown_02024D26
+ ldrb r2, [r0]
+ cmp r2, 0x3
+ bne _0800DC4C
+ ldr r4, _0800DC44 @ =gUnknown_03004210
+ ldr r1, _0800DC48 @ =gUnknown_08400E57
+ movs r0, 0x2
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA0
+ movs r3, 0xD
+ b _0800DDCA
+ .align 2, 0
+_0800DC40: .4byte gUnknown_02024D26
+_0800DC44: .4byte gUnknown_03004210
+_0800DC48: .4byte gUnknown_08400E57
+_0800DC4C:
+ ldr r0, _0800DC80 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0800DD38
+ cmp r2, 0x1
+ bne _0800DCCC
+ ldr r2, _0800DC84 @ =gLinkPlayers
+ ldr r0, _0800DC88 @ =0x02000000
+ ldr r1, _0800DC8C @ =0x000160cb
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x18]
+ cmp r0, 0x1
+ beq _0800DC9C
+ cmp r0, 0x1
+ bgt _0800DC90
+ cmp r0, 0
+ bne _0800DC7E
+ b _0800DDA8
+_0800DC7E:
+ b _0800DE1C
+ .align 2, 0
+_0800DC80: .4byte gUnknown_020239F8
+_0800DC84: .4byte gLinkPlayers
+_0800DC88: .4byte 0x02000000
+_0800DC8C: .4byte 0x000160cb
+_0800DC90:
+ cmp r0, 0x2
+ bne _0800DC96
+ b _0800DDA8
+_0800DC96:
+ cmp r0, 0x3
+ beq _0800DC9C
+ b _0800DE1C
+_0800DC9C:
+ ldr r4, _0800DCC0 @ =gUnknown_03004210
+ ldr r1, _0800DCC4 @ =gUnknown_08400E48
+ movs r5, 0x2
+ str r5, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA0
+ movs r3, 0x15
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _0800DCC8 @ =gUnknown_08400E4F
+ str r5, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA8
+ movs r3, 0x6
+ b _0800DDCA
+ .align 2, 0
+_0800DCC0: .4byte gUnknown_03004210
+_0800DCC4: .4byte gUnknown_08400E48
+_0800DCC8: .4byte gUnknown_08400E4F
+_0800DCCC:
+ ldr r2, _0800DCF0 @ =gLinkPlayers
+ ldr r0, _0800DCF4 @ =0x02000000
+ ldr r1, _0800DCF8 @ =0x000160cb
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x18]
+ cmp r0, 0x1
+ beq _0800DDA8
+ cmp r0, 0x1
+ bgt _0800DCFC
+ cmp r0, 0
+ beq _0800DD08
+ b _0800DE1C
+ .align 2, 0
+_0800DCF0: .4byte gLinkPlayers
+_0800DCF4: .4byte 0x02000000
+_0800DCF8: .4byte 0x000160cb
+_0800DCFC:
+ cmp r0, 0x2
+ beq _0800DD08
+ cmp r0, 0x3
+ beq _0800DD06
+ b _0800DE1C
+_0800DD06:
+ b _0800DDA8
+_0800DD08:
+ ldr r4, _0800DD2C @ =gUnknown_03004210
+ ldr r1, _0800DD30 @ =gUnknown_08400E48
+ movs r5, 0x2
+ str r5, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA0
+ movs r3, 0x15
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _0800DD34 @ =gUnknown_08400E4F
+ str r5, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA8
+ movs r3, 0x6
+ b _0800DDCA
+ .align 2, 0
+_0800DD2C: .4byte gUnknown_03004210
+_0800DD30: .4byte gUnknown_08400E48
+_0800DD34: .4byte gUnknown_08400E4F
+_0800DD38:
+ cmp r2, 0x1
+ bne _0800DD90
+ ldr r2, _0800DD78 @ =gLinkPlayers
+ ldr r0, _0800DD7C @ =0x02000000
+ ldr r1, _0800DD80 @ =0x000160cb
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x18]
+ cmp r0, 0
+ beq _0800DDA8
+ ldr r4, _0800DD84 @ =gUnknown_03004210
+ ldr r1, _0800DD88 @ =gUnknown_08400E48
+ movs r5, 0x2
+ str r5, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA0
+ movs r3, 0x15
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _0800DD8C @ =gUnknown_08400E4F
+ str r5, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA8
+ movs r3, 0x6
+ b _0800DDCA
+ .align 2, 0
+_0800DD78: .4byte gLinkPlayers
+_0800DD7C: .4byte 0x02000000
+_0800DD80: .4byte 0x000160cb
+_0800DD84: .4byte gUnknown_03004210
+_0800DD88: .4byte gUnknown_08400E48
+_0800DD8C: .4byte gUnknown_08400E4F
+_0800DD90:
+ ldr r2, _0800DDD8 @ =gLinkPlayers
+ ldr r0, _0800DDDC @ =0x02000000
+ ldr r1, _0800DDE0 @ =0x000160cb
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x18]
+ cmp r0, 0
+ beq _0800DDF0
+_0800DDA8:
+ ldr r4, _0800DDE4 @ =gUnknown_03004210
+ ldr r1, _0800DDE8 @ =gUnknown_08400E48
+ movs r5, 0x2
+ str r5, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA0
+ movs r3, 0x6
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _0800DDEC @ =gUnknown_08400E4F
+ str r5, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA8
+ movs r3, 0x15
+_0800DDCA:
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ b _0800DE1C
+ .align 2, 0
+_0800DDD8: .4byte gLinkPlayers
+_0800DDDC: .4byte 0x02000000
+_0800DDE0: .4byte 0x000160cb
+_0800DDE4: .4byte gUnknown_03004210
+_0800DDE8: .4byte gUnknown_08400E48
+_0800DDEC: .4byte gUnknown_08400E4F
+_0800DDF0:
+ ldr r4, _0800DE24 @ =gUnknown_03004210
+ ldr r1, _0800DE28 @ =gUnknown_08400E48
+ movs r5, 0x2
+ str r5, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA0
+ movs r3, 0x15
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _0800DE2C @ =gUnknown_08400E4F
+ str r5, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA8
+ movs r3, 0x6
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+_0800DE1C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800DE24: .4byte gUnknown_03004210
+_0800DE28: .4byte gUnknown_08400E48
+_0800DE2C: .4byte gUnknown_08400E4F
+ thumb_func_end sub_800DC24
+
+ thumb_func_start sub_800DE30
+sub_800DE30: @ 800DE30
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r1, _0800DE64 @ =gTasks
+ lsls r0, 2
+ mov r10, r0
+ add r0, r9
+ lsls r0, 3
+ adds r6, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bne _0800DE58
+ b _0800DF9C
+_0800DE58:
+ cmp r0, 0x1
+ bgt _0800DE68
+ cmp r0, 0
+ beq _0800DE70
+ b _0800E212
+ .align 2, 0
+_0800DE64: .4byte gTasks
+_0800DE68:
+ cmp r0, 0x2
+ bne _0800DE6E
+ b _0800E03C
+_0800DE6E:
+ b _0800E212
+_0800DE70:
+ ldr r0, _0800DED0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0800DEE0
+ ldr r0, _0800DED4 @ =gLinkPlayers
+ ldr r2, _0800DED8 @ =gUnknown_081F9680
+ mov r8, r2
+ adds r7, r0, 0
+ adds r7, 0x8
+ movs r5, 0x3
+_0800DE88:
+ ldrb r0, [r7, 0x10]
+ movs r1, 0x3
+ ands r1, r0
+ str r1, [sp, 0x8]
+ lsls r4, r1, 1
+ adds r4, r1
+ lsls r4, 2
+ mov r2, r8
+ adds r0, r4, r2
+ ldr r1, [r0]
+ str r1, [sp, 0xC]
+ ldrh r2, [r0, 0x4]
+ ldrb r3, [r0, 0x6]
+ ldrb r0, [r0, 0x7]
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ adds r0, r1, 0
+ adds r1, r7, 0
+ bl sub_8002E4C
+ ldr r0, [sp, 0xC]
+ bl sub_8002F44
+ ldr r2, _0800DEDC @ =gUnknown_081F9680 + 0x8
+ adds r4, r2
+ ldr r2, [r4]
+ mov r0, r9
+ ldr r1, [sp, 0x8]
+ bl sub_800DAF8
+ adds r7, 0x1C
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0800DE88
+ b _0800DF70
+ .align 2, 0
+_0800DED0: .4byte gUnknown_020239F8
+_0800DED4: .4byte gLinkPlayers
+_0800DED8: .4byte gUnknown_081F9680
+_0800DEDC: .4byte gUnknown_081F9680 + 0x8
+_0800DEE0:
+ ldr r0, _0800DF84 @ =0x02000000
+ ldr r5, _0800DF88 @ =0x000160cb
+ adds r0, r5
+ ldrb r7, [r0]
+ movs r0, 0x1
+ adds r6, r7, 0
+ eors r6, r0
+ adds r1, r6, 0
+ ldr r2, _0800DF8C @ =gLinkPlayers
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x18]
+ cmp r0, 0
+ beq _0800DF04
+ adds r6, r7, 0
+ adds r7, r1, 0
+_0800DF04:
+ ldr r0, _0800DF90 @ =gUnknown_081F9680
+ mov r8, r0
+ adds r0, 0x30
+ mov r1, r8
+ ldr r4, [r1, 0x30]
+ lsls r1, r7, 3
+ subs r1, r7
+ lsls r1, 2
+ ldr r2, _0800DF94 @ =gLinkPlayers + 0x8
+ adds r1, r2
+ ldrh r2, [r0, 0x4]
+ ldrb r3, [r0, 0x6]
+ ldrb r0, [r0, 0x7]
+ str r0, [sp]
+ movs r5, 0x1
+ str r5, [sp, 0x4]
+ adds r0, r4, 0
+ bl sub_8002E4C
+ adds r0, r4, 0
+ bl sub_8002F44
+ mov r0, r8
+ ldr r2, [r0, 0x38]
+ mov r0, r9
+ adds r1, r7, 0
+ bl sub_800DAF8
+ mov r0, r8
+ adds r0, 0x3C
+ mov r1, r8
+ ldr r4, [r1, 0x3C]
+ lsls r1, r6, 3
+ subs r1, r6
+ lsls r1, 2
+ ldr r2, _0800DF94 @ =gLinkPlayers + 0x8
+ adds r1, r2
+ ldrh r2, [r0, 0x4]
+ ldrb r3, [r0, 0x6]
+ ldrb r0, [r0, 0x7]
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ adds r0, r4, 0
+ bl sub_8002E4C
+ adds r0, r4, 0
+ bl sub_8002F44
+ mov r5, r8
+ ldr r2, [r5, 0x44]
+ mov r0, r9
+ adds r1, r6, 0
+ bl sub_800DAF8
+_0800DF70:
+ ldr r0, _0800DF98 @ =gTasks
+ mov r1, r10
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0800E212
+ .align 2, 0
+_0800DF84: .4byte 0x02000000
+_0800DF88: .4byte 0x000160cb
+_0800DF8C: .4byte gLinkPlayers
+_0800DF90: .4byte gUnknown_081F9680
+_0800DF94: .4byte gLinkPlayers + 0x8
+_0800DF98: .4byte gTasks
+_0800DF9C:
+ ldr r0, _0800E010 @ =0x00002710
+ bl AllocSpritePalette
+ lsls r0, 24
+ ldr r2, _0800E014 @ =gPlttBufferUnfaded
+ lsrs r0, 19
+ ldr r1, _0800E018 @ =0x0000021e
+ adds r0, r1
+ adds r2, r0, r2
+ ldr r1, _0800E01C @ =gPlttBufferFaded
+ adds r0, r1
+ ldr r1, _0800E020 @ =0x00007fff
+ strh r1, [r0]
+ strh r1, [r2]
+ ldr r0, _0800E024 @ =gSpriteTemplate_81F9574
+ movs r1, 0x6C
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ ldr r4, _0800E028 @ =0x02000000
+ ldr r2, _0800E02C @ =0x0001608a
+ adds r7, r4, r2
+ strb r0, [r7]
+ ldr r0, _0800E030 @ =gSpriteTemplate_81F958C
+ movs r1, 0x84
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ ldr r5, _0800E034 @ =0x0001608b
+ adds r4, r5
+ strb r0, [r4]
+ ldr r3, _0800E038 @ =gSprites
+ ldrb r1, [r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ b _0800E212
+ .align 2, 0
+_0800E010: .4byte 0x00002710
+_0800E014: .4byte gPlttBufferUnfaded
+_0800E018: .4byte 0x0000021e
+_0800E01C: .4byte gPlttBufferFaded
+_0800E020: .4byte 0x00007fff
+_0800E024: .4byte gSpriteTemplate_81F9574
+_0800E028: .4byte 0x02000000
+_0800E02C: .4byte 0x0001608a
+_0800E030: .4byte gSpriteTemplate_81F958C
+_0800E034: .4byte 0x0001608b
+_0800E038: .4byte gSprites
+_0800E03C:
+ movs r1, 0x12
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _0800E0A4
+ ldr r4, _0800E090 @ =gUnknown_030042C0
+ ldrh r0, [r6, 0xA]
+ bl Sin2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0800E056
+ adds r0, 0x1F
+_0800E056:
+ asrs r1, r0, 5
+ movs r2, 0x14
+ negs r2, r2
+ adds r0, r2, 0
+ subs r0, r1
+ strh r0, [r4]
+ ldr r4, _0800E094 @ =gUnknown_03004288
+ ldrh r0, [r6, 0xC]
+ bl Sin2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0800E074
+ adds r0, 0x1F
+_0800E074:
+ asrs r1, r0, 5
+ movs r5, 0x8C
+ negs r5, r5
+ adds r0, r5, 0
+ subs r0, r1
+ strh r0, [r4]
+ ldr r0, _0800E098 @ =gUnknown_030041B4
+ ldr r2, _0800E09C @ =0x0000ffdc
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldr r0, _0800E0A0 @ =gUnknown_03004280
+ strh r1, [r0]
+ b _0800E110
+ .align 2, 0
+_0800E090: .4byte gUnknown_030042C0
+_0800E094: .4byte gUnknown_03004288
+_0800E098: .4byte gUnknown_030041B4
+_0800E09C: .4byte 0x0000ffdc
+_0800E0A0: .4byte gUnknown_03004280
+_0800E0A4:
+ ldr r4, _0800E134 @ =gUnknown_030042C0
+ ldrh r0, [r6, 0xA]
+ bl Sin2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0800E0B6
+ adds r0, 0x1F
+_0800E0B6:
+ asrs r1, r0, 5
+ movs r5, 0x14
+ negs r5, r5
+ adds r0, r5, 0
+ subs r0, r1
+ strh r0, [r4]
+ ldr r4, _0800E138 @ =gUnknown_030041B4
+ ldrh r0, [r6, 0xA]
+ bl Cos2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0800E0D4
+ adds r0, 0x1F
+_0800E0D4:
+ asrs r0, 5
+ subs r0, 0xA4
+ strh r0, [r4]
+ ldr r4, _0800E13C @ =gUnknown_03004288
+ ldrh r0, [r6, 0xC]
+ bl Sin2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0800E0EC
+ adds r0, 0x1F
+_0800E0EC:
+ asrs r1, r0, 5
+ movs r2, 0x8C
+ negs r2, r2
+ adds r0, r2, 0
+ subs r0, r1
+ strh r0, [r4]
+ ldr r4, _0800E140 @ =gUnknown_03004280
+ ldrh r0, [r6, 0xC]
+ bl Cos2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0800E10A
+ adds r0, 0x1F
+_0800E10A:
+ asrs r0, 5
+ subs r0, 0xA4
+ strh r0, [r4]
+_0800E110:
+ ldr r1, _0800E144 @ =gTasks
+ mov r5, r9
+ lsls r0, r5, 2
+ add r0, r9
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0xC]
+ movs r2, 0xC
+ ldrsh r7, [r1, r2]
+ cmp r7, 0
+ beq _0800E148
+ subs r0, 0x2
+ strh r0, [r1, 0xC]
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x2
+ strh r0, [r1, 0xA]
+ b _0800E212
+ .align 2, 0
+_0800E134: .4byte gUnknown_030042C0
+_0800E138: .4byte gUnknown_030041B4
+_0800E13C: .4byte gUnknown_03004288
+_0800E140: .4byte gUnknown_03004280
+_0800E144: .4byte gTasks
+_0800E148:
+ movs r5, 0x12
+ ldrsh r0, [r1, r5]
+ cmp r0, 0
+ beq _0800E154
+ bl sub_800DC24
+_0800E154:
+ movs r0, 0x78
+ bl PlaySE
+ mov r0, r9
+ bl DestroyTask
+ ldr r4, _0800E224 @ =gSprites
+ ldr r0, _0800E228 @ =0x02000000
+ mov r8, r0
+ ldr r1, _0800E22C @ =0x0001608a
+ add r1, r8
+ mov r9, r1
+ ldrb r0, [r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ ldr r5, _0800E230 @ =0x0001608b
+ add r8, r5
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x40
+ ldr r5, _0800E234 @ =0x000003ff
+ adds r0, r5, 0
+ ands r1, r0
+ ldr r0, _0800E238 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+ mov r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r7, [r0, 0x2E]
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x1
+ strh r1, [r0, 0x2E]
+ mov r5, r9
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x20]
+ strh r1, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x20]
+ strh r1, [r0, 0x30]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r7, [r0, 0x32]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r7, [r0, 0x32]
+_0800E212:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800E224: .4byte gSprites
+_0800E228: .4byte 0x02000000
+_0800E22C: .4byte 0x0001608a
+_0800E230: .4byte 0x0001608b
+_0800E234: .4byte 0x000003ff
+_0800E238: .4byte 0xfffffc00
+ thumb_func_end sub_800DE30
+
+ thumb_func_start sub_800E23C
+sub_800E23C: @ 800E23C
+ push {r4,r5,lr}
+ ldr r0, _0800E29C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E2DC
+ ldr r0, _0800E2A0 @ =gVersusFrameGfx
+ ldr r1, _0800E2A4 @ =0x06004000
+ bl LZDecompressVram
+ ldr r4, _0800E2A8 @ =gVersusFrameTilemap
+ ldr r1, _0800E2AC @ =0x0600e000
+ adds r0, r4, 0
+ bl LZDecompressVram
+ ldr r1, _0800E2B0 @ =0x0600f000
+ adds r0, r4, 0
+ bl LZDecompressVram
+ ldr r0, _0800E2B4 @ =gUnknown_08E5DC2C
+ ldr r1, _0800E2B8 @ =0x06010000
+ bl LZDecompressVram
+ ldr r0, _0800E2BC @ =gVersusFramePal
+ movs r1, 0x60
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r1, _0800E2C0 @ =REG_BG1CNT
+ ldr r2, _0800E2C4 @ =0x00005c04
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0800E2C8 @ =REG_WININ
+ movs r1, 0x36
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r0, _0800E2CC @ =gUnknown_030041B4
+ ldr r2, _0800E2D0 @ =0x0000ff5c
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldr r0, _0800E2D4 @ =gUnknown_03004280
+ strh r1, [r0]
+ ldr r0, _0800E2D8 @ =gUnknown_081F95A4
+ bl LoadCompressedObjectPic
+ b _0800E3FC
+ .align 2, 0
+_0800E29C: .4byte gUnknown_020239F8
+_0800E2A0: .4byte gVersusFrameGfx
+_0800E2A4: .4byte 0x06004000
+_0800E2A8: .4byte gVersusFrameTilemap
+_0800E2AC: .4byte 0x0600e000
+_0800E2B0: .4byte 0x0600f000
+_0800E2B4: .4byte gUnknown_08E5DC2C
+_0800E2B8: .4byte 0x06010000
+_0800E2BC: .4byte gVersusFramePal
+_0800E2C0: .4byte REG_BG1CNT
+_0800E2C4: .4byte 0x00005c04
+_0800E2C8: .4byte REG_WININ
+_0800E2CC: .4byte gUnknown_030041B4
+_0800E2D0: .4byte 0x0000ff5c
+_0800E2D4: .4byte gUnknown_03004280
+_0800E2D8: .4byte gUnknown_081F95A4
+_0800E2DC:
+ ldr r0, _0800E2F0 @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E300
+ ldr r0, _0800E2F4 @ =gBattleTerrainAnimTiles_Building
+ ldr r1, _0800E2F8 @ =0x06004000
+ bl LZDecompressVram
+ ldr r0, _0800E2FC @ =gBattleTerrainAnimTilemap_Building
+ b _0800E3D2
+ .align 2, 0
+_0800E2F0: .4byte 0x00000902
+_0800E2F4: .4byte gBattleTerrainAnimTiles_Building
+_0800E2F8: .4byte 0x06004000
+_0800E2FC: .4byte gBattleTerrainAnimTilemap_Building
+_0800E300:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E348
+ ldr r0, _0800E320 @ =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0800E330
+ ldr r0, _0800E324 @ =gBattleTerrainAnimTiles_Cave
+ ldr r1, _0800E328 @ =0x06004000
+ bl LZDecompressVram
+ ldr r0, _0800E32C @ =gBattleTerrainAnimTilemap_Cave
+ b _0800E3D2
+ .align 2, 0
+_0800E320: .4byte gGameVersion
+_0800E324: .4byte gBattleTerrainAnimTiles_Cave
+_0800E328: .4byte 0x06004000
+_0800E32C: .4byte gBattleTerrainAnimTilemap_Cave
+_0800E330:
+ ldr r0, _0800E33C @ =gBattleTerrainAnimTiles_Underwater
+ ldr r1, _0800E340 @ =0x06004000
+ bl LZDecompressVram
+ ldr r0, _0800E344 @ =gBattleTerrainAnimTilemap_Underwater
+ b _0800E3D2
+ .align 2, 0
+_0800E33C: .4byte gBattleTerrainAnimTiles_Underwater
+_0800E340: .4byte 0x06004000
+_0800E344: .4byte gBattleTerrainAnimTilemap_Underwater
+_0800E348:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E3A0
+ ldr r2, _0800E370 @ =gTrainers
+ ldr r0, _0800E374 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x19
+ bne _0800E384
+ ldr r0, _0800E378 @ =gBattleTerrainAnimTiles_Building
+ ldr r1, _0800E37C @ =0x06004000
+ bl LZDecompressVram
+ ldr r0, _0800E380 @ =gBattleTerrainAnimTilemap_Building
+ b _0800E3D2
+ .align 2, 0
+_0800E370: .4byte gTrainers
+_0800E374: .4byte gTrainerBattleOpponent
+_0800E378: .4byte gBattleTerrainAnimTiles_Building
+_0800E37C: .4byte 0x06004000
+_0800E380: .4byte gBattleTerrainAnimTilemap_Building
+_0800E384:
+ cmp r0, 0x20
+ bne _0800E3A0
+ ldr r0, _0800E394 @ =gBattleTerrainAnimTiles_Building
+ ldr r1, _0800E398 @ =0x06004000
+ bl LZDecompressVram
+ ldr r0, _0800E39C @ =gBattleTerrainAnimTilemap_Building
+ b _0800E3D2
+ .align 2, 0
+_0800E394: .4byte gBattleTerrainAnimTiles_Building
+_0800E398: .4byte 0x06004000
+_0800E39C: .4byte gBattleTerrainAnimTilemap_Building
+_0800E3A0:
+ bl sav1_map_get_battletype
+ lsls r0, 24
+ cmp r0, 0
+ bne _0800E3EC
+ ldr r4, _0800E3DC @ =gBattleTerrainTable
+ ldr r5, _0800E3E0 @ =gUnknown_0300428C
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x8
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _0800E3E4 @ =0x06004000
+ bl LZDecompressVram
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0xC
+ adds r0, r4
+ ldr r0, [r0]
+_0800E3D2:
+ ldr r1, _0800E3E8 @ =0x0600e000
+ bl LZDecompressVram
+ b _0800E3FC
+ .align 2, 0
+_0800E3DC: .4byte gBattleTerrainTable
+_0800E3E0: .4byte gUnknown_0300428C
+_0800E3E4: .4byte 0x06004000
+_0800E3E8: .4byte 0x0600e000
+_0800E3EC:
+ ldr r0, _0800E404 @ =gBattleTerrainAnimTiles_Building
+ ldr r1, _0800E408 @ =0x06004000
+ bl LZDecompressVram
+ ldr r0, _0800E40C @ =gBattleTerrainAnimTilemap_Building
+ ldr r1, _0800E410 @ =0x0600e000
+ bl LZDecompressVram
+_0800E3FC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800E404: .4byte gBattleTerrainAnimTiles_Building
+_0800E408: .4byte 0x06004000
+_0800E40C: .4byte gBattleTerrainAnimTilemap_Building
+_0800E410: .4byte 0x0600e000
+ thumb_func_end sub_800E23C
+
+ thumb_func_start sub_800E414
+sub_800E414: @ 800E414
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0
+ cmp r0, 0x6
+ bls _0800E422
+ b _0800E7BA
+_0800E422:
+ lsls r0, 2
+ ldr r1, _0800E42C @ =_0800E430
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800E42C: .4byte _0800E430
+ .align 2, 0
+_0800E430:
+ .4byte _0800E44C
+ .4byte _0800E45C
+ .4byte _0800E474
+ .4byte _0800E484
+ .4byte _0800E590
+ .4byte _0800E69C
+ .4byte _0800E7B4
+_0800E44C:
+ ldr r0, _0800E458 @ =gUnknown_08D00000
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZDecompressVram
+ b _0800E7BC
+ .align 2, 0
+_0800E458: .4byte gUnknown_08D00000
+_0800E45C:
+ ldr r0, _0800E46C @ =gUnknown_08D00524
+ ldr r1, _0800E470 @ =0x0600c000
+ movs r2, 0x80
+ lsls r2, 4
+ bl CpuSet
+ b _0800E7BC
+ .align 2, 0
+_0800E46C: .4byte gUnknown_08D00524
+_0800E470: .4byte 0x0600c000
+_0800E474:
+ ldr r0, _0800E480 @ =gUnknown_08D004E0
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadCompressedPalette
+ b _0800E7BC
+ .align 2, 0
+_0800E480: .4byte gUnknown_08D004E0
+_0800E484:
+ ldr r0, _0800E4A8 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _0800E4AC @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E492
+ b _0800E57C
+_0800E492:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E4C0
+ ldr r0, _0800E4B0 @ =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0800E4B8
+ ldr r0, _0800E4B4 @ =gBattleTerrainTiles_Cave
+ b _0800E57E
+ .align 2, 0
+_0800E4A8: .4byte gUnknown_020239F8
+_0800E4AC: .4byte 0x00000902
+_0800E4B0: .4byte gGameVersion
+_0800E4B4: .4byte gBattleTerrainTiles_Cave
+_0800E4B8:
+ ldr r0, _0800E4BC @ =gBattleTerrainTiles_Water
+ b _0800E57E
+ .align 2, 0
+_0800E4BC: .4byte gBattleTerrainTiles_Water
+_0800E4C0:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E4F0
+ ldr r2, _0800E4E4 @ =gTrainers
+ ldr r0, _0800E4E8 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x19
+ beq _0800E57C
+ cmp r0, 0x20
+ bne _0800E4F0
+ ldr r0, _0800E4EC @ =gBattleTerrainTiles_Stadium
+ b _0800E57E
+ .align 2, 0
+_0800E4E4: .4byte gTrainers
+_0800E4E8: .4byte gTrainerBattleOpponent
+_0800E4EC: .4byte gBattleTerrainTiles_Stadium
+_0800E4F0:
+ bl sav1_map_get_battletype
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ bls _0800E4FE
+ b _0800E7BC
+_0800E4FE:
+ lsls r0, 2
+ ldr r1, _0800E508 @ =_0800E50C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800E508: .4byte _0800E50C
+ .align 2, 0
+_0800E50C:
+ .4byte _0800E530
+ .4byte _0800E57C
+ .4byte _0800E54C
+ .4byte _0800E554
+ .4byte _0800E55C
+ .4byte _0800E564
+ .4byte _0800E56C
+ .4byte _0800E574
+ .4byte _0800E57C
+_0800E530:
+ ldr r2, _0800E544 @ =gBattleTerrainTable
+ ldr r0, _0800E548 @ =gUnknown_0300428C
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ b _0800E57E
+ .align 2, 0
+_0800E544: .4byte gBattleTerrainTable
+_0800E548: .4byte gUnknown_0300428C
+_0800E54C:
+ ldr r0, _0800E550 @ =gBattleTerrainTiles_Stadium
+ b _0800E57E
+ .align 2, 0
+_0800E550: .4byte gBattleTerrainTiles_Stadium
+_0800E554:
+ ldr r0, _0800E558 @ =gBattleTerrainTiles_Stadium
+ b _0800E57E
+ .align 2, 0
+_0800E558: .4byte gBattleTerrainTiles_Stadium
+_0800E55C:
+ ldr r0, _0800E560 @ =gBattleTerrainTiles_Stadium
+ b _0800E57E
+ .align 2, 0
+_0800E560: .4byte gBattleTerrainTiles_Stadium
+_0800E564:
+ ldr r0, _0800E568 @ =gBattleTerrainTiles_Stadium
+ b _0800E57E
+ .align 2, 0
+_0800E568: .4byte gBattleTerrainTiles_Stadium
+_0800E56C:
+ ldr r0, _0800E570 @ =gBattleTerrainTiles_Stadium
+ b _0800E57E
+ .align 2, 0
+_0800E570: .4byte gBattleTerrainTiles_Stadium
+_0800E574:
+ ldr r0, _0800E578 @ =gBattleTerrainTiles_Stadium
+ b _0800E57E
+ .align 2, 0
+_0800E578: .4byte gBattleTerrainTiles_Stadium
+_0800E57C:
+ ldr r0, _0800E588 @ =gBattleTerrainTiles_Building
+_0800E57E:
+ ldr r1, _0800E58C @ =0x06008000
+ bl LZDecompressVram
+ b _0800E7BC
+ .align 2, 0
+_0800E588: .4byte gBattleTerrainTiles_Building
+_0800E58C: .4byte 0x06008000
+_0800E590:
+ ldr r0, _0800E5B4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _0800E5B8 @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E59E
+ b _0800E688
+_0800E59E:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E5CC
+ ldr r0, _0800E5BC @ =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0800E5C4
+ ldr r0, _0800E5C0 @ =gBattleTerrainTilemap_Cave
+ b _0800E68A
+ .align 2, 0
+_0800E5B4: .4byte gUnknown_020239F8
+_0800E5B8: .4byte 0x00000902
+_0800E5BC: .4byte gGameVersion
+_0800E5C0: .4byte gBattleTerrainTilemap_Cave
+_0800E5C4:
+ ldr r0, _0800E5C8 @ =gBattleTerrainTilemap_Water
+ b _0800E68A
+ .align 2, 0
+_0800E5C8: .4byte gBattleTerrainTilemap_Water
+_0800E5CC:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E5FC
+ ldr r2, _0800E5F0 @ =gTrainers
+ ldr r0, _0800E5F4 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x19
+ beq _0800E688
+ cmp r0, 0x20
+ bne _0800E5FC
+ ldr r0, _0800E5F8 @ =gBattleTerrainTilemap_Stadium
+ b _0800E68A
+ .align 2, 0
+_0800E5F0: .4byte gTrainers
+_0800E5F4: .4byte gTrainerBattleOpponent
+_0800E5F8: .4byte gBattleTerrainTilemap_Stadium
+_0800E5FC:
+ bl sav1_map_get_battletype
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ bls _0800E60A
+ b _0800E7BC
+_0800E60A:
+ lsls r0, 2
+ ldr r1, _0800E614 @ =_0800E618
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800E614: .4byte _0800E618
+ .align 2, 0
+_0800E618:
+ .4byte _0800E63C
+ .4byte _0800E688
+ .4byte _0800E658
+ .4byte _0800E660
+ .4byte _0800E668
+ .4byte _0800E670
+ .4byte _0800E678
+ .4byte _0800E680
+ .4byte _0800E688
+_0800E63C:
+ ldr r2, _0800E650 @ =gBattleTerrainTable
+ ldr r0, _0800E654 @ =gUnknown_0300428C
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x4
+ adds r0, r2
+ ldr r0, [r0]
+ b _0800E68A
+ .align 2, 0
+_0800E650: .4byte gBattleTerrainTable
+_0800E654: .4byte gUnknown_0300428C
+_0800E658:
+ ldr r0, _0800E65C @ =gBattleTerrainTilemap_Stadium
+ b _0800E68A
+ .align 2, 0
+_0800E65C: .4byte gBattleTerrainTilemap_Stadium
+_0800E660:
+ ldr r0, _0800E664 @ =gBattleTerrainTilemap_Stadium
+ b _0800E68A
+ .align 2, 0
+_0800E664: .4byte gBattleTerrainTilemap_Stadium
+_0800E668:
+ ldr r0, _0800E66C @ =gBattleTerrainTilemap_Stadium
+ b _0800E68A
+ .align 2, 0
+_0800E66C: .4byte gBattleTerrainTilemap_Stadium
+_0800E670:
+ ldr r0, _0800E674 @ =gBattleTerrainTilemap_Stadium
+ b _0800E68A
+ .align 2, 0
+_0800E674: .4byte gBattleTerrainTilemap_Stadium
+_0800E678:
+ ldr r0, _0800E67C @ =gBattleTerrainTilemap_Stadium
+ b _0800E68A
+ .align 2, 0
+_0800E67C: .4byte gBattleTerrainTilemap_Stadium
+_0800E680:
+ ldr r0, _0800E684 @ =gBattleTerrainTilemap_Stadium
+ b _0800E68A
+ .align 2, 0
+_0800E684: .4byte gBattleTerrainTilemap_Stadium
+_0800E688:
+ ldr r0, _0800E694 @ =gBattleTerrainTilemap_Building
+_0800E68A:
+ ldr r1, _0800E698 @ =0x0600d000
+ bl LZDecompressVram
+ b _0800E7BC
+ .align 2, 0
+_0800E694: .4byte gBattleTerrainTilemap_Building
+_0800E698: .4byte 0x0600d000
+_0800E69C:
+ ldr r0, _0800E6C0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _0800E6C4 @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E6AA
+ b _0800E7A4
+_0800E6AA:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E6D8
+ ldr r0, _0800E6C8 @ =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0800E6D0
+ ldr r0, _0800E6CC @ =gBattleTerrainPalette_Groudon
+ b _0800E7A6
+ .align 2, 0
+_0800E6C0: .4byte gUnknown_020239F8
+_0800E6C4: .4byte 0x00000902
+_0800E6C8: .4byte gGameVersion
+_0800E6CC: .4byte gBattleTerrainPalette_Groudon
+_0800E6D0:
+ ldr r0, _0800E6D4 @ =gBattleTerrainPalette_Kyogre
+ b _0800E7A6
+ .align 2, 0
+_0800E6D4: .4byte gBattleTerrainPalette_Kyogre
+_0800E6D8:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E710
+ ldr r2, _0800E6F8 @ =gTrainers
+ ldr r0, _0800E6FC @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x19
+ bne _0800E704
+ ldr r0, _0800E700 @ =gBattleTerrainPalette_BuildingLeader
+ b _0800E7A6
+ .align 2, 0
+_0800E6F8: .4byte gTrainers
+_0800E6FC: .4byte gTrainerBattleOpponent
+_0800E700: .4byte gBattleTerrainPalette_BuildingLeader
+_0800E704:
+ cmp r0, 0x20
+ bne _0800E710
+ ldr r0, _0800E70C @ =gBattleTerrainPalette_StadiumSteven
+ b _0800E7A6
+ .align 2, 0
+_0800E70C: .4byte gBattleTerrainPalette_StadiumSteven
+_0800E710:
+ bl sav1_map_get_battletype
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ bhi _0800E7BC
+ lsls r0, 2
+ ldr r1, _0800E728 @ =_0800E72C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800E728: .4byte _0800E72C
+ .align 2, 0
+_0800E72C:
+ .4byte _0800E750
+ .4byte _0800E76C
+ .4byte _0800E774
+ .4byte _0800E77C
+ .4byte _0800E784
+ .4byte _0800E78C
+ .4byte _0800E794
+ .4byte _0800E79C
+ .4byte _0800E7A4
+_0800E750:
+ ldr r2, _0800E764 @ =gBattleTerrainTable
+ ldr r0, _0800E768 @ =gUnknown_0300428C
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x10
+ adds r0, r2
+ ldr r0, [r0]
+ b _0800E7A6
+ .align 2, 0
+_0800E764: .4byte gBattleTerrainTable
+_0800E768: .4byte gUnknown_0300428C
+_0800E76C:
+ ldr r0, _0800E770 @ =gBattleTerrainPalette_BuildingGym
+ b _0800E7A6
+ .align 2, 0
+_0800E770: .4byte gBattleTerrainPalette_BuildingGym
+_0800E774:
+ ldr r0, _0800E778 @ =gBattleTerrainPalette_StadiumMagma
+ b _0800E7A6
+ .align 2, 0
+_0800E778: .4byte gBattleTerrainPalette_StadiumMagma
+_0800E77C:
+ ldr r0, _0800E780 @ =gBattleTerrainPalette_StadiumAqua
+ b _0800E7A6
+ .align 2, 0
+_0800E780: .4byte gBattleTerrainPalette_StadiumAqua
+_0800E784:
+ ldr r0, _0800E788 @ =gBattleTerrainPalette_StadiumSidney
+ b _0800E7A6
+ .align 2, 0
+_0800E788: .4byte gBattleTerrainPalette_StadiumSidney
+_0800E78C:
+ ldr r0, _0800E790 @ =gBattleTerrainPalette_StadiumPhoebe
+ b _0800E7A6
+ .align 2, 0
+_0800E790: .4byte gBattleTerrainPalette_StadiumPhoebe
+_0800E794:
+ ldr r0, _0800E798 @ =gBattleTerrainPalette_StadiumGlacia
+ b _0800E7A6
+ .align 2, 0
+_0800E798: .4byte gBattleTerrainPalette_StadiumGlacia
+_0800E79C:
+ ldr r0, _0800E7A0 @ =gBattleTerrainPalette_StadiumDrake
+ b _0800E7A6
+ .align 2, 0
+_0800E7A0: .4byte gBattleTerrainPalette_StadiumDrake
+_0800E7A4:
+ ldr r0, _0800E7B0 @ =gBattleTerrainPalette_BattleTower
+_0800E7A6:
+ movs r1, 0x20
+ movs r2, 0x60
+ bl LoadCompressedPalette
+ b _0800E7BC
+ .align 2, 0
+_0800E7B0: .4byte gBattleTerrainPalette_BattleTower
+_0800E7B4:
+ bl sub_800D74C
+ b _0800E7BC
+_0800E7BA:
+ movs r4, 0x1
+_0800E7BC:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800E414
+
+ thumb_func_start sub_800E7C4
+sub_800E7C4: @ 800E7C4
+ push {lr}
+ ldr r0, _0800E7E4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E7F0
+ bl sub_800B858
+ ldr r0, _0800E7E8 @ =sub_800F104
+ bl SetMainCallback2
+ ldr r1, _0800E7EC @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r1]
+ b _0800E7F4
+ .align 2, 0
+_0800E7E4: .4byte gUnknown_020239F8
+_0800E7E8: .4byte sub_800F104
+_0800E7EC: .4byte gUnknown_02024D1E
+_0800E7F0:
+ bl sub_800E7F8
+_0800E7F4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800E7C4
+
+ thumb_func_start sub_800E7F8
+sub_800E7F8: @ 800E7F8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0xC0
+ lsls r1, 19
+ ldr r2, _0800E90C @ =0x05006000
+ mov r0, sp
+ bl CpuSet
+ ldr r0, _0800E910 @ =REG_MOSAIC
+ strh r4, [r0]
+ subs r0, 0xC
+ movs r2, 0xF0
+ strh r2, [r0]
+ adds r0, 0x4
+ ldr r3, _0800E914 @ =0x00005051
+ adds r1, r3, 0
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ ldr r0, _0800E918 @ =gUnknown_030042C4
+ strh r2, [r0]
+ ldr r0, _0800E91C @ =gUnknown_03004240
+ strh r1, [r0]
+ bl dp12_8087EA4
+ ldr r0, _0800E920 @ =gUnknown_03004DE0
+ movs r3, 0xF0
+ movs r5, 0xF0
+ lsls r5, 3
+ adds r2, r0, r5
+ movs r1, 0x4F
+_0800E84A:
+ strh r3, [r0]
+ strh r3, [r2]
+ adds r2, 0x2
+ adds r0, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _0800E84A
+ movs r1, 0x50
+ ldr r4, _0800E924 @ =gUnknown_081F9674
+ ldr r0, _0800E920 @ =gUnknown_03004DE0
+ ldr r3, _0800E928 @ =0x0000ff10
+ movs r5, 0x82
+ lsls r5, 4
+ adds r2, r0, r5
+ adds r0, 0xA0
+_0800E868:
+ strh r3, [r0]
+ strh r3, [r2]
+ adds r2, 0x2
+ adds r0, 0x2
+ adds r1, 0x1
+ cmp r1, 0x9F
+ ble _0800E868
+ ldr r0, [r4]
+ ldr r1, [r4, 0x4]
+ ldr r2, [r4, 0x8]
+ bl sub_80895F8
+ ldr r4, _0800E92C @ =gWindowConfig_81E6C58
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ bl ResetPaletteFade
+ ldr r0, _0800E930 @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0800E934 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r0, _0800E938 @ =gUnknown_030042C0
+ strh r1, [r0]
+ ldr r0, _0800E93C @ =gUnknown_030041B4
+ strh r1, [r0]
+ ldr r0, _0800E940 @ =gUnknown_03004288
+ strh r1, [r0]
+ ldr r0, _0800E944 @ =gUnknown_03004280
+ strh r1, [r0]
+ ldr r0, _0800E948 @ =gUnknown_030041B0
+ strh r1, [r0]
+ ldr r0, _0800E94C @ =gUnknown_030041B8
+ strh r1, [r0]
+ bl sub_8081D3C
+ ldr r1, _0800E950 @ =gUnknown_0300428C
+ strb r0, [r1]
+ ldr r0, _0800E954 @ =gUnknown_03004210
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ ldr r0, _0800E958 @ =gUnknown_030041D0
+ ldr r1, _0800E95C @ =gWindowConfig_81E71D0
+ bl InitWindowFromConfig
+ ldr r0, _0800E960 @ =gUnknown_03004250
+ ldr r1, _0800E964 @ =gWindowConfig_81E71EC
+ bl InitWindowFromConfig
+ bl sub_800D6D4
+ bl sub_800DAB8
+ bl ResetSpriteData
+ bl ResetTasks
+ bl sub_800E23C
+ bl FreeAllSpritePalettes
+ ldr r1, _0800E968 @ =gReservedSpritePaletteCount
+ movs r0, 0x4
+ strb r0, [r1]
+ ldr r0, _0800E96C @ =sub_800FCFC
+ bl SetVBlankCallback
+ bl sub_800B884
+ ldr r0, _0800E970 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E978
+ ldr r0, _0800E974 @ =sub_800F298
+ bl SetMainCallback2
+ b _0800E97E
+ .align 2, 0
+_0800E90C: .4byte 0x05006000
+_0800E910: .4byte REG_MOSAIC
+_0800E914: .4byte 0x00005051
+_0800E918: .4byte gUnknown_030042C4
+_0800E91C: .4byte gUnknown_03004240
+_0800E920: .4byte gUnknown_03004DE0
+_0800E924: .4byte gUnknown_081F9674
+_0800E928: .4byte 0x0000ff10
+_0800E92C: .4byte gWindowConfig_81E6C58
+_0800E930: .4byte gUnknown_030042A4
+_0800E934: .4byte gUnknown_030042A0
+_0800E938: .4byte gUnknown_030042C0
+_0800E93C: .4byte gUnknown_030041B4
+_0800E940: .4byte gUnknown_03004288
+_0800E944: .4byte gUnknown_03004280
+_0800E948: .4byte gUnknown_030041B0
+_0800E94C: .4byte gUnknown_030041B8
+_0800E950: .4byte gUnknown_0300428C
+_0800E954: .4byte gUnknown_03004210
+_0800E958: .4byte gUnknown_030041D0
+_0800E95C: .4byte gWindowConfig_81E71D0
+_0800E960: .4byte gUnknown_03004250
+_0800E964: .4byte gWindowConfig_81E71EC
+_0800E968: .4byte gReservedSpritePaletteCount
+_0800E96C: .4byte sub_800FCFC
+_0800E970: .4byte gUnknown_020239F8
+_0800E974: .4byte sub_800F298
+_0800E978:
+ ldr r0, _0800E9CC @ =sub_800EC9C
+ bl SetMainCallback2
+_0800E97E:
+ ldr r0, _0800E9D0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0800E998
+ ldr r0, _0800E9D4 @ =gEnemyParty
+ ldr r1, _0800E9D8 @ =gTrainerBattleOpponent
+ ldrh r1, [r1]
+ bl sub_800F8E8
+ bl sub_8040C38
+_0800E998:
+ ldr r0, _0800E9DC @ =gMain
+ ldr r1, _0800E9E0 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r4, _0800E9E4 @ =gPlayerParty
+ movs r3, 0xFA
+ lsls r3, 1
+ adds r5, r4, r3
+_0800E9AE:
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl AdjustFriendship
+ adds r4, 0x64
+ cmp r4, r5
+ ble _0800E9AE
+ movs r1, 0
+ ldr r0, _0800E9E8 @ =gUnknown_02024D1E
+ strb r1, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800E9CC: .4byte sub_800EC9C
+_0800E9D0: .4byte gUnknown_020239F8
+_0800E9D4: .4byte gEnemyParty
+_0800E9D8: .4byte gTrainerBattleOpponent
+_0800E9DC: .4byte gMain
+_0800E9E0: .4byte 0x0000043d
+_0800E9E4: .4byte gPlayerParty
+_0800E9E8: .4byte gUnknown_02024D1E
+ thumb_func_end sub_800E7F8
+
+ thumb_func_start sub_800E9EC
+sub_800E9EC: @ 800E9EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r6, 0
+ mov r9, r6
+ movs r0, 0xCE
+ lsls r0, 1
+ mov r10, r0
+ mov r8, r6
+_0800EA02:
+ movs r0, 0x64
+ mov r4, r9
+ muls r4, r0
+ ldr r0, _0800EAA4 @ =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ adds r1, r0, 0
+ cmp r5, 0
+ beq _0800EA7E
+ cmp r5, r10
+ beq _0800EA4A
+ cmp r7, 0
+ beq _0800EA4A
+ cmp r1, 0
+ bne _0800EA4A
+ movs r0, 0x1
+ mov r2, r8
+ lsls r0, r2
+ orrs r6, r0
+ lsls r0, r6, 16
+ lsrs r6, r0, 16
+_0800EA4A:
+ cmp r5, 0
+ beq _0800EA7E
+ cmp r7, 0
+ beq _0800EA66
+ cmp r5, r10
+ beq _0800EA5A
+ cmp r1, 0
+ beq _0800EA66
+_0800EA5A:
+ movs r0, 0x2
+ mov r1, r8
+ lsls r0, r1
+ orrs r6, r0
+ lsls r0, r6, 16
+ lsrs r6, r0, 16
+_0800EA66:
+ cmp r5, 0
+ beq _0800EA7E
+ cmp r5, r10
+ beq _0800EA7E
+ cmp r7, 0
+ bne _0800EA7E
+ movs r0, 0x3
+ mov r2, r8
+ lsls r0, r2
+ orrs r6, r0
+ lsls r0, r6, 16
+ lsrs r6, r0, 16
+_0800EA7E:
+ movs r0, 0x2
+ add r8, r0
+ movs r1, 0x1
+ add r9, r1
+ mov r2, r9
+ cmp r2, 0x5
+ ble _0800EA02
+ ldr r1, _0800EAA8 @ =0x02000000
+ strb r6, [r1, 0x2]
+ lsrs r0, r6, 8
+ strb r0, [r1, 0x3]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800EAA4: .4byte gPlayerParty
+_0800EAA8: .4byte 0x02000000
+ thumb_func_end sub_800E9EC
+
+ thumb_func_start sub_800EAAC
+sub_800EAAC: @ 800EAAC
+ push {r4-r6,lr}
+ ldr r4, _0800EAF4 @ =0x02000004
+ movs r2, 0
+ ldr r6, _0800EAF8 @ =gSaveBlock1
+ ldr r0, _0800EAFC @ =0x00003160
+ adds r3, r6, r0
+_0800EAB8:
+ adds r0, r4, r2
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x6
+ ble _0800EAB8
+ movs r2, 0
+ adds r3, r4, 0
+ adds r3, 0x8
+ ldr r5, _0800EB00 @ =gSaveBlock1 + 0x3676
+_0800EACE:
+ adds r0, r3, r2
+ adds r1, r2, r5
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x11
+ ble _0800EACE
+ ldr r1, _0800EB04 @ =0x00003688
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ strb r0, [r4, 0x7]
+ adds r1, 0x1
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ strb r0, [r4, 0x1A]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800EAF4: .4byte 0x02000004
+_0800EAF8: .4byte gSaveBlock1
+_0800EAFC: .4byte 0x00003160
+_0800EB00: .4byte gSaveBlock1 + 0x3676
+_0800EB04: .4byte 0x00003688
+ thumb_func_end sub_800EAAC
+
+ thumb_func_start sub_800EB08
+sub_800EB08: @ 800EB08
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _0800EB84 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0800EBA4
+ movs r3, 0
+ ldr r5, _0800EB88 @ =gEnigmaBerries
+ ldr r0, _0800EB8C @ =gSaveBlock1
+ mov r12, r0
+ adds r7, r5, 0
+ ldr r6, _0800EB90 @ =0x00003160
+ add r6, r12
+ adds r4, r5, 0
+ adds r4, 0x38
+_0800EB30:
+ adds r1, r3, r7
+ adds r2, r3, r6
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r1, r3, r4
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r3, 0x1
+ cmp r3, 0x6
+ ble _0800EB30
+ movs r3, 0
+ ldr r4, _0800EB94 @ =gUnknown_02024DF8
+ ldr r7, _0800EB98 @ =gSaveBlock1 + 0x3676
+ adds r6, r4, 0
+ adds r6, 0x38
+_0800EB4E:
+ adds r1, r3, r4
+ adds r2, r3, r7
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r1, r3, r6
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r3, 0x1
+ cmp r3, 0x11
+ ble _0800EB4E
+ ldr r1, _0800EB9C @ =0x00003688
+ add r1, r12
+ ldrb r0, [r1]
+ strb r0, [r5, 0x7]
+ ldrb r0, [r1]
+ adds r1, r5, 0
+ adds r1, 0x3F
+ strb r0, [r1]
+ ldr r1, _0800EBA0 @ =0x00003689
+ add r1, r12
+ ldrb r0, [r1]
+ strb r0, [r5, 0x1A]
+ ldrb r1, [r1]
+ adds r0, r5, 0
+ adds r0, 0x52
+ strb r1, [r0]
+ b _0800EC28
+ .align 2, 0
+_0800EB84: .4byte gUnknown_020239F8
+_0800EB88: .4byte gEnigmaBerries
+_0800EB8C: .4byte gSaveBlock1
+_0800EB90: .4byte 0x00003160
+_0800EB94: .4byte gUnknown_02024DF8
+_0800EB98: .4byte gSaveBlock1 + 0x3676
+_0800EB9C: .4byte 0x00003688
+_0800EBA0: .4byte 0x00003689
+_0800EBA4:
+ movs r0, 0x40
+ ands r0, r1
+ movs r1, 0x2
+ mov r8, r1
+ cmp r0, 0
+ beq _0800EBB4
+ movs r0, 0x4
+ mov r8, r0
+_0800EBB4:
+ movs r3, 0
+ cmp r3, r8
+ bge _0800EC28
+ ldr r1, _0800EC38 @ =gEnigmaBerries
+ mov r12, r1
+ ldr r0, _0800EC3C @ =gBlockRecvBuffer + 0x4
+ mov r10, r0
+ movs r1, 0x8
+ add r1, r12
+ mov r9, r1
+_0800EBC8:
+ lsls r0, r3, 8
+ mov r1, r10
+ adds r5, r0, r1
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ ldr r1, _0800EC40 @ =gLinkPlayers
+ adds r0, r1
+ ldrb r4, [r0, 0x18]
+ movs r2, 0
+ adds r7, r3, 0x1
+ lsls r1, r4, 3
+ subs r0, r1, r4
+ adds r6, r1, 0
+ lsls r0, 2
+ mov r1, r12
+ adds r3, r0, r1
+_0800EBEA:
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ strb r0, [r3]
+ adds r3, 0x1
+ adds r2, 0x1
+ cmp r2, 0x6
+ ble _0800EBEA
+ movs r2, 0
+ subs r0, r6, r4
+ lsls r0, 2
+ mov r1, r9
+ adds r3, r0, r1
+ adds r1, r5, 0
+ adds r1, 0x8
+_0800EC06:
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ strb r0, [r3]
+ adds r3, 0x1
+ adds r2, 0x1
+ cmp r2, 0x11
+ ble _0800EC06
+ subs r0, r6, r4
+ lsls r0, 2
+ add r0, r12
+ ldrb r1, [r5, 0x7]
+ strb r1, [r0, 0x7]
+ ldrb r1, [r5, 0x1A]
+ strb r1, [r0, 0x1A]
+ adds r3, r7, 0
+ cmp r3, r8
+ blt _0800EBC8
+_0800EC28:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800EC38: .4byte gEnigmaBerries
+_0800EC3C: .4byte gBlockRecvBuffer + 0x4
+_0800EC40: .4byte gLinkPlayers
+ thumb_func_end sub_800EB08
+
+ thumb_func_start shedinja_something
+shedinja_something: @ 800EC44
+ push {r4,r5,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ add r5, sp, 0xC
+ movs r0, 0x1
+ strb r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ ldr r1, _0800EC94 @ =0x0000012f
+ cmp r0, r1
+ bne _0800EC8C
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl GetMonData
+ ldrb r1, [r5]
+ cmp r0, r1
+ beq _0800EC8C
+ adds r0, r4, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+ ldr r1, _0800EC98 @ =gUnknown_081F96C8
+ mov r0, sp
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ bne _0800EC8C
+ adds r0, r4, 0
+ movs r1, 0x3
+ adds r2, r5, 0
+ bl SetMonData
+_0800EC8C:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800EC94: .4byte 0x0000012f
+_0800EC98: .4byte gUnknown_081F96C8
+ thumb_func_end shedinja_something
+
+ thumb_func_start sub_800EC9C
+sub_800EC9C: @ 800EC9C
+ push {r4-r7,lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0800ECD4 @ =0x02000000
+ ldr r1, _0800ECD8 @ =0x000160cb
+ adds r0, r1
+ strb r4, [r0]
+ movs r0, 0x1
+ adds r5, r4, 0
+ eors r5, r0
+ ldr r0, _0800ECDC @ =gUnknown_02024D1E
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bls _0800ECCA
+ b _0800F008
+_0800ECCA:
+ lsls r0, 2
+ ldr r1, _0800ECE0 @ =_0800ECE4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800ECD4: .4byte 0x02000000
+_0800ECD8: .4byte 0x000160cb
+_0800ECDC: .4byte gUnknown_02024D1E
+_0800ECE0: .4byte _0800ECE4
+ .align 2, 0
+_0800ECE4:
+ .4byte _0800ED0C
+ .4byte _0800ED7C
+ .4byte _0800EE88
+ .4byte _0800EEAC
+ .4byte _0800EED8
+ .4byte _0800EEFC
+ .4byte _0800EF28
+ .4byte _0800EF48
+ .4byte _0800EFB4
+ .4byte _0800EFCC
+_0800ED0C:
+ ldr r2, _0800ED54 @ =gUnknown_020239F8
+ ldrh r1, [r2]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0800ED64
+ ldr r0, _0800ED58 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0800ED22
+ b _0800F008
+_0800ED22:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0800ED2E
+ b _0800F008
+_0800ED2E:
+ ldr r4, _0800ED5C @ =0x02000000
+ movs r5, 0x1
+ strb r5, [r4]
+ strb r5, [r4, 0x1]
+ bl sub_800E9EC
+ bl sub_800EAAC
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ movs r2, 0x20
+ bl SendBlock
+ ldr r0, _0800ED60 @ =gUnknown_02024D1E
+ strb r5, [r0]
+ b _0800F008
+ .align 2, 0
+_0800ED54: .4byte gUnknown_020239F8
+_0800ED58: .4byte gReceivedRemoteLinkPlayers
+_0800ED5C: .4byte 0x02000000
+_0800ED60: .4byte gUnknown_02024D1E
+_0800ED64:
+ movs r0, 0x4
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0800ED78 @ =gUnknown_02024D1E
+ movs r0, 0x8
+ strb r0, [r1]
+ bl sub_800EB08
+ b _0800F008
+ .align 2, 0
+_0800ED78: .4byte gUnknown_02024D1E
+_0800ED7C:
+ bl GetBlockReceivedStatus
+ movs r1, 0x3
+ ands r1, r0
+ cmp r1, 0x3
+ beq _0800ED8A
+ b _0800F008
+_0800ED8A:
+ bl ResetBlockReceivedFlags
+ movs r3, 0
+ ldr r0, _0800EDA8 @ =gBlockRecvBuffer
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ cmp r1, r0
+ bne _0800EDBC
+ cmp r4, 0
+ bne _0800EDB0
+ ldr r0, _0800EDAC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r2, 0xC
+ b _0800EDB6
+ .align 2, 0
+_0800EDA8: .4byte gBlockRecvBuffer
+_0800EDAC: .4byte gUnknown_020239F8
+_0800EDB0:
+ ldr r0, _0800EDE0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r2, 0x8
+_0800EDB6:
+ orrs r1, r2
+ strh r1, [r0]
+ adds r3, 0x1
+_0800EDBC:
+ lsls r7, r5, 8
+ cmp r3, 0
+ bne _0800EE38
+ ldr r0, _0800EDE4 @ =gBlockRecvBuffer
+ movs r1, 0x80
+ lsls r1, 1
+ adds r2, r0, r1
+ ldrh r1, [r0]
+ adds r6, r0, 0
+ ldrh r2, [r2]
+ cmp r1, r2
+ bne _0800EDF4
+ cmp r4, 0
+ bne _0800EDE8
+ ldr r0, _0800EDE0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r2, 0xC
+ b _0800EDEE
+ .align 2, 0
+_0800EDE0: .4byte gUnknown_020239F8
+_0800EDE4: .4byte gBlockRecvBuffer
+_0800EDE8:
+ ldr r0, _0800EE04 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r2, 0x8
+_0800EDEE:
+ orrs r1, r2
+ strh r1, [r0]
+ adds r3, 0x1
+_0800EDF4:
+ lsls r7, r5, 8
+ cmp r3, 0
+ bne _0800EE38
+ ldrh r1, [r6]
+ ldr r0, _0800EE08 @ =0x00000101
+ ldr r2, _0800EE04 @ =gUnknown_020239F8
+ b _0800EE1A
+ .align 2, 0
+_0800EE04: .4byte gUnknown_020239F8
+_0800EE08: .4byte 0x00000101
+_0800EE0C:
+ adds r3, 0x1
+ cmp r3, 0x1
+ bgt _0800EE22
+ lsls r0, r3, 8
+ adds r0, r6
+ ldrh r1, [r0]
+ ldr r0, _0800EE2C @ =0x00000101
+_0800EE1A:
+ cmp r1, r0
+ bls _0800EE0C
+ cmp r3, r4
+ beq _0800EE0C
+_0800EE22:
+ cmp r3, 0x2
+ bne _0800EE30
+ ldrh r0, [r2]
+ movs r1, 0xC
+ b _0800EE34
+ .align 2, 0
+_0800EE2C: .4byte 0x00000101
+_0800EE30:
+ ldrh r0, [r2]
+ movs r1, 0x8
+_0800EE34:
+ orrs r0, r1
+ strh r0, [r2]
+_0800EE38:
+ bl sub_800EB08
+ ldr r0, _0800EE78 @ =sub_800DE30
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0800EE7C @ =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r1
+ movs r1, 0
+ movs r0, 0x87
+ lsls r0, 1
+ strh r0, [r2, 0xA]
+ movs r0, 0x5A
+ strh r0, [r2, 0xC]
+ strh r1, [r2, 0x12]
+ ldr r0, _0800EE80 @ =0x02000000
+ ldrb r1, [r0, 0x2]
+ ldrb r0, [r0, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2, 0xE]
+ ldr r0, _0800EE84 @ =gBlockRecvBuffer
+ adds r0, 0x2
+ adds r0, r7, r0
+ ldrh r0, [r0]
+ strh r0, [r2, 0x10]
+ b _0800EF96
+ .align 2, 0
+_0800EE78: .4byte sub_800DE30
+_0800EE7C: .4byte gTasks
+_0800EE80: .4byte 0x02000000
+_0800EE84: .4byte gBlockRecvBuffer
+_0800EE88:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0800EE94
+ b _0800F008
+_0800EE94:
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0800EEA8 @ =gPlayerParty
+ movs r2, 0xC8
+ bl SendBlock
+ b _0800EF96
+ .align 2, 0
+_0800EEA8: .4byte gPlayerParty
+_0800EEAC:
+ bl GetBlockReceivedStatus
+ movs r1, 0x3
+ ands r1, r0
+ cmp r1, 0x3
+ beq _0800EEBA
+ b _0800F008
+_0800EEBA:
+ bl ResetBlockReceivedFlags
+ ldr r0, _0800EED0 @ =gEnemyParty
+ lsls r1, r5, 8
+ ldr r2, _0800EED4 @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0xC8
+ bl memcpy
+ b _0800EF96
+ .align 2, 0
+_0800EED0: .4byte gEnemyParty
+_0800EED4: .4byte gBlockRecvBuffer
+_0800EED8:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0800EEE4
+ b _0800F008
+_0800EEE4:
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0800EEF8 @ =gPlayerParty + 2 * 0x64
+ movs r2, 0xC8
+ bl SendBlock
+ b _0800EF96
+ .align 2, 0
+_0800EEF8: .4byte gPlayerParty + 2 * 0x64
+_0800EEFC:
+ bl GetBlockReceivedStatus
+ movs r1, 0x3
+ ands r1, r0
+ cmp r1, 0x3
+ beq _0800EF0A
+ b _0800F008
+_0800EF0A:
+ bl ResetBlockReceivedFlags
+ ldr r0, _0800EF20 @ =gEnemyParty + 2 * 0x64
+ lsls r1, r5, 8
+ ldr r2, _0800EF24 @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0xC8
+ bl memcpy
+ b _0800EF96
+ .align 2, 0
+_0800EF20: .4byte gEnemyParty + 2 * 0x64
+_0800EF24: .4byte gBlockRecvBuffer
+_0800EF28:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0800F008
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0800EF44 @ =gPlayerParty + 4 * 0x64
+ movs r2, 0xC8
+ bl SendBlock
+ b _0800EF96
+ .align 2, 0
+_0800EF44: .4byte gPlayerParty + 4 * 0x64
+_0800EF48:
+ bl GetBlockReceivedStatus
+ movs r1, 0x3
+ ands r1, r0
+ cmp r1, 0x3
+ bne _0800F008
+ bl ResetBlockReceivedFlags
+ ldr r4, _0800EFA0 @ =gEnemyParty + 4 * 0x64
+ lsls r1, r5, 8
+ ldr r0, _0800EFA4 @ =gBlockRecvBuffer
+ adds r1, r0
+ adds r0, r4, 0
+ movs r2, 0xC8
+ bl memcpy
+ ldr r1, _0800EFA8 @ =0xfffffe70
+ adds r0, r4, r1
+ bl shedinja_something
+ ldr r1, _0800EFAC @ =0xfffffed4
+ adds r0, r4, r1
+ bl shedinja_something
+ adds r0, r4, 0
+ subs r0, 0xC8
+ bl shedinja_something
+ adds r0, r4, 0
+ subs r0, 0x64
+ bl shedinja_something
+ adds r0, r4, 0
+ bl shedinja_something
+ adds r0, r4, 0
+ adds r0, 0x64
+ bl shedinja_something
+_0800EF96:
+ ldr r1, _0800EFB0 @ =gUnknown_02024D1E
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0800F008
+ .align 2, 0
+_0800EFA0: .4byte gEnemyParty + 4 * 0x64
+_0800EFA4: .4byte gBlockRecvBuffer
+_0800EFA8: .4byte 0xfffffe70
+_0800EFAC: .4byte 0xfffffed4
+_0800EFB0: .4byte gUnknown_02024D1E
+_0800EFB4:
+ bl sub_800B950
+ ldr r0, _0800EFC8 @ =gUnknown_02024D1E
+ ldrb r1, [r0]
+ adds r1, 0x1
+ movs r2, 0
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ strb r2, [r0, 0x2]
+ b _0800F008
+ .align 2, 0
+_0800EFC8: .4byte gUnknown_02024D1E
+_0800EFCC:
+ ldr r0, _0800F010 @ =gUnknown_02024D1F
+ adds r1, r0, 0x1
+ bl battle_load_something
+ lsls r0, 24
+ cmp r0, 0
+ beq _0800F008
+ ldr r2, _0800F014 @ =gUnknown_030042D0
+ ldr r1, _0800F018 @ =gMain
+ ldr r0, [r1]
+ str r0, [r2]
+ ldr r0, _0800F01C @ =sub_8010824
+ str r0, [r1]
+ ldr r0, _0800F020 @ =sub_800F808
+ bl SetMainCallback2
+ ldr r3, _0800F024 @ =gUnknown_020239F8
+ ldrh r2, [r3]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _0800F008
+ ldr r1, _0800F028 @ =gTrainerBattleOpponent
+ movs r4, 0x80
+ lsls r4, 4
+ adds r0, r4, 0
+ strh r0, [r1]
+ movs r0, 0x20
+ orrs r0, r2
+ strh r0, [r3]
+_0800F008:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800F010: .4byte gUnknown_02024D1F
+_0800F014: .4byte gUnknown_030042D0
+_0800F018: .4byte gMain
+_0800F01C: .4byte sub_8010824
+_0800F020: .4byte sub_800F808
+_0800F024: .4byte gUnknown_020239F8
+_0800F028: .4byte gTrainerBattleOpponent
+ thumb_func_end sub_800EC9C
+
+ thumb_func_start sub_800F02C
+sub_800F02C: @ 800F02C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0
+ mov r8, r0
+ ldr r7, _0800F0F8 @ =gUnknown_02023A04
+ mov r10, r7
+_0800F03E:
+ mov r1, r8
+ lsls r6, r1, 5
+ movs r0, 0x64
+ mov r4, r8
+ muls r4, r0
+ ldr r0, _0800F0FC @ =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ movs r1, 0x4
+ negs r1, r1
+ add r1, r10
+ mov r9, r1
+ adds r5, r6, r1
+ strh r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ strh r0, [r5, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x2
+ adds r2, r7, 0
+ bl GetMonData
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ strb r0, [r5, 0xF]
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r5, 0x10]
+ adds r0, r4, 0
+ movs r1, 0x3A
+ bl GetMonData
+ strh r0, [r5, 0x12]
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ mov r1, r10
+ adds r1, 0x10
+ adds r6, r1
+ str r0, [r6]
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ str r0, [r7, 0x14]
+ adds r0, r4, 0
+ bl GetMonGender
+ strb r0, [r5, 0x1C]
+ adds r0, r7, 0
+ bl StripExtCtrlCodes
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl GetMonData
+ strb r0, [r5, 0x1D]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0800F0D4
+ adds r0, r7, 0
+ movs r1, 0
+ bl sub_814A518
+_0800F0D4:
+ adds r7, 0x20
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x2
+ ble _0800F03E
+ ldr r0, _0800F100 @ =0x02000000
+ mov r1, r9
+ movs r2, 0x60
+ bl memcpy
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800F0F8: .4byte gUnknown_02023A04
+_0800F0FC: .4byte gPlayerParty
+_0800F100: .4byte 0x02000000
+ thumb_func_end sub_800F02C
+
+ thumb_func_start sub_800F104
+sub_800F104: @ 800F104
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r4, _0800F148 @ =0x02000000
+ ldr r1, _0800F14C @ =0x000160cb
+ adds r0, r4, r1
+ strb r6, [r0]
+ ldr r2, _0800F150 @ =0x000160c4
+ adds r2, r4
+ mov r9, r2
+ ldr r0, _0800F154 @ =0x000160c2
+ adds r0, r4
+ mov r8, r0
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ ldr r5, _0800F158 @ =gUnknown_02024D1E
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ beq _0800F1A0
+ cmp r0, 0x1
+ bgt _0800F15C
+ cmp r0, 0
+ beq _0800F168
+ b _0800F27A
+ .align 2, 0
+_0800F148: .4byte 0x02000000
+_0800F14C: .4byte 0x000160cb
+_0800F150: .4byte 0x000160c4
+_0800F154: .4byte 0x000160c2
+_0800F158: .4byte gUnknown_02024D1E
+_0800F15C:
+ cmp r0, 0x2
+ beq _0800F240
+ cmp r0, 0x3
+ bne _0800F166
+ b _0800F25C
+_0800F166:
+ b _0800F27A
+_0800F168:
+ ldr r0, _0800F19C @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0800F172
+ b _0800F27A
+_0800F172:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0800F17E
+ b _0800F27A
+_0800F17E:
+ bl sub_800F02C
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ movs r2, 0x60
+ bl SendBlock
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _0800F27A
+ .align 2, 0
+_0800F19C: .4byte gReceivedRemoteLinkPlayers
+_0800F1A0:
+ bl GetBlockReceivedStatus
+ movs r1, 0xF
+ ands r1, r0
+ cmp r1, 0xF
+ bne _0800F27A
+ bl ResetBlockReceivedFlags
+ movs r4, 0
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r5, r0, 2
+ movs r7, 0
+_0800F1BA:
+ cmp r4, r6
+ beq _0800F1FA
+ ldr r2, _0800F1DC @ =gLinkPlayers
+ adds r0, r7, r2
+ ldrh r1, [r0, 0x18]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0800F1E0
+ adds r0, r5, r2
+ ldrh r1, [r0, 0x18]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0800F1EC
+ b _0800F1FA
+ .align 2, 0
+_0800F1DC: .4byte gLinkPlayers
+_0800F1E0:
+ adds r0, r5, r2
+ ldrh r1, [r0, 0x18]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0800F1FA
+_0800F1EC:
+ lsls r1, r4, 8
+ ldr r0, _0800F228 @ =gBlockRecvBuffer
+ adds r1, r0
+ ldr r0, _0800F22C @ =gUnknown_02023A00
+ movs r2, 0x60
+ bl memcpy
+_0800F1FA:
+ adds r7, 0x1C
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0800F1BA
+ ldr r1, _0800F230 @ =gUnknown_02024D1E
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r1, _0800F234 @ =gMain
+ ldr r0, [r1, 0x8]
+ mov r2, r9
+ str r0, [r2]
+ ldr r0, _0800F238 @ =gUnknown_020239F8
+ ldrh r0, [r0]
+ mov r2, r8
+ strh r0, [r2]
+ ldr r0, _0800F23C @ =sub_800F104
+ str r0, [r1, 0x8]
+ movs r0, 0x5
+ movs r1, 0
+ bl OpenPartyMenu
+ b _0800F27A
+ .align 2, 0
+_0800F228: .4byte gBlockRecvBuffer
+_0800F22C: .4byte gUnknown_02023A00
+_0800F230: .4byte gUnknown_02024D1E
+_0800F234: .4byte gMain
+_0800F238: .4byte gUnknown_020239F8
+_0800F23C: .4byte sub_800F104
+_0800F240:
+ ldr r0, _0800F258 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0800F27A
+ movs r0, 0x3
+ strb r0, [r5]
+ bl sub_800832C
+ b _0800F27A
+ .align 2, 0
+_0800F258: .4byte gPaletteFade
+_0800F25C:
+ ldr r0, _0800F288 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0800F27A
+ ldr r1, _0800F28C @ =gUnknown_020239F8
+ mov r2, r8
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldr r1, _0800F290 @ =gMain
+ mov r2, r9
+ ldr r0, [r2]
+ str r0, [r1, 0x8]
+ ldr r0, _0800F294 @ =sub_800E7F8
+ bl SetMainCallback2
+_0800F27A:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800F288: .4byte gReceivedRemoteLinkPlayers
+_0800F28C: .4byte gUnknown_020239F8
+_0800F290: .4byte gMain
+_0800F294: .4byte sub_800E7F8
+ thumb_func_end sub_800F104
+
+ thumb_func_start sub_800F298
+sub_800F298: @ 800F298
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0800F2D0 @ =0x02000000
+ ldr r1, _0800F2D4 @ =0x000160cb
+ adds r0, r1
+ strb r6, [r0]
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ ldr r0, _0800F2D8 @ =gUnknown_02024D1E
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bls _0800F2C4
+ b _0800F7E0
+_0800F2C4:
+ lsls r0, 2
+ ldr r1, _0800F2DC @ =_0800F2E0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800F2D0: .4byte 0x02000000
+_0800F2D4: .4byte 0x000160cb
+_0800F2D8: .4byte gUnknown_02024D1E
+_0800F2DC: .4byte _0800F2E0
+ .align 2, 0
+_0800F2E0:
+ .4byte _0800F300
+ .4byte _0800F340
+ .4byte _0800F4DE
+ .4byte _0800F504
+ .4byte _0800F5F8
+ .4byte _0800F61C
+ .4byte _0800F78C
+ .4byte _0800F7A4
+_0800F300:
+ ldr r0, _0800F338 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0800F30A
+ b _0800F7E0
+_0800F30A:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0800F316
+ b _0800F7E0
+_0800F316:
+ ldr r4, _0800F33C @ =0x02000000
+ movs r0, 0x1
+ strb r0, [r4]
+ strb r0, [r4, 0x1]
+ bl sub_800E9EC
+ bl sub_800EAAC
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ movs r2, 0x20
+ bl SendBlock
+ b _0800F770
+ .align 2, 0
+_0800F338: .4byte gReceivedRemoteLinkPlayers
+_0800F33C: .4byte 0x02000000
+_0800F340:
+ bl GetBlockReceivedStatus
+ movs r1, 0xF
+ ands r1, r0
+ cmp r1, 0xF
+ beq _0800F34E
+ b _0800F7E0
+_0800F34E:
+ bl ResetBlockReceivedFlags
+ movs r4, 0
+ ldr r0, _0800F36C @ =gBlockRecvBuffer
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ cmp r1, r0
+ bne _0800F380
+ cmp r6, 0
+ bne _0800F374
+ ldr r0, _0800F370 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r2, 0xC
+ b _0800F37A
+ .align 2, 0
+_0800F36C: .4byte gBlockRecvBuffer
+_0800F370: .4byte gUnknown_020239F8
+_0800F374:
+ ldr r0, _0800F3B0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r2, 0x8
+_0800F37A:
+ orrs r1, r2
+ strh r1, [r0]
+ adds r4, 0x1
+_0800F380:
+ cmp r4, 0
+ bne _0800F41C
+ movs r2, 0
+ ldr r1, _0800F3B4 @ =gBlockRecvBuffer
+ adds r5, r1, 0
+ movs r3, 0x80
+ lsls r3, 1
+_0800F38E:
+ adds r1, r3
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _0800F39E
+ ldrh r0, [r5]
+ ldrh r7, [r1]
+ cmp r0, r7
+ beq _0800F38E
+_0800F39E:
+ cmp r2, 0x4
+ bne _0800F3C4
+ cmp r6, 0
+ bne _0800F3B8
+ ldr r0, _0800F3B0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r2, 0xC
+ b _0800F3BE
+ .align 2, 0
+_0800F3B0: .4byte gUnknown_020239F8
+_0800F3B4: .4byte gBlockRecvBuffer
+_0800F3B8:
+ ldr r0, _0800F408 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r2, 0x8
+_0800F3BE:
+ orrs r1, r2
+ strh r1, [r0]
+ adds r4, 0x1
+_0800F3C4:
+ cmp r4, 0
+ bne _0800F41C
+ ldr r0, _0800F40C @ =gBlockRecvBuffer
+ ldrh r2, [r0]
+ ldr r1, _0800F410 @ =0x00000101
+ adds r3, r0, 0
+ ldr r5, _0800F408 @ =gUnknown_020239F8
+ cmp r2, r1
+ beq _0800F3F6
+_0800F3D6:
+ lsls r0, r4, 8
+ adds r0, r3
+ ldrh r0, [r0]
+ ldr r1, _0800F410 @ =0x00000101
+ cmp r0, r1
+ bls _0800F3E6
+ cmp r4, r6
+ bne _0800F3FE
+_0800F3E6:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _0800F3FE
+ lsls r0, r4, 8
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, r1
+ bne _0800F3D6
+_0800F3F6:
+ cmp r4, r6
+ beq _0800F3D6
+ cmp r4, r6
+ bge _0800F3D6
+_0800F3FE:
+ cmp r4, 0x4
+ bne _0800F414
+ ldrh r0, [r5]
+ movs r1, 0xC
+ b _0800F418
+ .align 2, 0
+_0800F408: .4byte gUnknown_020239F8
+_0800F40C: .4byte gBlockRecvBuffer
+_0800F410: .4byte 0x00000101
+_0800F414:
+ ldrh r0, [r5]
+ movs r1, 0x8
+_0800F418:
+ orrs r0, r1
+ strh r0, [r5]
+_0800F41C:
+ bl sub_800EB08
+ ldr r0, _0800F474 @ =0x0201d000
+ ldr r1, _0800F478 @ =gPlayerParty
+ movs r2, 0x96
+ lsls r2, 1
+ bl memcpy
+ ldr r0, _0800F47C @ =sub_800DE30
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0800F480 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ movs r0, 0x87
+ lsls r0, 1
+ strh r0, [r1, 0xA]
+ movs r0, 0x5A
+ strh r0, [r1, 0xC]
+ strh r2, [r1, 0x12]
+ strh r2, [r1, 0xE]
+ strh r2, [r1, 0x10]
+ adds r2, r1, 0
+ ldr r0, _0800F484 @ =gBlockRecvBuffer
+ adds r3, r0, 0x2
+ ldr r6, _0800F488 @ =gLinkPlayers
+ movs r5, 0x3F
+ movs r7, 0x80
+ lsls r7, 1
+ movs r4, 0x3
+_0800F464:
+ ldrh r0, [r6, 0x18]
+ cmp r0, 0x1
+ beq _0800F49E
+ cmp r0, 0x1
+ bgt _0800F48C
+ cmp r0, 0
+ beq _0800F496
+ b _0800F4C4
+ .align 2, 0
+_0800F474: .4byte 0x0201d000
+_0800F478: .4byte gPlayerParty
+_0800F47C: .4byte sub_800DE30
+_0800F480: .4byte gTasks
+_0800F484: .4byte gBlockRecvBuffer
+_0800F488: .4byte gLinkPlayers
+_0800F48C:
+ cmp r0, 0x2
+ beq _0800F4A6
+ cmp r0, 0x3
+ beq _0800F4B6
+ b _0800F4C4
+_0800F496:
+ ldrh r0, [r3]
+ adds r1, r5, 0
+ ands r1, r0
+ b _0800F4AE
+_0800F49E:
+ ldrh r0, [r3]
+ adds r1, r5, 0
+ ands r1, r0
+ b _0800F4BE
+_0800F4A6:
+ ldrh r0, [r3]
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r1, 6
+_0800F4AE:
+ ldrh r0, [r2, 0xE]
+ orrs r1, r0
+ strh r1, [r2, 0xE]
+ b _0800F4C4
+_0800F4B6:
+ ldrh r0, [r3]
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r1, 6
+_0800F4BE:
+ ldrh r0, [r2, 0x10]
+ orrs r1, r0
+ strh r1, [r2, 0x10]
+_0800F4C4:
+ adds r3, r7
+ adds r6, 0x1C
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0800F464
+ bl ZeroPlayerPartyMons
+ bl ZeroEnemyPartyMons
+ ldr r1, _0800F4FC @ =gUnknown_02024D1E
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0800F4DE:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0800F4EA
+ b _0800F7E0
+_0800F4EA:
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0800F500 @ =0x0201d000
+ movs r2, 0xC8
+ bl SendBlock
+ b _0800F770
+ .align 2, 0
+_0800F4FC: .4byte gUnknown_02024D1E
+_0800F500: .4byte 0x0201d000
+_0800F504:
+ bl GetBlockReceivedStatus
+ movs r1, 0xF
+ ands r1, r0
+ cmp r1, 0xF
+ beq _0800F512
+ b _0800F7E0
+_0800F512:
+ bl ResetBlockReceivedFlags
+ movs r4, 0
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 2
+ mov r8, r0
+ ldr r5, _0800F53C @ =gBlockRecvBuffer
+ movs r7, 0
+_0800F524:
+ cmp r4, r6
+ bne _0800F558
+ ldr r0, _0800F540 @ =gLinkPlayers
+ adds r0, r7, r0
+ ldrh r0, [r0, 0x18]
+ cmp r0, 0x2
+ bgt _0800F544
+ cmp r0, 0x1
+ bge _0800F550
+ cmp r0, 0
+ beq _0800F548
+ b _0800F5E2
+ .align 2, 0
+_0800F53C: .4byte gBlockRecvBuffer
+_0800F540: .4byte gLinkPlayers
+_0800F544:
+ cmp r0, 0x3
+ bne _0800F5E2
+_0800F548:
+ ldr r0, _0800F54C @ =gPlayerParty
+ b _0800F5C8
+ .align 2, 0
+_0800F54C: .4byte gPlayerParty
+_0800F550:
+ ldr r0, _0800F554 @ =gPlayerParty + 3 * 0x64
+ b _0800F5C8
+ .align 2, 0
+_0800F554: .4byte gPlayerParty + 3 * 0x64
+_0800F558:
+ ldr r2, _0800F578 @ =gLinkPlayers
+ adds r0, r7, r2
+ ldrh r1, [r0, 0x18]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0800F57C
+ mov r1, r8
+ adds r0, r1, r2
+ ldrh r1, [r0, 0x18]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0800F58A
+ b _0800F5B0
+ .align 2, 0
+_0800F578: .4byte gLinkPlayers
+_0800F57C:
+ mov r1, r8
+ adds r0, r1, r2
+ ldrh r1, [r0, 0x18]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0800F5B0
+_0800F58A:
+ adds r0, r7, r2
+ ldrh r2, [r0, 0x18]
+ cmp r2, 0x2
+ bgt _0800F59C
+ cmp r2, 0x1
+ bge _0800F5A8
+ cmp r2, 0
+ beq _0800F5A0
+ b _0800F5E2
+_0800F59C:
+ cmp r2, 0x3
+ bne _0800F5E2
+_0800F5A0:
+ ldr r0, _0800F5A4 @ =gPlayerParty
+ b _0800F5C8
+ .align 2, 0
+_0800F5A4: .4byte gPlayerParty
+_0800F5A8:
+ ldr r0, _0800F5AC @ =gPlayerParty + 3 * 0x64
+ b _0800F5C8
+ .align 2, 0
+_0800F5AC: .4byte gPlayerParty + 3 * 0x64
+_0800F5B0:
+ adds r0, r7, r2
+ ldrh r2, [r0, 0x18]
+ cmp r2, 0x2
+ bgt _0800F5C2
+ cmp r2, 0x1
+ bge _0800F5D8
+ cmp r2, 0
+ beq _0800F5C6
+ b _0800F5E2
+_0800F5C2:
+ cmp r2, 0x3
+ bne _0800F5E2
+_0800F5C6:
+ ldr r0, _0800F5D4 @ =gEnemyParty
+_0800F5C8:
+ adds r1, r5, 0
+ movs r2, 0xC8
+ bl memcpy
+ b _0800F5E2
+ .align 2, 0
+_0800F5D4: .4byte gEnemyParty
+_0800F5D8:
+ ldr r0, _0800F5F4 @ =gEnemyParty + 3 * 0x64
+ adds r1, r5, 0
+ movs r2, 0xC8
+ bl memcpy
+_0800F5E2:
+ movs r0, 0x80
+ lsls r0, 1
+ adds r5, r0
+ adds r7, 0x1C
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0800F524
+ b _0800F770
+ .align 2, 0
+_0800F5F4: .4byte gEnemyParty + 3 * 0x64
+_0800F5F8:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0800F604
+ b _0800F7E0
+_0800F604:
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0800F618 @ =0x0201d0c8
+ movs r2, 0x64
+ bl SendBlock
+ b _0800F770
+ .align 2, 0
+_0800F618: .4byte 0x0201d0c8
+_0800F61C:
+ bl GetBlockReceivedStatus
+ movs r1, 0xF
+ ands r1, r0
+ cmp r1, 0xF
+ beq _0800F62A
+ b _0800F7E0
+_0800F62A:
+ bl ResetBlockReceivedFlags
+ movs r4, 0
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 2
+ mov r8, r0
+ ldr r5, _0800F654 @ =gBlockRecvBuffer
+ movs r7, 0
+_0800F63C:
+ cmp r4, r6
+ bne _0800F670
+ ldr r0, _0800F658 @ =gLinkPlayers
+ adds r0, r7, r0
+ ldrh r0, [r0, 0x18]
+ cmp r0, 0x2
+ bgt _0800F65C
+ cmp r0, 0x1
+ bge _0800F668
+ cmp r0, 0
+ beq _0800F660
+ b _0800F6FA
+ .align 2, 0
+_0800F654: .4byte gBlockRecvBuffer
+_0800F658: .4byte gLinkPlayers
+_0800F65C:
+ cmp r0, 0x3
+ bne _0800F6FA
+_0800F660:
+ ldr r0, _0800F664 @ =gPlayerParty + 2 * 0x64
+ b _0800F6E0
+ .align 2, 0
+_0800F664: .4byte gPlayerParty + 2 * 0x64
+_0800F668:
+ ldr r0, _0800F66C @ =gPlayerParty + 5 * 0x64
+ b _0800F6E0
+ .align 2, 0
+_0800F66C: .4byte gPlayerParty + 5 * 0x64
+_0800F670:
+ ldr r2, _0800F690 @ =gLinkPlayers
+ adds r0, r7, r2
+ ldrh r1, [r0, 0x18]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0800F694
+ mov r1, r8
+ adds r0, r1, r2
+ ldrh r1, [r0, 0x18]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0800F6A2
+ b _0800F6C8
+ .align 2, 0
+_0800F690: .4byte gLinkPlayers
+_0800F694:
+ mov r1, r8
+ adds r0, r1, r2
+ ldrh r1, [r0, 0x18]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0800F6C8
+_0800F6A2:
+ adds r0, r7, r2
+ ldrh r2, [r0, 0x18]
+ cmp r2, 0x2
+ bgt _0800F6B4
+ cmp r2, 0x1
+ bge _0800F6C0
+ cmp r2, 0
+ beq _0800F6B8
+ b _0800F6FA
+_0800F6B4:
+ cmp r2, 0x3
+ bne _0800F6FA
+_0800F6B8:
+ ldr r0, _0800F6BC @ =gPlayerParty + 2 * 0x64
+ b _0800F6E0
+ .align 2, 0
+_0800F6BC: .4byte gPlayerParty + 2 * 0x64
+_0800F6C0:
+ ldr r0, _0800F6C4 @ =gPlayerParty + 5 * 0x64
+ b _0800F6E0
+ .align 2, 0
+_0800F6C4: .4byte gPlayerParty + 5 * 0x64
+_0800F6C8:
+ adds r0, r7, r2
+ ldrh r2, [r0, 0x18]
+ cmp r2, 0x2
+ bgt _0800F6DA
+ cmp r2, 0x1
+ bge _0800F6F0
+ cmp r2, 0
+ beq _0800F6DE
+ b _0800F6FA
+_0800F6DA:
+ cmp r2, 0x3
+ bne _0800F6FA
+_0800F6DE:
+ ldr r0, _0800F6EC @ =gEnemyParty + 2 * 0x64
+_0800F6E0:
+ adds r1, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ b _0800F6FA
+ .align 2, 0
+_0800F6EC: .4byte gEnemyParty + 2 * 0x64
+_0800F6F0:
+ ldr r0, _0800F77C @ =gEnemyParty + 5 * 0x64
+ adds r1, r5, 0
+ movs r2, 0x64
+ bl memcpy
+_0800F6FA:
+ movs r0, 0x80
+ lsls r0, 1
+ adds r5, r0
+ adds r7, 0x1C
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0800F63C
+ ldr r4, _0800F780 @ =gPlayerParty
+ adds r0, r4, 0
+ bl shedinja_something
+ adds r0, r4, 0
+ adds r0, 0x64
+ bl shedinja_something
+ adds r0, r4, 0
+ adds r0, 0xC8
+ bl shedinja_something
+ movs r1, 0x96
+ lsls r1, 1
+ adds r0, r4, r1
+ bl shedinja_something
+ movs r7, 0xC8
+ lsls r7, 1
+ adds r0, r4, r7
+ bl shedinja_something
+ movs r1, 0xFA
+ lsls r1, 1
+ adds r0, r4, r1
+ bl shedinja_something
+ ldr r4, _0800F784 @ =gEnemyParty
+ adds r0, r4, 0
+ bl shedinja_something
+ adds r0, r4, 0
+ adds r0, 0x64
+ bl shedinja_something
+ adds r0, r4, 0
+ adds r0, 0xC8
+ bl shedinja_something
+ subs r7, 0x64
+ adds r0, r4, r7
+ bl shedinja_something
+ movs r1, 0xC8
+ lsls r1, 1
+ adds r0, r4, r1
+ bl shedinja_something
+ adds r7, 0xC8
+ adds r0, r4, r7
+ bl shedinja_something
+_0800F770:
+ ldr r1, _0800F788 @ =gUnknown_02024D1E
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0800F7E0
+ .align 2, 0
+_0800F77C: .4byte gEnemyParty + 5 * 0x64
+_0800F780: .4byte gPlayerParty
+_0800F784: .4byte gEnemyParty
+_0800F788: .4byte gUnknown_02024D1E
+_0800F78C:
+ bl sub_800B950
+ ldr r0, _0800F7A0 @ =gUnknown_02024D1E
+ ldrb r1, [r0]
+ adds r1, 0x1
+ movs r2, 0
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ strb r2, [r0, 0x2]
+ b _0800F7E0
+ .align 2, 0
+_0800F7A0: .4byte gUnknown_02024D1E
+_0800F7A4:
+ ldr r0, _0800F7EC @ =gUnknown_02024D1F
+ adds r1, r0, 0x1
+ bl battle_load_something
+ lsls r0, 24
+ cmp r0, 0
+ beq _0800F7E0
+ ldr r2, _0800F7F0 @ =gUnknown_030042D0
+ ldr r1, _0800F7F4 @ =gMain
+ ldr r0, [r1]
+ str r0, [r2]
+ ldr r0, _0800F7F8 @ =sub_8010824
+ str r0, [r1]
+ ldr r0, _0800F7FC @ =sub_800F808
+ bl SetMainCallback2
+ ldr r3, _0800F800 @ =gUnknown_020239F8
+ ldrh r2, [r3]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _0800F7E0
+ ldr r1, _0800F804 @ =gTrainerBattleOpponent
+ movs r4, 0x80
+ lsls r4, 4
+ adds r0, r4, 0
+ strh r0, [r1]
+ movs r0, 0x20
+ orrs r0, r2
+ strh r0, [r3]
+_0800F7E0:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800F7EC: .4byte gUnknown_02024D1F
+_0800F7F0: .4byte gUnknown_030042D0
+_0800F7F4: .4byte gMain
+_0800F7F8: .4byte sub_8010824
+_0800F7FC: .4byte sub_800F808
+_0800F800: .4byte gUnknown_020239F8
+_0800F804: .4byte gTrainerBattleOpponent
+ thumb_func_end sub_800F298
+
+ thumb_func_start sub_800F808
+sub_800F808: @ 800F808
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ ldr r0, _0800F824 @ =gUnknown_03004210
+ bl sub_800374C
+ bl UpdatePaletteFade
+ bl RunTasks
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800F824: .4byte gUnknown_03004210
+ thumb_func_end sub_800F808
+
+ thumb_func_start sub_800F828
+sub_800F828: @ 800F828
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldr r1, _0800F834 @ =sub_800F838
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_0800F834: .4byte sub_800F838
+ thumb_func_end sub_800F828
+
+ thumb_func_start sub_800F838
+sub_800F838: @ 800F838
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ ldr r5, _0800F850 @ =0x02000000
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ cmp r1, 0x1
+ beq _0800F86C
+ cmp r1, 0x1
+ bgt _0800F854
+ cmp r1, 0
+ beq _0800F85A
+ b _0800F8DC
+ .align 2, 0
+_0800F850: .4byte 0x02000000
+_0800F854:
+ cmp r1, 0x2
+ beq _0800F8C8
+ b _0800F8DC
+_0800F85A:
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ strh r1, [r3, 0x30]
+ ldr r0, _0800F8C4 @ =0x00000281
+ strh r0, [r3, 0x32]
+ strh r1, [r3, 0x34]
+ movs r0, 0x1
+ strh r0, [r3, 0x36]
+_0800F86C:
+ ldrh r0, [r3, 0x36]
+ subs r0, 0x1
+ strh r0, [r3, 0x36]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0800F8DC
+ movs r0, 0x2
+ strh r0, [r3, 0x36]
+ movs r4, 0x30
+ ldrsh r2, [r3, r4]
+ movs r0, 0x34
+ ldrsh r1, [r3, r0]
+ lsls r1, 5
+ adds r2, r1
+ movs r4, 0x32
+ ldrsh r0, [r3, r4]
+ subs r0, r1
+ movs r4, 0x3D
+ lsls r0, 1
+ adds r0, r5
+ lsls r2, 1
+ adds r2, r5
+ movs r1, 0x1C
+_0800F89A:
+ strh r4, [r2]
+ strh r4, [r0]
+ adds r0, 0x4
+ adds r2, 0x4
+ subs r1, 0x2
+ cmp r1, 0
+ bge _0800F89A
+ ldrh r0, [r3, 0x34]
+ adds r0, 0x1
+ strh r0, [r3, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _0800F8DC
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ movs r0, 0x20
+ strh r0, [r3, 0x30]
+ b _0800F8DC
+ .align 2, 0
+_0800F8C4: .4byte 0x00000281
+_0800F8C8:
+ ldrh r0, [r3, 0x30]
+ subs r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _0800F8DC
+ ldr r0, _0800F8E4 @ =sub_800E7C4
+ bl SetMainCallback2
+_0800F8DC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800F8E4: .4byte sub_800E7C4
+ thumb_func_end sub_800F838
+
+ thumb_func_start sub_800F8E8
+sub_800F8E8: @ 800F8E8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ str r0, [sp, 0x10]
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x14]
+ movs r0, 0
+ mov r9, r0
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ bne _0800F90C
+ movs r0, 0
+ b _0800FCB4
+_0800F90C:
+ ldr r0, _0800F93C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _0800F940 @ =0x00000908
+ ands r0, r1
+ ldr r1, [sp, 0x14]
+ lsls r1, 2
+ str r1, [sp, 0x20]
+ cmp r0, 0x8
+ beq _0800F920
+ b _0800FCA4
+_0800F920:
+ bl ZeroEnemyPartyMons
+ movs r2, 0
+ str r2, [sp, 0x18]
+ ldr r2, _0800F944 @ =gTrainers
+ ldr r1, [sp, 0x20]
+ ldr r3, [sp, 0x14]
+ adds r0, r1, r3
+ lsls r0, 3
+ adds r0, r2
+ adds r0, 0x20
+ ldr r4, [sp, 0x18]
+ b _0800FC86
+ .align 2, 0
+_0800F93C: .4byte gUnknown_020239F8
+_0800F940: .4byte 0x00000908
+_0800F944: .4byte gTrainers
+_0800F948:
+ ldr r3, [sp, 0x14]
+ adds r0, r1, r3
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrb r0, [r1, 0x18]
+ cmp r0, 0x1
+ bne _0800F95C
+ movs r4, 0x80
+ mov r10, r4
+ b _0800F96E
+_0800F95C:
+ ldrb r1, [r1, 0x2]
+ movs r0, 0x80
+ ands r0, r1
+ movs r1, 0x88
+ mov r10, r1
+ cmp r0, 0
+ beq _0800F96E
+ movs r2, 0x78
+ mov r10, r2
+_0800F96E:
+ movs r6, 0
+ ldr r0, _0800F9C4 @ =gTrainers
+ ldr r2, [sp, 0x20]
+ ldr r3, [sp, 0x14]
+ adds r1, r2, r3
+ lsls r1, 3
+ adds r3, r0, 0x4
+ adds r1, r3
+ ldrb r1, [r1]
+ adds r4, r0, 0
+ ldr r0, [sp, 0x18]
+ adds r0, 0x1
+ str r0, [sp, 0x1C]
+ cmp r1, 0xFF
+ beq _0800F9A6
+_0800F98C:
+ ldr r0, [sp, 0x14]
+ adds r1, r2, r0
+ lsls r1, 3
+ adds r0, r6, r1
+ adds r0, r3
+ ldrb r0, [r0]
+ add r9, r0
+ adds r6, 0x1
+ adds r1, r6, r1
+ adds r1, r3
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _0800F98C
+_0800F9A6:
+ adds r2, r4, 0
+ ldr r1, [sp, 0x20]
+ ldr r3, [sp, 0x14]
+ adds r0, r1, r3
+ lsls r1, r0, 3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0800FA5C
+ cmp r0, 0x1
+ bgt _0800F9C8
+ cmp r0, 0
+ beq _0800F9D6
+ b _0800FC74
+ .align 2, 0
+_0800F9C4: .4byte gTrainers
+_0800F9C8:
+ cmp r0, 0x2
+ bne _0800F9CE
+ b _0800FB1C
+_0800F9CE:
+ cmp r0, 0x3
+ bne _0800F9D4
+ b _0800FBB0
+_0800F9D4:
+ b _0800FC74
+_0800F9D6:
+ adds r0, r2, 0
+ adds r0, 0x24
+ adds r0, r1, r0
+ ldr r4, [r0]
+ movs r6, 0
+ ldr r0, [sp, 0x18]
+ lsls r2, r0, 3
+ adds r0, r2, r4
+ ldrh r1, [r0, 0x4]
+ movs r0, 0xB
+ muls r0, r1
+ ldr r1, _0800FA58 @ =gSpeciesNames
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r5, r2, 0
+ cmp r0, 0xFF
+ beq _0800FA18
+ adds r3, r1, 0
+ movs r7, 0xB
+_0800F9FC:
+ adds r0, r2, r4
+ ldrh r0, [r0, 0x4]
+ adds r1, r0, 0
+ muls r1, r7
+ adds r0, r6, r1
+ adds r0, r3
+ ldrb r0, [r0]
+ add r9, r0
+ adds r6, 0x1
+ adds r1, r6, r1
+ adds r1, r3
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _0800F9FC
+_0800FA18:
+ mov r2, r9
+ lsls r0, r2, 8
+ add r10, r0
+ adds r4, r5, r4
+ ldrh r1, [r4]
+ lsls r0, r1, 5
+ subs r0, r1
+ movs r1, 0xFF
+ bl __divsi3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r3, [sp, 0x18]
+ movs r1, 0x64
+ adds r0, r3, 0
+ muls r0, r1
+ ldr r2, [sp, 0x10]
+ adds r0, r2, r0
+ ldrh r1, [r4, 0x4]
+ ldrb r2, [r4, 0x2]
+ movs r3, 0x1
+ str r3, [sp]
+ mov r3, r10
+ str r3, [sp, 0x4]
+ movs r3, 0x2
+ str r3, [sp, 0x8]
+ movs r3, 0
+ str r3, [sp, 0xC]
+ adds r3, r6, 0
+ bl CreateMon
+ b _0800FC74
+ .align 2, 0
+_0800FA58: .4byte gSpeciesNames
+_0800FA5C:
+ adds r0, r2, 0
+ adds r0, 0x24
+ adds r0, r1, r0
+ ldr r7, [r0]
+ movs r6, 0
+ ldr r4, [sp, 0x18]
+ lsls r2, r4, 4
+ adds r0, r2, r7
+ ldrh r1, [r0, 0x4]
+ movs r0, 0xB
+ muls r0, r1
+ ldr r1, _0800FB14 @ =gSpeciesNames
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r8, r2
+ cmp r0, 0xFF
+ beq _0800FA9E
+ adds r3, r1, 0
+ movs r4, 0xB
+_0800FA82:
+ adds r0, r2, r7
+ ldrh r0, [r0, 0x4]
+ adds r1, r0, 0
+ muls r1, r4
+ adds r0, r6, r1
+ adds r0, r3
+ ldrb r0, [r0]
+ add r9, r0
+ adds r6, 0x1
+ adds r1, r6, r1
+ adds r1, r3
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _0800FA82
+_0800FA9E:
+ mov r2, r9
+ lsls r0, r2, 8
+ add r10, r0
+ mov r3, r8
+ adds r4, r3, r7
+ ldrh r1, [r4]
+ lsls r0, r1, 5
+ subs r0, r1
+ movs r1, 0xFF
+ bl __divsi3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, [sp, 0x18]
+ movs r1, 0x64
+ adds r5, r0, 0
+ muls r5, r1
+ ldr r2, [sp, 0x10]
+ adds r5, r2, r5
+ ldrh r1, [r4, 0x4]
+ ldrb r2, [r4, 0x2]
+ movs r0, 0x1
+ str r0, [sp]
+ mov r3, r10
+ str r3, [sp, 0x4]
+ movs r0, 0x2
+ str r0, [sp, 0x8]
+ 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, 0x6
+ adds r4, r7, r0
+_0800FAE8:
+ 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, r0
+ lsls r2, 2
+ ldr r0, _0800FB18 @ =gBattleMoves + 0x4 @ PP offset
+ adds r2, r0
+ adds r0, r5, 0
+ bl SetMonData
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0800FAE8
+ b _0800FC74
+ .align 2, 0
+_0800FB14: .4byte gSpeciesNames
+_0800FB18: .4byte gBattleMoves + 0x4 @ PP offset
+_0800FB1C:
+ adds r0, r2, 0
+ adds r0, 0x24
+ adds r0, r1, r0
+ ldr r4, [r0]
+ movs r6, 0
+ ldr r0, [sp, 0x18]
+ lsls r2, r0, 3
+ adds r0, r2, r4
+ ldrh r1, [r0, 0x4]
+ movs r0, 0xB
+ muls r0, r1
+ ldr r1, _0800FBAC @ =gSpeciesNames
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r5, r2, 0
+ cmp r0, 0xFF
+ beq _0800FB5E
+ adds r3, r1, 0
+ movs r7, 0xB
+_0800FB42:
+ adds r0, r2, r4
+ ldrh r0, [r0, 0x4]
+ adds r1, r0, 0
+ muls r1, r7
+ adds r0, r6, r1
+ adds r0, r3
+ ldrb r0, [r0]
+ add r9, r0
+ adds r6, 0x1
+ adds r1, r6, r1
+ adds r1, r3
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _0800FB42
+_0800FB5E:
+ mov r2, r9
+ lsls r0, r2, 8
+ add r10, r0
+ adds r5, r4
+ ldrh r1, [r5]
+ lsls r0, r1, 5
+ subs r0, r1
+ movs r1, 0xFF
+ bl __divsi3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r3, [sp, 0x18]
+ movs r0, 0x64
+ adds r4, r3, 0
+ muls r4, r0
+ ldr r1, [sp, 0x10]
+ adds r4, r1, r4
+ ldrh r1, [r5, 0x4]
+ ldrb r2, [r5, 0x2]
+ movs r0, 0x1
+ str r0, [sp]
+ mov r3, r10
+ str r3, [sp, 0x4]
+ movs r0, 0x2
+ str r0, [sp, 0x8]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ adds r0, r4, 0
+ adds r3, r6, 0
+ bl CreateMon
+ adds r5, 0x6
+ adds r0, r4, 0
+ movs r1, 0xC
+ adds r2, r5, 0
+ bl SetMonData
+ b _0800FC74
+ .align 2, 0
+_0800FBAC: .4byte gSpeciesNames
+_0800FBB0:
+ adds r0, r4, 0
+ adds r0, 0x24
+ adds r0, r1, r0
+ ldr r7, [r0]
+ movs r6, 0
+ ldr r4, [sp, 0x18]
+ lsls r2, r4, 4
+ adds r0, r2, r7
+ ldrh r1, [r0, 0x4]
+ movs r0, 0xB
+ muls r0, r1
+ ldr r1, _0800FCC4 @ =gSpeciesNames
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r8, r2
+ cmp r0, 0xFF
+ beq _0800FBF2
+ adds r3, r1, 0
+ movs r4, 0xB
+_0800FBD6:
+ adds r0, r2, r7
+ ldrh r0, [r0, 0x4]
+ adds r1, r0, 0
+ muls r1, r4
+ adds r0, r6, r1
+ adds r0, r3
+ ldrb r0, [r0]
+ add r9, r0
+ adds r6, 0x1
+ adds r1, r6, r1
+ adds r1, r3
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _0800FBD6
+_0800FBF2:
+ mov r2, r9
+ lsls r0, r2, 8
+ add r10, r0
+ mov r3, r8
+ adds r5, r3, r7
+ ldrh r1, [r5]
+ lsls r0, r1, 5
+ subs r0, r1
+ movs r1, 0xFF
+ bl __divsi3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, [sp, 0x18]
+ movs r1, 0x64
+ adds r4, r0, 0
+ muls r4, r1
+ ldr r2, [sp, 0x10]
+ adds r4, r2, r4
+ ldrh r1, [r5, 0x4]
+ ldrb r2, [r5, 0x2]
+ movs r0, 0x1
+ str r0, [sp]
+ mov r3, r10
+ str r3, [sp, 0x4]
+ movs r0, 0x2
+ str r0, [sp, 0x8]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ adds r0, r4, 0
+ adds r3, r6, 0
+ bl CreateMon
+ adds r5, 0x6
+ 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, 0x8
+ adds r4, r7, r0
+_0800FC4A:
+ 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, r0
+ lsls r2, 2
+ ldr r0, _0800FCC8 @ =gBattleMoves + 0x4 @ PP offset
+ adds r2, r0
+ adds r0, r5, 0
+ bl SetMonData
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0800FC4A
+_0800FC74:
+ ldr r4, [sp, 0x1C]
+ str r4, [sp, 0x18]
+ ldr r2, _0800FCCC @ =gTrainers
+ ldr r1, [sp, 0x20]
+ ldr r3, [sp, 0x14]
+ adds r0, r1, r3
+ lsls r0, 3
+ adds r0, r2
+ adds r0, 0x20
+_0800FC86:
+ ldrb r0, [r0]
+ cmp r4, r0
+ bge _0800FC8E
+ b _0800F948
+_0800FC8E:
+ ldr r2, _0800FCD0 @ =gUnknown_020239F8
+ ldr r1, _0800FCCC @ =gTrainers
+ ldr r4, [sp, 0x20]
+ ldr r3, [sp, 0x14]
+ adds r0, r4, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x18]
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+_0800FCA4:
+ ldr r0, _0800FCCC @ =gTrainers
+ ldr r4, [sp, 0x20]
+ ldr r2, [sp, 0x14]
+ adds r1, r4, r2
+ lsls r1, 3
+ adds r1, r0
+ adds r1, 0x20
+ ldrb r0, [r1]
+_0800FCB4:
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0800FCC4: .4byte gSpeciesNames
+_0800FCC8: .4byte gBattleMoves + 0x4 @ PP offset
+_0800FCCC: .4byte gTrainers
+_0800FCD0: .4byte gUnknown_020239F8
+ thumb_func_end sub_800F8E8
+
+ thumb_func_start sub_800FCD4
+sub_800FCD4: @ 800FCD4
+ push {lr}
+ ldr r0, _0800FCF4 @ =REG_VCOUNT
+ ldrh r0, [r0]
+ subs r0, 0x6F
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x30
+ bhi _0800FCEE
+ ldr r1, _0800FCF8 @ =REG_BG0CNT
+ movs r2, 0x98
+ lsls r2, 8
+ adds r0, r2, 0
+ strh r0, [r1]
+_0800FCEE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800FCF4: .4byte REG_VCOUNT
+_0800FCF8: .4byte REG_BG0CNT
+ thumb_func_end sub_800FCD4
+
+ thumb_func_start sub_800FCFC
+sub_800FCFC: @ 800FCFC
+ push {lr}
+ bl Random
+ ldr r1, _0800FD78 @ =REG_BG0HOFS
+ ldr r0, _0800FD7C @ =gUnknown_030042A4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0800FD80 @ =gUnknown_030042A0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0800FD84 @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0800FD88 @ =gUnknown_030041B4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0800FD8C @ =gUnknown_03004288
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0800FD90 @ =gUnknown_03004280
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0800FD94 @ =gUnknown_030041B0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0800FD98 @ =gUnknown_030041B8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x22
+ ldr r0, _0800FD9C @ =gUnknown_030042C4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r0, _0800FDA0 @ =gUnknown_03004240
+ ldrh r0, [r0]
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r0, _0800FDA4 @ =gUnknown_03004200
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r0, _0800FDA8 @ =gUnknown_03004244
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800FD78: .4byte REG_BG0HOFS
+_0800FD7C: .4byte gUnknown_030042A4
+_0800FD80: .4byte gUnknown_030042A0
+_0800FD84: .4byte gUnknown_030042C0
+_0800FD88: .4byte gUnknown_030041B4
+_0800FD8C: .4byte gUnknown_03004288
+_0800FD90: .4byte gUnknown_03004280
+_0800FD94: .4byte gUnknown_030041B0
+_0800FD98: .4byte gUnknown_030041B8
+_0800FD9C: .4byte gUnknown_030042C4
+_0800FDA0: .4byte gUnknown_03004240
+_0800FDA4: .4byte gUnknown_03004200
+_0800FDA8: .4byte gUnknown_03004244
+ thumb_func_end sub_800FCFC
+
+ thumb_func_start nullsub_36
+nullsub_36: @ 800FDAC
+ bx lr
+ thumb_func_end nullsub_36
+
+ thumb_func_start sub_800FDB0
+sub_800FDB0: @ 800FDB0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _0800FDD0
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ lsrs r0, 8
+ ldrh r1, [r5, 0x30]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ b _0800FDE2
+_0800FDD0:
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ asrs r0, 8
+ ldrh r1, [r5, 0x30]
+ subs r1, r0
+ strh r1, [r5, 0x20]
+_0800FDE2:
+ movs r1, 0xC0
+ lsls r1, 1
+ adds r0, r1, 0
+ ldrh r1, [r5, 0x32]
+ adds 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 _0800FE16
+ ldr r4, _0800FE1C @ =0x00002710
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ adds r0, r5, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r5, 0
+ bl DestroySprite
+_0800FE16:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800FE1C: .4byte 0x00002710
+ thumb_func_end sub_800FDB0
+
+ thumb_func_start sub_800FE20
+sub_800FE20: @ 800FE20
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r0, _0800FE3C @ =sub_800FDB0
+ str r0, [r4, 0x1C]
+ movs r0, 0x68
+ bl PlaySE
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800FE3C: .4byte sub_800FDB0
+ thumb_func_end sub_800FE20
+
+ thumb_func_start sub_800FE40
+sub_800FE40: @ 800FE40
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ ldr r0, _0800FE88 @ =0x02000000
+ ldr r2, _0800FE8C @ =0x000160cb
+ adds r0, r2
+ ldrb r2, [r0]
+ ldr r0, _0800FE90 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0800FEB4
+ ldr r1, _0800FE94 @ =gLinkPlayers
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x18]
+ cmp r0, 0x1
+ beq _0800FEA0
+ cmp r0, 0x1
+ bgt _0800FE98
+ cmp r0, 0
+ beq _0800FEB4
+ b _0800FEBC
+ .align 2, 0
+_0800FE88: .4byte 0x02000000
+_0800FE8C: .4byte 0x000160cb
+_0800FE90: .4byte gUnknown_020239F8
+_0800FE94: .4byte gLinkPlayers
+_0800FE98:
+ cmp r0, 0x2
+ beq _0800FEB4
+ cmp r0, 0x3
+ bne _0800FEBC
+_0800FEA0:
+ ldr r1, _0800FEAC @ =gEnemyParty
+ str r1, [sp, 0x4]
+ ldr r2, _0800FEB0 @ =gPlayerParty
+ str r2, [sp, 0x8]
+ b _0800FEBC
+ .align 2, 0
+_0800FEAC: .4byte gEnemyParty
+_0800FEB0: .4byte gPlayerParty
+_0800FEB4:
+ ldr r3, _08010008 @ =gPlayerParty
+ str r3, [sp, 0x4]
+ ldr r0, _0801000C @ =gEnemyParty
+ str r0, [sp, 0x8]
+_0800FEBC:
+ movs r7, 0
+ movs r1, 0
+ mov r8, r1
+ ldr r2, [sp]
+ lsls r2, 2
+ str r2, [sp, 0xC]
+ movs r3, 0xCE
+ lsls r3, 1
+ mov r10, r3
+ mov r9, r1
+_0800FED0:
+ movs r0, 0x64
+ mov r4, r8
+ muls r4, r0
+ ldr r0, [sp, 0x4]
+ adds r4, r0, r4
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ adds r1, r0, 0
+ cmp r5, 0
+ beq _0800FF40
+ cmp r5, r10
+ beq _0800FF14
+ cmp r6, 0
+ beq _0800FF14
+ cmp r1, 0
+ bne _0800FF14
+ movs r0, 0x1
+ mov r2, r9
+ lsls r0, r2
+ orrs r7, r0
+_0800FF14:
+ cmp r5, 0
+ beq _0800FF40
+ cmp r6, 0
+ beq _0800FF2C
+ cmp r5, r10
+ beq _0800FF24
+ cmp r1, 0
+ beq _0800FF2C
+_0800FF24:
+ movs r0, 0x2
+ mov r3, r9
+ lsls r0, r3
+ orrs r7, r0
+_0800FF2C:
+ cmp r5, 0
+ beq _0800FF40
+ cmp r5, r10
+ beq _0800FF40
+ cmp r6, 0
+ bne _0800FF40
+ movs r0, 0x3
+ mov r1, r9
+ lsls r0, r1
+ orrs r7, r0
+_0800FF40:
+ movs r2, 0x2
+ add r9, r2
+ movs r3, 0x1
+ add r8, r3
+ mov r0, r8
+ cmp r0, 0x5
+ ble _0800FED0
+ ldr r1, _08010010 @ =gTasks
+ ldr r2, [sp, 0xC]
+ ldr r3, [sp]
+ adds r0, r2, r3
+ lsls r0, 3
+ adds r0, r1
+ strh r7, [r0, 0xE]
+ movs r7, 0
+ movs r0, 0
+ mov r8, r0
+ movs r1, 0xCE
+ lsls r1, 1
+ mov r10, r1
+ mov r9, r0
+_0800FF6A:
+ movs r0, 0x64
+ mov r4, r8
+ muls r4, r0
+ ldr r2, [sp, 0x8]
+ adds r4, r2, r4
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ adds r1, r0, 0
+ cmp r5, 0
+ beq _0800FFDA
+ cmp r5, r10
+ beq _0800FFAE
+ cmp r6, 0
+ beq _0800FFAE
+ cmp r1, 0
+ bne _0800FFAE
+ movs r0, 0x1
+ mov r3, r9
+ lsls r0, r3
+ orrs r7, r0
+_0800FFAE:
+ cmp r5, 0
+ beq _0800FFDA
+ cmp r6, 0
+ beq _0800FFC6
+ cmp r5, r10
+ beq _0800FFBE
+ cmp r1, 0
+ beq _0800FFC6
+_0800FFBE:
+ movs r0, 0x2
+ mov r1, r9
+ lsls r0, r1
+ orrs r7, r0
+_0800FFC6:
+ cmp r5, 0
+ beq _0800FFDA
+ cmp r5, r10
+ beq _0800FFDA
+ cmp r6, 0
+ bne _0800FFDA
+ movs r0, 0x3
+ mov r2, r9
+ lsls r0, r2
+ orrs r7, r0
+_0800FFDA:
+ movs r3, 0x2
+ add r9, r3
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x5
+ ble _0800FF6A
+ ldr r1, _08010010 @ =gTasks
+ ldr r2, [sp, 0xC]
+ ldr r3, [sp]
+ adds r0, r2, r3
+ lsls r0, 3
+ adds r0, r1
+ strh r7, [r0, 0x10]
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010008: .4byte gPlayerParty
+_0801000C: .4byte gEnemyParty
+_08010010: .4byte gTasks
+ thumb_func_end sub_800FE40
+
+ thumb_func_start c2_8011A1C
+c2_8011A1C: @ 8010014
+ push {r4,r5,lr}
+ sub sp, 0x4
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0xC0
+ lsls r1, 19
+ ldr r2, _08010144 @ =0x05006000
+ mov r0, sp
+ bl CpuSet
+ ldr r0, _08010148 @ =REG_MOSAIC
+ strh r4, [r0]
+ subs r0, 0xC
+ movs r2, 0xF0
+ strh r2, [r0]
+ adds r0, 0x4
+ ldr r3, _0801014C @ =0x00005051
+ adds r1, r3, 0
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ ldr r0, _08010150 @ =gUnknown_030042C4
+ strh r2, [r0]
+ ldr r0, _08010154 @ =gUnknown_03004240
+ strh r1, [r0]
+ bl dp12_8087EA4
+ ldr r0, _08010158 @ =gUnknown_03004DE0
+ movs r3, 0xF0
+ movs r4, 0xF0
+ lsls r4, 3
+ adds r2, r0, r4
+ movs r1, 0x4F
+_08010066:
+ strh r3, [r0]
+ strh r3, [r2]
+ adds r2, 0x2
+ adds r0, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _08010066
+ movs r1, 0x50
+ ldr r5, _0801015C @ =gWindowConfig_81E6C58
+ ldr r0, _08010158 @ =gUnknown_03004DE0
+ ldr r3, _08010160 @ =0x0000ff10
+ movs r4, 0x82
+ lsls r4, 4
+ adds r2, r0, r4
+ adds r0, 0xA0
+_08010084:
+ strh r3, [r0]
+ strh r3, [r2]
+ adds r2, 0x2
+ adds r0, 0x2
+ adds r1, 0x1
+ cmp r1, 0x9F
+ ble _08010084
+ adds r0, r5, 0
+ bl SetUpWindowConfig
+ bl ResetPaletteFade
+ ldr r0, _08010164 @ =gUnknown_030042A4
+ movs r4, 0
+ strh r4, [r0]
+ ldr r0, _08010168 @ =gUnknown_030042A0
+ strh r4, [r0]
+ ldr r0, _0801016C @ =gUnknown_030042C0
+ strh r4, [r0]
+ ldr r0, _08010170 @ =gUnknown_030041B4
+ strh r4, [r0]
+ ldr r0, _08010174 @ =gUnknown_03004288
+ strh r4, [r0]
+ ldr r0, _08010178 @ =gUnknown_03004280
+ strh r4, [r0]
+ ldr r0, _0801017C @ =gUnknown_030041B0
+ strh r4, [r0]
+ ldr r0, _08010180 @ =gUnknown_030041B8
+ strh r4, [r0]
+ ldr r0, _08010184 @ =gUnknown_03004210
+ adds r1, r5, 0
+ bl InitWindowFromConfig
+ ldr r0, _08010188 @ =gUnknown_030041D0
+ ldr r1, _0801018C @ =gWindowConfig_81E71D0
+ bl InitWindowFromConfig
+ ldr r0, _08010190 @ =gUnknown_03004250
+ ldr r1, _08010194 @ =gWindowConfig_81E71EC
+ bl InitWindowFromConfig
+ bl sub_800D6D4
+ ldr r0, _08010198 @ =gUnknown_08D004E0
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadCompressedPalette
+ bl sub_800D74C
+ bl ResetSpriteData
+ bl ResetTasks
+ bl sub_800E23C
+ ldr r1, _0801019C @ =REG_WINOUT
+ movs r0, 0x37
+ strh r0, [r1]
+ bl FreeAllSpritePalettes
+ ldr r1, _080101A0 @ =gReservedSpritePaletteCount
+ movs r0, 0x4
+ strb r0, [r1]
+ ldr r0, _080101A4 @ =sub_800FCFC
+ bl SetVBlankCallback
+ ldr r0, _080101A8 @ =sub_800DE30
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080101AC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x87
+ lsls r2, 1
+ strh r2, [r1, 0xA]
+ movs r2, 0x5A
+ strh r2, [r1, 0xC]
+ movs r2, 0x1
+ strh r2, [r1, 0x12]
+ bl sub_800FE40
+ ldr r0, _080101B0 @ =sub_80101B8
+ bl SetMainCallback2
+ ldr r0, _080101B4 @ =gUnknown_02024D1E
+ strb r4, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010144: .4byte 0x05006000
+_08010148: .4byte REG_MOSAIC
+_0801014C: .4byte 0x00005051
+_08010150: .4byte gUnknown_030042C4
+_08010154: .4byte gUnknown_03004240
+_08010158: .4byte gUnknown_03004DE0
+_0801015C: .4byte gWindowConfig_81E6C58
+_08010160: .4byte 0x0000ff10
+_08010164: .4byte gUnknown_030042A4
+_08010168: .4byte gUnknown_030042A0
+_0801016C: .4byte gUnknown_030042C0
+_08010170: .4byte gUnknown_030041B4
+_08010174: .4byte gUnknown_03004288
+_08010178: .4byte gUnknown_03004280
+_0801017C: .4byte gUnknown_030041B0
+_08010180: .4byte gUnknown_030041B8
+_08010184: .4byte gUnknown_03004210
+_08010188: .4byte gUnknown_030041D0
+_0801018C: .4byte gWindowConfig_81E71D0
+_08010190: .4byte gUnknown_03004250
+_08010194: .4byte gWindowConfig_81E71EC
+_08010198: .4byte gUnknown_08D004E0
+_0801019C: .4byte REG_WINOUT
+_080101A0: .4byte gReservedSpritePaletteCount
+_080101A4: .4byte sub_800FCFC
+_080101A8: .4byte sub_800DE30
+_080101AC: .4byte gTasks
+_080101B0: .4byte sub_80101B8
+_080101B4: .4byte gUnknown_02024D1E
+ thumb_func_end c2_8011A1C
+
+ thumb_func_start sub_80101B8
+sub_80101B8: @ 80101B8
+ push {lr}
+ bl c2_081284E0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ bl RunTasks
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80101B8
+
+ thumb_func_start c2_081284E0
+c2_081284E0: @ 80101D4
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _080101EC @ =gUnknown_02024D1E
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ beq _080101FC
+ cmp r0, 0x1
+ bgt _080101F0
+ cmp r0, 0
+ beq _080101F6
+ b _08010236
+ .align 2, 0
+_080101EC: .4byte gUnknown_02024D1E
+_080101F0:
+ cmp r0, 0x2
+ beq _08010222
+ b _08010236
+_080101F6:
+ movs r0, 0xFF
+ strb r0, [r4, 0x1]
+ b _0801021A
+_080101FC:
+ ldrb r0, [r4, 0x1]
+ subs r0, 0x1
+ strb r0, [r4, 0x1]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08010236
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_0801021A:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _08010236
+_08010222:
+ ldr r0, _08010240 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08010236
+ ldr r0, _08010244 @ =gMain
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+_08010236:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010240: .4byte gPaletteFade
+_08010244: .4byte gMain
+ thumb_func_end c2_081284E0
+
+ thumb_func_start oac_poke_opponent
+oac_poke_opponent: @ 8010248
+ push {lr}
+ sub sp, 0x4
+ ldr r1, _08010270 @ =sub_8010278
+ str r1, [r0, 0x1C]
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ movs r0, 0x80
+ lsls r0, 10
+ ldr r1, _08010274 @ =0x00003def
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0xA
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010270: .4byte sub_8010278
+_08010274: .4byte 0x00003def
+ thumb_func_end oac_poke_opponent
+
+ thumb_func_start sub_8010278
+sub_8010278: @ 8010278
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080102A4 @ =gUnknown_02024DE8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080102A0
+ ldrh r0, [r2, 0x24]
+ adds r0, 0x2
+ strh r0, [r2, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080102A0
+ ldr r0, _080102A8 @ =sub_80102AC
+ str r0, [r2, 0x1C]
+ ldrh r0, [r2, 0x32]
+ movs r1, 0x19
+ bl PlayCry1
+_080102A0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080102A4: .4byte gUnknown_02024DE8
+_080102A8: .4byte sub_80102AC
+ thumb_func_end sub_8010278
+
+ thumb_func_start sub_80102AC
+sub_80102AC: @ 80102AC
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080102F4
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_804777C
+ ldr r1, _080102FC @ =gUnknown_03004340
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldr r0, _08010300 @ =nullsub_37
+ str r0, [r4, 0x1C]
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ movs r0, 0x80
+ lsls r0, 10
+ ldr r1, _08010304 @ =0x00003def
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_080102F4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080102FC: .4byte gUnknown_03004340
+_08010300: .4byte nullsub_37
+_08010304: .4byte 0x00003def
+ thumb_func_end sub_80102AC
+
+ thumb_func_start nullsub_37
+nullsub_37: @ 8010308
+ bx lr
+ thumb_func_end nullsub_37
+
+ thumb_func_start unref_sub_801030C
+unref_sub_801030C: @ 801030C
+ movs r1, 0x6
+ strh r1, [r0, 0x34]
+ movs r1, 0x1
+ strh r1, [r0, 0x36]
+ ldr r1, _0801031C @ =sub_8010320
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_0801031C: .4byte sub_8010320
+ thumb_func_end unref_sub_801030C
+
+ thumb_func_start sub_8010320
+sub_8010320: @ 8010320
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x36]
+ subs r0, 0x1
+ strh r0, [r3, 0x36]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08010374
+ movs r0, 0x8
+ strh r0, [r3, 0x36]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r4, 0x5
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x34]
+ subs r0, 0x1
+ strh r0, [r3, 0x34]
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ bne _08010374
+ ldrb r1, [r1]
+ adds r0, r4, 0
+ ands r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldr r0, _0801037C @ =nullsub_37
+ str r0, [r3, 0x1C]
+ ldr r0, _08010380 @ =gUnknown_03004284
+ str r2, [r0]
+_08010374:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801037C: .4byte nullsub_37
+_08010380: .4byte gUnknown_03004284
+ thumb_func_end sub_8010320
+
+ thumb_func_start sub_8010384
+sub_8010384: @ 8010384
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r9, r0
+ ldrh r0, [r0, 0x2E]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, r6, 2
+ ldr r0, _080103A4 @ =0x02017800
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ beq _080103A8
+ adds r4, r0, 0
+ b _080103AC
+ .align 2, 0
+_080103A4: .4byte 0x02017800
+_080103A8:
+ mov r0, r9
+ ldrh r4, [r0, 0x32]
+_080103AC:
+ ldr r1, _08010414 @ =gUnknown_02024A6A
+ lsls r0, r6, 1
+ adds r5, r0, r1
+ ldrh r0, [r5]
+ movs r1, 0x64
+ mov r8, r1
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r7, _08010418 @ =gEnemyParty
+ adds r0, r7
+ movs r1, 0
+ bl GetMonData
+ cmp r4, SPECIES_UNOWN
+ bne _08010430
+ ldrh r0, [r5]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ movs r1, 0
+ bl GetMonData
+ adds r2, r0, 0
+ movs r0, 0xC0
+ lsls r0, 18
+ ands r0, r2
+ lsrs r0, 18
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r2
+ lsrs r1, 12
+ orrs r0, r1
+ movs r1, 0xC0
+ lsls r1, 2
+ ands r1, r2
+ lsrs r1, 6
+ orrs r0, r1
+ movs r1, 0x3
+ ands r1, r2
+ orrs r0, r1
+ movs r1, 0x1C
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ bne _0801041C
+ movs r0, SPECIES_UNOWN
+ b _08010426
+ .align 2, 0
+_08010414: .4byte gUnknown_02024A6A
+_08010418: .4byte gEnemyParty
+_0801041C:
+ movs r1, 0xCE
+ lsls r1, 1
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+_08010426:
+ ldr r1, _0801042C @ =gMonFrontPicCoords
+ lsls r0, 2
+ b _08010468
+ .align 2, 0
+_0801042C: .4byte gMonFrontPicCoords
+_08010430:
+ ldr r0, _08010448 @ =SPECIES_CASTFORM
+ cmp r4, r0 @ Check if pokemon species is Castform
+ bne _08010454
+ ldr r0, _0801044C @ =gUnknownCastformCoords_0837F598
+ ldr r1, _08010450 @ =gUnknown_02024E84
+ adds r1, r6, r1
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ b _0801046C
+ .align 2, 0
+_08010448: .4byte SPECIES_CASTFORM
+_0801044C: .4byte gUnknownCastformCoords_0837F598
+_08010450: .4byte gUnknown_02024E84
+_08010454:
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ bls _08010464
+ ldr r0, _08010460 @ =gMonFrontPicCoords
+ b _0801046A
+ .align 2, 0
+_08010460: .4byte gMonFrontPicCoords
+_08010464:
+ ldr r1, _0801048C @ =gMonFrontPicCoords
+ lsls r0, r4, 2
+_08010468:
+ adds r0, r1
+_0801046A:
+ ldrb r0, [r0, 0x1]
+_0801046C:
+ lsrs r1, r0, 3
+ movs r0, 0x8
+ subs r0, r1
+ mov r1, r9
+ strh r0, [r1, 0x34]
+ movs r0, 0x1
+ strh r0, [r1, 0x36]
+ ldr r0, _08010490 @ =sub_8010494
+ str r0, [r1, 0x1C]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801048C: .4byte gMonFrontPicCoords
+_08010490: .4byte sub_8010494
+ thumb_func_end sub_8010384
+
+ thumb_func_start sub_8010494
+sub_8010494: @ 8010494
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x36]
+ subs r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08010510
+ movs r0, 0x2
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x8
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ subs r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080104C8
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ b _08010510
+_080104C8:
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_per_side_status
+ ldr r1, _08010518 @ =gUnknown_081FAF4C
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r1
+ ldr r2, _0801051C @ =gUnknown_02024E84
+ movs r3, 0x2E
+ ldrsh r1, [r4, r3]
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 11
+ ldr r2, [r0]
+ adds r2, r1
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 8
+ adds r2, r0
+ movs r1, 0
+ movs r0, 0xFF
+_080104F6:
+ strb r1, [r2]
+ adds r2, 0x1
+ subs r0, 0x1
+ cmp r0, 0
+ bge _080104F6
+ ldr r0, _0801051C @ =gUnknown_02024E84
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ adds r1, r0
+ ldrb r1, [r1]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+_08010510:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010518: .4byte gUnknown_081FAF4C
+_0801051C: .4byte gUnknown_02024E84
+ thumb_func_end sub_8010494
+
+ thumb_func_start sub_8010520
+sub_8010520: @ 8010520
+ movs r1, 0x8
+ strh r1, [r0, 0x34]
+ adds r1, r0, 0
+ adds r1, 0x3E
+ ldrb r1, [r1]
+ lsls r1, 29
+ lsrs r1, 31
+ strh r1, [r0, 0x36]
+ ldr r1, _08010538 @ =sub_801053C
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_08010538: .4byte sub_801053C
+ thumb_func_end sub_8010520
+
+ thumb_func_start sub_801053C
+sub_801053C: @ 801053C
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x34]
+ subs r0, 0x1
+ strh r0, [r3, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0801056E
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ movs r0, 0x8
+ strh r0, [r3, 0x34]
+_0801056E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801053C
+
+ thumb_func_start sub_8010574
+sub_8010574: @ 8010574
+ movs r1, 0x3E
+ adds r1, r0
+ mov r12, r1
+ movs r1, 0x1
+ ldrh r2, [r0, 0x36]
+ ands r2, r1
+ lsls r2, 2
+ mov r1, r12
+ ldrb r3, [r1]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ mov r2, r12
+ strb r1, [r2]
+ movs r1, 0
+ strh r1, [r0, 0x36]
+ ldr r1, _0801059C @ =nullsub_37
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_0801059C: .4byte nullsub_37
+ thumb_func_end sub_8010574
+
+ thumb_func_start sub_80105A0
+sub_80105A0: @ 80105A0
+ ldr r1, _080105A8 @ =oac_poke_ally_
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080105A8: .4byte oac_poke_ally_
+ thumb_func_end sub_80105A0
+
+ thumb_func_start oac_poke_ally_
+oac_poke_ally_: @ 80105AC
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080105D4 @ =gUnknown_02024DE8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080105D0
+ ldrh r0, [r2, 0x24]
+ subs r0, 0x2
+ strh r0, [r2, 0x24]
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ bne _080105D0
+ ldr r0, _080105D8 @ =nullsub_86
+ str r0, [r2, 0x1C]
+ strh r1, [r2, 0x30]
+_080105D0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080105D4: .4byte gUnknown_02024DE8
+_080105D8: .4byte nullsub_86
+ thumb_func_end oac_poke_ally_
+
+ thumb_func_start sub_80105DC
+sub_80105DC: @ 80105DC
+ ldr r1, _080105E4 @ =nullsub_86
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080105E4: .4byte nullsub_86
+ thumb_func_end sub_80105DC
+
+ thumb_func_start nullsub_86
+nullsub_86: @ 80105E8
+ bx lr
+ thumb_func_end nullsub_86
+
+ thumb_func_start sub_80105EC
+sub_80105EC: @ 80105EC
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _08010610 @ =gUnknown_02024DE8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801060C
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x26]
+ adds r0, r1
+ strh r0, [r2, 0x26]
+_0801060C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010610: .4byte gUnknown_02024DE8
+ thumb_func_end sub_80105EC
+
+ thumb_func_start dp11b_obj_instanciate
+dp11b_obj_instanciate: @ 8010614
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r10, r3
+ cmp r1, 0
+ beq _0801064C
+ lsls r2, r4, 1
+ adds r0, r2, r4
+ lsls r0, 2
+ ldr r1, _08010648 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ b _0801065A
+ .align 2, 0
+_08010648: .4byte 0x02017810
+_0801064C:
+ lsls r2, r4, 1
+ adds r0, r2, r4
+ lsls r0, 2
+ ldr r1, _08010698 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+_0801065A:
+ ands r0, r1
+ adds r6, r2, 0
+ cmp r0, 0
+ bne _080106FA
+ ldr r0, _0801069C @ =objc_dp11b_pingpong
+ bl object_new_hidden_with_callback
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, r8
+ cmp r0, 0x1
+ bne _080106A8
+ ldr r0, _080106A0 @ =gUnknown_03004340
+ adds r0, r4, r0
+ ldrb r7, [r0]
+ adds r0, r6, r4
+ lsls r0, 2
+ ldr r1, _08010698 @ =0x02017810
+ adds r0, r1
+ strb r5, [r0, 0x2]
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r2, _080106A4 @ =gSprites
+ lsls r3, r5, 4
+ adds r0, r3, r5
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x80
+ b _080106CC
+ .align 2, 0
+_08010698: .4byte 0x02017810
+_0801069C: .4byte objc_dp11b_pingpong
+_080106A0: .4byte gUnknown_03004340
+_080106A4: .4byte gSprites
+_080106A8:
+ ldr r0, _08010708 @ =gUnknown_02024BE0
+ adds r0, r4, r0
+ ldrb r7, [r0]
+ adds r0, r6, r4
+ lsls r0, 2
+ ldr r1, _0801070C @ =0x02017810
+ adds r0, r1
+ strb r5, [r0, 0x3]
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r2, _08010710 @ =gSprites
+ lsls r3, r5, 4
+ adds r0, r3, r5
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0xC0
+_080106CC:
+ strh r1, [r0, 0x2E]
+ adds r4, r2, 0
+ adds r1, r3, r5
+ lsls r1, 2
+ adds r1, r4
+ mov r2, r9
+ lsls r0, r2, 24
+ asrs r0, 24
+ movs r2, 0
+ strh r0, [r1, 0x30]
+ mov r3, r10
+ lsls r0, r3, 24
+ asrs r0, 24
+ strh r0, [r1, 0x32]
+ strh r7, [r1, 0x34]
+ mov r0, r8
+ strh r0, [r1, 0x36]
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ adds r0, r4
+ strh r2, [r0, 0x24]
+ strh r2, [r0, 0x26]
+_080106FA:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010708: .4byte gUnknown_02024BE0
+_0801070C: .4byte 0x02017810
+_08010710: .4byte gSprites
+ thumb_func_end dp11b_obj_instanciate
+
+ thumb_func_start dp11b_obj_free
+dp11b_obj_free: @ 8010714
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x1
+ bne _0801075C
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _08010754 @ =0x02017810
+ adds r5, r0, r1
+ ldrb r1, [r5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080107A0
+ ldr r2, _08010758 @ =gSprites
+ ldrb r1, [r5, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x34]
+ lsls r1, 24
+ lsrs r4, r1, 24
+ bl DestroySprite
+ ldrb r1, [r5]
+ movs r0, 0x3
+ negs r0, r0
+ b _0801078C
+ .align 2, 0
+_08010754: .4byte 0x02017810
+_08010758: .4byte gSprites
+_0801075C:
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _080107A8 @ =0x02017810
+ adds r5, r0, r1
+ ldrb r1, [r5]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080107A0
+ ldr r2, _080107AC @ =gSprites
+ ldrb r1, [r5, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x34]
+ lsls r1, 24
+ lsrs r4, r1, 24
+ bl DestroySprite
+ ldrb r1, [r5]
+ movs r0, 0x5
+ negs r0, r0
+_0801078C:
+ ands r0, r1
+ strb r0, [r5]
+ ldr r0, _080107AC @ =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0x24]
+ strh r0, [r1, 0x26]
+_080107A0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080107A8: .4byte 0x02017810
+_080107AC: .4byte gSprites
+ thumb_func_end dp11b_obj_free
+
+ thumb_func_start objc_dp11b_pingpong
+objc_dp11b_pingpong: @ 80107B0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x34]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080107C8
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ b _080107CC
+_080107C8:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+_080107CC:
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldr r2, _080107F8 @ =gSprites
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r2
+ ldrh r2, [r4, 0x32]
+ adds r0, r2
+ strh r0, [r1, 0x26]
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x2E]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080107F8: .4byte gSprites
+ thumb_func_end objc_dp11b_pingpong
+
+ thumb_func_start nullsub_41
+nullsub_41: @ 80107FC
+ bx lr
+ thumb_func_end nullsub_41
+
+ thumb_func_start sub_8010800
+sub_8010800: @ 8010800
+ push {lr}
+ bl sub_8010874
+ ldr r1, _08010818 @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r1, 0x1]
+ ldr r1, _0801081C @ =gUnknown_030042D4
+ ldr r0, _08010820 @ =bc_8012FAC
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010818: .4byte gUnknown_02024D1E
+_0801081C: .4byte gUnknown_030042D4
+_08010820: .4byte bc_8012FAC
+ thumb_func_end sub_8010800
+
+ thumb_func_start sub_8010824
+sub_8010824: @ 8010824
+ push {r4,r5,lr}
+ ldr r0, _08010864 @ =gUnknown_030042D4
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r1, _08010868 @ =gUnknown_02024A60
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _0801086C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801085E
+ ldr r5, _08010870 @ =gUnknown_03004330
+ adds r4, r1, 0
+_08010840:
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r5
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _0801086C @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08010840
+_0801085E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010864: .4byte gUnknown_030042D4
+_08010868: .4byte gUnknown_02024A60
+_0801086C: .4byte gUnknown_02024A68
+_08010870: .4byte gUnknown_03004330
+ thumb_func_end sub_8010824
+
+ thumb_func_start sub_8010874
+sub_8010874: @ 8010874
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0
+ bl sub_801365C
+ bl sub_801377C
+ movs r2, 0
+ movs r3, 0
+ ldr r0, _08010AC8 @ =gUnknown_02024C4C
+ mov r10, r0
+ ldr r1, _08010ACC @ =gUnknown_02024C44
+ mov r9, r1
+ ldr r4, _08010AD0 @ =gUnknown_02024C3C
+ mov r8, r4
+ ldr r0, _08010AD4 @ =gUnknown_02024C34
+ mov r12, r0
+ ldr r4, _08010AD8 @ =gUnknown_02024CA8
+ movs r5, 0
+ ldr r7, _08010ADC @ =gUnknown_02024C2C
+ ldr r6, _08010AE0 @ =gUnknown_02024C54
+_080108A4:
+ ldr r0, _08010AE4 @ =gUnknown_02024C98
+ adds r0, r5, r0
+ str r3, [r0]
+ movs r1, 0
+_080108AC:
+ adds r0, r4, r1
+ strb r3, [r0]
+ adds r1, 0x1
+ cmp r1, 0x1B
+ bls _080108AC
+ movs r0, 0x2
+ strb r0, [r4, 0x16]
+ ldr r1, _08010AE8 @ =gUnknown_02024C70
+ adds r0, r2, r1
+ strb r3, [r0]
+ mov r0, r12
+ strh r3, [r0]
+ mov r1, r8
+ strh r3, [r1]
+ mov r0, r9
+ strh r3, [r0]
+ mov r1, r10
+ strh r3, [r1]
+ ldr r0, _08010AEC @ =gUnknown_02024C5C
+ adds r1, r2, r0
+ movs r0, 0xFF
+ strb r0, [r1]
+ strh r3, [r6]
+ strh r3, [r7]
+ ldr r1, _08010AF0 @ =0x02017100
+ adds r0, r5, r1
+ str r3, [r0]
+ movs r0, 0x2
+ add r10, r0
+ add r9, r0
+ add r8, r0
+ add r12, r0
+ adds r4, 0x1C
+ adds r5, 0x4
+ adds r7, 0x2
+ adds r6, 0x2
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080108A4
+ movs r5, 0
+ ldr r3, _08010AF4 @ =gUnknown_02024C80
+ ldr r4, _08010AF8 @ =gUnknown_02024C7A
+ movs r2, 0x1
+_08010902:
+ strh r5, [r4]
+ movs r1, 0
+_08010906:
+ adds r0, r3, r1
+ strb r5, [r0]
+ adds r1, 0x1
+ cmp r1, 0xB
+ bls _08010906
+ adds r3, 0xC
+ adds r4, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08010902
+ movs r1, 0
+ ldr r2, _08010AFC @ =gUnknown_02024C07
+ strb r1, [r2]
+ ldr r3, _08010B00 @ =gUnknown_02024C08
+ strb r1, [r3]
+ ldr r4, _08010B04 @ =word_2024DB8
+ strh r1, [r4]
+ ldr r1, _08010B08 @ =gUnknown_02024DBC
+ movs r2, 0
+ movs r3, 0
+_0801092E:
+ adds r0, r1, r2
+ strb r3, [r0]
+ adds r2, 0x1
+ cmp r2, 0x2B
+ bls _0801092E
+ movs r0, 0
+ ldr r1, _08010B0C @ =gUnknown_02024C6C
+ str r0, [r1]
+ ldr r2, _08010B10 @ =gUnknown_020239F8
+ ldrh r1, [r2]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0801095C
+ ldr r3, _08010B14 @ =gSaveBlock2
+ ldrb r1, [r3, 0x15]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801095C
+ movs r0, 0x80
+ ldr r4, _08010B0C @ =gUnknown_02024C6C
+ str r0, [r4]
+_0801095C:
+ ldr r1, _08010B14 @ =gSaveBlock2
+ ldrb r0, [r1, 0x15]
+ lsls r0, 30
+ lsrs r0, 31
+ ldr r3, _08010B18 @ =0x02000000
+ ldr r4, _08010B1C @ =0x00016084
+ adds r2, r3, r4
+ movs r1, 0
+ strb r0, [r2]
+ ldr r0, _08010B20 @ =gUnknown_02024C0E
+ strb r1, [r0]
+ ldr r2, _08010B24 @ =gUnknown_02024D26
+ strb r1, [r2]
+ ldr r3, _08010B28 @ =gUnknown_02024A64
+ str r1, [r3]
+ movs r2, 0
+ ldr r4, _08010B2C @ =gUnknown_02024D1A
+ strh r1, [r4]
+ ldr r1, _08010B18 @ =0x02000000
+ ldr r3, _08010B30 @ =0x00017130
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r4, _08010B34 @ =0x00017160
+ adds r0, r1, r4
+ strb r2, [r0]
+ ldr r1, _08010B38 @ =gUnknown_02024D1E
+ movs r2, 0
+ adds r0, r1, 0x7
+_08010994:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _08010994
+ movs r5, 0
+ ldr r0, _08010B3C @ =gUnknown_02024D18
+ strh r5, [r0]
+ movs r0, 0
+ ldr r1, _08010B40 @ =gUnknown_02024BEC
+ str r0, [r1]
+ ldr r2, _08010B44 @ =gUnknown_02024DE8
+ strh r0, [r2]
+ ldr r4, _08010B18 @ =0x02000000
+ ldr r3, _08010B48 @ =0x00016002
+ adds r0, r4, r3
+ strb r5, [r0]
+ ldr r1, _08010B4C @ =0x000160a1
+ adds r0, r4, r1
+ strb r5, [r0]
+ ldr r2, _08010B50 @ =gUnknown_03004324
+ strb r5, [r2]
+ ldr r3, _08010B54 @ =gUnknown_02024C0C
+ strb r5, [r3]
+ subs r1, 0x29
+ adds r0, r4, r1
+ strb r5, [r0]
+ ldr r2, _08010B58 @ =0x00016086
+ adds r0, r4, r2
+ strb r5, [r0]
+ ldr r3, _08010B5C @ =0x00016087
+ adds r0, r4, r3
+ strb r5, [r0]
+ ldr r0, _08010B60 @ =gEnemyParty
+ movs r1, 0xB
+ bl GetMonData
+ ldr r2, _08010B64 @ =gBaseStats
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x8]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08010B68 @ =0x000004fb
+ bl __divsi3
+ ldr r2, _08010B6C @ =0x00016089
+ adds r1, r4, r2
+ strb r0, [r1]
+ ldr r3, _08010B70 @ =0x00016088
+ adds r1, r4, r3
+ movs r0, 0x3
+ strb r0, [r1]
+ ldr r1, _08010B74 @ =0x0001601b
+ adds r0, r4, r1
+ strb r5, [r0]
+ subs r2, 0x33
+ adds r1, r4, r2
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r2, 0
+ movs r1, 0
+_08010A12:
+ ldr r3, _08010B78 @ =0x000160ac
+ adds r0, r2, r3
+ adds r0, r4
+ strb r1, [r0]
+ adds r3, 0x20
+ adds r0, r2, r3
+ adds r0, r4
+ strb r1, [r0]
+ adds r3, 0x1C
+ adds r0, r2, r3
+ adds r0, r4
+ strb r1, [r0]
+ adds r3, 0x8
+ adds r0, r2, r3
+ adds r0, r4
+ strb r1, [r0]
+ adds r3, 0x10
+ adds r0, r2, r3
+ adds r0, r4
+ strb r1, [r0]
+ adds r3, 0x8
+ adds r0, r2, r3
+ adds r0, r4
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _08010A12
+ ldr r4, _08010B18 @ =0x02000000
+ ldr r1, _08010B7C @ =0x000160c8
+ adds r0, r4, r1
+ movs r2, 0
+ movs r1, 0x6
+ strb r1, [r0]
+ subs r3, 0x3F
+ adds r0, r4, r3
+ strb r1, [r0]
+ ldr r1, _08010B80 @ =0x00016113
+ adds r0, r4, r1
+ strb r2, [r0]
+ ldr r3, _08010B84 @ =gUnknown_030042E0
+ movs r1, 0
+ movs r2, 0xA
+ adds r0, r3, 0
+ adds r0, 0x40
+_08010A6A:
+ strb r1, [r0]
+ subs r0, 0x1
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08010A6A
+ movs r1, 0
+ strb r1, [r3, 0x13]
+ strb r1, [r3]
+ strb r1, [r3, 0x1]
+ strb r1, [r3, 0x2]
+ strb r1, [r3, 0x3]
+ strb r1, [r3, 0x4]
+ ldrb r2, [r3, 0x5]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x3
+ negs r2, r2
+ ands r0, r2
+ strb r0, [r3, 0x5]
+ strh r1, [r3, 0x20]
+ strh r1, [r3, 0x22]
+ strh r1, [r3, 0x24]
+ strh r1, [r3, 0x6]
+ strh r1, [r3, 0x26]
+ strh r1, [r3, 0x28]
+ movs r2, 0
+ adds r5, r3, 0
+ adds r5, 0x8
+ movs r4, 0
+ adds r1, r3, 0
+ adds r1, 0x14
+_08010AAA:
+ adds r0, r2, r5
+ strb r4, [r0]
+ strb r4, [r1]
+ strb r4, [r1, 0x16]
+ adds r1, 0x1
+ adds r2, 0x1
+ cmp r2, 0x9
+ ble _08010AAA
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010AC8: .4byte gUnknown_02024C4C
+_08010ACC: .4byte gUnknown_02024C44
+_08010AD0: .4byte gUnknown_02024C3C
+_08010AD4: .4byte gUnknown_02024C34
+_08010AD8: .4byte gUnknown_02024CA8
+_08010ADC: .4byte gUnknown_02024C2C
+_08010AE0: .4byte gUnknown_02024C54
+_08010AE4: .4byte gUnknown_02024C98
+_08010AE8: .4byte gUnknown_02024C70
+_08010AEC: .4byte gUnknown_02024C5C
+_08010AF0: .4byte 0x02017100
+_08010AF4: .4byte gUnknown_02024C80
+_08010AF8: .4byte gUnknown_02024C7A
+_08010AFC: .4byte gUnknown_02024C07
+_08010B00: .4byte gUnknown_02024C08
+_08010B04: .4byte word_2024DB8
+_08010B08: .4byte gUnknown_02024DBC
+_08010B0C: .4byte gUnknown_02024C6C
+_08010B10: .4byte gUnknown_020239F8
+_08010B14: .4byte gSaveBlock2
+_08010B18: .4byte 0x02000000
+_08010B1C: .4byte 0x00016084
+_08010B20: .4byte gUnknown_02024C0E
+_08010B24: .4byte gUnknown_02024D26
+_08010B28: .4byte gUnknown_02024A64
+_08010B2C: .4byte gUnknown_02024D1A
+_08010B30: .4byte 0x00017130
+_08010B34: .4byte 0x00017160
+_08010B38: .4byte gUnknown_02024D1E
+_08010B3C: .4byte gUnknown_02024D18
+_08010B40: .4byte gUnknown_02024BEC
+_08010B44: .4byte gUnknown_02024DE8
+_08010B48: .4byte 0x00016002
+_08010B4C: .4byte 0x000160a1
+_08010B50: .4byte gUnknown_03004324
+_08010B54: .4byte gUnknown_02024C0C
+_08010B58: .4byte 0x00016086
+_08010B5C: .4byte 0x00016087
+_08010B60: .4byte gEnemyParty
+_08010B64: .4byte gBaseStats
+_08010B68: .4byte 0x000004fb
+_08010B6C: .4byte 0x00016089
+_08010B70: .4byte 0x00016088
+_08010B74: .4byte 0x0001601b
+_08010B78: .4byte 0x000160ac
+_08010B7C: .4byte 0x000160c8
+_08010B80: .4byte 0x00016113
+_08010B84: .4byte gUnknown_030042E0
+ thumb_func_end sub_8010874
+
+ thumb_func_start sub_8010B88
+sub_8010B88: @ 8010B88
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ ldr r4, _08010CEC @ =gUnknown_02024CA8
+ ldr r5, _08010CF0 @ =gUnknown_02024A60
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ mov r1, sp
+ adds r0, r4
+ 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 r2, _08010CF4 @ =gBattleMoves
+ ldr r3, _08010CF8 @ =gUnknown_02024BE6
+ ldrh r1, [r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ mov r10, r4
+ adds r7, r5, 0
+ ldr r1, _08010CFC @ =gBattleMons
+ mov r8, r1
+ ldr r2, _08010D00 @ =gUnknown_02024C98
+ mov r12, r2
+ cmp r0, 0x7F
+ beq _08010C66
+ movs r5, 0
+ adds r4, r7, 0
+ movs r3, 0x58
+ mov r2, r8
+ adds r2, 0x18
+ movs r1, 0x6
+_08010BDC:
+ ldrb r0, [r4]
+ muls r0, r3
+ adds r0, r5, r0
+ adds r0, r2
+ strb r1, [r0]
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _08010BDC
+ movs r5, 0
+ ldr r3, _08010D04 @ =gUnknown_02024A68
+ ldrb r3, [r3]
+ cmp r5, r3
+ bge _08010C52
+ ldr r6, _08010D08 @ =gUnknown_02024AD0
+ mov r9, r6
+ ldr r3, _08010CEC @ =gUnknown_02024CA8
+ ldr r4, _08010D00 @ =gUnknown_02024C98
+_08010BFE:
+ movs r0, 0x58
+ muls r0, r5
+ add r0, r9
+ str r0, [sp, 0x20]
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 19
+ ands r0, r1
+ cmp r0, 0
+ beq _08010C24
+ ldrb r0, [r3, 0x14]
+ ldr r2, _08010CF0 @ =gUnknown_02024A60
+ ldrb r2, [r2]
+ cmp r0, r2
+ bne _08010C24
+ ldr r0, _08010D0C @ =0xfbffffff
+ ands r1, r0
+ ldr r6, [sp, 0x20]
+ str r1, [r6]
+_08010C24:
+ ldr r1, [r4]
+ movs r0, 0x18
+ ands r0, r1
+ cmp r0, 0
+ beq _08010C44
+ ldrb r0, [r3, 0x15]
+ ldr r2, _08010CF0 @ =gUnknown_02024A60
+ ldrb r2, [r2]
+ cmp r0, r2
+ bne _08010C44
+ movs r0, 0x19
+ negs r0, r0
+ ands r1, r0
+ str r1, [r4]
+ movs r0, 0
+ strb r0, [r3, 0x15]
+_08010C44:
+ adds r3, 0x1C
+ adds r4, 0x4
+ adds r5, 0x1
+ ldr r6, _08010D04 @ =gUnknown_02024A68
+ ldrb r6, [r6]
+ cmp r5, r6
+ blt _08010BFE
+_08010C52:
+ ldr r1, _08010CF8 @ =gUnknown_02024BE6
+ ldrh r0, [r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _08010CF4 @ =gBattleMoves
+ adds r1, r2
+ ldrb r0, [r1]
+ cmp r0, 0x7F
+ bne _08010D18
+_08010C66:
+ ldrb r1, [r7]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ mov r0, r8
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ ldr r1, _08010D10 @ =0x15100007
+ ands r0, r1
+ str r0, [r2]
+ ldrb r1, [r7]
+ lsls r1, 2
+ add r1, r12
+ ldr r0, [r1]
+ ldr r2, _08010D14 @ =0x0003043f
+ ands r0, r2
+ str r0, [r1]
+ movs r5, 0
+ ldr r3, _08010D04 @ =gUnknown_02024A68
+ ldrb r3, [r3]
+ cmp r5, r3
+ bge _08010D30
+ movs r6, 0
+_08010C96:
+ ldrb r0, [r7]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _08010CD6
+ ldr r1, _08010D00 @ =gUnknown_02024C98
+ lsls r0, r5, 2
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x18
+ ands r0, r1
+ cmp r0, 0
+ beq _08010CD6
+ ldr r0, _08010CEC @ =gUnknown_02024CA8
+ adds r0, r6, r0
+ ldrb r0, [r0, 0x15]
+ ldrb r3, [r7]
+ cmp r0, r3
+ bne _08010CD6
+ movs r0, 0x19
+ negs r0, r0
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ str r1, [r2]
+_08010CD6:
+ adds r6, 0x1C
+ adds r5, 0x1
+ ldr r0, _08010D04 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _08010C96
+ ldr r6, _08010CEC @ =gUnknown_02024CA8
+ mov r10, r6
+ ldr r7, _08010CF0 @ =gUnknown_02024A60
+ b _08010D30
+ .align 2, 0
+_08010CEC: .4byte gUnknown_02024CA8
+_08010CF0: .4byte gUnknown_02024A60
+_08010CF4: .4byte gBattleMoves
+_08010CF8: .4byte gUnknown_02024BE6
+_08010CFC: .4byte gBattleMons
+_08010D00: .4byte gUnknown_02024C98
+_08010D04: .4byte gUnknown_02024A68
+_08010D08: .4byte gUnknown_02024AD0
+_08010D0C: .4byte 0xfbffffff
+_08010D10: .4byte 0x15100007
+_08010D14: .4byte 0x0003043f
+_08010D18:
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ mov r1, r8
+ adds r1, 0x50
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+ ldrb r0, [r7]
+ lsls r0, 2
+ add r0, r12
+ str r1, [r0]
+_08010D30:
+ movs r5, 0
+ ldr r6, _08010EFC @ =0x02000000
+ ldr r0, _08010F00 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r5, r0
+ bge _08010D92
+ ldr r1, _08010F04 @ =gUnknown_02024AD0
+ mov r9, r1
+ ldr r2, _08010F08 @ =gBitTable
+ mov r8, r2
+ ldr r4, _08010F0C @ =gUnknown_02024A60
+ mov r12, r6
+_08010D48:
+ movs r0, 0x58
+ muls r0, r5
+ mov r1, r9
+ adds r3, r0, r1
+ ldrb r0, [r4]
+ lsls r0, 2
+ add r0, r8
+ ldr r0, [r0]
+ lsls r2, r0, 16
+ ldr r1, [r3]
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08010D68
+ bics r1, r2
+ str r1, [r3]
+_08010D68:
+ ldr r1, [r3]
+ movs r0, 0xE0
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _08010D88
+ ldr r2, _08010F10 @ =0x00016020
+ adds r0, r5, r2
+ add r0, r12
+ ldrb r0, [r0]
+ ldrb r2, [r4]
+ cmp r0, r2
+ bne _08010D88
+ ldr r0, _08010F14 @ =0xffff1fff
+ ands r1, r0
+ str r1, [r3]
+_08010D88:
+ adds r5, 0x1
+ ldr r3, _08010F00 @ =gUnknown_02024A68
+ ldrb r3, [r3]
+ cmp r5, r3
+ blt _08010D48
+_08010D92:
+ ldrb r0, [r7]
+ ldr r1, _08010F18 @ =gUnknown_02024E60
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldrb r0, [r7]
+ ldr r2, _08010F1C @ =gUnknown_02024E64
+ adds r0, r2
+ strb r1, [r0]
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ mov r3, r10
+ adds r1, r0, r3
+ movs r5, 0
+ movs r2, 0
+_08010DB4:
+ adds r0, r1, r5
+ strb r2, [r0]
+ adds r5, 0x1
+ cmp r5, 0x1B
+ bls _08010DB4
+ ldr r1, _08010F20 @ =gUnknown_02024BE6
+ ldrh r0, [r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _08010F24 @ =gBattleMoves
+ adds r1, r2
+ ldrb r0, [r1]
+ cmp r0, 0x7F
+ bne _08010E2C
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r10
+ mov r1, sp
+ ldrb r1, [r1, 0xA]
+ strb r1, [r0, 0xA]
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r10
+ mov r1, sp
+ ldrb r1, [r1, 0x15]
+ strb r1, [r0, 0x15]
+ ldrb r0, [r7]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ add r1, r10
+ mov r0, sp
+ ldrb r2, [r0, 0xF]
+ lsls r2, 28
+ movs r4, 0xF
+ lsrs r2, 28
+ ldrb r3, [r1, 0xF]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0xF]
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r10
+ mov r1, sp
+ ldrb r1, [r1, 0xF]
+ lsrs r1, 4
+ lsls r1, 4
+ ldrb r2, [r0, 0xF]
+ ands r4, r2
+ orrs r4, r1
+ strb r4, [r0, 0xF]
+_08010E2C:
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r10
+ movs r3, 0
+ movs r1, 0x2
+ strb r1, [r0, 0x16]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _08010F28 @ =gUnknown_02024C34
+ adds r0, r1
+ movs r2, 0
+ strh r3, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _08010F2C @ =gUnknown_02024C3C
+ adds r0, r1
+ strh r3, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _08010F30 @ =gUnknown_02024C44
+ adds r0, r1
+ strh r3, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _08010F34 @ =gUnknown_02024C4C
+ adds r0, r1
+ strh r3, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _08010F38 @ =gUnknown_02024C2C
+ adds r0, r1
+ strh r3, [r0]
+ ldrb r0, [r7]
+ ldr r1, _08010F3C @ =gUnknown_02024C5C
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _08010F40 @ =0x000160ac
+ adds r0, r1
+ adds r0, r6
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ adds r0, r6
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r1, 0x53
+ adds r0, r1
+ adds r0, r6
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r1, 0x1
+ adds r0, r1
+ adds r0, r6
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r1, 0x1
+ adds r0, r1
+ adds r0, r6
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r1, 0x1
+ adds r0, r1
+ adds r0, r6
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ subs r1, 0x1B
+ adds r0, r1
+ adds r0, r6
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ adds r0, r6
+ strb r2, [r0]
+ ldr r2, _08010F44 @ =0x00017100
+ adds r1, r6, r2
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ str r3, [r0]
+ ldr r6, _08010F20 @ =gUnknown_02024BE6
+ strh r3, [r6]
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010EFC: .4byte 0x02000000
+_08010F00: .4byte gUnknown_02024A68
+_08010F04: .4byte gUnknown_02024AD0
+_08010F08: .4byte gBitTable
+_08010F0C: .4byte gUnknown_02024A60
+_08010F10: .4byte 0x00016020
+_08010F14: .4byte 0xffff1fff
+_08010F18: .4byte gUnknown_02024E60
+_08010F1C: .4byte gUnknown_02024E64
+_08010F20: .4byte gUnknown_02024BE6
+_08010F24: .4byte gBattleMoves
+_08010F28: .4byte gUnknown_02024C34
+_08010F2C: .4byte gUnknown_02024C3C
+_08010F30: .4byte gUnknown_02024C44
+_08010F34: .4byte gUnknown_02024C4C
+_08010F38: .4byte gUnknown_02024C2C
+_08010F3C: .4byte gUnknown_02024C5C
+_08010F40: .4byte 0x000160ac
+_08010F44: .4byte 0x00017100
+ thumb_func_end sub_8010B88
+
+ thumb_func_start sub_8010F48
+sub_8010F48: @ 8010F48
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r4, 0
+ ldr r7, _08011268 @ =gUnknown_02024A60
+ ldr r0, _0801126C @ =gUnknown_02024C98
+ mov r9, r0
+ ldr r1, _08011270 @ =gUnknown_02024A68
+ mov r8, r1
+ ldr r2, _08011274 @ =0x02000000
+ mov r12, r2
+ ldr r6, _08011278 @ =gUnknown_02024D28
+ adds r5, r7, 0
+ movs r3, 0x58
+ ldr r2, _0801127C @ =gBattleMons
+ adds r2, 0x18
+ movs r1, 0x6
+_08010F70:
+ ldrb r0, [r5]
+ muls r0, r3
+ adds r0, r4, r0
+ adds r0, r2
+ strb r1, [r0]
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _08010F70
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r2, _0801127C @ =gBattleMons
+ adds r2, 0x50
+ adds r0, r2
+ movs r1, 0
+ str r1, [r0]
+ ldrb r0, [r7]
+ lsls r0, 2
+ add r0, r9
+ str r1, [r0]
+ movs r4, 0
+ mov r0, r8
+ ldrb r0, [r0]
+ cmp r4, r0
+ bge _08011012
+ adds r3, r2, 0
+ movs r5, 0
+ ldr r1, _08011280 @ =gBitTable
+ mov r10, r1
+ ldr r2, _08011274 @ =0x02000000
+ mov r9, r2
+_08010FAE:
+ ldr r1, [r3]
+ movs r0, 0x80
+ lsls r0, 19
+ ands r0, r1
+ cmp r0, 0
+ beq _08010FCC
+ ldr r2, _08011284 @ =gUnknown_02024CA8
+ adds r0, r5, r2
+ ldrb r0, [r0, 0x14]
+ ldrb r2, [r7]
+ cmp r0, r2
+ bne _08010FCC
+ ldr r0, _08011288 @ =0xfbffffff
+ ands r1, r0
+ str r1, [r3]
+_08010FCC:
+ ldrb r0, [r7]
+ lsls r0, 2
+ add r0, r10
+ ldr r0, [r0]
+ lsls r2, r0, 16
+ ldr r1, [r3]
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08010FE4
+ bics r1, r2
+ str r1, [r3]
+_08010FE4:
+ ldr r1, [r3]
+ movs r0, 0xE0
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _08011004
+ ldr r2, _0801128C @ =0x00016020
+ adds r0, r4, r2
+ add r0, r9
+ ldrb r0, [r0]
+ ldrb r2, [r7]
+ cmp r0, r2
+ bne _08011004
+ ldr r0, _08011290 @ =0xffff1fff
+ ands r1, r0
+ str r1, [r3]
+_08011004:
+ adds r3, 0x58
+ adds r5, 0x1C
+ adds r4, 0x1
+ mov r0, r8
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08010FAE
+_08011012:
+ ldrb r0, [r7]
+ ldr r1, _08011294 @ =gUnknown_02024E60
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldrb r0, [r7]
+ ldr r2, _08011298 @ =gUnknown_02024E64
+ adds r0, r2
+ strb r1, [r0]
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r2, _08011284 @ =gUnknown_02024CA8
+ adds r1, r0, r2
+ movs r4, 0
+ movs r2, 0
+_08011034:
+ adds r0, r1, r4
+ strb r2, [r0]
+ adds r4, 0x1
+ cmp r4, 0x1B
+ bls _08011034
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r0, 0x2
+ negs r0, r0
+ mov r9, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r0, 0x3
+ negs r0, r0
+ mov r8, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r0, 0x9
+ negs r0, r0
+ mov r10, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r5, 0x21
+ negs r5, r5
+ adds r0, r5, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r4, 0x41
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r3, 0x7F
+ adds r0, r3, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1, 0x1]
+ mov r0, r9
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1, 0x1]
+ mov r0, r8
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x19
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r7]
+ lsls r0, 4
+ adds r0, r6
+ ldrb r1, [r0, 0x1]
+ ands r5, r1
+ strb r5, [r0, 0x1]
+ ldrb r0, [r7]
+ lsls r0, 4
+ adds r0, r6
+ ldrb r1, [r0, 0x1]
+ ands r4, r1
+ strb r4, [r0, 0x1]
+ ldrb r0, [r7]
+ lsls r0, 4
+ adds r0, r6
+ ldrb r1, [r0, 0x1]
+ ands r3, r1
+ strb r3, [r0, 0x1]
+ ldrb r0, [r7]
+ lsls r0, 4
+ adds r0, r6
+ ldrb r1, [r0, 0x2]
+ mov r2, r9
+ ands r2, r1
+ strb r2, [r0, 0x2]
+ ldrb r0, [r7]
+ lsls r0, 4
+ adds r0, r6
+ ldrb r1, [r0, 0x2]
+ mov r2, r8
+ ands r2, r1
+ strb r2, [r0, 0x2]
+ ldrb r0, [r7]
+ lsls r0, 4
+ adds r0, r6
+ ldrb r1, [r0, 0x2]
+ movs r2, 0x5
+ negs r2, r2
+ ands r2, r1
+ strb r2, [r0, 0x2]
+ ldrb r0, [r7]
+ lsls r0, 4
+ adds r0, r6
+ ldrb r1, [r0, 0x2]
+ mov r2, r10
+ ands r2, r1
+ strb r2, [r0, 0x2]
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, _08011284 @ =gUnknown_02024CA8
+ adds r0, r1
+ movs r3, 0
+ movs r1, 0x2
+ strb r1, [r0, 0x16]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r2, _0801129C @ =gUnknown_02024C34
+ adds r0, r2
+ movs r2, 0
+ strh r3, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _080112A0 @ =gUnknown_02024C3C
+ adds r0, r1
+ strh r3, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _080112A4 @ =gUnknown_02024C44
+ adds r0, r1
+ strh r3, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _080112A8 @ =gUnknown_02024C4C
+ adds r0, r1
+ strh r3, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _080112AC @ =gUnknown_02024C2C
+ adds r0, r1
+ strh r3, [r0]
+ ldrb r0, [r7]
+ ldr r1, _080112B0 @ =gUnknown_02024C5C
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _080112B4 @ =0x000160e8
+ adds r0, r1
+ add r0, r12
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ add r0, r12
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ subs r1, 0x3D
+ adds r0, r1
+ add r0, r12
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ add r0, r12
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r1, 0x53
+ adds r0, r1
+ add r0, r12
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r1, 0x1
+ adds r0, r1
+ add r0, r12
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r1, 0x1
+ adds r0, r1
+ add r0, r12
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r1, 0x1
+ adds r0, r1
+ add r0, r12
+ strb r2, [r0]
+ ldr r1, _080112B8 @ =0x00017100
+ add r1, r12
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ str r3, [r0]
+ ldrb r0, [r7]
+ movs r3, 0x58
+ adds r1, r0, 0
+ muls r1, r3
+ ldr r2, _0801127C @ =gBattleMons
+ adds r1, r2
+ ldrh r2, [r1]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ ldr r2, _080112BC @ =gBaseStats
+ adds r0, r2
+ ldrb r0, [r0, 0x6]
+ adds r1, 0x21
+ strb r0, [r1]
+ ldrb r0, [r7]
+ adds r1, r0, 0
+ muls r1, r3
+ ldr r0, _0801127C @ =gBattleMons
+ adds r1, r0
+ ldrh r2, [r1]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ ldr r2, _080112BC @ =gBaseStats
+ adds r0, r2
+ ldrb r0, [r0, 0x7]
+ adds r1, 0x22
+ strb r0, [r1]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011268: .4byte gUnknown_02024A60
+_0801126C: .4byte gUnknown_02024C98
+_08011270: .4byte gUnknown_02024A68
+_08011274: .4byte 0x02000000
+_08011278: .4byte gUnknown_02024D28
+_0801127C: .4byte gBattleMons
+_08011280: .4byte gBitTable
+_08011284: .4byte gUnknown_02024CA8
+_08011288: .4byte 0xfbffffff
+_0801128C: .4byte 0x00016020
+_08011290: .4byte 0xffff1fff
+_08011294: .4byte gUnknown_02024E60
+_08011298: .4byte gUnknown_02024E64
+_0801129C: .4byte gUnknown_02024C34
+_080112A0: .4byte gUnknown_02024C3C
+_080112A4: .4byte gUnknown_02024C44
+_080112A8: .4byte gUnknown_02024C4C
+_080112AC: .4byte gUnknown_02024C2C
+_080112B0: .4byte gUnknown_02024C5C
+_080112B4: .4byte 0x000160e8
+_080112B8: .4byte 0x00017100
+_080112BC: .4byte gBaseStats
+ thumb_func_end sub_8010F48
+
+ thumb_func_start bc_8012FAC
+bc_8012FAC: @ 80112C0
+ push {r4,r5,lr}
+ ldr r5, _080112D0 @ =gUnknown_02024D1E
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080112D4
+ cmp r0, 0x1
+ beq _080112F8
+ b _0801132E
+ .align 2, 0
+_080112D0: .4byte gUnknown_02024D1E
+_080112D4:
+ ldr r4, _080112F4 @ =gUnknown_02024A60
+ ldrb r0, [r5, 0x1]
+ strb r0, [r4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl dp01_build_cmdbuf_x00_a_b_0
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _0801132E
+ .align 2, 0
+_080112F4: .4byte gUnknown_02024A60
+_080112F8:
+ ldr r0, _0801131C @ =gUnknown_02024A64
+ ldr r2, [r0]
+ cmp r2, 0
+ bne _0801132E
+ ldrb r0, [r5, 0x1]
+ adds r0, 0x1
+ strb r0, [r5, 0x1]
+ ldr r1, _08011320 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0801132C
+ ldr r1, _08011324 @ =gUnknown_030042D4
+ ldr r0, _08011328 @ =bc_load_battlefield
+ str r0, [r1]
+ b _0801132E
+ .align 2, 0
+_0801131C: .4byte gUnknown_02024A64
+_08011320: .4byte gUnknown_02024A68
+_08011324: .4byte gUnknown_030042D4
+_08011328: .4byte bc_load_battlefield
+_0801132C:
+ strb r2, [r5]
+_0801132E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end bc_8012FAC
+
+ thumb_func_start bc_load_battlefield
+bc_load_battlefield: @ 8011334
+ push {r4,r5,lr}
+ ldr r0, _0801136C @ =gUnknown_02024A64
+ ldr r5, [r0]
+ cmp r5, 0
+ bne _08011364
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r4, _08011370 @ =gUnknown_02024A60
+ strb r0, [r4]
+ ldr r0, _08011374 @ =gUnknown_0300428C
+ ldrb r1, [r0]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2E_a
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _08011378 @ =gUnknown_030042D4
+ ldr r0, _0801137C @ =sub_8011384
+ str r0, [r1]
+ ldr r0, _08011380 @ =gUnknown_02024D1E
+ strb r5, [r0]
+ strb r5, [r0, 0x1]
+_08011364:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801136C: .4byte gUnknown_02024A64
+_08011370: .4byte gUnknown_02024A60
+_08011374: .4byte gUnknown_0300428C
+_08011378: .4byte gUnknown_030042D4
+_0801137C: .4byte sub_8011384
+_08011380: .4byte gUnknown_02024D1E
+ thumb_func_end bc_load_battlefield
+
+ thumb_func_start sub_8011384
+sub_8011384: @ 8011384
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _080113E0 @ =gUnknown_02024A64
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _08011396
+ b _080115DA
+_08011396:
+ ldr r2, _080113E4 @ =gUnknown_02024A60
+ strb r1, [r2]
+ ldr r0, _080113E8 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcc _080113A4
+ b _080115D4
+_080113A4:
+ movs r7, 0x58
+ ldr r0, _080113EC @ =gBattleMons
+ mov r9, r0
+ mov r8, r2
+_080113AC:
+ ldr r0, _080113F0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080113F4
+ ldr r4, _080113E4 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080113F4
+ ldrb r0, [r4]
+ muls r0, r7
+ mov r1, r9
+ adds r3, r0, r1
+ movs r2, 0
+ movs r1, 0
+_080113D2:
+ adds r0, r3, r2
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x57
+ bls _080113D2
+ b _080114BE
+ .align 2, 0
+_080113E0: .4byte gUnknown_02024A64
+_080113E4: .4byte gUnknown_02024A60
+_080113E8: .4byte gUnknown_02024A68
+_080113EC: .4byte gBattleMons
+_080113F0: .4byte gUnknown_020239F8
+_080113F4:
+ mov r2, r8
+ ldrb r0, [r2]
+ muls r0, r7
+ mov r1, r9
+ adds r3, r0, r1
+ movs r2, 0
+ ldr r6, _08011530 @ =gBaseStats
+ ldr r5, _08011534 @ =gUnknown_02024260
+ ldr r4, _08011538 @ =gUnknown_02024A60
+_08011406:
+ adds r0, r3, r2
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r1, 0x4
+ adds r1, r2, r1
+ adds r1, r5
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x57
+ bls _08011406
+ mov r2, r8
+ ldrb r0, [r2]
+ adds r2, r0, 0
+ muls r2, r7
+ add r2, r9
+ ldrh r1, [r2]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0, 0x6]
+ adds r2, 0x21
+ strb r0, [r2]
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r2, r0, 0
+ muls r2, r7
+ add r2, r9
+ ldrh r1, [r2]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0, 0x7]
+ adds r2, 0x22
+ strb r0, [r2]
+ mov r2, r8
+ ldrb r0, [r2]
+ adds r1, r0, 0
+ muls r1, r7
+ add r1, r9
+ ldrh r0, [r1]
+ ldrb r1, [r1, 0x17]
+ lsrs r1, 7
+ bl GetAbilityBySpecies
+ mov r2, r8
+ ldrb r1, [r2]
+ muls r1, r7
+ add r1, r9
+ adds r1, 0x20
+ strb r0, [r1]
+ ldrb r0, [r2]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 23
+ ldr r1, _0801153C @ =0x020160bc
+ adds r0, r1
+ mov r2, r8
+ ldrb r1, [r2]
+ muls r1, r7
+ add r1, r9
+ ldrh r1, [r1, 0x28]
+ strh r1, [r0]
+ movs r2, 0
+ ldr r4, _08011538 @ =gUnknown_02024A60
+ movs r5, 0x58
+ ldr r1, _08011540 @ =gUnknown_02024A98
+ adds r6, r4, 0
+ movs r0, 0x18
+ negs r0, r0
+ adds r0, r1
+ mov r12, r0
+ movs r3, 0x6
+_0801149E:
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r0, r2, r0
+ adds r0, r1
+ strb r3, [r0]
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _0801149E
+ ldrb r0, [r6]
+ adds r1, r0, 0
+ muls r1, r7
+ mov r0, r12
+ adds r0, 0x50
+ adds r1, r0
+ movs r0, 0
+ str r0, [r1]
+_080114BE:
+ ldr r4, _08011538 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ cmp r0, 0
+ bne _080114D8
+ movs r0, 0
+ bl dp01_build_cmdbuf_x07_7_7_7
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_080114D8:
+ ldr r5, _08011544 @ =gUnknown_020239F8
+ ldrh r1, [r5]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0801154C
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080114FE
+ movs r0, 0
+ bl dp01_build_cmdbuf_x07_7_7_7
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_080114FE:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08011588
+ ldrh r1, [r5]
+ ldr r2, _08011548 @ =0x00000902
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08011588
+ ldrb r0, [r4]
+ muls r0, r7
+ add r0, r9
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2
+ bl sub_8090D90
+ b _08011588
+ .align 2, 0
+_08011530: .4byte gBaseStats
+_08011534: .4byte gUnknown_02024260
+_08011538: .4byte gUnknown_02024A60
+_0801153C: .4byte 0x020160bc
+_08011540: .4byte gUnknown_02024A98
+_08011544: .4byte gUnknown_020239F8
+_08011548: .4byte 0x00000902
+_0801154C:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08011588
+ ldrh r1, [r5]
+ ldr r2, _080115E8 @ =0x00000902
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08011588
+ ldrb r0, [r4]
+ muls r0, r7
+ add r0, r9
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2
+ bl sub_8090D90
+ movs r0, 0
+ bl dp01_build_cmdbuf_x04_4_4_4
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08011588:
+ ldr r0, _080115EC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080115BE
+ ldr r4, _080115F0 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _080115B2
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _080115BE
+_080115B2:
+ movs r0, 0
+ bl dp01_build_cmdbuf_x07_7_7_7
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_080115BE:
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r1, _080115F4 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _080115D4
+ b _080113AC
+_080115D4:
+ ldr r1, _080115F8 @ =gUnknown_030042D4
+ ldr r0, _080115FC @ =bc_801333C
+ str r0, [r1]
+_080115DA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080115E8: .4byte 0x00000902
+_080115EC: .4byte gUnknown_020239F8
+_080115F0: .4byte gUnknown_02024A60
+_080115F4: .4byte gUnknown_02024A68
+_080115F8: .4byte gUnknown_030042D4
+_080115FC: .4byte bc_801333C
+ thumb_func_end sub_8011384
+
+ thumb_func_start bc_801333C
+bc_801333C: @ 8011600
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x30
+ ldr r0, _08011658 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08011612
+ b _0801178C
+_08011612:
+ ldr r0, _0801165C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08011620
+ b _0801172C
+_08011620:
+ movs r7, 0
+ add r0, sp, 0x4
+ mov r8, r0
+ mov r6, r8
+ mov r5, sp
+_0801162A:
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _08011660 @ =gEnemyParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _08011650
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ bne _08011668
+_08011650:
+ ldr r0, _08011664 @ =0x0000ffff
+ strh r0, [r5]
+ movs r0, 0
+ b _0801167A
+ .align 2, 0
+_08011658: .4byte gUnknown_02024A64
+_0801165C: .4byte gUnknown_020239F8
+_08011660: .4byte gEnemyParty
+_08011664: .4byte 0x0000ffff
+_08011668:
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+_0801167A:
+ str r0, [r6]
+ adds r6, 0x8
+ adds r5, 0x8
+ adds r7, 0x1
+ cmp r7, 0x5
+ ble _0801162A
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ ldr r4, _080116D4 @ =gUnknown_02024A60
+ strb r0, [r4]
+ movs r0, 0
+ mov r1, sp
+ movs r2, 0x80
+ bl dp01_build_cmdbuf_x30_TODO
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ movs r7, 0
+ mov r6, r8
+ mov r5, sp
+_080116A6:
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _080116D8 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _080116CC
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ bne _080116E0
+_080116CC:
+ ldr r0, _080116DC @ =0x0000ffff
+ strh r0, [r5]
+ movs r0, 0
+ b _080116F2
+ .align 2, 0
+_080116D4: .4byte gUnknown_02024A60
+_080116D8: .4byte gPlayerParty
+_080116DC: .4byte 0x0000ffff
+_080116E0:
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+_080116F2:
+ str r0, [r6]
+ adds r6, 0x8
+ adds r5, 0x8
+ adds r7, 0x1
+ cmp r7, 0x5
+ ble _080116A6
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r4, _08011720 @ =gUnknown_02024A60
+ strb r0, [r4]
+ movs r0, 0
+ mov r1, sp
+ movs r2, 0x80
+ bl dp01_build_cmdbuf_x30_TODO
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _08011724 @ =gUnknown_030042D4
+ ldr r0, _08011728 @ =bc_battle_begin_message
+ b _0801178A
+ .align 2, 0
+_08011720: .4byte gUnknown_02024A60
+_08011724: .4byte gUnknown_030042D4
+_08011728: .4byte bc_battle_begin_message
+_0801172C:
+ movs r7, 0
+ add r6, sp, 0x4
+ mov r5, sp
+_08011732:
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _08011760 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _08011758
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ bne _08011768
+_08011758:
+ ldr r0, _08011764 @ =0x0000ffff
+ strh r0, [r5]
+ movs r0, 0
+ b _0801177A
+ .align 2, 0
+_08011760: .4byte gPlayerParty
+_08011764: .4byte 0x0000ffff
+_08011768:
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+_0801177A:
+ str r0, [r6]
+ adds r6, 0x8
+ adds r5, 0x8
+ adds r7, 0x1
+ cmp r7, 0x5
+ ble _08011732
+ ldr r1, _08011798 @ =gUnknown_030042D4
+ ldr r0, _0801179C @ =bc_8013568
+_0801178A:
+ str r0, [r1]
+_0801178C:
+ add sp, 0x30
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011798: .4byte gUnknown_030042D4
+_0801179C: .4byte bc_8013568
+ thumb_func_end bc_801333C
+
+ thumb_func_start bc_battle_begin_message
+bc_battle_begin_message: @ 80117A0
+ push {lr}
+ ldr r0, _080117C8 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080117C2
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ ldr r1, _080117CC @ =gUnknown_02024A60
+ strb r0, [r1]
+ ldrb r1, [r1]
+ movs r0, 0
+ bl b_std_message
+ ldr r1, _080117D0 @ =gUnknown_030042D4
+ ldr r0, _080117D4 @ =sub_8011800
+ str r0, [r1]
+_080117C2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080117C8: .4byte gUnknown_02024A64
+_080117CC: .4byte gUnknown_02024A60
+_080117D0: .4byte gUnknown_030042D4
+_080117D4: .4byte sub_8011800
+ thumb_func_end bc_battle_begin_message
+
+ thumb_func_start bc_8013568
+bc_8013568: @ 80117D8
+ push {lr}
+ ldr r0, _080117F4 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080117F0
+ ldr r1, _080117F8 @ =gUnknown_030042D4
+ ldr r0, _080117FC @ =sub_8011970
+ str r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ bl b_std_message
+_080117F0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080117F4: .4byte gUnknown_02024A64
+_080117F8: .4byte gUnknown_030042D4
+_080117FC: .4byte sub_8011970
+ thumb_func_end bc_8013568
+
+ thumb_func_start sub_8011800
+sub_8011800: @ 8011800
+ push {lr}
+ ldr r0, _08011828 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08011822
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x1
+ bl b_std_message
+ ldr r1, _0801182C @ =gUnknown_030042D4
+ ldr r0, _08011830 @ =sub_8011834
+ str r0, [r1]
+_08011822:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011828: .4byte gUnknown_02024A64
+_0801182C: .4byte gUnknown_030042D4
+_08011830: .4byte sub_8011834
+ thumb_func_end sub_8011800
+
+ thumb_func_start sub_8011834
+sub_8011834: @ 8011834
+ push {r4,lr}
+ ldr r0, _080118AC @ =gUnknown_02024A64
+ ldr r1, [r0]
+ cmp r1, 0
+ bne _080118A4
+ ldr r2, _080118B0 @ =gUnknown_02024A60
+ strb r1, [r2]
+ ldr r0, _080118B4 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _0801189E
+ adds r4, r2, 0
+_0801184C:
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08011866
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2F_2F_2F_2F
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08011866:
+ ldr r0, _080118B8 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801188C
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _0801188C
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2F_2F_2F_2F
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_0801188C:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _080118B4 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _0801184C
+_0801189E:
+ ldr r1, _080118BC @ =gUnknown_030042D4
+ ldr r0, _080118C0 @ =bc_801362C
+ str r0, [r1]
+_080118A4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080118AC: .4byte gUnknown_02024A64
+_080118B0: .4byte gUnknown_02024A60
+_080118B4: .4byte gUnknown_02024A68
+_080118B8: .4byte gUnknown_020239F8
+_080118BC: .4byte gUnknown_030042D4
+_080118C0: .4byte bc_801362C
+ thumb_func_end sub_8011834
+
+ thumb_func_start bc_801362C
+bc_801362C: @ 80118C4
+ push {r4,r5,lr}
+ ldr r0, _08011930 @ =gUnknown_02024A64
+ ldr r1, [r0]
+ cmp r1, 0
+ bne _0801192A
+ ldr r2, _08011934 @ =gUnknown_02024A60
+ strb r1, [r2]
+ ldr r0, _08011938 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _08011924
+ adds r4, r2, 0
+ ldr r5, _0801193C @ =gBattleMons
+_080118DE:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08011912
+ ldr r0, _08011940 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r2, _08011944 @ =0x00000902
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08011912
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r5
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2
+ bl sub_8090D90
+_08011912:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08011938 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _080118DE
+_08011924:
+ ldr r1, _08011948 @ =gUnknown_030042D4
+ ldr r0, _0801194C @ =sub_8011970
+ str r0, [r1]
+_0801192A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011930: .4byte gUnknown_02024A64
+_08011934: .4byte gUnknown_02024A60
+_08011938: .4byte gUnknown_02024A68
+_0801193C: .4byte gBattleMons
+_08011940: .4byte gUnknown_020239F8
+_08011944: .4byte 0x00000902
+_08011948: .4byte gUnknown_030042D4
+_0801194C: .4byte sub_8011970
+ thumb_func_end bc_801362C
+
+ thumb_func_start unref_sub_8011950
+unref_sub_8011950: @ 8011950
+ push {lr}
+ ldr r0, _08011964 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08011960
+ ldr r1, _08011968 @ =gUnknown_030042D4
+ ldr r0, _0801196C @ =sub_8011970
+ str r0, [r1]
+_08011960:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011964: .4byte gUnknown_02024A64
+_08011968: .4byte gUnknown_030042D4
+_0801196C: .4byte sub_8011970
+ thumb_func_end unref_sub_8011950
+
+ thumb_func_start sub_8011970
+sub_8011970: @ 8011970
+ push {lr}
+ ldr r0, _080119A4 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801199E
+ ldr r0, _080119A8 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08011998
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x1
+ bl b_std_message
+_08011998:
+ ldr r1, _080119AC @ =gUnknown_030042D4
+ ldr r0, _080119B0 @ =sub_80119B4
+ str r0, [r1]
+_0801199E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080119A4: .4byte gUnknown_02024A64
+_080119A8: .4byte gUnknown_020239F8
+_080119AC: .4byte gUnknown_030042D4
+_080119B0: .4byte sub_80119B4
+ thumb_func_end sub_8011970
+
+ thumb_func_start sub_80119B4
+sub_80119B4: @ 80119B4
+ push {r4,lr}
+ ldr r0, _08011A40 @ =gUnknown_02024A64
+ ldr r1, [r0]
+ cmp r1, 0
+ bne _08011A38
+ ldr r2, _08011A44 @ =gUnknown_02024A60
+ strb r1, [r2]
+ ldr r0, _08011A48 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _08011A1C
+ adds r4, r2, 0
+_080119CC:
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ cmp r0, 0
+ bne _080119E4
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2F_2F_2F_2F
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_080119E4:
+ ldr r0, _08011A4C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08011A0A
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08011A0A
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2F_2F_2F_2F
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08011A0A:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08011A48 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _080119CC
+_08011A1C:
+ ldr r1, _08011A50 @ =0x02000000
+ ldr r2, _08011A54 @ =0x00016058
+ adds r0, r1, r2
+ movs r2, 0
+ strb r2, [r0]
+ ldr r3, _08011A58 @ =0x000160f9
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _08011A5C @ =0x000160e6
+ adds r1, r0
+ strb r2, [r1]
+ ldr r1, _08011A60 @ =gUnknown_030042D4
+ ldr r0, _08011A64 @ =sub_8011B00
+ str r0, [r1]
+_08011A38:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011A40: .4byte gUnknown_02024A64
+_08011A44: .4byte gUnknown_02024A60
+_08011A48: .4byte gUnknown_02024A68
+_08011A4C: .4byte gUnknown_020239F8
+_08011A50: .4byte 0x02000000
+_08011A54: .4byte 0x00016058
+_08011A58: .4byte 0x000160f9
+_08011A5C: .4byte 0x000160e6
+_08011A60: .4byte gUnknown_030042D4
+_08011A64: .4byte sub_8011B00
+ thumb_func_end sub_80119B4
+
+ thumb_func_start unref_sub_8011A68
+unref_sub_8011A68: @ 8011A68
+ push {r4,r5,lr}
+ ldr r0, _08011AD8 @ =gUnknown_02024A64
+ ldr r1, [r0]
+ cmp r1, 0
+ bne _08011AD2
+ ldr r2, _08011ADC @ =gUnknown_02024A60
+ strb r1, [r2]
+ ldr r0, _08011AE0 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _08011AB6
+ adds r4, r2, 0
+ ldr r5, _08011AE4 @ =gUnknown_02024A6A
+_08011A82:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08011AA4
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0
+ movs r2, 0
+ bl sub_800C704
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08011AA4:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08011AE0 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08011A82
+_08011AB6:
+ ldr r1, _08011AE8 @ =0x02000000
+ ldr r2, _08011AEC @ =0x00016058
+ adds r0, r1, r2
+ movs r2, 0
+ strb r2, [r0]
+ ldr r3, _08011AF0 @ =0x000160f9
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _08011AF4 @ =0x000160e6
+ adds r1, r0
+ strb r2, [r1]
+ ldr r1, _08011AF8 @ =gUnknown_030042D4
+ ldr r0, _08011AFC @ =sub_8011B00
+ str r0, [r1]
+_08011AD2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011AD8: .4byte gUnknown_02024A64
+_08011ADC: .4byte gUnknown_02024A60
+_08011AE0: .4byte gUnknown_02024A68
+_08011AE4: .4byte gUnknown_02024A6A
+_08011AE8: .4byte 0x02000000
+_08011AEC: .4byte 0x00016058
+_08011AF0: .4byte 0x000160f9
+_08011AF4: .4byte 0x000160e6
+_08011AF8: .4byte gUnknown_030042D4
+_08011AFC: .4byte sub_8011B00
+ thumb_func_end unref_sub_8011A68
+
+ thumb_func_start sub_8011B00
+sub_8011B00: @ 8011B00
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ movs r0, 0
+ mov r9, r0
+ ldr r0, _08011B44 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08011B18
+ b _08011D6E
+_08011B18:
+ ldr r0, _08011B48 @ =0x02000000
+ ldr r1, _08011B4C @ =0x00016058
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08011BA2
+ movs r5, 0
+ ldr r1, _08011B50 @ =gUnknown_02024A68
+ adds r3, r1, 0
+ ldrb r2, [r1]
+ cmp r5, r2
+ bge _08011B3E
+ ldr r2, _08011B54 @ =gUnknown_02024A7A
+_08011B32:
+ adds r0, r5, r2
+ strb r5, [r0]
+ adds r5, 0x1
+ ldrb r0, [r1]
+ cmp r5, r0
+ blt _08011B32
+_08011B3E:
+ movs r5, 0
+ b _08011B98
+ .align 2, 0
+_08011B44: .4byte gUnknown_02024A64
+_08011B48: .4byte 0x02000000
+_08011B4C: .4byte 0x00016058
+_08011B50: .4byte gUnknown_02024A68
+_08011B54: .4byte gUnknown_02024A7A
+_08011B58:
+ adds r4, r5, 0x1
+ mov r8, r4
+ ldrb r1, [r1]
+ cmp r8, r1
+ bge _08011B96
+ ldr r6, _08011BC8 @ =gUnknown_02024A7A
+ ldr r3, _08011BCC @ =gUnknown_02024A68
+ lsls r7, r5, 24
+_08011B68:
+ adds r0, r5, r6
+ ldrb r0, [r0]
+ adds r1, r4, r6
+ ldrb r1, [r1]
+ movs r2, 0x1
+ str r3, [sp, 0x4]
+ bl b_first_side
+ lsls r0, 24
+ ldr r3, [sp, 0x4]
+ cmp r0, 0
+ beq _08011B8C
+ lsls r1, r4, 24
+ lsrs r1, 24
+ lsrs r0, r7, 24
+ bl sub_8012FBC
+ ldr r3, [sp, 0x4]
+_08011B8C:
+ adds r4, 0x1
+ ldr r0, _08011BCC @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08011B68
+_08011B96:
+ mov r5, r8
+_08011B98:
+ adds r1, r3, 0
+ ldrb r0, [r3]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _08011B58
+_08011BA2:
+ ldr r0, _08011BD0 @ =0x02000000
+ ldr r1, _08011BD4 @ =0x000160e6
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08011BD8
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0xFF
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _08011BD8
+ movs r0, 0x1
+ strb r0, [r4]
+ b _08011D6E
+ .align 2, 0
+_08011BC8: .4byte gUnknown_02024A7A
+_08011BCC: .4byte gUnknown_02024A68
+_08011BD0: .4byte 0x02000000
+_08011BD4: .4byte 0x000160e6
+_08011BD8:
+ ldr r0, _08011D7C @ =0x02000000
+ ldr r3, _08011D80 @ =0x00016058
+ adds r2, r0, r3
+ ldr r1, _08011D84 @ =gUnknown_02024A68
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _08011C28
+ ldr r5, _08011D88 @ =gUnknown_02024A7A
+ adds r4, r2, 0
+_08011BEC:
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _08011C0E
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08011C0E:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ mov r1, r9
+ cmp r1, 0
+ beq _08011C1C
+ b _08011D6E
+_08011C1C:
+ ldr r1, _08011D84 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08011BEC
+_08011C28:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x9
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08011C42
+ b _08011D6E
+_08011C42:
+ str r0, [sp]
+ movs r0, 0xB
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _08011C58
+ b _08011D6E
+_08011C58:
+ ldr r0, _08011D7C @ =0x02000000
+ ldr r3, _08011D8C @ =0x000160f9
+ adds r2, r0, r3
+ ldr r0, _08011D84 @ =gUnknown_02024A68
+ ldrb r1, [r2]
+ adds r3, r0, 0
+ ldrb r0, [r3]
+ cmp r1, r0
+ bcs _08011CA8
+ ldr r5, _08011D88 @ =gUnknown_02024A7A
+ adds r4, r2, 0
+_08011C6E:
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0
+ movs r2, 0
+ str r3, [sp, 0x4]
+ bl sub_801A02C
+ lsls r0, 24
+ ldr r3, [sp, 0x4]
+ cmp r0, 0
+ beq _08011C90
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08011C90:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ mov r1, r9
+ cmp r1, 0
+ bne _08011D6E
+ ldr r1, _08011D84 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08011C6E
+_08011CA8:
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _08011CB6
+ adds r5, r0, 0
+_08011CB0:
+ subs r5, 0x1
+ cmp r5, 0
+ bne _08011CB0
+_08011CB6:
+ movs r5, 0
+ ldr r0, _08011D7C @ =0x02000000
+ mov r8, r5
+ ldr r3, _08011D90 @ =gUnknown_02024C60
+ ldr r1, _08011D94 @ =0x00016068
+ adds r2, r0, r1
+ movs r7, 0x6
+ ldr r6, _08011D98 @ =gUnknown_02024C18
+ movs r4, 0xFF
+_08011CC8:
+ strb r7, [r2]
+ adds r1, r5, r6
+ ldrb r0, [r1]
+ orrs r0, r4
+ strb r0, [r1]
+ mov r0, r8
+ strh r0, [r3]
+ adds r3, 0x2
+ adds r2, 0x1
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08011CC8
+ movs r0, 0
+ bl sub_801365C
+ bl sub_801377C
+ ldr r0, _08011D7C @ =0x02000000
+ ldr r1, _08011D9C @ =gUnknown_02024C0C
+ ldrb r1, [r1]
+ ldr r2, _08011DA0 @ =0x000160a6
+ adds r0, r2
+ strb r1, [r0]
+ ldr r1, _08011DA4 @ =gUnknown_030042D4
+ ldr r0, _08011DA8 @ =sub_8012324
+ str r0, [r1]
+ bl sub_80156DC
+ ldr r1, _08011DAC @ =gUnknown_02024D1E
+ movs r2, 0
+ adds r0, r1, 0x7
+_08011D06:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _08011D06
+ movs r5, 0
+ ldr r3, _08011D84 @ =gUnknown_02024A68
+ ldr r2, _08011D7C @ =0x02000000
+ ldr r6, _08011DB0 @ =gUnknown_02024C68
+ ldrb r0, [r3]
+ cmp r5, r0
+ bge _08011D36
+ ldr r0, _08011DB4 @ =gBattleMons
+ movs r4, 0x9
+ negs r4, r4
+ adds r1, r0, 0
+ adds r1, 0x50
+_08011D26:
+ ldr r0, [r1]
+ ands r0, r4
+ str r0, [r1]
+ adds r1, 0x58
+ adds r5, 0x1
+ ldrb r0, [r3]
+ cmp r5, r0
+ blt _08011D26
+_08011D36:
+ movs r1, 0xB0
+ lsls r1, 9
+ adds r0, r2, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r3, _08011DB8 @ =0x00016001
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r3, _08011DBC @ =0x00016110
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r3, 0x1
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r3, _08011DC0 @ =0x0001600c
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r3, 0x4D
+ adds r0, r2, r3
+ strb r1, [r0]
+ subs r3, 0x4B
+ adds r0, r2, r3
+ strb r1, [r0]
+ strb r1, [r6]
+ bl Random
+ ldr r1, _08011DC4 @ =gUnknown_02024D1C
+ strh r0, [r1]
+_08011D6E:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011D7C: .4byte 0x02000000
+_08011D80: .4byte 0x00016058
+_08011D84: .4byte gUnknown_02024A68
+_08011D88: .4byte gUnknown_02024A7A
+_08011D8C: .4byte 0x000160f9
+_08011D90: .4byte gUnknown_02024C60
+_08011D94: .4byte 0x00016068
+_08011D98: .4byte gUnknown_02024C18
+_08011D9C: .4byte gUnknown_02024C0C
+_08011DA0: .4byte 0x000160a6
+_08011DA4: .4byte gUnknown_030042D4
+_08011DA8: .4byte sub_8012324
+_08011DAC: .4byte gUnknown_02024D1E
+_08011DB0: .4byte gUnknown_02024C68
+_08011DB4: .4byte gBattleMons
+_08011DB8: .4byte 0x00016001
+_08011DBC: .4byte 0x00016110
+_08011DC0: .4byte 0x0001600c
+_08011DC4: .4byte gUnknown_02024D1C
+ thumb_func_end sub_8011B00
+
+ thumb_func_start bc_8013B1C
+bc_8013B1C: @ 8011DC8
+ push {r4-r6,lr}
+ ldr r0, _08011E60 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08011E5A
+ ldr r1, _08011E64 @ =gUnknown_030042D4
+ ldr r0, _08011E68 @ =sub_8011E8C
+ str r0, [r1]
+ ldr r3, _08011E6C @ =gUnknown_02024A68
+ ldr r1, _08011E70 @ =gUnknown_02024D1E
+ movs r2, 0
+ adds r0, r1, 0x7
+_08011DE0:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _08011DE0
+ movs r4, 0
+ ldrb r3, [r3]
+ cmp r4, r3
+ bge _08011E32
+ ldr r5, _08011E74 @ =gBattleMons
+ adds r6, r5, 0
+ adds r6, 0x4C
+_08011DF6:
+ movs r0, 0x58
+ adds r2, r4, 0
+ muls r2, r0
+ 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, r6
+ ldr r0, [r2]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _08011E28
+ movs r0, 0x80
+ lsls r0, 5
+ ands r3, r0
+ cmp r3, 0
+ beq _08011E28
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl b_cancel_multi_turn_move_maybe
+_08011E28:
+ adds r4, 0x1
+ ldr r0, _08011E6C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08011DF6
+_08011E32:
+ ldr r0, _08011E78 @ =0x02000000
+ movs r2, 0xB0
+ lsls r2, 9
+ adds r1, r0, r2
+ movs r2, 0
+ strb r2, [r1]
+ ldr r3, _08011E7C @ =0x00016001
+ adds r1, r0, r3
+ strb r2, [r1]
+ ldr r3, _08011E80 @ =0x00016110
+ adds r1, r0, r3
+ strb r2, [r1]
+ adds r3, 0x1
+ adds r1, r0, r3
+ strb r2, [r1]
+ ldr r1, _08011E84 @ =0x0001600e
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, _08011E88 @ =gUnknown_02024C68
+ strb r2, [r0]
+_08011E5A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011E60: .4byte gUnknown_02024A64
+_08011E64: .4byte gUnknown_030042D4
+_08011E68: .4byte sub_8011E8C
+_08011E6C: .4byte gUnknown_02024A68
+_08011E70: .4byte gUnknown_02024D1E
+_08011E74: .4byte gBattleMons
+_08011E78: .4byte 0x02000000
+_08011E7C: .4byte 0x00016001
+_08011E80: .4byte 0x00016110
+_08011E84: .4byte 0x0001600e
+_08011E88: .4byte gUnknown_02024C68
+ thumb_func_end bc_8013B1C
+
+ thumb_func_start sub_8011E8C
+sub_8011E8C: @ 8011E8C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0x1
+ bl sub_801365C
+ ldr r0, _08011F3C @ =gUnknown_02024D26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08011EBC
+ bl sub_8015DFC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08011EB0
+ b _08011FEE
+_08011EB0:
+ bl sub_8016558
+ lsls r0, 24
+ cmp r0, 0
+ beq _08011EBC
+ b _08011FEE
+_08011EBC:
+ bl sub_80173A4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _08011ECA
+ b _08011FEE
+_08011ECA:
+ ldr r5, _08011F40 @ =0x02000000
+ ldr r2, _08011F44 @ =0x00016059
+ adds r0, r5, r2
+ strb r1, [r0]
+ bl sub_80170DC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _08011EE0
+ b _08011FEE
+_08011EE0:
+ movs r0, 0
+ bl sub_801365C
+ ldr r2, _08011F48 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _08011F4C @ =0xfffffdff
+ ands r0, r1
+ ldr r1, _08011F50 @ =0xfff7ffff
+ ands r0, r1
+ ldr r1, _08011F54 @ =0xffbfffff
+ ands r0, r1
+ ldr r1, _08011F58 @ =0xffefffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r3, _08011F5C @ =0x00016002
+ adds r0, r5, r3
+ strb r4, [r0]
+ ldr r1, _08011F60 @ =0x000160a1
+ adds r0, r5, r1
+ strb r4, [r0]
+ ldr r2, _08011F64 @ =0x0001600c
+ adds r0, r5, r2
+ strb r4, [r0]
+ ldr r0, _08011F68 @ =gUnknown_02024BEC
+ str r4, [r0]
+ ldr r0, _08011F6C @ =gUnknown_02024C68
+ strb r4, [r0]
+ ldr r1, _08011F70 @ =gUnknown_02024D1E
+ movs r2, 0
+ adds r0, r1, 0x4
+_08011F1C:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _08011F1C
+ ldr r0, _08011F3C @ =gUnknown_02024D26
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08011F80
+ ldr r1, _08011F74 @ =gUnknown_02024A7F
+ movs r0, 0xC
+ strb r0, [r1]
+ ldr r1, _08011F78 @ =gUnknown_030042D4
+ ldr r0, _08011F7C @ =sub_80138F0
+ str r0, [r1]
+ b _08011FEE
+ .align 2, 0
+_08011F3C: .4byte gUnknown_02024D26
+_08011F40: .4byte 0x02000000
+_08011F44: .4byte 0x00016059
+_08011F48: .4byte gUnknown_02024C6C
+_08011F4C: .4byte 0xfffffdff
+_08011F50: .4byte 0xfff7ffff
+_08011F54: .4byte 0xffbfffff
+_08011F58: .4byte 0xffefffff
+_08011F5C: .4byte 0x00016002
+_08011F60: .4byte 0x000160a1
+_08011F64: .4byte 0x0001600c
+_08011F68: .4byte gUnknown_02024BEC
+_08011F6C: .4byte gUnknown_02024C68
+_08011F70: .4byte gUnknown_02024D1E
+_08011F74: .4byte gUnknown_02024A7F
+_08011F78: .4byte gUnknown_030042D4
+_08011F7C: .4byte sub_80138F0
+_08011F80:
+ ldr r1, _08011FFC @ =gUnknown_030042E0
+ ldrb r0, [r1, 0x13]
+ cmp r0, 0xFE
+ bhi _08011F8C
+ adds r0, 0x1
+ strb r0, [r1, 0x13]
+_08011F8C:
+ movs r2, 0
+ ldr r4, _08012000 @ =gUnknown_02024A68
+ ldr r3, _08012004 @ =0x02000000
+ mov r9, r3
+ ldr r0, _08012008 @ =gUnknown_030042D4
+ mov r10, r0
+ ldr r1, _0801200C @ =gUnknown_02024C0C
+ mov r12, r1
+ ldr r3, _08012010 @ =sub_8012324
+ mov r8, r3
+ ldrb r0, [r4]
+ cmp r2, r0
+ bge _08011FC2
+ ldr r7, _08012014 @ =gUnknown_02024C18
+ movs r6, 0xFF
+ movs r5, 0
+ ldr r3, _08012018 @ =gUnknown_02024C60
+_08011FAE:
+ adds r1, r2, r7
+ ldrb r0, [r1]
+ orrs r0, r6
+ strb r0, [r1]
+ strh r5, [r3]
+ adds r3, 0x2
+ adds r2, 0x1
+ ldrb r1, [r4]
+ cmp r2, r1
+ blt _08011FAE
+_08011FC2:
+ ldr r0, _08012004 @ =0x02000000
+ movs r1, 0x6
+ movs r2, 0x3
+ ldr r3, _0801201C @ =0x0001606b
+ adds r0, r3
+_08011FCC:
+ strb r1, [r0]
+ subs r0, 0x1
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08011FCC
+ mov r0, r12
+ ldrb r1, [r0]
+ ldr r0, _08012020 @ =0x000160a6
+ add r0, r9
+ strb r1, [r0]
+ mov r1, r8
+ mov r2, r10
+ str r1, [r2]
+ bl Random
+ ldr r1, _08012024 @ =gUnknown_02024D1C
+ strh r0, [r1]
+_08011FEE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011FFC: .4byte gUnknown_030042E0
+_08012000: .4byte gUnknown_02024A68
+_08012004: .4byte 0x02000000
+_08012008: .4byte gUnknown_030042D4
+_0801200C: .4byte gUnknown_02024C0C
+_08012010: .4byte sub_8012324
+_08012014: .4byte gUnknown_02024C18
+_08012018: .4byte gUnknown_02024C60
+_0801201C: .4byte 0x0001606b
+_08012020: .4byte 0x000160a6
+_08012024: .4byte gUnknown_02024D1C
+ thumb_func_end sub_8011E8C
+
+ thumb_func_start sub_8012028
+sub_8012028: @ 8012028
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r1, _0801204C @ =gBattleMons
+ ldr r0, _08012050 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _08012058
+ ldr r1, _08012054 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0, 0x7]
+ b _08012062
+ .align 2, 0
+_0801204C: .4byte gBattleMons
+_08012050: .4byte gUnknown_02024A60
+_08012054: .4byte gEnigmaBerries
+_08012058:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r2, r0, 24
+_08012062:
+ ldr r1, _0801217C @ =gUnknown_02024C0B
+ ldr r3, _08012180 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ strb r0, [r1]
+ cmp r2, 0x25
+ bne _08012070
+ b _080121F4
+_08012070:
+ ldr r0, _08012184 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801207E
+ b _080121F4
+_0801207E:
+ ldr r1, _08012188 @ =gBattleMons
+ ldrb r2, [r3]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x32
+ bne _08012092
+ b _080121F4
+_08012092:
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ ldr r0, _0801218C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r5, r0
+ bge _08012126
+ movs r7, 0
+_080120A8:
+ lsrs r4, r7, 24
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r6, r0
+ beq _080120CC
+ ldr r1, _08012188 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r5
+ adds r0, r1
+ adds r2, r0, 0
+ adds r2, 0x20
+ ldrb r0, [r2]
+ cmp r0, 0x17
+ bne _080120CC
+ b _080121FC
+_080120CC:
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r6, r0
+ beq _08012116
+ ldr r3, _08012188 @ =gBattleMons
+ ldr r0, _08012180 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ movs r2, 0x58
+ muls r0, r2
+ adds r1, r0, r3
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1A
+ beq _08012116
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _08012116
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _08012116
+ adds r0, r5, 0
+ muls r0, r2
+ adds r0, r3
+ adds r2, r0, 0
+ adds r2, 0x20
+ ldrb r0, [r2]
+ cmp r0, 0x47
+ bne _08012116
+ b _08012220
+_08012116:
+ movs r0, 0x80
+ lsls r0, 17
+ adds r7, r0
+ adds r5, 0x1
+ ldr r0, _0801218C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _080120A8
+_08012126:
+ ldr r4, _08012180 @ =gUnknown_02024A60
+ ldrb r1, [r4]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xF
+ movs r2, 0x2A
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _080121A0
+ ldr r6, _08012188 @ =gBattleMons
+ ldrb r0, [r4]
+ movs r3, 0x58
+ muls r0, r3
+ adds r1, r0, r6
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ beq _0801215E
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _080121A0
+_0801215E:
+ ldr r0, _08012190 @ =0x02000000
+ subs r1, r5, 0x1
+ ldr r2, _08012194 @ =0x00016003
+ adds r0, r2
+ strb r1, [r0]
+ ldr r2, _08012198 @ =byte_2024C06
+ adds r0, r1, 0
+ muls r0, r3
+ adds r0, r6
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r1, _0801219C @ =gUnknown_02024D1E
+ movs r0, 0x2
+ b _08012248
+ .align 2, 0
+_0801217C: .4byte gUnknown_02024C0B
+_08012180: .4byte gUnknown_02024A60
+_08012184: .4byte gUnknown_020239F8
+_08012188: .4byte gBattleMons
+_0801218C: .4byte gUnknown_02024A68
+_08012190: .4byte 0x02000000
+_08012194: .4byte 0x00016003
+_08012198: .4byte byte_2024C06
+_0801219C: .4byte gUnknown_02024D1E
+_080121A0:
+ ldr r1, _080121D4 @ =gBattleMons
+ ldr r0, _080121D8 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080121DC @ =0x0400e000
+ ands r0, r1
+ cmp r0, 0
+ bne _080121CA
+ ldr r1, _080121E0 @ =gUnknown_02024C98
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 3
+ ands r0, r1
+ cmp r0, 0
+ beq _080121E8
+_080121CA:
+ ldr r1, _080121E4 @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ movs r0, 0x1
+ b _0801224A
+ .align 2, 0
+_080121D4: .4byte gBattleMons
+_080121D8: .4byte gUnknown_02024A60
+_080121DC: .4byte 0x0400e000
+_080121E0: .4byte gUnknown_02024C98
+_080121E4: .4byte gUnknown_02024D1E
+_080121E8:
+ ldr r0, _080121F8 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _08012244
+_080121F4:
+ movs r0, 0
+ b _0801224A
+ .align 2, 0
+_080121F8: .4byte gUnknown_020239F8
+_080121FC:
+ ldr r0, _08012210 @ =0x02000000
+ ldr r1, _08012214 @ =0x00016003
+ adds r0, r1
+ strb r5, [r0]
+ ldr r1, _08012218 @ =byte_2024C06
+ ldrb r0, [r2]
+ strb r0, [r1]
+ ldr r1, _0801221C @ =gUnknown_02024D1E
+ movs r0, 0x2
+ b _08012248
+ .align 2, 0
+_08012210: .4byte 0x02000000
+_08012214: .4byte 0x00016003
+_08012218: .4byte byte_2024C06
+_0801221C: .4byte gUnknown_02024D1E
+_08012220:
+ ldr r0, _08012234 @ =0x02000000
+ ldr r1, _08012238 @ =0x00016003
+ adds r0, r1
+ strb r5, [r0]
+ ldr r1, _0801223C @ =byte_2024C06
+ ldrb r0, [r2]
+ strb r0, [r1]
+ ldr r1, _08012240 @ =gUnknown_02024D1E
+ movs r0, 0x2
+ b _08012248
+ .align 2, 0
+_08012234: .4byte 0x02000000
+_08012238: .4byte 0x00016003
+_0801223C: .4byte byte_2024C06
+_08012240: .4byte gUnknown_02024D1E
+_08012244:
+ ldr r1, _08012254 @ =gUnknown_02024D1E
+ movs r0, 0x1
+_08012248:
+ strb r0, [r1, 0x5]
+_0801224A:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08012254: .4byte gUnknown_02024D1E
+ thumb_func_end sub_8012028
+
+ thumb_func_start sub_8012258
+sub_8012258: @ 8012258
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ ldr r7, _080122E4 @ =gUnknown_02024A6A
+ ldr r4, _080122E8 @ =gUnknown_02038470
+ ldr r1, _080122EC @ =0x02000000
+ lsls r6, r5, 1
+ ldr r2, _080122F0 @ =0x0001606c
+ adds r0, r5, r2
+ adds r0, r6, r0
+ adds r2, r0, r1
+_08012270:
+ adds r1, r3, r4
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x2
+ ble _08012270
+ adds r0, r6, r7
+ ldrb r0, [r0]
+ bl pokemon_order_func
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r7, _080122EC @ =0x02000000
+ ldr r1, _080122F4 @ =0x00016068
+ adds r0, r5, r1
+ adds r0, r7
+ ldrb r0, [r0]
+ bl pokemon_order_func
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_8094C98
+ ldr r0, _080122F8 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080122FC
+ movs r3, 0
+ ldr r2, _080122F0 @ =0x0001606c
+ movs r0, 0x2
+ adds r1, r5, 0
+ eors r1, r0
+ adds r0, r5, r2
+ adds r0, r6, r0
+ adds r4, r0, r7
+ ldr r5, _080122E8 @ =gUnknown_02038470
+ lsls r0, r1, 1
+ adds r0, r1
+ adds r0, r2
+ adds r2, r0, r7
+_080122CC:
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ strb r1, [r4]
+ ldrb r0, [r0]
+ strb r0, [r2]
+ adds r4, 0x1
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x2
+ ble _080122CC
+ b _08012316
+ .align 2, 0
+_080122E4: .4byte gUnknown_02024A6A
+_080122E8: .4byte gUnknown_02038470
+_080122EC: .4byte 0x02000000
+_080122F0: .4byte 0x0001606c
+_080122F4: .4byte 0x00016068
+_080122F8: .4byte gUnknown_020239F8
+_080122FC:
+ movs r3, 0
+ ldr r2, _0801231C @ =0x0001606c
+ adds r0, r5, r2
+ adds r0, r6, r0
+ adds r1, r0, r7
+ ldr r2, _08012320 @ =gUnknown_02038470
+_08012308:
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r1, 0x1
+ adds r3, 0x1
+ cmp r3, 0x2
+ ble _08012308
+_08012316:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801231C: .4byte 0x0001606c
+_08012320: .4byte gUnknown_02038470
+ thumb_func_end sub_8012258
+
+ thumb_func_start sub_8012324
+sub_8012324: @ 8012324
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ ldr r0, _08012340 @ =gUnknown_02024D1E
+ movs r1, 0
+ strb r1, [r0, 0x4]
+ ldr r0, _08012344 @ =gUnknown_02024A60
+ strb r1, [r0]
+ ldr r0, _08012348 @ =gUnknown_02024A68
+ bl _08012F74
+ .align 2, 0
+_08012340: .4byte gUnknown_02024D1E
+_08012344: .4byte gUnknown_02024A60
+_08012348: .4byte gUnknown_02024A68
+_0801234C:
+ ldr r4, _08012374 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08012378 @ =gUnknown_02024D1E
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bls _08012368
+ bl _08012F66
+_08012368:
+ lsls r0, 2
+ ldr r1, _0801237C @ =_08012380
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08012374: .4byte gUnknown_02024A60
+_08012378: .4byte gUnknown_02024D1E
+_0801237C: .4byte _08012380
+ .align 2, 0
+_08012380:
+ .4byte _0801239C
+ .4byte _080124C8
+ .4byte _08012A28
+ .4byte _08012DA8
+ .4byte _08012E50
+ .4byte _08012E94
+ .4byte _08012F38
+_0801239C:
+ ldr r4, _08012434 @ =0x02000000
+ ldr r0, _08012438 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ ldr r1, _0801243C @ =0x00016068
+ adds r0, r1
+ adds r0, r4
+ movs r1, 0x6
+ strb r1, [r0]
+ ldr r0, _08012440 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080123F8
+ movs r1, 0x2
+ movs r0, 0x2
+ ands r0, r5
+ cmp r0, 0
+ beq _080123F8
+ eors r5, r1
+ adds r0, r5, 0
+ bl battle_get_side_with_given_state
+ ldr r2, _08012444 @ =0x000160a6
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ ldr r2, _08012448 @ =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080123F8
+ ldr r4, _0801244C @ =gUnknown_02024D1E
+ adds r0, r5, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ beq _080123F8
+ bl _08012F66
+_080123F8:
+ ldr r0, _08012434 @ =0x02000000
+ ldr r3, _08012444 @ =0x000160a6
+ adds r0, r3
+ ldrb r3, [r0]
+ ldr r1, _08012448 @ =gBitTable
+ ldr r4, _08012438 @ =gUnknown_02024A60
+ ldrb r2, [r4]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ands r3, r0
+ cmp r3, 0
+ beq _08012468
+ ldr r0, _08012450 @ =gUnknown_02024C18
+ adds r0, r2, r0
+ movs r1, 0xD
+ strb r1, [r0]
+ ldr r0, _08012440 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08012454
+ ldr r0, _0801244C @ =gUnknown_02024D1E
+ ldrb r1, [r4]
+ adds r1, r0
+ movs r0, 0x4
+ strb r0, [r1]
+ bl _08012F66
+ .align 2, 0
+_08012434: .4byte 0x02000000
+_08012438: .4byte gUnknown_02024A60
+_0801243C: .4byte 0x00016068
+_08012440: .4byte gUnknown_020239F8
+_08012444: .4byte 0x000160a6
+_08012448: .4byte gBitTable
+_0801244C: .4byte gUnknown_02024D1E
+_08012450: .4byte gUnknown_02024C18
+_08012454:
+ ldr r0, _08012464 @ =gUnknown_02024D1E
+ ldrb r1, [r4]
+ adds r1, r0
+ movs r0, 0x3
+ strb r0, [r1]
+ bl _08012F66
+ .align 2, 0
+_08012464: .4byte gUnknown_02024D1E
+_08012468:
+ ldr r1, _0801249C @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ bne _08012488
+ movs r0, 0x80
+ lsls r0, 15
+ ands r1, r0
+ cmp r1, 0
+ beq _080124A8
+_08012488:
+ ldr r0, _080124A0 @ =gUnknown_02024C18
+ adds r0, r2, r0
+ strb r3, [r0]
+ ldr r1, _080124A4 @ =gUnknown_02024D1E
+ ldrb r0, [r4]
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0]
+ bl _08012F66
+ .align 2, 0
+_0801249C: .4byte gBattleMons
+_080124A0: .4byte gUnknown_02024C18
+_080124A4: .4byte gUnknown_02024D1E
+_080124A8:
+ ldr r0, _080124C0 @ =gUnknown_02024C18
+ ldrb r1, [r0]
+ ldr r0, _080124C4 @ =gUnknown_02024260
+ ldrb r2, [r0, 0x1]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 8
+ orrs r2, r0
+ movs r0, 0
+ bl dp01_build_cmdbuf_x12_a_bb
+ bl _08012E32
+ .align 2, 0
+_080124C0: .4byte gUnknown_02024C18
+_080124C4: .4byte gUnknown_02024260
+_080124C8:
+ ldr r4, _08012520 @ =gUnknown_02024A64
+ ldr r1, _08012524 @ =gBitTable
+ ldr r3, _08012528 @ =gUnknown_02024A60
+ ldrb r5, [r3]
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r2, [r0]
+ lsls r0, r2, 4
+ movs r1, 0xF0
+ lsls r1, 24
+ orrs r0, r1
+ orrs r0, r2
+ lsls r1, r2, 8
+ orrs r0, r1
+ lsls r2, 12
+ orrs r0, r2
+ ldr r1, [r4]
+ ands r1, r0
+ mov r8, r3
+ cmp r1, 0
+ beq _080124F6
+ bl _08012F66
+_080124F6:
+ ldr r2, _0801252C @ =gUnknown_02024C18
+ adds r2, r5, r2
+ ldr r1, _08012530 @ =gUnknown_02024260
+ lsls r0, r5, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ bls _08012514
+ b _08012968
+_08012514:
+ lsls r0, 2
+ ldr r1, _08012534 @ =_08012538
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08012520: .4byte gUnknown_02024A64
+_08012524: .4byte gBitTable
+_08012528: .4byte gUnknown_02024A60
+_0801252C: .4byte gUnknown_02024C18
+_08012530: .4byte gUnknown_02024260
+_08012534: .4byte _08012538
+ .align 2, 0
+_08012538:
+ .4byte _0801256C
+ .4byte _080126B4
+ .4byte _080126E0
+ .4byte _08012968
+ .4byte _08012968
+ .4byte _080128B0
+ .4byte _08012908
+ .4byte _08012968
+ .4byte _08012968
+ .4byte _08012968
+ .4byte _08012968
+ .4byte _08012968
+ .4byte _0801292C
+_0801256C:
+ bl sub_8015C90
+ lsls r0, 24
+ cmp r0, 0
+ beq _080125D0
+ ldr r0, _080125B4 @ =gUnknown_02024D1E
+ ldr r2, _080125B8 @ =gUnknown_02024A60
+ ldrb r1, [r2]
+ adds r1, r0
+ movs r4, 0
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r3, _080125BC @ =0x02000000
+ ldrb r0, [r2]
+ ldr r1, _080125C0 @ =0x00016060
+ adds r0, r1
+ adds r0, r3
+ strb r4, [r0]
+ ldrb r0, [r2]
+ ldr r4, _080125C4 @ =0x00016094
+ adds r0, r4
+ adds r0, r3
+ movs r1, 0x3
+ strb r1, [r0]
+ ldrb r1, [r2]
+ ldr r0, _080125C8 @ =0x00016010
+ adds r2, r1, r0
+ adds r2, r3
+ ldr r0, _080125CC @ =gUnknown_02024260
+ lsls r1, 9
+ adds r0, 0x3
+ adds r1, r0
+ ldrb r0, [r1]
+ strb r0, [r2]
+ bl _08012F90
+ .align 2, 0
+_080125B4: .4byte gUnknown_02024D1E
+_080125B8: .4byte gUnknown_02024A60
+_080125BC: .4byte 0x02000000
+_080125C0: .4byte 0x00016060
+_080125C4: .4byte 0x00016094
+_080125C8: .4byte 0x00016010
+_080125CC: .4byte gUnknown_02024260
+_080125D0:
+ ldr r1, _080125FC @ =gUnknown_02024CA8
+ ldr r5, _08012600 @ =gUnknown_02024A60
+ ldrb r4, [r5]
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r2, [r0, 0x6]
+ cmp r2, 0
+ beq _0801260C
+ ldr r1, _08012604 @ =gUnknown_02024C60
+ lsls r0, r4, 1
+ adds r0, r1
+ strh r2, [r0]
+ ldr r1, _08012608 @ =gUnknown_02024D1E
+ ldrb r0, [r5]
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0]
+ bl _08012F90
+ .align 2, 0
+_080125FC: .4byte gUnknown_02024CA8
+_08012600: .4byte gUnknown_02024A60
+_08012604: .4byte gUnknown_02024C60
+_08012608: .4byte gUnknown_02024D1E
+_0801260C:
+ add r2, sp, 0x4
+ ldr r3, _080126AC @ =gBattleMons
+ movs r1, 0x58
+ adds r0, r4, 0
+ muls r0, r1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r2, 0x10]
+ ldrb r0, [r5]
+ muls r0, r1
+ adds r0, r3
+ adds r0, 0x21
+ ldrb r0, [r0]
+ strb r0, [r2, 0x12]
+ ldrb r0, [r5]
+ muls r0, r1
+ adds 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 r10, r2
+ mov r8, r3
+ adds r7, r5, 0
+ movs r6, 0x58
+ movs r3, 0xC
+ add r3, r8
+ mov r9, r3
+ add r5, sp, 0x4
+_0801264E:
+ lsls r2, r4, 1
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r2, r0
+ add r0, r9
+ ldrh r0, [r0]
+ strh r0, [r5]
+ ldr r0, [sp, 0x18]
+ adds r3, r0, r4
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r4, r0
+ mov r1, r8
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r3]
+ ldrb r0, [r7]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r2, r1
+ add r2, r9
+ ldrh r0, [r2]
+ add r1, r8
+ adds r1, 0x3B
+ ldrb r1, [r1]
+ lsls r2, r4, 24
+ lsrs r2, 24
+ bl CalculatePPWithBonus
+ mov r2, r10
+ adds r1, r2, r4
+ strb r0, [r1]
+ adds r5, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0801264E
+ ldr r0, _080126B0 @ =gUnknown_020239F8
+ ldrb r0, [r0]
+ movs r1, 0x1
+ ands r1, r0
+ movs r0, 0
+ movs r2, 0
+ add r3, sp, 0x4
+ bl sub_800CBA4
+ b _0801289E
+ .align 2, 0
+_080126AC: .4byte gBattleMons
+_080126B0: .4byte gUnknown_020239F8
+_080126B4:
+ ldr r0, _080126D0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _080126D4 @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ bne _080126C2
+ b _08012908
+_080126C2:
+ ldr r1, _080126D8 @ =gUnknown_02024C1C
+ mov r3, r8
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080126DC @ =gUnknown_081D9B29
+ b _080129CC
+ .align 2, 0
+_080126D0: .4byte gUnknown_020239F8
+_080126D4: .4byte 0x00000902
+_080126D8: .4byte gUnknown_02024C1C
+_080126DC: .4byte gUnknown_081D9B29
+_080126E0:
+ ldr r3, _08012738 @ =0x02000000
+ ldr r5, _0801273C @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ ldr r4, _08012740 @ =0x00016064
+ adds r1, r0, r4
+ adds r1, r3
+ ldr r2, _08012744 @ =gUnknown_02024A6A
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldr r7, _08012748 @ =gBattleMons
+ ldrb r2, [r5]
+ movs r6, 0x58
+ adds r0, r2, 0
+ muls r0, r6
+ adds r1, r7, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _0801274C @ =0x0400e000
+ ands r0, r1
+ cmp r0, 0
+ bne _08012722
+ ldr r0, _08012750 @ =gUnknown_02024C98
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r1, [r1]
+ movs r0, 0x80
+ lsls r0, 3
+ ands r1, r0
+ cmp r1, 0
+ beq _08012758
+_08012722:
+ lsls r0, r2, 1
+ adds r0, r2
+ ldr r2, _08012754 @ =0x0001606c
+ adds r1, r3, r2
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0x6
+ b _0801286C
+ .align 2, 0
+_08012738: .4byte 0x02000000
+_0801273C: .4byte gUnknown_02024A60
+_08012740: .4byte 0x00016064
+_08012744: .4byte gUnknown_02024A6A
+_08012748: .4byte gBattleMons
+_0801274C: .4byte 0x0400e000
+_08012750: .4byte gUnknown_02024C98
+_08012754: .4byte 0x0001606c
+_08012758:
+ str r1, [sp]
+ movs r0, 0xC
+ adds r1, r2, 0
+ movs r2, 0x17
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080127E0
+ ldrb r1, [r5]
+ str r4, [sp]
+ movs r0, 0xC
+ movs r2, 0x47
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080127A8
+ ldrb r0, [r5]
+ muls r0, r6
+ adds r1, r0, r7
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _080127A8
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _080127A8
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1A
+ bne _080127E0
+_080127A8:
+ ldr r5, _08012808 @ =gUnknown_02024A60
+ ldrb r1, [r5]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xF
+ movs r2, 0x2A
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _08012818
+ ldr r2, _0801280C @ =gBattleMons
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ beq _080127E0
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _08012818
+_080127E0:
+ subs r1, r4, 0x1
+ lsls r1, 4
+ movs r0, 0x4
+ orrs r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _08012810 @ =byte_2024C06
+ ldrb r3, [r0]
+ ldr r0, _08012808 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 1
+ adds r0, r2
+ ldr r2, _08012814 @ =0x0201606c
+ adds r0, r2
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0x6
+ bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
+ b _0801289E
+ .align 2, 0
+_08012808: .4byte gUnknown_02024A60
+_0801280C: .4byte gBattleMons
+_08012810: .4byte byte_2024C06
+_08012814: .4byte 0x0201606c
+_08012818:
+ ldr r0, _08012830 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ mov r8, r0
+ cmp r1, 0x2
+ bne _08012840
+ ldr r0, _08012834 @ =gUnknown_02024C18
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _08012840
+ ldr r3, _08012838 @ =0x02000000
+ ldr r4, _0801283C @ =0x00016068
+ b _08012854
+ .align 2, 0
+_08012830: .4byte gUnknown_02024A60
+_08012834: .4byte gUnknown_02024C18
+_08012838: .4byte 0x02000000
+_0801283C: .4byte 0x00016068
+_08012840:
+ mov r2, r8
+ ldrb r0, [r2]
+ cmp r0, 0x3
+ bne _08012884
+ ldr r0, _08012874 @ =gUnknown_02024C18
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x2
+ bne _08012884
+ ldr r3, _08012878 @ =0x02000000
+ ldr r4, _0801287C @ =0x00016069
+_08012854:
+ adds r0, r3, r4
+ ldrb r2, [r0]
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldr r1, _08012880 @ =0x0001606c
+ adds r3, r1
+ adds r0, r3
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0
+_0801286C:
+ movs r3, 0
+ bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
+ b _0801289E
+ .align 2, 0
+_08012874: .4byte gUnknown_02024C18
+_08012878: .4byte 0x02000000
+_0801287C: .4byte 0x00016069
+_08012880: .4byte 0x0001606c
+_08012884:
+ ldr r0, _080128A8 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldr r1, _080128AC @ =0x0201606c
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x6
+ movs r3, 0
+ bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
+_0801289E:
+ ldr r0, _080128A8 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _08012968
+ .align 2, 0
+_080128A8: .4byte gUnknown_02024A60
+_080128AC: .4byte 0x0201606c
+_080128B0:
+ bl PlayerPartyAndPokemonStorageFull
+ lsls r0, 24
+ cmp r0, 0
+ beq _08012968
+ ldr r1, _080128EC @ =gUnknown_02024C1C
+ ldr r2, _080128F0 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080128F4 @ =gUnknown_081D8E4A
+ str r1, [r0]
+ ldr r0, _080128F8 @ =gUnknown_02024D1E
+ ldrb r1, [r2]
+ adds r1, r0
+ movs r3, 0
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r1, _080128FC @ =0x02000000
+ ldrb r0, [r2]
+ ldr r4, _08012900 @ =0x00016060
+ adds r0, r4
+ adds r0, r1
+ strb r3, [r0]
+ ldrb r0, [r2]
+ ldr r2, _08012904 @ =0x00016094
+ adds r0, r2
+ adds r0, r1
+ strb r3, [r0]
+ b _08012F90
+ .align 2, 0
+_080128EC: .4byte gUnknown_02024C1C
+_080128F0: .4byte gUnknown_02024A60
+_080128F4: .4byte gUnknown_081D8E4A
+_080128F8: .4byte gUnknown_02024D1E
+_080128FC: .4byte 0x02000000
+_08012900: .4byte 0x00016060
+_08012904: .4byte 0x00016094
+_08012908:
+ ldr r4, _08012924 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r0, _08012928 @ =0x0201606c
+ adds r1, r0
+ movs r0, 0
+ bl sub_800CBE0
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _08012968
+ .align 2, 0
+_08012924: .4byte gUnknown_02024A60
+_08012928: .4byte 0x0201606c
+_0801292C:
+ ldr r4, _08012964 @ =gUnknown_02024D1E
+ mov r3, r8
+ ldrb r1, [r3]
+ adds r1, r4
+ movs r5, 0
+ movs r0, 0x6
+ strb r0, [r1]
+ ldrb r0, [r3]
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ strb r5, [r0]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x32_32_32_32
+ mov r4, r8
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _08012F90
+ .align 2, 0
+_08012964: .4byte gUnknown_02024D1E
+_08012968:
+ ldr r0, _08012994 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0xA
+ ands r0, r1
+ cmp r0, 0x8
+ bne _080129A8
+ ldr r0, _08012998 @ =gUnknown_02024260
+ ldr r4, _0801299C @ =gUnknown_02024A60
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x3
+ bne _080129A8
+ ldr r0, _080129A0 @ =gUnknown_081D8E37
+ bl b_call_bc_move_exec
+ ldr r1, _080129A4 @ =gUnknown_02024D1E
+ ldrb r0, [r4]
+ adds r0, r1
+ b _08012BFE
+ .align 2, 0
+_08012994: .4byte gUnknown_020239F8
+_08012998: .4byte gUnknown_02024260
+_0801299C: .4byte gUnknown_02024A60
+_080129A0: .4byte gUnknown_081D8E37
+_080129A4: .4byte gUnknown_02024D1E
+_080129A8:
+ bl sub_8012028
+ lsls r0, 24
+ cmp r0, 0
+ beq _08012A14
+ ldr r0, _080129F4 @ =gUnknown_02024260
+ ldr r3, _080129F8 @ =gUnknown_02024A60
+ ldrb r2, [r3]
+ lsls r1, r2, 9
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x3
+ bne _08012A14
+ ldr r1, _080129FC @ =gUnknown_02024C1C
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r1, _08012A00 @ =gUnknown_081D8E44
+_080129CC:
+ str r1, [r0]
+ ldr r0, _08012A04 @ =gUnknown_02024D1E
+ ldrb r1, [r3]
+ adds r1, r0
+ movs r2, 0
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r1, _08012A08 @ =0x02000000
+ ldrb r0, [r3]
+ ldr r4, _08012A0C @ =0x00016060
+ adds r0, r4
+ adds r0, r1
+ strb r2, [r0]
+ ldrb r0, [r3]
+ ldr r3, _08012A10 @ =0x00016094
+ adds r0, r3
+ adds r0, r1
+ strb r2, [r0]
+ b _08012F90
+ .align 2, 0
+_080129F4: .4byte gUnknown_02024260
+_080129F8: .4byte gUnknown_02024A60
+_080129FC: .4byte gUnknown_02024C1C
+_08012A00: .4byte gUnknown_081D8E44
+_08012A04: .4byte gUnknown_02024D1E
+_08012A08: .4byte 0x02000000
+_08012A0C: .4byte 0x00016060
+_08012A10: .4byte 0x00016094
+_08012A14:
+ ldr r2, _08012A20 @ =gUnknown_02024D1E
+ ldr r0, _08012A24 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ adds r1, r2
+ b _08012E3E
+ .align 2, 0
+_08012A20: .4byte gUnknown_02024D1E
+_08012A24: .4byte gUnknown_02024A60
+_08012A28:
+ ldr r4, _08012A6C @ =gUnknown_02024A64
+ ldr r1, _08012A70 @ =gBitTable
+ ldr r3, _08012A74 @ =gUnknown_02024A60
+ ldrb r5, [r3]
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r2, [r0]
+ lsls r0, r2, 4
+ movs r1, 0xF0
+ lsls r1, 24
+ orrs r0, r1
+ orrs r0, r2
+ lsls r1, r2, 8
+ orrs r0, r1
+ lsls r2, 12
+ orrs r0, r2
+ ldr r1, [r4]
+ ands r1, r0
+ mov r8, r3
+ cmp r1, 0
+ beq _08012A54
+ b _08012F66
+_08012A54:
+ ldr r1, _08012A78 @ =gUnknown_02024C18
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0x9
+ bls _08012A62
+ b _08012F66
+_08012A62:
+ lsls r0, 2
+ ldr r1, _08012A7C @ =_08012A80
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08012A6C: .4byte gUnknown_02024A64
+_08012A70: .4byte gBitTable
+_08012A74: .4byte gUnknown_02024A60
+_08012A78: .4byte gUnknown_02024C18
+_08012A7C: .4byte _08012A80
+ .align 2, 0
+_08012A80:
+ .4byte _08012AA8
+ .4byte _08012BB0
+ .4byte _08012BE8
+ .4byte _08012CE0
+ .4byte _08012D04
+ .4byte _08012D18
+ .4byte _08012D2C
+ .4byte _08012D5C
+ .4byte _08012D70
+ .4byte _08012D94
+_08012AA8:
+ ldr r0, _08012AC8 @ =gUnknown_02024260
+ mov r1, r8
+ ldrb r4, [r1]
+ lsls r1, r4, 9
+ adds r2, r0, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r6, r0, 0
+ cmp r1, 0x9
+ bgt _08012ACC
+ cmp r1, 0x3
+ blt _08012ACC
+ adds r0, r4, r3
+ strb r1, [r0]
+ b _08012F90
+ .align 2, 0
+_08012AC8: .4byte gUnknown_02024260
+_08012ACC:
+ adds r3, r6, 0
+ mov r5, r8
+ ldrb r4, [r5]
+ lsls r1, r4, 9
+ adds r7, r3, 0x2
+ adds r0, r1, r7
+ ldrb r2, [r0]
+ adds r3, 0x3
+ mov r9, r3
+ add r1, r9
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r2, r0
+ ldr r0, _08012AF4 @ =0x0000ffff
+ cmp r2, r0
+ bne _08012AFC
+ ldr r0, _08012AF8 @ =gUnknown_02024D1E
+ adds r0, r4, r0
+ b _08012BFE
+ .align 2, 0
+_08012AF4: .4byte 0x0000ffff
+_08012AF8: .4byte gUnknown_02024D1E
+_08012AFC:
+ bl sub_8015894
+ lsls r0, 24
+ cmp r0, 0
+ beq _08012B48
+ ldr r0, _08012B38 @ =gUnknown_02024D1E
+ ldrb r1, [r5]
+ adds r1, r0
+ movs r2, 0
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r3, _08012B3C @ =0x02000000
+ ldrb r0, [r5]
+ ldr r4, _08012B40 @ =0x00016060
+ adds r0, r4
+ adds r0, r3
+ strb r2, [r0]
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r1, r6, 0x1
+ adds r0, r1
+ strb r2, [r0]
+ ldrb r0, [r5]
+ ldr r1, _08012B44 @ =0x00016094
+ adds r0, r1
+ adds r0, r3
+ movs r1, 0x1
+ strb r1, [r0]
+ b _08012F90
+ .align 2, 0
+_08012B38: .4byte gUnknown_02024D1E
+_08012B3C: .4byte 0x02000000
+_08012B40: .4byte 0x00016060
+_08012B44: .4byte 0x00016094
+_08012B48:
+ ldr r6, _08012B98 @ =0x02000000
+ mov r2, r8
+ ldrb r0, [r2]
+ ldr r2, _08012B9C @ =0x0001608c
+ adds r1, r0, r2
+ adds r1, r6
+ lsls r0, 9
+ adds r0, r7
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _08012BA0 @ =gUnknown_02024C60
+ mov r4, r8
+ ldrb r3, [r4]
+ lsls r5, r3, 1
+ adds r5, r0
+ ldr r4, _08012BA4 @ =gBattleMons
+ adds r2, r3, r2
+ adds r2, r6
+ ldrb r0, [r2]
+ lsls r0, 1
+ movs r1, 0x58
+ muls r1, r3
+ adds r0, r1
+ adds r4, 0xC
+ adds r0, r4
+ ldrh r0, [r0]
+ strh r0, [r5]
+ mov r1, r8
+ ldrb r0, [r1]
+ ldr r2, _08012BA8 @ =0x00016010
+ adds r1, r0, r2
+ adds r1, r6
+ lsls r0, 9
+ add r0, r9
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _08012BAC @ =gUnknown_02024D1E
+ mov r3, r8
+ ldrb r1, [r3]
+ b _08012E3C
+ .align 2, 0
+_08012B98: .4byte 0x02000000
+_08012B9C: .4byte 0x0001608c
+_08012BA0: .4byte gUnknown_02024C60
+_08012BA4: .4byte gBattleMons
+_08012BA8: .4byte 0x00016010
+_08012BAC: .4byte gUnknown_02024D1E
+_08012BB0:
+ ldr r2, _08012BD8 @ =gUnknown_02024260
+ ldr r5, _08012BDC @ =gUnknown_02024A60
+ ldrb r4, [r5]
+ lsls r1, r4, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r3, r0
+ cmp r3, 0
+ bne _08012BCE
+ b _08012F60
+_08012BCE:
+ ldr r0, _08012BE0 @ =gUnknown_02024C04
+ strh r3, [r0]
+ ldr r0, _08012BE4 @ =gUnknown_02024D1E
+ ldrb r1, [r5]
+ b _08012E3C
+ .align 2, 0
+_08012BD8: .4byte gUnknown_02024260
+_08012BDC: .4byte gUnknown_02024A60
+_08012BE0: .4byte gUnknown_02024C04
+_08012BE4: .4byte gUnknown_02024D1E
+_08012BE8:
+ ldr r4, _08012C04 @ =gUnknown_02024260
+ ldr r7, _08012C08 @ =gUnknown_02024A60
+ ldrb r2, [r7]
+ lsls r0, r2, 9
+ adds r1, r4, 0x1
+ adds r0, r1
+ ldrb r1, [r0]
+ cmp r1, 0x6
+ bne _08012C10
+ ldr r0, _08012C0C @ =gUnknown_02024D1E
+ adds r0, r2, r0
+_08012BFE:
+ movs r1, 0
+ strb r1, [r0]
+ b _08012F66
+ .align 2, 0
+_08012C04: .4byte gUnknown_02024260
+_08012C08: .4byte gUnknown_02024A60
+_08012C0C: .4byte gUnknown_02024D1E
+_08012C10:
+ ldr r0, _08012CC4 @ =0x02000000
+ mov r12, r0
+ ldr r3, _08012CC8 @ =0x00016068
+ adds r0, r2, r3
+ add r0, r12
+ strb r1, [r0]
+ ldr r0, _08012CCC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08012CBE
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r5, _08012CD0 @ =0x0001606c
+ adds r1, r5
+ add r1, r12
+ ldrb r2, [r1]
+ movs r0, 0xF
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r7]
+ lsls r2, r0, 1
+ adds r2, r0
+ adds r2, r5
+ add r2, r12
+ lsls r0, 9
+ adds r6, r4, 0x2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r3, 0xF0
+ adds r0, r3, 0
+ ands r0, r1
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r2, _08012CD4 @ =0x0001606d
+ adds r1, r2
+ add r1, r12
+ lsls r0, 9
+ adds r4, 0x3
+ mov r8, r4
+ add r0, r8
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r4, 0x2
+ eors r0, r4
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, r5
+ add r1, r12
+ ldrb r2, [r1]
+ adds r0, r3, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r7]
+ eors r0, r4
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, r5
+ add r1, r12
+ ldrb r0, [r7]
+ lsls r0, 9
+ adds r0, r6
+ ldrb r0, [r0]
+ ands r3, r0
+ lsrs r3, 4
+ ldrb r0, [r1]
+ orrs r3, r0
+ strb r3, [r1]
+ ldrb r0, [r7]
+ eors r4, r0
+ lsls r1, r4, 1
+ adds r1, r4
+ ldr r3, _08012CD8 @ =0x0001606e
+ adds r1, r3
+ add r1, r12
+ ldrb r0, [r7]
+ lsls r0, 9
+ add r0, r8
+ ldrb r0, [r0]
+ strb r0, [r1]
+_08012CBE:
+ ldr r0, _08012CDC @ =gUnknown_02024D1E
+ ldrb r1, [r7]
+ b _08012E3C
+ .align 2, 0
+_08012CC4: .4byte 0x02000000
+_08012CC8: .4byte 0x00016068
+_08012CCC: .4byte gUnknown_020239F8
+_08012CD0: .4byte 0x0001606c
+_08012CD4: .4byte 0x0001606d
+_08012CD8: .4byte 0x0001606e
+_08012CDC: .4byte gUnknown_02024D1E
+_08012CE0:
+ ldr r2, _08012CF8 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 8
+ orrs r0, r1
+ str r0, [r2]
+ ldr r2, _08012CFC @ =gUnknown_02024D1E
+ ldr r0, _08012D00 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ adds r1, r2
+ b _08012E3E
+ .align 2, 0
+_08012CF8: .4byte gUnknown_02024C6C
+_08012CFC: .4byte gUnknown_02024D1E
+_08012D00: .4byte gUnknown_02024A60
+_08012D04:
+ ldr r2, _08012D10 @ =gUnknown_02024D1E
+ ldr r0, _08012D14 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ adds r1, r2
+ b _08012E3E
+ .align 2, 0
+_08012D10: .4byte gUnknown_02024D1E
+_08012D14: .4byte gUnknown_02024A60
+_08012D18:
+ ldr r2, _08012D24 @ =gUnknown_02024D1E
+ ldr r0, _08012D28 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ adds r1, r2
+ b _08012E3E
+ .align 2, 0
+_08012D24: .4byte gUnknown_02024D1E
+_08012D28: .4byte gUnknown_02024A60
+_08012D2C:
+ ldr r2, _08012D50 @ =gUnknown_02024260
+ ldr r0, _08012D54 @ =gUnknown_02024A60
+ ldrb r4, [r0]
+ lsls r1, r4, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r3, r0
+ cmp r3, 0
+ bne _08012D4A
+ b _08012F60
+_08012D4A:
+ ldr r1, _08012D58 @ =gUnknown_02024D1E
+ adds r1, r4, r1
+ b _08012E3E
+ .align 2, 0
+_08012D50: .4byte gUnknown_02024260
+_08012D54: .4byte gUnknown_02024A60
+_08012D58: .4byte gUnknown_02024D1E
+_08012D5C:
+ ldr r2, _08012D68 @ =gUnknown_02024D1E
+ ldr r0, _08012D6C @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ adds r1, r2
+ b _08012E3E
+ .align 2, 0
+_08012D68: .4byte gUnknown_02024D1E
+_08012D6C: .4byte gUnknown_02024A60
+_08012D70:
+ ldr r2, _08012D88 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 8
+ orrs r0, r1
+ str r0, [r2]
+ ldr r2, _08012D8C @ =gUnknown_02024D1E
+ ldr r0, _08012D90 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ adds r1, r2
+ b _08012E3E
+ .align 2, 0
+_08012D88: .4byte gUnknown_02024C6C
+_08012D8C: .4byte gUnknown_02024D1E
+_08012D90: .4byte gUnknown_02024A60
+_08012D94:
+ ldr r2, _08012DA0 @ =gUnknown_02024D1E
+ ldr r0, _08012DA4 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ adds r1, r2
+ b _08012E3E
+ .align 2, 0
+_08012DA0: .4byte gUnknown_02024D1E
+_08012DA4: .4byte gUnknown_02024A60
+_08012DA8:
+ ldr r3, _08012E10 @ =gUnknown_02024A64
+ ldr r4, _08012E14 @ =gBitTable
+ ldr r0, _08012E18 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r4
+ ldr r2, [r0]
+ lsls r1, r2, 4
+ movs r0, 0xF0
+ lsls r0, 24
+ orrs r1, r0
+ orrs r1, r2
+ lsls r0, r2, 8
+ orrs r1, r0
+ lsls r2, 12
+ orrs r1, r2
+ ldr r0, [r3]
+ ands r0, r1
+ cmp r0, 0
+ beq _08012DD2
+ b _08012F66
+_08012DD2:
+ ldr r0, _08012E1C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x41
+ ands r0, r1
+ cmp r0, 0x1
+ bne _08012E06
+ movs r1, 0x2
+ movs r0, 0x2
+ ands r0, r5
+ cmp r0, 0
+ bne _08012E06
+ adds r0, r5, 0
+ eors r0, r1
+ bl battle_get_side_with_given_state
+ ldr r1, _08012E20 @ =0x02000000
+ ldr r2, _08012E24 @ =0x000160a6
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08012E28
+_08012E06:
+ movs r0, 0
+ movs r1, 0
+ bl sub_800D1D8
+ b _08012E30
+ .align 2, 0
+_08012E10: .4byte gUnknown_02024A64
+_08012E14: .4byte gBitTable
+_08012E18: .4byte gUnknown_02024A60
+_08012E1C: .4byte gUnknown_020239F8
+_08012E20: .4byte 0x02000000
+_08012E24: .4byte 0x000160a6
+_08012E28:
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_800D1D8
+_08012E30:
+ ldr r4, _08012E48 @ =gUnknown_02024A60
+_08012E32:
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, _08012E4C @ =gUnknown_02024D1E
+ ldrb r1, [r4]
+_08012E3C:
+ adds r1, r0
+_08012E3E:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08012F66
+ .align 2, 0
+_08012E48: .4byte gUnknown_02024A60
+_08012E4C: .4byte gUnknown_02024D1E
+_08012E50:
+ ldr r3, _08012E84 @ =gUnknown_02024A64
+ ldr r1, _08012E88 @ =gBitTable
+ ldr r0, _08012E8C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, [r0]
+ lsls r1, r2, 4
+ movs r0, 0xF0
+ lsls r0, 24
+ orrs r1, r0
+ orrs r1, r2
+ lsls r0, r2, 8
+ orrs r1, r0
+ lsls r2, 12
+ orrs r1, r2
+ ldr r0, [r3]
+ ands r0, r1
+ cmp r0, 0
+ bne _08012F66
+ ldr r1, _08012E90 @ =gUnknown_02024D1E
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08012F66
+ .align 2, 0
+_08012E84: .4byte gUnknown_02024A64
+_08012E88: .4byte gBitTable
+_08012E8C: .4byte gUnknown_02024A60
+_08012E90: .4byte gUnknown_02024D1E
+_08012E94:
+ ldr r2, _08012EB8 @ =0x02000000
+ ldr r5, _08012EBC @ =gUnknown_02024A60
+ ldrb r1, [r5]
+ ldr r3, _08012EC0 @ =0x00016060
+ adds r0, r1, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08012ECC
+ ldr r0, _08012EC4 @ =gUnknown_02024D1E
+ adds r0, r1, r0
+ ldr r4, _08012EC8 @ =0x00016094
+ adds r1, r4
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _08012F66
+ .align 2, 0
+_08012EB8: .4byte 0x02000000
+_08012EBC: .4byte gUnknown_02024A60
+_08012EC0: .4byte 0x00016060
+_08012EC4: .4byte gUnknown_02024D1E
+_08012EC8: .4byte 0x00016094
+_08012ECC:
+ ldr r0, _08012F20 @ =gUnknown_02024C07
+ strb r1, [r0]
+ ldr r7, _08012F24 @ =gUnknown_02024C10
+ ldr r6, _08012F28 @ =gUnknown_02024C1C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r6
+ ldr r4, [r0]
+ str r4, [r7]
+ ldr r3, _08012F2C @ =gUnknown_02024A64
+ ldr r1, _08012F30 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, [r0]
+ lsls r1, r2, 4
+ movs r0, 0xF0
+ lsls r0, 24
+ orrs r1, r0
+ orrs r1, r2
+ lsls r0, r2, 8
+ orrs r1, r0
+ lsls r2, 12
+ orrs r1, r2
+ ldr r0, [r3]
+ ands r0, r1
+ cmp r0, 0
+ bne _08012F12
+ ldr r0, _08012F34 @ =gUnknown_081FA73C
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+_08012F12:
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r7]
+ str r1, [r0]
+ b _08012F66
+ .align 2, 0
+_08012F20: .4byte gUnknown_02024C07
+_08012F24: .4byte gUnknown_02024C10
+_08012F28: .4byte gUnknown_02024C1C
+_08012F2C: .4byte gUnknown_02024A64
+_08012F30: .4byte gBitTable
+_08012F34: .4byte gUnknown_081FA73C
+_08012F38:
+ ldr r3, _08012FA0 @ =gUnknown_02024A64
+ ldr r1, _08012FA4 @ =gBitTable
+ ldr r0, _08012FA8 @ =gUnknown_02024A60
+ ldrb r4, [r0]
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r2, [r0]
+ lsls r0, r2, 4
+ movs r1, 0xF0
+ lsls r1, 24
+ orrs r0, r1
+ orrs r0, r2
+ lsls r1, r2, 8
+ orrs r0, r1
+ lsls r2, 12
+ orrs r0, r2
+ ldr r3, [r3]
+ ands r3, r0
+ cmp r3, 0
+ bne _08012F66
+_08012F60:
+ ldr r0, _08012FAC @ =gUnknown_02024D1E
+ adds r0, r4, r0
+ strb r3, [r0]
+_08012F66:
+ ldr r0, _08012FA8 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08012FB0 @ =gUnknown_02024A68
+ lsls r1, 24
+ lsrs r1, 24
+_08012F74:
+ adds r2, r0, 0
+ ldrb r0, [r2]
+ cmp r1, r0
+ bcs _08012F80
+ bl _0801234C
+_08012F80:
+ ldr r0, _08012FAC @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x4]
+ ldrb r2, [r2]
+ cmp r0, r2
+ bne _08012F90
+ ldr r1, _08012FB4 @ =gUnknown_030042D4
+ ldr r0, _08012FB8 @ =sub_80133C8
+ str r0, [r1]
+_08012F90:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08012FA0: .4byte gUnknown_02024A64
+_08012FA4: .4byte gBitTable
+_08012FA8: .4byte gUnknown_02024A60
+_08012FAC: .4byte gUnknown_02024D1E
+_08012FB0: .4byte gUnknown_02024A68
+_08012FB4: .4byte gUnknown_030042D4
+_08012FB8: .4byte sub_80133C8
+ thumb_func_end sub_8012324
+
+ thumb_func_start sub_8012FBC
+sub_8012FBC: @ 8012FBC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _08012FE8 @ =gUnknown_02024A76
+ adds r4, r0, r2
+ ldrb r5, [r4]
+ adds r2, r1, r2
+ ldrb r3, [r2]
+ strb r3, [r4]
+ strb r5, [r2]
+ ldr r2, _08012FEC @ =gUnknown_02024A7A
+ adds r0, r2
+ ldrb r5, [r0]
+ adds r1, r2
+ ldrb r2, [r1]
+ strb r2, [r0]
+ strb r5, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08012FE8: .4byte gUnknown_02024A76
+_08012FEC: .4byte gUnknown_02024A7A
+ thumb_func_end sub_8012FBC
+
+ thumb_func_start b_first_side
+b_first_side: @ 8012FF0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _080130B8
+ ldr r1, [sp, 0x8]
+ str r1, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _080130B8
+ ldr r1, _08013070 @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r9
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r3, [r0]
+ cmp r3, 0x21
+ bne _0801305C
+ ldr r0, _08013074 @ =word_2024DB8
+ ldrh r1, [r0]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801306C
+_0801305C:
+ cmp r3, 0x22
+ bne _08013078
+ ldr r0, _08013074 @ =word_2024DB8
+ ldrh r1, [r0]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _08013078
+_0801306C:
+ movs r3, 0x2
+ b _0801307A
+ .align 2, 0
+_08013070: .4byte gBattleMons
+_08013074: .4byte word_2024DB8
+_08013078:
+ movs r3, 0x1
+_0801307A:
+ movs r0, 0x58
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r2, _080130B0 @ =gBattleMons
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r2, [r0]
+ cmp r2, 0x21
+ bne _0801309A
+ ldr r0, _080130B4 @ =word_2024DB8
+ ldrh r1, [r0]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _080130AA
+_0801309A:
+ cmp r2, 0x22
+ bne _080130BA
+ ldr r0, _080130B4 @ =word_2024DB8
+ ldrh r1, [r0]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _080130BA
+_080130AA:
+ movs r7, 0x2
+ b _080130BC
+ .align 2, 0
+_080130B0: .4byte gBattleMons
+_080130B4: .4byte word_2024DB8
+_080130B8:
+ movs r3, 0x1
+_080130BA:
+ movs r7, 0x1
+_080130BC:
+ ldr r1, _08013100 @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r9
+ muls r2, r0
+ adds r0, r2, 0
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x6]
+ muls r3, r0
+ ldr r2, _08013104 @ =gStatStageRatios
+ movs r1, 0x1B
+ ldrsb r1, [r4, r1]
+ lsls r1, 1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ muls r0, r3
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ bl __divsi3
+ mov r8, r0
+ ldrh r0, [r4, 0x2E]
+ cmp r0, 0xAF
+ bne _0801310C
+ ldr r1, _08013108 @ =gEnigmaBerries
+ mov r3, r9
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r6, [r0, 0x7]
+ ldrb r5, [r0, 0x1A]
+ b _08013120
+ .align 2, 0
+_08013100: .4byte gBattleMons
+_08013104: .4byte gStatStageRatios
+_08013108: .4byte gEnigmaBerries
+_0801310C:
+ ldrh r0, [r4, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrh r0, [r4, 0x2E]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08013120:
+ ldr r0, _080131DC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08013154
+ ldr r0, _080131E0 @ =0x00000809
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _08013154
+ mov r0, r9
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08013154
+ movs r0, 0x6E
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ movs r1, 0x64
+ bl __udivsi3
+ mov r8, r0
+_08013154:
+ cmp r6, 0x18
+ bne _0801315E
+ mov r2, r8
+ lsrs r2, 1
+ mov r8, r2
+_0801315E:
+ ldr r1, _080131E4 @ =gBattleMons
+ movs r0, 0x58
+ mov r3, r9
+ muls r3, r0
+ adds r0, r3, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801317C
+ mov r0, r8
+ lsrs r0, 2
+ mov r8, r0
+_0801317C:
+ cmp r6, 0x1A
+ bne _08013198
+ ldr r0, _080131E8 @ =gUnknown_02024D1C
+ ldrh r4, [r0]
+ lsls r0, r5, 16
+ subs r0, r5
+ movs r1, 0x64
+ bl __divsi3
+ cmp r4, r0
+ bge _08013198
+ movs r1, 0x1
+ negs r1, r1
+ mov r8, r1
+_08013198:
+ ldr r1, _080131E4 @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r0, r2, 0
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x6]
+ adds r3, r0, 0
+ muls r3, r7
+ ldr r2, _080131EC @ =gStatStageRatios
+ movs r1, 0x1B
+ ldrsb r1, [r4, r1]
+ lsls r1, 1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ muls r0, r3
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ bl __divsi3
+ adds r7, r0, 0
+ ldrh r0, [r4, 0x2E]
+ cmp r0, 0xAF
+ bne _080131F4
+ ldr r1, _080131F0 @ =gEnigmaBerries
+ mov r3, r10
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r6, [r0, 0x7]
+ ldrb r5, [r0, 0x1A]
+ b _08013208
+ .align 2, 0
+_080131DC: .4byte gUnknown_020239F8
+_080131E0: .4byte 0x00000809
+_080131E4: .4byte gBattleMons
+_080131E8: .4byte gUnknown_02024D1C
+_080131EC: .4byte gStatStageRatios
+_080131F0: .4byte gEnigmaBerries
+_080131F4:
+ ldrh r0, [r4, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrh r0, [r4, 0x2E]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08013208:
+ ldr r0, _08013280 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08013238
+ ldr r0, _08013284 @ =0x00000809
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _08013238
+ mov r0, r10
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08013238
+ movs r0, 0x6E
+ muls r0, r7
+ movs r1, 0x64
+ bl __udivsi3
+ adds r7, r0, 0
+_08013238:
+ cmp r6, 0x18
+ bne _0801323E
+ lsrs r7, 1
+_0801323E:
+ ldr r2, _08013288 @ =gBattleMons
+ movs r0, 0x58
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ adds r1, r2, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801325A
+ lsrs r7, 2
+_0801325A:
+ cmp r6, 0x1A
+ bne _08013274
+ ldr r0, _0801328C @ =gUnknown_02024D1C
+ ldrh r4, [r0]
+ lsls r0, r5, 16
+ subs r0, r5
+ movs r1, 0x64
+ bl __divsi3
+ cmp r4, r0
+ bge _08013274
+ movs r7, 0x1
+ negs r7, r7
+_08013274:
+ ldr r2, [sp, 0x4]
+ cmp r2, 0
+ beq _08013290
+ movs r3, 0
+ b _08013334
+ .align 2, 0
+_08013280: .4byte gUnknown_020239F8
+_08013284: .4byte 0x00000809
+_08013288: .4byte gBattleMons
+_0801328C: .4byte gUnknown_02024D1C
+_08013290:
+ ldr r0, _080132B0 @ =gUnknown_02024C18
+ mov r3, r9
+ adds r1, r3, r0
+ ldrb r1, [r1]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _080132E4
+ ldr r0, _080132B4 @ =gUnknown_02024D28
+ lsls r1, r3, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 29
+ cmp r0, 0
+ bge _080132B8
+ movs r3, 0xA5
+ b _080132E6
+ .align 2, 0
+_080132B0: .4byte gUnknown_02024C18
+_080132B4: .4byte gUnknown_02024D28
+_080132B8:
+ ldr r1, _080132D8 @ =0x02000000
+ ldr r0, _080132DC @ =0x0001608c
+ add r0, r9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ movs r1, 0x58
+ mov r3, r9
+ muls r3, r1
+ adds r1, r3, 0
+ adds r0, r1
+ ldr r1, _080132E0 @ =gBattleMons
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r3, [r0]
+ b _080132E6
+ .align 2, 0
+_080132D8: .4byte 0x02000000
+_080132DC: .4byte 0x0001608c
+_080132E0: .4byte gBattleMons
+_080132E4:
+ movs r3, 0
+_080132E6:
+ mov r1, r10
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08013334
+ ldr r0, _08013304 @ =gUnknown_02024D28
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 29
+ cmp r0, 0
+ bge _08013308
+ movs r2, 0xA5
+ b _08013336
+ .align 2, 0
+_08013304: .4byte gUnknown_02024D28
+_08013308:
+ ldr r1, _08013328 @ =0x02000000
+ ldr r0, _0801332C @ =0x0001608c
+ add r0, r10
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ movs r1, 0x58
+ mov r2, r10
+ muls r2, r1
+ adds r1, r2, 0
+ adds r0, r1
+ ldr r1, _08013330 @ =gBattleMons
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r2, [r0]
+ b _08013336
+ .align 2, 0
+_08013328: .4byte 0x02000000
+_0801332C: .4byte 0x0001608c
+_08013330: .4byte gBattleMons
+_08013334:
+ movs r2, 0
+_08013336:
+ ldr r4, _08013380 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x7
+ ldrsb r1, [r0, r1]
+ lsls r3, r2, 1
+ cmp r1, 0
+ bne _0801335A
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x7]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _08013398
+_0801335A:
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x7]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _0801338E
+ cmp r8, r7
+ bne _08013384
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08013384
+ movs r3, 0x2
+ b _080133B4
+ .align 2, 0
+_08013380: .4byte gBattleMoves
+_08013384:
+ cmp r8, r7
+ bcs _080133B6
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ b _080133B6
+_0801338E:
+ cmp r1, r0
+ bge _080133B6
+ movs r1, 0x1
+ str r1, [sp, 0x8]
+ b _080133B6
+_08013398:
+ cmp r8, r7
+ bne _080133AE
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080133AE
+ movs r2, 0x2
+ str r2, [sp, 0x8]
+ b _080133B6
+_080133AE:
+ cmp r8, r7
+ bcs _080133B6
+ movs r3, 0x1
+_080133B4:
+ str r3, [sp, 0x8]
+_080133B6:
+ ldr r0, [sp, 0x8]
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end b_first_side
+
+ thumb_func_start sub_80133C8
+sub_80133C8: @ 80133C8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r3, 0
+ ldr r0, _0801341C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08013434
+ ldr r0, _08013420 @ =gUnknown_02024A60
+ strb r3, [r0]
+ ldr r4, _08013424 @ =gUnknown_02024A68
+ mov r8, r0
+ ldrb r0, [r4]
+ cmp r3, r0
+ bcc _080133F0
+ b _08013622
+_080133F0:
+ ldr r7, _08013428 @ =gUnknown_02024A76
+ ldr r6, _0801342C @ =gUnknown_02024C18
+ mov r2, r8
+ ldr r5, _08013430 @ =gUnknown_02024A7A
+_080133F8:
+ adds r1, r3, r7
+ ldrb r0, [r2]
+ adds r0, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r1, r3, r5
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r3, 0x1
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r4]
+ cmp r0, r1
+ bcc _080133F8
+ b _08013622
+ .align 2, 0
+_0801341C: .4byte gUnknown_020239F8
+_08013420: .4byte gUnknown_02024A60
+_08013424: .4byte gUnknown_02024A68
+_08013428: .4byte gUnknown_02024A76
+_0801342C: .4byte gUnknown_02024C18
+_08013430: .4byte gUnknown_02024A7A
+_08013434:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08013484
+ ldr r0, _08013478 @ =gUnknown_02024A60
+ strb r3, [r0]
+ ldr r1, _0801347C @ =gUnknown_02024A68
+ mov r8, r0
+ adds r2, r1, 0
+ ldrb r2, [r2]
+ cmp r3, r2
+ bcs _08013494
+ ldr r0, _08013480 @ =gUnknown_02024C18
+ ldrb r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0x3
+ beq _08013492
+_08013456:
+ mov r7, r8
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0801347C @ =gUnknown_02024A68
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _08013494
+ ldrb r0, [r7]
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _08013456
+ b _08013492
+ .align 2, 0
+_08013478: .4byte gUnknown_02024A60
+_0801347C: .4byte gUnknown_02024A68
+_08013480: .4byte gUnknown_02024C18
+_08013484:
+ ldr r0, _080134FC @ =gUnknown_02024C18
+ ldrb r0, [r0]
+ ldr r2, _08013500 @ =gUnknown_02024A60
+ mov r8, r2
+ cmp r0, 0x3
+ bne _08013494
+ strb r3, [r2]
+_08013492:
+ movs r3, 0x5
+_08013494:
+ cmp r3, 0x5
+ bne _08013520
+ ldr r6, _08013504 @ =gUnknown_02024A76
+ ldr r1, _080134FC @ =gUnknown_02024C18
+ mov r3, r8
+ ldrb r0, [r3]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r6]
+ ldr r2, _08013508 @ =gUnknown_02024A7A
+ ldrb r0, [r3]
+ strb r0, [r2]
+ movs r3, 0x1
+ movs r5, 0
+ adds r4, r1, 0
+ ldr r7, _0801350C @ =gUnknown_030042D4
+ mov r9, r7
+ ldr r0, _08013510 @ =bc_80154A0
+ mov r12, r0
+ ldr r1, _08013514 @ =0x02000000
+ mov r10, r1
+ ldr r7, _08013518 @ =gUnknown_02024A68
+ ldrb r7, [r7]
+ cmp r5, r7
+ bge _080134EC
+ adds r7, r6, 0
+ adds r6, r4, 0
+ adds r4, r2, 0
+ ldr r2, _08013518 @ =gUnknown_02024A68
+_080134CE:
+ mov r0, r8
+ ldrb r0, [r0]
+ cmp r5, r0
+ beq _080134E4
+ adds r1, r3, r7
+ adds r0, r5, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, r4
+ strb r5, [r0]
+ adds r3, 0x1
+_080134E4:
+ adds r5, 0x1
+ ldrb r1, [r2]
+ cmp r5, r1
+ blt _080134CE
+_080134EC:
+ mov r2, r12
+ mov r3, r9
+ str r2, [r3]
+ ldr r1, _0801351C @ =0x0001601d
+ add r1, r10
+ movs r0, 0
+ strb r0, [r1]
+ b _08013632
+ .align 2, 0
+_080134FC: .4byte gUnknown_02024C18
+_08013500: .4byte gUnknown_02024A60
+_08013504: .4byte gUnknown_02024A76
+_08013508: .4byte gUnknown_02024A7A
+_0801350C: .4byte gUnknown_030042D4
+_08013510: .4byte bc_80154A0
+_08013514: .4byte 0x02000000
+_08013518: .4byte gUnknown_02024A68
+_0801351C: .4byte 0x0001601d
+_08013520:
+ movs r0, 0
+ mov r7, r8
+ strb r0, [r7]
+ ldr r1, _080135B0 @ =gUnknown_02024A68
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08013566
+ ldr r6, _080135B4 @ =gUnknown_02024C18
+ mov r2, r8
+ ldr r5, _080135B8 @ =gUnknown_02024A76
+ ldr r4, _080135BC @ =gUnknown_02024A7A
+_08013536:
+ ldrb r0, [r2]
+ adds r0, r6
+ ldrb r1, [r0]
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08013554
+ adds r0, r3, r5
+ strb r1, [r0]
+ adds r1, r3, r4
+ mov r7, r8
+ ldrb r0, [r7]
+ strb r0, [r1]
+ adds r3, 0x1
+_08013554:
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080135B0 @ =gUnknown_02024A68
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08013536
+_08013566:
+ movs r0, 0
+ mov r2, r8
+ strb r0, [r2]
+ ldr r7, _080135B0 @ =gUnknown_02024A68
+ ldrb r0, [r7]
+ cmp r0, 0
+ beq _080135AA
+ ldr r6, _080135B4 @ =gUnknown_02024C18
+ ldr r5, _080135B8 @ =gUnknown_02024A76
+ ldr r4, _080135BC @ =gUnknown_02024A7A
+_0801357A:
+ ldrb r0, [r2]
+ adds r0, r6
+ ldrb r1, [r0]
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08013598
+ adds r0, r3, r5
+ strb r1, [r0]
+ adds r1, r3, r4
+ mov r7, r8
+ ldrb r0, [r7]
+ strb r0, [r1]
+ adds r3, 0x1
+_08013598:
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080135B0 @ =gUnknown_02024A68
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _0801357A
+_080135AA:
+ movs r5, 0
+ b _08013618
+ .align 2, 0
+_080135B0: .4byte gUnknown_02024A68
+_080135B4: .4byte gUnknown_02024C18
+_080135B8: .4byte gUnknown_02024A76
+_080135BC: .4byte gUnknown_02024A7A
+_080135C0:
+ adds r4, r5, 0x1
+ adds r7, r4, 0
+ ldrb r1, [r1]
+ cmp r7, r1
+ bge _08013616
+ ldr r6, _08013640 @ =gUnknown_02024A76
+ lsls r2, r5, 24
+ mov r8, r2
+_080135D0:
+ ldr r0, _08013644 @ =gUnknown_02024A7A
+ adds r1, r5, r0
+ ldrb r3, [r1]
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ adds r0, r5, r6
+ ldrb r2, [r0]
+ cmp r2, 0x1
+ beq _0801360C
+ adds r0, r4, r6
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0801360C
+ cmp r2, 0x2
+ beq _0801360C
+ cmp r0, 0x2
+ beq _0801360C
+ adds r0, r3, 0
+ movs r2, 0
+ bl b_first_side
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801360C
+ lsls r1, r4, 24
+ lsrs r1, 24
+ mov r3, r8
+ lsrs r0, r3, 24
+ bl sub_8012FBC
+_0801360C:
+ adds r4, 0x1
+ ldr r0, _08013648 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _080135D0
+_08013616:
+ adds r5, r7, 0
+_08013618:
+ ldr r1, _08013648 @ =gUnknown_02024A68
+ ldrb r0, [r1]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _080135C0
+_08013622:
+ ldr r1, _0801364C @ =gUnknown_030042D4
+ ldr r0, _08013650 @ =bc_80154A0
+ str r0, [r1]
+ ldr r0, _08013654 @ =0x02000000
+ ldr r7, _08013658 @ =0x0001601d
+ adds r0, r7
+ movs r1, 0
+ strb r1, [r0]
+_08013632:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013640: .4byte gUnknown_02024A76
+_08013644: .4byte gUnknown_02024A7A
+_08013648: .4byte gUnknown_02024A68
+_0801364C: .4byte gUnknown_030042D4
+_08013650: .4byte bc_80154A0
+_08013654: .4byte 0x02000000
+_08013658: .4byte 0x0001601d
+ thumb_func_end sub_80133C8
+
+ thumb_func_start sub_801365C
+sub_801365C: @ 801365C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r1, _080136B4 @ =gUnknown_02024A60
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _080136B8 @ =gUnknown_02024A68
+ ldrb r2, [r0]
+ adds r5, r1, 0
+ cmp r2, 0
+ beq _08013754
+ ldr r7, _080136BC @ =gUnknown_02024D28
+ adds r6, r5, 0
+ ldr r0, _080136C0 @ =gUnknown_02024AD0
+ mov r12, r0
+ ldr r1, _080136C4 @ =gUnknown_02024CA8
+ mov r8, r1
+ mov r10, r8
+_0801368A:
+ mov r2, r9
+ cmp r2, 0
+ beq _080136C8
+ ldrb r1, [r6]
+ lsls r1, 4
+ adds r1, r7
+ ldrb r2, [r1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r6]
+ lsls r1, 4
+ adds r1, r7
+ ldrb r2, [r1]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ b _08013724
+ .align 2, 0
+_080136B4: .4byte gUnknown_02024A60
+_080136B8: .4byte gUnknown_02024A68
+_080136BC: .4byte gUnknown_02024D28
+_080136C0: .4byte gUnknown_02024AD0
+_080136C4: .4byte gUnknown_02024CA8
+_080136C8:
+ ldrb r0, [r6]
+ lsls r0, 4
+ adds r2, r0, r7
+ movs r1, 0
+ mov r4, r10
+ movs r3, 0
+_080136D4:
+ adds r0, r2, r1
+ strb r3, [r0]
+ adds r1, 0x1
+ cmp r1, 0xF
+ bls _080136D4
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r0, r4
+ ldrb r0, [r1, 0x16]
+ cmp r0, 0
+ beq _080136F2
+ subs r0, 0x1
+ strb r0, [r1, 0x16]
+_080136F2:
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r0, r4
+ ldrb r0, [r1, 0x19]
+ cmp r0, 0
+ beq _08013724
+ subs r0, 0x1
+ strb r0, [r1, 0x19]
+ ldrb r2, [r5]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x19]
+ cmp r0, 0
+ bne _08013724
+ movs r0, 0x58
+ muls r2, r0
+ add r2, r12
+ ldr r0, [r2]
+ ldr r1, _0801376C @ =0xffbfffff
+ ands r0, r1
+ str r0, [r2]
+_08013724:
+ ldrb r2, [r5]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ add r0, r8
+ ldrb r0, [r0, 0xA]
+ cmp r0, 0
+ bne _08013742
+ movs r0, 0x58
+ muls r2, r0
+ add r2, r12
+ ldr r0, [r2]
+ ldr r1, _08013770 @ =0xfeffffff
+ ands r0, r1
+ str r0, [r2]
+_08013742:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08013774 @ =gUnknown_02024A68
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _0801368A
+_08013754:
+ movs r0, 0
+ ldr r2, _08013778 @ =gUnknown_02024C80
+ strb r0, [r2, 0x8]
+ strb r0, [r2, 0x14]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801376C: .4byte 0xffbfffff
+_08013770: .4byte 0xfeffffff
+_08013774: .4byte gUnknown_02024A68
+_08013778: .4byte gUnknown_02024C80
+ thumb_func_end sub_801365C
+
+ thumb_func_start sub_801377C
+sub_801377C: @ 801377C
+ push {r4-r6,lr}
+ ldr r2, _080137C0 @ =gUnknown_02024A60
+ movs r0, 0
+ strb r0, [r2]
+ ldr r0, _080137C4 @ =gUnknown_02024A68
+ ldrb r1, [r0]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _080137BA
+ adds r3, r2, 0
+ movs r4, 0
+ ldr r5, _080137C8 @ =gUnknown_02024D68
+_08013794:
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r5
+ movs r1, 0
+_080137A0:
+ adds r0, r2, r1
+ strb r4, [r0]
+ adds r1, 0x1
+ cmp r1, 0x13
+ bls _080137A0
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r6]
+ cmp r0, r1
+ bcc _08013794
+_080137BA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080137C0: .4byte gUnknown_02024A60
+_080137C4: .4byte gUnknown_02024A68
+_080137C8: .4byte gUnknown_02024D68
+ thumb_func_end sub_801377C
+
+ thumb_func_start bc_80154A0
+bc_80154A0: @ 80137CC
+ push {r4-r7,lr}
+ ldr r0, _08013850 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ bne _08013884
+ ldr r0, _08013854 @ =0x02000000
+ ldr r1, _08013858 @ =0x0001601d
+ adds r2, r0, r1
+ ldr r0, _0801385C @ =gUnknown_02024A68
+ ldrb r1, [r2]
+ adds r7, r0, 0
+ ldrb r0, [r7]
+ cmp r1, r0
+ bcs _08013884
+ ldr r6, _08013860 @ =gUnknown_02024A60
+ ldr r5, _08013864 @ =gUnknown_02024C07
+ adds r4, r2, 0
+ movs r1, 0x84
+ lsls r1, 1
+ mov r12, r1
+_080137FA:
+ ldrb r0, [r4]
+ strb r0, [r5]
+ strb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08013868 @ =gUnknown_02024C60
+ ldrb r3, [r6]
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r12
+ bne _0801387C
+ ldr r1, _0801386C @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r3
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801387C
+ ldr r2, _08013870 @ =gUnknown_02024CA8
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x18]
+ lsls r0, 31
+ cmp r0, 0
+ bne _0801387C
+ ldr r0, _08013874 @ =gUnknown_02024D28
+ lsls r1, r3, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 29
+ cmp r0, 0
+ blt _0801387C
+ ldr r0, _08013878 @ =gUnknown_081D94DA
+ bl b_call_bc_move_exec
+ b _080138BE
+ .align 2, 0
+_08013850: .4byte gUnknown_02024C6C
+_08013854: .4byte 0x02000000
+_08013858: .4byte 0x0001601d
+_0801385C: .4byte gUnknown_02024A68
+_08013860: .4byte gUnknown_02024A60
+_08013864: .4byte gUnknown_02024C07
+_08013868: .4byte gUnknown_02024C60
+_0801386C: .4byte gBattleMons
+_08013870: .4byte gUnknown_02024CA8
+_08013874: .4byte gUnknown_02024D28
+_08013878: .4byte gUnknown_081D94DA
+_0801387C:
+ ldrb r0, [r4]
+ ldrb r2, [r7]
+ cmp r0, r2
+ bcc _080137FA
+_08013884:
+ bl b_clear_atk_up_if_hit_flag_unless_enraged
+ ldr r1, _080138C4 @ =gUnknown_02024A7E
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080138C8 @ =gUnknown_02024A7F
+ ldr r0, _080138CC @ =gUnknown_02024A76
+ movs r2, 0
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _080138D0 @ =gUnknown_02024DEC
+ movs r3, 0
+ strh r2, [r0]
+ ldr r1, _080138D4 @ =0x02000000
+ ldr r2, _080138D8 @ =0x0001601c
+ adds r0, r1, r2
+ strb r3, [r0]
+ ldr r2, _080138DC @ =gUnknown_030042D4
+ ldr r0, _080138E0 @ =sub_80138F0
+ str r0, [r2]
+ ldr r0, _080138E4 @ =gUnknown_02024D1E
+ strb r3, [r0, 0x3]
+ strb r3, [r0, 0x4]
+ ldr r2, _080138E8 @ =0x00016112
+ adds r0, r1, r2
+ strb r3, [r0]
+ ldr r0, _080138EC @ =0x00017130
+ adds r1, r0
+ strb r3, [r1]
+_080138BE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080138C4: .4byte gUnknown_02024A7E
+_080138C8: .4byte gUnknown_02024A7F
+_080138CC: .4byte gUnknown_02024A76
+_080138D0: .4byte gUnknown_02024DEC
+_080138D4: .4byte 0x02000000
+_080138D8: .4byte 0x0001601c
+_080138DC: .4byte gUnknown_030042D4
+_080138E0: .4byte sub_80138F0
+_080138E4: .4byte gUnknown_02024D1E
+_080138E8: .4byte 0x00016112
+_080138EC: .4byte 0x00017130
+ thumb_func_end bc_80154A0
+
+ thumb_func_start sub_80138F0
+sub_80138F0: @ 80138F0
+ push {r4-r6,lr}
+ ldr r6, _08013944 @ =gUnknown_02024D26
+ ldrb r0, [r6]
+ ldr r2, _08013948 @ =gUnknown_02024A7F
+ cmp r0, 0
+ beq _08013900
+ movs r0, 0xC
+ strb r0, [r2]
+_08013900:
+ ldr r1, _0801394C @ =0x02000000
+ ldr r4, _08013950 @ =gUnknown_02024A7E
+ ldrb r0, [r4]
+ ldr r3, _08013954 @ =0x00016057
+ adds r5, r1, r3
+ strb r0, [r5]
+ ldr r1, _08013958 @ =gUnknown_081FA640
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _0801395C @ =gUnknown_02024A68
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcc _08013970
+ ldr r2, _08013960 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _08013964 @ =0xffefffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r3, _08013968 @ =gUnknown_030042D4
+ ldr r2, _0801396C @ =gUnknown_081FA678
+ ldrb r1, [r6]
+ movs r0, 0x7F
+ ands r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r3]
+ b _08013984
+ .align 2, 0
+_08013944: .4byte gUnknown_02024D26
+_08013948: .4byte gUnknown_02024A7F
+_0801394C: .4byte 0x02000000
+_08013950: .4byte gUnknown_02024A7E
+_08013954: .4byte 0x00016057
+_08013958: .4byte gUnknown_081FA640
+_0801395C: .4byte gUnknown_02024A68
+_08013960: .4byte gUnknown_02024C6C
+_08013964: .4byte 0xffefffff
+_08013968: .4byte gUnknown_030042D4
+_0801396C: .4byte gUnknown_081FA678
+_08013970:
+ ldrb r0, [r5]
+ cmp r0, r1
+ beq _08013984
+ ldr r2, _0801398C @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _08013990 @ =0xfffffdff
+ ands r0, r1
+ ldr r1, _08013994 @ =0xfff7ffff
+ ands r0, r1
+ str r0, [r2]
+_08013984:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801398C: .4byte gUnknown_02024C6C
+_08013990: .4byte 0xfffffdff
+_08013994: .4byte 0xfff7ffff
+ thumb_func_end sub_80138F0
+
+ thumb_func_start sub_8013998
+sub_8013998: @ 8013998
+ push {r4,lr}
+ ldr r1, _080139D0 @ =gUnknown_02024A7F
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _080139D4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080139EC
+ ldr r1, _080139D8 @ =gUnknown_030041C0
+ ldr r4, _080139DC @ =gUnknown_02024D26
+ ldrb r0, [r4]
+ strb r0, [r1]
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r1, _080139E0 @ =gUnknown_02024C07
+ strb r0, [r1]
+ ldr r1, _080139E4 @ =gUnknown_02024C10
+ ldr r0, _080139E8 @ =gUnknown_081D8E02
+ str r0, [r1]
+ ldrb r1, [r4]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r4]
+ b _08013B48
+ .align 2, 0
+_080139D0: .4byte gUnknown_02024A7F
+_080139D4: .4byte gUnknown_020239F8
+_080139D8: .4byte gUnknown_030041C0
+_080139DC: .4byte gUnknown_02024D26
+_080139E0: .4byte gUnknown_02024C07
+_080139E4: .4byte gUnknown_02024C10
+_080139E8: .4byte gUnknown_081D8E02
+_080139EC:
+ movs r0, 0x90
+ lsls r0, 4
+ ands r0, r1
+ cmp r0, 0
+ beq _08013A04
+ ldr r1, _080139FC @ =gUnknown_02024C10
+ ldr r0, _08013A00 @ =gUnknown_081D8E0D
+ b _08013B46
+ .align 2, 0
+_080139FC: .4byte gUnknown_02024C10
+_08013A00: .4byte gUnknown_081D8E0D
+_08013A04:
+ movs r0, 0xA
+ ands r0, r1
+ cmp r0, 0x8
+ beq _08013A0E
+ b _08013B42
+_08013A0E:
+ bl sub_80325B8
+ ldr r1, _08013A3C @ =gUnknown_02024C10
+ ldr r0, _08013A40 @ =gUnknown_081D8DBE
+ str r0, [r1]
+ ldr r2, _08013A44 @ =gTrainers
+ ldr r0, _08013A48 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ subs r0, 0x2
+ cmp r0, 0x31
+ bls _08013A30
+ b _08013B38
+_08013A30:
+ lsls r0, 2
+ ldr r1, _08013A4C @ =_08013A50
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08013A3C: .4byte gUnknown_02024C10
+_08013A40: .4byte gUnknown_081D8DBE
+_08013A44: .4byte gTrainers
+_08013A48: .4byte gTrainerBattleOpponent
+_08013A4C: .4byte _08013A50
+ .align 2, 0
+_08013A50:
+ .4byte _08013B24
+ .4byte _08013B24
+ .4byte _08013B24
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B18
+ .4byte _08013B2E
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B18
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B24
+ .4byte _08013B24
+ .4byte _08013B24
+_08013B18:
+ ldr r0, _08013B20 @ =0x00000163
+ bl PlayBGM
+ b _08013B48
+ .align 2, 0
+_08013B20: .4byte 0x00000163
+_08013B24:
+ movs r0, 0xD4
+ lsls r0, 1
+ bl PlayBGM
+ b _08013B48
+_08013B2E:
+ movs r0, 0xB1
+ lsls r0, 1
+ bl PlayBGM
+ b _08013B48
+_08013B38:
+ movs r0, 0xCE
+ lsls r0, 1
+ bl PlayBGM
+ b _08013B48
+_08013B42:
+ ldr r1, _08013B54 @ =gUnknown_02024C10
+ ldr r0, _08013B58 @ =gUnknown_081D8DCE
+_08013B46:
+ str r0, [r1]
+_08013B48:
+ ldr r1, _08013B5C @ =gUnknown_030042D4
+ ldr r0, _08013B60 @ =sub_8013C9C
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013B54: .4byte gUnknown_02024C10
+_08013B58: .4byte gUnknown_081D8DCE
+_08013B5C: .4byte gUnknown_030042D4
+_08013B60: .4byte sub_8013C9C
+ thumb_func_end sub_8013998
+
+ thumb_func_start sub_8013B64
+sub_8013B64: @ 8013B64
+ push {r4,lr}
+ ldr r1, _08013B9C @ =gUnknown_02024A7F
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _08013BA0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08013BB8
+ ldr r1, _08013BA4 @ =gUnknown_030041C0
+ ldr r4, _08013BA8 @ =gUnknown_02024D26
+ ldrb r0, [r4]
+ strb r0, [r1]
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r1, _08013BAC @ =gUnknown_02024C07
+ strb r0, [r1]
+ ldr r1, _08013BB0 @ =gUnknown_02024C10
+ ldr r0, _08013BB4 @ =gUnknown_081D8E02
+ str r0, [r1]
+ ldrb r1, [r4]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r4]
+ b _08013BBE
+ .align 2, 0
+_08013B9C: .4byte gUnknown_02024A7F
+_08013BA0: .4byte gUnknown_020239F8
+_08013BA4: .4byte gUnknown_030041C0
+_08013BA8: .4byte gUnknown_02024D26
+_08013BAC: .4byte gUnknown_02024C07
+_08013BB0: .4byte gUnknown_02024C10
+_08013BB4: .4byte gUnknown_081D8E02
+_08013BB8:
+ ldr r1, _08013BCC @ =gUnknown_02024C10
+ ldr r0, _08013BD0 @ =gUnknown_081D8DD1
+ str r0, [r1]
+_08013BBE:
+ ldr r1, _08013BD4 @ =gUnknown_030042D4
+ ldr r0, _08013BD8 @ =sub_8013C9C
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013BCC: .4byte gUnknown_02024C10
+_08013BD0: .4byte gUnknown_081D8DD1
+_08013BD4: .4byte gUnknown_030042D4
+_08013BD8: .4byte sub_8013C9C
+ thumb_func_end sub_8013B64
+
+ thumb_func_start sub_8013BDC
+sub_8013BDC: @ 8013BDC
+ push {lr}
+ ldr r1, _08013C04 @ =gUnknown_02024A7F
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _08013C08 @ =gUnknown_02024D28
+ ldr r0, _08013C0C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 27
+ lsrs r0, 30
+ cmp r0, 0x1
+ beq _08013C18
+ cmp r0, 0x2
+ beq _08013C28
+ ldr r1, _08013C10 @ =gUnknown_02024C10
+ ldr r0, _08013C14 @ =gUnknown_081D8E29
+ b _08013C2C
+ .align 2, 0
+_08013C04: .4byte gUnknown_02024A7F
+_08013C08: .4byte gUnknown_02024D28
+_08013C0C: .4byte gUnknown_02024C07
+_08013C10: .4byte gUnknown_02024C10
+_08013C14: .4byte gUnknown_081D8E29
+_08013C18:
+ ldr r1, _08013C20 @ =gUnknown_02024C10
+ ldr r0, _08013C24 @ =gUnknown_081D8E14
+ b _08013C2C
+ .align 2, 0
+_08013C20: .4byte gUnknown_02024C10
+_08013C24: .4byte gUnknown_081D8E14
+_08013C28:
+ ldr r1, _08013C38 @ =gUnknown_02024C10
+ ldr r0, _08013C3C @ =gUnknown_081D8E22
+_08013C2C:
+ str r0, [r1]
+ ldr r1, _08013C40 @ =gUnknown_030042D4
+ ldr r0, _08013C44 @ =sub_8013C9C
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013C38: .4byte gUnknown_02024C10
+_08013C3C: .4byte gUnknown_081D8E22
+_08013C40: .4byte gUnknown_030042D4
+_08013C44: .4byte sub_8013C9C
+ thumb_func_end sub_8013BDC
+
+ thumb_func_start sub_8013C48
+sub_8013C48: @ 8013C48
+ ldr r1, _08013C7C @ =gUnknown_02024A7F
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _08013C80 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x7
+ strb r0, [r1, 0x1]
+ ldr r2, _08013C84 @ =gUnknown_02024C07
+ ldrb r0, [r2]
+ strb r0, [r1, 0x2]
+ ldr r3, _08013C88 @ =gUnknown_02024A6A
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08013C8C @ =gUnknown_02024C10
+ ldr r0, _08013C90 @ =gUnknown_081D8E30
+ str r0, [r1]
+ ldr r1, _08013C94 @ =gUnknown_030042D4
+ ldr r0, _08013C98 @ =sub_8013C9C
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08013C7C: .4byte gUnknown_02024A7F
+_08013C80: .4byte gUnknown_030041C0
+_08013C84: .4byte gUnknown_02024C07
+_08013C88: .4byte gUnknown_02024A6A
+_08013C8C: .4byte gUnknown_02024C10
+_08013C90: .4byte gUnknown_081D8E30
+_08013C94: .4byte gUnknown_030042D4
+_08013C98: .4byte sub_8013C9C
+ thumb_func_end sub_8013C48
+
+ thumb_func_start sub_8013C9C
+sub_8013C9C: @ 8013C9C
+ push {r4-r7,lr}
+ ldr r0, _08013D00 @ =gUnknown_02024A7F
+ ldrb r0, [r0]
+ subs r0, 0xB
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08013D7C
+ ldr r0, _08013D04 @ =gUnknown_020239F8
+ ldrh r0, [r0]
+ ldr r1, _08013D08 @ =0x00000b92
+ ands r1, r0
+ cmp r1, 0
+ bne _08013D4C
+ ldr r2, _08013D0C @ =gUnknown_02024A60
+ strb r1, [r2]
+ ldr r0, _08013D10 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _08013D48
+ adds r4, r2, 0
+ ldr r6, _08013D14 @ =gBattleMons
+ movs r5, 0x58
+ adds r7, r6, 0
+ adds r7, 0x30
+_08013CCE:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08013D36
+ ldr r2, _08013D18 @ =gUnknown_030042E0
+ ldrh r0, [r2, 0x6]
+ cmp r0, 0
+ bne _08013D1C
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r0, r6
+ ldrh r0, [r0]
+ strh r0, [r2, 0x6]
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r7
+ adds r0, r2, 0
+ adds r0, 0x8
+ bl StringCopy
+ b _08013D36
+ .align 2, 0
+_08013D00: .4byte gUnknown_02024A7F
+_08013D04: .4byte gUnknown_020239F8
+_08013D08: .4byte 0x00000b92
+_08013D0C: .4byte gUnknown_02024A60
+_08013D10: .4byte gUnknown_02024A68
+_08013D14: .4byte gBattleMons
+_08013D18: .4byte gUnknown_030042E0
+_08013D1C:
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r0, r6
+ ldrh r0, [r0]
+ strh r0, [r2, 0x26]
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r7
+ adds r0, r2, 0
+ adds r0, 0x14
+ bl StringCopy
+_08013D36:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08013D68 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08013CCE
+_08013D48:
+ bl sub_80BDEC8
+_08013D4C:
+ movs r0, 0x3
+ bl BeginFastPaletteFade
+ movs r0, 0x5
+ bl FadeOutMapMusic
+ ldr r1, _08013D6C @ =gUnknown_030042D4
+ ldr r0, _08013D70 @ =sub_8013DA8
+ str r0, [r1]
+ ldr r1, _08013D74 @ =gUnknown_03005E94
+ ldr r0, _08013D78 @ =sub_800F808
+ str r0, [r1]
+ b _08013D96
+ .align 2, 0
+_08013D68: .4byte gUnknown_02024A68
+_08013D6C: .4byte gUnknown_030042D4
+_08013D70: .4byte sub_8013DA8
+_08013D74: .4byte gUnknown_03005E94
+_08013D78: .4byte sub_800F808
+_08013D7C:
+ ldr r0, _08013D9C @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08013D96
+ ldr r1, _08013DA0 @ =gUnknown_081FA73C
+ ldr r0, _08013DA4 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+_08013D96:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013D9C: .4byte gUnknown_02024A64
+_08013DA0: .4byte gUnknown_081FA73C
+_08013DA4: .4byte gUnknown_02024C10
+ thumb_func_end sub_8013C9C
+
+ thumb_func_start sub_8013DA8
+sub_8013DA8: @ 8013DA8
+ push {lr}
+ ldr r0, _08013DD0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08013DEA
+ bl ResetSpriteData
+ ldr r0, _08013DD4 @ =gUnknown_03004324
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08013DCA
+ ldr r0, _08013DD8 @ =gUnknown_02024D26
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08013DE4
+_08013DCA:
+ ldr r1, _08013DDC @ =gUnknown_030042D4
+ ldr r0, _08013DE0 @ =c4_overworld
+ b _08013DE8
+ .align 2, 0
+_08013DD0: .4byte gPaletteFade
+_08013DD4: .4byte gUnknown_03004324
+_08013DD8: .4byte gUnknown_02024D26
+_08013DDC: .4byte gUnknown_030042D4
+_08013DE0: .4byte c4_overworld
+_08013DE4:
+ ldr r1, _08013DF0 @ =gUnknown_030042D4
+ ldr r0, _08013DF4 @ =bc_evolution_cutscene
+_08013DE8:
+ str r0, [r1]
+_08013DEA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013DF0: .4byte gUnknown_030042D4
+_08013DF4: .4byte bc_evolution_cutscene
+ thumb_func_end sub_8013DA8
+
+ thumb_func_start bc_evolution_cutscene
+bc_evolution_cutscene: @ 8013DF8
+ push {r4,r5,lr}
+ ldr r0, _08013E4C @ =gUnknown_03004324
+ ldrb r1, [r0]
+ adds r3, r0, 0
+ cmp r1, 0
+ beq _08013E6E
+_08013E04:
+ movs r5, 0
+_08013E06:
+ ldrb r2, [r3]
+ ldr r0, _08013E50 @ =gBitTable
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08013E60
+ bics r2, r1
+ strb r2, [r3]
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08013E54 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08013E60
+ ldr r0, _08013E58 @ =gUnknown_030042D4
+ ldr r1, _08013E5C @ =sub_8013E88
+ str r1, [r0]
+ lsls r3, r5, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r2, 0
+ movs r2, 0x81
+ bl EvolutionScene
+ b _08013E74
+ .align 2, 0
+_08013E4C: .4byte gUnknown_03004324
+_08013E50: .4byte gBitTable
+_08013E54: .4byte gPlayerParty
+_08013E58: .4byte gUnknown_030042D4
+_08013E5C: .4byte sub_8013E88
+_08013E60:
+ adds r5, 0x1
+ ldr r3, _08013E7C @ =gUnknown_03004324
+ cmp r5, 0x5
+ ble _08013E06
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _08013E04
+_08013E6E:
+ ldr r1, _08013E80 @ =gUnknown_030042D4
+ ldr r0, _08013E84 @ =c4_overworld
+ str r0, [r1]
+_08013E74:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013E7C: .4byte gUnknown_03004324
+_08013E80: .4byte gUnknown_030042D4
+_08013E84: .4byte c4_overworld
+ thumb_func_end bc_evolution_cutscene
+
+ thumb_func_start sub_8013E88
+sub_8013E88: @ 8013E88
+ push {lr}
+ ldr r0, _08013EA0 @ =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, _08013EA4 @ =sub_800F808
+ cmp r1, r0
+ bne _08013E9A
+ ldr r1, _08013EA8 @ =gUnknown_030042D4
+ ldr r0, _08013EAC @ =bc_evolution_cutscene
+ str r0, [r1]
+_08013E9A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013EA0: .4byte gMain
+_08013EA4: .4byte sub_800F808
+_08013EA8: .4byte gUnknown_030042D4
+_08013EAC: .4byte bc_evolution_cutscene
+ thumb_func_end sub_8013E88
+
+ thumb_func_start c4_overworld
+c4_overworld: @ 8013EB0
+ push {r4-r6,lr}
+ ldr r5, _08013F30 @ =gUnknown_020239F8
+ ldrh r1, [r5]
+ movs r6, 0x2
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08013ECE
+ ldr r4, _08013F34 @ =gPlayerParty
+ adds r0, r4, 0
+ bl RandomlyGivePartyPokerus
+ adds r0, r4, 0
+ bl PartySpreadPokerus
+_08013ECE:
+ ldrh r4, [r5]
+ adds r0, r6, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _08013EE0
+ ldr r0, _08013F38 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08013F2A
+_08013EE0:
+ ldr r1, _08013F3C @ =gScriptResult
+ ldr r5, _08013F40 @ =gUnknown_02024D26
+ ldrb r0, [r5]
+ strh r0, [r1]
+ ldr r3, _08013F44 @ =gMain
+ ldr r0, _08013F48 @ =0x0000043d
+ adds r2, r3, r0
+ ldrb r1, [r2]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _08013F4C @ =gUnknown_030042D0
+ ldr r0, [r0]
+ str r0, [r3]
+ movs r0, 0x80
+ lsls r0, 3
+ ands r0, r4
+ cmp r0, 0
+ beq _08013F1C
+ ldr r0, _08013F50 @ =gEnemyParty
+ bl sub_8134504
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ beq _08013F18
+ cmp r0, 0x7
+ bne _08013F1C
+_08013F18:
+ bl sub_813452C
+_08013F1C:
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ ldr r0, _08013F44 @ =gMain
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+_08013F2A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013F30: .4byte gUnknown_020239F8
+_08013F34: .4byte gPlayerParty
+_08013F38: .4byte gReceivedRemoteLinkPlayers
+_08013F3C: .4byte gScriptResult
+_08013F40: .4byte gUnknown_02024D26
+_08013F44: .4byte gMain
+_08013F48: .4byte 0x0000043d
+_08013F4C: .4byte gUnknown_030042D0
+_08013F50: .4byte gEnemyParty
+ thumb_func_end c4_overworld
+
+ thumb_func_start sub_8013F54
+sub_8013F54: @ 8013F54
+ push {lr}
+ ldr r0, _08013F84 @ =gUnknown_02024A7F
+ ldrb r0, [r0]
+ subs r0, 0xB
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08013F90
+ ldr r2, _08013F88 @ =0x02017140
+ adds r1, r2, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08013F74
+ subs r0, 0x1
+ strb r0, [r1]
+_08013F74:
+ ldr r0, _08013F8C @ =gUnknown_030042D4
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ str r1, [r0]
+ b _08013FAA
+ .align 2, 0
+_08013F84: .4byte gUnknown_02024A7F
+_08013F88: .4byte 0x02017140
+_08013F8C: .4byte gUnknown_030042D4
+_08013F90:
+ ldr r0, _08013FB0 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08013FAA
+ ldr r1, _08013FB4 @ =gUnknown_081FA73C
+ ldr r0, _08013FB8 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+_08013FAA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013FB0: .4byte gUnknown_02024A64
+_08013FB4: .4byte gUnknown_081FA73C
+_08013FB8: .4byte gUnknown_02024C10
+ thumb_func_end sub_8013F54
+
+ thumb_func_start sub_8013FBC
+sub_8013FBC: @ 8013FBC
+ push {lr}
+ ldr r0, _08013FDC @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08013FD8
+ ldr r1, _08013FE0 @ =gUnknown_081FA73C
+ ldr r0, _08013FE4 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+_08013FD8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013FDC: .4byte gUnknown_02024A64
+_08013FE0: .4byte gUnknown_081FA73C
+_08013FE4: .4byte gUnknown_02024C10
+ thumb_func_end sub_8013FBC
+
+ thumb_func_start sub_8013FE8
+sub_8013FE8: @ 8013FE8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ movs r0, 0x4
+ str r0, [sp]
+ ldr r7, _08014028 @ =gUnknown_02024C07
+ ldr r1, _0801402C @ =gUnknown_02024A7A
+ ldr r0, _08014030 @ =gUnknown_02024A7E
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r7]
+ ldr r1, _08014034 @ =0x02000000
+ mov r10, r1
+ ldr r0, _08014038 @ =0x000160a6
+ add r0, r10
+ ldrb r2, [r0]
+ ldr r1, _0801403C @ =gBitTable
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ beq _08014044
+ ldr r1, _08014040 @ =gUnknown_02024A7F
+ movs r0, 0xC
+ b _080146CC
+ .align 2, 0
+_08014028: .4byte gUnknown_02024C07
+_0801402C: .4byte gUnknown_02024A7A
+_08014030: .4byte gUnknown_02024A7E
+_08014034: .4byte 0x02000000
+_08014038: .4byte 0x000160a6
+_0801403C: .4byte gBitTable
+_08014040: .4byte gUnknown_02024A7F
+_08014044:
+ ldr r1, _080140B8 @ =gCritMultiplier
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _080140BC @ =0x0001601f
+ add r1, r10
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080140C0 @ =0x000160e7
+ add r0, r10
+ strb r2, [r0]
+ ldr r0, _080140C4 @ =gUnknown_02024C68
+ strb r2, [r0]
+ ldr r0, _080140C8 @ =gUnknown_02024C0E
+ strb r2, [r0]
+ ldr r0, _080140CC @ =gUnknown_02024D1E
+ strb r2, [r0, 0x6]
+ ldr r3, _080140D0 @ =gUnknown_02024BE4
+ ldrb r0, [r7]
+ ldr r2, _080140D4 @ =0x0001608c
+ adds r0, r2
+ add r0, r10
+ ldrb r0, [r0]
+ ldr r4, _080140D8 @ =gUnknown_02024BE5
+ strb r0, [r4]
+ strb r0, [r3]
+ ldr r1, _080140DC @ =gUnknown_02024D28
+ ldrb r2, [r7]
+ lsls r0, r2, 4
+ adds r5, r0, r1
+ ldrb r1, [r5]
+ lsls r0, r1, 29
+ adds r4, r2, 0
+ mov r8, r3
+ cmp r0, 0
+ bge _080140F0
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r5]
+ ldr r2, _080140E0 @ =gUnknown_02024BE6
+ ldr r1, _080140E4 @ =gUnknown_02024BE8
+ movs r0, 0xA5
+ strh r0, [r1]
+ strh r0, [r2]
+ ldr r2, _080140E8 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 4
+ orrs r0, r1
+ str r0, [r2]
+ movs r0, 0xA5
+ movs r1, 0
+ bl sub_801B5C0
+ ldrb r1, [r7]
+ ldr r2, _080140EC @ =0x00016010
+ adds r1, r2
+ b _08014200
+ .align 2, 0
+_080140B8: .4byte gCritMultiplier
+_080140BC: .4byte 0x0001601f
+_080140C0: .4byte 0x000160e7
+_080140C4: .4byte gUnknown_02024C68
+_080140C8: .4byte gUnknown_02024C0E
+_080140CC: .4byte gUnknown_02024D1E
+_080140D0: .4byte gUnknown_02024BE4
+_080140D4: .4byte 0x0001608c
+_080140D8: .4byte gUnknown_02024BE5
+_080140DC: .4byte gUnknown_02024D28
+_080140E0: .4byte gUnknown_02024BE6
+_080140E4: .4byte gUnknown_02024BE8
+_080140E8: .4byte gUnknown_02024C6C
+_080140EC: .4byte 0x00016010
+_080140F0:
+ ldr r1, _08014128 @ =gBattleMons
+ movs r0, 0x58
+ adds r5, r4, 0
+ muls r5, r0
+ adds r0, r1, 0
+ adds r0, 0x50
+ adds r0, r5, r0
+ ldr r2, [r0]
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r2
+ cmp r0, 0
+ bne _08014114
+ movs r6, 0x80
+ lsls r6, 15
+ ands r6, r2
+ cmp r6, 0
+ beq _08014138
+_08014114:
+ ldr r3, _0801412C @ =gUnknown_02024BE6
+ ldr r2, _08014130 @ =gUnknown_02024BE8
+ ldr r1, _08014134 @ =gUnknown_02024C54
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ strh r0, [r3]
+ b _08014280
+ .align 2, 0
+_08014128: .4byte gBattleMons
+_0801412C: .4byte gUnknown_02024BE6
+_08014130: .4byte gUnknown_02024BE8
+_08014134: .4byte gUnknown_02024C54
+_08014138:
+ ldr r3, _08014188 @ =gUnknown_02024CA8
+ mov r12, r3
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r2, r0, r3
+ ldrh r4, [r2, 0x6]
+ adds r1, r4, 0
+ cmp r1, 0
+ beq _08014218
+ ldrb r3, [r2, 0xC]
+ lsls r0, r3, 1
+ adds r0, r5
+ str r0, [sp, 0x8]
+ ldr r0, _0801418C @ =gBattleMons
+ adds r0, 0xC
+ mov r9, r0
+ ldr r0, [sp, 0x8]
+ add r0, r9
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _080141A0
+ ldr r1, _08014190 @ =gUnknown_02024BE6
+ ldr r0, _08014194 @ =gUnknown_02024BE8
+ strh r4, [r0]
+ strh r4, [r1]
+ ldrb r0, [r2, 0xC]
+ ldr r2, _08014198 @ =gUnknown_02024BE5
+ strb r0, [r2]
+ mov r3, r8
+ strb r0, [r3]
+ ldrh r0, [r1]
+ movs r1, 0
+ bl sub_801B5C0
+ ldrb r1, [r7]
+ ldr r4, _0801419C @ =0x00016010
+ adds r1, r4
+ b _08014200
+ .align 2, 0
+_08014188: .4byte gUnknown_02024CA8
+_0801418C: .4byte gBattleMons
+_08014190: .4byte gUnknown_02024BE6
+_08014194: .4byte gUnknown_02024BE8
+_08014198: .4byte gUnknown_02024BE5
+_0801419C: .4byte 0x00016010
+_080141A0:
+ cmp r1, 0
+ beq _08014218
+ cmp r1, r0
+ beq _08014218
+ ldr r0, _08014208 @ =gUnknown_02024BE5
+ strb r3, [r0]
+ mov r1, r8
+ strb r3, [r1]
+ ldr r3, _0801420C @ =gUnknown_02024BE6
+ ldr r1, _08014210 @ =gUnknown_02024BE8
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r5
+ add r0, r9
+ ldrh r0, [r0]
+ strh r0, [r1]
+ strh r0, [r3]
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r12
+ movs r2, 0
+ strh r6, [r0, 0x6]
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r12
+ strb r2, [r0, 0xC]
+ ldrb r0, [r7]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ add r1, r12
+ ldrb r2, [r1, 0xE]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0xE]
+ ldrh r0, [r3]
+ movs r1, 0
+ bl sub_801B5C0
+ ldrb r1, [r7]
+ ldr r3, _08014214 @ =0x00016010
+ adds r1, r3
+_08014200:
+ add r1, r10
+ strb r0, [r1]
+ b _08014280
+ .align 2, 0
+_08014208: .4byte gUnknown_02024BE5
+_0801420C: .4byte gUnknown_02024BE6
+_08014210: .4byte gUnknown_02024BE8
+_08014214: .4byte 0x00016010
+_08014218:
+ mov r4, r8
+ ldrb r0, [r4]
+ lsls r0, 1
+ ldr r4, _0801425C @ =gUnknown_02024C07
+ ldrb r2, [r4]
+ movs r1, 0x58
+ muls r1, r2
+ adds r0, r1
+ ldr r1, _08014260 @ =gBattleMons
+ adds r1, 0xC
+ adds r0, r1
+ ldr r1, _08014264 @ =gUnknown_02024C60
+ lsls r2, 1
+ adds r2, r1
+ ldrh r3, [r0]
+ ldrh r2, [r2]
+ cmp r3, r2
+ beq _08014278
+ ldr r1, _08014268 @ =gUnknown_02024BE6
+ ldr r0, _0801426C @ =gUnknown_02024BE8
+ strh r3, [r0]
+ strh r3, [r1]
+ ldrh r0, [r1]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r2, _08014270 @ =0x02000000
+ ldrb r1, [r4]
+ ldr r3, _08014274 @ =0x00016010
+ adds r1, r3
+ adds r1, r2
+ strb r0, [r1]
+ b _08014280
+ .align 2, 0
+_0801425C: .4byte gUnknown_02024C07
+_08014260: .4byte gBattleMons
+_08014264: .4byte gUnknown_02024C60
+_08014268: .4byte gUnknown_02024BE6
+_0801426C: .4byte gUnknown_02024BE8
+_08014270: .4byte 0x02000000
+_08014274: .4byte 0x00016010
+_08014278:
+ ldr r1, _08014298 @ =gUnknown_02024BE6
+ ldr r0, _0801429C @ =gUnknown_02024BE8
+ strh r3, [r0]
+ strh r3, [r1]
+_08014280:
+ ldr r0, _080142A0 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080142A8
+ ldr r0, _080142A4 @ =gUnknown_030042E0
+ ldr r1, _08014298 @ =gUnknown_02024BE6
+ ldrh r1, [r1]
+ strh r1, [r0, 0x22]
+ b _080142B0
+ .align 2, 0
+_08014298: .4byte gUnknown_02024BE6
+_0801429C: .4byte gUnknown_02024BE8
+_080142A0: .4byte gUnknown_02024C07
+_080142A4: .4byte gUnknown_030042E0
+_080142A8:
+ ldr r0, _08014314 @ =gUnknown_030042E0
+ ldr r1, _08014318 @ =gUnknown_02024BE6
+ ldrh r1, [r1]
+ strh r1, [r0, 0x24]
+_080142B0:
+ ldr r4, _0801431C @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _08014320 @ =gUnknown_02024C80
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ adds r5, r0, r1
+ ldrb r0, [r5, 0x8]
+ adds r3, r4, 0
+ cmp r0, 0
+ beq _08014330
+ ldr r2, _08014324 @ =gBattleMoves
+ ldr r0, _08014318 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0
+ bne _08014330
+ ldrb r0, [r3]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldrb r0, [r5, 0x9]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _08014330
+ ldr r1, _08014328 @ =gBattleMons
+ ldrb r2, [r5, 0x9]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08014330
+ ldr r0, _0801432C @ =gUnknown_02024C08
+ strb r2, [r0]
+ b _080146AC
+ .align 2, 0
+_08014314: .4byte gUnknown_030042E0
+_08014318: .4byte gUnknown_02024BE6
+_0801431C: .4byte gUnknown_02024C07
+_08014320: .4byte gUnknown_02024C80
+_08014324: .4byte gBattleMoves
+_08014328: .4byte gBattleMons
+_0801432C: .4byte gUnknown_02024C08
+_08014330:
+ ldr r2, _08014454 @ =gUnknown_020239F8
+ ldrh r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ ldr r3, _08014458 @ =gUnknown_02024C07
+ mov r9, r2
+ cmp r0, 0
+ bne _08014342
+ b _0801461C
+_08014342:
+ ldr r1, _0801445C @ =gUnknown_02024C80
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrb r7, [r0, 0x8]
+ cmp r7, 0
+ beq _08014354
+ b _08014570
+_08014354:
+ ldr r2, _08014460 @ =gBattleMoves
+ ldr r0, _08014464 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r0, r2
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08014370
+ ldrb r0, [r4, 0x6]
+ cmp r0, 0x10
+ bne _08014370
+ b _08014570
+_08014370:
+ ldr r3, _08014468 @ =gBattleMons
+ ldr r0, _0801446C @ =0x02000000
+ mov r8, r0
+ ldr r2, _08014458 @ =gUnknown_02024C07
+ ldrb r5, [r2]
+ ldr r1, _08014470 @ =0x00016010
+ adds r0, r5, r1
+ add r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r3, r2, 0
+ cmp r0, 0x1F
+ bne _08014394
+ b _08014570
+_08014394:
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0xD
+ beq _0801439C
+ b _08014570
+_0801439C:
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _08014474 @ =gUnknown_02024A60
+ strb r7, [r1]
+ ldr r0, _08014478 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcs _08014416
+ adds r4, r1, 0
+ mov r5, r8
+_080143B6:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r6, r0
+ beq _08014404
+ ldr r0, _08014458 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ ldr r2, _08014470 @ =0x00016010
+ adds r0, r2
+ adds r0, r5
+ ldrb r0, [r0]
+ ldrb r3, [r4]
+ cmp r0, r3
+ beq _08014404
+ ldr r1, _08014468 @ =gBattleMons
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1F
+ bne _08014404
+ adds r0, r2, 0
+ bl sub_801E3B4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp]
+ cmp r0, r1
+ bcs _08014404
+ ldrb r0, [r4]
+ bl sub_801E3B4
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+_08014404:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08014478 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _080143B6
+_08014416:
+ ldr r2, [sp]
+ cmp r2, 0x4
+ beq _0801441E
+ b _08014522
+_0801441E:
+ ldr r2, _08014460 @ =gBattleMoves
+ ldr r0, _0801447C @ =gUnknown_02024BE8
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x6]
+ ldr r3, [sp]
+ ands r3, r0
+ cmp r3, 0
+ beq _080144A4
+ ldr r0, _08014458 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08014484
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08014480
+ movs r0, 0x1
+ b _08014496
+ .align 2, 0
+_08014454: .4byte gUnknown_020239F8
+_08014458: .4byte gUnknown_02024C07
+_0801445C: .4byte gUnknown_02024C80
+_08014460: .4byte gBattleMoves
+_08014464: .4byte gUnknown_02024BE6
+_08014468: .4byte gBattleMons
+_0801446C: .4byte 0x02000000
+_08014470: .4byte 0x00016010
+_08014474: .4byte gUnknown_02024A60
+_08014478: .4byte gUnknown_02024A68
+_0801447C: .4byte gUnknown_02024BE8
+_08014480:
+ movs r0, 0x3
+ b _08014496
+_08014484:
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08014494
+ movs r0, 0
+ b _08014496
+_08014494:
+ movs r0, 0x2
+_08014496:
+ bl battle_get_side_with_given_state
+ ldr r1, _080144A0 @ =gUnknown_02024C08
+ strb r0, [r1]
+ b _080144B6
+ .align 2, 0
+_080144A0: .4byte gUnknown_02024C08
+_080144A4:
+ ldr r2, _080144EC @ =gUnknown_02024C08
+ ldr r1, _080144F0 @ =0x02000000
+ ldr r0, _080144F4 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ ldr r4, _080144F8 @ =0x00016010
+ adds r0, r4
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+_080144B6:
+ ldr r7, _080144FC @ =gUnknown_02024C0C
+ ldrb r0, [r7]
+ ldr r1, _08014500 @ =gBitTable
+ mov r8, r1
+ ldr r5, _080144EC @ =gUnknown_02024C08
+ ldrb r1, [r5]
+ lsls r1, 2
+ add r1, r8
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ bne _080144D0
+ b _080146AC
+_080144D0:
+ ldr r6, _080144F4 @ =gUnknown_02024C07
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _08014504
+ ldrb r0, [r5]
+ b _0801469A
+ .align 2, 0
+_080144EC: .4byte gUnknown_02024C08
+_080144F0: .4byte 0x02000000
+_080144F4: .4byte gUnknown_02024C07
+_080144F8: .4byte 0x00016010
+_080144FC: .4byte gUnknown_02024C0C
+_08014500: .4byte gBitTable
+_08014504:
+ ldrb r0, [r6]
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ strb r0, [r5]
+ ldrb r1, [r7]
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ add r0, r8
+ b _08014690
+_08014522:
+ ldr r4, _0801455C @ =gUnknown_02024A60
+ ldr r0, _08014560 @ =gUnknown_02024A7A
+ ldr r2, [sp]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldrb r0, [r4]
+ ldr r2, _08014564 @ =gBattleMons
+ movs r1, 0x58
+ muls r1, r0
+ adds r1, r2
+ adds r1, 0x20
+ ldrb r1, [r1]
+ bl sub_81074C4
+ ldr r2, _08014568 @ =gUnknown_02024D68
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r1, _0801456C @ =gUnknown_02024C08
+ ldrb r0, [r4]
+ strb r0, [r1]
+ b _080146AC
+ .align 2, 0
+_0801455C: .4byte gUnknown_02024A60
+_08014560: .4byte gUnknown_02024A7A
+_08014564: .4byte gBattleMons
+_08014568: .4byte gUnknown_02024D68
+_0801456C: .4byte gUnknown_02024C08
+_08014570:
+ mov r4, r9
+ ldrh r1, [r4]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0801461C
+ ldr r2, _080145B4 @ =gBattleMoves
+ ldr r0, _080145B8 @ =gUnknown_02024BE8
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801461C
+ ldrb r0, [r3]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080145C0
+ bl Random
+ adds r1, r4, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080145BC
+ movs r0, 0x1
+ b _080145D2
+ .align 2, 0
+_080145B4: .4byte gBattleMoves
+_080145B8: .4byte gUnknown_02024BE8
+_080145BC:
+ movs r0, 0x3
+ b _080145D2
+_080145C0:
+ bl Random
+ adds r1, r4, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080145D0
+ movs r0, 0
+ b _080145D2
+_080145D0:
+ movs r0, 0x2
+_080145D2:
+ bl battle_get_side_with_given_state
+ ldr r1, _0801460C @ =gUnknown_02024C08
+ strb r0, [r1]
+ ldr r0, _08014610 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _08014614 @ =gBitTable
+ ldr r5, _0801460C @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080146AC
+ ldr r0, _08014618 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _080146AC
+ ldrb r0, [r5]
+ b _0801469A
+ .align 2, 0
+_0801460C: .4byte gUnknown_02024C08
+_08014610: .4byte gUnknown_02024C0C
+_08014614: .4byte gBitTable
+_08014618: .4byte gUnknown_02024C07
+_0801461C:
+ ldr r5, _08014660 @ =gUnknown_02024C08
+ ldr r1, _08014664 @ =0x02000000
+ adds r2, r3, 0
+ ldrb r0, [r2]
+ ldr r4, _08014668 @ =0x00016010
+ adds r0, r4
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldr r6, _0801466C @ =gUnknown_02024C0C
+ ldrb r1, [r6]
+ ldr r7, _08014670 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r7
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080146AC
+ ldrb r0, [r2]
+ str r3, [sp, 0x4]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ ldr r3, [sp, 0x4]
+ cmp r4, r0
+ beq _08014674
+ ldrb r0, [r5]
+ b _0801469A
+ .align 2, 0
+_08014660: .4byte gUnknown_02024C08
+_08014664: .4byte 0x02000000
+_08014668: .4byte 0x00016010
+_0801466C: .4byte gUnknown_02024C0C
+_08014670: .4byte gBitTable
+_08014674:
+ ldrb r0, [r3]
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ strb r0, [r5]
+ ldrb r1, [r6]
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r0, r7
+_08014690:
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080146AC
+ adds r0, r2, 0
+_0801469A:
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ strb r0, [r5]
+_080146AC:
+ ldr r4, _080146E0 @ =gUnknown_02024C10
+ ldr r3, _080146E4 @ =gUnknown_081D6BBC
+ ldr r2, _080146E8 @ =gBattleMoves
+ ldr r0, _080146EC @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r4]
+ ldr r1, _080146F0 @ =gUnknown_02024A7F
+ movs r0, 0xA
+_080146CC:
+ strb r0, [r1]
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080146E0: .4byte gUnknown_02024C10
+_080146E4: .4byte gUnknown_081D6BBC
+_080146E8: .4byte gBattleMoves
+_080146EC: .4byte gUnknown_02024BE6
+_080146F0: .4byte gUnknown_02024A7F
+ thumb_func_end sub_8013FE8
+
+ thumb_func_start sub_80146F4
+sub_80146F4: @ 80146F4
+ push {r4,lr}
+ ldr r3, _08014764 @ =gUnknown_02024C07
+ ldr r1, _08014768 @ =gUnknown_02024A7A
+ ldr r0, _0801476C @ =gUnknown_02024A7E
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r3]
+ ldr r0, _08014770 @ =gUnknown_030042A4
+ movs r2, 0
+ strh r2, [r0]
+ ldr r0, _08014774 @ =gUnknown_030042A0
+ strh r2, [r0]
+ ldr r1, _08014778 @ =gUnknown_02024E60
+ ldrb r0, [r3]
+ adds r0, r1
+ strb r2, [r0]
+ ldr r1, _0801477C @ =gUnknown_02024E64
+ ldrb r0, [r3]
+ adds r0, r1
+ strb r2, [r0]
+ ldr r2, _08014780 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r2]
+ movs r0, 0x7
+ strb r0, [r2, 0x1]
+ ldrb r4, [r3]
+ strb r4, [r2, 0x2]
+ ldr r1, _08014784 @ =0x02000000
+ ldrb r0, [r3]
+ ldr r3, _08014788 @ =0x00016064
+ adds r0, r3
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2, 0x3]
+ movs r0, 0xFF
+ strb r0, [r2, 0x4]
+ ldr r0, _0801478C @ =0x00016003
+ adds r1, r0
+ strb r4, [r1]
+ ldr r1, _08014790 @ =gUnknown_02024C10
+ ldr r0, _08014794 @ =gUnknown_081D8E4E
+ str r0, [r1]
+ ldr r1, _08014798 @ =gUnknown_02024A7F
+ movs r0, 0xA
+ strb r0, [r1]
+ ldr r1, _0801479C @ =gUnknown_030042E0
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0xFE
+ bhi _0801475C
+ adds r0, 0x1
+ strb r0, [r1, 0x2]
+_0801475C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08014764: .4byte gUnknown_02024C07
+_08014768: .4byte gUnknown_02024A7A
+_0801476C: .4byte gUnknown_02024A7E
+_08014770: .4byte gUnknown_030042A4
+_08014774: .4byte gUnknown_030042A0
+_08014778: .4byte gUnknown_02024E60
+_0801477C: .4byte gUnknown_02024E64
+_08014780: .4byte gUnknown_030041C0
+_08014784: .4byte 0x02000000
+_08014788: .4byte 0x00016064
+_0801478C: .4byte 0x00016003
+_08014790: .4byte gUnknown_02024C10
+_08014794: .4byte gUnknown_081D8E4E
+_08014798: .4byte gUnknown_02024A7F
+_0801479C: .4byte gUnknown_030042E0
+ thumb_func_end sub_80146F4
+
+ thumb_func_start sub_80147A0
+sub_80147A0: @ 80147A0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _08014804 @ =gUnknown_02024C07
+ ldr r2, _08014808 @ =gUnknown_02024C08
+ ldr r1, _0801480C @ =gUnknown_02024A7A
+ ldr r0, _08014810 @ =gUnknown_02024A7E
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ strb r0, [r4]
+ ldr r0, _08014814 @ =gUnknown_030042A4
+ movs r2, 0
+ strh r2, [r0]
+ ldr r0, _08014818 @ =gUnknown_030042A0
+ strh r2, [r0]
+ ldr r3, _0801481C @ =gUnknown_02024CA8
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strb r2, [r0, 0x10]
+ ldr r5, _08014820 @ =gUnknown_02024C04
+ ldr r2, _08014824 @ =gUnknown_02024260
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r3, r0
+ strh r3, [r5]
+ cmp r3, 0xC
+ bhi _08014830
+ ldr r2, _08014828 @ =gUnknown_02024C10
+ ldr r1, _0801482C @ =gUnknown_081D9E48
+ ldrh r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ b _08014A8C
+ .align 2, 0
+_08014804: .4byte gUnknown_02024C07
+_08014808: .4byte gUnknown_02024C08
+_0801480C: .4byte gUnknown_02024A7A
+_08014810: .4byte gUnknown_02024A7E
+_08014814: .4byte gUnknown_030042A4
+_08014818: .4byte gUnknown_030042A0
+_0801481C: .4byte gUnknown_02024CA8
+_08014820: .4byte gUnknown_02024C04
+_08014824: .4byte gUnknown_02024260
+_08014828: .4byte gUnknown_02024C10
+_0801482C: .4byte gUnknown_081D9E48
+_08014830:
+ adds r0, r3, 0
+ subs r0, 0x50
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _0801484C
+ ldr r0, _08014844 @ =gUnknown_02024C10
+ ldr r1, _08014848 @ =gUnknown_081D9E94
+ b _0801485C
+ .align 2, 0
+_08014844: .4byte gUnknown_02024C10
+_08014848: .4byte gUnknown_081D9E94
+_0801484C:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801486C
+ ldr r0, _08014864 @ =gUnknown_02024C10
+ ldr r1, _08014868 @ =gUnknown_081D9E7C
+_0801485C:
+ ldr r1, [r1]
+ str r1, [r0]
+ b _08014A8C
+ .align 2, 0
+_08014864: .4byte gUnknown_02024C10
+_08014868: .4byte gUnknown_081D9E7C
+_0801486C:
+ ldr r2, _080148A0 @ =0x02000000
+ ldrb r0, [r4]
+ ldr r3, _080148A4 @ =0x00016003
+ adds r1, r2, r3
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r1, _080148A8 @ =0x000160d8
+ adds r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ mov r8, r4
+ ldr r3, _080148AC @ =gUnknown_02024C10
+ mov r9, r3
+ ldr r1, _080148B0 @ =gUnknown_081D9E7C
+ mov r10, r1
+ adds r7, r2, 0
+ cmp r0, 0x4
+ bls _08014896
+ b _08014A74
+_08014896:
+ lsls r0, 2
+ ldr r1, _080148B4 @ =_080148B8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080148A0: .4byte 0x02000000
+_080148A4: .4byte 0x00016003
+_080148A8: .4byte 0x000160d8
+_080148AC: .4byte gUnknown_02024C10
+_080148B0: .4byte gUnknown_081D9E7C
+_080148B4: .4byte _080148B8
+ .align 2, 0
+_080148B8:
+ .4byte _08014A74
+ .4byte _08014A74
+ .4byte _080148CC
+ .4byte _08014958
+ .4byte _08014A30
+_080148CC:
+ ldr r2, _08014904 @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r2, 0x5]
+ ldr r1, _08014908 @ =gUnknown_02024C07
+ ldrb r0, [r1]
+ lsrs r0, 1
+ ldr r6, _0801490C @ =0x000160da
+ adds r0, r6
+ adds r0, r7
+ ldrb r3, [r0]
+ movs r0, 0x1
+ ands r0, r3
+ mov r8, r1
+ cmp r0, 0
+ beq _08014918
+ movs r0, 0x3E
+ ands r0, r3
+ ldr r3, _08014910 @ =gUnknown_02024C10
+ mov r9, r3
+ ldr r1, _08014914 @ =gUnknown_081D9E7C
+ mov r10, r1
+ cmp r0, 0
+ bne _080148FC
+ b _08014A74
+_080148FC:
+ movs r0, 0x5
+ strb r0, [r2, 0x5]
+ b _08014A74
+ .align 2, 0
+_08014904: .4byte gUnknown_02024D1E
+_08014908: .4byte gUnknown_02024C07
+_0801490C: .4byte 0x000160da
+_08014910: .4byte gUnknown_02024C10
+_08014914: .4byte gUnknown_081D9E7C
+_08014918:
+ ldr r3, _08014950 @ =gUnknown_02024C10
+ mov r9, r3
+ ldr r0, _08014954 @ =gUnknown_081D9E7C
+ mov r10, r0
+ adds r5, r7, 0
+ mov r4, r8
+ adds r3, r6, 0
+_08014926:
+ ldrb r0, [r4]
+ lsrs r0, 1
+ adds r0, r3
+ adds r0, r5
+ ldrb r1, [r0]
+ lsrs r1, 1
+ strb r1, [r0]
+ ldrb r0, [r2, 0x5]
+ adds r0, 0x1
+ strb r0, [r2, 0x5]
+ ldrb r0, [r4]
+ lsrs r0, 1
+ adds r0, r3
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08014926
+ b _08014A74
+ .align 2, 0
+_08014950: .4byte gUnknown_02024C10
+_08014954: .4byte gUnknown_081D9E7C
+_08014958:
+ ldr r3, _0801498C @ =gUnknown_02024D1E
+ movs r0, 0x4
+ strb r0, [r3, 0x5]
+ ldr r2, _08014990 @ =gUnknown_02024C07
+ ldrb r0, [r2]
+ lsrs r0, 1
+ ldr r1, _08014994 @ =0x000160da
+ mov r12, r1
+ add r0, r12
+ adds r6, r0, r7
+ ldrb r1, [r6]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r8, r2
+ cmp r5, 0
+ beq _080149A0
+ movs r0, 0x5
+ strb r0, [r3, 0x5]
+ ldr r2, _08014998 @ =gUnknown_02024C10
+ mov r9, r2
+ ldr r3, _0801499C @ =gUnknown_081D9E7C
+ mov r10, r3
+ b _08014A74
+ .align 2, 0
+_0801498C: .4byte gUnknown_02024D1E
+_08014990: .4byte gUnknown_02024C07
+_08014994: .4byte 0x000160da
+_08014998: .4byte gUnknown_02024C10
+_0801499C: .4byte gUnknown_081D9E7C
+_080149A0:
+ ldr r3, _08014A18 @ =gUnknown_030041C0
+ movs r4, 0xFD
+ strb r4, [r3]
+ movs r0, 0x5
+ strb r0, [r3, 0x1]
+ movs r2, 0x1
+ strb r2, [r3, 0x2]
+ movs r0, 0xFF
+ strb r0, [r3, 0x3]
+ ldr r1, _08014A1C @ =gUnknown_03004290
+ strb r4, [r1]
+ strb r5, [r1, 0x1]
+ movs r0, 0xD2
+ strb r0, [r1, 0x2]
+ strb r5, [r1, 0x3]
+ subs r0, 0xD3
+ strb r0, [r1, 0x4]
+ ldrb r0, [r6]
+ ands r2, r0
+ ldr r0, _08014A20 @ =gUnknown_02024C10
+ mov r9, r0
+ ldr r1, _08014A24 @ =gUnknown_081D9E7C
+ mov r10, r1
+ adds r6, r3, 0
+ cmp r2, 0
+ bne _08014A02
+ adds r3, r7, 0
+ mov r5, r8
+ mov r4, r12
+ adds r2, r6, 0
+_080149DC:
+ ldrb r0, [r5]
+ lsrs r0, 1
+ adds r0, r4
+ adds r0, r3
+ ldrb r1, [r0]
+ lsrs r1, 1
+ strb r1, [r0]
+ ldrb r0, [r2, 0x2]
+ adds r0, 0x1
+ strb r0, [r2, 0x2]
+ ldrb r0, [r5]
+ lsrs r0, 1
+ adds r0, r4
+ adds r0, r3
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080149DC
+_08014A02:
+ ldrb r0, [r6, 0x2]
+ adds r0, 0xE
+ ldr r2, _08014A28 @ =0x000160a4
+ adds r1, r7, r2
+ movs r2, 0
+ strb r0, [r1]
+ ldr r3, _08014A2C @ =0x000160a5
+ adds r0, r7, r3
+ strb r2, [r0]
+ b _08014A74
+ .align 2, 0
+_08014A18: .4byte gUnknown_030041C0
+_08014A1C: .4byte gUnknown_03004290
+_08014A20: .4byte gUnknown_02024C10
+_08014A24: .4byte gUnknown_081D9E7C
+_08014A28: .4byte 0x000160a4
+_08014A2C: .4byte 0x000160a5
+_08014A30:
+ ldr r0, _08014A50 @ =gUnknown_020239F8
+ ldrh r0, [r0]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08014A64
+ ldr r1, _08014A54 @ =gUnknown_02024D1E
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ ldr r0, _08014A58 @ =gUnknown_02024C07
+ mov r8, r0
+ ldr r1, _08014A5C @ =gUnknown_02024C10
+ mov r9, r1
+ ldr r2, _08014A60 @ =gUnknown_081D9E7C
+ mov r10, r2
+ b _08014A74
+ .align 2, 0
+_08014A50: .4byte gUnknown_020239F8
+_08014A54: .4byte gUnknown_02024D1E
+_08014A58: .4byte gUnknown_02024C07
+_08014A5C: .4byte gUnknown_02024C10
+_08014A60: .4byte gUnknown_081D9E7C
+_08014A64:
+ ldr r0, _08014AA0 @ =gUnknown_02024D1E
+ strb r1, [r0, 0x5]
+ ldr r3, _08014AA4 @ =gUnknown_02024C07
+ mov r8, r3
+ ldr r0, _08014AA8 @ =gUnknown_02024C10
+ mov r9, r0
+ ldr r1, _08014AAC @ =gUnknown_081D9E7C
+ mov r10, r1
+_08014A74:
+ mov r2, r8
+ ldrb r0, [r2]
+ lsrs r0, 1
+ ldr r3, _08014AB0 @ =0x000160d8
+ adds r0, r3
+ adds r0, r7
+ ldrb r0, [r0]
+ lsls r0, 2
+ add r0, r10
+ ldr r0, [r0]
+ mov r1, r9
+ str r0, [r1]
+_08014A8C:
+ movs r0, 0xA
+ ldr r2, _08014AB4 @ =gUnknown_02024A7F
+ strb r0, [r2]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08014AA0: .4byte gUnknown_02024D1E
+_08014AA4: .4byte gUnknown_02024C07
+_08014AA8: .4byte gUnknown_02024C10
+_08014AAC: .4byte gUnknown_081D9E7C
+_08014AB0: .4byte 0x000160d8
+_08014AB4: .4byte gUnknown_02024A7F
+ thumb_func_end sub_80147A0
+
+ thumb_func_start sub_8014AB8
+sub_8014AB8: @ 8014AB8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r5, 0
+ ldr r1, _08014ADC @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _08014AE4
+ ldr r1, _08014AE0 @ =gEnigmaBerries
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x7]
+ b _08014AEE
+ .align 2, 0
+_08014ADC: .4byte gBattleMons
+_08014AE0: .4byte gEnigmaBerries
+_08014AE4:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r1, r0, 24
+_08014AEE:
+ ldr r0, _08014B18 @ =gUnknown_02024C0B
+ strb r4, [r0]
+ cmp r1, 0x25
+ bne _08014B28
+ ldr r2, _08014B1C @ =gUnknown_02024C04
+ ldr r1, _08014B20 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r2]
+ ldr r0, _08014B24 @ =gUnknown_02024D28
+ lsls r2, r4, 4
+ adds r2, r0
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x19
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ b _08014B50
+ .align 2, 0
+_08014B18: .4byte gUnknown_02024C0B
+_08014B1C: .4byte gUnknown_02024C04
+_08014B20: .4byte gBattleMons
+_08014B24: .4byte gUnknown_02024D28
+_08014B28:
+ ldr r6, _08014B5C @ =gBattleMons
+ movs r2, 0x58
+ adds r0, r4, 0
+ muls r0, r2
+ adds r3, r0, r6
+ adds r0, r3, 0
+ adds r0, 0x20
+ ldrb r1, [r0]
+ cmp r1, 0x32
+ bne _08014B68
+ ldr r0, _08014B60 @ =byte_2024C06
+ strb r1, [r0]
+ ldr r0, _08014B64 @ =gUnknown_02024D28
+ lsls r2, r4, 4
+ adds r2, r0
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x19
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x10
+_08014B50:
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _08014BC2
+ .align 2, 0
+_08014B5C: .4byte gBattleMons
+_08014B60: .4byte byte_2024C06
+_08014B64: .4byte gUnknown_02024D28
+_08014B68:
+ ldr r0, _08014BDC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08014BB6
+ movs r1, 0x1
+ adds r0, r4, 0
+ eors r0, r1
+ muls r0, r2
+ adds r2, r0, r6
+ ldrh r0, [r3, 0x6]
+ ldrh r1, [r2, 0x6]
+ cmp r0, r1
+ bcs _08014BB0
+ lsls r0, 7
+ ldrh r1, [r2, 0x6]
+ bl __divsi3
+ adds r4, r0, 0
+ ldr r0, _08014BE0 @ =0x02000000
+ ldr r1, _08014BE4 @ =0x00016078
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 1
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r4, r1
+ bls _08014BB6
+_08014BB0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08014BB6:
+ ldr r1, _08014BE0 @ =0x02000000
+ ldr r0, _08014BE4 @ =0x00016078
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08014BC2:
+ cmp r5, 0
+ beq _08014BD4
+ ldr r1, _08014BE8 @ =gUnknown_02024A7E
+ ldr r0, _08014BEC @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r1, _08014BF0 @ =gUnknown_02024D26
+ movs r0, 0x4
+ strb r0, [r1]
+_08014BD4:
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08014BDC: .4byte gUnknown_020239F8
+_08014BE0: .4byte 0x02000000
+_08014BE4: .4byte 0x00016078
+_08014BE8: .4byte gUnknown_02024A7E
+_08014BEC: .4byte gUnknown_02024A68
+_08014BF0: .4byte gUnknown_02024D26
+ thumb_func_end sub_8014AB8
+
+ thumb_func_start sub_8014BF4
+sub_8014BF4: @ 8014BF4
+ push {r4-r6,lr}
+ ldr r4, _08014C44 @ =gUnknown_02024C07
+ ldr r1, _08014C48 @ =gUnknown_02024A7A
+ ldr r5, _08014C4C @ =gUnknown_02024A7E
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r0, _08014C50 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08014C9C
+ ldr r0, _08014C54 @ =gUnknown_02024A68
+ ldrb r1, [r0]
+ strb r1, [r5]
+ ldr r2, _08014C58 @ =gUnknown_02024A60
+ movs r0, 0
+ strb r0, [r2]
+ lsls r1, 24
+ cmp r1, 0
+ beq _08014C88
+ adds r4, r2, 0
+ ldr r6, _08014C5C @ =gUnknown_02024C18
+ ldr r5, _08014C60 @ =gUnknown_02024D26
+_08014C28:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08014C64
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _08014C76
+ ldrb r0, [r5]
+ movs r1, 0x2
+ b _08014C72
+ .align 2, 0
+_08014C44: .4byte gUnknown_02024C07
+_08014C48: .4byte gUnknown_02024A7A
+_08014C4C: .4byte gUnknown_02024A7E
+_08014C50: .4byte gUnknown_020239F8
+_08014C54: .4byte gUnknown_02024A68
+_08014C58: .4byte gUnknown_02024A60
+_08014C5C: .4byte gUnknown_02024C18
+_08014C60: .4byte gUnknown_02024D26
+_08014C64:
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _08014C76
+ ldrb r0, [r5]
+ movs r1, 0x1
+_08014C72:
+ orrs r0, r1
+ strb r0, [r5]
+_08014C76:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08014C94 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08014C28
+_08014C88:
+ ldr r0, _08014C98 @ =gUnknown_02024D26
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ b _08014D40
+ .align 2, 0
+_08014C94: .4byte gUnknown_02024A68
+_08014C98: .4byte gUnknown_02024D26
+_08014C9C:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08014CF4
+ ldrb r0, [r4]
+ bl sub_8014AB8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08014D40
+ ldr r1, _08014CDC @ =gBattleMons
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ ldr r1, _08014CE0 @ =0xfdffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r1, _08014CE4 @ =gUnknown_02024D1E
+ movs r0, 0x3
+ strb r0, [r1, 0x5]
+ ldr r1, _08014CE8 @ =gUnknown_02024C10
+ ldr r0, _08014CEC @ =gUnknown_081D8E3B
+ str r0, [r1]
+ ldr r1, _08014CF0 @ =gUnknown_02024A7F
+ movs r0, 0xA
+ b _08014D3E
+ .align 2, 0
+_08014CDC: .4byte gBattleMons
+_08014CE0: .4byte 0xfdffffff
+_08014CE4: .4byte gUnknown_02024D1E
+_08014CE8: .4byte gUnknown_02024C10
+_08014CEC: .4byte gUnknown_081D8E3B
+_08014CF0: .4byte gUnknown_02024A7F
+_08014CF4:
+ ldr r1, _08014D1C @ =gBattleMons
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _08014D20 @ =0x0400e000
+ ands r0, r1
+ cmp r0, 0
+ beq _08014D34
+ ldr r1, _08014D24 @ =gUnknown_02024D1E
+ movs r0, 0x4
+ strb r0, [r1, 0x5]
+ ldr r1, _08014D28 @ =gUnknown_02024C10
+ ldr r0, _08014D2C @ =gUnknown_081D8E3B
+ str r0, [r1]
+ ldr r1, _08014D30 @ =gUnknown_02024A7F
+ movs r0, 0xA
+ b _08014D3E
+ .align 2, 0
+_08014D1C: .4byte gBattleMons
+_08014D20: .4byte 0x0400e000
+_08014D24: .4byte gUnknown_02024D1E
+_08014D28: .4byte gUnknown_02024C10
+_08014D2C: .4byte gUnknown_081D8E3B
+_08014D30: .4byte gUnknown_02024A7F
+_08014D34:
+ ldr r0, _08014D48 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldr r1, _08014D4C @ =gUnknown_02024D26
+ movs r0, 0x6
+_08014D3E:
+ strb r0, [r1]
+_08014D40:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08014D48: .4byte gUnknown_02024A68
+_08014D4C: .4byte gUnknown_02024D26
+ thumb_func_end sub_8014BF4
+
+ thumb_func_start sub_8014D50
+sub_8014D50: @ 8014D50
+ ldr r2, _08014D78 @ =gUnknown_02024C07
+ ldr r1, _08014D7C @ =gUnknown_02024A7A
+ ldr r0, _08014D80 @ =gUnknown_02024A7E
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r0, _08014D84 @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _08014D88 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r1, _08014D8C @ =gUnknown_02024C10
+ ldr r0, _08014D90 @ =gUnknown_081D9E98
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r1, _08014D94 @ =gUnknown_02024A7F
+ movs r0, 0xA
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08014D78: .4byte gUnknown_02024C07
+_08014D7C: .4byte gUnknown_02024A7A
+_08014D80: .4byte gUnknown_02024A7E
+_08014D84: .4byte gUnknown_030042A4
+_08014D88: .4byte gUnknown_030042A0
+_08014D8C: .4byte gUnknown_02024C10
+_08014D90: .4byte gUnknown_081D9E98
+_08014D94: .4byte gUnknown_02024A7F
+ thumb_func_end sub_8014D50
+
+ thumb_func_start sub_8014D98
+sub_8014D98: @ 8014D98
+ ldr r2, _08014DD0 @ =gUnknown_02024C07
+ ldr r1, _08014DD4 @ =gUnknown_02024A7A
+ ldr r0, _08014DD8 @ =gUnknown_02024A7E
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r0, _08014DDC @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _08014DE0 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r1, _08014DE4 @ =gNumSafariBalls
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _08014DE8 @ =gUnknown_02024C04
+ movs r0, 0x5
+ strh r0, [r1]
+ ldr r1, _08014DEC @ =gUnknown_02024C10
+ ldr r0, _08014DF0 @ =gUnknown_081D9E48
+ ldr r0, [r0, 0x14]
+ str r0, [r1]
+ ldr r1, _08014DF4 @ =gUnknown_02024A7F
+ movs r0, 0xA
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08014DD0: .4byte gUnknown_02024C07
+_08014DD4: .4byte gUnknown_02024A7A
+_08014DD8: .4byte gUnknown_02024A7E
+_08014DDC: .4byte gUnknown_030042A4
+_08014DE0: .4byte gUnknown_030042A0
+_08014DE4: .4byte gNumSafariBalls
+_08014DE8: .4byte gUnknown_02024C04
+_08014DEC: .4byte gUnknown_02024C10
+_08014DF0: .4byte gUnknown_081D9E48
+_08014DF4: .4byte gUnknown_02024A7F
+ thumb_func_end sub_8014D98
+
+ thumb_func_start sub_8014DF8
+sub_8014DF8: @ 8014DF8
+ push {r4-r6,lr}
+ ldr r3, _08014E68 @ =gUnknown_02024C07
+ ldr r1, _08014E6C @ =gUnknown_02024A7A
+ ldr r0, _08014E70 @ =gUnknown_02024A7E
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r3]
+ ldr r0, _08014E74 @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _08014E78 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r6, _08014E7C @ =gUnknown_02024D1E
+ ldr r2, _08014E80 @ =gUnknown_02024260
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r1, r2, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ subs r0, 0x1
+ strb r0, [r6, 0x5]
+ ldr r1, _08014E84 @ =gUnknown_02024C04
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r2, 0x2
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r1]
+ ldr r2, _08014E88 @ =0x02000000
+ ldr r0, _08014E8C @ =0x00016087
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bhi _08014E42
+ adds r0, 0x1
+ strb r0, [r1]
+_08014E42:
+ ldr r0, _08014E90 @ =0x00016088
+ adds r4, r2, r0
+ ldrb r5, [r4]
+ adds r3, r5, 0
+ cmp r3, 0x1
+ bls _08014E9C
+ ldr r2, _08014E94 @ =gUnknown_081FA70C
+ ldrb r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldrb r6, [r6, 0x5]
+ adds r0, r6
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _08014E98
+ movs r0, 0x1
+ b _08014E9A
+ .align 2, 0
+_08014E68: .4byte gUnknown_02024C07
+_08014E6C: .4byte gUnknown_02024A7A
+_08014E70: .4byte gUnknown_02024A7E
+_08014E74: .4byte gUnknown_030042A4
+_08014E78: .4byte gUnknown_030042A0
+_08014E7C: .4byte gUnknown_02024D1E
+_08014E80: .4byte gUnknown_02024260
+_08014E84: .4byte gUnknown_02024C04
+_08014E88: .4byte 0x02000000
+_08014E8C: .4byte 0x00016087
+_08014E90: .4byte 0x00016088
+_08014E94: .4byte gUnknown_081FA70C
+_08014E98:
+ subs r0, r5, r0
+_08014E9A:
+ strb r0, [r4]
+_08014E9C:
+ ldr r1, _08014EB0 @ =gUnknown_02024C10
+ ldr r0, _08014EB4 @ =gUnknown_081D9E98
+ ldr r0, [r0, 0x8]
+ str r0, [r1]
+ ldr r1, _08014EB8 @ =gUnknown_02024A7F
+ movs r0, 0xA
+ strb r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08014EB0: .4byte gUnknown_02024C10
+_08014EB4: .4byte gUnknown_081D9E98
+_08014EB8: .4byte gUnknown_02024A7F
+ thumb_func_end sub_8014DF8
+
+ thumb_func_start sub_8014EBC
+sub_8014EBC: @ 8014EBC
+ push {r4,r5,lr}
+ ldr r2, _08014F28 @ =gUnknown_02024C07
+ ldr r1, _08014F2C @ =gUnknown_02024A7A
+ ldr r0, _08014F30 @ =gUnknown_02024A7E
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r0, _08014F34 @ =gUnknown_030042A4
+ movs r5, 0
+ strh r5, [r0]
+ ldr r0, _08014F38 @ =gUnknown_030042A0
+ strh r5, [r0]
+ ldr r3, _08014F3C @ =0x02000000
+ ldr r0, _08014F40 @ =0x00016089
+ adds r2, r3, r0
+ ldr r1, _08014F44 @ =gUnknown_081FA71B
+ subs r0, 0x3
+ adds r4, r3, r0
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ ldrb r1, [r2]
+ adds r0, r1
+ strb r0, [r2]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x14
+ bls _08014EFA
+ movs r0, 0x14
+ strb r0, [r2]
+_08014EFA:
+ ldr r0, _08014F48 @ =0x00016088
+ adds r2, r3, r0
+ ldr r1, _08014F4C @ =gUnknown_081FA71F
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ ldrb r1, [r2]
+ adds r0, r1
+ strb r0, [r2]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x14
+ bls _08014F18
+ movs r0, 0x14
+ strb r0, [r2]
+_08014F18:
+ ldrb r0, [r4]
+ cmp r0, 0x2
+ bhi _08014F54
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r0, _08014F50 @ =gUnknown_02024D1E
+ strb r5, [r0, 0x5]
+ b _08014F5A
+ .align 2, 0
+_08014F28: .4byte gUnknown_02024C07
+_08014F2C: .4byte gUnknown_02024A7A
+_08014F30: .4byte gUnknown_02024A7E
+_08014F34: .4byte gUnknown_030042A4
+_08014F38: .4byte gUnknown_030042A0
+_08014F3C: .4byte 0x02000000
+_08014F40: .4byte 0x00016089
+_08014F44: .4byte gUnknown_081FA71B
+_08014F48: .4byte 0x00016088
+_08014F4C: .4byte gUnknown_081FA71F
+_08014F50: .4byte gUnknown_02024D1E
+_08014F54:
+ ldr r1, _08014F70 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+_08014F5A:
+ ldr r1, _08014F74 @ =gUnknown_02024C10
+ ldr r0, _08014F78 @ =gUnknown_081D9E98
+ ldr r0, [r0, 0x4]
+ str r0, [r1]
+ ldr r1, _08014F7C @ =gUnknown_02024A7F
+ movs r0, 0xA
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08014F70: .4byte gUnknown_02024D1E
+_08014F74: .4byte gUnknown_02024C10
+_08014F78: .4byte gUnknown_081D9E98
+_08014F7C: .4byte gUnknown_02024A7F
+ thumb_func_end sub_8014EBC
+
+ thumb_func_start bs8_exit_by_flight
+bs8_exit_by_flight: @ 8014F80
+ push {r4,lr}
+ ldr r2, _08014FA8 @ =gUnknown_02024C07
+ ldr r1, _08014FAC @ =gUnknown_02024A7A
+ ldr r4, _08014FB0 @ =gUnknown_02024A7E
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ movs r0, 0x11
+ bl PlaySE
+ ldr r0, _08014FB4 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r1, _08014FB8 @ =gUnknown_02024D26
+ movs r0, 0x4
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08014FA8: .4byte gUnknown_02024C07
+_08014FAC: .4byte gUnknown_02024A7A
+_08014FB0: .4byte gUnknown_02024A7E
+_08014FB4: .4byte gUnknown_02024A68
+_08014FB8: .4byte gUnknown_02024D26
+ thumb_func_end bs8_exit_by_flight
+
+ thumb_func_start sub_8014FBC
+sub_8014FBC: @ 8014FBC
+ ldr r3, _08015008 @ =gUnknown_02024C07
+ ldr r1, _0801500C @ =gUnknown_02024A7A
+ ldr r0, _08015010 @ =gUnknown_02024A7E
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ strb r2, [r3]
+ ldr r0, _08015014 @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _08015018 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r1, _0801501C @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x7
+ strb r0, [r1, 0x1]
+ strb r2, [r1, 0x2]
+ ldr r2, _08015020 @ =gUnknown_02024A6A
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08015024 @ =gUnknown_02024C10
+ ldr r0, _08015028 @ =gUnknown_081D9E98
+ ldr r0, [r0, 0xC]
+ str r0, [r1]
+ ldr r1, _0801502C @ =gUnknown_02024A7F
+ movs r0, 0xA
+ strb r0, [r1]
+ ldr r1, _08015030 @ =gUnknown_02024A76
+ movs r0, 0xC
+ strb r0, [r1, 0x1]
+ bx lr
+ .align 2, 0
+_08015008: .4byte gUnknown_02024C07
+_0801500C: .4byte gUnknown_02024A7A
+_08015010: .4byte gUnknown_02024A7E
+_08015014: .4byte gUnknown_030042A4
+_08015018: .4byte gUnknown_030042A0
+_0801501C: .4byte gUnknown_030041C0
+_08015020: .4byte gUnknown_02024A6A
+_08015024: .4byte gUnknown_02024C10
+_08015028: .4byte gUnknown_081D9E98
+_0801502C: .4byte gUnknown_02024A7F
+_08015030: .4byte gUnknown_02024A76
+ thumb_func_end sub_8014FBC
+
+ thumb_func_start bsB_exit_by_move
+bsB_exit_by_move: @ 8015034
+ push {lr}
+ bl sub_80173A4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08015050
+ ldr r0, _08015054 @ =0x02000000
+ ldr r2, _08015058 @ =0x00016059
+ adds r0, r2
+ strb r1, [r0]
+ ldr r1, _0801505C @ =gUnknown_02024A7F
+ movs r0, 0xC
+ strb r0, [r1]
+_08015050:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08015054: .4byte 0x02000000
+_08015058: .4byte 0x00016059
+_0801505C: .4byte gUnknown_02024A7F
+ thumb_func_end bsB_exit_by_move
+
+ thumb_func_start sub_8015060
+sub_8015060: @ 8015060
+ ldr r1, _08015080 @ =gUnknown_02024A7E
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r3, _08015084 @ =gUnknown_02024A7F
+ ldr r2, _08015088 @ =gUnknown_02024A76
+ ldrb r0, [r1]
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r3]
+ ldr r2, _0801508C @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _08015090 @ =0xf1e892af
+ ands r0, r1
+ str r0, [r2]
+ bx lr
+ .align 2, 0
+_08015080: .4byte gUnknown_02024A7E
+_08015084: .4byte gUnknown_02024A7F
+_08015088: .4byte gUnknown_02024A76
+_0801508C: .4byte gUnknown_02024C6C
+_08015090: .4byte 0xf1e892af
+ thumb_func_end sub_8015060
+
+ thumb_func_start bsC_8016D70
+bsC_8016D70: @ 8015094
+ push {r4,r5,lr}
+ ldr r1, _0801510C @ =gUnknown_02024A7E
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r3, _08015110 @ =gUnknown_02024A7F
+ ldr r2, _08015114 @ =gUnknown_02024A76
+ ldrb r0, [r1]
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r3]
+ bl sub_801377C
+ ldr r2, _08015118 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _0801511C @ =0xf1e892af
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _08015120 @ =gUnknown_02024BEC
+ movs r4, 0
+ str r4, [r0]
+ ldr r1, _08015124 @ =0x02000000
+ ldr r2, _08015128 @ =0x00016002
+ adds r0, r1, r2
+ strb r4, [r0]
+ ldr r3, _0801512C @ =0x000160a1
+ adds r0, r1, r3
+ strb r4, [r0]
+ ldr r2, _08015130 @ =gUnknown_02024C3C
+ ldr r5, _08015134 @ =gUnknown_02024C07
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r2
+ movs r2, 0
+ strh r4, [r0]
+ ldr r3, _08015138 @ =gUnknown_02024C44
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r3
+ strh r4, [r0]
+ ldr r3, _0801513C @ =0x0001601c
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _08015140 @ =gUnknown_02024DEC
+ strh r4, [r0]
+ subs r3, 0x10
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _08015144 @ =gUnknown_02024D1E
+ strb r2, [r0, 0x3]
+ strb r2, [r0, 0x4]
+ ldr r3, _08015148 @ =0x00016112
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _0801514C @ =0x00017130
+ adds r1, r0
+ strb r2, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801510C: .4byte gUnknown_02024A7E
+_08015110: .4byte gUnknown_02024A7F
+_08015114: .4byte gUnknown_02024A76
+_08015118: .4byte gUnknown_02024C6C
+_0801511C: .4byte 0xf1e892af
+_08015120: .4byte gUnknown_02024BEC
+_08015124: .4byte 0x02000000
+_08015128: .4byte 0x00016002
+_0801512C: .4byte 0x000160a1
+_08015130: .4byte gUnknown_02024C3C
+_08015134: .4byte gUnknown_02024C07
+_08015138: .4byte gUnknown_02024C44
+_0801513C: .4byte 0x0001601c
+_08015140: .4byte gUnknown_02024DEC
+_08015144: .4byte gUnknown_02024D1E
+_08015148: .4byte 0x00016112
+_0801514C: .4byte 0x00017130
+ thumb_func_end bsC_8016D70
+
+ thumb_func_start sub_8015150
+sub_8015150: @ 8015150
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ cmp r0, 0xA
+ bhi _080151C8
+ lsls r0, 2
+ ldr r1, _08015168 @ =_0801516C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08015168: .4byte _0801516C
+ .align 2, 0
+_0801516C:
+ .4byte _08015198
+ .4byte _080151A0
+ .4byte _080151A8
+ .4byte _080151C4
+ .4byte _080151C8
+ .4byte _080151C4
+ .4byte _080151C8
+ .4byte _080151B0
+ .4byte _080151C8
+ .4byte _080151C8
+ .4byte _080151B4
+_08015198:
+ ldr r0, _0801519C @ =gUnknown_02024C08
+ b _080151C6
+ .align 2, 0
+_0801519C: .4byte gUnknown_02024C08
+_080151A0:
+ ldr r0, _080151A4 @ =gUnknown_02024C07
+ b _080151C6
+ .align 2, 0
+_080151A4: .4byte gUnknown_02024C07
+_080151A8:
+ ldr r0, _080151AC @ =gUnknown_02024C0A
+ b _080151C6
+ .align 2, 0
+_080151AC: .4byte gUnknown_02024C0A
+_080151B0:
+ movs r2, 0
+ b _080151C8
+_080151B4:
+ ldr r0, _080151BC @ =0x02000000
+ ldr r1, _080151C0 @ =0x00016003
+ adds r0, r1
+ b _080151C6
+ .align 2, 0
+_080151BC: .4byte 0x02000000
+_080151C0: .4byte 0x00016003
+_080151C4:
+ ldr r0, _080151D0 @ =gUnknown_02024C09
+_080151C6:
+ ldrb r2, [r0]
+_080151C8:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080151D0: .4byte gUnknown_02024C09
+ thumb_func_end sub_8015150
+
+ thumb_func_start sub_80151D4
+sub_80151D4: @ 80151D4
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r1, _08015204 @ =gBattleMons
+ movs r4, 0x58
+ muls r0, r4
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ mov r12, r1
+ cmp r0, 0x2E
+ bne _08015286
+ movs r3, 0
+ adds r0, r5, 0
+ muls r0, r4
+ adds r1, 0xC
+ adds r1, r0, r1
+ b _08015210
+ .align 2, 0
+_08015204: .4byte gBattleMons
+_08015208:
+ adds r1, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _08015216
+_08015210:
+ ldrh r0, [r1]
+ cmp r0, r2
+ bne _08015208
+_08015216:
+ cmp r3, 0x4
+ beq _08015286
+ movs r7, 0x58
+ adds r2, r5, 0
+ muls r2, r7
+ adds r0, r3, r2
+ mov r6, r12
+ adds r6, 0x24
+ adds r1, r0, r6
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08015232
+ subs r0, 0x1
+ strb r0, [r1]
+_08015232:
+ mov r0, r12
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _08015286
+ ldr r1, _08015290 @ =gUnknown_02024CA8
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _08015294 @ =gBitTable
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08015286
+ ldr r4, _08015298 @ =gUnknown_02024A60
+ strb r5, [r4]
+ adds r1, r3, 0
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r4]
+ muls r0, r7
+ adds r0, r6
+ adds r0, r3
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08015286:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08015290: .4byte gUnknown_02024CA8
+_08015294: .4byte gBitTable
+_08015298: .4byte gUnknown_02024A60
+ thumb_func_end sub_80151D4
+
+ thumb_func_start sub_801529C
+sub_801529C: @ 801529C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x4
+ mov r8, r0
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r4, 0
+ ldr r0, _080153BC @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ bge _08015344
+ ldr r1, _080153C0 @ =gBattleMons
+ movs r0, 0x58
+ adds r7, r5, 0
+ muls r7, r0
+ adds r1, 0xC
+ mov r10, r1
+_080152D2:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r4, 0x1
+ cmp r9, r0
+ beq _0801533A
+ ldr r0, _080153C0 @ =gBattleMons
+ movs r3, 0x58
+ adds r1, r4, 0
+ muls r1, r3
+ adds r1, r0
+ adds r1, 0x20
+ ldrb r1, [r1]
+ adds r4, r0, 0
+ cmp r1, 0x2E
+ bne _0801533A
+ movs r2, 0
+ adds r0, r5, 0
+ muls r0, r3
+ adds r1, r4, 0
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x8F
+ lsls r1, 1
+ cmp r0, r1
+ beq _08015322
+ adds r3, r1, 0
+ mov r0, r10
+ adds r1, r7, r0
+_08015314:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _08015322
+ ldrh r0, [r1]
+ cmp r0, r3
+ bne _08015314
+_08015322:
+ cmp r2, 0x4
+ beq _0801533A
+ mov r8, r2
+ adds r1, r2, r7
+ adds r0, r4, 0
+ adds r0, 0x24
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0801533A
+ subs r0, 0x1
+ strb r0, [r1]
+_0801533A:
+ adds r4, r6, 0
+ ldr r0, _080153BC @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _080152D2
+_08015344:
+ mov r1, r8
+ cmp r1, 0x4
+ beq _080153AC
+ ldr r6, _080153C0 @ =gBattleMons
+ movs r3, 0x58
+ adds r0, r5, 0
+ muls r0, r3
+ adds r1, r6, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _080153AC
+ ldr r1, _080153C4 @ =gUnknown_02024CA8
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _080153C8 @ =gBitTable
+ mov r4, r8
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080153AC
+ ldr r4, _080153CC @ =gUnknown_02024A60
+ strb r5, [r4]
+ mov r1, r8
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r4]
+ muls r0, r3
+ adds r2, r6, 0
+ adds r2, 0x24
+ adds r0, r2
+ add r0, r8
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_080153AC:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080153BC: .4byte gUnknown_02024A68
+_080153C0: .4byte gBattleMons
+_080153C4: .4byte gUnknown_02024CA8
+_080153C8: .4byte gBitTable
+_080153CC: .4byte gUnknown_02024A60
+ thumb_func_end sub_801529C
+
+ thumb_func_start sub_80153D0
+sub_80153D0: @ 80153D0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r6, 0x4
+ movs r1, 0
+ ldr r0, _080154C8 @ =gUnknown_02024A68
+ mov r8, r0
+ ldrb r0, [r0]
+ cmp r1, r0
+ bge _08015452
+ ldr r7, _080154CC @ =gBattleMons
+ movs r2, 0x58
+ mov r12, r2
+ mov r5, r12
+ muls r5, r3
+ adds r0, r7, 0
+ adds r0, 0xC
+ adds r2, r5, r0
+ mov r10, r2
+ mov r9, r5
+_08015402:
+ mov r0, r12
+ muls r0, r1
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r4, r1, 0x1
+ cmp r0, 0x2E
+ bne _08015448
+ cmp r1, r3
+ beq _08015448
+ movs r2, 0
+ mov r1, r10
+ ldrh r0, [r1]
+ cmp r0, 0xC3
+ beq _08015432
+ ldr r1, _080154D0 @ =gUnknown_02024A8C
+ add r1, r9
+_08015424:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _08015432
+ ldrh r0, [r1]
+ cmp r0, 0xC3
+ bne _08015424
+_08015432:
+ cmp r2, 0x4
+ beq _08015448
+ adds r6, r2, 0
+ adds r0, r6, r5
+ ldr r2, _080154D4 @ =gUnknown_02024AA4
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08015448
+ subs r0, 0x1
+ strb r0, [r1]
+_08015448:
+ adds r1, r4, 0
+ mov r0, r8
+ ldrb r0, [r0]
+ cmp r1, r0
+ blt _08015402
+_08015452:
+ cmp r6, 0x4
+ beq _080154B6
+ ldr r7, _080154CC @ =gBattleMons
+ movs r5, 0x58
+ adds r0, r3, 0
+ muls r0, r5
+ adds r1, r7, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _080154B6
+ ldr r1, _080154D8 @ =gUnknown_02024CA8
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _080154DC @ =gBitTable
+ lsls r0, r6, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080154B6
+ ldr r4, _080154E0 @ =gUnknown_02024A60
+ strb r3, [r4]
+ adds r1, r6, 0
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r2, r7, 0
+ adds r2, 0x24
+ adds r0, r2
+ adds r0, r6
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_080154B6:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080154C8: .4byte gUnknown_02024A68
+_080154CC: .4byte gBattleMons
+_080154D0: .4byte gUnknown_02024A8C
+_080154D4: .4byte gUnknown_02024AA4
+_080154D8: .4byte gUnknown_02024CA8
+_080154DC: .4byte gBitTable
+_080154E0: .4byte gUnknown_02024A60
+ thumb_func_end sub_80153D0
+
+ thumb_func_start unref_sub_80154E4
+unref_sub_80154E4: @ 80154E4
+ push {r4,r5,lr}
+ ldr r0, _08015514 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08015524
+ movs r2, 0
+ ldr r4, _08015518 @ =gUnknown_02024A68
+ ldrb r0, [r4]
+ cmp r2, r0
+ bge _08015542
+ ldr r3, _0801551C @ =gUnknown_02024A64
+ ldr r5, _08015520 @ =gBitTable
+_08015500:
+ ldm r5!, {r1}
+ lsls r1, 28
+ ldr r0, [r3]
+ orrs r0, r1
+ str r0, [r3]
+ adds r2, 0x1
+ ldrb r0, [r4]
+ cmp r2, r0
+ blt _08015500
+ b _08015542
+ .align 2, 0
+_08015514: .4byte gUnknown_020239F8
+_08015518: .4byte gUnknown_02024A68
+_0801551C: .4byte gUnknown_02024A64
+_08015520: .4byte gBitTable
+_08015524:
+ movs r2, 0
+ ldr r4, _08015548 @ =gUnknown_02024A68
+ ldrb r0, [r4]
+ cmp r2, r0
+ bge _08015542
+ ldr r3, _0801554C @ =gUnknown_02024A64
+ ldr r5, _08015550 @ =gBitTable
+_08015532:
+ ldr r0, [r3]
+ ldm r5!, {r1}
+ orrs r0, r1
+ str r0, [r3]
+ adds r2, 0x1
+ ldrb r0, [r4]
+ cmp r2, r0
+ blt _08015532
+_08015542:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08015548: .4byte gUnknown_02024A68
+_0801554C: .4byte gUnknown_02024A64
+_08015550: .4byte gBitTable
+ thumb_func_end unref_sub_80154E4
+
+ thumb_func_start dp01_battle_side_mark_buffer_for_execution
+dp01_battle_side_mark_buffer_for_execution: @ 8015554
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0801557C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08015588
+ ldr r2, _08015580 @ =gUnknown_02024A64
+ ldr r1, _08015584 @ =gBitTable
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ b _08015598
+ .align 2, 0
+_0801557C: .4byte gUnknown_020239F8
+_08015580: .4byte gUnknown_02024A64
+_08015584: .4byte gBitTable
+_08015588:
+ ldr r2, _0801559C @ =gUnknown_02024A64
+ ldr r1, _080155A0 @ =gBitTable
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ orrs r1, r0
+ str r1, [r2]
+_08015598:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801559C: .4byte gUnknown_02024A64
+_080155A0: .4byte gBitTable
+ thumb_func_end dp01_battle_side_mark_buffer_for_execution
+
+ thumb_func_start sub_80155A4
+sub_80155A4: @ 80155A4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r4, 0
+ ldr r5, _080155B8 @ =gUnknown_02024A64
+ ldr r1, _080155BC @ =gBitTable
+ lsls r0, r7, 2
+ adds r6, r0, r1
+ b _080155CE
+ .align 2, 0
+_080155B8: .4byte gUnknown_02024A64
+_080155BC: .4byte gBitTable
+_080155C0:
+ lsls r0, r4, 2
+ ldr r1, [r6]
+ lsls r1, r0
+ ldr r0, [r5]
+ orrs r0, r1
+ str r0, [r5]
+ adds r4, 0x1
+_080155CE:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ blt _080155C0
+ ldr r2, _080155F0 @ =gUnknown_02024A64
+ movs r1, 0x80
+ lsls r1, 21
+ lsls r1, r7
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080155F0: .4byte gUnknown_02024A64
+ thumb_func_end sub_80155A4
+
+ thumb_func_start b_cancel_multi_turn_move_maybe
+b_cancel_multi_turn_move_maybe: @ 80155F4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08015644 @ =gBattleMons
+ movs r2, 0x58
+ adds r3, r0, 0
+ muls r3, r2
+ adds r1, 0x50
+ adds r3, r1
+ ldr r1, [r3]
+ ldr r2, _08015648 @ =0xffffefff
+ ands r1, r2
+ ldr r2, _0801564C @ =0xfffff3ff
+ ands r1, r2
+ movs r2, 0x71
+ negs r2, r2
+ ands r1, r2
+ ldr r2, _08015650 @ =0xfffffcff
+ ands r1, r2
+ str r1, [r3]
+ ldr r1, _08015654 @ =gUnknown_02024C98
+ lsls r2, r0, 2
+ adds r2, r1
+ ldr r1, [r2]
+ ldr r3, _08015658 @ =0xfffbff3f
+ ands r1, r3
+ str r1, [r2]
+ ldr r2, _0801565C @ =gUnknown_02024CA8
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r2, [r1, 0x11]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x11]
+ movs r0, 0
+ strb r0, [r1, 0x10]
+ bx lr
+ .align 2, 0
+_08015644: .4byte gBattleMons
+_08015648: .4byte 0xffffefff
+_0801564C: .4byte 0xfffff3ff
+_08015650: .4byte 0xfffffcff
+_08015654: .4byte gUnknown_02024C98
+_08015658: .4byte 0xfffbff3f
+_0801565C: .4byte gUnknown_02024CA8
+ thumb_func_end b_cancel_multi_turn_move_maybe
+
+ thumb_func_start sub_8015660
+sub_8015660: @ 8015660
+ push {lr}
+ lsls r0, 24
+ ldr r1, _080156AC @ =gUnknown_02024D28
+ lsrs r0, 20
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ bne _080156A6
+ ldrb r2, [r1, 0x1]
+ lsls r0, r2, 30
+ cmp r0, 0
+ blt _080156A6
+ lsls r0, r2, 26
+ cmp r0, 0
+ blt _080156A6
+ lsls r0, r2, 25
+ cmp r0, 0
+ blt _080156A6
+ lsrs r0, r2, 7
+ cmp r0, 0
+ bne _080156A6
+ ldrb r1, [r1, 0x2]
+ lsls r0, r1, 31
+ cmp r0, 0
+ bne _080156A6
+ lsls r0, r1, 30
+ cmp r0, 0
+ blt _080156A6
+ lsls r0, r1, 29
+ cmp r0, 0
+ blt _080156A6
+ lsls r0, r2, 31
+ cmp r0, 0
+ beq _080156B0
+_080156A6:
+ movs r0, 0x1
+ b _080156B2
+ .align 2, 0
+_080156AC: .4byte gUnknown_02024D28
+_080156B0:
+ movs r0, 0
+_080156B2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8015660
+
+ thumb_func_start b_std_message
+b_std_message: @ 80156B8
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r4, _080156D8 @ =gUnknown_02024A60
+ strb r1, [r4]
+ movs r0, 0
+ adds r1, r2, 0
+ bl dp01_build_cmdbuf_x10_TODO
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080156D8: .4byte gUnknown_02024A60
+ thumb_func_end b_std_message
+
+ thumb_func_start sub_80156DC
+sub_80156DC: @ 80156DC
+ push {r4-r6,lr}
+ movs r3, 0
+ ldr r0, _08015730 @ =gUnknown_02024DEA
+ strb r3, [r0]
+ strb r3, [r0, 0x1]
+ movs r1, 0
+ ldr r0, _08015734 @ =gUnknown_02024A68
+ ldrb r2, [r0]
+ adds r6, r0, 0
+ cmp r1, r2
+ bge _0801570A
+ ldr r5, _08015738 @ =gBitTable
+ adds r4, r2, 0
+ ldr r2, _0801573C @ =gUnknown_02024A6A
+_080156F8:
+ ldrh r0, [r2]
+ lsls r0, 2
+ adds r0, r5
+ ldr r0, [r0]
+ orrs r3, r0
+ adds r2, 0x4
+ adds r1, 0x2
+ cmp r1, r4
+ blt _080156F8
+_0801570A:
+ movs r1, 0x1
+ adds r2, r6, 0
+ ldrb r0, [r2]
+ cmp r1, r0
+ bge _0801572A
+ ldr r5, _08015730 @ =gUnknown_02024DEA
+ movs r4, 0x2
+_08015718:
+ adds r0, r1, 0
+ ands r0, r4
+ asrs r0, 1
+ adds r0, r5
+ strb r3, [r0]
+ adds r1, 0x2
+ ldrb r0, [r2]
+ cmp r1, r0
+ blt _08015718
+_0801572A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08015730: .4byte gUnknown_02024DEA
+_08015734: .4byte gUnknown_02024A68
+_08015738: .4byte gBitTable
+_0801573C: .4byte gUnknown_02024A6A
+ thumb_func_end sub_80156DC
+
+ thumb_func_start sub_8015740
+sub_8015740: @ 8015740
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080157A4
+ movs r0, 0x2
+ ands r0, r5
+ lsls r0, 24
+ lsrs r0, 25
+ mov r12, r0
+ ldr r1, _080157B0 @ =gUnknown_02024DEA
+ adds r0, r1
+ strb r4, [r0]
+ adds r5, r4, 0
+ ldr r0, _080157B4 @ =gUnknown_02024A68
+ ldrb r2, [r0]
+ mov r8, r1
+ cmp r4, r2
+ bge _0801579E
+ ldr r0, _080157B8 @ =gUnknown_02024C0C
+ ldrb r7, [r0]
+ ldr r1, _080157BC @ =gBitTable
+ adds r6, r2, 0
+ ldr r3, _080157C0 @ =gUnknown_02024A6A
+ adds r2, r1, 0
+_08015782:
+ ldr r0, [r2]
+ ands r0, r7
+ cmp r0, 0
+ bne _08015794
+ ldrh r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ orrs r4, r0
+_08015794:
+ adds r3, 0x4
+ adds r2, 0x8
+ adds r5, 0x2
+ cmp r5, r6
+ blt _08015782
+_0801579E:
+ mov r0, r12
+ add r0, r8
+ strb r4, [r0]
+_080157A4:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080157B0: .4byte gUnknown_02024DEA
+_080157B4: .4byte gUnknown_02024A68
+_080157B8: .4byte gUnknown_02024C0C
+_080157BC: .4byte gBitTable
+_080157C0: .4byte gUnknown_02024A6A
+ thumb_func_end sub_8015740
+
+ thumb_func_start sub_80157C4
+sub_80157C4: @ 80157C4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080157E0
+ adds r0, r4, 0
+ bl sub_8015740
+ b _08015816
+_080157E0:
+ movs r3, 0x1
+ ldr r5, _0801581C @ =gUnknown_02024A68
+ ldrb r0, [r5]
+ cmp r3, r0
+ bge _08015816
+ ldr r0, _08015820 @ =gUnknown_02024DEA
+ mov r12, r0
+ movs r7, 0x2
+ ldr r6, _08015824 @ =gBitTable
+ ldr r1, _08015828 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r4, r0, r1
+_080157F8:
+ adds r2, r3, 0
+ ands r2, r7
+ asrs r2, 1
+ add r2, r12
+ ldrh r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ adds r3, 0x1
+ ldrb r0, [r5]
+ cmp r3, r0
+ blt _080157F8
+_08015816:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801581C: .4byte gUnknown_02024A68
+_08015820: .4byte gUnknown_02024DEA
+_08015824: .4byte gBitTable
+_08015828: .4byte gUnknown_02024A6A
+ thumb_func_end sub_80157C4
+
+ thumb_func_start b_movescr_stack_push
+b_movescr_stack_push: @ 801582C
+ push {r4,lr}
+ ldr r4, _08015848 @ =0x02017110
+ adds r3, r4, 0
+ adds r3, 0x20
+ ldrb r1, [r3]
+ adds r2, r1, 0x1
+ strb r2, [r3]
+ lsls r1, 24
+ lsrs r1, 22
+ adds r1, r4
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08015848: .4byte 0x02017110
+ thumb_func_end b_movescr_stack_push
+
+ thumb_func_start b_movescr_stack_push_cursor
+b_movescr_stack_push_cursor: @ 801584C
+ ldr r3, _08015868 @ =0x02017110
+ adds r2, r3, 0
+ adds r2, 0x20
+ ldrb r0, [r2]
+ adds r1, r0, 0x1
+ strb r1, [r2]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r3
+ ldr r1, _0801586C @ =gUnknown_02024C10
+ ldr r1, [r1]
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_08015868: .4byte 0x02017110
+_0801586C: .4byte gUnknown_02024C10
+ thumb_func_end b_movescr_stack_push_cursor
+
+ thumb_func_start b_movescr_stack_pop_cursor
+b_movescr_stack_pop_cursor: @ 8015870
+ ldr r3, _0801588C @ =gUnknown_02024C10
+ ldr r2, _08015890 @ =0x02017110
+ adds r1, r2, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_0801588C: .4byte gUnknown_02024C10
+_08015890: .4byte 0x02017110
+ thumb_func_end b_movescr_stack_pop_cursor
+
+ thumb_func_start sub_8015894
+sub_8015894: @ 8015894
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ ldr r2, _080159AC @ =gBattleMons
+ ldr r1, _080159B0 @ =gUnknown_02024260
+ ldr r5, _080159B4 @ =gUnknown_02024A60
+ ldrb r3, [r5]
+ lsls r0, r3, 9
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ movs r1, 0x58
+ muls r1, r3
+ adds r0, r1
+ adds r2, 0xC
+ adds r0, r2
+ ldrh r4, [r0]
+ lsls r0, r3, 1
+ ldr r2, _080159B8 @ =0x020160e8
+ adds r0, r2
+ mov r8, r0
+ ldr r1, _080159BC @ =gUnknown_02024CA8
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+ cmp r0, r4
+ bne _080158EE
+ cmp r4, 0
+ beq _080158EE
+ adds r0, r2, 0
+ subs r0, 0xE5
+ strb r3, [r0]
+ ldr r0, _080159C0 @ =gUnknown_02024BE6
+ strh r4, [r0]
+ ldr r1, _080159C4 @ =gUnknown_02024C1C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080159C8 @ =gUnknown_081D9144
+ str r1, [r0]
+ movs r6, 0x1
+_080158EE:
+ ldr r1, _080159CC @ =gUnknown_02024C34
+ ldr r5, _080159B4 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ bne _0801592A
+ cmp r4, 0xA5
+ beq _0801592A
+ ldr r1, _080159AC @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ bge _0801592A
+ adds r0, r2, 0
+ bl b_cancel_multi_turn_move_maybe
+ ldr r1, _080159C4 @ =gUnknown_02024C1C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080159D0 @ =gUnknown_081D937C
+ str r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0801592A:
+ ldr r2, _080159BC @ =gUnknown_02024CA8
+ ldr r3, _080159B4 @ =gUnknown_02024A60
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x13]
+ lsls r0, 28
+ cmp r0, 0
+ beq _08015966
+ ldr r0, _080159D4 @ =gBattleMoves
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _08015966
+ ldr r0, _080159C0 @ =gUnknown_02024BE6
+ strh r4, [r0]
+ ldr r1, _080159C4 @ =gUnknown_02024C1C
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080159D8 @ =gUnknown_081D938B
+ str r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08015966:
+ ldr r5, _080159B4 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ adds r1, r4, 0
+ bl sub_8015D5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801598C
+ ldr r0, _080159C0 @ =gUnknown_02024BE6
+ strh r4, [r0]
+ ldr r1, _080159C4 @ =gUnknown_02024C1C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080159DC @ =gUnknown_081D9464
+ str r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0801598C:
+ ldr r1, _080159AC @ =gBattleMons
+ ldrb r2, [r5]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _080159E4
+ ldr r1, _080159E0 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r3, [r0, 0x7]
+ b _080159EE
+ .align 2, 0
+_080159AC: .4byte gBattleMons
+_080159B0: .4byte gUnknown_02024260
+_080159B4: .4byte gUnknown_02024A60
+_080159B8: .4byte 0x020160e8
+_080159BC: .4byte gUnknown_02024CA8
+_080159C0: .4byte gUnknown_02024BE6
+_080159C4: .4byte gUnknown_02024C1C
+_080159C8: .4byte gUnknown_081D9144
+_080159CC: .4byte gUnknown_02024C34
+_080159D0: .4byte gUnknown_081D937C
+_080159D4: .4byte gBattleMoves
+_080159D8: .4byte gUnknown_081D938B
+_080159DC: .4byte gUnknown_081D9464
+_080159E0: .4byte gEnigmaBerries
+_080159E4:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r3, r0, 24
+_080159EE:
+ ldr r2, _08015A70 @ =gUnknown_02024C0B
+ ldr r1, _08015A74 @ =gUnknown_02024A60
+ ldrb r0, [r1]
+ strb r0, [r2]
+ ldr r7, _08015A78 @ =gBattleMons
+ adds r5, r1, 0
+ cmp r3, 0x1D
+ bne _08015A36
+ mov r0, r8
+ ldrh r2, [r0]
+ adds r1, r2, 0
+ cmp r1, 0
+ beq _08015A36
+ ldr r0, _08015A7C @ =0x0000ffff
+ cmp r1, r0
+ beq _08015A36
+ cmp r1, r4
+ beq _08015A36
+ ldr r0, _08015A80 @ =gUnknown_02024BE6
+ strh r2, [r0]
+ ldr r2, _08015A84 @ =gUnknown_02024C04
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r2]
+ ldr r1, _08015A88 @ =gUnknown_02024C1C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08015A8C @ =gUnknown_081D9AC2
+ str r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08015A36:
+ ldr r0, _08015A90 @ =gUnknown_02024260
+ ldrb r2, [r5]
+ lsls r1, r2, 9
+ adds r0, 0x2
+ adds r1, r0
+ movs r0, 0x58
+ muls r0, r2
+ ldrb r1, [r1]
+ adds r0, r1
+ adds r1, r7, 0
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08015A64
+ ldr r1, _08015A88 @ =gUnknown_02024C1C
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r1, _08015A94 @ =gUnknown_081D9369
+ str r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08015A64:
+ adds r0, r6, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08015A70: .4byte gUnknown_02024C0B
+_08015A74: .4byte gUnknown_02024A60
+_08015A78: .4byte gBattleMons
+_08015A7C: .4byte 0x0000ffff
+_08015A80: .4byte gUnknown_02024BE6
+_08015A84: .4byte gUnknown_02024C04
+_08015A88: .4byte gUnknown_02024C1C
+_08015A8C: .4byte gUnknown_081D9AC2
+_08015A90: .4byte gUnknown_02024260
+_08015A94: .4byte gUnknown_081D9369
+ thumb_func_end sub_8015894
+
+ thumb_func_start sub_8015A98
+sub_8015A98: @ 8015A98
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r2, 24
+ lsrs r3, r2, 24
+ lsls r1, r7, 1
+ ldr r0, _08015AD8 @ =0x020160e8
+ adds r1, r0
+ str r1, [sp, 0x4]
+ ldr r1, _08015ADC @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _08015AE4
+ ldr r2, _08015AE0 @ =gEnigmaBerries
+ lsls r1, r7, 3
+ subs r0, r1, r7
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x7]
+ str r0, [sp]
+ b _08015AF6
+ .align 2, 0
+_08015AD8: .4byte 0x020160e8
+_08015ADC: .4byte gBattleMons
+_08015AE0: .4byte gEnigmaBerries
+_08015AE4:
+ ldrh r0, [r1, 0x2E]
+ str r3, [sp, 0x14]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r1, r7, 3
+ ldr r3, [sp, 0x14]
+_08015AF6:
+ ldr r0, _08015C70 @ =gUnknown_02024C0B
+ strb r7, [r0]
+ movs r0, 0
+ mov r9, r0
+ lsls r2, r7, 1
+ str r2, [sp, 0xC]
+ ldr r5, _08015C74 @ =gUnknown_02024CA8
+ mov r12, r5
+ ldr r0, _08015C78 @ =gBattleMons
+ movs r2, 0x58
+ adds r6, r7, 0
+ muls r6, r2
+ str r6, [sp, 0x8]
+ ldr r2, _08015C7C @ =gUnknown_02024A8C
+ adds r5, r6, r2
+ movs r6, 0
+ str r6, [sp, 0x10]
+ mov r10, r0
+ subs r0, r1, r7
+ lsls r0, 2
+ mov r8, r0
+ ldr r6, _08015C80 @ =gBitTable
+_08015B22:
+ ldrh r0, [r5]
+ cmp r0, 0
+ bne _08015B38
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _08015B38
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015B38:
+ ldr r0, [sp, 0x8]
+ add r0, r9
+ mov r1, r10
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08015B58
+ movs r0, 0x2
+ ands r0, r3
+ cmp r0, 0
+ beq _08015B58
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015B58:
+ mov r1, r8
+ add r1, r12
+ ldrh r0, [r5]
+ ldrh r1, [r1, 0x4]
+ cmp r0, r1
+ bne _08015B74
+ movs r0, 0x4
+ ands r0, r3
+ cmp r0, 0
+ beq _08015B74
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015B74:
+ movs r0, 0x58
+ adds r2, r7, 0
+ muls r2, r0
+ ldr r1, [sp, 0x10]
+ adds r0, r1, r2
+ ldr r1, _08015C7C @ =gUnknown_02024A8C
+ adds r0, r1
+ mov r12, r0
+ ldr r1, _08015C84 @ =gUnknown_02024C34
+ ldr r0, [sp, 0xC]
+ adds r1, r0, r1
+ str r1, [sp, 0x18]
+ mov r1, r12
+ ldrh r1, [r1]
+ mov r12, r1
+ ldr r0, [sp, 0x18]
+ ldrh r0, [r0]
+ cmp r12, r0
+ bne _08015BB6
+ movs r0, 0x8
+ ands r0, r3
+ cmp r0, 0
+ beq _08015BB6
+ mov r0, r10
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bge _08015BB6
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015BB6:
+ ldr r0, _08015C74 @ =gUnknown_02024CA8
+ add r0, r8
+ ldrb r0, [r0, 0x13]
+ lsls r0, 28
+ cmp r0, 0
+ beq _08015BE4
+ movs r0, 0x10
+ ands r0, r3
+ cmp r0, 0
+ beq _08015BE4
+ ldr r2, _08015C88 @ =gBattleMoves
+ ldrh r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _08015BE4
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015BE4:
+ ldrh r1, [r5]
+ adds r0, r7, 0
+ str r3, [sp, 0x14]
+ bl sub_8015D5C
+ lsls r0, 24
+ ldr r3, [sp, 0x14]
+ cmp r0, 0
+ beq _08015C06
+ movs r0, 0x20
+ ands r0, r3
+ cmp r0, 0
+ beq _08015C06
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015C06:
+ ldr r1, _08015C74 @ =gUnknown_02024CA8
+ mov r0, r8
+ adds r2, r0, r1
+ ldrb r0, [r2, 0xE]
+ lsls r0, 28
+ mov r12, r1
+ cmp r0, 0
+ beq _08015C26
+ ldrh r0, [r2, 0x6]
+ ldrh r1, [r5]
+ cmp r0, r1
+ beq _08015C26
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015C26:
+ ldr r2, [sp]
+ cmp r2, 0x1D
+ bne _08015C48
+ ldr r0, [sp, 0x4]
+ ldrh r1, [r0]
+ cmp r1, 0
+ beq _08015C48
+ ldr r0, _08015C8C @ =0x0000ffff
+ cmp r1, r0
+ beq _08015C48
+ ldrh r2, [r5]
+ cmp r1, r2
+ beq _08015C48
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015C48:
+ adds r6, 0x4
+ adds r5, 0x2
+ ldr r0, [sp, 0x10]
+ adds r0, 0x2
+ str r0, [sp, 0x10]
+ movs r1, 0x1
+ add r9, r1
+ mov r2, r9
+ cmp r2, 0x3
+ bgt _08015C5E
+ b _08015B22
+_08015C5E:
+ adds r0, r4, 0
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08015C70: .4byte gUnknown_02024C0B
+_08015C74: .4byte gUnknown_02024CA8
+_08015C78: .4byte gBattleMons
+_08015C7C: .4byte gUnknown_02024A8C
+_08015C80: .4byte gBitTable
+_08015C84: .4byte gUnknown_02024C34
+_08015C88: .4byte gBattleMoves
+_08015C8C: .4byte 0x0000ffff
+ thumb_func_end sub_8015A98
+
+ thumb_func_start sub_8015C90
+sub_8015C90: @ 8015C90
+ push {r4-r6,lr}
+ ldr r5, _08015CFC @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ movs r1, 0
+ movs r2, 0xFF
+ bl sub_8015A98
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xF
+ bne _08015D38
+ ldr r0, _08015D00 @ =gUnknown_02024D28
+ ldrb r1, [r5]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r1, _08015D04 @ =gUnknown_02024C1C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08015D08 @ =gUnknown_081D9365
+ str r1, [r0]
+ ldr r0, _08015D0C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08015D14
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ adds r4, r0, 0
+ bl Random
+ movs r1, 0x1
+ eors r4, r1
+ movs r1, 0x2
+ ands r1, r0
+ orrs r4, r1
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl battle_get_side_with_given_state
+ ldr r2, _08015D10 @ =gUnknown_02024260
+ ldrb r1, [r5]
+ lsls r1, 9
+ adds r2, 0x3
+ adds r1, r2
+ b _08015D48
+ .align 2, 0
+_08015CFC: .4byte gUnknown_02024A60
+_08015D00: .4byte gUnknown_02024D28
+_08015D04: .4byte gUnknown_02024C1C
+_08015D08: .4byte gUnknown_081D9365
+_08015D0C: .4byte gUnknown_020239F8
+_08015D10: .4byte gUnknown_02024260
+_08015D14:
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ ldr r2, _08015D34 @ =gUnknown_02024260
+ ldrb r1, [r5]
+ lsls r1, 9
+ adds r2, 0x3
+ adds r1, r2
+ b _08015D48
+ .align 2, 0
+_08015D34: .4byte gUnknown_02024260
+_08015D38:
+ ldr r0, _08015D58 @ =gUnknown_02024D28
+ ldrb r1, [r5]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+_08015D48:
+ strb r0, [r1]
+ movs r0, 0
+ cmp r6, 0xF
+ bne _08015D52
+ movs r0, 0x1
+_08015D52:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08015D58: .4byte gUnknown_02024D28
+ thumb_func_end sub_8015C90
+
+ thumb_func_start sub_8015D5C
+sub_8015D5C: @ 8015D5C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ movs r6, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r4, 0
+ ldr r0, _08015DF0 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _08015DE0
+ ldr r7, _08015DF4 @ =gUnknown_02024A8C
+ mov r8, r7
+_08015D86:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r4, 0x1
+ cmp r9, r0
+ beq _08015DD6
+ ldr r1, _08015DF8 @ =gUnknown_02024C98
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _08015DD6
+ movs r2, 0
+ movs r0, 0x58
+ adds r1, r4, 0
+ muls r1, r0
+ adds r0, r1, r7
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _08015DCC
+ mov r4, r8
+ adds r0, r1, r4
+_08015DBE:
+ adds r0, 0x2
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _08015DD6
+ ldrh r1, [r0]
+ cmp r5, r1
+ bne _08015DBE
+_08015DCC:
+ cmp r2, 0x3
+ bgt _08015DD6
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08015DD6:
+ adds r4, r3, 0
+ ldr r0, _08015DF0 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08015D86
+_08015DE0:
+ adds r0, r6, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08015DF0: .4byte gUnknown_02024A68
+_08015DF4: .4byte gUnknown_02024A8C
+_08015DF8: .4byte gUnknown_02024C98
+ thumb_func_end sub_8015D5C
+
+ thumb_func_start sub_8015DFC
+sub_8015DFC: @ 8015DFC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0
+ mov r9, r0
+ ldr r1, _08015EA0 @ =gUnknown_02024C07
+ mov r2, r9
+ strb r2, [r1]
+ ldr r0, _08015EA4 @ =gUnknown_02024A68
+ ldrb r4, [r0]
+ adds r6, r1, 0
+ mov r10, r0
+ ldr r7, _08015EA8 @ =gUnknown_02024C08
+ ldr r3, _08015EAC @ =0x02000000
+ mov r12, r3
+ cmp r9, r4
+ bcs _08015E50
+ ldr r2, _08015EB0 @ =gUnknown_02024C0C
+ ldrb r1, [r2]
+ ldr r5, _08015EB4 @ =gBitTable
+ ldr r0, [r5]
+ ands r1, r0
+ cmp r1, 0
+ beq _08015E50
+ adds r3, r6, 0
+_08015E32:
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r4
+ bcs _08015E50
+ ldrb r0, [r2]
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r5
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ bne _08015E32
+_08015E50:
+ movs r0, 0
+ strb r0, [r7]
+ mov r0, r10
+ ldrb r4, [r0]
+ cmp r4, 0
+ beq _08015E8A
+ ldr r2, _08015EB0 @ =gUnknown_02024C0C
+ ldrb r1, [r2]
+ ldr r5, _08015EB4 @ =gBitTable
+ ldr r0, [r5]
+ ands r1, r0
+ cmp r1, 0
+ beq _08015E8A
+ adds r3, r7, 0
+_08015E6C:
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r4
+ bcs _08015E8A
+ ldrb r0, [r2]
+ ldrb r1, [r7]
+ lsls r1, 2
+ adds r1, r5
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ bne _08015E6C
+_08015E8A:
+ ldr r0, _08015EB8 @ =0x0001600e
+ add r0, r12
+ ldrb r0, [r0]
+ cmp r0, 0xA
+ bls _08015E96
+ b _0801652A
+_08015E96:
+ lsls r0, 2
+ ldr r1, _08015EBC @ =_08015EC0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08015EA0: .4byte gUnknown_02024C07
+_08015EA4: .4byte gUnknown_02024A68
+_08015EA8: .4byte gUnknown_02024C08
+_08015EAC: .4byte 0x02000000
+_08015EB0: .4byte gUnknown_02024C0C
+_08015EB4: .4byte gBitTable
+_08015EB8: .4byte 0x0001600e
+_08015EBC: .4byte _08015EC0
+ .align 2, 0
+_08015EC0:
+ .4byte _08015EEC
+ .4byte _08015F74
+ .4byte _08016034
+ .4byte _080160F4
+ .4byte _080161C8
+ .4byte _08016274
+ .4byte _08016324
+ .4byte _080163A8
+ .4byte _08016420
+ .4byte _08016494
+ .4byte _08016520
+_08015EEC:
+ movs r5, 0
+ ldr r1, _08015F0C @ =gUnknown_02024A68
+ mov r10, r1
+ ldrb r2, [r1]
+ cmp r5, r2
+ bge _08015F06
+ ldr r2, _08015F10 @ =gUnknown_02024A7A
+_08015EFA:
+ adds r0, r5, r2
+ strb r5, [r0]
+ adds r5, 0x1
+ ldrb r3, [r1]
+ cmp r5, r3
+ blt _08015EFA
+_08015F06:
+ movs r5, 0
+ b _08015F54
+ .align 2, 0
+_08015F0C: .4byte gUnknown_02024A68
+_08015F10: .4byte gUnknown_02024A7A
+_08015F14:
+ adds r4, r5, 0x1
+ adds r6, r4, 0
+ ldrb r1, [r1]
+ cmp r6, r1
+ bge _08015F52
+ ldr r7, _08016004 @ =gUnknown_02024A7A
+ ldr r0, _08016008 @ =gUnknown_02024A68
+ mov r10, r0
+ lsls r1, r5, 24
+ mov r8, r1
+_08015F28:
+ adds r0, r5, r7
+ ldrb r0, [r0]
+ adds r1, r4, r7
+ ldrb r1, [r1]
+ movs r2, 0
+ bl b_first_side
+ lsls r0, 24
+ cmp r0, 0
+ beq _08015F48
+ lsls r1, r4, 24
+ lsrs r1, 24
+ mov r2, r8
+ lsrs r0, r2, 24
+ bl sub_8012FBC
+_08015F48:
+ adds r4, 0x1
+ ldr r0, _08016008 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08015F28
+_08015F52:
+ adds r5, r6, 0
+_08015F54:
+ mov r1, r10
+ ldrb r0, [r1]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _08015F14
+ ldr r1, _0801600C @ =0x02000000
+ ldr r3, _08016010 @ =0x0001600e
+ adds r2, r1, r3
+ ldrb r0, [r2]
+ adds r0, 0x1
+ movs r3, 0
+ strb r0, [r2]
+ ldr r2, _08016014 @ =0x000160fc
+ adds r0, r1, r2
+ strb r3, [r0]
+ mov r12, r1
+_08015F74:
+ ldr r1, _08016014 @ =0x000160fc
+ add r1, r12
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bls _08015F80
+ b _08016236
+_08015F80:
+ ldr r3, _08016018 @ =gUnknown_02024A60
+ mov r8, r3
+ adds r6, r1, 0
+ movs r7, 0
+ ldr r5, _0801601C @ =gUnknown_030041C0
+_08015F8A:
+ ldr r0, _08016020 @ =gUnknown_02024C07
+ ldrb r4, [r6]
+ strb r4, [r0]
+ mov r0, r8
+ strb r4, [r0]
+ ldr r0, _08016024 @ =gUnknown_02024C7A
+ lsls r2, r4, 1
+ adds r3, r2, r0
+ ldrh r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08015FE8
+ ldr r0, _08016028 @ =gUnknown_02024C80
+ adds r1, r2, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ movs r4, 0xFF
+ lsls r0, 24
+ cmp r0, 0
+ bne _08015FE8
+ ldrh r0, [r3]
+ ldr r2, _0801602C @ =0x0000fffe
+ adds r1, r2, 0
+ ands r0, r1
+ strh r0, [r3]
+ ldr r0, _08016030 @ =gUnknown_081D9030
+ bl b_call_bc_move_exec
+ movs r0, 0xFD
+ strb r0, [r5]
+ movs r0, 0x2
+ strb r0, [r5, 0x1]
+ movs r0, 0x73
+ strb r0, [r5, 0x2]
+ strb r7, [r5, 0x3]
+ ldrb r0, [r5, 0x4]
+ orrs r0, r4
+ strb r0, [r5, 0x4]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08015FE8:
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ ldr r3, _0801600C @ =0x02000000
+ mov r12, r3
+ mov r1, r9
+ cmp r1, 0
+ beq _08015FFA
+ b _08016532
+_08015FFA:
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08015F8A
+ b _08016236
+ .align 2, 0
+_08016004: .4byte gUnknown_02024A7A
+_08016008: .4byte gUnknown_02024A68
+_0801600C: .4byte 0x02000000
+_08016010: .4byte 0x0001600e
+_08016014: .4byte 0x000160fc
+_08016018: .4byte gUnknown_02024A60
+_0801601C: .4byte gUnknown_030041C0
+_08016020: .4byte gUnknown_02024C07
+_08016024: .4byte gUnknown_02024C7A
+_08016028: .4byte gUnknown_02024C80
+_0801602C: .4byte 0x0000fffe
+_08016030: .4byte gUnknown_081D9030
+_08016034:
+ ldr r1, _080160CC @ =0x000160fc
+ add r1, r12
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bls _08016040
+ b _08016182
+_08016040:
+ adds r7, r1, 0
+ movs r3, 0x2
+ mov r10, r3
+ movs r0, 0
+ mov r8, r0
+ ldr r5, _080160D0 @ =gUnknown_030041C0
+_0801604C:
+ ldr r0, _080160D4 @ =gUnknown_02024C07
+ ldrb r4, [r7]
+ strb r4, [r0]
+ ldr r1, _080160D8 @ =gUnknown_02024A60
+ strb r4, [r1]
+ ldr r0, _080160DC @ =gUnknown_02024C7A
+ lsls r2, r4, 1
+ adds r3, r2, r0
+ ldrh r1, [r3]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080160B0
+ ldr r0, _080160E0 @ =gUnknown_02024C80
+ adds r1, r2, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ subs r0, 0x1
+ strb r0, [r1, 0x1]
+ movs r6, 0xFF
+ lsls r0, 24
+ cmp r0, 0
+ bne _080160B0
+ ldrh r0, [r3]
+ ldr r2, _080160E4 @ =0x0000fffd
+ adds r1, r2, 0
+ ands r0, r1
+ strh r0, [r3]
+ ldr r0, _080160E8 @ =gUnknown_081D9030
+ bl b_call_bc_move_exec
+ ldr r0, _080160EC @ =gUnknown_02024D1E
+ strb r4, [r0, 0x5]
+ movs r0, 0xFD
+ strb r0, [r5]
+ mov r3, r10
+ strb r3, [r5, 0x1]
+ movs r0, 0x71
+ strb r0, [r5, 0x2]
+ mov r0, r8
+ strb r0, [r5, 0x3]
+ ldrb r0, [r5, 0x4]
+ orrs r0, r6
+ strb r0, [r5, 0x4]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080160B0:
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ ldr r1, _080160F0 @ =0x02000000
+ mov r12, r1
+ mov r2, r9
+ cmp r2, 0
+ beq _080160C2
+ b _08016532
+_080160C2:
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _0801604C
+ b _08016182
+ .align 2, 0
+_080160CC: .4byte 0x000160fc
+_080160D0: .4byte gUnknown_030041C0
+_080160D4: .4byte gUnknown_02024C07
+_080160D8: .4byte gUnknown_02024A60
+_080160DC: .4byte gUnknown_02024C7A
+_080160E0: .4byte gUnknown_02024C80
+_080160E4: .4byte 0x0000fffd
+_080160E8: .4byte gUnknown_081D9030
+_080160EC: .4byte gUnknown_02024D1E
+_080160F0: .4byte 0x02000000
+_080160F4:
+ ldr r1, _0801619C @ =0x000160fc
+ add r1, r12
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bhi _08016182
+ ldr r0, _080161A0 @ =gUnknown_02024A60
+ mov r10, r0
+ adds r7, r1, 0
+ movs r1, 0
+ mov r8, r1
+ ldr r5, _080161A4 @ =gUnknown_030041C0
+_0801610A:
+ ldr r0, _080161A8 @ =gUnknown_02024C07
+ ldrb r4, [r7]
+ strb r4, [r0]
+ mov r2, r10
+ strb r4, [r2]
+ ldr r1, _080161AC @ =gUnknown_02024C80
+ lsls r3, r4, 1
+ adds r0, r3, r4
+ lsls r0, 2
+ adds r1, r0, r1
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ beq _08016168
+ subs r0, 0x1
+ strb r0, [r1, 0x2]
+ movs r6, 0xFF
+ lsls r0, 24
+ cmp r0, 0
+ bne _08016168
+ ldr r2, _080161B0 @ =gUnknown_02024C7A
+ adds r2, r3, r2
+ ldrh r0, [r2]
+ ldr r3, _080161B4 @ =0x0000feff
+ adds r1, r3, 0
+ ands r0, r1
+ strh r0, [r2]
+ ldr r0, _080161B8 @ =gUnknown_081D9030
+ bl b_call_bc_move_exec
+ ldr r0, _080161BC @ =gUnknown_02024D1E
+ strb r4, [r0, 0x5]
+ movs r0, 0xFD
+ strb r0, [r5]
+ movs r0, 0x2
+ strb r0, [r5, 0x1]
+ movs r0, 0x36
+ strb r0, [r5, 0x2]
+ mov r0, r8
+ strb r0, [r5, 0x3]
+ ldrb r0, [r5, 0x4]
+ orrs r0, r6
+ strb r0, [r5, 0x4]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016168:
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ ldr r1, _080161C0 @ =0x02000000
+ mov r12, r1
+ mov r2, r9
+ cmp r2, 0
+ beq _0801617A
+ b _08016532
+_0801617A:
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _0801610A
+_08016182:
+ mov r3, r9
+ cmp r3, 0
+ beq _0801618A
+ b _08016532
+_0801618A:
+ ldr r0, _080161C4 @ =0x0001600e
+ add r0, r12
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r0, _0801619C @ =0x000160fc
+ add r0, r12
+ strb r3, [r0]
+ b _0801652A
+ .align 2, 0
+_0801619C: .4byte 0x000160fc
+_080161A0: .4byte gUnknown_02024A60
+_080161A4: .4byte gUnknown_030041C0
+_080161A8: .4byte gUnknown_02024C07
+_080161AC: .4byte gUnknown_02024C80
+_080161B0: .4byte gUnknown_02024C7A
+_080161B4: .4byte 0x0000feff
+_080161B8: .4byte gUnknown_081D9030
+_080161BC: .4byte gUnknown_02024D1E
+_080161C0: .4byte 0x02000000
+_080161C4: .4byte 0x0001600e
+_080161C8:
+ ldr r1, _08016250 @ =0x000160fc
+ add r1, r12
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bhi _08016236
+ ldr r7, _08016254 @ =gUnknown_02024A60
+ adds r5, r1, 0
+ ldr r6, _08016258 @ =gUnknown_02024C07
+_080161D8:
+ ldrb r4, [r5]
+ strb r4, [r6]
+ strb r4, [r7]
+ ldr r0, _0801625C @ =gUnknown_02024C7A
+ lsls r2, r4, 1
+ adds r3, r2, r0
+ ldrh r1, [r3]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0801621C
+ ldr r0, _08016260 @ =gUnknown_02024C80
+ adds r1, r2, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x7]
+ subs r0, 0x1
+ strb r0, [r1, 0x7]
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801621C
+ ldrh r0, [r3]
+ ldr r2, _08016264 @ =0x0000ffdf
+ adds r1, r2, 0
+ ands r0, r1
+ strh r0, [r3]
+ ldr r0, _08016268 @ =gUnknown_081D9041
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801621C:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ ldr r3, _0801626C @ =0x02000000
+ mov r12, r3
+ mov r1, r9
+ cmp r1, 0
+ beq _0801622E
+ b _08016532
+_0801622E:
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _080161D8
+_08016236:
+ mov r2, r9
+ cmp r2, 0
+ beq _0801623E
+ b _08016532
+_0801623E:
+ ldr r0, _08016270 @ =0x0001600e
+ add r0, r12
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08016250 @ =0x000160fc
+ add r0, r12
+ strb r2, [r0]
+ b _0801652A
+ .align 2, 0
+_08016250: .4byte 0x000160fc
+_08016254: .4byte gUnknown_02024A60
+_08016258: .4byte gUnknown_02024C07
+_0801625C: .4byte gUnknown_02024C7A
+_08016260: .4byte gUnknown_02024C80
+_08016264: .4byte 0x0000ffdf
+_08016268: .4byte gUnknown_081D9041
+_0801626C: .4byte 0x02000000
+_08016270: .4byte 0x0001600e
+_08016274:
+ ldr r2, _080162FC @ =0x000160fc
+ add r2, r12
+ ldr r1, _08016300 @ =gUnknown_02024A68
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _080162E8
+ ldr r5, _08016304 @ =gUnknown_02024A60
+ adds r4, r2, 0
+ ldr r6, _08016308 @ =gUnknown_02024DDC
+_08016288:
+ ldr r1, _0801630C @ =gUnknown_02024A7A
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldrb r0, [r5]
+ adds r1, r0, r6
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080162CA
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _080162CA
+ ldr r1, _08016310 @ =gBattleMons
+ ldrb r2, [r5]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _080162CA
+ ldr r0, _08016314 @ =gUnknown_02024C08
+ strb r2, [r0]
+ ldr r0, _08016318 @ =gUnknown_081D939A
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080162CA:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r3, _0801631C @ =0x02000000
+ mov r12, r3
+ mov r1, r9
+ cmp r1, 0
+ beq _080162DC
+ b _08016532
+_080162DC:
+ ldr r1, _08016300 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08016288
+_080162E8:
+ mov r2, r9
+ cmp r2, 0
+ beq _080162F0
+ b _08016532
+_080162F0:
+ ldr r1, _08016320 @ =0x0001600e
+ add r1, r12
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0801652A
+ .align 2, 0
+_080162FC: .4byte 0x000160fc
+_08016300: .4byte gUnknown_02024A68
+_08016304: .4byte gUnknown_02024A60
+_08016308: .4byte gUnknown_02024DDC
+_0801630C: .4byte gUnknown_02024A7A
+_08016310: .4byte gBattleMons
+_08016314: .4byte gUnknown_02024C08
+_08016318: .4byte gUnknown_081D939A
+_0801631C: .4byte 0x02000000
+_08016320: .4byte 0x0001600e
+_08016324:
+ ldr r3, _0801635C @ =word_2024DB8
+ ldrh r2, [r3]
+ movs r0, 0x7
+ ands r0, r2
+ cmp r0, 0
+ bne _08016332
+ b _080164F8
+_08016332:
+ movs r0, 0x4
+ ands r0, r2
+ cmp r0, 0
+ bne _0801637E
+ ldr r1, _08016360 @ =gUnknown_02024DBC
+ adds r1, 0x28
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08016370
+ ldr r0, _08016364 @ =0x0000fffe
+ ands r0, r2
+ ldr r1, _08016368 @ =0x0000fffd
+ ands r0, r1
+ strh r0, [r3]
+ ldr r1, _0801636C @ =gUnknown_02024D1E
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ b _0801639C
+ .align 2, 0
+_0801635C: .4byte word_2024DB8
+_08016360: .4byte gUnknown_02024DBC
+_08016364: .4byte 0x0000fffe
+_08016368: .4byte 0x0000fffd
+_0801636C: .4byte gUnknown_02024D1E
+_08016370:
+ movs r0, 0x2
+ ands r0, r2
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _0801638A
+ b _08016398
+_0801637E:
+ movs r0, 0x2
+ ands r0, r2
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _08016398
+_0801638A:
+ ldr r1, _08016394 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _0801639C
+ .align 2, 0
+_08016394: .4byte gUnknown_02024D1E
+_08016398:
+ ldr r0, _080163A0 @ =gUnknown_02024D1E
+ strb r1, [r0, 0x5]
+_0801639C:
+ ldr r0, _080163A4 @ =gUnknown_081D8F62
+ b _080164EA
+ .align 2, 0
+_080163A0: .4byte gUnknown_02024D1E
+_080163A4: .4byte gUnknown_081D8F62
+_080163A8:
+ ldr r3, _080163DC @ =word_2024DB8
+ ldrh r2, [r3]
+ movs r0, 0x18
+ ands r0, r2
+ cmp r0, 0
+ bne _080163B6
+ b _080164F8
+_080163B6:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ bne _080163F0
+ ldr r1, _080163E0 @ =gUnknown_02024DBC
+ adds r1, 0x28
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _080163F0
+ ldr r0, _080163E4 @ =0x0000fff7
+ ands r0, r2
+ strh r0, [r3]
+ ldr r1, _080163E8 @ =gUnknown_02024C10
+ ldr r0, _080163EC @ =gUnknown_081D8FFF
+ b _080163F4
+ .align 2, 0
+_080163DC: .4byte word_2024DB8
+_080163E0: .4byte gUnknown_02024DBC
+_080163E4: .4byte 0x0000fff7
+_080163E8: .4byte gUnknown_02024C10
+_080163EC: .4byte gUnknown_081D8FFF
+_080163F0:
+ ldr r1, _0801640C @ =gUnknown_02024C10
+ ldr r0, _08016410 @ =gUnknown_081D8F7D
+_080163F4:
+ str r0, [r1]
+ adds r3, r1, 0
+ ldr r1, _08016414 @ =0x02000000
+ ldr r0, _08016418 @ =0x000160a4
+ adds r1, r0
+ movs r2, 0
+ movs r0, 0xC
+ strb r0, [r1]
+ ldr r0, _0801641C @ =gUnknown_02024D1E
+ strb r2, [r0, 0x5]
+ b _080164E8
+ .align 2, 0
+_0801640C: .4byte gUnknown_02024C10
+_08016410: .4byte gUnknown_081D8F7D
+_08016414: .4byte 0x02000000
+_08016418: .4byte 0x000160a4
+_0801641C: .4byte gUnknown_02024D1E
+_08016420:
+ ldr r3, _08016450 @ =word_2024DB8
+ ldrh r2, [r3]
+ movs r0, 0x60
+ ands r0, r2
+ cmp r0, 0
+ beq _0801647C
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ bne _08016464
+ ldr r1, _08016454 @ =gUnknown_02024DBC
+ adds r1, 0x28
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08016464
+ ldr r0, _08016458 @ =0x0000ffdf
+ ands r0, r2
+ strh r0, [r3]
+ ldr r1, _0801645C @ =gUnknown_02024C10
+ ldr r0, _08016460 @ =gUnknown_081D9016
+ b _08016468
+ .align 2, 0
+_08016450: .4byte word_2024DB8
+_08016454: .4byte gUnknown_02024DBC
+_08016458: .4byte 0x0000ffdf
+_0801645C: .4byte gUnknown_02024C10
+_08016460: .4byte gUnknown_081D9016
+_08016464:
+ ldr r1, _08016484 @ =gUnknown_02024C10
+ ldr r0, _08016488 @ =gUnknown_081D9008
+_08016468:
+ str r0, [r1]
+ adds r3, r1, 0
+ ldr r0, [r3]
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801647C:
+ ldr r2, _0801648C @ =0x02000000
+ ldr r0, _08016490 @ =0x0001600e
+ adds r1, r2, r0
+ b _080164FE
+ .align 2, 0
+_08016484: .4byte gUnknown_02024C10
+_08016488: .4byte gUnknown_081D9008
+_0801648C: .4byte 0x02000000
+_08016490: .4byte 0x0001600e
+_08016494:
+ ldr r3, _080164BC @ =word_2024DB8
+ ldrh r2, [r3]
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _080164F8
+ ldr r1, _080164C0 @ =gUnknown_02024DBC
+ adds r1, 0x28
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _080164D0
+ ldr r0, _080164C4 @ =0x0000ff7f
+ ands r0, r2
+ strh r0, [r3]
+ ldr r1, _080164C8 @ =gUnknown_02024C10
+ ldr r0, _080164CC @ =gUnknown_081D8FFF
+ b _080164D4
+ .align 2, 0
+_080164BC: .4byte word_2024DB8
+_080164C0: .4byte gUnknown_02024DBC
+_080164C4: .4byte 0x0000ff7f
+_080164C8: .4byte gUnknown_02024C10
+_080164CC: .4byte gUnknown_081D8FFF
+_080164D0:
+ ldr r1, _08016508 @ =gUnknown_02024C10
+ ldr r0, _0801650C @ =gUnknown_081D8F7D
+_080164D4:
+ str r0, [r1]
+ adds r3, r1, 0
+ ldr r0, _08016510 @ =0x02000000
+ ldr r1, _08016514 @ =0x000160a4
+ adds r0, r1
+ movs r1, 0xD
+ strb r1, [r0]
+ ldr r1, _08016518 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+_080164E8:
+ ldr r0, [r3]
+_080164EA:
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080164F8:
+ ldr r2, _08016510 @ =0x02000000
+ ldr r3, _0801651C @ =0x0001600e
+ adds r1, r2, r3
+_080164FE:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r12, r2
+ b _0801652A
+ .align 2, 0
+_08016508: .4byte gUnknown_02024C10
+_0801650C: .4byte gUnknown_081D8F7D
+_08016510: .4byte 0x02000000
+_08016514: .4byte 0x000160a4
+_08016518: .4byte gUnknown_02024D1E
+_0801651C: .4byte 0x0001600e
+_08016520:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801652A:
+ mov r0, r9
+ cmp r0, 0
+ bne _08016532
+ b _08015E8A
+_08016532:
+ ldr r0, _08016550 @ =gUnknown_030042D4
+ ldr r1, [r0]
+ ldr r0, _08016554 @ =sub_8011E8C
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08016550: .4byte gUnknown_030042D4
+_08016554: .4byte sub_8011E8C
+ thumb_func_end sub_8015DFC
+
+ thumb_func_start sub_8016558
+sub_8016558: @ 8016558
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0
+ mov r9, r0
+ ldr r2, _08016578 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _0801657C @ =0x01000020
+ orrs r0, r1
+ str r0, [r2]
+ bl _08017088
+ .align 2, 0
+_08016578: .4byte gUnknown_02024C6C
+_0801657C: .4byte 0x01000020
+_08016580:
+ ldr r3, _080165B4 @ =gUnknown_02024A60
+ ldr r4, _080165B8 @ =gUnknown_02024C07
+ ldr r1, _080165BC @ =gUnknown_02024A7A
+ adds r5, r7, r2
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r4]
+ strb r0, [r3]
+ ldr r0, _080165C0 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _080165C4 @ =gBitTable
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ adds r6, r3, 0
+ cmp r1, 0
+ beq _080165C8
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ bl _08017088
+ .align 2, 0
+_080165B4: .4byte gUnknown_02024A60
+_080165B8: .4byte gUnknown_02024C07
+_080165BC: .4byte gUnknown_02024A7A
+_080165C0: .4byte gUnknown_02024C0C
+_080165C4: .4byte gBitTable
+_080165C8:
+ movs r5, 0xB0
+ lsls r5, 9
+ adds r0, r7, r5
+ ldrb r0, [r0]
+ cmp r0, 0x13
+ bls _080165D8
+ bl _08017078
+_080165D8:
+ lsls r0, 2
+ ldr r1, _080165E4 @ =_080165E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080165E4: .4byte _080165E8
+ .align 2, 0
+_080165E8:
+ .4byte _08016638
+ .4byte _080166A8
+ .4byte _080166D8
+ .4byte _08016730
+ .4byte _080167C8
+ .4byte _08016828
+ .4byte _080168C0
+ .4byte _0801691C
+ .4byte _0801697C
+ .4byte _080169DC
+ .4byte _08016B78
+ .4byte _08016CA0
+ .4byte _08016D58
+ .4byte _08016E30
+ .4byte _08016EFC
+ .4byte _08016F20
+ .4byte _08016F6C
+ .4byte _08016F9C
+ .4byte _08016704
+ .4byte _08017064
+_08016638:
+ ldr r1, _08016694 @ =gUnknown_02024C98
+ ldrb r3, [r6]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 3
+ ands r0, r1
+ cmp r0, 0
+ beq _08016686
+ ldr r0, _08016698 @ =gBattleMons
+ movs r1, 0x58
+ muls r1, r3
+ adds r0, r1, r0
+ ldrh r2, [r0, 0x28]
+ ldrh r7, [r0, 0x2C]
+ cmp r2, r7
+ beq _08016686
+ cmp r2, 0
+ beq _08016686
+ ldr r1, _0801669C @ =gUnknown_02024BEC
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 4
+ str r0, [r1]
+ cmp r0, 0
+ bne _08016670
+ movs r0, 0x1
+ str r0, [r1]
+_08016670:
+ ldr r0, [r1]
+ negs r0, r0
+ str r0, [r1]
+ ldr r0, _080166A0 @ =gUnknown_081D93D1
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016686:
+ ldr r1, _080166A4 @ =0x02000000
+ movs r0, 0xB0
+ lsls r0, 9
+ adds r1, r0
+ bl _08017072
+ .align 2, 0
+_08016694: .4byte gUnknown_02024C98
+_08016698: .4byte gBattleMons
+_0801669C: .4byte gUnknown_02024BEC
+_080166A0: .4byte gUnknown_081D93D1
+_080166A4: .4byte 0x02000000
+_080166A8:
+ ldrb r1, [r6]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _080166C8
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080166C8:
+ ldr r1, _080166D4 @ =0x02000000
+ movs r2, 0xB0
+ lsls r2, 9
+ adds r1, r2
+ bl _08017072
+ .align 2, 0
+_080166D4: .4byte 0x02000000
+_080166D8:
+ ldrb r1, [r6]
+ movs r0, 0x1
+ movs r2, 0
+ bl sub_801A02C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080166F2
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080166F2:
+ ldr r1, _08016700 @ =0x02000000
+ movs r3, 0xB0
+ lsls r3, 9
+ adds r1, r3
+ bl _08017072
+ .align 2, 0
+_08016700: .4byte 0x02000000
+_08016704:
+ ldrb r1, [r6]
+ movs r0, 0x1
+ movs r2, 0x1
+ bl sub_801A02C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801671E
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801671E:
+ ldr r1, _0801672C @ =0x02000000
+ movs r5, 0xB0
+ lsls r5, 9
+ adds r1, r5
+ bl _08017072
+ .align 2, 0
+_0801672C: .4byte 0x02000000
+_08016730:
+ ldr r0, _080167A8 @ =gUnknown_02024C98
+ ldrb r2, [r6]
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r1, [r1]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801679C
+ ldr r3, _080167AC @ =gBattleMons
+ movs r5, 0x3
+ ands r5, r1
+ movs r1, 0x58
+ adds r0, r5, 0
+ muls r0, r1
+ adds r0, r3
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801679C
+ adds r0, r2, 0
+ muls r0, r1
+ adds r0, r3
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801679C
+ ldr r0, _080167B0 @ =gUnknown_02024C08
+ strb r5, [r0]
+ ldr r2, _080167B4 @ =gUnknown_02024BEC
+ ldrb r0, [r6]
+ muls r0, r1
+ adds r0, r3
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 3
+ str r0, [r2]
+ cmp r0, 0
+ bne _0801677C
+ movs r0, 0x1
+ str r0, [r2]
+_0801677C:
+ ldr r1, _080167B8 @ =0x02000000
+ ldr r7, _080167BC @ =0x000160a4
+ adds r0, r1, r7
+ strb r5, [r0]
+ ldrb r0, [r4]
+ ldr r2, _080167C0 @ =0x000160a5
+ adds r1, r2
+ strb r0, [r1]
+ ldr r0, _080167C4 @ =gUnknown_081D904B
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801679C:
+ ldr r1, _080167B8 @ =0x02000000
+ movs r3, 0xB0
+ lsls r3, 9
+ adds r1, r3
+ bl _08017072
+ .align 2, 0
+_080167A8: .4byte gUnknown_02024C98
+_080167AC: .4byte gBattleMons
+_080167B0: .4byte gUnknown_02024C08
+_080167B4: .4byte gUnknown_02024BEC
+_080167B8: .4byte 0x02000000
+_080167BC: .4byte 0x000160a4
+_080167C0: .4byte 0x000160a5
+_080167C4: .4byte gUnknown_081D904B
+_080167C8:
+ ldr r2, _08016818 @ =gBattleMons
+ ldrb r1, [r6]
+ movs r0, 0x58
+ adds r3, r1, 0
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0801680A
+ adds r1, r3, r2
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _0801680A
+ ldr r2, _0801681C @ =gUnknown_02024BEC
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 3
+ str r0, [r2]
+ cmp r0, 0
+ bne _080167FA
+ movs r0, 0x1
+ str r0, [r2]
+_080167FA:
+ ldr r0, _08016820 @ =gUnknown_081D9518
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801680A:
+ ldr r1, _08016824 @ =0x02000000
+ movs r5, 0xB0
+ lsls r5, 9
+ adds r1, r5
+ bl _08017072
+ .align 2, 0
+_08016818: .4byte gBattleMons
+_0801681C: .4byte gUnknown_02024BEC
+_08016820: .4byte gUnknown_081D9518
+_08016824: .4byte 0x02000000
+_08016828:
+ ldr r4, _080168B0 @ =gBattleMons
+ ldrb r0, [r6]
+ movs r7, 0x58
+ mov r8, r7
+ mov r2, r8
+ muls r2, r0
+ adds r3, r4, 0
+ adds r3, 0x4C
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080168A2
+ adds r1, r2, r4
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _080168A2
+ ldr r5, _080168B4 @ =gUnknown_02024BEC
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 4
+ str r0, [r5]
+ cmp r0, 0
+ bne _0801685C
+ movs r0, 0x1
+ str r0, [r5]
+_0801685C:
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r2, r0, r3
+ ldr r1, [r2]
+ movs r4, 0xF0
+ lsls r4, 4
+ adds r0, r1, 0
+ ands r0, r4
+ cmp r0, r4
+ beq _0801687C
+ movs r7, 0x80
+ lsls r7, 1
+ adds r0, r1, r7
+ str r0, [r2]
+_0801687C:
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r3
+ ldr r0, [r0]
+ ands r0, r4
+ lsrs r0, 8
+ ldr r1, [r5]
+ muls r0, r1
+ str r0, [r5]
+ ldr r0, _080168B8 @ =gUnknown_081D9518
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080168A2:
+ ldr r1, _080168BC @ =0x02000000
+ movs r2, 0xB0
+ lsls r2, 9
+ adds r1, r2
+ bl _08017072
+ .align 2, 0
+_080168B0: .4byte gBattleMons
+_080168B4: .4byte gUnknown_02024BEC
+_080168B8: .4byte gUnknown_081D9518
+_080168BC: .4byte 0x02000000
+_080168C0:
+ ldr r2, _0801690C @ =gBattleMons
+ ldrb r1, [r6]
+ movs r0, 0x58
+ adds r3, r1, 0
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08016902
+ adds r1, r3, r2
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _08016902
+ ldr r2, _08016910 @ =gUnknown_02024BEC
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 3
+ str r0, [r2]
+ cmp r0, 0
+ bne _080168F2
+ movs r0, 0x1
+ str r0, [r2]
+_080168F2:
+ ldr r0, _08016914 @ =gUnknown_081D953A
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016902:
+ ldr r1, _08016918 @ =0x02000000
+ movs r3, 0xB0
+ lsls r3, 9
+ adds r1, r3
+ b _08017072
+ .align 2, 0
+_0801690C: .4byte gBattleMons
+_08016910: .4byte gUnknown_02024BEC
+_08016914: .4byte gUnknown_081D953A
+_08016918: .4byte 0x02000000
+_0801691C:
+ ldr r2, _0801696C @ =gBattleMons
+ ldrb r1, [r6]
+ movs r0, 0x58
+ adds r3, r1, 0
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 20
+ ands r0, r1
+ cmp r0, 0
+ beq _08016960
+ adds r1, r3, r2
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _08016960
+ ldr r2, _08016970 @ =gUnknown_02024BEC
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 2
+ str r0, [r2]
+ cmp r0, 0
+ bne _08016950
+ movs r0, 0x1
+ str r0, [r2]
+_08016950:
+ ldr r0, _08016974 @ =gUnknown_081D9613
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016960:
+ ldr r1, _08016978 @ =0x02000000
+ movs r5, 0xB0
+ lsls r5, 9
+ adds r1, r5
+ b _08017072
+ .align 2, 0
+_0801696C: .4byte gBattleMons
+_08016970: .4byte gUnknown_02024BEC
+_08016974: .4byte gUnknown_081D9613
+_08016978: .4byte 0x02000000
+_0801697C:
+ ldr r2, _080169CC @ =gBattleMons
+ ldrb r1, [r6]
+ movs r0, 0x58
+ adds r3, r1, 0
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 21
+ ands r0, r1
+ cmp r0, 0
+ beq _080169C0
+ adds r1, r3, r2
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _080169C0
+ ldr r2, _080169D0 @ =gUnknown_02024BEC
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 2
+ str r0, [r2]
+ cmp r0, 0
+ bne _080169B0
+ movs r0, 0x1
+ str r0, [r2]
+_080169B0:
+ ldr r0, _080169D4 @ =gUnknown_081D9624
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080169C0:
+ ldr r1, _080169D8 @ =0x02000000
+ movs r7, 0xB0
+ lsls r7, 9
+ adds r1, r7
+ b _08017072
+ .align 2, 0
+_080169CC: .4byte gBattleMons
+_080169D0: .4byte gUnknown_02024BEC
+_080169D4: .4byte gUnknown_081D9624
+_080169D8: .4byte 0x02000000
+_080169DC:
+ ldr r0, _08016A8C @ =gBattleMons
+ mov r8, r0
+ ldrb r0, [r6]
+ movs r1, 0x58
+ mov r10, r1
+ mov r1, r10
+ muls r1, r0
+ mov r5, r8
+ adds r5, 0x50
+ adds r3, r1, r5
+ ldr r2, [r3]
+ movs r4, 0xE0
+ lsls r4, 8
+ adds r0, r2, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _08016AF6
+ mov r7, r8
+ adds r0, r1, r7
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08016AF6
+ ldr r1, _08016A90 @ =0xffffe000
+ adds r0, r2, r1
+ str r0, [r3]
+ ldrb r1, [r6]
+ mov r0, r10
+ muls r0, r1
+ adds r0, r5
+ ldr r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ beq _08016AB4
+ ldr r2, _08016A94 @ =0x02000000
+ lsls r0, r1, 1
+ ldr r4, _08016A98 @ =0x00016004
+ adds r0, r4
+ adds r0, r2
+ ldrb r1, [r0]
+ ldr r3, _08016A9C @ =0x000160a4
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldrb r0, [r6]
+ lsls r0, 1
+ subs r3, 0x9F
+ adds r0, r3
+ adds r0, r2
+ ldrb r1, [r0]
+ ldr r5, _08016AA0 @ =0x000160a5
+ adds r0, r2, r5
+ strb r1, [r0]
+ ldr r1, _08016AA4 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r4
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08016AA8 @ =gUnknown_02024C10
+ ldr r0, _08016AAC @ =gUnknown_081D95E2
+ str r0, [r1]
+ ldr r2, _08016AB0 @ =gUnknown_02024BEC
+ ldrb r0, [r6]
+ mov r7, r10
+ muls r7, r0
+ adds r0, r7, 0
+ add r0, r8
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 4
+ str r0, [r2]
+ cmp r0, 0
+ bne _08016AE6
+ movs r0, 0x1
+ str r0, [r2]
+ b _08016AE6
+ .align 2, 0
+_08016A8C: .4byte gBattleMons
+_08016A90: .4byte 0xffffe000
+_08016A94: .4byte 0x02000000
+_08016A98: .4byte 0x00016004
+_08016A9C: .4byte 0x000160a4
+_08016AA0: .4byte 0x000160a5
+_08016AA4: .4byte gUnknown_030041C0
+_08016AA8: .4byte gUnknown_02024C10
+_08016AAC: .4byte gUnknown_081D95E2
+_08016AB0: .4byte gUnknown_02024BEC
+_08016AB4:
+ ldr r1, _08016B00 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ ldr r2, _08016B04 @ =0x02000000
+ ldrb r0, [r6]
+ lsls r0, 1
+ ldr r3, _08016B08 @ =0x00016004
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r6]
+ lsls r0, 1
+ ldr r5, _08016B0C @ =0x00016005
+ adds r0, r5
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08016B10 @ =gUnknown_02024C10
+ ldr r0, _08016B14 @ =gUnknown_081D95F4
+ str r0, [r1]
+_08016AE6:
+ ldr r0, [r1]
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016AF6:
+ ldr r1, _08016B04 @ =0x02000000
+ movs r7, 0xB0
+ lsls r7, 9
+ adds r1, r7
+ b _08017072
+ .align 2, 0
+_08016B00: .4byte gUnknown_030041C0
+_08016B04: .4byte 0x02000000
+_08016B08: .4byte 0x00016004
+_08016B0C: .4byte 0x00016005
+_08016B10: .4byte gUnknown_02024C10
+_08016B14: .4byte gUnknown_081D95F4
+_08016B18:
+ movs r0, 0x8
+ negs r0, r0
+ ands r4, r0
+ str r4, [r2]
+ ldrb r0, [r6]
+ mov r2, r8
+ muls r2, r0
+ mov r0, r10
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ ldr r1, _08016B68 @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r1, _08016B6C @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ ldr r0, _08016B70 @ =gUnknown_081D950F
+ bl b_call_bc_move_exec
+ ldr r4, _08016B74 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ strb r0, [r4]
+ ldrb r0, [r4]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r9
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _08016BE0
+ .align 2, 0
+_08016B68: .4byte 0xf7ffffff
+_08016B6C: .4byte gUnknown_02024D1E
+_08016B70: .4byte gUnknown_081D950F
+_08016B74: .4byte gUnknown_02024A60
+_08016B78:
+ ldr r2, _08016BF4 @ =gBattleMons
+ ldrb r1, [r6]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r2, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x70
+ ands r1, r0
+ adds r7, r2, 0
+ cmp r1, 0
+ beq _08016C82
+ movs r0, 0
+ strb r0, [r4]
+ mov r2, r8
+ ldrb r1, [r2]
+ cmp r1, 0
+ beq _08016BE0
+ mov r10, r7
+ adds r6, r4, 0
+ movs r3, 0x58
+ mov r8, r3
+ movs r5, 0x4C
+ adds r5, r7
+ mov r9, r5
+ str r1, [sp, 0x4]
+ movs r0, 0x7
+ mov r12, r0
+_08016BB2:
+ ldrb r1, [r6]
+ mov r3, r8
+ muls r3, r1
+ mov r5, r9
+ adds r2, r3, r5
+ ldr r4, [r2]
+ adds r0, r4, 0
+ mov r5, r12
+ ands r0, r5
+ cmp r0, 0
+ beq _08016BD2
+ adds r0, r3, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x2B
+ bne _08016B18
+_08016BD2:
+ adds r0, r1, 0x1
+ strb r0, [r6]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp, 0x4]
+ cmp r0, r1
+ bcc _08016BB2
+_08016BE0:
+ ldr r2, _08016BF8 @ =gUnknown_02024C07
+ ldr r1, _08016BFC @ =gUnknown_02024A68
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _08016C00
+ movs r2, 0x2
+ mov r9, r2
+ b _0801707E
+ .align 2, 0
+_08016BF4: .4byte gBattleMons
+_08016BF8: .4byte gUnknown_02024C07
+_08016BFC: .4byte gUnknown_02024A68
+_08016C00:
+ ldr r5, _08016C38 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ strb r0, [r2]
+ ldr r2, _08016C3C @ =gBattleMons
+ ldrb r0, [r5]
+ movs r7, 0x58
+ adds r1, r0, 0
+ muls r1, r7
+ adds r6, r2, 0
+ adds r6, 0x50
+ adds r1, r6
+ ldr r0, [r1]
+ subs r0, 0x10
+ str r0, [r1]
+ ldrb r0, [r5]
+ bl sub_8015660
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _08016C44
+ ldrb r0, [r5]
+ bl b_cancel_multi_turn_move_maybe
+ ldr r1, _08016C40 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _08016C78
+ .align 2, 0
+_08016C38: .4byte gUnknown_02024A60
+_08016C3C: .4byte gBattleMons
+_08016C40: .4byte gUnknown_02024D1E
+_08016C44:
+ ldrb r3, [r5]
+ adds r0, r3, 0
+ muls r0, r7
+ adds r2, r0, r6
+ ldr r0, [r2]
+ movs r1, 0x70
+ ands r0, r1
+ cmp r0, 0
+ beq _08016C6C
+ ldr r0, _08016C68 @ =gUnknown_02024D1E
+ strb r4, [r0, 0x5]
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 5
+ orrs r0, r1
+ str r0, [r2]
+ b _08016C78
+ .align 2, 0
+_08016C68: .4byte gUnknown_02024D1E
+_08016C6C:
+ ldr r1, _08016C94 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ adds r0, r3, 0
+ bl b_cancel_multi_turn_move_maybe
+_08016C78:
+ ldr r0, _08016C98 @ =gUnknown_081D957E
+ bl b_call_bc_move_exec
+ movs r3, 0x1
+ mov r9, r3
+_08016C82:
+ mov r5, r9
+ cmp r5, 0x2
+ bne _08016C8A
+ b _08017078
+_08016C8A:
+ ldr r1, _08016C9C @ =0x02000000
+ movs r7, 0xB0
+ lsls r7, 9
+ adds r1, r7
+ b _08017072
+ .align 2, 0
+_08016C94: .4byte gUnknown_02024D1E
+_08016C98: .4byte gUnknown_081D957E
+_08016C9C: .4byte 0x02000000
+_08016CA0:
+ ldr r1, _08016CD8 @ =gBattleMons
+ ldrb r0, [r6]
+ movs r7, 0x58
+ muls r0, r7
+ adds r5, r1, 0
+ adds r5, 0x50
+ adds r2, r0, r5
+ ldr r1, [r2]
+ movs r4, 0xC0
+ lsls r4, 4
+ adds r0, r1, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _08016D3C
+ ldr r3, _08016CDC @ =0xfffffc00
+ adds r0, r1, r3
+ str r0, [r2]
+ ldrb r0, [r6]
+ bl sub_8015660
+ lsls r0, 24
+ cmp r0, 0
+ beq _08016CE0
+ ldrb r0, [r6]
+ bl b_cancel_multi_turn_move_maybe
+ b _08016D3C
+ .align 2, 0
+_08016CD8: .4byte gBattleMons
+_08016CDC: .4byte 0xfffffc00
+_08016CE0:
+ ldrb r0, [r6]
+ muls r0, r7
+ adds r2, r0, r5
+ ldr r1, [r2]
+ adds r0, r1, 0
+ ands r0, r4
+ cmp r0, 0
+ bne _08016D3C
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _08016D3C
+ ldr r0, _08016D48 @ =0xffffefff
+ ands r1, r0
+ str r1, [r2]
+ ldrb r0, [r6]
+ muls r0, r7
+ adds r0, r5
+ ldr r0, [r0]
+ movs r4, 0x7
+ ands r0, r4
+ cmp r0, 0
+ bne _08016D3C
+ ldr r1, _08016D4C @ =gUnknown_02024D1E
+ movs r0, 0x47
+ strb r0, [r1, 0x3]
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_801E3EC
+ ldrb r0, [r6]
+ muls r0, r7
+ adds r0, r5
+ ldr r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ beq _08016D32
+ ldr r0, _08016D50 @ =gUnknown_081D9587
+ bl b_call_bc_move_exec
+_08016D32:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016D3C:
+ ldr r1, _08016D54 @ =0x02000000
+ movs r5, 0xB0
+ lsls r5, 9
+ adds r1, r5
+ b _08017072
+ .align 2, 0
+_08016D48: .4byte 0xffffefff
+_08016D4C: .4byte gUnknown_02024D1E
+_08016D50: .4byte gUnknown_081D9587
+_08016D54: .4byte 0x02000000
+_08016D58:
+ ldr r0, _08016DD4 @ =gUnknown_02024CA8
+ ldrb r3, [r6]
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r5, r1, r0
+ ldrb r1, [r5, 0xB]
+ lsls r1, 28
+ adds r7, r0, 0
+ cmp r1, 0
+ beq _08016E1E
+ movs r4, 0
+ ldr r2, _08016DD8 @ =gBattleMons
+ movs r0, 0x58
+ adds r1, r3, 0
+ muls r1, r0
+ adds r2, 0xC
+ adds r1, r2
+ ldrh r0, [r5, 0x4]
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _08016DAC
+ mov r12, r7
+ mov r8, r2
+ adds r5, r6, 0
+ movs r3, 0x58
+_08016D8C:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _08016DAC
+ ldrb r2, [r5]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ add r1, r12
+ lsls r0, r4, 1
+ muls r2, r3
+ adds r0, r2
+ add r0, r8
+ ldrh r1, [r1, 0x4]
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _08016D8C
+_08016DAC:
+ cmp r4, 0x4
+ bne _08016DDC
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r7
+ movs r1, 0
+ strh r1, [r0, 0x4]
+ ldrb r0, [r6]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r2, [r1, 0xB]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0xB]
+ b _08016E1E
+ .align 2, 0
+_08016DD4: .4byte gUnknown_02024CA8
+_08016DD8: .4byte gBattleMons
+_08016DDC:
+ ldrb r0, [r6]
+ lsls r2, r0, 3
+ subs r2, r0
+ lsls r2, 2
+ adds r2, r7
+ ldrb r3, [r2, 0xB]
+ lsls r1, r3, 28
+ lsrs r1, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0xB]
+ adds r2, r1, 0
+ cmp r2, 0
+ bne _08016E1E
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r7
+ strh r2, [r0, 0x4]
+ ldr r0, _08016E28 @ =gUnknown_081D9148
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016E1E:
+ ldr r1, _08016E2C @ =0x02000000
+ movs r7, 0xB0
+ lsls r7, 9
+ adds r1, r7
+ b _08017072
+ .align 2, 0
+_08016E28: .4byte gUnknown_081D9148
+_08016E2C: .4byte 0x02000000
+_08016E30:
+ ldr r3, _08016E7C @ =gUnknown_02024CA8
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r2, r0, r3
+ ldrb r5, [r2, 0xE]
+ lsls r4, r5, 28
+ cmp r4, 0
+ beq _08016EE8
+ ldr r0, _08016E80 @ =gBattleMons
+ mov r8, r0
+ ldrb r0, [r2, 0xC]
+ lsls r0, 1
+ movs r7, 0x58
+ muls r1, r7
+ adds r0, r1
+ mov r1, r8
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r0, [r0]
+ ldrh r1, [r2, 0x6]
+ cmp r0, r1
+ beq _08016E84
+ movs r0, 0
+ strh r0, [r2, 0x6]
+ ldrb r0, [r6]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r1, 0xE]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0xE]
+ b _08016EE8
+ .align 2, 0
+_08016E7C: .4byte gUnknown_02024CA8
+_08016E80: .4byte gBattleMons
+_08016E84:
+ lsrs r1, r4, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r4, 0x10
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r5
+ orrs r0, r1
+ strb r0, [r2, 0xE]
+ cmp r1, 0
+ beq _08016EB8
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ muls r1, r7
+ ldrb r0, [r0, 0xC]
+ adds r1, r0
+ mov r0, r8
+ adds r0, 0x24
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08016EE8
+_08016EB8:
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x6]
+ ldrb r0, [r6]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r1, 0xE]
+ adds r0, r4, 0
+ ands r0, r2
+ strb r0, [r1, 0xE]
+ ldr r0, _08016EF4 @ =gUnknown_081D914F
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016EE8:
+ ldr r1, _08016EF8 @ =0x02000000
+ movs r2, 0xB0
+ lsls r2, 9
+ adds r1, r2
+ b _08017072
+ .align 2, 0
+_08016EF4: .4byte gUnknown_081D914F
+_08016EF8: .4byte 0x02000000
+_08016EFC:
+ ldr r0, _08016F1C @ =gUnknown_02024C98
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x18
+ ands r0, r2
+ cmp r0, 0
+ beq _08016F14
+ adds r0, r2, 0
+ subs r0, 0x8
+ str r0, [r1]
+_08016F14:
+ movs r1, 0xB0
+ lsls r1, 9
+ b _08017070
+ .align 2, 0
+_08016F1C: .4byte gUnknown_02024C98
+_08016F20:
+ ldr r2, _08016F60 @ =gUnknown_02024CA8
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r3, r0, r2
+ ldrb r2, [r3, 0x12]
+ lsls r1, r2, 28
+ cmp r1, 0
+ beq _08016F5A
+ lsrs r1, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x12]
+ cmp r1, 0
+ bne _08016F5A
+ ldr r0, _08016F64 @ =gUnknown_02024C98
+ ldrb r2, [r6]
+ lsls r2, 2
+ adds r2, r0
+ ldr r0, [r2]
+ ldr r1, _08016F68 @ =0xfffffdff
+ ands r0, r1
+ str r0, [r2]
+_08016F5A:
+ movs r1, 0xB0
+ lsls r1, 9
+ b _08017070
+ .align 2, 0
+_08016F60: .4byte gUnknown_02024CA8
+_08016F64: .4byte gUnknown_02024C98
+_08016F68: .4byte 0xfffffdff
+_08016F6C:
+ ldr r2, _08016F98 @ =gUnknown_02024CA8
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r3, r0, r2
+ ldrb r2, [r3, 0x13]
+ lsls r1, r2, 28
+ cmp r1, 0
+ beq _08016F92
+ lsrs r1, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x13]
+_08016F92:
+ movs r1, 0xB0
+ lsls r1, 9
+ b _08017070
+ .align 2, 0
+_08016F98: .4byte gUnknown_02024CA8
+_08016F9C:
+ ldr r4, _0801704C @ =gUnknown_02024C98
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r2, r0, r4
+ ldr r1, [r2]
+ movs r3, 0xC0
+ lsls r3, 5
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08017042
+ ldr r5, _08017050 @ =0xfffff800
+ adds r0, r1, r5
+ str r0, [r2]
+ ldrb r2, [r6]
+ lsls r0, r2, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ands r0, r3
+ cmp r0, 0
+ bne _08017042
+ ldr r3, _08017054 @ =gBattleMons
+ movs r5, 0x58
+ adds r1, r2, 0
+ muls r1, r5
+ adds r4, r3, 0
+ adds r4, 0x4C
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08017042
+ adds r0, r1, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x48
+ beq _08017042
+ cmp r0, 0xF
+ beq _08017042
+ adds r0, r2, 0
+ bl sub_8025A44
+ lsls r0, 24
+ cmp r0, 0
+ bne _08017042
+ ldrb r0, [r6]
+ bl b_cancel_multi_turn_move_maybe
+ bl Random
+ ldrb r1, [r6]
+ adds r2, r1, 0
+ muls r2, r5
+ adds r2, r4
+ movs r1, 0x3
+ ands r1, r0
+ adds r1, 0x2
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r6]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _08017058 @ =gUnknown_02024C0A
+ ldrb r0, [r6]
+ strb r0, [r1]
+ ldr r0, _0801705C @ =gUnknown_081D964C
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08017042:
+ ldr r1, _08017060 @ =0x02000000
+ movs r7, 0xB0
+ lsls r7, 9
+ adds r1, r7
+ b _08017072
+ .align 2, 0
+_0801704C: .4byte gUnknown_02024C98
+_08017050: .4byte 0xfffff800
+_08017054: .4byte gBattleMons
+_08017058: .4byte gUnknown_02024C0A
+_0801705C: .4byte gUnknown_081D964C
+_08017060: .4byte 0x02000000
+_08017064:
+ movs r1, 0xB0
+ lsls r1, 9
+ add r1, r10
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _08017084 @ =0x00016001
+_08017070:
+ add r1, r10
+_08017072:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08017078:
+ mov r0, r9
+ cmp r0, 0
+ beq _08017088
+_0801707E:
+ mov r0, r9
+ b _080170B8
+ .align 2, 0
+_08017084: .4byte 0x00016001
+_08017088:
+ ldr r7, _080170C8 @ =0x02000000
+ ldr r2, _080170CC @ =0x00016001
+ adds r0, r7, r2
+ ldr r1, _080170D0 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ mov r10, r7
+ mov r8, r1
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _080170AC
+ movs r3, 0xB0
+ lsls r3, 9
+ adds r0, r7, r3
+ ldrb r0, [r0]
+ cmp r0, 0x13
+ bhi _080170AC
+ bl _08016580
+_080170AC:
+ ldr r0, _080170D4 @ =gUnknown_02024C6C
+ ldr r1, [r0]
+ ldr r2, _080170D8 @ =0xfeffffdf
+ ands r1, r2
+ str r1, [r0]
+ movs r0, 0
+_080170B8:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080170C8: .4byte 0x02000000
+_080170CC: .4byte 0x00016001
+_080170D0: .4byte gUnknown_02024A68
+_080170D4: .4byte gUnknown_02024C6C
+_080170D8: .4byte 0xfeffffdf
+ thumb_func_end sub_8016558
+
+ thumb_func_start sub_80170DC
+sub_80170DC: @ 80170DC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r2, _08017108 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _0801710C @ =0x01000020
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _08017110 @ =0x02000000
+ ldr r3, _08017114 @ =0x00016110
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ mov r8, r1
+ cmp r0, 0
+ beq _08017118
+ cmp r0, 0x1
+ bne _08017104
+ b _08017258
+_08017104:
+ b _08017380
+ .align 2, 0
+_08017108: .4byte gUnknown_02024C6C
+_0801710C: .4byte 0x01000020
+_08017110: .4byte 0x02000000
+_08017114: .4byte 0x00016110
+_08017118:
+ ldr r2, _0801715C @ =0x00016111
+ add r2, r8
+ ldr r0, _08017160 @ =gUnknown_02024A68
+ ldrb r1, [r2]
+ mov r9, r0
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcc _0801712A
+ b _08017248
+_0801712A:
+ ldr r4, _08017164 @ =gUnknown_02024A60
+ adds r5, r2, 0
+ ldr r1, _08017168 @ =gUnknown_02024DBC
+ mov r12, r1
+ movs r2, 0x8
+ add r2, r12
+ mov r10, r2
+ mov r7, r12
+ adds r7, 0x18
+ ldr r6, _0801716C @ =gUnknown_030041C0
+_0801713E:
+ ldrb r3, [r5]
+ strb r3, [r4]
+ ldr r0, _08017170 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _08017174 @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08017178
+ adds r0, r3, 0x1
+ strb r0, [r5]
+ b _0801723C
+ .align 2, 0
+_0801715C: .4byte 0x00016111
+_08017160: .4byte gUnknown_02024A68
+_08017164: .4byte gUnknown_02024A60
+_08017168: .4byte gUnknown_02024DBC
+_0801716C: .4byte gUnknown_030041C0
+_08017170: .4byte gUnknown_02024C0C
+_08017174: .4byte gBitTable
+_08017178:
+ adds r0, r3, 0x1
+ strb r0, [r5]
+ ldr r1, _080171B4 @ =gUnknown_02024DBC
+ ldrb r0, [r4]
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0801723C
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ bne _0801723C
+ ldr r1, _080171B8 @ =gBattleMons
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801723C
+ lsls r0, r2, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ cmp r0, 0xF8
+ bne _080171C0
+ ldr r0, _080171BC @ =gUnknown_02024D1E
+ strb r3, [r0, 0x5]
+ b _080171C6
+ .align 2, 0
+_080171B4: .4byte gUnknown_02024DBC
+_080171B8: .4byte gBattleMons
+_080171BC: .4byte gUnknown_02024D1E
+_080171C0:
+ ldr r1, _08017220 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+_080171C6:
+ movs r0, 0xFD
+ strb r0, [r6]
+ movs r0, 0x2
+ strb r0, [r6, 0x1]
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ strb r0, [r6, 0x2]
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r6, 0x3]
+ movs r0, 0xFF
+ strb r0, [r6, 0x4]
+ ldr r3, _08017224 @ =gUnknown_02024C08
+ ldrb r0, [r4]
+ strb r0, [r3]
+ ldr r1, _08017228 @ =gUnknown_02024C07
+ mov r0, r12
+ adds r0, 0x4
+ ldrb r2, [r4]
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r1, _0801722C @ =gUnknown_02024BEC
+ ldrb r0, [r4]
+ lsls r0, 2
+ add r0, r10
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r2, _08017230 @ =gUnknown_02024D68
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x4
+ adds r0, r2
+ ldr r1, _08017234 @ =0x0000ffff
+ str r1, [r0]
+ ldr r0, _08017238 @ =gUnknown_081D92D7
+ b _08017364
+ .align 2, 0
+_08017220: .4byte gUnknown_02024D1E
+_08017224: .4byte gUnknown_02024C08
+_08017228: .4byte gUnknown_02024C07
+_0801722C: .4byte gUnknown_02024BEC
+_08017230: .4byte gUnknown_02024D68
+_08017234: .4byte 0x0000ffff
+_08017238: .4byte gUnknown_081D92D7
+_0801723C:
+ ldrb r0, [r5]
+ mov r3, r9
+ ldrb r3, [r3]
+ cmp r0, r3
+ bcs _08017248
+ b _0801713E
+_08017248:
+ ldr r1, _0801729C @ =0x00016110
+ add r1, r8
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080172A0 @ =0x00016111
+ add r0, r8
+ strb r2, [r0]
+_08017258:
+ ldr r2, _080172A0 @ =0x00016111
+ add r2, r8
+ ldr r0, _080172A4 @ =gUnknown_02024A68
+ ldrb r1, [r2]
+ mov r9, r0
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcc _0801726A
+ b _08017380
+_0801726A:
+ ldr r5, _080172A8 @ =gUnknown_02024A60
+ adds r3, r2, 0
+ ldr r4, _080172AC @ =gUnknown_030041C0
+ ldr r7, _080172B0 @ =gUnknown_02024CA8
+_08017272:
+ ldr r2, _080172B4 @ =gUnknown_02024C07
+ ldr r1, _080172B8 @ =gUnknown_02024A7A
+ ldrb r0, [r3]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ strb r0, [r5]
+ ldr r0, _080172BC @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _080172C0 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080172C4
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ b _08017374
+ .align 2, 0
+_0801729C: .4byte 0x00016110
+_080172A0: .4byte 0x00016111
+_080172A4: .4byte gUnknown_02024A68
+_080172A8: .4byte gUnknown_02024A60
+_080172AC: .4byte gUnknown_030041C0
+_080172B0: .4byte gUnknown_02024CA8
+_080172B4: .4byte gUnknown_02024C07
+_080172B8: .4byte gUnknown_02024A7A
+_080172BC: .4byte gUnknown_02024C0C
+_080172C0: .4byte gBitTable
+_080172C4:
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ ldr r6, _08017334 @ =gUnknown_02024C98
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r0, r6
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08017374
+ movs r0, 0xFD
+ strb r0, [r4]
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ strb r0, [r4, 0x2]
+ strb r0, [r4, 0x3]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r7
+ ldrb r0, [r0, 0xF]
+ lsls r0, 28
+ lsrs r0, 28
+ strb r0, [r4, 0x4]
+ movs r0, 0xFF
+ strb r0, [r4, 0x5]
+ ldrb r2, [r5]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r4, r0, r7
+ ldrb r3, [r4, 0xF]
+ lsls r1, r3, 28
+ cmp r1, 0
+ bne _08017348
+ lsls r2, 2
+ adds r2, r6
+ ldr r0, [r2]
+ movs r1, 0x21
+ negs r1, r1
+ ands r0, r1
+ str r0, [r2]
+ ldr r3, _08017338 @ =gUnknown_02024BEC
+ ldr r2, _0801733C @ =gBattleMons
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x28]
+ str r0, [r3]
+ ldr r1, _08017340 @ =gUnknown_02024C10
+ ldr r0, _08017344 @ =gUnknown_081D9202
+ b _08017360
+ .align 2, 0
+_08017334: .4byte gUnknown_02024C98
+_08017338: .4byte gUnknown_02024BEC
+_0801733C: .4byte gBattleMons
+_08017340: .4byte gUnknown_02024C10
+_08017344: .4byte gUnknown_081D9202
+_08017348:
+ lsrs r1, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r2, 0x10
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r4, 0xF]
+ ldr r1, _0801736C @ =gUnknown_02024C10
+ ldr r0, _08017370 @ =gUnknown_081D921D
+_08017360:
+ str r0, [r1]
+ ldr r0, [r1]
+_08017364:
+ bl b_call_bc_move_exec
+ movs r0, 0x1
+ b _0801738C
+ .align 2, 0
+_0801736C: .4byte gUnknown_02024C10
+_08017370: .4byte gUnknown_081D921D
+_08017374:
+ ldrb r0, [r3]
+ mov r1, r9
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _08017380
+ b _08017272
+_08017380:
+ ldr r2, _0801739C @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _080173A0 @ =0xfeffffdf
+ ands r0, r1
+ str r0, [r2]
+ movs r0, 0
+_0801738C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801739C: .4byte gUnknown_02024C6C
+_080173A0: .4byte 0xfeffffdf
+ thumb_func_end sub_80170DC
+
+ thumb_func_start sub_80173A4
+sub_80173A4: @ 80173A4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, _080173C0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080173F8
+ b _080176AC
+ .align 2, 0
+_080173C0: .4byte gUnknown_020239F8
+_080173C4:
+ ldr r0, _080173D4 @ =gUnknown_081D8C72
+ bl b_call_bc_move_exec
+ ldr r1, _080173D8 @ =0x00016059
+ add r1, r10
+ movs r0, 0x2
+ b _080173E8
+ .align 2, 0
+_080173D4: .4byte gUnknown_081D8C72
+_080173D8: .4byte 0x00016059
+_080173DC:
+ ldr r0, _080173F0 @ =gUnknown_081D8C7B
+ bl b_call_bc_move_exec
+ ldr r1, _080173F4 @ =0x00016059
+ add r1, r8
+ movs r0, 0x5
+_080173E8:
+ strb r0, [r1]
+_080173EA:
+ movs r0, 0x1
+ b _080176AE
+ .align 2, 0
+_080173F0: .4byte gUnknown_081D8C7B
+_080173F4: .4byte 0x00016059
+_080173F8:
+ ldr r0, _08017414 @ =0x02000000
+ mov r9, r0
+_080173FC:
+ ldr r0, _08017418 @ =0x00016059
+ add r0, r9
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bls _08017408
+ b _080176A0
+_08017408:
+ lsls r0, 2
+ ldr r1, _0801741C @ =_08017420
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08017414: .4byte 0x02000000
+_08017418: .4byte 0x00016059
+_0801741C: .4byte _08017420
+ .align 2, 0
+_08017420:
+ .4byte _08017440
+ .4byte _08017490
+ .4byte _08017534
+ .4byte _0801757C
+ .4byte _0801758E
+ .4byte _080175FC
+ .4byte _08017638
+ .4byte _080176A0
+_08017440:
+ ldr r1, _08017508 @ =0x0001605a
+ add r1, r9
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _0801750C @ =0x00016059
+ add r1, r9
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r5, 0
+ ldr r0, _08017510 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r5, r0
+ bge _08017490
+ ldr r6, _08017514 @ =gUnknown_02024C0C
+_0801745E:
+ ldrb r0, [r6]
+ ldr r2, _08017518 @ =gBitTable
+ lsls r1, r5, 2
+ adds r1, r2
+ ldr r4, [r1]
+ ands r0, r4
+ cmp r0, 0
+ beq _08017486
+ lsls r0, r5, 24
+ lsrs r0, 24
+ movs r1, 0x6
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ bne _08017486
+ ldrb r0, [r6]
+ bics r0, r4
+ strb r0, [r6]
+_08017486:
+ adds r5, 0x1
+ ldr r0, _08017510 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _0801745E
+_08017490:
+ ldr r1, _0801751C @ =0x02000000
+ mov r9, r1
+ ldr r0, _08017520 @ =gUnknown_02024C09
+ mov r12, r0
+ ldr r1, _08017524 @ =gUnknown_02024C08
+ mov r8, r1
+ mov r10, r9
+ ldr r5, _08017508 @ =0x0001605a
+ add r5, r9
+ ldr r7, _08017528 @ =gBattleMons
+ ldr r6, _0801752C @ =0x00016113
+ add r6, r9
+_080174A8:
+ ldrb r0, [r5]
+ mov r1, r8
+ strb r0, [r1]
+ mov r1, r12
+ strb r0, [r1]
+ ldrb r3, [r5]
+ movs r0, 0x58
+ muls r0, r3
+ adds r0, r7
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _080174EA
+ ldrb r2, [r6]
+ ldr r4, _08017518 @ =gBitTable
+ ldr r1, _08017530 @ =gUnknown_02024A6A
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ bne _080174EA
+ ldr r0, _08017514 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ lsls r0, r3, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080174EA
+ b _080173C4
+_080174EA:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ ldr r1, _08017510 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080174A8
+ ldr r1, _0801750C @ =0x00016059
+ add r1, r9
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080176A0
+ .align 2, 0
+_08017508: .4byte 0x0001605a
+_0801750C: .4byte 0x00016059
+_08017510: .4byte gUnknown_02024A68
+_08017514: .4byte gUnknown_02024C0C
+_08017518: .4byte gBitTable
+_0801751C: .4byte 0x02000000
+_08017520: .4byte gUnknown_02024C09
+_08017524: .4byte gUnknown_02024C08
+_08017528: .4byte gBattleMons
+_0801752C: .4byte 0x00016113
+_08017530: .4byte gUnknown_02024A6A
+_08017534:
+ ldr r0, _0801755C @ =gUnknown_02024C09
+ ldrb r0, [r0]
+ bl sub_8015740
+ ldr r2, _08017560 @ =0x02000000
+ ldr r0, _08017564 @ =0x0001605a
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r1, _08017568 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08017570
+ ldr r0, _0801756C @ =0x00016059
+ adds r1, r2, r0
+ movs r0, 0x3
+ b _0801769C
+ .align 2, 0
+_0801755C: .4byte gUnknown_02024C09
+_08017560: .4byte 0x02000000
+_08017564: .4byte 0x0001605a
+_08017568: .4byte gUnknown_02024A68
+_0801756C: .4byte 0x00016059
+_08017570:
+ ldr r0, _08017578 @ =0x00016059
+ adds r1, r2, r0
+ movs r0, 0x1
+ b _0801769C
+ .align 2, 0
+_08017578: .4byte 0x00016059
+_0801757C:
+ ldr r1, _080175D8 @ =0x0001605a
+ add r1, r9
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080175DC @ =0x00016059
+ add r1, r9
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0801758E:
+ ldr r7, _080175E0 @ =gUnknown_02024C09
+ ldr r6, _080175E4 @ =gUnknown_02024C08
+ ldr r1, _080175E8 @ =0x02000000
+ mov r8, r1
+ ldr r3, _080175D8 @ =0x0001605a
+ add r3, r8
+ ldr r5, _080175EC @ =gBattleMons
+ ldr r4, _080175F0 @ =gBitTable
+_0801759E:
+ ldrb r0, [r3]
+ strb r0, [r6]
+ strb r0, [r7]
+ ldrb r2, [r3]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r5
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _080175C4
+ ldr r0, _080175F4 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ lsls r0, r2, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080175C4
+ b _080173DC
+_080175C4:
+ adds r0, r2, 0x1
+ strb r0, [r3]
+ ldr r1, _080175F8 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0801759E
+ b _08017612
+ .align 2, 0
+_080175D8: .4byte 0x0001605a
+_080175DC: .4byte 0x00016059
+_080175E0: .4byte gUnknown_02024C09
+_080175E4: .4byte gUnknown_02024C08
+_080175E8: .4byte 0x02000000
+_080175EC: .4byte gBattleMons
+_080175F0: .4byte gBitTable
+_080175F4: .4byte gUnknown_02024C0C
+_080175F8: .4byte gUnknown_02024A68
+_080175FC:
+ ldr r0, _0801761C @ =0x0001605a
+ add r0, r9
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08017620 @ =gUnknown_02024A68
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08017628
+_08017612:
+ ldr r1, _08017624 @ =0x00016059
+ add r1, r9
+ movs r0, 0x6
+ strb r0, [r1]
+ b _080176A0
+ .align 2, 0
+_0801761C: .4byte 0x0001605a
+_08017620: .4byte gUnknown_02024A68
+_08017624: .4byte 0x00016059
+_08017628:
+ ldr r1, _08017634 @ =0x00016059
+ add r1, r9
+ movs r0, 0x4
+ strb r0, [r1]
+ b _080176A0
+ .align 2, 0
+_08017634: .4byte 0x00016059
+_08017638:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x9
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08017652
+ b _080173EA
+_08017652:
+ str r0, [sp]
+ movs r0, 0xB
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _08017668
+ b _080173EA
+_08017668:
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_801A02C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0801767C
+ b _080173EA
+_0801767C:
+ str r0, [sp]
+ movs r0, 0x6
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _08017692
+ b _080173EA
+_08017692:
+ ldr r2, _080176C0 @ =0x02000000
+ ldr r0, _080176C4 @ =0x00016059
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+_0801769C:
+ strb r0, [r1]
+ mov r9, r2
+_080176A0:
+ ldr r0, _080176C4 @ =0x00016059
+ add r0, r9
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ beq _080176AC
+ b _080173FC
+_080176AC:
+ movs r0, 0
+_080176AE:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080176C0: .4byte 0x02000000
+_080176C4: .4byte 0x00016059
+ thumb_func_end sub_80173A4
+
+ thumb_func_start b_clear_atk_up_if_hit_flag_unless_enraged
+b_clear_atk_up_if_hit_flag_unless_enraged: @ 80176C8
+ push {r4-r6,lr}
+ movs r3, 0
+ ldr r0, _08017708 @ =gUnknown_02024A68
+ adds r5, r0, 0
+ ldrb r0, [r5]
+ cmp r3, r0
+ bge _08017700
+ ldr r4, _0801770C @ =gUnknown_02024C60
+ movs r6, 0x80
+ lsls r6, 16
+ ldr r2, _08017710 @ =gUnknown_02024AD0
+_080176DE:
+ ldr r1, [r2]
+ adds r0, r1, 0
+ ands r0, r6
+ cmp r0, 0
+ beq _080176F4
+ ldrh r0, [r4]
+ cmp r0, 0x63
+ beq _080176F4
+ ldr r0, _08017714 @ =0xff7fffff
+ ands r1, r0
+ str r1, [r2]
+_080176F4:
+ adds r4, 0x2
+ adds r2, 0x58
+ adds r3, 0x1
+ ldrb r0, [r5]
+ cmp r3, r0
+ blt _080176DE
+_08017700:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08017708: .4byte gUnknown_02024A68
+_0801770C: .4byte gUnknown_02024C60
+_08017710: .4byte gUnknown_02024AD0
+_08017714: .4byte 0xff7fffff
+ thumb_func_end b_clear_atk_up_if_hit_flag_unless_enraged
+
+ thumb_func_start sub_8017718
+sub_8017718: @ 8017718
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ movs r0, 0
+ mov r9, r0
+ ldr r1, _08017734 @ =0x02016090
+ mov r10, r1
+ ldr r2, _08017738 @ =0xfffe9f70
+ add r2, r10
+ mov r8, r2
+ b _08017746
+ .align 2, 0
+_08017734: .4byte 0x02016090
+_08017738: .4byte 0xfffe9f70
+_0801773C:
+ mov r4, r9
+ cmp r4, 0
+ beq _08017746
+ bl _08017FAC
+_08017746:
+ ldr r0, _08017760 @ =0x000160e7
+ add r0, r8
+ ldrb r0, [r0]
+ cmp r0, 0xE
+ bls _08017754
+ bl _08017F9E
+_08017754:
+ lsls r0, 2
+ ldr r1, _08017764 @ =_08017768
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08017760: .4byte 0x000160e7
+_08017764: .4byte _08017768
+ .align 2, 0
+_08017768:
+ .4byte _080177A4
+ .4byte _080177E4
+ .4byte _08017920
+ .4byte _080179D8
+ .4byte _08017A50
+ .4byte _08017AC8
+ .4byte _08017B1C
+ .4byte _08017B98
+ .4byte _08017C1C
+ .4byte _08017C60
+ .4byte _08017D3C
+ .4byte _08017DC0
+ .4byte _08017E5C
+ .4byte _08017F48
+ .4byte _08017F9E
+_080177A4:
+ ldr r1, _080177D0 @ =gBattleMons
+ ldr r3, _080177D4 @ =gUnknown_02024C07
+ ldrb r2, [r3]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ ldr r1, _080177D8 @ =0xfdffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _080177DC @ =gUnknown_02024C98
+ ldrb r2, [r3]
+ lsls r2, 2
+ adds r2, r0
+ ldr r0, [r2]
+ ldr r1, _080177E0 @ =0xffffbfff
+ ands r0, r1
+ str r0, [r2]
+ bl _08017F94
+ .align 2, 0
+_080177D0: .4byte gBattleMons
+_080177D4: .4byte gUnknown_02024C07
+_080177D8: .4byte 0xfdffffff
+_080177DC: .4byte gUnknown_02024C98
+_080177E0: .4byte 0xffffbfff
+_080177E4:
+ ldr r7, _0801784C @ =gBattleMons
+ ldr r4, _08017850 @ =gUnknown_02024C07
+ ldrb r1, [r4]
+ movs r5, 0x58
+ adds r0, r1, 0
+ muls r0, r5
+ adds r6, r7, 0
+ adds r6, 0x4C
+ adds r0, r6
+ ldr r0, [r0]
+ movs r2, 0x7
+ mov r8, r2
+ ands r0, r2
+ cmp r0, 0
+ bne _08017804
+ b _08017D90
+_08017804:
+ adds r0, r1, 0
+ bl sub_8025A44
+ lsls r0, 24
+ cmp r0, 0
+ beq _08017864
+ ldrb r0, [r4]
+ adds r2, r0, 0
+ muls r2, r5
+ adds r2, r6
+ ldr r0, [r2]
+ movs r1, 0x8
+ negs r1, r1
+ ands r0, r1
+ str r0, [r2]
+ ldrb r0, [r4]
+ adds r2, r0, 0
+ muls r2, r5
+ adds r0, r7, 0
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ ldr r1, _08017854 @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08017858 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ ldr r1, _0801785C @ =gUnknown_02024C10
+ ldr r0, _08017860 @ =gUnknown_081D94FB
+ str r0, [r1]
+ movs r4, 0x2
+ mov r9, r4
+ b _08017D90
+ .align 2, 0
+_0801784C: .4byte gBattleMons
+_08017850: .4byte gUnknown_02024C07
+_08017854: .4byte 0xf7ffffff
+_08017858: .4byte gUnknown_02024D1E
+_0801785C: .4byte gUnknown_02024C10
+_08017860: .4byte gUnknown_081D94FB
+_08017864:
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r0, r1, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ movs r3, 0x1
+ cmp r0, 0x30
+ bne _08017878
+ movs r3, 0x2
+_08017878:
+ adds r2, r1, r6
+ ldr r1, [r2]
+ adds r0, r1, 0
+ mov r7, r8
+ ands r0, r7
+ cmp r0, r3
+ bcs _08017890
+ movs r0, 0x8
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ b _08017894
+_08017890:
+ subs r0, r1, r3
+ str r0, [r2]
+_08017894:
+ ldr r2, _080178D8 @ =gBattleMons
+ ldr r0, _080178DC @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r1, r0
+ ldr r4, [r0]
+ movs r0, 0x7
+ ands r4, r0
+ cmp r4, 0
+ beq _080178F0
+ ldr r0, _080178E0 @ =gUnknown_02024BE6
+ ldrh r0, [r0]
+ cmp r0, 0xAD
+ bne _080178B8
+ b _08017D90
+_080178B8:
+ cmp r0, 0xD6
+ bne _080178BE
+ b _08017D90
+_080178BE:
+ ldr r1, _080178E4 @ =gUnknown_02024C10
+ ldr r0, _080178E8 @ =gUnknown_081D94EE
+ str r0, [r1]
+ ldr r2, _080178EC @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ movs r0, 0x2
+ mov r9, r0
+ b _08017D90
+ .align 2, 0
+_080178D8: .4byte gBattleMons
+_080178DC: .4byte gUnknown_02024C07
+_080178E0: .4byte gUnknown_02024BE6
+_080178E4: .4byte gUnknown_02024C10
+_080178E8: .4byte gUnknown_081D94EE
+_080178EC: .4byte gUnknown_02024C6C
+_080178F0:
+ adds r2, 0x50
+ adds r2, r1, r2
+ ldr r0, [r2]
+ ldr r1, _08017910 @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r0, _08017914 @ =gUnknown_02024D1E
+ strb r4, [r0, 0x5]
+ ldr r1, _08017918 @ =gUnknown_02024C10
+ ldr r0, _0801791C @ =gUnknown_081D94FB
+ str r0, [r1]
+ movs r1, 0x2
+ b _08017D8E
+ .align 2, 0
+_08017910: .4byte 0xf7ffffff
+_08017914: .4byte gUnknown_02024D1E
+_08017918: .4byte gUnknown_02024C10
+_0801791C: .4byte gUnknown_081D94FB
+_08017920:
+ ldr r1, _0801797C @ =gBattleMons
+ ldr r7, _08017980 @ =gUnknown_02024C07
+ ldrb r0, [r7]
+ movs r6, 0x58
+ muls r0, r6
+ adds r5, r1, 0
+ adds r5, 0x4C
+ adds r0, r5
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0801793C
+ b _08017F94
+_0801793C:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _080179A8
+ ldr r2, _08017984 @ =gBattleMoves
+ ldr r0, _08017988 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x7D
+ beq _08017998
+ ldr r1, _0801798C @ =gUnknown_02024C10
+ ldr r0, _08017990 @ =gUnknown_081D9545
+ str r0, [r1]
+ ldr r2, _08017994 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 2
+ orrs r0, r1
+ str r0, [r2]
+ b _080179C8
+ .align 2, 0
+_0801797C: .4byte gBattleMons
+_08017980: .4byte gUnknown_02024C07
+_08017984: .4byte gBattleMoves
+_08017988: .4byte gUnknown_02024BE6
+_0801798C: .4byte gUnknown_02024C10
+_08017990: .4byte gUnknown_081D9545
+_08017994: .4byte gUnknown_02024C6C
+_08017998:
+ ldr r2, _080179A0 @ =0x02000000
+ ldr r7, _080179A4 @ =0x000160e7
+ adds r1, r2, r7
+ b _08017D96
+ .align 2, 0
+_080179A0: .4byte 0x02000000
+_080179A4: .4byte 0x000160e7
+_080179A8:
+ ldrb r0, [r7]
+ adds r2, r0, 0
+ muls r2, r6
+ adds r2, r5
+ ldr r0, [r2]
+ movs r1, 0x21
+ negs r1, r1
+ ands r0, r1
+ str r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _080179CC @ =gUnknown_02024C10
+ ldr r0, _080179D0 @ =gUnknown_081D9552
+ str r0, [r1]
+ ldr r0, _080179D4 @ =gUnknown_02024D1E
+ strb r4, [r0, 0x5]
+_080179C8:
+ movs r0, 0x2
+ b _08017E3C
+ .align 2, 0
+_080179CC: .4byte gUnknown_02024C10
+_080179D0: .4byte gUnknown_081D9552
+_080179D4: .4byte gUnknown_02024D1E
+_080179D8:
+ ldr r1, _08017A30 @ =gBattleMons
+ ldr r0, _08017A34 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x36
+ beq _080179EE
+ b _08017D90
+_080179EE:
+ ldr r0, _08017A38 @ =gUnknown_02024CA8
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x18]
+ lsls r0, 31
+ cmp r0, 0
+ bne _08017A02
+ b _08017D90
+_08017A02:
+ adds r0, r2, 0
+ bl b_cancel_multi_turn_move_maybe
+ ldr r2, _08017A3C @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _08017A40 @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ ldr r1, _08017A44 @ =gUnknown_02024C10
+ ldr r0, _08017A48 @ =gUnknown_081D9977
+ str r0, [r1]
+ ldr r2, _08017A4C @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ movs r2, 0x1
+ mov r9, r2
+ b _08017D90
+ .align 2, 0
+_08017A30: .4byte gBattleMons
+_08017A34: .4byte gUnknown_02024C07
+_08017A38: .4byte gUnknown_02024CA8
+_08017A3C: .4byte gUnknown_02024C6C
+_08017A40: .4byte gUnknown_02024D1E
+_08017A44: .4byte gUnknown_02024C10
+_08017A48: .4byte gUnknown_081D9977
+_08017A4C: .4byte gUnknown_02024C68
+_08017A50:
+ ldr r1, _08017AA4 @ =gBattleMons
+ ldr r3, _08017AA8 @ =gUnknown_02024C07
+ ldrb r2, [r3]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x80
+ lsls r0, 15
+ ands r0, r1
+ cmp r0, 0
+ beq _08017A9C
+ ldr r0, _08017AAC @ =0xffbfffff
+ ands r1, r0
+ str r1, [r2]
+ ldr r2, _08017AB0 @ =gUnknown_02024CA8
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0, 0x19]
+ ldrb r0, [r3]
+ bl b_cancel_multi_turn_move_maybe
+ ldr r1, _08017AB4 @ =gUnknown_02024C10
+ ldr r0, _08017AB8 @ =gUnknown_081D7956
+ str r0, [r1]
+ ldr r2, _08017ABC @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ movs r7, 0x1
+ mov r9, r7
+_08017A9C:
+ ldr r2, _08017AC0 @ =0x02000000
+ ldr r0, _08017AC4 @ =0x000160e7
+ adds r1, r2, r0
+ b _08017D96
+ .align 2, 0
+_08017AA4: .4byte gBattleMons
+_08017AA8: .4byte gUnknown_02024C07
+_08017AAC: .4byte 0xffbfffff
+_08017AB0: .4byte gUnknown_02024CA8
+_08017AB4: .4byte gUnknown_02024C10
+_08017AB8: .4byte gUnknown_081D7956
+_08017ABC: .4byte gUnknown_02024C6C
+_08017AC0: .4byte 0x02000000
+_08017AC4: .4byte 0x000160e7
+_08017AC8:
+ ldr r1, _08017B08 @ =gBattleMons
+ ldr r3, _08017B0C @ =gUnknown_02024C07
+ ldrb r2, [r3]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08017AE2
+ b _08017D90
+_08017AE2:
+ movs r0, 0x9
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ ldr r0, _08017B10 @ =gUnknown_02024D28
+ ldrb r2, [r3]
+ lsls r2, 4
+ adds r2, r0
+ ldrb r0, [r2, 0x2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ ldrb r0, [r3]
+ bl b_cancel_multi_turn_move_maybe
+ ldr r1, _08017B14 @ =gUnknown_02024C10
+ ldr r0, _08017B18 @ =gUnknown_081D9573
+ b _08017D7E
+ .align 2, 0
+_08017B08: .4byte gBattleMons
+_08017B0C: .4byte gUnknown_02024C07
+_08017B10: .4byte gUnknown_02024D28
+_08017B14: .4byte gUnknown_02024C10
+_08017B18: .4byte gUnknown_081D9573
+_08017B1C:
+ ldr r0, _08017B74 @ =gUnknown_02024CA8
+ ldr r3, _08017B78 @ =gUnknown_02024C07
+ ldrb r2, [r3]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08017B7C @ =gUnknown_02024BE6
+ ldrh r1, [r1, 0x4]
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _08017B36
+ b _08017D90
+_08017B36:
+ cmp r1, 0
+ bne _08017B3C
+ b _08017D90
+_08017B3C:
+ ldr r0, _08017B80 @ =gUnknown_02024D28
+ lsls r2, 4
+ adds r2, r0
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldr r0, _08017B84 @ =0x02000000
+ ldrb r1, [r3]
+ ldr r7, _08017B88 @ =0x00016003
+ adds r0, r7
+ strb r1, [r0]
+ ldrb r0, [r3]
+ bl b_cancel_multi_turn_move_maybe
+ ldr r1, _08017B8C @ =gUnknown_02024C10
+ ldr r0, _08017B90 @ =gUnknown_081D9139
+ str r0, [r1]
+ ldr r2, _08017B94 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ movs r0, 0x1
+ mov r9, r0
+ b _08017D90
+ .align 2, 0
+_08017B74: .4byte gUnknown_02024CA8
+_08017B78: .4byte gUnknown_02024C07
+_08017B7C: .4byte gUnknown_02024BE6
+_08017B80: .4byte gUnknown_02024D28
+_08017B84: .4byte 0x02000000
+_08017B88: .4byte 0x00016003
+_08017B8C: .4byte gUnknown_02024C10
+_08017B90: .4byte gUnknown_081D9139
+_08017B94: .4byte gUnknown_02024C6C
+_08017B98:
+ ldr r0, _08017BF4 @ =gUnknown_02024CA8
+ ldr r4, _08017BF8 @ =gUnknown_02024C07
+ ldrb r3, [r4]
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x13]
+ lsls r0, 28
+ cmp r0, 0
+ beq _08017BEC
+ ldr r2, _08017BFC @ =gBattleMoves
+ ldr r0, _08017C00 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _08017BEC
+ ldr r0, _08017C04 @ =gUnknown_02024D28
+ lsls r2, r3, 4
+ adds r2, r0
+ ldrb r0, [r2, 0x2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ ldrb r0, [r4]
+ bl b_cancel_multi_turn_move_maybe
+ ldr r1, _08017C08 @ =gUnknown_02024C10
+ ldr r0, _08017C0C @ =gUnknown_081D938F
+ str r0, [r1]
+ ldr r2, _08017C10 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ movs r7, 0x1
+ mov r9, r7
+_08017BEC:
+ ldr r2, _08017C14 @ =0x02000000
+ ldr r0, _08017C18 @ =0x000160e7
+ adds r1, r2, r0
+ b _08017D96
+ .align 2, 0
+_08017BF4: .4byte gUnknown_02024CA8
+_08017BF8: .4byte gUnknown_02024C07
+_08017BFC: .4byte gBattleMoves
+_08017C00: .4byte gUnknown_02024BE6
+_08017C04: .4byte gUnknown_02024D28
+_08017C08: .4byte gUnknown_02024C10
+_08017C0C: .4byte gUnknown_081D938F
+_08017C10: .4byte gUnknown_02024C6C
+_08017C14: .4byte 0x02000000
+_08017C18: .4byte 0x000160e7
+_08017C1C:
+ ldr r4, _08017C4C @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ ldr r1, _08017C50 @ =gUnknown_02024BE6
+ ldrh r1, [r1]
+ bl sub_8015D5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08017C30
+ b _08017D90
+_08017C30:
+ ldr r0, _08017C54 @ =gUnknown_02024D28
+ ldrb r2, [r4]
+ lsls r2, 4
+ adds r2, r0
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r0, [r4]
+ bl b_cancel_multi_turn_move_maybe
+ ldr r1, _08017C58 @ =gUnknown_02024C10
+ ldr r0, _08017C5C @ =gUnknown_081D9459
+ b _08017D7E
+ .align 2, 0
+_08017C4C: .4byte gUnknown_02024C07
+_08017C50: .4byte gUnknown_02024BE6
+_08017C54: .4byte gUnknown_02024D28
+_08017C58: .4byte gUnknown_02024C10
+_08017C5C: .4byte gUnknown_081D9459
+_08017C60:
+ ldr r7, _08017CAC @ =gBattleMons
+ ldr r5, _08017CB0 @ =gUnknown_02024C07
+ ldrb r0, [r5]
+ movs r6, 0x58
+ muls r0, r6
+ adds r4, r7, 0
+ adds r4, 0x50
+ adds r2, r0, r4
+ ldr r1, [r2]
+ movs r3, 0x7
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ bne _08017C7E
+ b _08017F94
+_08017C7E:
+ subs r0, r1, 0x1
+ str r0, [r2]
+ ldrb r0, [r5]
+ muls r0, r6
+ adds r0, r4
+ ldr r0, [r0]
+ ands r0, r3
+ cmp r0, 0
+ beq _08017D24
+ bl Random
+ movs r1, 0x1
+ movs r2, 0x1
+ ands r2, r0
+ cmp r2, 0
+ beq _08017CB8
+ ldr r1, _08017CB4 @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ bl b_movescr_stack_push_cursor
+ b _08017D02
+ .align 2, 0
+_08017CAC: .4byte gBattleMons
+_08017CB0: .4byte gUnknown_02024C07
+_08017CB4: .4byte gUnknown_02024D1E
+_08017CB8:
+ ldr r0, _08017D08 @ =gUnknown_02024D1E
+ movs r4, 0x1
+ strb r1, [r0, 0x5]
+ ldr r1, _08017D0C @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ strb r0, [r1]
+ ldrb r0, [r5]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r7
+ movs r0, 0x28
+ str r0, [sp]
+ str r2, [sp, 0x4]
+ ldrb r0, [r5]
+ str r0, [sp, 0x8]
+ ldrb r0, [r5]
+ str r0, [sp, 0xC]
+ adds r0, r1, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl CalculateBaseDamage
+ ldr r1, _08017D10 @ =gUnknown_02024BEC
+ str r0, [r1]
+ ldr r0, _08017D14 @ =gUnknown_02024D28
+ ldrb r1, [r5]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ orrs r0, r4
+ strb r0, [r1, 0x1]
+ ldr r2, _08017D18 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+_08017D02:
+ ldr r1, _08017D1C @ =gUnknown_02024C10
+ ldr r0, _08017D20 @ =gUnknown_081D9595
+ b _08017D2C
+ .align 2, 0
+_08017D08: .4byte gUnknown_02024D1E
+_08017D0C: .4byte gUnknown_02024C08
+_08017D10: .4byte gUnknown_02024BEC
+_08017D14: .4byte gUnknown_02024D28
+_08017D18: .4byte gUnknown_02024C6C
+_08017D1C: .4byte gUnknown_02024C10
+_08017D20: .4byte gUnknown_081D9595
+_08017D24:
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08017D34 @ =gUnknown_02024C10
+ ldr r0, _08017D38 @ =gUnknown_081D95D4
+_08017D2C:
+ str r0, [r1]
+ movs r7, 0x1
+ b _08017F8E
+ .align 2, 0
+_08017D34: .4byte gUnknown_02024C10
+_08017D38: .4byte gUnknown_081D95D4
+_08017D3C:
+ ldr r1, _08017DA0 @ =gBattleMons
+ ldr r4, _08017DA4 @ =gUnknown_02024C07
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08017D90
+ bl Random
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ cmp r1, 0
+ bne _08017D90
+ ldr r0, _08017DA8 @ =gUnknown_02024D28
+ ldrb r2, [r4]
+ lsls r2, 4
+ adds r2, r0
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4]
+ bl b_cancel_multi_turn_move_maybe
+ ldr r1, _08017DAC @ =gUnknown_02024C10
+ ldr r0, _08017DB0 @ =gUnknown_081D9566
+_08017D7E:
+ str r0, [r1]
+ ldr r2, _08017DB4 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ movs r1, 0x1
+_08017D8E:
+ mov r9, r1
+_08017D90:
+ ldr r2, _08017DB8 @ =0x02000000
+ ldr r4, _08017DBC @ =0x000160e7
+ adds r1, r2, r4
+_08017D96:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r8, r2
+ b _08017F9E
+ .align 2, 0
+_08017DA0: .4byte gBattleMons
+_08017DA4: .4byte gUnknown_02024C07
+_08017DA8: .4byte gUnknown_02024D28
+_08017DAC: .4byte gUnknown_02024C10
+_08017DB0: .4byte gUnknown_081D9566
+_08017DB4: .4byte gUnknown_02024C6C
+_08017DB8: .4byte 0x02000000
+_08017DBC: .4byte 0x000160e7
+_08017DC0:
+ ldr r1, _08017DFC @ =gBattleMons
+ ldr r4, _08017E00 @ =gUnknown_02024C07
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0xF0
+ lsls r0, 12
+ ands r1, r0
+ cmp r1, 0
+ bne _08017DDC
+ b _08017F94
+_08017DDC:
+ lsrs r0, r1, 16
+ bl sub_804114C
+ ldr r1, _08017E04 @ =0x02000000
+ ldr r7, _08017E08 @ =0x00016003
+ adds r1, r7
+ strb r0, [r1]
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08017E0C
+ bl b_movescr_stack_push_cursor
+ b _08017E34
+ .align 2, 0
+_08017DFC: .4byte gBattleMons
+_08017E00: .4byte gUnknown_02024C07
+_08017E04: .4byte 0x02000000
+_08017E08: .4byte 0x00016003
+_08017E0C:
+ ldr r0, _08017E44 @ =gUnknown_081D9608
+ bl b_movescr_stack_push
+ ldr r2, _08017E48 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ ldr r0, _08017E4C @ =gUnknown_02024D28
+ ldrb r2, [r4]
+ lsls r2, 4
+ adds r2, r0
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r0, [r4]
+ bl b_cancel_multi_turn_move_maybe
+_08017E34:
+ ldr r1, _08017E50 @ =gUnknown_02024C10
+ ldr r0, _08017E54 @ =gUnknown_081D95FB
+ str r0, [r1]
+ movs r0, 0x1
+_08017E3C:
+ mov r9, r0
+ ldr r1, _08017E58 @ =0x02000000
+ mov r8, r1
+ b _08017F94
+ .align 2, 0
+_08017E44: .4byte gUnknown_081D9608
+_08017E48: .4byte gUnknown_02024C6C
+_08017E4C: .4byte gUnknown_02024D28
+_08017E50: .4byte gUnknown_02024C10
+_08017E54: .4byte gUnknown_081D95FB
+_08017E58: .4byte 0x02000000
+_08017E5C:
+ ldr r1, _08017E98 @ =gBattleMons
+ ldr r6, _08017E9C @ =gUnknown_02024C07
+ ldrb r0, [r6]
+ movs r5, 0x58
+ muls r0, r5
+ adds r1, 0x50
+ adds r3, r0, r1
+ ldr r2, [r3]
+ movs r4, 0xC0
+ lsls r4, 2
+ adds r0, r2, 0
+ ands r0, r4
+ cmp r0, 0
+ bne _08017E7A
+ b _08017F94
+_08017E7A:
+ ldr r7, _08017EA0 @ =0xffffff00
+ adds r0, r2, r7
+ str r0, [r3]
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r1, r0, r1
+ ldr r2, [r1]
+ adds r0, r2, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _08017EAC
+ ldr r1, _08017EA4 @ =gUnknown_02024C10
+ ldr r0, _08017EA8 @ =gUnknown_081D90A7
+ b _08017F38
+ .align 2, 0
+_08017E98: .4byte gBattleMons
+_08017E9C: .4byte gUnknown_02024C07
+_08017EA0: .4byte 0xffffff00
+_08017EA4: .4byte gUnknown_02024C10
+_08017EA8: .4byte gUnknown_081D90A7
+_08017EAC:
+ ldr r0, _08017F0C @ =0xffffefff
+ ands r2, r0
+ str r2, [r1]
+ ldr r2, _08017F10 @ =gUnknown_02024BF4
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08017F34
+ ldr r1, _08017F14 @ =gUnknown_02024BE6
+ movs r0, 0x75
+ strh r0, [r1]
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ lsls r0, 1
+ mov r1, r10
+ str r0, [r1]
+ ldr r4, _08017F18 @ =gUnknown_02024C08
+ ldr r1, _08017F1C @ =gUnknown_02024C74
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r0, _08017F20 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _08017F24 @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08017EFE
+ movs r0, 0x75
+ movs r1, 0x1
+ bl sub_801B5C0
+ strb r0, [r4]
+_08017EFE:
+ ldr r1, _08017F28 @ =gUnknown_02024C10
+ ldr r0, _08017F2C @ =gUnknown_081D90B2
+ str r0, [r1]
+ ldr r2, _08017F30 @ =0x02000000
+ mov r8, r2
+ b _08017F3A
+ .align 2, 0
+_08017F0C: .4byte 0xffffefff
+_08017F10: .4byte gUnknown_02024BF4
+_08017F14: .4byte gUnknown_02024BE6
+_08017F18: .4byte gUnknown_02024C08
+_08017F1C: .4byte gUnknown_02024C74
+_08017F20: .4byte gUnknown_02024C0C
+_08017F24: .4byte gBitTable
+_08017F28: .4byte gUnknown_02024C10
+_08017F2C: .4byte gUnknown_081D90B2
+_08017F30: .4byte 0x02000000
+_08017F34:
+ ldr r1, _08017F40 @ =gUnknown_02024C10
+ ldr r0, _08017F44 @ =gUnknown_081D90F1
+_08017F38:
+ str r0, [r1]
+_08017F3A:
+ movs r4, 0x1
+ mov r9, r4
+ b _08017F94
+ .align 2, 0
+_08017F40: .4byte gUnknown_02024C10
+_08017F44: .4byte gUnknown_081D90F1
+_08017F48:
+ ldr r1, _08017FEC @ =gBattleMons
+ ldr r0, _08017FF0 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x4C
+ adds r4, r0, r1
+ ldr r3, [r4]
+ movs r0, 0x20
+ ands r0, r3
+ cmp r0, 0
+ beq _08017F94
+ ldr r2, _08017FF4 @ =gBattleMoves
+ ldr r0, _08017FF8 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x7D
+ bne _08017F8C
+ movs r0, 0x21
+ negs r0, r0
+ ands r3, r0
+ str r3, [r4]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08017FFC @ =gUnknown_02024C10
+ ldr r0, _08018000 @ =gUnknown_081D9552
+ str r0, [r1]
+ ldr r1, _08018004 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+_08017F8C:
+ movs r7, 0x2
+_08017F8E:
+ mov r9, r7
+ ldr r0, _08018008 @ =0x02000000
+ mov r8, r0
+_08017F94:
+ ldr r1, _0801800C @ =0x000160e7
+ add r1, r8
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08017F9E:
+ ldr r0, _0801800C @ =0x000160e7
+ add r0, r8
+ ldrb r0, [r0]
+ cmp r0, 0xE
+ beq _08017FAC
+ bl _0801773C
+_08017FAC:
+ mov r1, r9
+ cmp r1, 0x2
+ bne _08017FD8
+ ldr r4, _08018010 @ =gUnknown_02024A60
+ ldr r0, _08017FF0 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r1, _08018014 @ =gUnknown_02024ACC
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08017FD8:
+ mov r0, r9
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08017FEC: .4byte gBattleMons
+_08017FF0: .4byte gUnknown_02024C07
+_08017FF4: .4byte gBattleMoves
+_08017FF8: .4byte gUnknown_02024BE6
+_08017FFC: .4byte gUnknown_02024C10
+_08018000: .4byte gUnknown_081D9552
+_08018004: .4byte gUnknown_02024D1E
+_08018008: .4byte 0x02000000
+_0801800C: .4byte 0x000160e7
+_08018010: .4byte gUnknown_02024A60
+_08018014: .4byte gUnknown_02024ACC
+ thumb_func_end sub_8017718
+
+ thumb_func_start sub_8018018
+sub_8018018: @ 8018018
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r3, r4, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ ldr r0, _08018044 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08018048
+ movs r0, 0
+ b _08018198
+ .align 2, 0
+_08018044: .4byte gUnknown_020239F8
+_08018048:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080180D4
+ adds r0, r4, 0
+ bl sub_803FC34
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r1, _080180CC @ =gEnemyParty
+ mov r8, r1
+ cmp r0, 0
+ bne _0801806E
+ ldr r2, _080180D0 @ =gPlayerParty
+ mov r8, r2
+_0801806E:
+ adds r0, r7, 0
+ bl sub_803FBFC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 1
+ adds r5, r0, r6
+ adds r0, r5, 0x3
+ cmp r5, r0
+ bge _080180BA
+ adds r7, r0, 0
+_08018084:
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080180B4
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _080180B4
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ bne _080180BA
+_080180B4:
+ adds r5, 0x1
+ cmp r5, r7
+ blt _08018084
+_080180BA:
+ movs r1, 0
+ lsls r0, r6, 1
+ adds r0, r6
+ adds r0, 0x3
+ cmp r5, r0
+ bne _080180C8
+ movs r1, 0x1
+_080180C8:
+ adds r0, r1, 0
+ b _08018198
+ .align 2, 0
+_080180CC: .4byte gEnemyParty
+_080180D0: .4byte gPlayerParty
+_080180D4:
+ adds r0, r3, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08018100
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0x3
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, _080180FC @ =gEnemyParty
+ mov r8, r2
+ b _08018118
+ .align 2, 0
+_080180FC: .4byte gEnemyParty
+_08018100:
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0x2
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080181A8 @ =gPlayerParty
+ mov r8, r0
+_08018118:
+ mov r1, r10
+ cmp r1, 0x6
+ bne _08018128
+ ldr r1, _080181AC @ =gUnknown_02024A6A
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r10, r0
+_08018128:
+ mov r2, r9
+ cmp r2, 0x6
+ bne _08018138
+ ldr r1, _080181AC @ =gUnknown_02024A6A
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r9, r0
+_08018138:
+ movs r5, 0
+_0801813A:
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0801818A
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _0801818A
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _0801818A
+ cmp r5, r10
+ beq _0801818A
+ cmp r5, r9
+ beq _0801818A
+ ldr r1, _080181B0 @ =0x02000000
+ ldr r2, _080181B4 @ =0x00016068
+ adds r0, r7, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r5, r0
+ beq _0801818A
+ adds r0, r6, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r5, r0
+ bne _08018190
+_0801818A:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _0801813A
+_08018190:
+ movs r0, 0
+ cmp r5, 0x6
+ bne _08018198
+ movs r0, 0x1
+_08018198:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080181A8: .4byte gPlayerParty
+_080181AC: .4byte gUnknown_02024A6A
+_080181B0: .4byte 0x02000000
+_080181B4: .4byte 0x00016068
+ thumb_func_end sub_8018018
+
+ thumb_func_start castform_switch
+castform_switch: @ 80181B8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ ldr r1, _08018228 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r6
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ ldr r0, _0801822C @ =SPECIES_CASTFORM
+ cmp r1, r0
+ bne _0801825C
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bne _0801825C
+ ldrh r0, [r4, 0x28]
+ cmp r0, 0
+ beq _0801825C
+ str r5, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801820A
+ str r5, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _08018230
+_0801820A:
+ adds r2, r4, 0
+ adds r2, 0x21
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08018230
+ adds r1, r4, 0
+ adds r1, 0x22
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08018230
+ strb r5, [r2]
+ strb r5, [r1]
+ movs r0, 0x1
+ b _08018314
+ .align 2, 0
+_08018228: .4byte gBattleMons
+_0801822C: .4byte SPECIES_CASTFORM
+_08018230:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0801825C
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _08018260
+_0801825C:
+ movs r0, 0
+ b _08018314
+_08018260:
+ ldr r1, _0801831C @ =word_2024DB8
+ ldrh r0, [r1]
+ movs r2, 0xE7
+ ands r2, r0
+ adds r4, r1, 0
+ cmp r2, 0
+ bne _0801828E
+ ldr r1, _08018320 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r6
+ adds r1, r0, r1
+ adds r3, r1, 0
+ adds r3, 0x21
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _0801828E
+ adds r1, 0x22
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0801828E
+ strb r2, [r3]
+ strb r2, [r1]
+ movs r5, 0x1
+_0801828E:
+ ldrh r1, [r4]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _080182BA
+ ldr r1, _08018320 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r6
+ adds r1, r0, r1
+ adds r2, r1, 0
+ adds r2, 0x21
+ ldrb r0, [r2]
+ cmp r0, 0xA
+ beq _080182BA
+ adds r1, 0x22
+ ldrb r0, [r1]
+ cmp r0, 0xA
+ beq _080182BA
+ movs r0, 0xA
+ strb r0, [r2]
+ strb r0, [r1]
+ movs r5, 0x2
+_080182BA:
+ ldrh r1, [r4]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _080182E6
+ ldr r1, _08018320 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r6
+ adds r1, r0, r1
+ adds r2, r1, 0
+ adds r2, 0x21
+ ldrb r0, [r2]
+ cmp r0, 0xB
+ beq _080182E6
+ adds r1, 0x22
+ ldrb r0, [r1]
+ cmp r0, 0xB
+ beq _080182E6
+ movs r0, 0xB
+ strb r0, [r2]
+ strb r0, [r1]
+ movs r5, 0x3
+_080182E6:
+ ldrh r1, [r4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08018312
+ ldr r1, _08018320 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r6
+ adds r1, r0, r1
+ adds r2, r1, 0
+ adds r2, 0x21
+ ldrb r0, [r2]
+ cmp r0, 0xF
+ beq _08018312
+ adds r1, 0x22
+ ldrb r0, [r1]
+ cmp r0, 0xF
+ beq _08018312
+ movs r0, 0xF
+ strb r0, [r2]
+ strb r0, [r1]
+ movs r5, 0x4
+_08018312:
+ adds r0, r5, 0
+_08018314:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801831C: .4byte word_2024DB8
+_08018320: .4byte gBattleMons
+ thumb_func_end castform_switch
+
+ thumb_func_start sub_8018324
+sub_8018324: @ 8018324
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ ldr r4, [sp, 0x48]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0
+ mov r9, r0
+ ldr r5, _08018380 @ =gUnknown_02024C07
+ ldr r1, _08018384 @ =gUnknown_02024A68
+ ldrb r0, [r5]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08018360
+ mov r1, r10
+ strb r1, [r5]
+_08018360:
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08018390
+ ldr r1, _08018388 @ =gUnknown_02024A6A
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0801838C @ =gPlayerParty
+ b _080183A0
+ .align 2, 0
+_08018380: .4byte gUnknown_02024C07
+_08018384: .4byte gUnknown_02024A68
+_08018388: .4byte gUnknown_02024A6A
+_0801838C: .4byte gPlayerParty
+_08018390:
+ ldr r1, _080183D0 @ =gUnknown_02024A6A
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080183D4 @ =gEnemyParty
+_080183A0:
+ adds r7, r1, r0
+ ldr r5, _080183D8 @ =gUnknown_02024C08
+ ldr r1, _080183DC @ =gUnknown_02024A68
+ ldrb r0, [r5]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _080183B2
+ mov r2, r10
+ strb r2, [r5]
+_080183B2:
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080183E4
+ ldr r1, _080183D0 @ =gUnknown_02024A6A
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080183E0 @ =gPlayerParty
+ b _080183F4
+ .align 2, 0
+_080183D0: .4byte gUnknown_02024A6A
+_080183D4: .4byte gEnemyParty
+_080183D8: .4byte gUnknown_02024C08
+_080183DC: .4byte gUnknown_02024A68
+_080183E0: .4byte gPlayerParty
+_080183E4:
+ ldr r1, _08018444 @ =gUnknown_02024A6A
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08018448 @ =gEnemyParty
+_080183F4:
+ adds r5, r1, r0
+ adds r0, r7, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ movs r1, 0
+ bl GetMonData
+ str r0, [sp, 0x10]
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0
+ bl GetMonData
+ str r0, [sp, 0x14]
+ ldr r0, _0801844C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08018436
+ bl _08019F92
+_08018436:
+ mov r3, r8
+ cmp r3, 0
+ beq _08018454
+ ldr r0, _08018450 @ =byte_2024C06
+ strb r3, [r0]
+ mov r8, r0
+ b _0801846A
+ .align 2, 0
+_08018444: .4byte gUnknown_02024A6A
+_08018448: .4byte gEnemyParty
+_0801844C: .4byte gUnknown_020239F8
+_08018450: .4byte byte_2024C06
+_08018454:
+ ldr r2, _08018474 @ =byte_2024C06
+ ldr r1, _08018478 @ =gBattleMons
+ movs r0, 0x58
+ mov r5, r10
+ muls r5, r0
+ adds r0, r5, 0
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r2]
+ mov r8, r2
+_0801846A:
+ cmp r4, 0
+ beq _0801847C
+ adds r3, r4, 0
+ b _08018480
+ .align 2, 0
+_08018474: .4byte byte_2024C06
+_08018478: .4byte gBattleMons
+_0801847C:
+ ldr r0, _08018494 @ =gUnknown_02024BE6
+ ldrh r3, [r0]
+_08018480:
+ ldr r1, _08018498 @ =0x02000000
+ ldr r2, _0801849C @ =0x0001601c
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r7, r1, 0
+ cmp r0, 0
+ beq _080184A0
+ movs r4, 0x3F
+ ands r4, r0
+ b _080184AC
+ .align 2, 0
+_08018494: .4byte gUnknown_02024BE6
+_08018498: .4byte 0x02000000
+_0801849C: .4byte 0x0001601c
+_080184A0:
+ ldr r1, _080184C0 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x2]
+_080184AC:
+ ldr r5, [sp, 0x4]
+ cmp r5, 0x13
+ bls _080184B6
+ bl _08019F76
+_080184B6:
+ lsls r0, r5, 2
+ ldr r1, _080184C4 @ =_080184C8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080184C0: .4byte gBattleMoves
+_080184C4: .4byte _080184C8
+ .align 2, 0
+_080184C8:
+ .4byte _08018518
+ .4byte _08018814
+ .4byte _08018A40
+ .4byte _08018AD8
+ .4byte _08018CF0
+ .4byte _08019448
+ .4byte _080197B4
+ .4byte _08019804
+ .4byte _08019880
+ .4byte _080198FC
+ .4byte _08019B1C
+ .4byte _08019940
+ .4byte _08019B60
+ .4byte _08019BBC
+ .4byte _08019C18
+ .4byte _08019D18
+ .4byte _08019D5C
+ .4byte _08019DB8
+ .4byte _08019F44
+ .4byte _08019CD4
+_08018518:
+ ldr r2, _0801854C @ =gUnknown_02024C07
+ ldr r0, _08018550 @ =gUnknown_02024A68
+ ldrb r1, [r2]
+ adds r5, r0, 0
+ ldrb r0, [r5]
+ cmp r1, r0
+ bcc _0801852A
+ mov r1, r10
+ strb r1, [r2]
+_0801852A:
+ mov r2, r8
+ ldrb r0, [r2]
+ cmp r0, 0x2D
+ bne _08018534
+ b _080186B8
+_08018534:
+ cmp r0, 0x2D
+ bgt _08018564
+ cmp r0, 0xD
+ bne _0801853E
+ b _080187DC
+_0801853E:
+ cmp r0, 0xD
+ bgt _08018554
+ cmp r0, 0x2
+ bne _08018548
+ b _08018680
+_08018548:
+ bl _08019F76
+ .align 2, 0
+_0801854C: .4byte gUnknown_02024C07
+_08018550: .4byte gUnknown_02024A68
+_08018554:
+ cmp r0, 0x16
+ bne _0801855A
+ b _08018728
+_0801855A:
+ cmp r0, 0x24
+ bne _08018560
+ b _080187A0
+_08018560:
+ bl _08019F76
+_08018564:
+ cmp r0, 0x46
+ bne _0801856A
+ b _080186F0
+_0801856A:
+ cmp r0, 0x46
+ bgt _08018578
+ cmp r0, 0x3B
+ bne _08018574
+ b _0801875C
+_08018574:
+ bl _08019F76
+_08018578:
+ cmp r0, 0x4D
+ bne _0801857E
+ b _080187DC
+_0801857E:
+ cmp r0, 0xFF
+ beq _08018586
+ bl _08019F76
+_08018586:
+ bl weather_get_current
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x3
+ cmp r0, 0xA
+ bhi _0801864C
+ lsls r0, 2
+ ldr r1, _080185A0 @ =_080185A4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080185A0: .4byte _080185A4
+ .align 2, 0
+_080185A4:
+ .4byte _080185D0
+ .4byte _0801864C
+ .4byte _080185D0
+ .4byte _0801864C
+ .4byte _0801864C
+ .4byte _080185F8
+ .4byte _0801864C
+ .4byte _0801864C
+ .4byte _0801864C
+ .4byte _08018620
+ .4byte _080185D0
+_080185D0:
+ ldr r2, _080185EC @ =word_2024DB8
+ ldrh r1, [r2]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801864C
+ movs r0, 0x5
+ strh r0, [r2]
+ ldr r0, _080185F0 @ =0x02000000
+ ldr r3, _080185F4 @ =0x000160a4
+ adds r2, r0, r3
+ movs r1, 0xA
+ b _08018638
+ .align 2, 0
+_080185EC: .4byte word_2024DB8
+_080185F0: .4byte 0x02000000
+_080185F4: .4byte 0x000160a4
+_080185F8:
+ ldr r3, _08018614 @ =word_2024DB8
+ ldrh r1, [r3]
+ movs r2, 0x18
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0801864C
+ strh r2, [r3]
+ ldr r0, _08018618 @ =0x02000000
+ ldr r3, _0801861C @ =0x000160a4
+ adds r2, r0, r3
+ movs r1, 0xC
+ b _08018638
+ .align 2, 0
+_08018614: .4byte word_2024DB8
+_08018618: .4byte 0x02000000
+_0801861C: .4byte 0x000160a4
+_08018620:
+ ldr r3, _08018668 @ =word_2024DB8
+ ldrh r1, [r3]
+ movs r2, 0x60
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0801864C
+ strh r2, [r3]
+ ldr r0, _0801866C @ =0x02000000
+ ldr r3, _08018670 @ =0x000160a4
+ adds r2, r0, r3
+ movs r1, 0xB
+_08018638:
+ strb r1, [r2]
+ ldr r5, _08018674 @ =0x00016003
+ adds r0, r5
+ mov r1, r10
+ strb r1, [r0]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801864C:
+ mov r2, r9
+ cmp r2, 0
+ bne _08018656
+ bl _08019F92
+_08018656:
+ bl weather_get_current
+ ldr r1, _08018678 @ =gUnknown_02024D1E
+ strb r0, [r1, 0x5]
+ ldr r0, _0801867C @ =gUnknown_081D901D
+ bl b_push_move_exec
+ bl _08019F76
+ .align 2, 0
+_08018668: .4byte word_2024DB8
+_0801866C: .4byte 0x02000000
+_08018670: .4byte 0x000160a4
+_08018674: .4byte 0x00016003
+_08018678: .4byte gUnknown_02024D1E
+_0801867C: .4byte gUnknown_081D901D
+_08018680:
+ ldr r2, _080186A8 @ =word_2024DB8
+ ldrh r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08018690
+ bl _08019F76
+_08018690:
+ movs r0, 0x5
+ strh r0, [r2]
+ ldr r0, _080186AC @ =gUnknown_081D9704
+ bl b_push_move_exec
+ ldr r0, _080186B0 @ =0x02000000
+ ldr r3, _080186B4 @ =0x00016003
+ adds r0, r3
+ mov r5, r10
+ strb r5, [r0]
+ bl _08019F22
+ .align 2, 0
+_080186A8: .4byte word_2024DB8
+_080186AC: .4byte gUnknown_081D9704
+_080186B0: .4byte 0x02000000
+_080186B4: .4byte 0x00016003
+_080186B8:
+ ldr r2, _080186E0 @ =word_2024DB8
+ ldrh r1, [r2]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080186C8
+ bl _08019F76
+_080186C8:
+ movs r0, 0x18
+ strh r0, [r2]
+ ldr r0, _080186E4 @ =gUnknown_081D9744
+ bl b_push_move_exec
+ ldr r0, _080186E8 @ =0x02000000
+ ldr r1, _080186EC @ =0x00016003
+ adds r0, r1
+ mov r2, r10
+ strb r2, [r0]
+ bl _08019F22
+ .align 2, 0
+_080186E0: .4byte word_2024DB8
+_080186E4: .4byte gUnknown_081D9744
+_080186E8: .4byte 0x02000000
+_080186EC: .4byte 0x00016003
+_080186F0:
+ ldr r2, _08018718 @ =word_2024DB8
+ ldrh r1, [r2]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08018700
+ bl _08019F76
+_08018700:
+ movs r0, 0x60
+ strh r0, [r2]
+ ldr r0, _0801871C @ =gUnknown_081D97FE
+ bl b_push_move_exec
+ ldr r0, _08018720 @ =0x02000000
+ ldr r3, _08018724 @ =0x00016003
+ adds r0, r3
+ mov r5, r10
+ strb r5, [r0]
+ bl _08019F22
+ .align 2, 0
+_08018718: .4byte word_2024DB8
+_0801871C: .4byte gUnknown_081D97FE
+_08018720: .4byte 0x02000000
+_08018724: .4byte 0x00016003
+_08018728:
+ ldr r0, _08018754 @ =gUnknown_02024D68
+ mov r1, r10
+ lsls r2, r1, 2
+ adds r1, r2, r1
+ lsls r1, 2
+ adds r3, r1, r0
+ ldrb r0, [r3]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08018740
+ bl _08019F76
+_08018740:
+ ldr r1, _08018758 @ =gUnknown_02024C98
+ adds r1, r2, r1
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 12
+ orrs r0, r2
+ str r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x8
+ b _080187CA
+ .align 2, 0
+_08018754: .4byte gUnknown_02024D68
+_08018758: .4byte gUnknown_02024C98
+_0801875C:
+ mov r0, r10
+ bl castform_switch
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ cmp r0, 0
+ bne _08018770
+ bl _08019F92
+_08018770:
+ ldr r0, _08018790 @ =gUnknown_081D977D
+ bl b_push_move_exec
+ ldr r0, _08018794 @ =0x02000000
+ ldr r2, _08018798 @ =0x00016003
+ adds r1, r0, r2
+ mov r3, r10
+ strb r3, [r1]
+ mov r1, r9
+ subs r1, 0x1
+ ldr r5, _0801879C @ =0x0001609b
+ adds r0, r5
+ strb r1, [r0]
+ bl _08019F76
+ .align 2, 0
+_08018790: .4byte gUnknown_081D977D
+_08018794: .4byte 0x02000000
+_08018798: .4byte 0x00016003
+_0801879C: .4byte 0x0001609b
+_080187A0:
+ ldr r0, _080187D4 @ =gUnknown_02024D68
+ mov r1, r10
+ lsls r2, r1, 2
+ adds r1, r2, r1
+ lsls r1, 2
+ adds r3, r1, r0
+ ldrb r0, [r3]
+ lsls r0, 27
+ cmp r0, 0
+ bge _080187B8
+ bl _08019F76
+_080187B8:
+ ldr r1, _080187D8 @ =gUnknown_02024C98
+ adds r1, r2, r1
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 13
+ orrs r0, r2
+ str r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x10
+_080187CA:
+ orrs r0, r1
+ strb r0, [r3]
+ bl _08019F76
+ .align 2, 0
+_080187D4: .4byte gUnknown_02024D68
+_080187D8: .4byte gUnknown_02024C98
+_080187DC:
+ movs r6, 0
+ ldrb r5, [r5]
+ cmp r6, r5
+ bcc _080187E8
+ bl _08019F76
+_080187E8:
+ adds r0, r6, 0
+ bl castform_switch
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ cmp r0, 0
+ beq _080187FC
+ bl _08019E14
+_080187FC:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _08018810 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _080187E8
+ bl _08019F76
+ .align 2, 0
+_08018810: .4byte gUnknown_02024A68
+_08018814:
+ ldr r2, _08018844 @ =gBattleMons
+ movs r0, 0x58
+ mov r1, r10
+ muls r1, r0
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x28]
+ cmp r0, 0
+ bne _08018828
+ bl _08019F76
+_08018828:
+ ldr r0, _08018848 @ =gUnknown_02024C07
+ mov r3, r10
+ strb r3, [r0]
+ mov r3, r8
+ ldrb r5, [r3]
+ cmp r5, 0x2C
+ beq _0801885A
+ cmp r5, 0x2C
+ bgt _0801884C
+ cmp r5, 0x3
+ bne _08018840
+ b _080189B8
+_08018840:
+ bl _08019F76
+ .align 2, 0
+_08018844: .4byte gBattleMons
+_08018848: .4byte gUnknown_02024C07
+_0801884C:
+ cmp r5, 0x36
+ bne _08018852
+ b _08018A18
+_08018852:
+ cmp r5, 0x3D
+ beq _080188DC
+ bl _08019F76
+_0801885A:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08018876
+ bl _08019F76
+_08018876:
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801888E
+ bl _08019F76
+_0801888E:
+ ldr r0, _080188D0 @ =word_2024DB8
+ ldrh r1, [r0]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801889E
+ bl _08019F76
+_0801889E:
+ ldrh r0, [r4, 0x2C]
+ ldrh r1, [r4, 0x28]
+ cmp r0, r1
+ bhi _080188AA
+ bl _08019F76
+_080188AA:
+ mov r2, r8
+ strb r5, [r2]
+ ldr r0, _080188D4 @ =gUnknown_081D9730
+ bl b_push_move_exec
+ ldr r1, _080188D8 @ =gUnknown_02024BEC
+ ldrh r0, [r4, 0x2C]
+ lsrs r0, 4
+ str r0, [r1]
+ cmp r0, 0
+ bne _080188C4
+ movs r0, 0x1
+ str r0, [r1]
+_080188C4:
+ ldr r0, [r1]
+ negs r0, r0
+ str r0, [r1]
+ bl _08019F22
+ .align 2, 0
+_080188D0: .4byte word_2024DB8
+_080188D4: .4byte gUnknown_081D9730
+_080188D8: .4byte gUnknown_02024BEC
+_080188DC:
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r5, r1, r0
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _080188EC
+ bl _08019F76
+_080188EC:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _08018906
+ bl _08019F76
+_08018906:
+ ldr r0, [r5]
+ movs r1, 0x88
+ ands r0, r1
+ cmp r0, 0
+ beq _08018918
+ ldr r0, _08018990 @ =gUnknown_030041C0
+ ldr r1, _08018994 @ =gStatusConditionString_PoisonJpn
+ bl StringCopy
+_08018918:
+ ldr r0, [r5]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _0801892A
+ ldr r0, _08018990 @ =gUnknown_030041C0
+ ldr r1, _08018998 @ =gStatusConditionString_SleepJpn
+ bl StringCopy
+_0801892A:
+ ldr r0, [r5]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801893C
+ ldr r0, _08018990 @ =gUnknown_030041C0
+ ldr r1, _0801899C @ =gStatusConditionString_ParalysisJpn
+ bl StringCopy
+_0801893C:
+ ldr r0, [r5]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0801894E
+ ldr r0, _08018990 @ =gUnknown_030041C0
+ ldr r1, _080189A0 @ =gStatusConditionString_BurnJpn
+ bl StringCopy
+_0801894E:
+ ldr r0, [r5]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08018960
+ ldr r0, _08018990 @ =gUnknown_030041C0
+ ldr r1, _080189A4 @ =gStatusConditionString_IceJpn
+ bl StringCopy
+_08018960:
+ str r4, [r5]
+ ldr r0, _080189A8 @ =0x02000000
+ ldr r4, _080189AC @ =gUnknown_02024A60
+ mov r3, r10
+ strb r3, [r4]
+ ldr r1, _080189B0 @ =0x00016003
+ adds r0, r1
+ strb r3, [r0]
+ ldr r0, _080189B4 @ =gUnknown_081D9758
+ bl b_push_move_exec
+ str r5, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ bl _08019F22
+ .align 2, 0
+_08018990: .4byte gUnknown_030041C0
+_08018994: .4byte gStatusConditionString_PoisonJpn
+_08018998: .4byte gStatusConditionString_SleepJpn
+_0801899C: .4byte gStatusConditionString_ParalysisJpn
+_080189A0: .4byte gStatusConditionString_BurnJpn
+_080189A4: .4byte gStatusConditionString_IceJpn
+_080189A8: .4byte 0x02000000
+_080189AC: .4byte gUnknown_02024A60
+_080189B0: .4byte 0x00016003
+_080189B4: .4byte gUnknown_081D9758
+_080189B8:
+ ldrb r2, [r4, 0x1B]
+ movs r0, 0x1B
+ ldrsb r0, [r4, r0]
+ cmp r0, 0xB
+ ble _080189C6
+ bl _08019F76
+_080189C6:
+ ldr r0, _08018A04 @ =gUnknown_02024CA8
+ mov r3, r10
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x16]
+ cmp r0, 0x2
+ bne _080189DC
+ bl _08019F76
+_080189DC:
+ adds r0, r2, 0x1
+ movs r2, 0
+ strb r0, [r4, 0x1B]
+ ldr r5, _08018A08 @ =0x000160a4
+ adds r1, r7, r5
+ movs r0, 0x11
+ strb r0, [r1]
+ ldr r1, _08018A0C @ =0x000160a5
+ adds r0, r7, r1
+ strb r2, [r0]
+ ldr r0, _08018A10 @ =gUnknown_081D9718
+ bl b_push_move_exec
+ ldr r2, _08018A14 @ =0x00016003
+ adds r0, r7, r2
+ mov r3, r10
+ strb r3, [r0]
+ bl _08019F22
+ .align 2, 0
+_08018A04: .4byte gUnknown_02024CA8
+_08018A08: .4byte 0x000160a4
+_08018A0C: .4byte 0x000160a5
+_08018A10: .4byte gUnknown_081D9718
+_08018A14: .4byte 0x00016003
+_08018A18:
+ ldr r2, _08018A3C @ =gUnknown_02024CA8
+ ldrb r0, [r0]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r3, [r1, 0x18]
+ lsls r0, r3, 31
+ lsrs r0, 31
+ movs r2, 0x1
+ eors r2, r0
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x18]
+ bl _08019F76
+ .align 2, 0
+_08018A3C: .4byte gUnknown_02024CA8
+_08018A40:
+ mov r5, r8
+ ldrb r0, [r5]
+ cmp r0, 0x2B
+ beq _08018A4C
+ bl _08019F76
+_08018A4C:
+ movs r4, 0
+ ldr r0, _08018ABC @ =gUnknown_081FA724
+ ldrh r2, [r0]
+ ldr r5, _08018AC0 @ =0x0000ffff
+ adds r1, r0, 0
+ cmp r2, r5
+ bne _08018A5E
+ bl _08019F76
+_08018A5E:
+ cmp r2, r3
+ beq _08018A76
+ adds r2, r1, 0
+_08018A64:
+ adds r2, 0x2
+ adds r4, 0x1
+ ldrh r0, [r2]
+ cmp r0, r5
+ bne _08018A72
+ bl _08019F76
+_08018A72:
+ cmp r0, r3
+ bne _08018A64
+_08018A76:
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _08018AC0 @ =0x0000ffff
+ cmp r1, r0
+ bne _08018A86
+ bl _08019F76
+_08018A86:
+ ldr r1, _08018AC4 @ =gBattleMons
+ ldr r0, _08018AC8 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _08018AAC
+ ldr r0, _08018ACC @ =gUnknown_02024C6C
+ ldr r1, [r0]
+ movs r2, 0x80
+ lsls r2, 4
+ orrs r1, r2
+ str r1, [r0]
+_08018AAC:
+ ldr r1, _08018AD0 @ =gUnknown_02024C10
+ ldr r0, _08018AD4 @ =gUnknown_081D98F3
+ str r0, [r1]
+ movs r0, 0x1
+ mov r9, r0
+ bl _08019F7C
+ .align 2, 0
+_08018ABC: .4byte gUnknown_081FA724
+_08018AC0: .4byte 0x0000ffff
+_08018AC4: .4byte gBattleMons
+_08018AC8: .4byte gUnknown_02024C07
+_08018ACC: .4byte gUnknown_02024C6C
+_08018AD0: .4byte gUnknown_02024C10
+_08018AD4: .4byte gUnknown_081D98F3
+_08018AD8:
+ cmp r3, 0
+ bne _08018AE0
+ bl _08019F76
+_08018AE0:
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0xB
+ beq _08018B50
+ cmp r0, 0xB
+ bgt _08018AF2
+ cmp r0, 0xA
+ beq _08018AF8
+ b _08018C6A
+_08018AF2:
+ cmp r0, 0x12
+ beq _08018BA8
+ b _08018C6A
+_08018AF8:
+ cmp r4, 0xD
+ beq _08018AFE
+ b _08018C6A
+_08018AFE:
+ ldr r0, _08018B28 @ =gBattleMoves
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _08018B10
+ b _08018C6A
+_08018B10:
+ ldr r1, _08018B2C @ =gUnknown_02024D28
+ ldr r0, _08018B30 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08018B3C
+ ldr r1, _08018B34 @ =gUnknown_02024C10
+ ldr r0, _08018B38 @ =gUnknown_081D9843
+ b _08018B40
+ .align 2, 0
+_08018B28: .4byte gBattleMoves
+_08018B2C: .4byte gUnknown_02024D28
+_08018B30: .4byte gUnknown_02024C07
+_08018B34: .4byte gUnknown_02024C10
+_08018B38: .4byte gUnknown_081D9843
+_08018B3C:
+ ldr r1, _08018B48 @ =gUnknown_02024C10
+ ldr r0, _08018B4C @ =gUnknown_081D9842
+_08018B40:
+ str r0, [r1]
+ movs r2, 0x1
+ b _08018C68
+ .align 2, 0
+_08018B48: .4byte gUnknown_02024C10
+_08018B4C: .4byte gUnknown_081D9842
+_08018B50:
+ cmp r4, 0xB
+ beq _08018B56
+ b _08018C6A
+_08018B56:
+ ldr r0, _08018B80 @ =gBattleMoves
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _08018B68
+ b _08018C6A
+_08018B68:
+ ldr r1, _08018B84 @ =gUnknown_02024D28
+ ldr r0, _08018B88 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08018B94
+ ldr r1, _08018B8C @ =gUnknown_02024C10
+ ldr r0, _08018B90 @ =gUnknown_081D9843
+ b _08018B98
+ .align 2, 0
+_08018B80: .4byte gBattleMoves
+_08018B84: .4byte gUnknown_02024D28
+_08018B88: .4byte gUnknown_02024C07
+_08018B8C: .4byte gUnknown_02024C10
+_08018B90: .4byte gUnknown_081D9843
+_08018B94:
+ ldr r1, _08018BA0 @ =gUnknown_02024C10
+ ldr r0, _08018BA4 @ =gUnknown_081D9842
+_08018B98:
+ str r0, [r1]
+ movs r3, 0x1
+ mov r9, r3
+ b _08018C6A
+ .align 2, 0
+_08018BA0: .4byte gUnknown_02024C10
+_08018BA4: .4byte gUnknown_081D9842
+_08018BA8:
+ cmp r4, 0xA
+ bne _08018C6A
+ ldr r1, _08018BF4 @ =gBattleMons
+ movs r0, 0x58
+ mov r5, r10
+ muls r5, r0
+ adds r0, r5, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _08018C6A
+ ldr r2, _08018BF8 @ =0x02017100
+ mov r0, r10
+ lsls r1, r0, 2
+ adds r0, r1, r2
+ ldr r3, [r0]
+ movs r4, 0x1
+ ands r3, r4
+ adds r5, r1, 0
+ cmp r3, 0
+ bne _08018C30
+ ldr r0, _08018BFC @ =gUnknown_02024D1E
+ strb r3, [r0, 0x5]
+ ldr r1, _08018C00 @ =gUnknown_02024D28
+ ldr r0, _08018C04 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08018C10
+ ldr r1, _08018C08 @ =gUnknown_02024C10
+ ldr r0, _08018C0C @ =gUnknown_081D987C
+ b _08018C14
+ .align 2, 0
+_08018BF4: .4byte gBattleMons
+_08018BF8: .4byte 0x02017100
+_08018BFC: .4byte gUnknown_02024D1E
+_08018C00: .4byte gUnknown_02024D28
+_08018C04: .4byte gUnknown_02024C07
+_08018C08: .4byte gUnknown_02024C10
+_08018C0C: .4byte gUnknown_081D987C
+_08018C10:
+ ldr r1, _08018C28 @ =gUnknown_02024C10
+ ldr r0, _08018C2C @ =gUnknown_081D987B
+_08018C14:
+ str r0, [r1]
+ adds r0, r5, r2
+ ldr r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ str r1, [r0]
+ movs r1, 0x2
+ mov r9, r1
+ b _08018C6A
+ .align 2, 0
+_08018C28: .4byte gUnknown_02024C10
+_08018C2C: .4byte gUnknown_081D987B
+_08018C30:
+ ldr r0, _08018C4C @ =gUnknown_02024D1E
+ strb r4, [r0, 0x5]
+ ldr r1, _08018C50 @ =gUnknown_02024D28
+ ldr r0, _08018C54 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08018C60
+ ldr r1, _08018C58 @ =gUnknown_02024C10
+ ldr r0, _08018C5C @ =gUnknown_081D987C
+ b _08018C64
+ .align 2, 0
+_08018C4C: .4byte gUnknown_02024D1E
+_08018C50: .4byte gUnknown_02024D28
+_08018C54: .4byte gUnknown_02024C07
+_08018C58: .4byte gUnknown_02024C10
+_08018C5C: .4byte gUnknown_081D987C
+_08018C60:
+ ldr r1, _08018CA4 @ =gUnknown_02024C10
+ ldr r0, _08018CA8 @ =gUnknown_081D987B
+_08018C64:
+ str r0, [r1]
+ movs r2, 0x2
+_08018C68:
+ mov r9, r2
+_08018C6A:
+ mov r3, r9
+ cmp r3, 0x1
+ beq _08018C74
+ bl _08019F76
+_08018C74:
+ ldr r1, _08018CAC @ =gBattleMons
+ movs r0, 0x58
+ mov r5, r10
+ muls r5, r0
+ adds r0, r5, 0
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2C]
+ ldrh r2, [r1, 0x28]
+ cmp r0, r2
+ bne _08018CD0
+ ldr r1, _08018CB0 @ =gUnknown_02024D28
+ ldr r0, _08018CB4 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08018CBC
+ ldr r1, _08018CA4 @ =gUnknown_02024C10
+ ldr r0, _08018CB8 @ =gUnknown_081D9866
+ str r0, [r1]
+ bl _08019F76
+ .align 2, 0
+_08018CA4: .4byte gUnknown_02024C10
+_08018CA8: .4byte gUnknown_081D987B
+_08018CAC: .4byte gBattleMons
+_08018CB0: .4byte gUnknown_02024D28
+_08018CB4: .4byte gUnknown_02024C07
+_08018CB8: .4byte gUnknown_081D9866
+_08018CBC:
+ ldr r1, _08018CC8 @ =gUnknown_02024C10
+ ldr r0, _08018CCC @ =gUnknown_081D9865
+ str r0, [r1]
+ bl _08019F76
+ .align 2, 0
+_08018CC8: .4byte gUnknown_02024C10
+_08018CCC: .4byte gUnknown_081D9865
+_08018CD0:
+ ldr r2, _08018CEC @ =gUnknown_02024BEC
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 2
+ str r0, [r2]
+ cmp r0, 0
+ bne _08018CE0
+ mov r3, r9
+ str r3, [r2]
+_08018CE0:
+ ldr r0, [r2]
+ negs r0, r0
+ str r0, [r2]
+ bl _08019F76
+ .align 2, 0
+_08018CEC: .4byte gUnknown_02024BEC
+_08018CF0:
+ mov r5, r8
+ ldrb r0, [r5]
+ subs r0, 0x9
+ cmp r0, 0x2F
+ bls _08018CFE
+ bl _08019F76
+_08018CFE:
+ lsls r0, 2
+ ldr r1, _08018D08 @ =_08018D0C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08018D08: .4byte _08018D0C
+ .align 2, 0
+_08018D0C:
+ .4byte _08019128
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08018DCC
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08018E94
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08018F54
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _0801904C
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019204
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _080192E0
+_08018DCC:
+ ldr r0, _08018E74 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08018DDC
+ bl _08019F76
+_08018DDC:
+ cmp r3, 0xA5
+ bne _08018DE4
+ bl _08019F76
+_08018DE4:
+ ldr r0, _08018E78 @ =gBattleMoves
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _08018DF8
+ bl _08019F76
+_08018DF8:
+ ldr r2, _08018E7C @ =gUnknown_02024D68
+ ldr r0, _08018E80 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08018E20
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08018E20
+ bl _08019F76
+_08018E20:
+ ldr r1, _08018E84 @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r0, r2, 0
+ adds r1, r0, r1
+ adds r3, r1, 0
+ adds r3, 0x21
+ ldrb r0, [r3]
+ cmp r0, r4
+ bne _08018E3A
+ bl _08019F76
+_08018E3A:
+ adds r2, r1, 0
+ adds r2, 0x22
+ ldrb r0, [r2]
+ cmp r0, r4
+ bne _08018E48
+ bl _08019F76
+_08018E48:
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ bne _08018E52
+ bl _08019F76
+_08018E52:
+ strb r4, [r3]
+ strb r4, [r2]
+ ldr r1, _08018E88 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x3
+ strb r0, [r1, 0x1]
+ strb r4, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08018E8C @ =gUnknown_02024C10
+ ldr r0, _08018E90 @ =gUnknown_081D9921
+ str r0, [r1]
+ bl _08019F22
+ .align 2, 0
+_08018E74: .4byte gUnknown_02024C68
+_08018E78: .4byte gBattleMoves
+_08018E7C: .4byte gUnknown_02024D68
+_08018E80: .4byte gUnknown_02024C08
+_08018E84: .4byte gBattleMons
+_08018E88: .4byte gUnknown_030041C0
+_08018E8C: .4byte gUnknown_02024C10
+_08018E90: .4byte gUnknown_081D9921
+_08018E94:
+ ldr r0, _08018F2C @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08018EA4
+ bl _08019F76
+_08018EA4:
+ ldr r1, _08018F30 @ =gBattleMons
+ ldr r0, _08018F34 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x28]
+ cmp r0, 0
+ bne _08018EBA
+ bl _08019F76
+_08018EBA:
+ ldr r0, _08018F38 @ =gUnknown_02024D28
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08018ECC
+ bl _08019F76
+_08018ECC:
+ ldr r2, _08018F3C @ =gUnknown_02024D68
+ ldr r0, _08018F40 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08018EF4
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08018EF4
+ bl _08019F76
+_08018EF4:
+ ldr r1, _08018F44 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08018F0E
+ bl _08019F76
+_08018F0E:
+ ldr r1, _08018F48 @ =gUnknown_02024BEC
+ ldrh r0, [r4, 0x2C]
+ lsrs r0, 4
+ str r0, [r1]
+ cmp r0, 0
+ bne _08018F1C
+ str r2, [r1]
+_08018F1C:
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08018F4C @ =gUnknown_02024C10
+ ldr r0, _08018F50 @ =gUnknown_081D9928
+ str r0, [r1]
+ bl _08019F22
+ .align 2, 0
+_08018F2C: .4byte gUnknown_02024C68
+_08018F30: .4byte gBattleMons
+_08018F34: .4byte gUnknown_02024C07
+_08018F38: .4byte gUnknown_02024D28
+_08018F3C: .4byte gUnknown_02024D68
+_08018F40: .4byte gUnknown_02024C08
+_08018F44: .4byte gBattleMoves
+_08018F48: .4byte gUnknown_02024BEC
+_08018F4C: .4byte gUnknown_02024C10
+_08018F50: .4byte gUnknown_081D9928
+_08018F54:
+ ldr r0, _08019020 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08018F64
+ bl _08019F76
+_08018F64:
+ ldr r1, _08019024 @ =gBattleMons
+ ldr r0, _08019028 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _08018F7A
+ bl _08019F76
+_08018F7A:
+ ldr r0, _0801902C @ =gUnknown_02024D28
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08018F8C
+ bl _08019F76
+_08018F8C:
+ ldr r2, _08019030 @ =gUnknown_02024D68
+ ldr r0, _08019034 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08018FB4
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08018FB4
+ bl _08019F76
+_08018FB4:
+ ldr r1, _08019038 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08018FCC
+ bl _08019F76
+_08018FCC:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _08018FE4
+ bl _08019F76
+_08018FE4:
+ ldr r5, _0801903C @ =gUnknown_02024D1E
+ movs r4, 0x3
+_08018FE8:
+ bl Random
+ ands r0, r4
+ strb r0, [r5, 0x3]
+ cmp r0, 0
+ beq _08018FE8
+ ldr r1, _0801903C @ =gUnknown_02024D1E
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0x3
+ bne _08019000
+ adds r0, 0x2
+ strb r0, [r1, 0x3]
+_08019000:
+ ldrb r0, [r1, 0x3]
+ adds r0, 0x40
+ strb r0, [r1, 0x3]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08019040 @ =gUnknown_02024C10
+ ldr r0, _08019044 @ =gUnknown_081D9950
+ str r0, [r1]
+ ldr r2, _08019048 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r2]
+ bl _08019F22
+ .align 2, 0
+_08019020: .4byte gUnknown_02024C68
+_08019024: .4byte gBattleMons
+_08019028: .4byte gUnknown_02024C07
+_0801902C: .4byte gUnknown_02024D28
+_08019030: .4byte gUnknown_02024D68
+_08019034: .4byte gUnknown_02024C08
+_08019038: .4byte gBattleMoves
+_0801903C: .4byte gUnknown_02024D1E
+_08019040: .4byte gUnknown_02024C10
+_08019044: .4byte gUnknown_081D9950
+_08019048: .4byte gUnknown_02024C6C
+_0801904C:
+ ldr r0, _080190FC @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0801905C
+ bl _08019F76
+_0801905C:
+ ldr r1, _08019100 @ =gBattleMons
+ ldr r0, _08019104 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _08019072
+ bl _08019F76
+_08019072:
+ ldr r0, _08019108 @ =gUnknown_02024D28
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08019084
+ bl _08019F76
+_08019084:
+ ldr r2, _0801910C @ =gUnknown_02024D68
+ ldr r0, _08019110 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080190AC
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080190AC
+ bl _08019F76
+_080190AC:
+ ldr r1, _08019114 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080190C4
+ bl _08019F76
+_080190C4:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _080190DC
+ bl _08019F76
+_080190DC:
+ ldr r1, _08019118 @ =gUnknown_02024D1E
+ movs r0, 0x42
+ strb r0, [r1, 0x3]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801911C @ =gUnknown_02024C10
+ ldr r0, _08019120 @ =gUnknown_081D9950
+ str r0, [r1]
+ ldr r2, _08019124 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r2]
+ bl _08019F22
+ .align 2, 0
+_080190FC: .4byte gUnknown_02024C68
+_08019100: .4byte gBattleMons
+_08019104: .4byte gUnknown_02024C07
+_08019108: .4byte gUnknown_02024D28
+_0801910C: .4byte gUnknown_02024D68
+_08019110: .4byte gUnknown_02024C08
+_08019114: .4byte gBattleMoves
+_08019118: .4byte gUnknown_02024D1E
+_0801911C: .4byte gUnknown_02024C10
+_08019120: .4byte gUnknown_081D9950
+_08019124: .4byte gUnknown_02024C6C
+_08019128:
+ ldr r0, _080191D8 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08019138
+ bl _08019F76
+_08019138:
+ ldr r1, _080191DC @ =gBattleMons
+ ldr r0, _080191E0 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _0801914E
+ bl _08019F76
+_0801914E:
+ ldr r0, _080191E4 @ =gUnknown_02024D28
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08019160
+ bl _08019F76
+_08019160:
+ ldr r2, _080191E8 @ =gUnknown_02024D68
+ ldr r0, _080191EC @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08019188
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08019188
+ bl _08019F76
+_08019188:
+ ldr r1, _080191F0 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080191A0
+ bl _08019F76
+_080191A0:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _080191B8
+ bl _08019F76
+_080191B8:
+ ldr r1, _080191F4 @ =gUnknown_02024D1E
+ movs r0, 0x45
+ strb r0, [r1, 0x3]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _080191F8 @ =gUnknown_02024C10
+ ldr r0, _080191FC @ =gUnknown_081D9950
+ str r0, [r1]
+ ldr r2, _08019200 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r2]
+ bl _08019F22
+ .align 2, 0
+_080191D8: .4byte gUnknown_02024C68
+_080191DC: .4byte gBattleMons
+_080191E0: .4byte gUnknown_02024C07
+_080191E4: .4byte gUnknown_02024D28
+_080191E8: .4byte gUnknown_02024D68
+_080191EC: .4byte gUnknown_02024C08
+_080191F0: .4byte gBattleMoves
+_080191F4: .4byte gUnknown_02024D1E
+_080191F8: .4byte gUnknown_02024C10
+_080191FC: .4byte gUnknown_081D9950
+_08019200: .4byte gUnknown_02024C6C
+_08019204:
+ ldr r0, _080192B4 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08019214
+ bl _08019F76
+_08019214:
+ ldr r1, _080192B8 @ =gBattleMons
+ ldr r0, _080192BC @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _0801922A
+ bl _08019F76
+_0801922A:
+ ldr r0, _080192C0 @ =gUnknown_02024D28
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0801923C
+ bl _08019F76
+_0801923C:
+ ldr r1, _080192C4 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08019254
+ bl _08019F76
+_08019254:
+ ldr r2, _080192C8 @ =gUnknown_02024D68
+ ldr r0, _080192CC @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801927C
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801927C
+ bl _08019F76
+_0801927C:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _08019294
+ bl _08019F76
+_08019294:
+ ldr r1, _080192D0 @ =gUnknown_02024D1E
+ movs r0, 0x43
+ strb r0, [r1, 0x3]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _080192D4 @ =gUnknown_02024C10
+ ldr r0, _080192D8 @ =gUnknown_081D9950
+ str r0, [r1]
+ ldr r2, _080192DC @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r2]
+ bl _08019F22
+ .align 2, 0
+_080192B4: .4byte gUnknown_02024C68
+_080192B8: .4byte gBattleMons
+_080192BC: .4byte gUnknown_02024C07
+_080192C0: .4byte gUnknown_02024D28
+_080192C4: .4byte gBattleMoves
+_080192C8: .4byte gUnknown_02024D68
+_080192CC: .4byte gUnknown_02024C08
+_080192D0: .4byte gUnknown_02024D1E
+_080192D4: .4byte gUnknown_02024C10
+_080192D8: .4byte gUnknown_081D9950
+_080192DC: .4byte gUnknown_02024C6C
+_080192E0:
+ ldr r0, _08019420 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _080192F0
+ bl _08019F76
+_080192F0:
+ ldr r5, _08019424 @ =gBattleMons
+ ldr r7, _08019428 @ =gUnknown_02024C07
+ ldrb r1, [r7]
+ movs r6, 0x58
+ adds r0, r1, 0
+ muls r0, r6
+ adds r0, r5
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _08019308
+ bl _08019F76
+_08019308:
+ ldr r0, _0801942C @ =gUnknown_02024D28
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0801931A
+ bl _08019F76
+_0801931A:
+ ldr r1, _08019430 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08019332
+ bl _08019F76
+_08019332:
+ ldr r3, _08019434 @ =gUnknown_02024D68
+ ldr r0, _08019438 @ =gUnknown_02024C08
+ mov r8, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r2, r0, 2
+ adds r0, r3, 0
+ adds r0, 0x8
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801935C
+ adds r0, r3, 0
+ adds r0, 0xC
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801935C
+ bl _08019F76
+_0801935C:
+ adds r0, r1, 0
+ muls r0, r6
+ adds r0, r5
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _0801936C
+ bl _08019F76
+_0801936C:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _08019384
+ bl _08019F76
+_08019384:
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ bne _08019396
+ bl _08019F76
+_08019396:
+ ldr r0, [sp, 0x8]
+ ldr r1, [sp, 0x10]
+ bl GetGenderFromSpeciesAndPersonality
+ adds r4, r0, 0
+ ldr r0, [sp, 0xC]
+ ldr r1, [sp, 0x14]
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080193B4
+ bl _08019F76
+_080193B4:
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r4, r5, 0
+ adds r4, 0x50
+ adds r0, r4
+ ldr r0, [r0]
+ movs r1, 0xF0
+ lsls r1, 12
+ ands r0, r1
+ cmp r0, 0
+ beq _080193CE
+ bl _08019F76
+_080193CE:
+ ldr r0, [sp, 0x8]
+ ldr r1, [sp, 0x10]
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080193E2
+ bl _08019F76
+_080193E2:
+ ldr r0, [sp, 0xC]
+ ldr r1, [sp, 0x14]
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080193F6
+ bl _08019F76
+_080193F6:
+ ldrb r0, [r7]
+ adds r2, r0, 0
+ muls r2, r6
+ adds r2, r4
+ ldr r1, _0801943C @ =gBitTable
+ mov r3, r8
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 16
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08019440 @ =gUnknown_02024C10
+ ldr r0, _08019444 @ =gUnknown_081D9943
+ str r0, [r1]
+ bl _08019F22
+ .align 2, 0
+_08019420: .4byte gUnknown_02024C68
+_08019424: .4byte gBattleMons
+_08019428: .4byte gUnknown_02024C07
+_0801942C: .4byte gUnknown_02024D28
+_08019430: .4byte gBattleMoves
+_08019434: .4byte gUnknown_02024D68
+_08019438: .4byte gUnknown_02024C08
+_0801943C: .4byte gBitTable
+_08019440: .4byte gUnknown_02024C10
+_08019444: .4byte gUnknown_081D9943
+_08019448:
+ movs r5, 0
+ mov r10, r5
+ ldr r0, _0801947C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r10, r0
+ bcc _08019458
+ bl _08019F76
+_08019458:
+ ldr r1, _08019480 @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ subs r0, 0x7
+ adds r2, r1, 0
+ cmp r0, 0x41
+ bls _08019472
+ b _080196D6
+_08019472:
+ lsls r0, 2
+ ldr r1, _08019484 @ =_08019488
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801947C: .4byte gUnknown_02024A68
+_08019480: .4byte gBattleMons
+_08019484: .4byte _08019488
+ .align 2, 0
+_08019488:
+ .4byte _080195EC
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196B0
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _08019614
+ .4byte _080196D6
+ .4byte _08019590
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080195BC
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _08019680
+ .4byte _08019650
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _08019614
+_08019590:
+ movs r0, 0x58
+ mov r3, r10
+ muls r3, r0
+ adds r0, r3, 0
+ adds r1, r2, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080195B0 @ =0x00000f88
+ ands r0, r1
+ cmp r0, 0
+ bne _080195AA
+ b _080196D6
+_080195AA:
+ ldr r0, _080195B4 @ =gUnknown_030041C0
+ ldr r1, _080195B8 @ =gStatusConditionString_PoisonJpn
+ b _0801969C
+ .align 2, 0
+_080195B0: .4byte 0x00000f88
+_080195B4: .4byte gUnknown_030041C0
+_080195B8: .4byte gStatusConditionString_PoisonJpn
+_080195BC:
+ movs r0, 0x58
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ adds r1, r2, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _080195D6
+ b _080196D6
+_080195D6:
+ ldr r0, _080195E4 @ =gUnknown_030041C0
+ ldr r1, _080195E8 @ =gStatusConditionString_ConfusionJpn
+ bl StringCopy
+ movs r2, 0x2
+ mov r9, r2
+ b _080196DC
+ .align 2, 0
+_080195E4: .4byte gUnknown_030041C0
+_080195E8: .4byte gStatusConditionString_ConfusionJpn
+_080195EC:
+ movs r0, 0x58
+ mov r3, r10
+ muls r3, r0
+ adds r0, r3, 0
+ adds r1, r2, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080196D6
+ ldr r0, _0801960C @ =gUnknown_030041C0
+ ldr r1, _08019610 @ =gStatusConditionString_ParalysisJpn
+ b _0801969C
+ .align 2, 0
+_0801960C: .4byte gUnknown_030041C0
+_08019610: .4byte gStatusConditionString_ParalysisJpn
+_08019614:
+ movs r0, 0x58
+ mov r3, r10
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _080196D6
+ adds r2, 0x50
+ adds r2, r3, r2
+ ldr r0, [r2]
+ ldr r1, _08019644 @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _08019648 @ =gUnknown_030041C0
+ ldr r1, _0801964C @ =gStatusConditionString_SleepJpn
+ bl StringCopy
+ movs r0, 0x1
+ mov r9, r0
+ b _080196DC
+ .align 2, 0
+_08019644: .4byte 0xf7ffffff
+_08019648: .4byte gUnknown_030041C0
+_0801964C: .4byte gStatusConditionString_SleepJpn
+_08019650:
+ movs r0, 0x58
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ adds r1, r2, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080196D6
+ ldr r0, _08019678 @ =gUnknown_030041C0
+ ldr r1, _0801967C @ =gStatusConditionString_BurnJpn
+ bl StringCopy
+ movs r2, 0x1
+ mov r9, r2
+ b _080196DC
+ .align 2, 0
+_08019678: .4byte gUnknown_030041C0
+_0801967C: .4byte gStatusConditionString_BurnJpn
+_08019680:
+ movs r0, 0x58
+ mov r3, r10
+ muls r3, r0
+ adds r0, r3, 0
+ adds r1, r2, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080196D6
+ ldr r0, _080196A8 @ =gUnknown_030041C0
+ ldr r1, _080196AC @ =gStatusConditionString_IceJpn
+_0801969C:
+ bl StringCopy
+ movs r5, 0x1
+ mov r9, r5
+ b _080196DC
+ .align 2, 0
+_080196A8: .4byte gUnknown_030041C0
+_080196AC: .4byte gStatusConditionString_IceJpn
+_080196B0:
+ movs r0, 0x58
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ adds r1, r2, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xF0
+ lsls r1, 12
+ ands r0, r1
+ cmp r0, 0
+ beq _080196D6
+ ldr r0, _080196EC @ =gUnknown_030041C0
+ ldr r1, _080196F0 @ =gStatusConditionString_LoveJpn
+ bl StringCopy
+ movs r2, 0x3
+ mov r9, r2
+_080196D6:
+ mov r3, r9
+ cmp r3, 0
+ beq _08019798
+_080196DC:
+ mov r5, r9
+ cmp r5, 0x2
+ beq _08019710
+ cmp r5, 0x2
+ bgt _080196F4
+ cmp r5, 0x1
+ beq _080196FC
+ b _0801973C
+ .align 2, 0
+_080196EC: .4byte gUnknown_030041C0
+_080196F0: .4byte gStatusConditionString_LoveJpn
+_080196F4:
+ mov r0, r9
+ cmp r0, 0x3
+ beq _08019728
+ b _0801973C
+_080196FC:
+ ldr r1, _0801970C @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r1, 0x4C
+ adds r2, r1
+ movs r0, 0
+ b _0801973A
+ .align 2, 0
+_0801970C: .4byte gBattleMons
+_08019710:
+ ldr r1, _08019724 @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ movs r1, 0x8
+ negs r1, r1
+ b _08019738
+ .align 2, 0
+_08019724: .4byte gBattleMons
+_08019728:
+ ldr r1, _08019778 @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ ldr r1, _0801977C @ =0xfff0ffff
+_08019738:
+ ands r0, r1
+_0801973A:
+ str r0, [r2]
+_0801973C:
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08019780 @ =gUnknown_02024C10
+ ldr r0, _08019784 @ =gUnknown_081D9956
+ str r0, [r1]
+ ldr r0, _08019788 @ =0x02000000
+ ldr r1, _0801978C @ =0x00016003
+ adds r0, r1
+ mov r2, r10
+ strb r2, [r0]
+ ldr r4, _08019790 @ =gUnknown_02024A60
+ strb r2, [r4]
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r1, _08019794 @ =gUnknown_02024ACC
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ bl _08019F92
+ .align 2, 0
+_08019778: .4byte gBattleMons
+_0801977C: .4byte 0xfff0ffff
+_08019780: .4byte gUnknown_02024C10
+_08019784: .4byte gUnknown_081D9956
+_08019788: .4byte 0x02000000
+_0801978C: .4byte 0x00016003
+_08019790: .4byte gUnknown_02024A60
+_08019794: .4byte gUnknown_02024ACC
+_08019798:
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, _080197B0 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r10, r0
+ bcs _080197AC
+ b _08019458
+_080197AC:
+ bl _08019F76
+ .align 2, 0
+_080197B0: .4byte gUnknown_02024A68
+_080197B4:
+ movs r3, 0
+ mov r10, r3
+ ldr r0, _080197FC @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r10, r0
+ bcc _080197C2
+ b _08019F76
+_080197C2:
+ ldr r4, _08019800 @ =gBattleMons
+_080197C4:
+ movs r0, 0x58
+ mov r5, r10
+ muls r5, r0
+ adds r0, r5, 0
+ adds r0, r4
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bne _080197E8
+ mov r0, r10
+ bl castform_switch
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ cmp r0, 0
+ beq _080197E8
+ b _08019E40
+_080197E8:
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, _080197FC @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r10, r0
+ bcc _080197C4
+ b _08019F76
+ .align 2, 0
+_080197FC: .4byte gUnknown_02024A68
+_08019800: .4byte gBattleMons
+_08019804:
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0x1C
+ beq _0801980E
+ b _08019F76
+_0801980E:
+ ldr r4, _08019860 @ =gUnknown_02024C6C
+ ldr r1, [r4]
+ movs r0, 0x80
+ lsls r0, 7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801981E
+ b _08019F76
+_0801981E:
+ ldr r0, _08019864 @ =0xffffbfff
+ ands r1, r0
+ str r1, [r4]
+ ldr r3, _08019868 @ =0x000160ca
+ adds r2, r7, r3
+ ldrb r1, [r2]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2]
+ cmp r0, 0x6
+ bne _08019838
+ movs r0, 0x2
+ strb r0, [r2]
+_08019838:
+ ldr r1, _0801986C @ =gUnknown_02024D1E
+ ldrb r0, [r2]
+ adds r0, 0x40
+ strb r0, [r1, 0x3]
+ ldr r0, _08019870 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ ldr r5, _08019874 @ =0x00016003
+ adds r0, r7, r5
+ strb r1, [r0]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08019878 @ =gUnknown_02024C10
+ ldr r0, _0801987C @ =gUnknown_081D9953
+ str r0, [r1]
+ ldr r0, [r4]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r4]
+ b _08019F22
+ .align 2, 0
+_08019860: .4byte gUnknown_02024C6C
+_08019864: .4byte 0xffffbfff
+_08019868: .4byte 0x000160ca
+_0801986C: .4byte gUnknown_02024D1E
+_08019870: .4byte gUnknown_02024C08
+_08019874: .4byte 0x00016003
+_08019878: .4byte gUnknown_02024C10
+_0801987C: .4byte gUnknown_081D9953
+_08019880:
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0x1C
+ beq _0801988A
+ b _08019F76
+_0801988A:
+ ldr r4, _080198DC @ =gUnknown_02024C6C
+ ldr r1, [r4]
+ movs r0, 0x80
+ lsls r0, 7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801989A
+ b _08019F76
+_0801989A:
+ ldr r0, _080198E0 @ =0xffffbfff
+ ands r1, r0
+ str r1, [r4]
+ ldr r3, _080198E4 @ =0x000160ca
+ adds r2, r7, r3
+ ldrb r1, [r2]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2]
+ cmp r0, 0x6
+ bne _080198B4
+ movs r0, 0x2
+ strb r0, [r2]
+_080198B4:
+ ldr r1, _080198E8 @ =gUnknown_02024D1E
+ ldrb r0, [r2]
+ strb r0, [r1, 0x3]
+ ldr r0, _080198EC @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ ldr r5, _080198F0 @ =0x00016003
+ adds r0, r7, r5
+ strb r1, [r0]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _080198F4 @ =gUnknown_02024C10
+ ldr r0, _080198F8 @ =gUnknown_081D9953
+ str r0, [r1]
+ ldr r0, [r4]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r4]
+ b _08019F22
+ .align 2, 0
+_080198DC: .4byte gUnknown_02024C6C
+_080198E0: .4byte 0xffffbfff
+_080198E4: .4byte 0x000160ca
+_080198E8: .4byte gUnknown_02024D1E
+_080198EC: .4byte gUnknown_02024C07
+_080198F0: .4byte 0x00016003
+_080198F4: .4byte gUnknown_02024C10
+_080198F8: .4byte gUnknown_081D9953
+_080198FC:
+ movs r4, 0
+ ldr r0, _08019934 @ =gUnknown_02024A68
+ ldrb r1, [r0]
+ cmp r4, r1
+ blt _08019908
+ b _08019F76
+_08019908:
+ ldr r0, _08019938 @ =gBattleMons
+ adds r5, r1, 0
+ ldr r2, _0801993C @ =gUnknown_02024C98
+ adds r3, r0, 0
+ adds r3, 0x20
+ movs r6, 0x80
+ lsls r6, 12
+_08019916:
+ ldrb r1, [r3]
+ cmp r1, 0x16
+ bne _08019926
+ ldr r0, [r2]
+ ands r0, r6
+ cmp r0, 0
+ beq _08019926
+ b _08019E6C
+_08019926:
+ adds r2, 0x4
+ adds r3, 0x58
+ adds r4, 0x1
+ cmp r4, r5
+ blt _08019916
+ b _08019F76
+ .align 2, 0
+_08019934: .4byte gUnknown_02024A68
+_08019938: .4byte gBattleMons
+_0801993C: .4byte gUnknown_02024C98
+_08019940:
+ movs r4, 0
+ ldr r0, _08019A1C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _0801994C
+ b _08019F76
+_0801994C:
+ ldr r0, _08019A20 @ =gUnknown_02024A60
+ mov r8, r0
+ ldr r1, _08019A24 @ =gBattleMons
+ adds r1, 0x20
+ str r1, [sp, 0x1C]
+ movs r2, 0
+ str r2, [sp, 0x20]
+_0801995A:
+ ldr r3, [sp, 0x1C]
+ ldrb r0, [r3]
+ cmp r0, 0x24
+ beq _08019964
+ b _08019AF6
+_08019964:
+ ldr r0, _08019A28 @ =gUnknown_02024C98
+ ldr r5, [sp, 0x20]
+ adds r0, r5, r0
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 13
+ ands r1, r0
+ str r5, [sp, 0x18]
+ cmp r1, 0
+ bne _0801997A
+ b _08019AF6
+_0801997A:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ adds r5, r0, 0
+ eors r5, r1
+ ands r5, r1
+ adds r0, r5, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r5, 0x2
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _08019A2C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080199AE
+ b _08019ABC
+_080199AE:
+ movs r1, 0x58
+ adds r0, r6, 0
+ muls r0, r1
+ ldr r3, _08019A24 @ =gBattleMons
+ adds r1, r0, r3
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08019A78
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _08019A34
+ movs r1, 0x58
+ adds r0, r7, 0
+ muls r0, r1
+ adds r1, r0, r3
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08019A34
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _08019A34
+ str r2, [sp, 0x24]
+ bl Random
+ ldr r2, [sp, 0x24]
+ adds r1, r2, 0
+ ands r1, r0
+ lsls r1, 1
+ orrs r5, r1
+ adds r0, r5, 0
+ bl battle_get_side_with_given_state
+ mov r2, r8
+ strb r0, [r2]
+ ldrb r0, [r2]
+ movs r3, 0x58
+ muls r0, r3
+ ldr r5, _08019A24 @ =gBattleMons
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ ldr r1, [sp, 0x1C]
+ strb r0, [r1]
+ ldrb r0, [r2]
+ muls r0, r3
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ ldr r2, _08019A30 @ =byte_2024C06
+ strb r0, [r2]
+ b _08019AE4
+ .align 2, 0
+_08019A1C: .4byte gUnknown_02024A68
+_08019A20: .4byte gUnknown_02024A60
+_08019A24: .4byte gBattleMons
+_08019A28: .4byte gUnknown_02024C98
+_08019A2C: .4byte gUnknown_020239F8
+_08019A30: .4byte byte_2024C06
+_08019A34:
+ ldr r3, _08019A74 @ =gBattleMons
+ movs r2, 0x58
+ adds r0, r6, 0
+ muls r0, r2
+ adds r1, r0, r3
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08019A78
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _08019A78
+ mov r5, r8
+ strb r6, [r5]
+ adds r1, r4, 0
+ muls r1, r2
+ adds r1, r3
+ ldrb r0, [r5]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r1, 0x20
+ strb r0, [r1]
+ ldrb r0, [r5]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ b _08019AE0
+ .align 2, 0
+_08019A74: .4byte gBattleMons
+_08019A78:
+ ldr r3, _08019AB8 @ =gBattleMons
+ movs r2, 0x58
+ adds r0, r7, 0
+ muls r0, r2
+ adds r1, r0, r3
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08019AEE
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _08019AEE
+ mov r5, r8
+ strb r7, [r5]
+ adds r1, r4, 0
+ muls r1, r2
+ adds r1, r3
+ ldrb r0, [r5]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r1, 0x20
+ strb r0, [r1]
+ ldrb r0, [r5]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ b _08019AE0
+ .align 2, 0
+_08019AB8: .4byte gBattleMons
+_08019ABC:
+ mov r2, r8
+ strb r6, [r2]
+ movs r3, 0x58
+ adds r0, r6, 0
+ muls r0, r3
+ ldr r5, _08019B10 @ =gBattleMons
+ adds r0, r5
+ adds r2, r0, 0
+ adds r2, 0x20
+ ldrb r1, [r2]
+ cmp r1, 0
+ beq _08019AEE
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08019AEE
+ ldr r0, [sp, 0x1C]
+ strb r1, [r0]
+ ldrb r0, [r2]
+_08019AE0:
+ ldr r1, _08019B14 @ =byte_2024C06
+ strb r0, [r1]
+_08019AE4:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019AEE:
+ mov r2, r9
+ cmp r2, 0
+ beq _08019AF6
+ b _08019E88
+_08019AF6:
+ ldr r3, [sp, 0x1C]
+ adds r3, 0x58
+ str r3, [sp, 0x1C]
+ ldr r5, [sp, 0x20]
+ adds r5, 0x4
+ str r5, [sp, 0x20]
+ adds r4, 0x1
+ ldr r0, _08019B18 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ bge _08019B0E
+ b _0801995A
+_08019B0E:
+ b _08019F76
+ .align 2, 0
+_08019B10: .4byte gBattleMons
+_08019B14: .4byte byte_2024C06
+_08019B18: .4byte gUnknown_02024A68
+_08019B1C:
+ movs r4, 0
+ ldr r0, _08019B54 @ =gUnknown_02024A68
+ ldrb r1, [r0]
+ cmp r4, r1
+ blt _08019B28
+ b _08019F76
+_08019B28:
+ ldr r0, _08019B58 @ =gBattleMons
+ adds r5, r1, 0
+ ldr r2, _08019B5C @ =gUnknown_02024C98
+ adds r3, r0, 0
+ adds r3, 0x20
+ movs r6, 0x80
+ lsls r6, 12
+_08019B36:
+ ldrb r1, [r3]
+ cmp r1, 0x16
+ bne _08019B46
+ ldr r0, [r2]
+ ands r0, r6
+ cmp r0, 0
+ beq _08019B46
+ b _08019F04
+_08019B46:
+ adds r2, 0x4
+ adds r3, 0x58
+ adds r4, 0x1
+ cmp r4, r5
+ blt _08019B36
+ b _08019F76
+ .align 2, 0
+_08019B54: .4byte gUnknown_02024A68
+_08019B58: .4byte gBattleMons
+_08019B5C: .4byte gUnknown_02024C98
+_08019B60:
+ mov r0, r10
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _08019BB0 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019B76
+ b _08019F76
+_08019B76:
+ ldr r7, _08019BB4 @ =gBattleMons
+_08019B78:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r4, 0x1
+ cmp r0, r5
+ beq _08019BA2
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, r6
+ bne _08019BA2
+ ldr r0, _08019BB8 @ =byte_2024C06
+ strb r6, [r0]
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019BA2:
+ adds r4, r3, 0
+ ldr r0, _08019BB0 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019B78
+ b _08019F76
+ .align 2, 0
+_08019BB0: .4byte gUnknown_02024A68
+_08019BB4: .4byte gBattleMons
+_08019BB8: .4byte byte_2024C06
+_08019BBC:
+ mov r0, r10
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _08019C0C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019BD2
+ b _08019F76
+_08019BD2:
+ ldr r7, _08019C10 @ =gBattleMons
+_08019BD4:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r4, 0x1
+ cmp r0, r5
+ bne _08019BFE
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, r6
+ bne _08019BFE
+ ldr r0, _08019C14 @ =byte_2024C06
+ strb r6, [r0]
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019BFE:
+ adds r4, r3, 0
+ ldr r0, _08019C0C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019BD4
+ b _08019F76
+ .align 2, 0
+_08019C0C: .4byte gUnknown_02024A68
+_08019C10: .4byte gBattleMons
+_08019C14: .4byte byte_2024C06
+_08019C18:
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0xFD
+ beq _08019C40
+ cmp r0, 0xFE
+ beq _08019C78
+ movs r4, 0
+ ldr r0, _08019C38 @ =gUnknown_02024A68
+ adds r5, r0, 0
+ ldrb r2, [r5]
+ cmp r4, r2
+ blt _08019C32
+ b _08019F76
+_08019C32:
+ ldr r2, _08019C3C @ =gBattleMons
+ b _08019CB0
+ .align 2, 0
+_08019C38: .4byte gUnknown_02024A68
+_08019C3C: .4byte gBattleMons
+_08019C40:
+ movs r4, 0
+ ldr r0, _08019C70 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019C4C
+ b _08019F76
+_08019C4C:
+ ldr r5, _08019C74 @ =gUnknown_02024C98
+ movs r2, 0x80
+ lsls r2, 9
+ adds r1, r0, 0
+_08019C54:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r0, [r0]
+ ands r0, r2
+ adds r3, r4, 0x1
+ cmp r0, 0
+ beq _08019C68
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019C68:
+ adds r4, r3, 0
+ cmp r4, r1
+ blt _08019C54
+ b _08019F76
+ .align 2, 0
+_08019C70: .4byte gUnknown_02024A68
+_08019C74: .4byte gUnknown_02024C98
+_08019C78:
+ movs r4, 0
+ ldr r0, _08019CA8 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019C84
+ b _08019F76
+_08019C84:
+ ldr r5, _08019CAC @ =gUnknown_02024C98
+ movs r2, 0x80
+ lsls r2, 10
+ adds r1, r0, 0
+_08019C8C:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r0, [r0]
+ ands r0, r2
+ adds r3, r4, 0x1
+ cmp r0, 0
+ beq _08019CA0
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019CA0:
+ adds r4, r3, 0
+ cmp r4, r1
+ blt _08019C8C
+ b _08019F76
+ .align 2, 0
+_08019CA8: .4byte gUnknown_02024A68
+_08019CAC: .4byte gUnknown_02024C98
+_08019CB0:
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r3, r4, 0x1
+ cmp r0, r6
+ bne _08019CCA
+ mov r0, r8
+ strb r6, [r0]
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019CCA:
+ adds r4, r3, 0
+ ldrb r1, [r5]
+ cmp r4, r1
+ blt _08019CB0
+ b _08019F76
+_08019CD4:
+ movs r4, 0
+ ldr r0, _08019D10 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019CE0
+ b _08019F76
+_08019CE0:
+ ldr r7, _08019D14 @ =gBattleMons
+ adds r2, r0, 0
+ movs r5, 0x58
+_08019CE6:
+ adds r0, r4, 0
+ muls r0, r5
+ adds r1, r0, r7
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r3, r4, 0x1
+ cmp r0, r6
+ bne _08019D08
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _08019D08
+ mov r0, r8
+ strb r6, [r0]
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019D08:
+ adds r4, r3, 0
+ cmp r4, r2
+ blt _08019CE6
+ b _08019F76
+ .align 2, 0
+_08019D10: .4byte gUnknown_02024A68
+_08019D14: .4byte gBattleMons
+_08019D18:
+ movs r4, 0
+ ldr r0, _08019D50 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019D24
+ b _08019F76
+_08019D24:
+ ldr r7, _08019D54 @ =gBattleMons
+ adds r1, r0, 0
+ movs r5, 0x58
+ ldr r2, _08019D58 @ =byte_2024C06
+_08019D2C:
+ adds r0, r4, 0
+ muls r0, r5
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r3, r4, 0x1
+ cmp r0, r6
+ bne _08019D48
+ cmp r4, r10
+ beq _08019D48
+ strb r6, [r2]
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019D48:
+ adds r4, r3, 0
+ cmp r4, r1
+ blt _08019D2C
+ b _08019F76
+ .align 2, 0
+_08019D50: .4byte gUnknown_02024A68
+_08019D54: .4byte gBattleMons
+_08019D58: .4byte byte_2024C06
+_08019D5C:
+ mov r0, r10
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _08019DAC @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019D72
+ b _08019F76
+_08019D72:
+ ldr r7, _08019DB0 @ =gBattleMons
+_08019D74:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r5
+ beq _08019DA0
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, r6
+ bne _08019DA0
+ ldr r0, _08019DB4 @ =byte_2024C06
+ strb r6, [r0]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019DA0:
+ adds r4, 0x1
+ ldr r0, _08019DAC @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019D74
+ b _08019F76
+ .align 2, 0
+_08019DAC: .4byte gUnknown_02024A68
+_08019DB0: .4byte gBattleMons
+_08019DB4: .4byte byte_2024C06
+_08019DB8:
+ mov r0, r10
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _08019E08 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019DCE
+ b _08019F76
+_08019DCE:
+ ldr r7, _08019E0C @ =gBattleMons
+_08019DD0:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r5
+ bne _08019DFC
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, r6
+ bne _08019DFC
+ ldr r0, _08019E10 @ =byte_2024C06
+ strb r6, [r0]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019DFC:
+ adds r4, 0x1
+ ldr r0, _08019E08 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019DD0
+ b _08019F76
+ .align 2, 0
+_08019E08: .4byte gUnknown_02024A68
+_08019E0C: .4byte gBattleMons
+_08019E10: .4byte byte_2024C06
+_08019E14:
+ ldr r0, _08019E30 @ =gUnknown_081D977D
+ bl b_push_move_exec
+ ldr r0, _08019E34 @ =0x02000000
+ ldr r2, _08019E38 @ =0x00016003
+ adds r1, r0, r2
+ strb r6, [r1]
+ mov r1, r9
+ subs r1, 0x1
+ ldr r3, _08019E3C @ =0x0001609b
+ adds r0, r3
+ strb r1, [r0]
+ b _08019F76
+ .align 2, 0
+_08019E30: .4byte gUnknown_081D977D
+_08019E34: .4byte 0x02000000
+_08019E38: .4byte 0x00016003
+_08019E3C: .4byte 0x0001609b
+_08019E40:
+ ldr r0, _08019E5C @ =gUnknown_081D977D
+ bl b_push_move_exec
+ ldr r0, _08019E60 @ =0x02000000
+ ldr r5, _08019E64 @ =0x00016003
+ adds r1, r0, r5
+ mov r2, r10
+ strb r2, [r1]
+ mov r1, r9
+ subs r1, 0x1
+ ldr r3, _08019E68 @ =0x0001609b
+ adds r0, r3
+ strb r1, [r0]
+ b _08019F92
+ .align 2, 0
+_08019E5C: .4byte gUnknown_081D977D
+_08019E60: .4byte 0x02000000
+_08019E64: .4byte 0x00016003
+_08019E68: .4byte 0x0001609b
+_08019E6C:
+ mov r5, r8
+ strb r1, [r5]
+ ldr r0, [r2]
+ ldr r1, _08019E80 @ =0xfff7ffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _08019E84 @ =gUnknown_081D978C
+ bl b_push_move_exec
+ b _08019F1A
+ .align 2, 0
+_08019E80: .4byte 0xfff7ffff
+_08019E84: .4byte gUnknown_081D978C
+_08019E88:
+ ldr r0, _08019EDC @ =gUnknown_081D9726
+ bl b_push_move_exec
+ ldr r1, _08019EE0 @ =gUnknown_02024C98
+ ldr r2, [sp, 0x18]
+ adds r1, r2, r1
+ ldr r0, [r1]
+ ldr r2, _08019EE4 @ =0xffefffff
+ ands r0, r2
+ str r0, [r1]
+ ldr r0, _08019EE8 @ =0x02000000
+ ldr r3, _08019EEC @ =0x00016003
+ adds r0, r3
+ strb r4, [r0]
+ ldr r1, _08019EF0 @ =gUnknown_030041C0
+ movs r4, 0xFD
+ strb r4, [r1]
+ movs r0, 0x4
+ strb r0, [r1, 0x1]
+ ldr r2, _08019EF4 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ strb r0, [r1, 0x2]
+ ldr r3, _08019EF8 @ =gUnknown_02024A6A
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08019EFC @ =gUnknown_03004290
+ strb r4, [r1]
+ movs r0, 0x9
+ strb r0, [r1, 0x1]
+ ldr r0, _08019F00 @ =byte_2024C06
+ ldrb r0, [r0]
+ strb r0, [r1, 0x2]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1, 0x3]
+ b _08019F76
+ .align 2, 0
+_08019EDC: .4byte gUnknown_081D9726
+_08019EE0: .4byte gUnknown_02024C98
+_08019EE4: .4byte 0xffefffff
+_08019EE8: .4byte 0x02000000
+_08019EEC: .4byte 0x00016003
+_08019EF0: .4byte gUnknown_030041C0
+_08019EF4: .4byte gUnknown_02024A60
+_08019EF8: .4byte gUnknown_02024A6A
+_08019EFC: .4byte gUnknown_03004290
+_08019F00: .4byte byte_2024C06
+_08019F04:
+ mov r5, r8
+ strb r1, [r5]
+ ldr r0, [r2]
+ ldr r1, _08019F30 @ =0xfff7ffff
+ ands r0, r1
+ str r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08019F34 @ =gUnknown_02024C10
+ ldr r0, _08019F38 @ =gUnknown_081D9795
+ str r0, [r1]
+_08019F1A:
+ ldr r0, _08019F3C @ =0x02000000
+ ldr r1, _08019F40 @ =0x000160dd
+ adds r0, r1
+ strb r4, [r0]
+_08019F22:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ b _08019F76
+ .align 2, 0
+_08019F30: .4byte 0xfff7ffff
+_08019F34: .4byte gUnknown_02024C10
+_08019F38: .4byte gUnknown_081D9795
+_08019F3C: .4byte 0x02000000
+_08019F40: .4byte 0x000160dd
+_08019F44:
+ movs r4, 0
+ ldr r0, _08019FA4 @ =gUnknown_02024A68
+ ldrb r1, [r0]
+ cmp r4, r1
+ bge _08019F76
+ ldr r0, _08019FA8 @ =gBattleMons
+ adds r2, r1, 0
+ adds r1, r0, 0
+ adds r1, 0x20
+ ldr r3, _08019FAC @ =byte_2024C06
+_08019F58:
+ ldrb r0, [r1]
+ cmp r0, r6
+ bne _08019F6E
+ cmp r4, r10
+ beq _08019F6E
+ strb r6, [r3]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019F6E:
+ adds r1, 0x58
+ adds r4, 0x1
+ cmp r4, r2
+ blt _08019F58
+_08019F76:
+ mov r2, r9
+ cmp r2, 0
+ beq _08019F92
+_08019F7C:
+ ldr r3, [sp, 0x4]
+ cmp r3, 0xB
+ bhi _08019F92
+ ldr r1, _08019FAC @ =byte_2024C06
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _08019F92
+ adds r1, r0, 0
+ mov r0, r10
+ bl sub_81074C4
+_08019F92:
+ mov r0, r9
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08019FA4: .4byte gUnknown_02024A68
+_08019FA8: .4byte gBattleMons
+_08019FAC: .4byte byte_2024C06
+ thumb_func_end sub_8018324
+
+ thumb_func_start b_call_bc_move_exec
+b_call_bc_move_exec: @ 8019FB0
+ ldr r1, _08019FD8 @ =gUnknown_02024C10
+ str r0, [r1]
+ ldr r3, _08019FDC @ =0x02017140
+ adds r2, r3, 0
+ adds r2, 0x20
+ ldrb r0, [r2]
+ adds r1, r0, 0x1
+ strb r1, [r2]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r3
+ ldr r2, _08019FE0 @ =gUnknown_030042D4
+ ldr r1, [r2]
+ str r1, [r0]
+ ldr r0, _08019FE4 @ =sub_8013F54
+ str r0, [r2]
+ ldr r1, _08019FE8 @ =gUnknown_02024A7F
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08019FD8: .4byte gUnknown_02024C10
+_08019FDC: .4byte 0x02017140
+_08019FE0: .4byte gUnknown_030042D4
+_08019FE4: .4byte sub_8013F54
+_08019FE8: .4byte gUnknown_02024A7F
+ thumb_func_end b_call_bc_move_exec
+
+ thumb_func_start b_push_move_exec
+b_push_move_exec: @ 8019FEC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl b_movescr_stack_push_cursor
+ ldr r0, _0801A01C @ =gUnknown_02024C10
+ str r4, [r0]
+ ldr r3, _0801A020 @ =0x02017140
+ adds r2, r3, 0
+ adds r2, 0x20
+ ldrb r0, [r2]
+ adds r1, r0, 0x1
+ strb r1, [r2]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r3
+ ldr r2, _0801A024 @ =gUnknown_030042D4
+ ldr r1, [r2]
+ str r1, [r0]
+ ldr r0, _0801A028 @ =sub_8013FBC
+ str r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801A01C: .4byte gUnknown_02024C10
+_0801A020: .4byte 0x02017140
+_0801A024: .4byte gUnknown_030042D4
+_0801A028: .4byte sub_8013FBC
+ thumb_func_end b_push_move_exec
+
+ thumb_func_start sub_801A02C
+sub_801A02C: @ 801A02C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ movs r0, 0
+ mov r10, r0
+ movs r1, 0
+ str r1, [sp, 0xC]
+ add r0, sp, 0x4
+ strb r1, [r0]
+ ldr r4, _0801A078 @ =gUnknown_02024C04
+ ldr r1, _0801A07C @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0801A084
+ ldr r1, _0801A080 @ =gEnigmaBerries
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrb r5, [r0, 0x7]
+ ldrb r0, [r0, 0x1A]
+ b _0801A098
+ .align 2, 0
+_0801A078: .4byte gUnknown_02024C04
+_0801A07C: .4byte gBattleMons
+_0801A080: .4byte gEnigmaBerries
+_0801A084:
+ ldrh r0, [r4]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r4]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r0, 24
+_0801A098:
+ mov r9, r0
+ ldr r1, _0801A0C0 @ =gBattleMons
+ ldr r0, _0801A0C4 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ str r0, [sp, 0x14]
+ cmp r0, 0xAF
+ bne _0801A0CC
+ ldr r1, _0801A0C8 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r3, [r0, 0x7]
+ mov r8, r3
+ ldrb r0, [r0, 0x1A]
+ b _0801A0E2
+ .align 2, 0
+_0801A0C0: .4byte gBattleMons
+_0801A0C4: .4byte gUnknown_02024C07
+_0801A0C8: .4byte gEnigmaBerries
+_0801A0CC:
+ ldr r0, [sp, 0x14]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, [sp, 0x14]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r0, 24
+_0801A0E2:
+ str r0, [sp, 0x10]
+ ldr r2, _0801A118 @ =gBattleMons
+ ldr r0, _0801A11C @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r4, [r0, 0x2E]
+ cmp r4, 0xAF
+ beq _0801A102
+ adds r0, r4, 0
+ bl ItemId_GetHoldEffect
+ adds r0, r4, 0
+ bl ItemId_GetHoldEffectParam
+_0801A102:
+ ldr r4, [sp, 0x8]
+ cmp r4, 0x4
+ bls _0801A10C
+ bl _0801B3CA
+_0801A10C:
+ lsls r0, r4, 2
+ ldr r1, _0801A120 @ =_0801A124
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801A118: .4byte gBattleMons
+_0801A11C: .4byte gUnknown_02024C08
+_0801A120: .4byte _0801A124
+ .align 2, 0
+_0801A124:
+ .4byte _0801A138
+ .4byte _0801A1D4
+ .4byte _0801B3CA
+ .4byte _0801AE0C
+ .4byte _0801B26C
+_0801A138:
+ cmp r5, 0x17
+ beq _0801A15C
+ cmp r5, 0x20
+ beq _0801A144
+ bl _0801B3CA
+_0801A144:
+ ldr r0, _0801A154 @ =0x02000000
+ ldr r5, _0801A158 @ =0x00016056
+ adds r0, r5
+ movs r1, 0x2
+ strb r1, [r0]
+ bl _0801B3CA
+ .align 2, 0
+_0801A154: .4byte 0x02000000
+_0801A158: .4byte 0x00016056
+_0801A15C:
+ ldr r0, _0801A1B8 @ =gBattleMons
+ mov r8, r0
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x18
+ adds r1, r0
+ movs r2, 0x6
+ movs r3, 0x7
+ mov r10, r3
+_0801A172:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x5
+ bgt _0801A180
+ strb r2, [r1]
+ movs r4, 0x5
+ str r4, [sp, 0xC]
+_0801A180:
+ adds r1, 0x1
+ movs r5, 0x1
+ negs r5, r5
+ add r10, r5
+ mov r0, r10
+ cmp r0, 0
+ bge _0801A172
+ ldr r1, [sp, 0xC]
+ cmp r1, 0
+ bne _0801A198
+ bl _0801B3CA
+_0801A198:
+ ldr r0, _0801A1BC @ =0x02000000
+ ldr r2, _0801A1C0 @ =0x00016003
+ adds r0, r2
+ strb r7, [r0]
+ ldr r0, _0801A1C4 @ =gUnknown_02024C0B
+ strb r7, [r0]
+ ldr r1, _0801A1C8 @ =gUnknown_02024A60
+ ldr r0, _0801A1CC @ =gUnknown_02024C07
+ strb r7, [r0]
+ strb r7, [r1]
+ ldr r0, _0801A1D0 @ =gUnknown_081D9A5E
+ bl b_call_bc_move_exec
+ bl _0801B3CA
+ .align 2, 0
+_0801A1B8: .4byte gBattleMons
+_0801A1BC: .4byte 0x02000000
+_0801A1C0: .4byte 0x00016003
+_0801A1C4: .4byte gUnknown_02024C0B
+_0801A1C8: .4byte gUnknown_02024A60
+_0801A1CC: .4byte gUnknown_02024C07
+_0801A1D0: .4byte gUnknown_081D9A5E
+_0801A1D4:
+ ldr r1, _0801A1FC @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ mov r8, r1
+ cmp r0, 0
+ bne _0801A1E8
+ bl _0801B3CA
+_0801A1E8:
+ subs r0, r5, 0x1
+ cmp r0, 0x2A
+ bls _0801A1F2
+ bl _0801AD5A
+_0801A1F2:
+ lsls r0, 2
+ ldr r1, _0801A200 @ =_0801A204
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801A1FC: .4byte gBattleMons
+_0801A200: .4byte _0801A204
+ .align 2, 0
+_0801A204:
+ .4byte _0801A2B0
+ .4byte _0801AAC8
+ .4byte _0801AB84
+ .4byte _0801AAF8
+ .4byte _0801AB2C
+ .4byte _0801AB5C
+ .4byte _0801A2F8
+ .4byte _0801ABC8
+ .4byte _0801ABF8
+ .4byte _0801A4CC
+ .4byte _0801A548
+ .4byte _0801A5C4
+ .4byte _0801A634
+ .4byte _0801A6C8
+ .4byte _0801A75C
+ .4byte _0801A7D4
+ .4byte _0801A838
+ .4byte _0801A89C
+ .4byte _0801A900
+ .4byte _0801A97C
+ .4byte _0801A9C8
+ .4byte _0801AD5A
+ .4byte _0801A3F8
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD24
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801A46C
+_0801A2B0:
+ movs r0, 0x58
+ muls r0, r7
+ mov r3, r8
+ adds r2, r0, r3
+ ldrh r0, [r2, 0x2C]
+ ldrh r1, [r2, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801A2C6
+ bl _0801AD5A
+_0801A2C6:
+ cmp r6, 0
+ beq _0801A2CE
+ bl _0801AD5A
+_0801A2CE:
+ ldr r4, _0801A2F0 @ =gUnknown_02024BEC
+ mov r5, r9
+ str r5, [r4]
+ ldrh r3, [r2, 0x28]
+ adds r0, r3, r5
+ ldrh r1, [r2, 0x2C]
+ cmp r0, r1
+ ble _0801A2E2
+ subs r0, r1, r3
+ str r0, [r4]
+_0801A2E2:
+ ldr r0, [r4]
+ negs r0, r0
+ str r0, [r4]
+ ldr r0, _0801A2F4 @ =gUnknown_081D9A74
+ bl b_call_bc_move_exec
+ b _0801A752
+ .align 2, 0
+_0801A2F0: .4byte gUnknown_02024BEC
+_0801A2F4: .4byte gUnknown_081D9A74
+_0801A2F8:
+ cmp r6, 0
+ beq _0801A300
+ bl _0801AD5A
+_0801A300:
+ adds r0, r7, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801A324
+ ldr r1, _0801A31C @ =gUnknown_02024A6A
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0801A320 @ =gPlayerParty
+ b _0801A332
+ .align 2, 0
+_0801A31C: .4byte gUnknown_02024A6A
+_0801A320: .4byte gPlayerParty
+_0801A324:
+ ldr r1, _0801A3A0 @ =gUnknown_02024A6A
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0801A3A4 @ =gEnemyParty
+_0801A332:
+ adds r4, r1, r0
+ movs r1, 0
+ mov r10, r1
+ add r5, sp, 0x4
+_0801A33A:
+ mov r1, r10
+ adds r1, 0xD
+ adds r0, r4, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r1, r10
+ adds r1, 0x11
+ adds r0, r4, 0
+ bl GetMonData
+ strb r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl GetMonData
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r6, 0
+ beq _0801A36A
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _0801A374
+_0801A36A:
+ movs r2, 0x1
+ add r10, r2
+ mov r3, r10
+ cmp r3, 0x3
+ ble _0801A33A
+_0801A374:
+ mov r4, r10
+ cmp r4, 0x4
+ bne _0801A37E
+ bl _0801AD5A
+_0801A37E:
+ lsls r2, r4, 24
+ lsrs r2, 24
+ adds r0, r6, 0
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r2, r0, 24
+ add r0, sp, 0x4
+ ldrb r0, [r0]
+ mov r5, r9
+ adds r1, r0, r5
+ cmp r1, r2
+ ble _0801A3A8
+ add r0, sp, 0x4
+ strb r2, [r0]
+ b _0801A3AC
+ .align 2, 0
+_0801A3A0: .4byte gUnknown_02024A6A
+_0801A3A4: .4byte gEnemyParty
+_0801A3A8:
+ add r0, sp, 0x4
+ strb r1, [r0]
+_0801A3AC:
+ ldr r1, _0801A3EC @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ strb r6, [r1, 0x2]
+ lsrs r0, r6, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r0, _0801A3F0 @ =gUnknown_081D9A91
+ bl b_call_bc_move_exec
+ mov r1, r10
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ add r0, sp, 0x4
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldr r0, _0801A3F4 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ movs r1, 0x3
+ str r1, [sp, 0xC]
+ bl _0801AD62
+ .align 2, 0
+_0801A3EC: .4byte gUnknown_030041C0
+_0801A3F0: .4byte gUnknown_081D9A91
+_0801A3F4: .4byte gUnknown_02024A60
+_0801A3F8:
+ ldr r0, _0801A450 @ =gBattleMons
+ movs r1, 0x58
+ muls r1, r7
+ adds r0, 0x18
+ adds r1, r0
+ movs r2, 0x6
+ movs r3, 0x7
+ mov r10, r3
+_0801A408:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x5
+ bgt _0801A416
+ strb r2, [r1]
+ movs r4, 0x5
+ str r4, [sp, 0xC]
+_0801A416:
+ adds r1, 0x1
+ movs r5, 0x1
+ negs r5, r5
+ add r10, r5
+ mov r0, r10
+ cmp r0, 0
+ bge _0801A408
+ movs r1, 0x8
+ mov r10, r1
+ ldr r2, [sp, 0xC]
+ cmp r2, 0
+ bne _0801A432
+ bl _0801B3CA
+_0801A432:
+ ldr r0, _0801A454 @ =0x02000000
+ ldr r3, _0801A458 @ =0x00016003
+ adds r0, r3
+ strb r7, [r0]
+ ldr r0, _0801A45C @ =gUnknown_02024C0B
+ strb r7, [r0]
+ ldr r1, _0801A460 @ =gUnknown_02024A60
+ ldr r0, _0801A464 @ =gUnknown_02024C07
+ strb r7, [r0]
+ strb r7, [r1]
+ ldr r0, _0801A468 @ =gUnknown_081D9A5E
+ bl b_call_bc_move_exec
+ bl _0801AD5A
+ .align 2, 0
+_0801A450: .4byte gBattleMons
+_0801A454: .4byte 0x02000000
+_0801A458: .4byte 0x00016003
+_0801A45C: .4byte gUnknown_02024C0B
+_0801A460: .4byte gUnknown_02024A60
+_0801A464: .4byte gUnknown_02024C07
+_0801A468: .4byte gUnknown_081D9A5E
+_0801A46C:
+ movs r0, 0x58
+ muls r0, r7
+ mov r4, r8
+ adds r1, r0, r4
+ ldrh r0, [r1, 0x28]
+ ldrh r2, [r1, 0x2C]
+ cmp r0, r2
+ bcc _0801A480
+ bl _0801AD5A
+_0801A480:
+ cmp r6, 0
+ beq _0801A488
+ bl _0801AD5A
+_0801A488:
+ ldr r3, _0801A4C4 @ =gUnknown_02024BEC
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 4
+ str r0, [r3]
+ cmp r0, 0
+ bne _0801A498
+ movs r0, 0x1
+ str r0, [r3]
+_0801A498:
+ ldrh r2, [r1, 0x28]
+ ldr r0, [r3]
+ adds r0, r2, r0
+ ldrh r1, [r1, 0x2C]
+ cmp r0, r1
+ ble _0801A4A8
+ subs r0, r1, r2
+ str r0, [r3]
+_0801A4A8:
+ ldr r0, [r3]
+ negs r0, r0
+ str r0, [r3]
+ ldr r0, _0801A4C8 @ =gUnknown_081D9AA1
+ bl b_call_bc_move_exec
+ movs r3, 0x4
+ str r3, [sp, 0xC]
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_81074F8
+ bl _0801AD5A
+ .align 2, 0
+_0801A4C4: .4byte gUnknown_02024BEC
+_0801A4C8: .4byte gUnknown_081D9AA1
+_0801A4CC:
+ movs r0, 0x58
+ adds r4, r7, 0
+ muls r4, r0
+ str r4, [sp, 0x18]
+ add r4, r8
+ ldrh r0, [r4, 0x2C]
+ ldrh r1, [r4, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801A4E4
+ bl _0801AD5A
+_0801A4E4:
+ cmp r6, 0
+ beq _0801A4EC
+ bl _0801AD5A
+_0801A4EC:
+ ldr r1, _0801A540 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x8
+ strb r0, [r1, 0x1]
+ strb r6, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r5, _0801A544 @ =gUnknown_02024BEC
+ ldrh r0, [r4, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ str r0, [r5]
+ cmp r0, 0
+ bne _0801A510
+ movs r0, 0x1
+ str r0, [r5]
+_0801A510:
+ ldrh r2, [r4, 0x28]
+ ldr r0, [r5]
+ adds r0, r2, r0
+ ldrh r1, [r4, 0x2C]
+ cmp r0, r1
+ ble _0801A520
+ subs r0, r1, r2
+ str r0, [r5]
+_0801A520:
+ ldr r0, [r5]
+ negs r0, r0
+ str r0, [r5]
+ mov r0, r8
+ adds r0, 0x48
+ ldr r5, [sp, 0x18]
+ adds r0, r5, r0
+ ldr r0, [r0]
+ movs r1, 0
+_0801A532:
+ bl sub_8040A7C
+ lsls r0, 24
+ cmp r0, 0
+ bge _0801A53E
+ b _0801A738
+_0801A53E:
+ b _0801A74C
+ .align 2, 0
+_0801A540: .4byte gUnknown_030041C0
+_0801A544: .4byte gUnknown_02024BEC
+_0801A548:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ str r1, [sp, 0x1C]
+ adds r5, r1, 0
+ add r5, r8
+ ldrh r0, [r5, 0x2C]
+ ldrh r1, [r5, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801A562
+ bl _0801AD5A
+_0801A562:
+ cmp r6, 0
+ beq _0801A56A
+ bl _0801AD5A
+_0801A56A:
+ ldr r1, _0801A5BC @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x8
+ strb r0, [r1, 0x1]
+ movs r6, 0x1
+ strb r6, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r4, _0801A5C0 @ =gUnknown_02024BEC
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801A58E
+ str r6, [r4]
+_0801A58E:
+ ldrh r2, [r5, 0x28]
+ ldr r0, [r4]
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x2C]
+ cmp r0, r1
+ ble _0801A59E
+ subs r0, r1, r2
+ str r0, [r4]
+_0801A59E:
+ ldr r0, [r4]
+ negs r0, r0
+ str r0, [r4]
+ mov r0, r8
+ adds r0, 0x48
+ ldr r2, [sp, 0x1C]
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl sub_8040A7C
+ lsls r0, 24
+ cmp r0, 0
+ blt _0801A6A4
+ b _0801A6B8
+ .align 2, 0
+_0801A5BC: .4byte gUnknown_030041C0
+_0801A5C0: .4byte gUnknown_02024BEC
+_0801A5C4:
+ movs r0, 0x58
+ adds r4, r7, 0
+ muls r4, r0
+ str r4, [sp, 0x20]
+ adds r5, r4, 0
+ add r5, r8
+ ldrh r0, [r5, 0x2C]
+ ldrh r1, [r5, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801A5DC
+ b _0801AD5A
+_0801A5DC:
+ cmp r6, 0
+ beq _0801A5E2
+ b _0801AD5A
+_0801A5E2:
+ ldr r1, _0801A62C @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x8
+ strb r0, [r1, 0x1]
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r4, _0801A630 @ =gUnknown_02024BEC
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801A608
+ movs r0, 0x1
+ str r0, [r4]
+_0801A608:
+ ldrh r2, [r5, 0x28]
+ ldr r0, [r4]
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x2C]
+ cmp r0, r1
+ ble _0801A618
+ subs r0, r1, r2
+ str r0, [r4]
+_0801A618:
+ ldr r0, [r4]
+ negs r0, r0
+ str r0, [r4]
+ mov r0, r8
+ adds r0, 0x48
+ ldr r5, [sp, 0x20]
+ adds r0, r5, r0
+ ldr r0, [r0]
+ movs r1, 0x2
+ b _0801A532
+ .align 2, 0
+_0801A62C: .4byte gUnknown_030041C0
+_0801A630: .4byte gUnknown_02024BEC
+_0801A634:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ str r1, [sp, 0x24]
+ adds r5, r1, 0
+ add r5, r8
+ ldrh r0, [r5, 0x2C]
+ ldrh r1, [r5, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801A64C
+ b _0801AD5A
+_0801A64C:
+ cmp r6, 0
+ beq _0801A652
+ b _0801AD5A
+_0801A652:
+ ldr r1, _0801A6AC @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x8
+ strb r0, [r1, 0x1]
+ movs r0, 0x3
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r4, _0801A6B0 @ =gUnknown_02024BEC
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801A678
+ movs r0, 0x1
+ str r0, [r4]
+_0801A678:
+ ldrh r2, [r5, 0x28]
+ ldr r0, [r4]
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x2C]
+ cmp r0, r1
+ ble _0801A688
+ subs r0, r1, r2
+ str r0, [r4]
+_0801A688:
+ ldr r0, [r4]
+ negs r0, r0
+ str r0, [r4]
+ mov r0, r8
+ adds r0, 0x48
+ ldr r2, [sp, 0x24]
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl sub_8040A7C
+ lsls r0, 24
+ cmp r0, 0
+ bge _0801A6B8
+_0801A6A4:
+ ldr r0, _0801A6B4 @ =gUnknown_081D9AD4
+ bl b_call_bc_move_exec
+ b _0801A6BE
+ .align 2, 0
+_0801A6AC: .4byte gUnknown_030041C0
+_0801A6B0: .4byte gUnknown_02024BEC
+_0801A6B4: .4byte gUnknown_081D9AD4
+_0801A6B8:
+ ldr r0, _0801A6C4 @ =gUnknown_081D9A74
+ bl b_call_bc_move_exec
+_0801A6BE:
+ movs r3, 0x4
+ str r3, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801A6C4: .4byte gUnknown_081D9A74
+_0801A6C8:
+ movs r0, 0x58
+ adds r4, r7, 0
+ muls r4, r0
+ str r4, [sp, 0x28]
+ adds r5, r4, 0
+ add r5, r8
+ ldrh r0, [r5, 0x2C]
+ ldrh r1, [r5, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801A6E0
+ b _0801AD5A
+_0801A6E0:
+ cmp r6, 0
+ beq _0801A6E6
+ b _0801AD5A
+_0801A6E6:
+ ldr r1, _0801A740 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x8
+ strb r0, [r1, 0x1]
+ movs r0, 0x4
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r4, _0801A744 @ =gUnknown_02024BEC
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801A70C
+ movs r0, 0x1
+ str r0, [r4]
+_0801A70C:
+ ldrh r2, [r5, 0x28]
+ ldr r0, [r4]
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x2C]
+ cmp r0, r1
+ ble _0801A71C
+ subs r0, r1, r2
+ str r0, [r4]
+_0801A71C:
+ ldr r0, [r4]
+ negs r0, r0
+ str r0, [r4]
+ mov r0, r8
+ adds r0, 0x48
+ ldr r5, [sp, 0x28]
+ adds r0, r5, r0
+ ldr r0, [r0]
+ movs r1, 0x4
+ bl sub_8040A7C
+ lsls r0, 24
+ cmp r0, 0
+ bge _0801A74C
+_0801A738:
+ ldr r0, _0801A748 @ =gUnknown_081D9AD4
+ bl b_call_bc_move_exec
+ b _0801A752
+ .align 2, 0
+_0801A740: .4byte gUnknown_030041C0
+_0801A744: .4byte gUnknown_02024BEC
+_0801A748: .4byte gUnknown_081D9AD4
+_0801A74C:
+ ldr r0, _0801A758 @ =gUnknown_081D9A74
+ bl b_call_bc_move_exec
+_0801A752:
+ movs r0, 0x4
+ str r0, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801A758: .4byte gUnknown_081D9A74
+_0801A75C:
+ movs r0, 0x58
+ muls r0, r7
+ mov r1, r8
+ adds r5, r0, r1
+ ldrh r4, [r5, 0x28]
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801A774
+ b _0801AD5A
+_0801A774:
+ cmp r6, 0
+ beq _0801A77A
+ b _0801AD5A
+_0801A77A:
+ movs r0, 0x19
+ ldrsb r0, [r5, r0]
+ cmp r0, 0xB
+ ble _0801A784
+ b _0801AD5A
+_0801A784:
+ ldr r1, _0801A7BC @ =gUnknown_030041C0
+ movs r2, 0xFD
+ strb r2, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ movs r0, 0x1
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r1, _0801A7C0 @ =gUnknown_03004290
+ strb r2, [r1]
+ strb r6, [r1, 0x1]
+ movs r0, 0xD2
+ strb r0, [r1, 0x2]
+ strb r6, [r1, 0x3]
+ subs r0, 0xD3
+ strb r0, [r1, 0x4]
+ ldr r0, _0801A7C4 @ =gUnknown_02024C0A
+ strb r7, [r0]
+ ldr r1, _0801A7C8 @ =0x02000000
+ ldr r3, _0801A7CC @ =0x0001601e
+ adds r2, r1, r3
+ movs r0, 0x11
+ strb r0, [r2]
+ ldr r4, _0801A7D0 @ =0x000160a4
+ adds r2, r1, r4
+ movs r0, 0xF
+ b _0801A94C
+ .align 2, 0
+_0801A7BC: .4byte gUnknown_030041C0
+_0801A7C0: .4byte gUnknown_03004290
+_0801A7C4: .4byte gUnknown_02024C0A
+_0801A7C8: .4byte 0x02000000
+_0801A7CC: .4byte 0x0001601e
+_0801A7D0: .4byte 0x000160a4
+_0801A7D4:
+ movs r0, 0x58
+ muls r0, r7
+ mov r1, r8
+ adds r5, r0, r1
+ ldrh r4, [r5, 0x28]
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801A7EC
+ b _0801AD5A
+_0801A7EC:
+ cmp r6, 0
+ beq _0801A7F2
+ b _0801AD5A
+_0801A7F2:
+ movs r0, 0x1A
+ ldrsb r0, [r5, r0]
+ cmp r0, 0xB
+ ble _0801A7FC
+ b _0801AD5A
+_0801A7FC:
+ ldr r1, _0801A824 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0801A828 @ =gUnknown_02024C0A
+ strb r7, [r0]
+ ldr r1, _0801A82C @ =0x02000000
+ ldr r3, _0801A830 @ =0x0001601e
+ adds r2, r1, r3
+ movs r0, 0x12
+ strb r0, [r2]
+ ldr r4, _0801A834 @ =0x000160a4
+ adds r2, r1, r4
+ movs r0, 0x10
+ b _0801A94C
+ .align 2, 0
+_0801A824: .4byte gUnknown_030041C0
+_0801A828: .4byte gUnknown_02024C0A
+_0801A82C: .4byte 0x02000000
+_0801A830: .4byte 0x0001601e
+_0801A834: .4byte 0x000160a4
+_0801A838:
+ movs r0, 0x58
+ muls r0, r7
+ mov r1, r8
+ adds r5, r0, r1
+ ldrh r4, [r5, 0x28]
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801A850
+ b _0801AD5A
+_0801A850:
+ cmp r6, 0
+ beq _0801A856
+ b _0801AD5A
+_0801A856:
+ movs r0, 0x1B
+ ldrsb r0, [r5, r0]
+ cmp r0, 0xB
+ ble _0801A860
+ b _0801AD5A
+_0801A860:
+ ldr r1, _0801A888 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ movs r0, 0x3
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0801A88C @ =gUnknown_02024C0A
+ strb r7, [r0]
+ ldr r1, _0801A890 @ =0x02000000
+ ldr r3, _0801A894 @ =0x0001601e
+ adds r2, r1, r3
+ movs r0, 0x13
+ strb r0, [r2]
+ ldr r4, _0801A898 @ =0x000160a4
+ adds r2, r1, r4
+ movs r0, 0x11
+ b _0801A94C
+ .align 2, 0
+_0801A888: .4byte gUnknown_030041C0
+_0801A88C: .4byte gUnknown_02024C0A
+_0801A890: .4byte 0x02000000
+_0801A894: .4byte 0x0001601e
+_0801A898: .4byte 0x000160a4
+_0801A89C:
+ movs r0, 0x58
+ muls r0, r7
+ mov r1, r8
+ adds r5, r0, r1
+ ldrh r4, [r5, 0x28]
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801A8B4
+ b _0801AD5A
+_0801A8B4:
+ cmp r6, 0
+ beq _0801A8BA
+ b _0801AD5A
+_0801A8BA:
+ movs r0, 0x1C
+ ldrsb r0, [r5, r0]
+ cmp r0, 0xB
+ ble _0801A8C4
+ b _0801AD5A
+_0801A8C4:
+ ldr r1, _0801A8EC @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ movs r0, 0x4
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0801A8F0 @ =gUnknown_02024C0A
+ strb r7, [r0]
+ ldr r1, _0801A8F4 @ =0x02000000
+ ldr r3, _0801A8F8 @ =0x0001601e
+ adds r2, r1, r3
+ movs r0, 0x14
+ strb r0, [r2]
+ ldr r4, _0801A8FC @ =0x000160a4
+ adds r2, r1, r4
+ movs r0, 0x12
+ b _0801A94C
+ .align 2, 0
+_0801A8EC: .4byte gUnknown_030041C0
+_0801A8F0: .4byte gUnknown_02024C0A
+_0801A8F4: .4byte 0x02000000
+_0801A8F8: .4byte 0x0001601e
+_0801A8FC: .4byte 0x000160a4
+_0801A900:
+ movs r0, 0x58
+ muls r0, r7
+ mov r1, r8
+ adds r5, r0, r1
+ ldrh r4, [r5, 0x28]
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801A918
+ b _0801AD5A
+_0801A918:
+ cmp r6, 0
+ beq _0801A91E
+ b _0801AD5A
+_0801A91E:
+ movs r0, 0x1D
+ ldrsb r0, [r5, r0]
+ cmp r0, 0xB
+ ble _0801A928
+ b _0801AD5A
+_0801A928:
+ ldr r1, _0801A960 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0801A964 @ =gUnknown_02024C0A
+ strb r7, [r0]
+ ldr r1, _0801A968 @ =0x02000000
+ ldr r3, _0801A96C @ =0x0001601e
+ adds r2, r1, r3
+ movs r0, 0x15
+ strb r0, [r2]
+ ldr r4, _0801A970 @ =0x000160a4
+ adds r2, r1, r4
+ movs r0, 0x13
+_0801A94C:
+ strb r0, [r2]
+ ldr r5, _0801A974 @ =0x000160a5
+ adds r1, r5
+ strb r6, [r1]
+ ldr r0, _0801A978 @ =gUnknown_081D9AFE
+ bl b_call_bc_move_exec
+ movs r0, 0x5
+ str r0, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801A960: .4byte gUnknown_030041C0
+_0801A964: .4byte gUnknown_02024C0A
+_0801A968: .4byte 0x02000000
+_0801A96C: .4byte 0x0001601e
+_0801A970: .4byte 0x000160a4
+_0801A974: .4byte 0x000160a5
+_0801A978: .4byte gUnknown_081D9AFE
+_0801A97C:
+ movs r0, 0x58
+ adds r5, r7, 0
+ muls r5, r0
+ mov r1, r8
+ adds r0, r5, r1
+ ldrh r4, [r0, 0x28]
+ ldrh r0, [r0, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801A996
+ b _0801AD5A
+_0801A996:
+ cmp r6, 0
+ beq _0801A99C
+ b _0801AD5A
+_0801A99C:
+ mov r0, r8
+ adds r0, 0x50
+ adds r1, r5, r0
+ ldr r2, [r1]
+ movs r3, 0x80
+ lsls r3, 13
+ adds r0, r2, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _0801A9B2
+ b _0801AD5A
+_0801A9B2:
+ orrs r2, r3
+ str r2, [r1]
+ ldr r0, _0801A9C4 @ =gUnknown_081D9B19
+ bl b_call_bc_move_exec
+ movs r2, 0x2
+ str r2, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801A9C4: .4byte gUnknown_081D9B19
+_0801A9C8:
+ cmp r6, 0
+ beq _0801A9CE
+ b _0801AD5A
+_0801A9CE:
+ movs r0, 0x58
+ adds r5, r7, 0
+ muls r5, r0
+ mov r3, r8
+ adds r0, r5, r3
+ ldrh r4, [r0, 0x28]
+ ldrh r0, [r0, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801A9E8
+ b _0801AD5A
+_0801A9E8:
+ movs r4, 0
+ mov r10, r4
+ adds r0, r5, 0x1
+ mov r1, r8
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xB
+ ble _0801AA18
+ mov r0, r8
+ adds r0, 0x19
+ adds r1, r5, r0
+_0801AA04:
+ adds r1, 0x1
+ movs r5, 0x1
+ add r10, r5
+ mov r0, r10
+ cmp r0, 0x4
+ bgt _0801AA18
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xB
+ bgt _0801AA04
+_0801AA18:
+ mov r1, r10
+ cmp r1, 0x5
+ bne _0801AA20
+ b _0801AD5A
+_0801AA20:
+ movs r0, 0x58
+ muls r0, r7
+ adds r4, r0, 0x1
+ ldr r5, _0801AAA4 @ =gUnknown_02024A98
+_0801AA28:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ adds r0, r4
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xC
+ beq _0801AA28
+ ldr r1, _0801AAA8 @ =gUnknown_030041C0
+ movs r3, 0
+ movs r2, 0xFD
+ strb r2, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ mov r0, r10
+ adds r0, 0x1
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0801AAAC @ =gUnknown_03004290
+ strb r2, [r0]
+ strb r3, [r0, 0x1]
+ movs r1, 0xD1
+ strb r1, [r0, 0x2]
+ strb r3, [r0, 0x3]
+ strb r3, [r0, 0x4]
+ movs r1, 0xD2
+ strb r1, [r0, 0x5]
+ strb r3, [r0, 0x6]
+ subs r1, 0xD3
+ strb r1, [r0, 0x7]
+ ldr r0, _0801AAB0 @ =gUnknown_02024C0A
+ strb r7, [r0]
+ ldr r1, _0801AAB4 @ =0x02000000
+ mov r2, r10
+ adds r2, 0x21
+ ldr r4, _0801AAB8 @ =0x0001601e
+ adds r0, r1, r4
+ strb r2, [r0]
+ adds r2, 0x6
+ ldr r5, _0801AABC @ =0x000160a4
+ adds r0, r1, r5
+ strb r2, [r0]
+ ldr r0, _0801AAC0 @ =0x000160a5
+ adds r1, r0
+ strb r3, [r1]
+ ldr r0, _0801AAC4 @ =gUnknown_081D9AFE
+ bl b_call_bc_move_exec
+ movs r1, 0x5
+ str r1, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801AAA4: .4byte gUnknown_02024A98
+_0801AAA8: .4byte gUnknown_030041C0
+_0801AAAC: .4byte gUnknown_03004290
+_0801AAB0: .4byte gUnknown_02024C0A
+_0801AAB4: .4byte 0x02000000
+_0801AAB8: .4byte 0x0001601e
+_0801AABC: .4byte 0x000160a4
+_0801AAC0: .4byte 0x000160a5
+_0801AAC4: .4byte gUnknown_081D9AFE
+_0801AAC8:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ bne _0801AAE0
+ b _0801AD5A
+_0801AAE0:
+ movs r0, 0x41
+ negs r0, r0
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801AAF4 @ =gUnknown_081D99B6
+ bl b_call_bc_move_exec
+ movs r2, 0x1
+ str r2, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801AAF4: .4byte gUnknown_081D99B6
+_0801AAF8:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x88
+ ands r0, r2
+ cmp r0, 0
+ bne _0801AB10
+ b _0801AD5A
+_0801AB10:
+ ldr r0, _0801AB24 @ =0xfffff077
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801AB28 @ =gUnknown_081D99CE
+ bl b_call_bc_move_exec
+ movs r3, 0x1
+ str r3, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801AB24: .4byte 0xfffff077
+_0801AB28: .4byte gUnknown_081D99CE
+_0801AB2C:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ bne _0801AB44
+ b _0801AD5A
+_0801AB44:
+ movs r0, 0x11
+ negs r0, r0
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801AB58 @ =gUnknown_081D99E6
+ bl b_call_bc_move_exec
+ movs r4, 0x1
+ str r4, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801AB58: .4byte gUnknown_081D99E6
+_0801AB5C:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ bne _0801AB74
+ b _0801AD5A
+_0801AB74:
+ movs r0, 0x21
+ negs r0, r0
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801AB80 @ =gUnknown_081D99FE
+ b _0801AD0E
+ .align 2, 0
+_0801AB80: .4byte gUnknown_081D99FE
+_0801AB84:
+ movs r0, 0x58
+ adds r3, r7, 0
+ muls r3, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r2, r3, r0
+ ldr r1, [r2]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AB9C
+ b _0801AD5A
+_0801AB9C:
+ movs r0, 0x8
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ mov r1, r8
+ adds r1, 0x50
+ adds r1, r3, r1
+ ldr r0, [r1]
+ ldr r2, _0801ABC0 @ =0xf7ffffff
+ ands r0, r2
+ str r0, [r1]
+ ldr r0, _0801ABC4 @ =gUnknown_081D9A16
+ bl b_call_bc_move_exec
+ movs r0, 0x1
+ str r0, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801ABC0: .4byte 0xf7ffffff
+_0801ABC4: .4byte gUnknown_081D9A16
+_0801ABC8:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x50
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x7
+ ands r0, r2
+ cmp r0, 0
+ bne _0801ABE0
+ b _0801AD5A
+_0801ABE0:
+ movs r0, 0x8
+ negs r0, r0
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801ABF4 @ =gUnknown_081D9A2E
+ bl b_call_bc_move_exec
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801ABF4: .4byte gUnknown_081D9A2E
+_0801ABF8:
+ movs r0, 0x58
+ adds r5, r7, 0
+ muls r5, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r4, r5, r0
+ ldr r2, [r4]
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _0801AC1E
+ mov r0, r8
+ adds r0, 0x50
+ adds r0, r5, r0
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AC1E
+ b _0801AD5A
+_0801AC1E:
+ movs r3, 0
+ mov r10, r3
+ movs r0, 0x88
+ ands r2, r0
+ cmp r2, 0
+ beq _0801AC36
+ ldr r0, _0801ACC4 @ =gUnknown_030041C0
+ ldr r1, _0801ACC8 @ =gStatusConditionString_PoisonJpn
+ bl StringCopy
+ movs r0, 0x1
+ mov r10, r0
+_0801AC36:
+ ldr r0, [r4]
+ movs r1, 0x7
+ mov r9, r1
+ ands r0, r1
+ mov r6, r8
+ adds r6, 0x50
+ cmp r0, 0
+ beq _0801AC5C
+ adds r2, r5, r6
+ ldr r0, [r2]
+ ldr r1, _0801ACCC @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _0801ACC4 @ =gUnknown_030041C0
+ ldr r1, _0801ACD0 @ =gStatusConditionString_SleepJpn
+ bl StringCopy
+ movs r2, 0x1
+ add r10, r2
+_0801AC5C:
+ ldr r0, [r4]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801AC72
+ ldr r0, _0801ACC4 @ =gUnknown_030041C0
+ ldr r1, _0801ACD4 @ =gStatusConditionString_ParalysisJpn
+ bl StringCopy
+ movs r3, 0x1
+ add r10, r3
+_0801AC72:
+ ldr r0, [r4]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0801AC88
+ ldr r0, _0801ACC4 @ =gUnknown_030041C0
+ ldr r1, _0801ACD8 @ =gStatusConditionString_BurnJpn
+ bl StringCopy
+ movs r0, 0x1
+ add r10, r0
+_0801AC88:
+ ldr r0, [r4]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0801AC9E
+ ldr r0, _0801ACC4 @ =gUnknown_030041C0
+ ldr r1, _0801ACDC @ =gStatusConditionString_IceJpn
+ bl StringCopy
+ movs r1, 0x1
+ add r10, r1
+_0801AC9E:
+ adds r0, r5, r6
+ ldr r0, [r0]
+ mov r2, r9
+ ands r0, r2
+ cmp r0, 0
+ beq _0801ACB6
+ ldr r0, _0801ACC4 @ =gUnknown_030041C0
+ ldr r1, _0801ACE0 @ =gStatusConditionString_ConfusionJpn
+ bl StringCopy
+ movs r3, 0x1
+ add r10, r3
+_0801ACB6:
+ mov r4, r10
+ cmp r4, 0x1
+ bgt _0801ACE8
+ ldr r1, _0801ACE4 @ =gUnknown_02024D1E
+ movs r0, 0
+ b _0801ACEC
+ .align 2, 0
+_0801ACC4: .4byte gUnknown_030041C0
+_0801ACC8: .4byte gStatusConditionString_PoisonJpn
+_0801ACCC: .4byte 0xf7ffffff
+_0801ACD0: .4byte gStatusConditionString_SleepJpn
+_0801ACD4: .4byte gStatusConditionString_ParalysisJpn
+_0801ACD8: .4byte gStatusConditionString_BurnJpn
+_0801ACDC: .4byte gStatusConditionString_IceJpn
+_0801ACE0: .4byte gStatusConditionString_ConfusionJpn
+_0801ACE4: .4byte gUnknown_02024D1E
+_0801ACE8:
+ ldr r1, _0801AD18 @ =gUnknown_02024D1E
+ movs r0, 0x1
+_0801ACEC:
+ strb r0, [r1, 0x5]
+ ldr r2, _0801AD1C @ =gBattleMons
+ movs r0, 0x58
+ adds r3, r7, 0
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r3, r0
+ movs r1, 0
+ str r1, [r0]
+ adds r2, 0x50
+ adds r3, r2
+ ldr r0, [r3]
+ subs r1, 0x8
+ ands r0, r1
+ str r0, [r3]
+ ldr r0, _0801AD20 @ =gUnknown_081D9A44
+_0801AD0E:
+ bl b_call_bc_move_exec
+ movs r5, 0x1
+ str r5, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801AD18: .4byte gUnknown_02024D1E
+_0801AD1C: .4byte gBattleMons
+_0801AD20: .4byte gUnknown_081D9A44
+_0801AD24:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x50
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0xF0
+ lsls r0, 12
+ ands r0, r2
+ cmp r0, 0
+ beq _0801AD5A
+ ldr r0, _0801AD84 @ =0xfff0ffff
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801AD88 @ =gUnknown_030041C0
+ ldr r1, _0801AD8C @ =gStatusConditionString_LoveJpn
+ bl StringCopy
+ ldr r0, _0801AD90 @ =gUnknown_081D9A44
+ bl b_call_bc_move_exec
+ ldr r1, _0801AD94 @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ movs r0, 0x2
+ str r0, [sp, 0xC]
+_0801AD5A:
+ ldr r1, [sp, 0xC]
+ cmp r1, 0
+ bne _0801AD62
+ b _0801B3CA
+_0801AD62:
+ ldr r0, _0801AD98 @ =0x02000000
+ ldr r2, _0801AD9C @ =0x00016003
+ adds r0, r2
+ strb r7, [r0]
+ ldr r0, _0801ADA0 @ =gUnknown_02024C0B
+ strb r7, [r0]
+ ldr r4, _0801ADA4 @ =gUnknown_02024A60
+ ldr r0, _0801ADA8 @ =gUnknown_02024C07
+ strb r7, [r0]
+ strb r7, [r4]
+ ldr r3, [sp, 0xC]
+ cmp r3, 0x1
+ beq _0801ADAC
+ cmp r3, 0x3
+ beq _0801ADB2
+ b _0801B3CA
+ .align 2, 0
+_0801AD84: .4byte 0xfff0ffff
+_0801AD88: .4byte gUnknown_030041C0
+_0801AD8C: .4byte gStatusConditionString_LoveJpn
+_0801AD90: .4byte gUnknown_081D9A44
+_0801AD94: .4byte gUnknown_02024D1E
+_0801AD98: .4byte 0x02000000
+_0801AD9C: .4byte 0x00016003
+_0801ADA0: .4byte gUnknown_02024C0B
+_0801ADA4: .4byte gUnknown_02024A60
+_0801ADA8: .4byte gUnknown_02024C07
+_0801ADAC:
+ movs r0, 0x58
+ muls r0, r7
+ b _0801B224
+_0801ADB2:
+ ldr r4, _0801AE00 @ =gBattleMons
+ movs r0, 0x58
+ adds r3, r7, 0
+ muls r3, r0
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ beq _0801ADCE
+ b _0801B3CA
+_0801ADCE:
+ ldr r1, _0801AE04 @ =gUnknown_02024CA8
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _0801AE08 @ =gBitTable
+ mov r5, r10
+ lsls r0, r5, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0801ADEE
+ b _0801B3CA
+_0801ADEE:
+ adds r1, r5, r3
+ adds r0, r4, 0
+ adds r0, 0x24
+ adds r1, r0
+ add r0, sp, 0x4
+ ldrb r0, [r0]
+ strb r0, [r1]
+ b _0801B3CA
+ .align 2, 0
+_0801AE00: .4byte gBattleMons
+_0801AE04: .4byte gUnknown_02024CA8
+_0801AE08: .4byte gBitTable
+_0801AE0C:
+ movs r7, 0
+ ldr r0, _0801AE3C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcc _0801AE18
+ b _0801B3CA
+_0801AE18:
+ ldr r4, _0801AE40 @ =gUnknown_02024C04
+ ldr r1, _0801AE44 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0801AE4C
+ ldr r1, _0801AE48 @ =gEnigmaBerries
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrb r5, [r0, 0x7]
+ b _0801AE5C
+ .align 2, 0
+_0801AE3C: .4byte gUnknown_02024A68
+_0801AE40: .4byte gUnknown_02024C04
+_0801AE44: .4byte gBattleMons
+_0801AE48: .4byte gEnigmaBerries
+_0801AE4C:
+ ldrh r0, [r4]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r4]
+ bl ItemId_GetHoldEffectParam
+_0801AE5C:
+ subs r0, r5, 0x2
+ cmp r0, 0x1A
+ bls _0801AE64
+ b _0801B208
+_0801AE64:
+ lsls r0, 2
+ ldr r1, _0801AE70 @ =_0801AE74
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801AE70: .4byte _0801AE74
+ .align 2, 0
+_0801AE74:
+ .4byte _0801AEE0
+ .4byte _0801AFC8
+ .4byte _0801AF1C
+ .4byte _0801AF58
+ .4byte _0801AF94
+ .4byte _0801B208
+ .4byte _0801B018
+ .4byte _0801B0AC
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B1A0
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B054
+_0801AEE0:
+ ldr r1, _0801AF10 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x4C
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AEF6
+ b _0801B208
+_0801AEF6:
+ movs r0, 0x41
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801AF14 @ =gUnknown_02024C10
+ ldr r0, _0801AF18 @ =gUnknown_081D99BC
+ str r0, [r1]
+ movs r0, 0x1
+ str r0, [sp, 0xC]
+ b _0801B20E
+ .align 2, 0
+_0801AF10: .4byte gBattleMons
+_0801AF14: .4byte gUnknown_02024C10
+_0801AF18: .4byte gUnknown_081D99BC
+_0801AF1C:
+ ldr r1, _0801AF48 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x4C
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AF32
+ b _0801B208
+_0801AF32:
+ ldr r0, _0801AF4C @ =0xfffff077
+ ands r1, r0
+ str r1, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801AF50 @ =gUnknown_02024C10
+ ldr r0, _0801AF54 @ =gUnknown_081D99D4
+ str r0, [r1]
+ movs r1, 0x1
+ str r1, [sp, 0xC]
+ b _0801B20E
+ .align 2, 0
+_0801AF48: .4byte gBattleMons
+_0801AF4C: .4byte 0xfffff077
+_0801AF50: .4byte gUnknown_02024C10
+_0801AF54: .4byte gUnknown_081D99D4
+_0801AF58:
+ ldr r1, _0801AF88 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x4C
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AF6E
+ b _0801B208
+_0801AF6E:
+ movs r0, 0x11
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801AF8C @ =gUnknown_02024C10
+ ldr r0, _0801AF90 @ =gUnknown_081D99EC
+ str r0, [r1]
+ movs r2, 0x1
+ str r2, [sp, 0xC]
+ b _0801B20E
+ .align 2, 0
+_0801AF88: .4byte gBattleMons
+_0801AF8C: .4byte gUnknown_02024C10
+_0801AF90: .4byte gUnknown_081D99EC
+_0801AF94:
+ ldr r1, _0801AFBC @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x4C
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AFAA
+ b _0801B208
+_0801AFAA:
+ movs r0, 0x21
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801AFC0 @ =gUnknown_02024C10
+ ldr r0, _0801AFC4 @ =gUnknown_081D9A04
+ b _0801B168
+ .align 2, 0
+_0801AFBC: .4byte gBattleMons
+_0801AFC0: .4byte gUnknown_02024C10
+_0801AFC4: .4byte gUnknown_081D9A04
+_0801AFC8:
+ ldr r2, _0801B008 @ =gBattleMons
+ movs r0, 0x58
+ adds r4, r7, 0
+ muls r4, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r3, r4, r0
+ ldr r1, [r3]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AFE2
+ b _0801B208
+_0801AFE2:
+ movs r0, 0x8
+ negs r0, r0
+ ands r1, r0
+ str r1, [r3]
+ adds r2, 0x50
+ adds r2, r4, r2
+ ldr r0, [r2]
+ ldr r1, _0801B00C @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801B010 @ =gUnknown_02024C10
+ ldr r0, _0801B014 @ =gUnknown_081D9A1C
+ str r0, [r1]
+ movs r4, 0x1
+ str r4, [sp, 0xC]
+ b _0801B20E
+ .align 2, 0
+_0801B008: .4byte gBattleMons
+_0801B00C: .4byte 0xf7ffffff
+_0801B010: .4byte gUnknown_02024C10
+_0801B014: .4byte gUnknown_081D9A1C
+_0801B018:
+ ldr r1, _0801B048 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801B02E
+ b _0801B208
+_0801B02E:
+ movs r0, 0x8
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801B04C @ =gUnknown_02024C10
+ ldr r0, _0801B050 @ =gUnknown_081D9A34
+ str r0, [r1]
+ movs r5, 0x2
+ str r5, [sp, 0xC]
+ b _0801B20E
+ .align 2, 0
+_0801B048: .4byte gBattleMons
+_0801B04C: .4byte gUnknown_02024C10
+_0801B050: .4byte gUnknown_081D9A34
+_0801B054:
+ ldr r1, _0801B090 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0xF0
+ lsls r0, 12
+ ands r0, r1
+ cmp r0, 0
+ bne _0801B06C
+ b _0801B208
+_0801B06C:
+ ldr r0, _0801B094 @ =0xfff0ffff
+ ands r1, r0
+ str r1, [r2]
+ ldr r0, _0801B098 @ =gUnknown_030041C0
+ ldr r1, _0801B09C @ =gStatusConditionString_LoveJpn
+ bl StringCopy
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801B0A0 @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ ldr r1, _0801B0A4 @ =gUnknown_02024C10
+ ldr r0, _0801B0A8 @ =gUnknown_081D9A4A
+ str r0, [r1]
+ movs r0, 0x2
+ str r0, [sp, 0xC]
+ b _0801B20E
+ .align 2, 0
+_0801B090: .4byte gBattleMons
+_0801B094: .4byte 0xfff0ffff
+_0801B098: .4byte gUnknown_030041C0
+_0801B09C: .4byte gStatusConditionString_LoveJpn
+_0801B0A0: .4byte gUnknown_02024D1E
+_0801B0A4: .4byte gUnknown_02024C10
+_0801B0A8: .4byte gUnknown_081D9A4A
+_0801B0AC:
+ ldr r4, _0801B170 @ =gBattleMons
+ movs r0, 0x58
+ adds r5, r7, 0
+ muls r5, r0
+ adds r0, r4, 0
+ adds r0, 0x4C
+ adds r6, r5, r0
+ ldr r2, [r6]
+ ldrb r0, [r6]
+ cmp r0, 0
+ bne _0801B0D4
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r5, r0
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801B0D4
+ b _0801B208
+_0801B0D4:
+ movs r0, 0x88
+ ands r2, r0
+ cmp r2, 0
+ beq _0801B0E4
+ ldr r0, _0801B174 @ =gUnknown_030041C0
+ ldr r1, _0801B178 @ =gStatusConditionString_PoisonJpn
+ bl StringCopy
+_0801B0E4:
+ ldr r0, [r6]
+ movs r1, 0x7
+ mov r8, r1
+ ands r0, r1
+ adds r4, 0x50
+ cmp r0, 0
+ beq _0801B104
+ adds r2, r5, r4
+ ldr r0, [r2]
+ ldr r1, _0801B17C @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _0801B174 @ =gUnknown_030041C0
+ ldr r1, _0801B180 @ =gStatusConditionString_SleepJpn
+ bl StringCopy
+_0801B104:
+ ldr r0, [r6]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B116
+ ldr r0, _0801B174 @ =gUnknown_030041C0
+ ldr r1, _0801B184 @ =gStatusConditionString_ParalysisJpn
+ bl StringCopy
+_0801B116:
+ ldr r0, [r6]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B128
+ ldr r0, _0801B174 @ =gUnknown_030041C0
+ ldr r1, _0801B188 @ =gStatusConditionString_BurnJpn
+ bl StringCopy
+_0801B128:
+ ldr r0, [r6]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B13A
+ ldr r0, _0801B174 @ =gUnknown_030041C0
+ ldr r1, _0801B18C @ =gStatusConditionString_IceJpn
+ bl StringCopy
+_0801B13A:
+ adds r5, r4
+ ldr r0, [r5]
+ mov r2, r8
+ ands r0, r2
+ cmp r0, 0
+ beq _0801B14E
+ ldr r0, _0801B174 @ =gUnknown_030041C0
+ ldr r1, _0801B190 @ =gStatusConditionString_ConfusionJpn
+ bl StringCopy
+_0801B14E:
+ movs r4, 0
+ str r4, [r6]
+ ldr r0, [r5]
+ movs r1, 0x8
+ negs r1, r1
+ ands r0, r1
+ str r0, [r5]
+ bl b_movescr_stack_push_cursor
+ ldr r0, _0801B194 @ =gUnknown_02024D1E
+ strb r4, [r0, 0x5]
+ ldr r1, _0801B198 @ =gUnknown_02024C10
+ ldr r0, _0801B19C @ =gUnknown_081D9A4A
+_0801B168:
+ str r0, [r1]
+ movs r3, 0x1
+ str r3, [sp, 0xC]
+ b _0801B20E
+ .align 2, 0
+_0801B170: .4byte gBattleMons
+_0801B174: .4byte gUnknown_030041C0
+_0801B178: .4byte gStatusConditionString_PoisonJpn
+_0801B17C: .4byte 0xf7ffffff
+_0801B180: .4byte gStatusConditionString_SleepJpn
+_0801B184: .4byte gStatusConditionString_ParalysisJpn
+_0801B188: .4byte gStatusConditionString_BurnJpn
+_0801B18C: .4byte gStatusConditionString_IceJpn
+_0801B190: .4byte gStatusConditionString_ConfusionJpn
+_0801B194: .4byte gUnknown_02024D1E
+_0801B198: .4byte gUnknown_02024C10
+_0801B19C: .4byte gUnknown_081D9A4A
+_0801B1A0:
+ ldr r4, _0801B1F0 @ =gBattleMons
+ mov r8, r4
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x18
+ adds r1, r0
+ movs r2, 0x6
+ movs r5, 0x7
+ mov r10, r5
+_0801B1B6:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x5
+ bgt _0801B1C4
+ strb r2, [r1]
+ movs r0, 0x5
+ str r0, [sp, 0xC]
+_0801B1C4:
+ adds r1, 0x1
+ movs r3, 0x1
+ negs r3, r3
+ add r10, r3
+ mov r4, r10
+ cmp r4, 0
+ bge _0801B1B6
+ ldr r5, [sp, 0xC]
+ cmp r5, 0
+ beq _0801B254
+ ldr r0, _0801B1F4 @ =0x02000000
+ ldr r1, _0801B1F8 @ =0x00016003
+ adds r0, r1
+ strb r7, [r0]
+ ldr r0, _0801B1FC @ =gUnknown_02024C0B
+ strb r7, [r0]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801B200 @ =gUnknown_02024C10
+ ldr r0, _0801B204 @ =gUnknown_081D9A64
+ str r0, [r1]
+ b _0801B3CA
+ .align 2, 0
+_0801B1F0: .4byte gBattleMons
+_0801B1F4: .4byte 0x02000000
+_0801B1F8: .4byte 0x00016003
+_0801B1FC: .4byte gUnknown_02024C0B
+_0801B200: .4byte gUnknown_02024C10
+_0801B204: .4byte gUnknown_081D9A64
+_0801B208:
+ ldr r2, [sp, 0xC]
+ cmp r2, 0
+ beq _0801B254
+_0801B20E:
+ ldr r0, _0801B240 @ =0x02000000
+ ldr r3, _0801B244 @ =0x00016003
+ adds r0, r3
+ strb r7, [r0]
+ ldr r0, _0801B248 @ =gUnknown_02024C0B
+ strb r7, [r0]
+ ldr r4, _0801B24C @ =gUnknown_02024A60
+ strb r7, [r4]
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+_0801B224:
+ ldr r1, _0801B250 @ =gUnknown_02024ACC
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _0801B3CA
+ .align 2, 0
+_0801B240: .4byte 0x02000000
+_0801B244: .4byte 0x00016003
+_0801B248: .4byte gUnknown_02024C0B
+_0801B24C: .4byte gUnknown_02024A60
+_0801B250: .4byte gUnknown_02024ACC
+_0801B254:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _0801B268 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcs _0801B264
+ b _0801AE18
+_0801B264:
+ b _0801B3CA
+ .align 2, 0
+_0801B268: .4byte gUnknown_02024A68
+_0801B26C:
+ ldr r7, _0801B284 @ =gUnknown_02024BEC
+ ldr r0, [r7]
+ cmp r0, 0
+ bne _0801B276
+ b _0801B3CA
+_0801B276:
+ mov r4, r8
+ cmp r4, 0x1E
+ beq _0801B288
+ cmp r4, 0x3E
+ beq _0801B330
+ b _0801B3CA
+ .align 2, 0
+_0801B284: .4byte gUnknown_02024BEC
+_0801B288:
+ ldr r0, _0801B314 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B296
+ b _0801B3CA
+_0801B296:
+ ldr r2, _0801B318 @ =gUnknown_02024D68
+ ldr r4, _0801B31C @ =gUnknown_02024C08
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801B2BC
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801B2BC
+ b _0801B3CA
+_0801B2BC:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r9
+ bcs _0801B3CA
+ ldr r2, _0801B320 @ =gBattleMoves
+ ldr r0, _0801B324 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B3CA
+ ldr r2, _0801B328 @ =gBattleMons
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801B3CA
+ ldr r1, _0801B32C @ =gUnknown_02024D1E
+ movs r0, 0x8
+ strb r0, [r1, 0x3]
+ bl b_movescr_stack_push_cursor
+ movs r0, 0
+ movs r1, 0
+ bl sub_801E3EC
+ bl b_movescr_stack_pop_cursor
+ b _0801B3CA
+ .align 2, 0
+_0801B314: .4byte gUnknown_02024C68
+_0801B318: .4byte gUnknown_02024D68
+_0801B31C: .4byte gUnknown_02024C08
+_0801B320: .4byte gBattleMoves
+_0801B324: .4byte gUnknown_02024BE6
+_0801B328: .4byte gBattleMons
+_0801B32C: .4byte gUnknown_02024D1E
+_0801B330:
+ ldr r0, _0801B3DC @ =gUnknown_02024C68
+ ldrb r0, [r0]
+ movs r4, 0x29
+ ands r4, r0
+ cmp r4, 0
+ bne _0801B3CA
+ ldr r1, _0801B3E0 @ =gUnknown_02024D68
+ ldr r5, _0801B3E4 @ =gUnknown_02024C08
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 2
+ adds r6, r1, 0x4
+ adds r0, r6
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _0801B3CA
+ ldr r0, _0801B3E8 @ =0x0000ffff
+ cmp r1, r0
+ beq _0801B3CA
+ ldr r0, _0801B3EC @ =gUnknown_02024C07
+ ldrb r3, [r0]
+ cmp r3, r2
+ beq _0801B3CA
+ ldr r2, _0801B3F0 @ =gBattleMons
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r1, [r0, 0x28]
+ ldrh r0, [r0, 0x2C]
+ cmp r1, r0
+ beq _0801B3CA
+ cmp r1, 0
+ beq _0801B3CA
+ ldr r0, _0801B3F4 @ =gUnknown_02024C04
+ mov r1, sp
+ ldrh r1, [r1, 0x14]
+ strh r1, [r0]
+ ldr r0, _0801B3F8 @ =gUnknown_02024C0B
+ strb r3, [r0]
+ ldr r0, _0801B3FC @ =0x02000000
+ ldr r2, _0801B400 @ =0x00016003
+ adds r0, r2
+ strb r3, [r0]
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldr r1, [sp, 0x10]
+ bl __divsi3
+ negs r0, r0
+ str r0, [r7]
+ ldrb r1, [r5]
+ cmp r0, 0
+ bne _0801B3AC
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r7]
+_0801B3AC:
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ str r4, [r0]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801B404 @ =gUnknown_02024C10
+ ldr r0, _0801B408 @ =gUnknown_081D9AA7
+ str r0, [r1]
+ ldr r0, [sp, 0xC]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0xC]
+_0801B3CA:
+ ldr r0, [sp, 0xC]
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801B3DC: .4byte gUnknown_02024C68
+_0801B3E0: .4byte gUnknown_02024D68
+_0801B3E4: .4byte gUnknown_02024C08
+_0801B3E8: .4byte 0x0000ffff
+_0801B3EC: .4byte gUnknown_02024C07
+_0801B3F0: .4byte gBattleMons
+_0801B3F4: .4byte gUnknown_02024C04
+_0801B3F8: .4byte gUnknown_02024C0B
+_0801B3FC: .4byte 0x02000000
+_0801B400: .4byte 0x00016003
+_0801B404: .4byte gUnknown_02024C10
+_0801B408: .4byte gUnknown_081D9AA7
+ thumb_func_end sub_801A02C
+
+ thumb_func_start unref_sub_801B40C
+unref_sub_801B40C: @ 801B40C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, _0801B464 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801B42A
+ b _0801B56E
+_0801B42A:
+ movs r1, 0x1
+ mov r9, r1
+_0801B42E:
+ movs r5, 0
+ ldr r4, _0801B468 @ =gUnknown_081FC1D0
+ ldr r2, [sp]
+ adds r2, 0x1
+ str r2, [sp, 0x4]
+_0801B438:
+ ldr r0, _0801B46C @ =gUnknown_02024C0C
+ ldrb r2, [r0]
+ ldr r3, _0801B470 @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ands r0, r2
+ cmp r0, 0
+ bne _0801B45A
+ adds r0, r5, 0x2
+ lsls r1, r0, 2
+ adds r1, r3
+ ldr r1, [r1]
+ ands r2, r1
+ adds r7, r0, 0
+ cmp r2, 0
+ beq _0801B474
+_0801B45A:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _0801B556
+ .align 2, 0
+_0801B464: .4byte gUnknown_020239F8
+_0801B468: .4byte gUnknown_081FC1D0
+_0801B46C: .4byte gUnknown_02024C0C
+_0801B470: .4byte gBitTable
+_0801B474:
+ ldr r0, _0801B580 @ =gUnknown_081FC1D0
+ ldr r2, [sp]
+ lsls r1, r2, 3
+ adds r6, r1, r0
+ ldr r4, _0801B584 @ =gUnknown_02024C60
+ lsls r0, r5, 1
+ adds r3, r0, r4
+ ldrh r2, [r6]
+ mov r8, r1
+ mov r10, r0
+ ldrh r3, [r3]
+ cmp r2, r3
+ bne _0801B4E4
+ lsls r0, r7, 1
+ adds r0, r4
+ ldrh r1, [r6, 0x2]
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _0801B4E4
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ mov r2, r9
+ ands r2, r0
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ ldr r0, _0801B588 @ =gUnknown_02024C80
+ adds r1, r0
+ lsls r0, r7, 4
+ orrs r0, r5
+ strb r0, [r1, 0x3]
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ mov r1, r9
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0801B588 @ =gUnknown_02024C80
+ adds r0, r1
+ ldrh r1, [r6, 0x4]
+ strh r1, [r0, 0x4]
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ mov r1, r9
+ ands r1, r0
+ lsls r1, 1
+ ldr r2, _0801B58C @ =gUnknown_02024C7A
+ adds r1, r2
+ ldrh r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strh r0, [r1]
+_0801B4E4:
+ ldr r0, _0801B580 @ =gUnknown_081FC1D0
+ mov r1, r8
+ adds r4, r1, r0
+ ldr r2, _0801B584 @ =gUnknown_02024C60
+ lsls r0, r7, 1
+ adds r0, r2
+ ldrh r1, [r4]
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _0801B54E
+ mov r0, r10
+ adds r1, r0, r2
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _0801B54E
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ mov r2, r9
+ ands r2, r0
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ ldr r2, _0801B588 @ =gUnknown_02024C80
+ adds r1, r2
+ lsls r0, r5, 4
+ orrs r0, r7
+ strb r0, [r1, 0x3]
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ mov r1, r9
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0801B588 @ =gUnknown_02024C80
+ adds r0, r1
+ ldrh r1, [r4, 0x4]
+ strh r1, [r0, 0x4]
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ mov r1, r9
+ ands r1, r0
+ lsls r1, 1
+ ldr r2, _0801B58C @ =gUnknown_02024C7A
+ adds r1, r2
+ ldrh r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strh r0, [r1]
+_0801B54E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _0801B580 @ =gUnknown_081FC1D0
+_0801B556:
+ cmp r5, 0x1
+ bhi _0801B55C
+ b _0801B438
+_0801B55C:
+ ldr r0, [sp, 0x4]
+ str r0, [sp]
+ lsls r0, 3
+ adds r0, r4
+ ldrh r1, [r0]
+ ldr r0, _0801B590 @ =0x0000ffff
+ cmp r1, r0
+ beq _0801B56E
+ b _0801B42E
+_0801B56E:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801B580: .4byte gUnknown_081FC1D0
+_0801B584: .4byte gUnknown_02024C60
+_0801B588: .4byte gUnknown_02024C80
+_0801B58C: .4byte gUnknown_02024C7A
+_0801B590: .4byte 0x0000ffff
+ thumb_func_end unref_sub_801B40C
+
+ thumb_func_start sub_801B594
+sub_801B594: @ 801B594
+ push {lr}
+ ldr r0, _0801B5B4 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801B5B0
+ ldr r1, _0801B5B8 @ =gUnknown_081FA73C
+ ldr r0, _0801B5BC @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+_0801B5B0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801B5B4: .4byte gUnknown_02024A64
+_0801B5B8: .4byte gUnknown_081FA73C
+_0801B5BC: .4byte gUnknown_02024C10
+ thumb_func_end sub_801B594
+
+ thumb_func_start sub_801B5C0
+sub_801B5C0: @ 801B5C0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r7, r0, 16
+ lsls r1, 24
+ lsrs r0, r1, 24
+ movs r5, 0
+ cmp r0, 0
+ beq _0801B5DE
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ b _0801B5EA
+_0801B5DE:
+ ldr r1, _0801B5FC @ =gBattleMoves
+ lsls r0, r7, 1
+ adds r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrb r6, [r0, 0x6]
+_0801B5EA:
+ cmp r6, 0x40
+ bls _0801B5F0
+ b _0801B900
+_0801B5F0:
+ lsls r0, r6, 2
+ ldr r1, _0801B600 @ =_0801B604
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801B5FC: .4byte gBattleMoves
+_0801B600: .4byte _0801B604
+ .align 2, 0
+_0801B604:
+ .4byte _0801B708
+ .4byte _0801B808
+ .4byte _0801B8FC
+ .4byte _0801B900
+ .4byte _0801B820
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B808
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B8FC
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B808
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B808
+_0801B708:
+ ldr r0, _0801B7E8 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _0801B7EC @ =gUnknown_02024C80
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r2, r0, r1
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _0801B73A
+ ldr r1, _0801B7F0 @ =gBattleMons
+ ldrb r4, [r2, 0x9]
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801B73A
+ b _0801B850
+_0801B73A:
+ ldr r0, _0801B7E8 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r7, 1
+ mov r8, r0
+_0801B74A:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0801B7F4 @ =gUnknown_02024A68
+ ldrb r1, [r1]
+ bl __modsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r6, _0801B7E8 @ =gUnknown_02024C07
+ ldrb r2, [r6]
+ cmp r5, r2
+ beq _0801B74A
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ beq _0801B74A
+ ldr r0, _0801B7F8 @ =gUnknown_02024C0C
+ ldrb r2, [r0]
+ ldr r1, _0801B7FC @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ bne _0801B74A
+ ldr r0, _0801B800 @ =gBattleMoves
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0xD
+ beq _0801B798
+ b _0801B900
+_0801B798:
+ ldrb r1, [r6]
+ str r2, [sp]
+ movs r0, 0x10
+ movs r2, 0x1F
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801B7AE
+ b _0801B900
+_0801B7AE:
+ ldr r2, _0801B7F0 @ =gBattleMons
+ movs r1, 0x58
+ adds r0, r5, 0
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1F
+ bne _0801B7C2
+ b _0801B900
+_0801B7C2:
+ movs r4, 0x2
+ eors r5, r4
+ adds r0, r5, 0
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_81074C4
+ ldr r1, _0801B804 @ =gUnknown_02024D68
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ orrs r1, r4
+ strb r1, [r0]
+ b _0801B900
+ .align 2, 0
+_0801B7E8: .4byte gUnknown_02024C07
+_0801B7EC: .4byte gUnknown_02024C80
+_0801B7F0: .4byte gBattleMons
+_0801B7F4: .4byte gUnknown_02024A68
+_0801B7F8: .4byte gUnknown_02024C0C
+_0801B7FC: .4byte gBitTable
+_0801B800: .4byte gBattleMoves
+_0801B804: .4byte gUnknown_02024D68
+_0801B808:
+ ldr r0, _0801B81C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ movs r2, 0x1
+ movs r0, 0x1
+ ands r0, r1
+ eors r0, r2
+ b _0801B8B2
+ .align 2, 0
+_0801B81C: .4byte gUnknown_02024C07
+_0801B820:
+ ldr r0, _0801B854 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _0801B858 @ =gUnknown_02024C80
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r2, r0, r1
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _0801B860
+ ldr r1, _0801B85C @ =gBattleMons
+ ldrb r4, [r2, 0x9]
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801B860
+_0801B850:
+ adds r5, r4, 0
+ b _0801B900
+ .align 2, 0
+_0801B854: .4byte gUnknown_02024C07
+_0801B858: .4byte gUnknown_02024C80
+_0801B85C: .4byte gBattleMons
+_0801B860:
+ ldr r0, _0801B894 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B8DC
+ movs r0, 0x4
+ ands r6, r0
+ cmp r6, 0
+ beq _0801B8DC
+ ldr r0, _0801B898 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801B8A0
+ bl Random
+ adds r1, r4, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _0801B89C
+ movs r0, 0x1
+ b _0801B8B2
+ .align 2, 0
+_0801B894: .4byte gUnknown_020239F8
+_0801B898: .4byte gUnknown_02024C07
+_0801B89C:
+ movs r0, 0x3
+ b _0801B8B2
+_0801B8A0:
+ bl Random
+ adds r1, r4, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _0801B8B0
+ movs r0, 0
+ b _0801B8B2
+_0801B8B0:
+ movs r0, 0x2
+_0801B8B2:
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0801B8D4 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _0801B8D8 @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0801B900
+ movs r0, 0x2
+ eors r5, r0
+ b _0801B900
+ .align 2, 0
+_0801B8D4: .4byte gUnknown_02024C0C
+_0801B8D8: .4byte gBitTable
+_0801B8DC:
+ ldr r0, _0801B8F8 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ movs r2, 0x1
+ movs r0, 0x1
+ ands r0, r1
+ eors r0, r2
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _0801B900
+ .align 2, 0
+_0801B8F8: .4byte gUnknown_02024C07
+_0801B8FC:
+ ldr r0, _0801B91C @ =gUnknown_02024C07
+ ldrb r5, [r0]
+_0801B900:
+ ldr r1, _0801B920 @ =0x02000000
+ ldr r0, _0801B91C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ ldr r2, _0801B924 @ =0x00016010
+ adds r0, r2
+ adds r0, r1
+ strb r5, [r0]
+ adds r0, r5, 0
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801B91C: .4byte gUnknown_02024C07
+_0801B920: .4byte 0x02000000
+_0801B924: .4byte 0x00016010
+ thumb_func_end sub_801B5C0
+
+ thumb_func_start sub_801B928
+sub_801B928: @ 801B928
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ ldr r0, _0801B9E0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0801B9DA
+ ldr r7, _0801B9E4 @ =gUnknown_02024C07
+ ldrb r0, [r7]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0801B9DA
+ ldr r5, _0801B9E8 @ =gBattleMons
+ ldrb r0, [r7]
+ movs r1, 0x58
+ mov r8, r1
+ mov r1, r8
+ muls r1, r0
+ adds r0, r5, 0
+ adds r0, 0x54
+ adds r0, r1, r0
+ ldr r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x3C
+ adds r1, r2
+ bl sub_8040AD0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801B9DA
+ ldr r0, _0801B9EC @ =0x0000080e
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801B9DA
+ movs r6, 0xA
+ ldr r0, _0801B9F0 @ =0x00000808
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801B98E
+ movs r6, 0x1E
+_0801B98E:
+ ldr r0, _0801B9F4 @ =0x0000080a
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801B99C
+ movs r6, 0x32
+_0801B99C:
+ ldr r0, _0801B9F8 @ =0x0000080c
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801B9AA
+ movs r6, 0x46
+_0801B9AA:
+ ldrb r0, [r7]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r5
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ cmp r0, r6
+ bls _0801B9DA
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ ldrb r0, [r7]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, r5
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ adds r0, r6
+ muls r0, r1
+ asrs r4, r0, 8
+ cmp r4, r6
+ bge _0801B9FC
+_0801B9DA:
+ movs r0, 0
+ b _0801BC24
+ .align 2, 0
+_0801B9E0: .4byte gUnknown_020239F8
+_0801B9E4: .4byte gUnknown_02024C07
+_0801B9E8: .4byte gBattleMons
+_0801B9EC: .4byte 0x0000080e
+_0801B9F0: .4byte 0x00000808
+_0801B9F4: .4byte 0x0000080a
+_0801B9F8: .4byte 0x0000080c
+_0801B9FC:
+ ldr r3, _0801BA3C @ =gUnknown_02024BE6
+ ldrh r0, [r3]
+ cmp r0, 0x63
+ bne _0801BA12
+ adds r0, r5, 0
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r1, [r0]
+ ldr r2, _0801BA40 @ =0xff7fffff
+ ands r1, r2
+ str r1, [r0]
+_0801BA12:
+ ldrb r0, [r7]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r1, r5, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _0801BA4C
+ ldrh r0, [r3]
+ cmp r0, 0xAD
+ beq _0801BA34
+ cmp r0, 0xD6
+ bne _0801BA4C
+_0801BA34:
+ ldr r1, _0801BA44 @ =gUnknown_02024C10
+ ldr r0, _0801BA48 @ =gUnknown_081D995F
+ b _0801BBCE
+ .align 2, 0
+_0801BA3C: .4byte gUnknown_02024BE6
+_0801BA40: .4byte 0xff7fffff
+_0801BA44: .4byte gUnknown_02024C10
+_0801BA48: .4byte gUnknown_081D995F
+_0801BA4C:
+ bl Random
+ movs r5, 0xFF
+ adds r1, r5, 0
+ ands r1, r0
+ ldr r7, _0801BB04 @ =gBattleMons
+ ldr r2, _0801BB08 @ =gUnknown_02024C07
+ mov r9, r2
+ ldrb r3, [r2]
+ movs r0, 0x58
+ mov r8, r0
+ mov r0, r8
+ muls r0, r3
+ adds r0, r7
+ adds r0, 0x2A
+ ldrb r2, [r0]
+ adds r0, r2, r6
+ muls r0, r1
+ asrs r4, r0, 8
+ cmp r4, r6
+ bge _0801BB3C
+ ldr r7, _0801BB0C @ =gBitTable
+ ldr r5, _0801BB10 @ =gUnknown_02024BE4
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r7
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ movs r2, 0xFF
+ bl sub_8015A98
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bne _0801BA94
+ b _0801BBBE
+_0801BA94:
+ adds r6, r5, 0
+ ldr r1, _0801BB14 @ =gUnknown_02024BE5
+ mov r9, r1
+ movs r2, 0x3
+ mov r8, r2
+_0801BA9E:
+ bl Random
+ mov r1, r8
+ ands r0, r1
+ mov r2, r9
+ strb r0, [r2]
+ strb r0, [r6]
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r7
+ ldr r5, [r0]
+ ands r5, r4
+ cmp r5, 0
+ bne _0801BA9E
+ ldr r4, _0801BB18 @ =gUnknown_02024BEA
+ ldr r3, _0801BB04 @ =gBattleMons
+ ldr r0, _0801BB10 @ =gUnknown_02024BE4
+ ldrb r0, [r0]
+ lsls r0, 1
+ ldr r1, _0801BB08 @ =gUnknown_02024C07
+ ldrb r2, [r1]
+ movs r1, 0x58
+ muls r1, r2
+ adds r0, r1
+ adds r3, 0xC
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r4]
+ ldr r0, _0801BB1C @ =gUnknown_02024D1E
+ strb r5, [r0, 0x3]
+ ldr r0, _0801BB20 @ =gUnknown_02024DEC
+ movs r1, 0
+ strh r5, [r0]
+ ldr r0, _0801BB24 @ =0x02000000
+ ldr r2, _0801BB28 @ =0x0001601c
+ adds r0, r2
+ strb r1, [r0]
+ ldr r1, _0801BB2C @ =gUnknown_02024C10
+ ldr r0, _0801BB30 @ =gUnknown_081D996F
+ str r0, [r1]
+ ldrh r0, [r4]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _0801BB34 @ =gUnknown_02024C08
+ strb r0, [r1]
+ ldr r2, _0801BB38 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 14
+ b _0801BC1E
+ .align 2, 0
+_0801BB04: .4byte gBattleMons
+_0801BB08: .4byte gUnknown_02024C07
+_0801BB0C: .4byte gBitTable
+_0801BB10: .4byte gUnknown_02024BE4
+_0801BB14: .4byte gUnknown_02024BE5
+_0801BB18: .4byte gUnknown_02024BEA
+_0801BB1C: .4byte gUnknown_02024D1E
+_0801BB20: .4byte gUnknown_02024DEC
+_0801BB24: .4byte 0x02000000
+_0801BB28: .4byte 0x0001601c
+_0801BB2C: .4byte gUnknown_02024C10
+_0801BB30: .4byte gUnknown_081D996F
+_0801BB34: .4byte gUnknown_02024C08
+_0801BB38: .4byte gUnknown_02024C6C
+_0801BB3C:
+ subs r0, r2, r6
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl Random
+ adds r4, r5, 0
+ ands r4, r0
+ cmp r4, r6
+ bge _0801BBB8
+ mov r1, r9
+ ldrb r0, [r1]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r7, 0
+ adds r0, 0x4C
+ adds r0, r1, r0
+ ldr r0, [r0]
+ ands r0, r5
+ cmp r0, 0
+ bne _0801BBB8
+ adds r0, r1, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x48
+ beq _0801BBB8
+ cmp r0, 0xF
+ beq _0801BBB8
+ movs r2, 0
+ ldr r0, _0801BBAC @ =gUnknown_02024A68
+ ldrb r3, [r0]
+ mov r8, r0
+ cmp r2, r3
+ bge _0801BB9E
+ ldr r0, [r7, 0x50]
+ movs r1, 0x70
+ ands r0, r1
+ cmp r0, 0
+ bne _0801BB9E
+ adds r1, r7, 0
+ adds r1, 0x50
+ movs r5, 0x70
+_0801BB8E:
+ adds r1, 0x58
+ adds r2, 0x1
+ cmp r2, r3
+ bge _0801BB9E
+ ldr r0, [r1]
+ ands r0, r5
+ cmp r0, 0
+ beq _0801BB8E
+_0801BB9E:
+ mov r0, r8
+ ldrb r0, [r0]
+ cmp r2, r0
+ bne _0801BBB8
+ ldr r1, _0801BBB0 @ =gUnknown_02024C10
+ ldr r0, _0801BBB4 @ =gUnknown_081D9989
+ b _0801BBCE
+ .align 2, 0
+_0801BBAC: .4byte gUnknown_02024A68
+_0801BBB0: .4byte gUnknown_02024C10
+_0801BBB4: .4byte gUnknown_081D9989
+_0801BBB8:
+ subs r4, r6
+ cmp r4, r6
+ blt _0801BBE0
+_0801BBBE:
+ bl Random
+ ldr r2, _0801BBD4 @ =gUnknown_02024D1E
+ movs r1, 0x3
+ ands r1, r0
+ strb r1, [r2, 0x5]
+ ldr r1, _0801BBD8 @ =gUnknown_02024C10
+ ldr r0, _0801BBDC @ =gUnknown_081D9977
+_0801BBCE:
+ str r0, [r1]
+ movs r0, 0x1
+ b _0801BC24
+ .align 2, 0
+_0801BBD4: .4byte gUnknown_02024D1E
+_0801BBD8: .4byte gUnknown_02024C10
+_0801BBDC: .4byte gUnknown_081D9977
+_0801BBE0:
+ ldr r4, _0801BC34 @ =gUnknown_02024C07
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r1, r0
+ ldr r0, _0801BC38 @ =gBattleMons
+ adds r1, r0
+ movs r0, 0x28
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ ldrb r0, [r4]
+ str r0, [sp, 0x8]
+ ldrb r0, [r4]
+ str r0, [sp, 0xC]
+ adds r0, r1, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl CalculateBaseDamage
+ ldr r1, _0801BC3C @ =gUnknown_02024BEC
+ str r0, [r1]
+ ldr r1, _0801BC40 @ =gUnknown_02024C08
+ ldrb r0, [r4]
+ strb r0, [r1]
+ ldr r1, _0801BC44 @ =gUnknown_02024C10
+ ldr r0, _0801BC48 @ =gUnknown_081D99A0
+ str r0, [r1]
+ ldr r2, _0801BC4C @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+_0801BC1E:
+ orrs r0, r1
+ str r0, [r2]
+ movs r0, 0x2
+_0801BC24:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801BC34: .4byte gUnknown_02024C07
+_0801BC38: .4byte gBattleMons
+_0801BC3C: .4byte gUnknown_02024BEC
+_0801BC40: .4byte gUnknown_02024C08
+_0801BC44: .4byte gUnknown_02024C10
+_0801BC48: .4byte gUnknown_081D99A0
+_0801BC4C: .4byte gUnknown_02024C6C
+ thumb_func_end sub_801B928
+
+ thumb_func_start atk00_attackcanceler
+atk00_attackcanceler: @ 801BC50
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r0, _0801BC6C @ =gUnknown_02024D26
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801BC74
+ ldr r1, _0801BC70 @ =gUnknown_02024A7F
+ movs r0, 0xC
+ strb r0, [r1]
+ b _0801BFF4
+ .align 2, 0
+_0801BC6C: .4byte gUnknown_02024D26
+_0801BC70: .4byte gUnknown_02024A7F
+_0801BC74:
+ ldr r2, _0801BCA4 @ =gBattleMons
+ ldr r0, _0801BCA8 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _0801BCB8
+ ldr r2, _0801BCAC @ =gUnknown_02024C6C
+ ldr r1, [r2]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ bne _0801BCB8
+ movs r0, 0x80
+ lsls r0, 12
+ orrs r1, r0
+ str r1, [r2]
+ ldr r1, _0801BCB0 @ =gUnknown_02024C10
+ ldr r0, _0801BCB4 @ =BattleScript_1D6F62
+ b _0801BFF2
+ .align 2, 0
+_0801BCA4: .4byte gBattleMons
+_0801BCA8: .4byte gUnknown_02024C07
+_0801BCAC: .4byte gUnknown_02024C6C
+_0801BCB0: .4byte gUnknown_02024C10
+_0801BCB4: .4byte BattleScript_1D6F62
+_0801BCB8:
+ bl sub_8017718
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _0801BCC6
+ b _0801BFF4
+_0801BCC6:
+ ldr r0, _0801BD34 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ str r2, [sp]
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801BCDE
+ b _0801BFF4
+_0801BCDE:
+ ldr r4, _0801BD38 @ =gBattleMons
+ ldr r0, _0801BD3C @ =gUnknown_02024BE4
+ ldrb r1, [r0]
+ ldr r3, _0801BD40 @ =gUnknown_02024C07
+ ldrb r2, [r3]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, r2
+ adds r0, r4, 0
+ adds r0, 0x24
+ adds r1, r0
+ ldrb r0, [r1]
+ ldr r5, _0801BD44 @ =gUnknown_02024C6C
+ cmp r0, 0
+ bne _0801BD5C
+ ldr r0, _0801BD48 @ =gUnknown_02024BE6
+ ldrh r0, [r0]
+ cmp r0, 0xA5
+ beq _0801BD5C
+ ldr r0, [r5]
+ ldr r1, _0801BD4C @ =0x00800200
+ ands r0, r1
+ cmp r0, 0
+ bne _0801BD5C
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 5
+ ands r0, r1
+ cmp r0, 0
+ bne _0801BD5C
+ ldr r1, _0801BD50 @ =gUnknown_02024C10
+ ldr r0, _0801BD54 @ =gUnknown_081D936D
+ str r0, [r1]
+ ldr r2, _0801BD58 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ b _0801BFF4
+ .align 2, 0
+_0801BD34: .4byte gUnknown_02024C08
+_0801BD38: .4byte gBattleMons
+_0801BD3C: .4byte gUnknown_02024BE4
+_0801BD40: .4byte gUnknown_02024C07
+_0801BD44: .4byte gUnknown_02024C6C
+_0801BD48: .4byte gUnknown_02024BE6
+_0801BD4C: .4byte 0x00800200
+_0801BD50: .4byte gUnknown_02024C10
+_0801BD54: .4byte gUnknown_081D936D
+_0801BD58: .4byte gUnknown_02024C68
+_0801BD5C:
+ ldr r0, [r5]
+ ldr r1, _0801BDA0 @ =0xff7fffff
+ ands r0, r1
+ str r0, [r5]
+ movs r6, 0x80
+ lsls r6, 18
+ ands r0, r6
+ cmp r0, 0
+ bne _0801BDB4
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r4, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 5
+ ands r0, r1
+ cmp r0, 0
+ bne _0801BDB4
+ bl sub_801B928
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _0801BDB4
+ cmp r2, 0x2
+ bne _0801BDA4
+ ldr r0, [r5]
+ orrs r0, r6
+ str r0, [r5]
+ b _0801BFF4
+ .align 2, 0
+_0801BDA0: .4byte 0xff7fffff
+_0801BDA4:
+ ldr r0, _0801BDB0 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ b _0801BFF4
+ .align 2, 0
+_0801BDB0: .4byte gUnknown_02024C68
+_0801BDB4:
+ ldr r2, _0801BE18 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 18
+ orrs r0, r1
+ str r0, [r2]
+ ldr r2, _0801BE1C @ =gUnknown_02024D28
+ ldr r1, _0801BE20 @ =gUnknown_02024C08
+ ldrb r3, [r1]
+ lsls r0, r3, 4
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 27
+ mov r8, r1
+ mov r9, r2
+ cmp r0, 0
+ bge _0801BE3C
+ ldr r2, _0801BE24 @ =gBattleMoves
+ ldr r0, _0801BE28 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801BE3C
+ ldr r0, _0801BE2C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ ldr r2, _0801BE30 @ =0x00000115
+ adds r1, r3, 0
+ bl sub_80151D4
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r1, 4
+ add r1, r9
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801BE34 @ =gUnknown_02024C10
+ ldr r0, _0801BE38 @ =gUnknown_081D946F
+ b _0801BFF2
+ .align 2, 0
+_0801BE18: .4byte gUnknown_02024C6C
+_0801BE1C: .4byte gUnknown_02024D28
+_0801BE20: .4byte gUnknown_02024C08
+_0801BE24: .4byte gBattleMoves
+_0801BE28: .4byte gUnknown_02024BE6
+_0801BE2C: .4byte gUnknown_02024C07
+_0801BE30: .4byte 0x00000115
+_0801BE34: .4byte gUnknown_02024C10
+_0801BE38: .4byte gUnknown_081D946F
+_0801BE3C:
+ movs r2, 0
+ ldr r0, _0801BEB8 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r2, r0
+ bge _0801BE7E
+ ldr r6, _0801BEBC @ =gUnknown_02024D28
+ ldr r1, _0801BEC0 @ =gBattleMoves
+ mov r12, r1
+ adds r5, r0, 0
+ ldr r7, _0801BEC4 @ =gUnknown_02024A7A
+_0801BE50:
+ adds r4, r2, r7
+ ldrb r3, [r4]
+ lsls r0, r3, 4
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _0801BE78
+ ldr r0, _0801BEC8 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ add r0, r12
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0801BE78
+ b _0801BFA4
+_0801BE78:
+ adds r2, 0x1
+ cmp r2, r5
+ blt _0801BE50
+_0801BE7E:
+ ldr r0, _0801BECC @ =gUnknown_02024D68
+ mov r1, r8
+ ldrb r2, [r1]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r3, [r1]
+ lsls r0, r3, 30
+ cmp r0, 0
+ bge _0801BEDC
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r3
+ strb r0, [r1]
+ ldr r4, _0801BED0 @ =byte_2024C06
+ movs r0, 0x1F
+ strb r0, [r4]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801BED4 @ =gUnknown_02024C10
+ ldr r0, _0801BED8 @ =gUnknown_081D9812
+ str r0, [r1]
+ mov r2, r8
+ ldrb r0, [r2]
+ ldrb r1, [r4]
+ bl sub_81074C4
+ b _0801BFF4
+ .align 2, 0
+_0801BEB8: .4byte gUnknown_02024A68
+_0801BEBC: .4byte gUnknown_02024D28
+_0801BEC0: .4byte gBattleMoves
+_0801BEC4: .4byte gUnknown_02024A7A
+_0801BEC8: .4byte gUnknown_02024BE6
+_0801BECC: .4byte gUnknown_02024D68
+_0801BED0: .4byte byte_2024C06
+_0801BED4: .4byte gUnknown_02024C10
+_0801BED8: .4byte gUnknown_081D9812
+_0801BEDC:
+ lsls r0, r2, 4
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r0, 31
+ cmp r0, 0
+ bne _0801BEEA
+ b _0801BFEC
+_0801BEEA:
+ ldr r1, _0801BF80 @ =gBattleMoves
+ ldr r2, _0801BF84 @ =gUnknown_02024BE6
+ ldrh r3, [r2]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x2
+ ands r0, r1
+ adds r4, r2, 0
+ cmp r0, 0
+ beq _0801BFEC
+ cmp r3, 0xAE
+ bne _0801BF28
+ ldr r2, _0801BF88 @ =gBattleMons
+ ldr r0, _0801BF8C @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ beq _0801BF28
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bne _0801BFEC
+_0801BF28:
+ ldrh r0, [r4]
+ bl sub_8028350
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801BF4E
+ ldr r1, _0801BF88 @ =gBattleMons
+ ldr r0, _0801BF8C @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _0801BFEC
+_0801BF4E:
+ ldr r0, _0801BF8C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl b_cancel_multi_turn_move_maybe
+ ldr r2, _0801BF90 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0801BF94 @ =gUnknown_02024C3C
+ ldr r3, _0801BF98 @ =gUnknown_02024C08
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ strh r2, [r0]
+ ldr r1, _0801BF9C @ =gUnknown_02024C44
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ strh r2, [r0]
+ ldr r1, _0801BFA0 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x6]
+ b _0801BFEC
+ .align 2, 0
+_0801BF80: .4byte gBattleMoves
+_0801BF84: .4byte gUnknown_02024BE6
+_0801BF88: .4byte gBattleMons
+_0801BF8C: .4byte gUnknown_02024C07
+_0801BF90: .4byte gUnknown_02024C68
+_0801BF94: .4byte gUnknown_02024C3C
+_0801BF98: .4byte gUnknown_02024C08
+_0801BF9C: .4byte gUnknown_02024C44
+_0801BFA0: .4byte gUnknown_02024D1E
+_0801BFA4:
+ ldr r0, _0801BFD4 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ ldr r2, _0801BFD8 @ =0x00000121
+ adds r1, r3, 0
+ bl sub_80151D4
+ ldrb r1, [r4]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, _0801BFDC @ =0x02000000
+ ldrb r1, [r4]
+ ldr r2, _0801BFE0 @ =0x00016003
+ adds r0, r2
+ strb r1, [r0]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801BFE4 @ =gUnknown_02024C10
+ ldr r0, _0801BFE8 @ =gUnknown_081D9487
+ b _0801BFF2
+ .align 2, 0
+_0801BFD4: .4byte gUnknown_02024C07
+_0801BFD8: .4byte 0x00000121
+_0801BFDC: .4byte 0x02000000
+_0801BFE0: .4byte 0x00016003
+_0801BFE4: .4byte gUnknown_02024C10
+_0801BFE8: .4byte gUnknown_081D9487
+_0801BFEC:
+ ldr r1, _0801C004 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+_0801BFF2:
+ str r0, [r1]
+_0801BFF4:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C004: .4byte gUnknown_02024C10
+ thumb_func_end atk00_attackcanceler
+
+ thumb_func_start mcmd_jump_if_move_not_executed
+mcmd_jump_if_move_not_executed: @ 801C008
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ ldr r1, _0801C054 @ =gUnknown_02024C10
+ ldr r5, [r1]
+ adds r4, r5, r0
+ ldr r0, _0801C058 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C068
+ ldr r1, _0801C05C @ =gUnknown_02024C3C
+ ldr r3, _0801C060 @ =gUnknown_02024C08
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ strh r2, [r0]
+ ldr r1, _0801C064 @ =gUnknown_02024C44
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ strh r2, [r0]
+ ldrb r4, [r5, 0x1]
+ ldrb r0, [r5, 0x2]
+ lsls r0, 8
+ orrs r4, r0
+ ldrb r0, [r5, 0x3]
+ lsls r0, 16
+ orrs r4, r0
+ ldrb r0, [r5, 0x4]
+ lsls r0, 24
+ orrs r4, r0
+ b _0801C082
+ .align 2, 0
+_0801C054: .4byte gUnknown_02024C10
+_0801C058: .4byte gUnknown_02024C68
+_0801C05C: .4byte gUnknown_02024C3C
+_0801C060: .4byte gUnknown_02024C08
+_0801C064: .4byte gUnknown_02024C44
+_0801C068:
+ bl b_feature_update_destiny_bond
+ ldr r0, _0801C090 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ str r6, [sp]
+ movs r0, 0x3
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801C086
+_0801C082:
+ ldr r0, _0801C094 @ =gUnknown_02024C10
+ str r4, [r0]
+_0801C086:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C090: .4byte gUnknown_02024C08
+_0801C094: .4byte gUnknown_02024C10
+ thumb_func_end mcmd_jump_if_move_not_executed
+
+ thumb_func_start atk40_801DBA0
+atk40_801DBA0: @ 801C098
+ push {lr}
+ ldr r1, _0801C0E0 @ =gUnknown_02024D28
+ ldr r0, _0801C0E4 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0801C0F8
+ ldr r2, _0801C0E8 @ =gBattleMoves
+ ldr r0, _0801C0EC @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C0F8
+ ldr r2, _0801C0F0 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x5
+ movs r1, 0
+ bl mcmd_jump_if_move_not_executed
+ ldr r1, _0801C0F4 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x6]
+ b _0801C100
+ .align 2, 0
+_0801C0E0: .4byte gUnknown_02024D28
+_0801C0E4: .4byte gUnknown_02024C08
+_0801C0E8: .4byte gBattleMoves
+_0801C0EC: .4byte gUnknown_02024BE6
+_0801C0F0: .4byte gUnknown_02024C68
+_0801C0F4: .4byte gUnknown_02024D1E
+_0801C0F8:
+ ldr r1, _0801C104 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0801C100:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C104: .4byte gUnknown_02024C10
+ thumb_func_end atk40_801DBA0
+
+ thumb_func_start sub_801C108
+sub_801C108: @ 801C108
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r4, 0
+ ldr r1, _0801C15C @ =gUnknown_02024D28
+ ldr r0, _0801C160 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0801C154
+ ldr r2, _0801C164 @ =gBattleMoves
+ ldr r0, _0801C168 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C154
+ ldr r2, _0801C16C @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x7
+ adds r1, r3, 0
+ bl mcmd_jump_if_move_not_executed
+ ldr r1, _0801C170 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x6]
+ movs r4, 0x1
+_0801C154:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801C15C: .4byte gUnknown_02024D28
+_0801C160: .4byte gUnknown_02024C08
+_0801C164: .4byte gBattleMoves
+_0801C168: .4byte gUnknown_02024BE6
+_0801C16C: .4byte gUnknown_02024C68
+_0801C170: .4byte gUnknown_02024D1E
+ thumb_func_end sub_801C108
+
+ thumb_func_start sub_801C174
+sub_801C174: @ 801C174
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r2, _0801C1D4 @ =gUnknown_02024C98
+ ldr r3, _0801C1D8 @ =gUnknown_02024C08
+ ldrb r4, [r3]
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r1, [r0]
+ movs r0, 0x18
+ ands r1, r0
+ adds r6, r2, 0
+ cmp r1, 0
+ beq _0801C1A6
+ ldr r1, _0801C1DC @ =gUnknown_02024CA8
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0801C1E0 @ =gUnknown_02024C07
+ ldrb r0, [r0, 0x15]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0801C290
+_0801C1A6:
+ ldr r0, _0801C1E4 @ =gUnknown_02024C6C
+ ldr r1, [r0]
+ movs r2, 0x80
+ lsls r2, 9
+ ands r1, r2
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _0801C1EC
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C1EC
+_0801C1C6:
+ ldr r0, _0801C1E8 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ b _0801C290
+ .align 2, 0
+_0801C1D4: .4byte gUnknown_02024C98
+_0801C1D8: .4byte gUnknown_02024C08
+_0801C1DC: .4byte gUnknown_02024CA8
+_0801C1E0: .4byte gUnknown_02024C07
+_0801C1E4: .4byte gUnknown_02024C6C
+_0801C1E8: .4byte gUnknown_02024C68
+_0801C1EC:
+ ldr r0, [r2]
+ ldr r1, _0801C29C @ =0xfffeffff
+ ands r0, r1
+ str r0, [r2]
+ movs r1, 0x80
+ lsls r1, 10
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C20E
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C1C6
+_0801C20E:
+ ldr r0, [r2]
+ ldr r1, _0801C2A0 @ =0xfffdffff
+ ands r0, r1
+ str r0, [r2]
+ movs r1, 0x80
+ lsls r1, 11
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C22E
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C1C6
+_0801C22E:
+ ldr r0, [r2]
+ ldr r1, _0801C2A4 @ =0xfffbffff
+ 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 sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r5, 1
+ cmp r0, 0
+ bne _0801C27E
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801C27E
+ ldr r0, _0801C2A8 @ =word_2024DB8
+ ldrh r1, [r0]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C27E
+ ldr r0, _0801C2AC @ =gBattleMoves
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x98
+ beq _0801C290
+_0801C27E:
+ ldr r1, _0801C2AC @ =gBattleMoves
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x11
+ beq _0801C290
+ cmp r0, 0x4E
+ bne _0801C2B0
+_0801C290:
+ movs r0, 0x7
+ adds r1, r5, 0
+ bl mcmd_jump_if_move_not_executed
+ movs r0, 0x1
+ b _0801C2B2
+ .align 2, 0
+_0801C29C: .4byte 0xfffeffff
+_0801C2A0: .4byte 0xfffdffff
+_0801C2A4: .4byte 0xfffbffff
+_0801C2A8: .4byte word_2024DB8
+_0801C2AC: .4byte gBattleMoves
+_0801C2B0:
+ movs r0, 0
+_0801C2B2:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801C174
+
+ thumb_func_start atk01_accuracycheck
+atk01_accuracycheck: @ 801C2BC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r0, _0801C314 @ =gUnknown_02024C10
+ ldr r5, [r0]
+ ldrb r6, [r5, 0x5]
+ ldrb r1, [r5, 0x6]
+ lsls r1, 8
+ orrs r6, r1
+ adds r1, r6, 0x2
+ lsls r1, 16
+ lsrs r1, 16
+ adds r7, r0, 0
+ cmp r1, 0x1
+ bhi _0801C378
+ ldr r2, _0801C318 @ =gUnknown_02024C98
+ ldr r3, _0801C31C @ =gUnknown_02024C08
+ ldrb r4, [r3]
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r1, [r0]
+ movs r0, 0x18
+ ands r1, r0
+ cmp r1, 0
+ beq _0801C32C
+ ldr r0, _0801C320 @ =0x0000ffff
+ cmp r6, r0
+ bne _0801C32C
+ ldr r1, _0801C324 @ =gUnknown_02024CA8
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0801C328 @ =gUnknown_02024C07
+ ldrb r0, [r0, 0x15]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0801C32C
+ adds r0, r5, 0x7
+ str r0, [r7]
+ b _0801C632
+ .align 2, 0
+_0801C314: .4byte gUnknown_02024C10
+_0801C318: .4byte gUnknown_02024C98
+_0801C31C: .4byte gUnknown_02024C08
+_0801C320: .4byte 0x0000ffff
+_0801C324: .4byte gUnknown_02024CA8
+_0801C328: .4byte gUnknown_02024C07
+_0801C32C:
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r1, _0801C358 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C35C
+ ldr r2, [r7]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r7]
+ b _0801C632
+ .align 2, 0
+_0801C358: .4byte 0x000400c0
+_0801C35C:
+ movs r0, 0
+ bl sub_801C108
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801C36A
+ b _0801C632
+_0801C36A:
+ ldr r1, _0801C374 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x7
+ str r0, [r1]
+ b _0801C632
+ .align 2, 0
+_0801C374: .4byte gUnknown_02024C10
+_0801C378:
+ cmp r6, 0
+ bne _0801C380
+ ldr r0, _0801C398 @ =gUnknown_02024BE6
+ ldrh r6, [r0]
+_0801C380:
+ ldr r0, _0801C39C @ =0x02000000
+ ldr r1, _0801C3A0 @ =0x0001601c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801C3A4
+ movs r2, 0x3F
+ mov r10, r2
+ mov r3, r10
+ ands r3, r0
+ mov r10, r3
+ b _0801C3B2
+ .align 2, 0
+_0801C398: .4byte gUnknown_02024BE6
+_0801C39C: .4byte 0x02000000
+_0801C3A0: .4byte 0x0001601c
+_0801C3A4:
+ ldr r1, _0801C3F8 @ =gBattleMoves
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ mov r10, r0
+_0801C3B2:
+ adds r0, r6, 0
+ bl sub_801C108
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801C3C0
+ b _0801C632
+_0801C3C0:
+ adds r0, r6, 0
+ bl sub_801C174
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801C3CE
+ b _0801C632
+_0801C3CE:
+ ldr r3, _0801C3FC @ =gBattleMons
+ ldr r0, _0801C400 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ movs r2, 0x58
+ adds r4, r0, 0
+ muls r4, r2
+ adds r0, r3, 0
+ adds r0, 0x50
+ adds r0, r4, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 22
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C408
+ ldr r0, _0801C404 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ muls r0, r2
+ adds r0, r3
+ ldrb r5, [r0, 0x1E]
+ b _0801C41E
+ .align 2, 0
+_0801C3F8: .4byte gBattleMoves
+_0801C3FC: .4byte gBattleMons
+_0801C400: .4byte gUnknown_02024C08
+_0801C404: .4byte gUnknown_02024C07
+_0801C408:
+ ldr r0, _0801C56C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ muls r0, r2
+ adds r0, r3
+ ldrb r0, [r0, 0x1E]
+ adds r0, 0x6
+ adds r1, r4, r3
+ ldrb r1, [r1, 0x1F]
+ subs r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_0801C41E:
+ lsls r0, r5, 24
+ cmp r0, 0
+ bge _0801C426
+ movs r5, 0
+_0801C426:
+ lsls r0, r5, 24
+ asrs r0, 24
+ cmp r0, 0xC
+ ble _0801C430
+ movs r5, 0xC
+_0801C430:
+ ldr r1, _0801C570 @ =gBattleMoves
+ lsls r4, r6, 1
+ adds r0, r4, r6
+ lsls r0, 2
+ adds r7, r0, r1
+ ldrb r0, [r7, 0x3]
+ mov r8, r0
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ str r4, [sp, 0x4]
+ cmp r0, 0
+ bne _0801C482
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801C482
+ ldr r0, _0801C574 @ =word_2024DB8
+ ldrh r1, [r0]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C482
+ ldrb r0, [r7]
+ cmp r0, 0x98
+ bne _0801C482
+ movs r1, 0x32
+ mov r8, r1
+_0801C482:
+ ldr r1, _0801C578 @ =gAccuracyStageRatios
+ lsls r0, r5, 24
+ asrs r0, 22
+ adds r0, r1
+ ldrb r1, [r0]
+ mov r4, r8
+ muls r4, r1
+ ldrb r1, [r0, 0x1]
+ adds r0, r4, 0
+ bl __divsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r7, _0801C57C @ =gBattleMons
+ ldr r0, _0801C56C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ movs r5, 0x58
+ muls r0, r5
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0xE
+ bne _0801C4C0
+ lsls r0, r4, 6
+ adds r0, r4
+ lsls r0, 1
+ movs r1, 0x64
+ bl __divsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0801C4C0:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0801C518
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801C518
+ ldr r0, _0801C580 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ muls r0, r5
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _0801C518
+ ldr r0, _0801C574 @ =word_2024DB8
+ ldrh r1, [r0]
+ movs r0, 0x18
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C518
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ movs r1, 0x64
+ bl __divsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0801C518:
+ ldr r2, _0801C57C @ =gBattleMons
+ ldr r0, _0801C56C @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ mov r9, r2
+ cmp r0, 0x37
+ bne _0801C544
+ mov r2, r10
+ cmp r2, 0x8
+ bhi _0801C544
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ movs r1, 0x64
+ bl __divsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0801C544:
+ ldr r3, _0801C580 @ =gUnknown_02024C08
+ mov r8, r3
+ ldrb r2, [r3]
+ movs r7, 0x58
+ adds r0, r2, 0
+ muls r0, r7
+ mov r3, r9
+ adds r1, r0, r3
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _0801C588
+ ldr r1, _0801C584 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r5, [r0, 0x7]
+ ldrb r2, [r0, 0x1A]
+ b _0801C5A4
+ .align 2, 0
+_0801C56C: .4byte gUnknown_02024C07
+_0801C570: .4byte gBattleMoves
+_0801C574: .4byte word_2024DB8
+_0801C578: .4byte gAccuracyStageRatios
+_0801C57C: .4byte gBattleMons
+_0801C580: .4byte gUnknown_02024C08
+_0801C584: .4byte gEnigmaBerries
+_0801C588:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r1, r8
+ ldrb r0, [r1]
+ muls r0, r7
+ add r0, r9
+ ldrh r0, [r0, 0x2E]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r2, r0, 24
+_0801C5A4:
+ ldr r0, _0801C608 @ =gUnknown_02024C0B
+ ldr r1, _0801C60C @ =gUnknown_02024C08
+ ldrb r1, [r1]
+ strb r1, [r0]
+ cmp r5, 0x16
+ bne _0801C5C0
+ movs r0, 0x64
+ subs r0, r2
+ muls r0, r4
+ movs r1, 0x64
+ bl __divsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0801C5C0:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r0, 0x1
+ cmp r0, r4
+ ble _0801C62A
+ ldr r2, _0801C610 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0801C614 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C620
+ ldr r1, _0801C618 @ =gBattleMoves
+ ldr r2, [sp, 0x4]
+ adds r0, r2, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x8
+ beq _0801C602
+ cmp r0, 0x20
+ bne _0801C620
+_0801C602:
+ ldr r1, _0801C61C @ =gUnknown_02024D1E
+ movs r0, 0x2
+ b _0801C624
+ .align 2, 0
+_0801C608: .4byte gUnknown_02024C0B
+_0801C60C: .4byte gUnknown_02024C08
+_0801C610: .4byte gUnknown_02024C68
+_0801C614: .4byte gUnknown_020239F8
+_0801C618: .4byte gBattleMoves
+_0801C61C: .4byte gUnknown_02024D1E
+_0801C620:
+ ldr r1, _0801C644 @ =gUnknown_02024D1E
+ movs r0, 0
+_0801C624:
+ strb r0, [r1, 0x6]
+ bl b_wonderguard_and_levitate
+_0801C62A:
+ movs r0, 0x7
+ adds r1, r6, 0
+ bl mcmd_jump_if_move_not_executed
+_0801C632:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C644: .4byte gUnknown_02024D1E
+ thumb_func_end atk01_accuracycheck
+
+ thumb_func_start atk02_attackstring
+atk02_attackstring: @ 801C648
+ push {r4,r5,lr}
+ ldr r0, _0801C688 @ =gUnknown_02024A64
+ ldr r5, [r0]
+ cmp r5, 0
+ bne _0801C680
+ ldr r4, _0801C68C @ =gUnknown_02024C6C
+ ldr r0, [r4]
+ movs r1, 0xC0
+ lsls r1, 3
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C674
+ ldr r0, _0801C690 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x4
+ bl b_std_message
+ ldr r0, [r4]
+ movs r1, 0x80
+ lsls r1, 3
+ orrs r0, r1
+ str r0, [r4]
+_0801C674:
+ ldr r0, _0801C694 @ =gUnknown_02024C10
+ ldr r1, [r0]
+ adds r1, 0x1
+ str r1, [r0]
+ ldr r0, _0801C698 @ =gUnknown_02024D1E
+ strb r5, [r0, 0x7]
+_0801C680:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C688: .4byte gUnknown_02024A64
+_0801C68C: .4byte gUnknown_02024C6C
+_0801C690: .4byte gUnknown_02024C07
+_0801C694: .4byte gUnknown_02024C10
+_0801C698: .4byte gUnknown_02024D1E
+ thumb_func_end atk02_attackstring
+
+ thumb_func_start atk03_ppreduce
+atk03_ppreduce: @ 801C69C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r6, 0x1
+ ldr r0, _0801C6EC @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801C6B4
+ b _0801C84E
+_0801C6B4:
+ ldr r1, _0801C6F0 @ =gUnknown_02024D68
+ ldr r2, _0801C6F4 @ =gUnknown_02024C07
+ ldrb r3, [r2]
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r4, r0, 31
+ mov r9, r2
+ cmp r4, 0
+ bne _0801C756
+ ldr r2, _0801C6F8 @ =gBattleMoves
+ ldr r0, _0801C6FC @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x20
+ beq _0801C706
+ cmp r0, 0x20
+ bgt _0801C700
+ cmp r0, 0x8
+ beq _0801C71C
+ b _0801C736
+ .align 2, 0
+_0801C6EC: .4byte gUnknown_02024A64
+_0801C6F0: .4byte gUnknown_02024D68
+_0801C6F4: .4byte gUnknown_02024C07
+_0801C6F8: .4byte gBattleMoves
+_0801C6FC: .4byte gUnknown_02024BE6
+_0801C700:
+ cmp r0, 0x40
+ beq _0801C71C
+ b _0801C736
+_0801C706:
+ str r4, [sp]
+ movs r0, 0x12
+ adds r1, r3, 0
+ movs r2, 0x2E
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0x1
+ b _0801C756
+_0801C71C:
+ mov r0, r9
+ ldrb r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x10
+ movs r2, 0x2E
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0
+ b _0801C756
+_0801C736:
+ ldr r1, _0801C7B8 @ =gUnknown_02024C08
+ mov r2, r9
+ ldrb r0, [r2]
+ ldrb r7, [r1]
+ cmp r0, r7
+ beq _0801C756
+ ldr r2, _0801C7BC @ =gBattleMons
+ ldrb r1, [r1]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x2E
+ bne _0801C756
+ adds r6, 0x1
+_0801C756:
+ ldr r0, _0801C7C0 @ =gUnknown_02024C6C
+ ldr r4, [r0]
+ movs r0, 0xA0
+ lsls r0, 4
+ ands r4, r0
+ cmp r4, 0
+ bne _0801C83C
+ ldr r2, _0801C7BC @ =gBattleMons
+ ldr r3, _0801C7C4 @ =gUnknown_02024BE4
+ ldr r1, _0801C7C8 @ =gUnknown_02024C07
+ ldrb r5, [r1]
+ movs r0, 0x58
+ mov r8, r0
+ mov r0, r8
+ muls r0, r5
+ ldrb r7, [r3]
+ adds r0, r7
+ movs r7, 0x24
+ adds r7, r2
+ mov r12, r7
+ add r0, r12
+ ldrb r0, [r0]
+ mov r9, r1
+ mov r10, r2
+ adds r7, r3, 0
+ cmp r0, 0
+ beq _0801C83C
+ ldr r0, _0801C7CC @ =gUnknown_02024D28
+ lsls r1, r5, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ movs r2, 0x8
+ orrs r0, r2
+ strb r0, [r1, 0x2]
+ mov r1, r9
+ ldrb r0, [r1]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ ldrb r1, [r7]
+ adds r0, r1
+ mov r1, r12
+ adds r2, r0, r1
+ ldrb r0, [r2]
+ cmp r0, r6
+ ble _0801C7D0
+ subs r0, r6
+ strb r0, [r2]
+ b _0801C7D2
+ .align 2, 0
+_0801C7B8: .4byte gUnknown_02024C08
+_0801C7BC: .4byte gBattleMons
+_0801C7C0: .4byte gUnknown_02024C6C
+_0801C7C4: .4byte gUnknown_02024BE4
+_0801C7C8: .4byte gUnknown_02024C07
+_0801C7CC: .4byte gUnknown_02024D28
+_0801C7D0:
+ strb r4, [r2]
+_0801C7D2:
+ mov r2, r9
+ ldrb r3, [r2]
+ movs r4, 0x58
+ adds r0, r3, 0
+ muls r0, r4
+ mov r1, r10
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C83C
+ ldr r1, _0801C860 @ =gUnknown_02024CA8
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _0801C864 @ =gBitTable
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0801C83C
+ ldr r0, _0801C868 @ =gUnknown_02024A60
+ strb r3, [r0]
+ ldrb r1, [r7]
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ mov r2, r9
+ ldrb r0, [r2]
+ muls r0, r4
+ mov r2, r10
+ adds r2, 0x24
+ adds r0, r2
+ ldrb r7, [r7]
+ adds r0, r7
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ mov r7, r9
+ ldrb r0, [r7]
+ bl dp01_battle_side_mark_buffer_for_execution
+_0801C83C:
+ ldr r2, _0801C86C @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _0801C870 @ =0xfffff7ff
+ ands r0, r1
+ str r0, [r2]
+ ldr r1, _0801C874 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_0801C84E:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C860: .4byte gUnknown_02024CA8
+_0801C864: .4byte gBitTable
+_0801C868: .4byte gUnknown_02024A60
+_0801C86C: .4byte gUnknown_02024C6C
+_0801C870: .4byte 0xfffff7ff
+_0801C874: .4byte gUnknown_02024C10
+ thumb_func_end atk03_ppreduce
+
+ thumb_func_start atk04_critcalc
+atk04_critcalc: @ 801C878
+ push {r4-r7,lr}
+ ldr r1, _0801C89C @ =gBattleMons
+ ldr r0, _0801C8A0 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0xAF
+ bne _0801C8A8
+ ldr r1, _0801C8A4 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r6, [r0, 0x7]
+ b _0801C8B0
+ .align 2, 0
+_0801C89C: .4byte gBattleMons
+_0801C8A0: .4byte gUnknown_02024C07
+_0801C8A4: .4byte gEnigmaBerries
+_0801C8A8:
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0801C8B0:
+ ldr r1, _0801C93C @ =gUnknown_02024C0B
+ ldr r3, _0801C940 @ =gUnknown_02024C07
+ ldrb r0, [r3]
+ strb r0, [r1]
+ ldr r4, _0801C944 @ =gBattleMons
+ ldrb r1, [r3]
+ movs r0, 0x58
+ adds r7, r1, 0
+ muls r7, r0
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r7, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 13
+ ands r0, r1
+ negs r0, r0
+ asrs r5, r0, 31
+ movs r0, 0x2
+ ands r5, r0
+ ldr r2, _0801C948 @ =gBattleMoves
+ ldr r0, _0801C94C @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ mov r12, r3
+ cmp r1, 0x2B
+ bne _0801C8F0
+ adds r5, 0x1
+_0801C8F0:
+ adds r0, r5, 0
+ cmp r1, 0x4B
+ bne _0801C8F8
+ adds r0, 0x1
+_0801C8F8:
+ cmp r1, 0xC8
+ bne _0801C8FE
+ adds r0, 0x1
+_0801C8FE:
+ adds r2, r0, 0
+ cmp r1, 0xD1
+ bne _0801C906
+ adds r2, 0x1
+_0801C906:
+ movs r1, 0
+ cmp r6, 0x3F
+ bne _0801C916
+ adds r0, r7, r4
+ ldrh r0, [r0]
+ cmp r0, 0x71
+ bne _0801C916
+ movs r1, 0x1
+_0801C916:
+ lsls r5, r1, 1
+ movs r3, 0
+ cmp r6, 0x42
+ bne _0801C930
+ mov r0, r12
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, 0x53
+ bne _0801C930
+ movs r3, 0x1
+_0801C930:
+ lsls r1, r3, 1
+ cmp r6, 0x29
+ bne _0801C950
+ adds r0, r5, 0x1
+ adds r0, r2, r0
+ b _0801C952
+ .align 2, 0
+_0801C93C: .4byte gUnknown_02024C0B
+_0801C940: .4byte gUnknown_02024C07
+_0801C944: .4byte gBattleMons
+_0801C948: .4byte gBattleMoves
+_0801C94C: .4byte gUnknown_02024BE6
+_0801C950:
+ adds r0, r2, r5
+_0801C952:
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ adds r5, r0, 0
+ cmp r5, 0x4
+ bls _0801C960
+ movs r5, 0x4
+_0801C960:
+ ldr r0, _0801C9BC @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r4
+ adds r0, 0x20
+ ldrb r4, [r0]
+ cmp r4, 0x4
+ beq _0801C9D0
+ cmp r4, 0x4B
+ beq _0801C9D0
+ ldr r1, _0801C9C0 @ =gUnknown_02024C98
+ mov r2, r12
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C9D0
+ ldr r0, _0801C9C4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x84
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C9D0
+ bl Random
+ ldr r2, _0801C9C8 @ =gCriticalHitChance
+ lsls r1, r5, 1
+ adds r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r1]
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _0801C9D0
+ ldr r1, _0801C9CC @ =gCritMultiplier
+ movs r0, 0x2
+ b _0801C9D4
+ .align 2, 0
+_0801C9BC: .4byte gUnknown_02024C08
+_0801C9C0: .4byte gUnknown_02024C98
+_0801C9C4: .4byte gUnknown_020239F8
+_0801C9C8: .4byte gCriticalHitChance
+_0801C9CC: .4byte gCritMultiplier
+_0801C9D0:
+ ldr r1, _0801C9E4 @ =gCritMultiplier
+ movs r0, 0x1
+_0801C9D4:
+ strb r0, [r1]
+ ldr r1, _0801C9E8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C9E4: .4byte gCritMultiplier
+_0801C9E8: .4byte gUnknown_02024C10
+ thumb_func_end atk04_critcalc
+
+ thumb_func_start atk05_damagecalc1
+atk05_damagecalc1: @ 801C9EC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ ldr r4, _0801CABC @ =gUnknown_02024C7A
+ ldr r6, _0801CAC0 @ =gUnknown_02024C08
+ ldrb r0, [r6]
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ ldr r0, _0801CAC4 @ =gUnknown_02024C07
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r4, 0x58
+ muls r0, r4
+ ldr r2, _0801CAC8 @ =gBattleMons
+ adds r0, r2
+ ldrb r1, [r6]
+ muls r1, r4
+ adds r1, r2
+ ldr r2, _0801CACC @ =gUnknown_02024BE6
+ mov r9, r2
+ ldrh r2, [r2]
+ ldr r4, _0801CAD0 @ =gUnknown_02024DEC
+ ldrh r4, [r4]
+ str r4, [sp]
+ ldr r5, _0801CAD4 @ =0x02000000
+ ldr r7, _0801CAD8 @ =0x0001601c
+ adds r4, r5, r7
+ ldrb r4, [r4]
+ str r4, [sp, 0x4]
+ mov r7, r8
+ ldrb r4, [r7]
+ str r4, [sp, 0x8]
+ ldrb r4, [r6]
+ str r4, [sp, 0xC]
+ bl CalculateBaseDamage
+ ldr r4, _0801CADC @ =gUnknown_02024BEC
+ ldr r1, _0801CAE0 @ =gCritMultiplier
+ ldrb r1, [r1]
+ muls r1, r0
+ ldr r0, _0801CAE4 @ =0x0001601f
+ adds r5, r0
+ ldrb r0, [r5]
+ adds r3, r1, 0
+ muls r3, r0
+ str r3, [r4]
+ ldr r1, _0801CAE8 @ =gUnknown_02024C98
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CA82
+ ldr r2, _0801CAEC @ =gBattleMoves
+ mov r7, r9
+ ldrh r1, [r7]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0xD
+ bne _0801CA82
+ lsls r0, r3, 1
+ str r0, [r4]
+_0801CA82:
+ ldr r1, _0801CAF0 @ =gUnknown_02024D28
+ ldr r0, _0801CAC4 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 28
+ cmp r0, 0
+ bge _0801CAA4
+ ldr r4, _0801CADC @ =gUnknown_02024BEC
+ ldr r1, [r4]
+ lsls r0, r1, 4
+ subs r0, r1
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r4]
+_0801CAA4:
+ ldr r1, _0801CAF4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801CABC: .4byte gUnknown_02024C7A
+_0801CAC0: .4byte gUnknown_02024C08
+_0801CAC4: .4byte gUnknown_02024C07
+_0801CAC8: .4byte gBattleMons
+_0801CACC: .4byte gUnknown_02024BE6
+_0801CAD0: .4byte gUnknown_02024DEC
+_0801CAD4: .4byte 0x02000000
+_0801CAD8: .4byte 0x0001601c
+_0801CADC: .4byte gUnknown_02024BEC
+_0801CAE0: .4byte gCritMultiplier
+_0801CAE4: .4byte 0x0001601f
+_0801CAE8: .4byte gUnknown_02024C98
+_0801CAEC: .4byte gBattleMoves
+_0801CAF0: .4byte gUnknown_02024D28
+_0801CAF4: .4byte gUnknown_02024C10
+ thumb_func_end atk05_damagecalc1
+
+ thumb_func_start sub_801CAF8
+sub_801CAF8: @ 801CAF8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _0801CBBC @ =gUnknown_02024C7A
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ movs r1, 0x58
+ adds r0, r7, 0
+ muls r0, r1
+ ldr r2, _0801CBC0 @ =gBattleMons
+ adds r0, r2
+ muls r1, r5
+ adds r1, r2
+ ldr r2, _0801CBC4 @ =gUnknown_02024BE6
+ mov r9, r2
+ ldrh r2, [r2]
+ ldr r4, _0801CBC8 @ =gUnknown_02024DEC
+ mov r8, r4
+ ldrh r4, [r4]
+ str r4, [sp]
+ ldr r6, _0801CBCC @ =0x02000000
+ ldr r4, _0801CBD0 @ =0x0001601c
+ ldrb r4, [r4, r6]
+ str r4, [sp, 0x4]
+ str r7, [sp, 0x8]
+ str r5, [sp, 0xC]
+ bl CalculateBaseDamage
+ ldr r4, _0801CBD4 @ =gUnknown_02024BEC
+ movs r1, 0
+ mov r2, r8
+ strh r1, [r2]
+ ldr r1, _0801CBD8 @ =gCritMultiplier
+ ldrb r1, [r1]
+ muls r1, r0
+ ldr r0, _0801CBDC @ =0x0001601f
+ adds r6, r0
+ ldrb r0, [r6]
+ adds r3, r1, 0
+ muls r3, r0
+ str r3, [r4]
+ ldr r1, _0801CBE0 @ =gUnknown_02024C98
+ lsls r0, r7, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CB8E
+ ldr r2, _0801CBE4 @ =gBattleMoves
+ mov r6, r9
+ ldrh r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0xD
+ bne _0801CB8E
+ lsls r0, r3, 1
+ str r0, [r4]
+_0801CB8E:
+ ldr r0, _0801CBE8 @ =gUnknown_02024D28
+ lsls r1, r7, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 28
+ cmp r0, 0
+ bge _0801CBAC
+ ldr r4, _0801CBD4 @ =gUnknown_02024BEC
+ ldr r1, [r4]
+ lsls r0, r1, 4
+ subs r0, r1
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r4]
+_0801CBAC:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801CBBC: .4byte gUnknown_02024C7A
+_0801CBC0: .4byte gBattleMons
+_0801CBC4: .4byte gUnknown_02024BE6
+_0801CBC8: .4byte gUnknown_02024DEC
+_0801CBCC: .4byte 0x02000000
+_0801CBD0: .4byte 0x0001601c
+_0801CBD4: .4byte gUnknown_02024BEC
+_0801CBD8: .4byte gCritMultiplier
+_0801CBDC: .4byte 0x0001601f
+_0801CBE0: .4byte gUnknown_02024C98
+_0801CBE4: .4byte gBattleMoves
+_0801CBE8: .4byte gUnknown_02024D28
+ thumb_func_end sub_801CAF8
+
+ thumb_func_start battle_attack_damage_modulate_by_effectivity
+battle_attack_damage_modulate_by_effectivity: @ 801CBEC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, _0801CC1C @ =gUnknown_02024BEC
+ ldr r0, [r5]
+ muls r0, r4
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r5]
+ cmp r0, 0
+ bne _0801CC0C
+ cmp r4, 0
+ beq _0801CC0C
+ movs r0, 0x1
+ str r0, [r5]
+_0801CC0C:
+ cmp r4, 0x5
+ beq _0801CC3C
+ cmp r4, 0x5
+ bgt _0801CC20
+ cmp r4, 0
+ beq _0801CC26
+ b _0801CCBE
+ .align 2, 0
+_0801CC1C: .4byte gUnknown_02024BEC
+_0801CC20:
+ cmp r4, 0x14
+ beq _0801CC7C
+ b _0801CCBE
+_0801CC26:
+ ldr r2, _0801CC38 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ movs r1, 0xFB
+ ands r0, r1
+ movs r1, 0xFD
+ ands r0, r1
+ b _0801CCBC
+ .align 2, 0
+_0801CC38: .4byte gUnknown_02024C68
+_0801CC3C:
+ ldr r2, _0801CC6C @ =gBattleMoves
+ ldr r0, _0801CC70 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _0801CCBE
+ ldr r2, _0801CC74 @ =gUnknown_02024C68
+ ldrb r1, [r2]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801CCBE
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CC78
+ movs r0, 0xFD
+ ands r0, r1
+ b _0801CCBC
+ .align 2, 0
+_0801CC6C: .4byte gBattleMoves
+_0801CC70: .4byte gUnknown_02024BE6
+_0801CC74: .4byte gUnknown_02024C68
+_0801CC78:
+ movs r0, 0x4
+ b _0801CCBA
+_0801CC7C:
+ ldr r2, _0801CCAC @ =gBattleMoves
+ ldr r0, _0801CCB0 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _0801CCBE
+ ldr r2, _0801CCB4 @ =gUnknown_02024C68
+ ldrb r1, [r2]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801CCBE
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CCB8
+ movs r0, 0xFB
+ ands r0, r1
+ b _0801CCBC
+ .align 2, 0
+_0801CCAC: .4byte gBattleMoves
+_0801CCB0: .4byte gUnknown_02024BE6
+_0801CCB4: .4byte gUnknown_02024C68
+_0801CCB8:
+ movs r0, 0x2
+_0801CCBA:
+ orrs r0, r1
+_0801CCBC:
+ strb r0, [r2]
+_0801CCBE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end battle_attack_damage_modulate_by_effectivity
+
+ thumb_func_start atk06_damagecalc2
+atk06_damagecalc2: @ 801CCC4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r3, 0
+ ldr r1, _0801CCF0 @ =gUnknown_02024BE6
+ ldrh r0, [r1]
+ cmp r0, 0xA5
+ bne _0801CCD8
+ b _0801CEF4
+_0801CCD8:
+ ldr r0, _0801CCF4 @ =0x02000000
+ ldr r2, _0801CCF8 @ =0x0001601c
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801CCFC
+ movs r1, 0x3F
+ mov r8, r1
+ mov r2, r8
+ ands r2, r0
+ mov r8, r2
+ b _0801CD0C
+ .align 2, 0
+_0801CCF0: .4byte gUnknown_02024BE6
+_0801CCF4: .4byte 0x02000000
+_0801CCF8: .4byte 0x0001601c
+_0801CCFC:
+ ldr r2, _0801CD94 @ =gBattleMoves
+ ldrh r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ mov r8, r0
+_0801CD0C:
+ ldr r2, _0801CD98 @ =gBattleMons
+ ldr r0, _0801CD9C @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ adds r5, r2, 0
+ cmp r0, r8
+ beq _0801CD2E
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, r8
+ bne _0801CD44
+_0801CD2E:
+ ldr r4, _0801CDA0 @ =gUnknown_02024BEC
+ ldr r1, [r4]
+ lsls r0, r1, 4
+ subs r0, r1
+ str r0, [r4]
+ movs r1, 0xA
+ str r3, [sp, 0x4]
+ bl __divsi3
+ str r0, [r4]
+ ldr r3, [sp, 0x4]
+_0801CD44:
+ ldr r2, _0801CDA4 @ =gUnknown_02024C08
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r4, r2, 0
+ cmp r0, 0x1A
+ bne _0801CDBC
+ mov r1, r8
+ cmp r1, 0x4
+ bne _0801CDBC
+ ldr r3, _0801CDA8 @ =byte_2024C06
+ strb r0, [r3]
+ ldr r2, _0801CDAC @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x9
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0801CDB0 @ =gUnknown_02024C3C
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ strh r2, [r0]
+ ldr r1, _0801CDB4 @ =gUnknown_02024C44
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ strh r2, [r0]
+ ldr r0, _0801CDB8 @ =gUnknown_02024D1E
+ mov r2, r8
+ strb r2, [r0, 0x6]
+ ldrb r0, [r4]
+ ldrb r1, [r3]
+ bl sub_81074C4
+ b _0801CE58
+ .align 2, 0
+_0801CD94: .4byte gBattleMoves
+_0801CD98: .4byte gBattleMons
+_0801CD9C: .4byte gUnknown_02024C07
+_0801CDA0: .4byte gUnknown_02024BEC
+_0801CDA4: .4byte gUnknown_02024C08
+_0801CDA8: .4byte byte_2024C06
+_0801CDAC: .4byte gUnknown_02024C68
+_0801CDB0: .4byte gUnknown_02024C3C
+_0801CDB4: .4byte gUnknown_02024C44
+_0801CDB8: .4byte gUnknown_02024D1E
+_0801CDBC:
+ ldr r1, _0801CDC8 @ =gTypeEffectiveness
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ b _0801CE38
+ .align 2, 0
+_0801CDC8: .4byte gTypeEffectiveness
+_0801CDCC:
+ adds r3, 0x3
+ b _0801CE34
+_0801CDD0:
+ ldr r5, _0801CF08 @ =gTypeEffectiveness
+ adds r0, r3, r5
+ ldrb r0, [r0]
+ cmp r0, r8
+ bne _0801CE2C
+ adds r1, r3, 0x1
+ adds r1, r5
+ ldr r2, _0801CF0C @ =gBattleMons
+ ldr r7, _0801CF10 @ =gUnknown_02024C08
+ ldrb r0, [r7]
+ movs r6, 0x58
+ muls r0, r6
+ adds r0, r2
+ adds r0, 0x21
+ ldrb r4, [r1]
+ ldrb r0, [r0]
+ cmp r4, r0
+ bne _0801CE06
+ adds r0, r3, 0x2
+ adds r0, r5
+ ldrb r0, [r0]
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ bl battle_attack_damage_modulate_by_effectivity
+ ldr r3, [sp, 0x4]
+ ldr r2, [sp]
+_0801CE06:
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r2
+ adds r1, r0, 0
+ adds r1, 0x22
+ ldrb r1, [r1]
+ cmp r4, r1
+ bne _0801CE2C
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r4
+ beq _0801CE2C
+ adds r0, r3, 0x2
+ adds r0, r5
+ ldrb r0, [r0]
+ str r3, [sp, 0x4]
+ bl battle_attack_damage_modulate_by_effectivity
+ ldr r3, [sp, 0x4]
+_0801CE2C:
+ adds r3, 0x3
+ ldr r5, _0801CF0C @ =gBattleMons
+ ldr r4, _0801CF10 @ =gUnknown_02024C08
+ ldr r2, _0801CF08 @ =gTypeEffectiveness
+_0801CE34:
+ adds r0, r3, r2
+ ldrb r0, [r0]
+_0801CE38:
+ cmp r0, 0xFF
+ beq _0801CE58
+ cmp r0, 0xFE
+ bne _0801CDD0
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r5, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 22
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CDCC
+_0801CE58:
+ ldr r2, _0801CF0C @ =gBattleMons
+ ldr r5, _0801CF10 @ =gUnknown_02024C08
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r6, [r0]
+ cmp r6, 0x19
+ bne _0801CED6
+ ldr r0, _0801CF14 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ ldr r7, _0801CF18 @ =gUnknown_02024BE6
+ ldrh r1, [r7]
+ bl move_weather_interaction
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0801CED6
+ ldr r1, _0801CF1C @ =gUnknown_02024C68
+ mov r8, r1
+ ldrb r4, [r1]
+ ands r0, r4
+ cmp r0, 0
+ beq _0801CE94
+ movs r0, 0x6
+ ands r0, r4
+ cmp r0, 0x6
+ bne _0801CED6
+_0801CE94:
+ ldr r2, _0801CF20 @ =gBattleMoves
+ ldrh r1, [r7]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _0801CED6
+ ldr r3, _0801CF24 @ =byte_2024C06
+ strb r6, [r3]
+ movs r0, 0x1
+ orrs r0, r4
+ mov r2, r8
+ strb r0, [r2]
+ ldr r1, _0801CF28 @ =gUnknown_02024C3C
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ strh r2, [r0]
+ ldr r1, _0801CF2C @ =gUnknown_02024C44
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ strh r2, [r0]
+ ldr r1, _0801CF30 @ =gUnknown_02024D1E
+ movs r0, 0x3
+ strb r0, [r1, 0x6]
+ ldrb r0, [r5]
+ ldrb r1, [r3]
+ bl sub_81074C4
+_0801CED6:
+ ldr r0, _0801CF1C @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CEF4
+ ldr r2, _0801CF34 @ =gUnknown_02024D28
+ ldr r0, _0801CF14 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r1, 4
+ adds r1, r2
+ ldrb r0, [r1, 0x1]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r1, 0x1]
+_0801CEF4:
+ ldr r1, _0801CF38 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801CF08: .4byte gTypeEffectiveness
+_0801CF0C: .4byte gBattleMons
+_0801CF10: .4byte gUnknown_02024C08
+_0801CF14: .4byte gUnknown_02024C07
+_0801CF18: .4byte gUnknown_02024BE6
+_0801CF1C: .4byte gUnknown_02024C68
+_0801CF20: .4byte gBattleMoves
+_0801CF24: .4byte byte_2024C06
+_0801CF28: .4byte gUnknown_02024C3C
+_0801CF2C: .4byte gUnknown_02024C44
+_0801CF30: .4byte gUnknown_02024D1E
+_0801CF34: .4byte gUnknown_02024D28
+_0801CF38: .4byte gUnknown_02024C10
+ thumb_func_end atk06_damagecalc2
+
+ thumb_func_start b_wonderguard_and_levitate
+b_wonderguard_and_levitate: @ 801CF3C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r6, 0
+ movs r5, 0
+ ldr r0, _0801CF80 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ mov r9, r0
+ cmp r1, 0xA5
+ bne _0801CF54
+ b _0801D1A4
+_0801CF54:
+ ldr r2, _0801CF84 @ =gBattleMoves
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _0801CF66
+ b _0801D1A4
+_0801CF66:
+ ldr r0, _0801CF88 @ =0x02000000
+ ldr r2, _0801CF8C @ =0x0001601c
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801CF90
+ movs r1, 0x3F
+ mov r12, r1
+ mov r2, r12
+ ands r2, r0
+ mov r12, r2
+ b _0801CF94
+ .align 2, 0
+_0801CF80: .4byte gUnknown_02024BE6
+_0801CF84: .4byte gBattleMoves
+_0801CF88: .4byte 0x02000000
+_0801CF8C: .4byte 0x0001601c
+_0801CF90:
+ ldrb r1, [r1, 0x2]
+ mov r12, r1
+_0801CF94:
+ ldr r2, _0801CFC8 @ =gBattleMons
+ ldr r3, _0801CFCC @ =gUnknown_02024C08
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r1, [r0]
+ adds r7, r2, 0
+ mov r8, r3
+ cmp r1, 0x1A
+ bne _0801CFD8
+ mov r0, r12
+ cmp r0, 0x4
+ bne _0801CFD8
+ ldr r0, _0801CFD0 @ =byte_2024C06
+ strb r1, [r0]
+ ldr r0, _0801CFD4 @ =gUnknown_02024D1E
+ mov r1, r12
+ strb r1, [r0, 0x6]
+ ldrb r0, [r3]
+ movs r1, 0x1A
+ bl sub_81074C4
+ b _0801D1A4
+ .align 2, 0
+_0801CFC8: .4byte gBattleMons
+_0801CFCC: .4byte gUnknown_02024C08
+_0801CFD0: .4byte byte_2024C06
+_0801CFD4: .4byte gUnknown_02024D1E
+_0801CFD8:
+ ldr r1, _0801CFE4 @ =gTypeEffectiveness
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ b _0801D12A
+ .align 2, 0
+_0801CFE4: .4byte gTypeEffectiveness
+_0801CFE8:
+ adds r0, r5, r4
+ ldrb r0, [r0]
+ cmp r0, r12
+ beq _0801CFF2
+ b _0801D124
+_0801CFF2:
+ adds r2, r5, 0x1
+ adds r3, r2, r4
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ adds r0, 0x21
+ ldrb r1, [r3]
+ adds r3, r2, 0
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0801D032
+ adds r0, r5, 0x2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0801D032
+ ldr r2, _0801D1B0 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0801D1B4 @ =gUnknown_02024D28
+ ldr r0, _0801D1B8 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ lsls r2, 4
+ adds r2, r1
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+_0801D032:
+ adds r2, r3, r4
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ adds r1, r0, 0
+ adds r1, 0x22
+ ldrb r2, [r2]
+ ldrb r1, [r1]
+ cmp r2, r1
+ bne _0801D078
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r2
+ beq _0801D078
+ adds r0, r5, 0x2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0801D078
+ ldr r2, _0801D1B0 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0801D1B4 @ =gUnknown_02024D28
+ ldr r0, _0801D1B8 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ lsls r2, 4
+ adds r2, r1
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+_0801D078:
+ adds r2, r3, r4
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ adds r0, 0x21
+ ldrb r1, [r2]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0801D09C
+ adds r0, r5, 0x2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x14
+ bne _0801D09C
+ movs r0, 0x1
+ orrs r6, r0
+_0801D09C:
+ adds r2, r3, r4
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ adds r1, r0, 0
+ adds r1, 0x22
+ ldrb r2, [r2]
+ ldrb r1, [r1]
+ cmp r2, r1
+ bne _0801D0CA
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r2
+ beq _0801D0CA
+ adds r0, r5, 0x2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x14
+ bne _0801D0CA
+ movs r0, 0x1
+ orrs r6, r0
+_0801D0CA:
+ adds r2, r3, r4
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ adds r0, 0x21
+ ldrb r1, [r2]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0801D0F2
+ adds r0, r5, 0x2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bne _0801D0F2
+ movs r0, 0x2
+ orrs r6, r0
+ lsls r0, r6, 24
+ lsrs r6, r0, 24
+_0801D0F2:
+ adds r2, r3, r4
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ adds r1, r0, 0
+ adds r1, 0x22
+ ldrb r2, [r2]
+ ldrb r1, [r1]
+ cmp r2, r1
+ bne _0801D124
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r2
+ beq _0801D124
+ adds r0, r5, 0x2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bne _0801D124
+ movs r0, 0x2
+ orrs r6, r0
+ lsls r0, r6, 24
+ lsrs r6, r0, 24
+_0801D124:
+ adds r5, 0x3
+ adds r0, r5, r4
+ ldrb r0, [r0]
+_0801D12A:
+ cmp r0, 0xFF
+ beq _0801D14E
+ cmp r0, 0xFE
+ beq _0801D134
+ b _0801CFE8
+_0801D134:
+ mov r2, r8
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r7, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 22
+ ands r0, r1
+ cmp r0, 0
+ beq _0801D124
+_0801D14E:
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r4, [r0]
+ cmp r4, 0x19
+ bne _0801D1A4
+ ldr r0, _0801D1B8 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ mov r2, r9
+ ldrh r1, [r2]
+ bl move_weather_interaction
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0801D1A4
+ movs r0, 0x3
+ ands r6, r0
+ cmp r6, 0x1
+ beq _0801D1A4
+ ldr r2, _0801D1BC @ =gBattleMoves
+ mov r0, r9
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _0801D1A4
+ ldr r0, _0801D1C0 @ =byte_2024C06
+ strb r4, [r0]
+ ldr r1, _0801D1C4 @ =gUnknown_02024D1E
+ movs r0, 0x3
+ strb r0, [r1, 0x6]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x19
+ bl sub_81074C4
+_0801D1A4:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801D1B0: .4byte gUnknown_02024C68
+_0801D1B4: .4byte gUnknown_02024D28
+_0801D1B8: .4byte gUnknown_02024C07
+_0801D1BC: .4byte gBattleMoves
+_0801D1C0: .4byte byte_2024C06
+_0801D1C4: .4byte gUnknown_02024D1E
+ thumb_func_end b_wonderguard_and_levitate
+
+ thumb_func_start b_attack_effectivity_adapt
+b_attack_effectivity_adapt: @ 801D1C8
+ push {r4-r7,lr}
+ adds r6, r2, 0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldr r7, _0801D1FC @ =gUnknown_02024BEC
+ ldr r0, [r7]
+ muls r0, r4
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r7]
+ cmp r0, 0
+ bne _0801D1EE
+ cmp r4, 0
+ beq _0801D1EE
+ movs r0, 0x1
+ str r0, [r7]
+_0801D1EE:
+ cmp r4, 0x5
+ beq _0801D216
+ cmp r4, 0x5
+ bgt _0801D200
+ cmp r4, 0
+ beq _0801D206
+ b _0801D27A
+ .align 2, 0
+_0801D1FC: .4byte gUnknown_02024BEC
+_0801D200:
+ cmp r4, 0x14
+ beq _0801D248
+ b _0801D27A
+_0801D206:
+ ldrb r0, [r6]
+ movs r1, 0x8
+ orrs r0, r1
+ movs r1, 0xFB
+ ands r0, r1
+ movs r1, 0xFD
+ ands r0, r1
+ b _0801D278
+_0801D216:
+ ldr r0, _0801D240 @ =gBattleMoves
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ beq _0801D27A
+ ldrb r1, [r6]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801D27A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801D244
+ movs r0, 0xFD
+ ands r0, r1
+ b _0801D278
+ .align 2, 0
+_0801D240: .4byte gBattleMoves
+_0801D244:
+ movs r0, 0x4
+ b _0801D276
+_0801D248:
+ ldr r0, _0801D270 @ =gBattleMoves
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ beq _0801D27A
+ ldrb r1, [r6]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801D27A
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801D274
+ movs r0, 0xFB
+ ands r0, r1
+ b _0801D278
+ .align 2, 0
+_0801D270: .4byte gBattleMoves
+_0801D274:
+ movs r0, 0x2
+_0801D276:
+ orrs r0, r1
+_0801D278:
+ strb r0, [r6]
+_0801D27A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end b_attack_effectivity_adapt
+
+ thumb_func_start move_effectiveness_something
+move_effectiveness_something: @ 801D280
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x4]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ movs r7, 0
+ mov r0, sp
+ strb r7, [r0]
+ mov r0, r10
+ cmp r0, 0xA5
+ bne _0801D2AE
+ movs r0, 0
+ b _0801D43A
+_0801D2AE:
+ ldr r1, _0801D31C @ =gBattleMoves
+ mov r3, r10
+ lsls r2, r3, 1
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ str r0, [sp, 0x8]
+ ldr r1, _0801D320 @ =gBattleMons
+ movs r0, 0x58
+ ldr r3, [sp, 0x4]
+ muls r0, r3
+ 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, 0x8]
+ cmp r0, r1
+ beq _0801D2E2
+ adds r0, r3, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _0801D2F4
+_0801D2E2:
+ ldr r4, _0801D324 @ =gUnknown_02024BEC
+ ldr r1, [r4]
+ lsls r0, r1, 4
+ subs r0, r1
+ str r0, [r4]
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r4]
+_0801D2F4:
+ movs r0, 0x58
+ mov r2, r9
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1A
+ bne _0801D328
+ ldr r3, [sp, 0x8]
+ cmp r3, 0x4
+ bne _0801D328
+ movs r1, 0x9
+ mov r0, sp
+ ldrb r0, [r0]
+ orrs r0, r1
+ mov r1, sp
+ strb r0, [r1]
+ b _0801D3DC
+ .align 2, 0
+_0801D31C: .4byte gBattleMoves
+_0801D320: .4byte gBattleMons
+_0801D324: .4byte gUnknown_02024BEC
+_0801D328:
+ ldr r1, _0801D344 @ =gTypeEffectiveness
+ adds r0, r7, r1
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0xFF
+ beq _0801D3DC
+ cmp r0, 0xFE
+ bne _0801D34C
+ movs r0, 0x58
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ b _0801D3CA
+ .align 2, 0
+_0801D344: .4byte gTypeEffectiveness
+_0801D348:
+ adds r7, 0x3
+ b _0801D3B6
+_0801D34C:
+ ldr r6, _0801D44C @ =gTypeEffectiveness
+ adds r0, r7, r6
+ ldrb r0, [r0]
+ ldr r2, [sp, 0x8]
+ cmp r0, r2
+ bne _0801D3B0
+ adds r1, r7, 0x1
+ adds r1, r6
+ ldr r3, _0801D450 @ =gBattleMons
+ mov r8, r3
+ movs r3, 0x58
+ mov r0, r9
+ muls r0, r3
+ mov r2, r8
+ adds r5, r0, r2
+ adds r0, r5, 0
+ adds r0, 0x21
+ ldrb r4, [r1]
+ ldrb r0, [r0]
+ cmp r4, r0
+ bne _0801D388
+ adds r0, r7, 0x2
+ adds r0, r6
+ ldrb r0, [r0]
+ mov r1, r10
+ mov r2, sp
+ str r3, [sp, 0x10]
+ bl b_attack_effectivity_adapt
+ ldr r3, [sp, 0x10]
+_0801D388:
+ adds r0, r5, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r4, r0
+ bne _0801D3B0
+ ldr r0, _0801D454 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ muls r0, r3
+ add r0, r8
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r4
+ beq _0801D3B0
+ adds r0, r7, 0x2
+ adds r0, r6
+ ldrb r0, [r0]
+ mov r1, r10
+ mov r2, sp
+ bl b_attack_effectivity_adapt
+_0801D3B0:
+ adds r7, 0x3
+ ldr r5, _0801D450 @ =gBattleMons
+ ldr r2, _0801D44C @ =gTypeEffectiveness
+_0801D3B6:
+ adds r0, r7, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _0801D3DC
+ cmp r0, 0xFE
+ bne _0801D34C
+ movs r0, 0x58
+ mov r3, r9
+ muls r3, r0
+ adds r0, r3, 0
+_0801D3CA:
+ adds r1, r5, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 22
+ ands r0, r1
+ cmp r0, 0
+ beq _0801D348
+_0801D3DC:
+ movs r0, 0x58
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x19
+ bne _0801D436
+ mov r0, sp
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801D436
+ ldr r0, [sp, 0x4]
+ mov r1, r10
+ bl move_weather_interaction
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bne _0801D436
+ mov r0, sp
+ ldrb r3, [r0]
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _0801D41E
+ movs r0, 0x6
+ ands r0, r3
+ cmp r0, 0x6
+ bne _0801D436
+_0801D41E:
+ ldr r0, _0801D458 @ =gBattleMoves
+ ldr r1, [sp, 0xC]
+ add r1, r10
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ beq _0801D436
+ mov r0, sp
+ movs r1, 0x1
+ orrs r1, r3
+ strb r1, [r0]
+_0801D436:
+ mov r0, sp
+ ldrb r0, [r0]
+_0801D43A:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801D44C: .4byte gTypeEffectiveness
+_0801D450: .4byte gBattleMons
+_0801D454: .4byte gUnknown_02024C08
+_0801D458: .4byte gBattleMoves
+ thumb_func_end move_effectiveness_something
+
+ thumb_func_start ai_rate_move
+ai_rate_move: @ 801D45C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x4]
+ movs r7, 0
+ mov r0, sp
+ strb r7, [r0]
+ ldr r2, _0801D498 @ =gBaseStats
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x6]
+ str r1, [sp, 0x8]
+ ldrb r0, [r0, 0x7]
+ mov r8, r0
+ cmp r6, 0xA5
+ bne _0801D49C
+ movs r0, 0
+ b _0801D554
+ .align 2, 0
+_0801D498: .4byte gBaseStats
+_0801D49C:
+ ldr r2, _0801D4C0 @ =gBattleMoves
+ lsls r1, r6, 1
+ adds r0, r1, r6
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ mov r9, r0
+ str r1, [sp, 0xC]
+ ldr r3, [sp, 0x4]
+ cmp r3, 0x1A
+ bne _0801D4C4
+ cmp r0, 0x4
+ bne _0801D4C4
+ movs r1, 0x9
+ mov r0, sp
+ strb r1, [r0]
+ b _0801D51E
+ .align 2, 0
+_0801D4C0: .4byte gBattleMoves
+_0801D4C4:
+ ldr r0, _0801D564 @ =gTypeEffectiveness
+ mov r10, r0
+ adds r1, r7, r0
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _0801D51E
+ adds r4, r1, 0
+_0801D4D2:
+ ldrb r0, [r4]
+ cmp r0, 0xFE
+ beq _0801D510
+ cmp r0, r9
+ bne _0801D510
+ ldrb r5, [r4, 0x1]
+ ldr r1, [sp, 0x8]
+ cmp r5, r1
+ bne _0801D4EE
+ ldrb r0, [r4, 0x2]
+ adds r1, r6, 0
+ mov r2, sp
+ bl b_attack_effectivity_adapt
+_0801D4EE:
+ cmp r5, r8
+ bne _0801D510
+ ldr r0, _0801D568 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r3, _0801D56C @ =gBattleMons
+ adds r0, r3
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r8
+ beq _0801D510
+ ldrb r0, [r4, 0x2]
+ adds r1, r6, 0
+ mov r2, sp
+ bl b_attack_effectivity_adapt
+_0801D510:
+ adds r4, 0x3
+ adds r7, 0x3
+ mov r1, r10
+ adds r0, r7, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _0801D4D2
+_0801D51E:
+ ldr r3, [sp, 0x4]
+ cmp r3, 0x19
+ bne _0801D550
+ mov r0, sp
+ ldrb r2, [r0]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _0801D538
+ movs r0, 0x6
+ ands r0, r2
+ cmp r0, 0x6
+ bne _0801D550
+_0801D538:
+ ldr r0, _0801D570 @ =gBattleMoves
+ ldr r3, [sp, 0xC]
+ adds r1, r3, r6
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ beq _0801D550
+ mov r0, sp
+ movs r1, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+_0801D550:
+ mov r0, sp
+ ldrb r0, [r0]
+_0801D554:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801D564: .4byte gTypeEffectiveness
+_0801D568: .4byte gUnknown_02024C08
+_0801D56C: .4byte gBattleMons
+_0801D570: .4byte gBattleMoves
+ thumb_func_end ai_rate_move
+
+ thumb_func_start unref_sub_801D574
+unref_sub_801D574: @ 801D574
+ push {r4,lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF
+ ands r0, r1
+ movs r1, 0x64
+ subs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r4, _0801D5AC @ =gUnknown_02024BEC
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0801D5A6
+ muls r0, r1
+ str r0, [r4]
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801D5A6
+ movs r0, 0x1
+ str r0, [r4]
+_0801D5A6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801D5AC: .4byte gUnknown_02024BEC
+ thumb_func_end unref_sub_801D574
+
+ thumb_func_start atk07_damagecalc3
+atk07_damagecalc3: @ 801D5B0
+ push {r4-r7,lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF
+ ands r0, r1
+ movs r1, 0x64
+ subs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r4, _0801D608 @ =gUnknown_02024BEC
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0801D5E2
+ muls r0, r1
+ str r0, [r4]
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801D5E2
+ movs r0, 0x1
+ str r0, [r4]
+_0801D5E2:
+ ldr r7, _0801D60C @ =gBattleMons
+ ldr r6, _0801D610 @ =gUnknown_02024C08
+ ldrb r2, [r6]
+ movs r5, 0x58
+ adds r0, r2, 0
+ muls r0, r5
+ adds r1, r0, r7
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _0801D618
+ ldr r1, _0801D614 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x7]
+ ldrb r6, [r0, 0x1A]
+ b _0801D632
+ .align 2, 0
+_0801D608: .4byte gUnknown_02024BEC
+_0801D60C: .4byte gBattleMons
+_0801D610: .4byte gUnknown_02024C08
+_0801D614: .4byte gEnigmaBerries
+_0801D618:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r7
+ ldrh r0, [r0, 0x2E]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0801D632:
+ ldr r1, _0801D6F4 @ =gUnknown_02024C0B
+ ldr r5, _0801D6F8 @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ strb r0, [r1]
+ cmp r4, 0x27
+ bne _0801D670
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r6
+ bcs _0801D670
+ ldrb r0, [r5]
+ movs r1, 0x27
+ bl sub_81074F8
+ ldr r2, _0801D6FC @ =gUnknown_02024D68
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+_0801D670:
+ ldr r2, _0801D700 @ =gBattleMons
+ ldr r3, _0801D6F8 @ =gUnknown_02024C08
+ ldrb r4, [r3]
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, r2, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 17
+ ands r1, r0
+ adds r5, r2, 0
+ cmp r1, 0
+ bne _0801D740
+ ldr r2, _0801D704 @ =gBattleMoves
+ ldr r0, _0801D708 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x65
+ beq _0801D6C2
+ ldr r0, _0801D70C @ =gUnknown_02024D28
+ lsls r1, r4, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 30
+ cmp r0, 0
+ blt _0801D6C2
+ ldr r0, _0801D6FC @ =gUnknown_02024D68
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _0801D740
+_0801D6C2:
+ ldrb r0, [r3]
+ movs r4, 0x58
+ muls r0, r4
+ adds r0, r5
+ ldrh r1, [r0, 0x28]
+ ldr r2, _0801D710 @ =gUnknown_02024BEC
+ ldr r0, [r2]
+ cmp r1, r0
+ bgt _0801D740
+ subs r0, r1, 0x1
+ str r0, [r2]
+ ldr r1, _0801D70C @ =gUnknown_02024D28
+ ldrb r3, [r3]
+ lsls r0, r3, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ cmp r0, 0
+ bge _0801D718
+ ldr r0, _0801D714 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _0801D740
+ .align 2, 0
+_0801D6F4: .4byte gUnknown_02024C0B
+_0801D6F8: .4byte gUnknown_02024C08
+_0801D6FC: .4byte gUnknown_02024D68
+_0801D700: .4byte gBattleMons
+_0801D704: .4byte gBattleMoves
+_0801D708: .4byte gUnknown_02024BE6
+_0801D70C: .4byte gUnknown_02024D28
+_0801D710: .4byte gUnknown_02024BEC
+_0801D714: .4byte gUnknown_02024C68
+_0801D718:
+ ldr r0, _0801D750 @ =gUnknown_02024D68
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _0801D740
+ ldr r2, _0801D754 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0801D758 @ =gUnknown_02024C04
+ adds r0, r3, 0
+ muls r0, r4
+ adds r0, r5
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r1]
+_0801D740:
+ ldr r1, _0801D75C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801D750: .4byte gUnknown_02024D68
+_0801D754: .4byte gUnknown_02024C68
+_0801D758: .4byte gUnknown_02024C04
+_0801D75C: .4byte gUnknown_02024C10
+ thumb_func_end atk07_damagecalc3
+
+ thumb_func_start atk08_cmd8
+atk08_cmd8: @ 801D760
+ push {r4-r7,lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF
+ ands r0, r1
+ movs r1, 0x64
+ subs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r4, _0801D7B8 @ =gUnknown_02024BEC
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0801D792
+ muls r0, r1
+ str r0, [r4]
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801D792
+ movs r0, 0x1
+ str r0, [r4]
+_0801D792:
+ ldr r7, _0801D7BC @ =gBattleMons
+ ldr r6, _0801D7C0 @ =gUnknown_02024C08
+ ldrb r2, [r6]
+ movs r5, 0x58
+ adds r0, r2, 0
+ muls r0, r5
+ adds r1, r0, r7
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _0801D7C8
+ ldr r1, _0801D7C4 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x7]
+ ldrb r6, [r0, 0x1A]
+ b _0801D7E2
+ .align 2, 0
+_0801D7B8: .4byte gUnknown_02024BEC
+_0801D7BC: .4byte gBattleMons
+_0801D7C0: .4byte gUnknown_02024C08
+_0801D7C4: .4byte gEnigmaBerries
+_0801D7C8:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r7
+ ldrh r0, [r0, 0x2E]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0801D7E2:
+ ldr r1, _0801D888 @ =gUnknown_02024C0B
+ ldr r5, _0801D88C @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ strb r0, [r1]
+ cmp r4, 0x27
+ bne _0801D820
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r6
+ bcs _0801D820
+ ldrb r0, [r5]
+ movs r1, 0x27
+ bl sub_81074F8
+ ldr r2, _0801D890 @ =gUnknown_02024D68
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+_0801D820:
+ ldr r4, _0801D894 @ =gBattleMons
+ ldr r6, _0801D88C @ =gUnknown_02024C08
+ ldrb r2, [r6]
+ movs r7, 0x58
+ adds r3, r2, 0
+ muls r3, r7
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ bne _0801D8CC
+ ldr r5, _0801D898 @ =gUnknown_02024D28
+ lsls r0, r2, 4
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 30
+ cmp r0, 0
+ blt _0801D85E
+ ldr r0, _0801D890 @ =gUnknown_02024D68
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _0801D8CC
+_0801D85E:
+ adds r0, r3, r4
+ ldrh r1, [r0, 0x28]
+ ldr r2, _0801D89C @ =gUnknown_02024BEC
+ ldr r0, [r2]
+ cmp r1, r0
+ bgt _0801D8CC
+ subs r0, r1, 0x1
+ str r0, [r2]
+ ldrb r3, [r6]
+ lsls r0, r3, 4
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 30
+ cmp r0, 0
+ bge _0801D8A4
+ ldr r0, _0801D8A0 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _0801D8CC
+ .align 2, 0
+_0801D888: .4byte gUnknown_02024C0B
+_0801D88C: .4byte gUnknown_02024C08
+_0801D890: .4byte gUnknown_02024D68
+_0801D894: .4byte gBattleMons
+_0801D898: .4byte gUnknown_02024D28
+_0801D89C: .4byte gUnknown_02024BEC
+_0801D8A0: .4byte gUnknown_02024C68
+_0801D8A4:
+ ldr r0, _0801D8DC @ =gUnknown_02024D68
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _0801D8CC
+ ldr r2, _0801D8E0 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0801D8E4 @ =gUnknown_02024C04
+ adds r0, r3, 0
+ muls r0, r7
+ adds r0, r4
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r1]
+_0801D8CC:
+ ldr r1, _0801D8E8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801D8DC: .4byte gUnknown_02024D68
+_0801D8E0: .4byte gUnknown_02024C68
+_0801D8E4: .4byte gUnknown_02024C04
+_0801D8E8: .4byte gUnknown_02024C10
+ thumb_func_end atk08_cmd8
+
+ thumb_func_start sub_801D8EC
+sub_801D8EC: @ 801D8EC
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0xC
+ ldr r0, _0801D940 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801D900
+ b _0801DA4A
+_0801D900:
+ ldr r0, _0801D944 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ ldr r3, _0801D948 @ =gUnknown_02024BE6
+ cmp r0, 0
+ beq _0801D960
+ ldrh r0, [r3]
+ cmp r0, 0x90
+ beq _0801D960
+ cmp r0, 0xA4
+ beq _0801D960
+ ldr r4, _0801D94C @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801D950 @ =gUnknown_081D8EEF
+ str r0, [r4]
+ ldr r1, _0801D954 @ =0x02000000
+ ldr r0, _0801D958 @ =0x00016002
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ ldr r2, _0801D95C @ =0x000160a1
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0801DA4A
+ .align 2, 0
+_0801D940: .4byte gUnknown_02024A64
+_0801D944: .4byte gUnknown_02024C6C
+_0801D948: .4byte gUnknown_02024BE6
+_0801D94C: .4byte gUnknown_02024C10
+_0801D950: .4byte gUnknown_081D8EEF
+_0801D954: .4byte 0x02000000
+_0801D958: .4byte 0x00016002
+_0801D95C: .4byte 0x000160a1
+_0801D960:
+ ldr r2, _0801DA0C @ =gBattleMoves
+ ldrh r1, [r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _0801D986
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0801D986
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0801D992
+_0801D986:
+ ldr r0, _0801DA10 @ =0x02000000
+ ldr r1, _0801DA14 @ =0x000160a1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0801DA00
+_0801D992:
+ ldr r0, _0801DA18 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DA3C
+ ldr r1, _0801DA1C @ =gUnknown_02024A60
+ ldr r2, _0801DA20 @ =gUnknown_02024C07
+ mov r9, r2
+ ldrb r0, [r2]
+ strb r0, [r1]
+ ldrh r1, [r3]
+ ldr r6, _0801DA10 @ =0x02000000
+ ldr r0, _0801DA24 @ =0x00016002
+ adds r0, r6
+ mov r8, r0
+ ldrb r2, [r0]
+ ldr r0, _0801DA28 @ =gBattleMovePower
+ ldrh r3, [r0]
+ ldr r0, _0801DA2C @ =gUnknown_02024BEC
+ ldr r0, [r0]
+ str r0, [sp]
+ ldr r5, _0801DA30 @ =gBattleMons
+ mov r0, r9
+ ldrb r4, [r0]
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r5
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ str r0, [sp, 0x4]
+ mov r0, r9
+ ldrb r4, [r0]
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r4, _0801DA34 @ =gUnknown_02024CA8
+ adds r0, r4
+ str r0, [sp, 0x8]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r2, _0801DA14 @ =0x000160a1
+ adds r6, r2
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ mov r1, r9
+ ldrb r0, [r1]
+ bl dp01_battle_side_mark_buffer_for_execution
+_0801DA00:
+ ldr r1, _0801DA38 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ b _0801DA4A
+ .align 2, 0
+_0801DA0C: .4byte gBattleMoves
+_0801DA10: .4byte 0x02000000
+_0801DA14: .4byte 0x000160a1
+_0801DA18: .4byte gUnknown_02024C68
+_0801DA1C: .4byte gUnknown_02024A60
+_0801DA20: .4byte gUnknown_02024C07
+_0801DA24: .4byte 0x00016002
+_0801DA28: .4byte gBattleMovePower
+_0801DA2C: .4byte gUnknown_02024BEC
+_0801DA30: .4byte gBattleMons
+_0801DA34: .4byte gUnknown_02024CA8
+_0801DA38: .4byte gUnknown_02024C10
+_0801DA3C:
+ ldr r4, _0801DA58 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801DA5C @ =gUnknown_081D8EEF
+ str r0, [r4]
+_0801DA4A:
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801DA58: .4byte gUnknown_02024C10
+_0801DA5C: .4byte gUnknown_081D8EEF
+ thumb_func_end sub_801D8EC
+
+ thumb_func_start sub_801DA60
+sub_801DA60: @ 801DA60
+ push {lr}
+ ldr r0, _0801DA78 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801DA72
+ ldr r1, _0801DA7C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_0801DA72:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801DA78: .4byte gUnknown_02024A64
+_0801DA7C: .4byte gUnknown_02024C10
+ thumb_func_end sub_801DA60
+
+ thumb_func_start sub_801DA80
+sub_801DA80: @ 801DA80
+ push {r4,r5,lr}
+ ldr r0, _0801DAE4 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801DB36
+ ldr r0, _0801DAE8 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DB2E
+ ldr r0, _0801DAEC @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r2, _0801DAF0 @ =gUnknown_02024A60
+ strb r0, [r2]
+ ldr r1, _0801DAF4 @ =gBattleMons
+ ldrb r2, [r2]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _0801DB00
+ ldr r0, _0801DAF8 @ =gUnknown_02024CA8
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ cmp r0, 0
+ beq _0801DB00
+ ldr r0, _0801DAFC @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DB00
+ movs r0, 0x80
+ adds r1, r2, 0
+ bl b_std_message
+ b _0801DB2E
+ .align 2, 0
+_0801DAE4: .4byte gUnknown_02024A64
+_0801DAE8: .4byte gUnknown_02024C68
+_0801DAEC: .4byte gUnknown_02024C10
+_0801DAF0: .4byte gUnknown_02024A60
+_0801DAF4: .4byte gBattleMons
+_0801DAF8: .4byte gUnknown_02024CA8
+_0801DAFC: .4byte gUnknown_02024C6C
+_0801DB00:
+ ldr r5, _0801DB3C @ =gUnknown_02024BEC
+ ldrh r1, [r5]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
+ ldr r4, _0801DB40 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801DB2E
+ ldr r0, [r5]
+ cmp r0, 0
+ ble _0801DB2E
+ ldr r0, _0801DB44 @ =gUnknown_030042E0
+ ldrb r1, [r0, 0x5]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+_0801DB2E:
+ ldr r1, _0801DB48 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_0801DB36:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801DB3C: .4byte gUnknown_02024BEC
+_0801DB40: .4byte gUnknown_02024A60
+_0801DB44: .4byte gUnknown_030042E0
+_0801DB48: .4byte gUnknown_02024C10
+ thumb_func_end sub_801DA80
+
+ thumb_func_start atk0C_datahpupdate
+atk0C_datahpupdate: @ 801DB4C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r0, _0801DB74 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801DB5A
+ b _0801DF2E
+_0801DB5A:
+ ldr r0, _0801DB78 @ =0x02000000
+ ldr r1, _0801DB7C @ =0x0001601c
+ adds r0, r1
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _0801DB80
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DB80
+ movs r6, 0x3F
+ ands r6, r1
+ b _0801DB90
+ .align 2, 0
+_0801DB74: .4byte gUnknown_02024A64
+_0801DB78: .4byte 0x02000000
+_0801DB7C: .4byte 0x0001601c
+_0801DB80:
+ ldr r2, _0801DC1C @ =gBattleMoves
+ ldr r0, _0801DC20 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r6, [r0, 0x2]
+_0801DB90:
+ ldr r0, _0801DC24 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0801DB9E
+ b _0801DF00
+_0801DB9E:
+ ldr r0, _0801DC28 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r7, _0801DC2C @ =gUnknown_02024A60
+ strb r0, [r7]
+ ldr r1, _0801DC30 @ =gBattleMons
+ ldrb r2, [r7]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _0801DCB4
+ ldr r0, _0801DC34 @ =gUnknown_02024CA8
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r4, r1, r0
+ ldrb r1, [r4, 0xA]
+ mov r12, r0
+ cmp r1, 0
+ beq _0801DCB4
+ ldr r0, _0801DC38 @ =gUnknown_02024C6C
+ ldr r3, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r3, r0
+ cmp r3, 0
+ bne _0801DCB4
+ adds r5, r1, 0
+ ldr r6, _0801DC3C @ =gUnknown_02024BEC
+ ldr r4, [r6]
+ cmp r5, r4
+ blt _0801DC48
+ ldr r0, _0801DC40 @ =gUnknown_02024D68
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 2
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _0801DC02
+ str r4, [r1]
+_0801DC02:
+ ldrb r0, [r7]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ add r1, r12
+ ldr r2, [r6]
+ ldrb r0, [r1, 0xA]
+ subs r0, r2
+ strb r0, [r1, 0xA]
+ ldr r1, _0801DC44 @ =gUnknown_02024BF0
+ ldr r0, [r6]
+ str r0, [r1]
+ b _0801DC78
+ .align 2, 0
+_0801DC1C: .4byte gBattleMoves
+_0801DC20: .4byte gUnknown_02024BE6
+_0801DC24: .4byte gUnknown_02024C68
+_0801DC28: .4byte gUnknown_02024C10
+_0801DC2C: .4byte gUnknown_02024A60
+_0801DC30: .4byte gBattleMons
+_0801DC34: .4byte gUnknown_02024CA8
+_0801DC38: .4byte gUnknown_02024C6C
+_0801DC3C: .4byte gUnknown_02024BEC
+_0801DC40: .4byte gUnknown_02024D68
+_0801DC44: .4byte gUnknown_02024BF0
+_0801DC48:
+ ldr r0, _0801DCA0 @ =gUnknown_02024D68
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 2
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _0801DC5C
+ str r5, [r1]
+_0801DC5C:
+ ldr r2, _0801DCA4 @ =gUnknown_02024BF0
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r12
+ ldrb r0, [r0, 0xA]
+ str r0, [r2]
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r12
+ strb r3, [r0, 0xA]
+_0801DC78:
+ ldr r0, _0801DCA8 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r12
+ ldrb r0, [r0, 0xA]
+ cmp r0, 0
+ beq _0801DC8C
+ b _0801DF26
+_0801DC8C:
+ ldr r4, _0801DCAC @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ bl b_movescr_stack_push_cursor
+ ldr r0, _0801DCB0 @ =gUnknown_081D99AB
+ str r0, [r4]
+ b _0801DF2E
+ .align 2, 0
+_0801DCA0: .4byte gUnknown_02024D68
+_0801DCA4: .4byte gUnknown_02024BF0
+_0801DCA8: .4byte gUnknown_02024A60
+_0801DCAC: .4byte gUnknown_02024C10
+_0801DCB0: .4byte gUnknown_081D99AB
+_0801DCB4:
+ ldr r0, _0801DCF4 @ =gUnknown_02024C6C
+ ldr r2, [r0]
+ ldr r1, _0801DCF8 @ =0xfffffeff
+ ands r2, r1
+ str r2, [r0]
+ ldr r1, _0801DCFC @ =gUnknown_02024BEC
+ ldr r5, [r1]
+ mov r12, r0
+ adds r7, r1, 0
+ cmp r5, 0
+ bge _0801DD08
+ ldr r4, _0801DD00 @ =gBattleMons
+ ldr r2, _0801DD04 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ movs r3, 0x58
+ adds r1, r0, 0
+ muls r1, r3
+ adds r1, r4
+ ldrh r0, [r1, 0x28]
+ subs r0, r5
+ strh r0, [r1, 0x28]
+ ldrb r0, [r2]
+ muls r0, r3
+ adds r1, r0, r4
+ ldrh r3, [r1, 0x2C]
+ ldrh r0, [r1, 0x28]
+ adds r5, r2, 0
+ cmp r0, r3
+ bhi _0801DCF0
+ b _0801DEC6
+_0801DCF0:
+ strh r3, [r1, 0x28]
+ b _0801DEC6
+ .align 2, 0
+_0801DCF4: .4byte gUnknown_02024C6C
+_0801DCF8: .4byte 0xfffffeff
+_0801DCFC: .4byte gUnknown_02024BEC
+_0801DD00: .4byte gBattleMons
+_0801DD04: .4byte gUnknown_02024A60
+_0801DD08:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _0801DD24
+ movs r0, 0x21
+ negs r0, r0
+ ands r2, r0
+ mov r0, r12
+ str r2, [r0]
+ ldr r5, _0801DD20 @ =gUnknown_02024A60
+ b _0801DD6C
+ .align 2, 0
+_0801DD20: .4byte gUnknown_02024A60
+_0801DD24:
+ ldr r0, _0801DD4C @ =gUnknown_02024BF4
+ ldr r2, _0801DD50 @ =gUnknown_02024A60
+ ldrb r1, [r2]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ adds r0, r5
+ str r0, [r1]
+ ldr r0, _0801DD54 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ adds r5, r2, 0
+ cmp r0, 0
+ bne _0801DD60
+ ldr r1, _0801DD58 @ =gUnknown_02024C74
+ ldrb r0, [r5]
+ adds r0, r1
+ ldr r1, _0801DD5C @ =gUnknown_02024C07
+ b _0801DD68
+ .align 2, 0
+_0801DD4C: .4byte gUnknown_02024BF4
+_0801DD50: .4byte gUnknown_02024A60
+_0801DD54: .4byte gUnknown_02024C10
+_0801DD58: .4byte gUnknown_02024C74
+_0801DD5C: .4byte gUnknown_02024C07
+_0801DD60:
+ ldr r1, _0801DD8C @ =gUnknown_02024C74
+ ldrb r0, [r5]
+ adds r0, r1
+ ldr r1, _0801DD90 @ =gUnknown_02024C08
+_0801DD68:
+ ldrb r1, [r1]
+ strb r1, [r0]
+_0801DD6C:
+ ldr r4, _0801DD94 @ =gBattleMons
+ ldrb r0, [r5]
+ movs r3, 0x58
+ muls r0, r3
+ adds r2, r0, r4
+ ldrh r0, [r2, 0x28]
+ ldr r1, [r7]
+ cmp r0, r1
+ ble _0801DD9C
+ subs r0, r1
+ strh r0, [r2, 0x28]
+ ldr r0, _0801DD98 @ =gUnknown_02024BF0
+ str r1, [r0]
+ adds r7, r0, 0
+ b _0801DDAC
+ .align 2, 0
+_0801DD8C: .4byte gUnknown_02024C74
+_0801DD90: .4byte gUnknown_02024C08
+_0801DD94: .4byte gBattleMons
+_0801DD98: .4byte gUnknown_02024BF0
+_0801DD9C:
+ ldr r2, _0801DE20 @ =gUnknown_02024BF0
+ str r0, [r2]
+ ldrb r0, [r5]
+ muls r0, r3
+ adds r0, r4
+ movs r1, 0
+ strh r1, [r0, 0x28]
+ adds r7, r2, 0
+_0801DDAC:
+ ldr r2, _0801DE24 @ =gUnknown_02024D68
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r2, 0x4
+ adds r3, r0, r1
+ ldr r0, [r3]
+ adds r4, r2, 0
+ cmp r0, 0
+ bne _0801DDD4
+ mov r1, r12
+ ldr r0, [r1]
+ movs r1, 0x80
+ lsls r1, 13
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DDD4
+ ldr r0, [r7]
+ str r0, [r3]
+_0801DDD4:
+ cmp r6, 0x8
+ bhi _0801DE5C
+ mov r1, r12
+ ldr r0, [r1]
+ movs r1, 0x80
+ lsls r1, 13
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DE58
+ ldr r0, _0801DE28 @ =gUnknown_02024BE6
+ ldrh r0, [r0]
+ cmp r0, 0xDC
+ beq _0801DE58
+ ldr r3, _0801DE2C @ =gUnknown_02024D28
+ ldrb r0, [r5]
+ lsls r0, 4
+ adds r1, r3, 0x4
+ adds r0, r1
+ ldr r2, [r7]
+ str r2, [r0]
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x8
+ adds r0, r1
+ str r2, [r0]
+ ldr r0, _0801DE30 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _0801DE38
+ ldrb r0, [r5]
+ lsls r0, 4
+ adds r0, r3
+ ldr r2, _0801DE34 @ =gUnknown_02024C07
+ b _0801DE40
+ .align 2, 0
+_0801DE20: .4byte gUnknown_02024BF0
+_0801DE24: .4byte gUnknown_02024D68
+_0801DE28: .4byte gUnknown_02024BE6
+_0801DE2C: .4byte gUnknown_02024D28
+_0801DE30: .4byte gUnknown_02024C10
+_0801DE34: .4byte gUnknown_02024C07
+_0801DE38:
+ ldrb r0, [r5]
+ lsls r0, 4
+ adds r0, r3
+ ldr r2, _0801DE54 @ =gUnknown_02024C08
+_0801DE40:
+ ldrb r1, [r2]
+ strb r1, [r0, 0xC]
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r2]
+ strb r1, [r0, 0x10]
+ b _0801DEC6
+ .align 2, 0
+_0801DE54: .4byte gUnknown_02024C08
+_0801DE58:
+ cmp r6, 0x8
+ bls _0801DEC6
+_0801DE5C:
+ mov r1, r12
+ ldr r0, [r1]
+ movs r1, 0x80
+ lsls r1, 13
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DEC6
+ ldr r3, _0801DEA0 @ =gUnknown_02024D28
+ ldrb r0, [r5]
+ lsls r0, 4
+ adds r1, r3, 0
+ adds r1, 0x8
+ adds r0, r1
+ ldr r2, [r7]
+ str r2, [r0]
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0xC
+ adds r0, r1
+ str r2, [r0]
+ ldr r0, _0801DEA4 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _0801DEAC
+ ldrb r0, [r5]
+ lsls r0, 4
+ adds r0, r3
+ ldr r2, _0801DEA8 @ =gUnknown_02024C07
+ b _0801DEB4
+ .align 2, 0
+_0801DEA0: .4byte gUnknown_02024D28
+_0801DEA4: .4byte gUnknown_02024C10
+_0801DEA8: .4byte gUnknown_02024C07
+_0801DEAC:
+ ldrb r0, [r5]
+ lsls r0, 4
+ adds r0, r3
+ ldr r2, _0801DEF4 @ =gUnknown_02024C08
+_0801DEB4:
+ ldrb r1, [r2]
+ strb r1, [r0, 0xD]
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r2]
+ strb r1, [r0, 0x11]
+_0801DEC6:
+ mov r1, r12
+ ldr r0, [r1]
+ ldr r1, _0801DEF8 @ =0xffefffff
+ ands r0, r1
+ mov r1, r12
+ str r0, [r1]
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r1, _0801DEFC @ =gUnknown_02024AA8
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x2A
+ movs r2, 0
+ movs r3, 0x2
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _0801DF26
+ .align 2, 0
+_0801DEF4: .4byte gUnknown_02024C08
+_0801DEF8: .4byte 0xffefffff
+_0801DEFC: .4byte gUnknown_02024AA8
+_0801DF00:
+ ldr r0, _0801DF38 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r1, _0801DF3C @ =gUnknown_02024A60
+ strb r0, [r1]
+ ldr r2, _0801DF40 @ =gUnknown_02024D68
+ ldrb r1, [r1]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x4
+ adds r1, r0, r2
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _0801DF26
+ ldr r0, _0801DF44 @ =0x0000ffff
+ str r0, [r1]
+_0801DF26:
+ ldr r1, _0801DF38 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_0801DF2E:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801DF38: .4byte gUnknown_02024C10
+_0801DF3C: .4byte gUnknown_02024A60
+_0801DF40: .4byte gUnknown_02024D68
+_0801DF44: .4byte 0x0000ffff
+ thumb_func_end atk0C_datahpupdate
+
+ thumb_func_start atk0D_critmessage
+atk0D_critmessage: @ 801DF48
+ push {lr}
+ ldr r0, _0801DF84 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801DF7E
+ ldr r0, _0801DF88 @ =gCritMultiplier
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0801DF76
+ ldr r0, _0801DF8C @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DF76
+ ldr r0, _0801DF90 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0xD9
+ bl b_std_message
+ ldr r1, _0801DF94 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x7]
+_0801DF76:
+ ldr r1, _0801DF98 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_0801DF7E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801DF84: .4byte gUnknown_02024A64
+_0801DF88: .4byte gCritMultiplier
+_0801DF8C: .4byte gUnknown_02024C68
+_0801DF90: .4byte gUnknown_02024C07
+_0801DF94: .4byte gUnknown_02024D1E
+_0801DF98: .4byte gUnknown_02024C10
+ thumb_func_end atk0D_critmessage
+
+ thumb_func_start atk0E_missmessage
+atk0E_missmessage: @ 801DF9C
+ push {r4,lr}
+ ldr r0, _0801DFD4 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801E05C
+ ldr r4, _0801DFD8 @ =gUnknown_02024A60
+ ldr r0, _0801DFDC @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r1, _0801DFE0 @ =gUnknown_02024C68
+ ldrb r2, [r1]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _0801E054
+ movs r0, 0xFE
+ ands r0, r2
+ cmp r0, 0x10
+ beq _0801E00E
+ cmp r0, 0x10
+ bgt _0801DFEA
+ cmp r0, 0x4
+ beq _0801DFFE
+ cmp r0, 0x4
+ bgt _0801DFE4
+ cmp r0, 0x2
+ beq _0801DFF8
+ b _0801E00E
+ .align 2, 0
+_0801DFD4: .4byte gUnknown_02024A64
+_0801DFD8: .4byte gUnknown_02024A60
+_0801DFDC: .4byte gUnknown_02024C08
+_0801DFE0: .4byte gUnknown_02024C68
+_0801DFE4:
+ cmp r0, 0x8
+ beq _0801E054
+ b _0801E00E
+_0801DFEA:
+ cmp r0, 0x40
+ beq _0801E00E
+ cmp r0, 0x40
+ bgt _0801E00E
+ cmp r0, 0x20
+ beq _0801E054
+ b _0801E00E
+_0801DFF8:
+ movs r0, 0
+ movs r1, 0xE
+ b _0801E002
+_0801DFFE:
+ movs r0, 0
+ movs r1, 0xC
+_0801E002:
+ bl dp01_build_cmdbuf_x2B_aa_0
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _0801E054
+_0801E00E:
+ ldrb r1, [r1]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E01E
+ movs r0, 0
+ movs r1, 0xE
+ b _0801E02A
+_0801E01E:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E03C
+ movs r0, 0
+ movs r1, 0xC
+_0801E02A:
+ bl dp01_build_cmdbuf_x2B_aa_0
+ ldr r0, _0801E038 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _0801E054
+ .align 2, 0
+_0801E038: .4byte gUnknown_02024A60
+_0801E03C:
+ movs r0, 0x28
+ ands r0, r1
+ cmp r0, 0
+ bne _0801E054
+ movs r0, 0
+ movs r1, 0xD
+ bl dp01_build_cmdbuf_x2B_aa_0
+ ldr r0, _0801E064 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+_0801E054:
+ ldr r1, _0801E068 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_0801E05C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801E064: .4byte gUnknown_02024A60
+_0801E068: .4byte gUnknown_02024C10
+ thumb_func_end atk0E_missmessage
+
+ thumb_func_start atk0F_resultmessage
+atk0F_resultmessage: @ 801E06C
+ push {r4-r7,lr}
+ movs r3, 0
+ ldr r0, _0801E0A8 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801E07A
+ b _0801E20C
+_0801E07A:
+ ldr r1, _0801E0AC @ =gUnknown_02024C68
+ ldrb r2, [r1]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r2
+ adds r6, r1, 0
+ ldr r7, _0801E0B0 @ =gUnknown_02024D1E
+ cmp r0, 0
+ beq _0801E0B8
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _0801E09A
+ ldrb r0, [r7, 0x6]
+ cmp r0, 0x2
+ bls _0801E0B8
+_0801E09A:
+ ldr r1, _0801E0B4 @ =gUnknown_08401508
+ ldrb r0, [r7, 0x6]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r3, [r0]
+ strb r4, [r7, 0x7]
+ b _0801E1F6
+ .align 2, 0
+_0801E0A8: .4byte gUnknown_02024A64
+_0801E0AC: .4byte gUnknown_02024C68
+_0801E0B0: .4byte gUnknown_02024D1E
+_0801E0B4: .4byte gUnknown_08401508
+_0801E0B8:
+ movs r0, 0x1
+ strb r0, [r7, 0x7]
+ ldrb r5, [r6]
+ movs r0, 0xFE
+ ands r0, r5
+ cmp r0, 0x10
+ beq _0801E0FC
+ cmp r0, 0x10
+ bgt _0801E0DE
+ cmp r0, 0x4
+ beq _0801E0F8
+ cmp r0, 0x4
+ bgt _0801E0D8
+ cmp r0, 0x2
+ beq _0801E0F4
+ b _0801E144
+_0801E0D8:
+ cmp r0, 0x8
+ beq _0801E150
+ b _0801E144
+_0801E0DE:
+ cmp r0, 0x40
+ beq _0801E100
+ cmp r0, 0x40
+ bgt _0801E0EE
+ cmp r0, 0x20
+ bne _0801E0EC
+ b _0801E1F0
+_0801E0EC:
+ b _0801E144
+_0801E0EE:
+ cmp r0, 0x80
+ beq _0801E104
+ b _0801E144
+_0801E0F4:
+ movs r3, 0xDE
+ b _0801E1FA
+_0801E0F8:
+ movs r3, 0xDD
+ b _0801E1FA
+_0801E0FC:
+ movs r3, 0xDA
+ b _0801E1FA
+_0801E100:
+ movs r3, 0x99
+ b _0801E1FA
+_0801E104:
+ ldr r4, _0801E12C @ =gUnknown_02024C04
+ ldr r2, _0801E130 @ =gBattleMons
+ ldr r3, _0801E134 @ =gUnknown_02024C08
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r4]
+ ldr r1, _0801E138 @ =gUnknown_02024C0B
+ ldrb r0, [r3]
+ strb r0, [r1]
+ movs r0, 0x3F
+ ands r0, r5
+ strb r0, [r6]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801E13C @ =gUnknown_02024C10
+ ldr r0, _0801E140 @ =gUnknown_081D9AC6
+ b _0801E20A
+ .align 2, 0
+_0801E12C: .4byte gUnknown_02024C04
+_0801E130: .4byte gBattleMons
+_0801E134: .4byte gUnknown_02024C08
+_0801E138: .4byte gUnknown_02024C0B
+_0801E13C: .4byte gUnknown_02024C10
+_0801E140: .4byte gUnknown_081D9AC6
+_0801E144:
+ adds r2, r6, 0
+ ldrb r5, [r2]
+ movs r0, 0x8
+ ands r0, r5
+ cmp r0, 0
+ beq _0801E154
+_0801E150:
+ movs r3, 0x1B
+ b _0801E1FA
+_0801E154:
+ movs r0, 0x10
+ ands r0, r5
+ cmp r0, 0
+ beq _0801E17C
+ movs r0, 0xEF
+ ands r0, r5
+ movs r1, 0xFD
+ ands r0, r1
+ movs r1, 0xFB
+ ands r0, r1
+ strb r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801E174 @ =gUnknown_02024C10
+ ldr r0, _0801E178 @ =gUnknown_081D94A9
+ b _0801E20A
+ .align 2, 0
+_0801E174: .4byte gUnknown_02024C10
+_0801E178: .4byte gUnknown_081D94A9
+_0801E17C:
+ movs r0, 0x40
+ ands r0, r5
+ cmp r0, 0
+ beq _0801E19C
+ movs r0, 0x3F
+ ands r0, r5
+ strb r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801E194 @ =gUnknown_02024C10
+ ldr r0, _0801E198 @ =gUnknown_081D94A2
+ b _0801E20A
+ .align 2, 0
+_0801E194: .4byte gUnknown_02024C10
+_0801E198: .4byte gUnknown_081D94A2
+_0801E19C:
+ movs r0, 0x80
+ ands r0, r5
+ cmp r0, 0
+ beq _0801E1E4
+ ldr r4, _0801E1CC @ =gUnknown_02024C04
+ ldr r2, _0801E1D0 @ =gBattleMons
+ ldr r3, _0801E1D4 @ =gUnknown_02024C08
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r4]
+ ldr r1, _0801E1D8 @ =gUnknown_02024C0B
+ ldrb r0, [r3]
+ strb r0, [r1]
+ movs r0, 0x3F
+ ands r0, r5
+ strb r0, [r6]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801E1DC @ =gUnknown_02024C10
+ ldr r0, _0801E1E0 @ =gUnknown_081D9AC6
+ b _0801E20A
+ .align 2, 0
+_0801E1CC: .4byte gUnknown_02024C04
+_0801E1D0: .4byte gBattleMons
+_0801E1D4: .4byte gUnknown_02024C08
+_0801E1D8: .4byte gUnknown_02024C0B
+_0801E1DC: .4byte gUnknown_02024C10
+_0801E1E0: .4byte gUnknown_081D9AC6
+_0801E1E4:
+ movs r0, 0x20
+ ands r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0801E1F4
+_0801E1F0:
+ movs r3, 0xE5
+ b _0801E1FA
+_0801E1F4:
+ strb r0, [r7, 0x7]
+_0801E1F6:
+ cmp r3, 0
+ beq _0801E204
+_0801E1FA:
+ adds r0, r3, 0
+ ldr r1, _0801E214 @ =gUnknown_02024C07
+ ldrb r1, [r1]
+ bl b_std_message
+_0801E204:
+ ldr r1, _0801E218 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+_0801E20A:
+ str r0, [r1]
+_0801E20C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801E214: .4byte gUnknown_02024C07
+_0801E218: .4byte gUnknown_02024C10
+ thumb_func_end atk0F_resultmessage
+
+ thumb_func_start atk10_printstring
+atk10_printstring: @ 801E21C
+ push {r4,lr}
+ ldr r0, _0801E24C @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801E246
+ ldr r4, _0801E250 @ =gUnknown_02024C10
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1]
+ ldrb r1, [r1, 0x2]
+ lsls r1, 8
+ orrs r0, r1
+ ldr r1, _0801E254 @ =gUnknown_02024C07
+ ldrb r1, [r1]
+ bl b_std_message
+ ldr r0, [r4]
+ adds r0, 0x3
+ str r0, [r4]
+ ldr r1, _0801E258 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x7]
+_0801E246:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801E24C: .4byte gUnknown_02024A64
+_0801E250: .4byte gUnknown_02024C10
+_0801E254: .4byte gUnknown_02024C07
+_0801E258: .4byte gUnknown_02024D1E
+ thumb_func_end atk10_printstring
+
+ thumb_func_start atk11_printstring2
+atk11_printstring2: @ 801E25C
+ push {r4,r5,lr}
+ ldr r5, _0801E290 @ =gUnknown_02024A60
+ ldr r0, _0801E294 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldr r4, _0801E298 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ movs r0, 0
+ bl dp01_build_cmdbuf_x11_TODO
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r4]
+ adds r0, 0x3
+ str r0, [r4]
+ ldr r1, _0801E29C @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x7]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801E290: .4byte gUnknown_02024A60
+_0801E294: .4byte gUnknown_02024C07
+_0801E298: .4byte gUnknown_02024C10
+_0801E29C: .4byte gUnknown_02024D1E
+ thumb_func_end atk11_printstring2
+
+ thumb_func_start atk12_waitmessage
+atk12_waitmessage: @ 801E2A0
+ push {r4-r6,lr}
+ ldr r0, _0801E2BC @ =gUnknown_02024A64
+ ldr r4, [r0]
+ cmp r4, 0
+ bne _0801E2EE
+ ldr r6, _0801E2C0 @ =gUnknown_02024D1E
+ ldrb r0, [r6, 0x7]
+ cmp r0, 0
+ bne _0801E2C8
+ ldr r1, _0801E2C4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x3
+ str r0, [r1]
+ b _0801E2EE
+ .align 2, 0
+_0801E2BC: .4byte gUnknown_02024A64
+_0801E2C0: .4byte gUnknown_02024D1E
+_0801E2C4: .4byte gUnknown_02024C10
+_0801E2C8:
+ ldr r5, _0801E2F4 @ =gUnknown_02024C10
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldr r3, _0801E2F8 @ =gUnknown_02024D18
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r1
+ bcc _0801E2EE
+ movs r1, 0
+ strh r4, [r3]
+ adds r0, r2, 0x3
+ str r0, [r5]
+ strb r1, [r6, 0x7]
+_0801E2EE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801E2F4: .4byte gUnknown_02024C10
+_0801E2F8: .4byte gUnknown_02024D18
+ thumb_func_end atk12_waitmessage
+
+ thumb_func_start atk13_printfromtable
+atk13_printfromtable: @ 801E2FC
+ push {r4,r5,lr}
+ ldr r0, _0801E340 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801E33A
+ ldr r4, _0801E344 @ =gUnknown_02024C10
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r5, _0801E348 @ =gUnknown_02024D1E
+ ldrb r0, [r5, 0x5]
+ lsls r0, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r1, _0801E34C @ =gUnknown_02024C07
+ ldrb r1, [r1]
+ bl b_std_message
+ ldr r0, [r4]
+ adds r0, 0x5
+ str r0, [r4]
+ movs r0, 0x1
+ strb r0, [r5, 0x7]
+_0801E33A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801E340: .4byte gUnknown_02024A64
+_0801E344: .4byte gUnknown_02024C10
+_0801E348: .4byte gUnknown_02024D1E
+_0801E34C: .4byte gUnknown_02024C07
+ thumb_func_end atk13_printfromtable
+
+ thumb_func_start atk14_printfromtable2
+atk14_printfromtable2: @ 801E350
+ push {r4-r6,lr}
+ ldr r0, _0801E3A0 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801E39A
+ ldr r5, _0801E3A4 @ =gUnknown_02024C10
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r6, _0801E3A8 @ =gUnknown_02024D1E
+ ldrb r0, [r6, 0x5]
+ lsls r0, 1
+ adds r1, r0
+ ldr r4, _0801E3AC @ =gUnknown_02024A60
+ ldr r0, _0801E3B0 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldrh r1, [r1]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x11_TODO
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r5]
+ adds r0, 0x5
+ str r0, [r5]
+ movs r0, 0x1
+ strb r0, [r6, 0x7]
+_0801E39A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801E3A0: .4byte gUnknown_02024A64
+_0801E3A4: .4byte gUnknown_02024C10
+_0801E3A8: .4byte gUnknown_02024D1E
+_0801E3AC: .4byte gUnknown_02024A60
+_0801E3B0: .4byte gUnknown_02024C07
+ thumb_func_end atk14_printfromtable2
+
+ thumb_func_start sub_801E3B4
+sub_801E3B4: @ 801E3B4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r0, _0801E3E4 @ =gUnknown_02024A68
+ ldrb r3, [r0]
+ cmp r1, r3
+ bge _0801E3DA
+ ldr r4, _0801E3E8 @ =gUnknown_02024A7A
+ ldrb r0, [r4]
+ cmp r0, r2
+ beq _0801E3DA
+_0801E3CC:
+ adds r1, 0x1
+ cmp r1, r3
+ bge _0801E3DA
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _0801E3CC
+_0801E3DA:
+ lsls r0, r1, 24
+ lsrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801E3E4: .4byte gUnknown_02024A68
+_0801E3E8: .4byte gUnknown_02024A7A
+ thumb_func_end sub_801E3B4
+
+ thumb_func_start sub_801E3EC
+sub_801E3EC: @ 801E3EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ movs r0, 0
+ mov r10, r0
+ movs r6, 0
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ ldr r1, _0801E430 @ =gUnknown_02024D1E
+ ldrb r3, [r1, 0x3]
+ movs r0, 0x40
+ ands r0, r3
+ adds r7, r1, 0
+ cmp r0, 0
+ beq _0801E444
+ ldr r2, _0801E434 @ =gUnknown_02024C0A
+ ldr r0, _0801E438 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r2]
+ movs r0, 0xBF
+ ands r0, r3
+ strb r0, [r7, 0x3]
+ movs r6, 0x40
+ ldr r0, _0801E43C @ =0x02000000
+ ldr r1, _0801E440 @ =gUnknown_02024C08
+ b _0801E450
+ .align 2, 0
+_0801E430: .4byte gUnknown_02024D1E
+_0801E434: .4byte gUnknown_02024C0A
+_0801E438: .4byte gUnknown_02024C07
+_0801E43C: .4byte 0x02000000
+_0801E440: .4byte gUnknown_02024C08
+_0801E444:
+ ldr r2, _0801E538 @ =gUnknown_02024C0A
+ ldr r0, _0801E53C @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r0, _0801E540 @ =0x02000000
+ ldr r1, _0801E544 @ =gUnknown_02024C07
+_0801E450:
+ ldrb r1, [r1]
+ ldr r3, _0801E548 @ =0x00016003
+ adds r0, r3
+ strb r1, [r0]
+ mov r8, r2
+ ldr r2, _0801E54C @ =gBattleMons
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x13
+ bne _0801E48A
+ ldr r0, _0801E550 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ ands r0, r1
+ cmp r0, 0
+ bne _0801E48A
+ cmp r4, 0
+ bne _0801E48A
+ ldrb r0, [r7, 0x3]
+ cmp r0, 0x9
+ bhi _0801E48A
+ bl _0801F5DC
+_0801E48A:
+ mov r1, r8
+ ldrb r0, [r1]
+ bl battle_get_per_side_status
+ ldr r2, _0801E554 @ =gUnknown_02024C7A
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r2
+ ldrh r1, [r1]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E4C4
+ ldr r0, _0801E550 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ ands r0, r1
+ cmp r0, 0
+ bne _0801E4C4
+ cmp r4, 0
+ bne _0801E4C4
+ ldr r0, _0801E558 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0x7
+ bhi _0801E4C4
+ bl _0801F5DC
+_0801E4C4:
+ ldr r3, _0801E54C @ =gBattleMons
+ ldr r2, _0801E538 @ =gUnknown_02024C0A
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r3
+ ldrh r0, [r0, 0x28]
+ mov r8, r2
+ mov r9, r3
+ cmp r0, 0
+ bne _0801E4EA
+ ldr r0, _0801E558 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0xB
+ beq _0801E4EA
+ cmp r0, 0x1F
+ beq _0801E4EA
+ bl _0801F5DC
+_0801E4EA:
+ mov r2, r8
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r0, r1
+ mov r1, r9
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E50C
+ cmp r6, 0x40
+ beq _0801E50C
+ bl _0801F5DC
+_0801E50C:
+ ldr r0, _0801E558 @ =gUnknown_02024D1E
+ ldrb r1, [r0, 0x3]
+ adds r7, r0, 0
+ cmp r1, 0x6
+ bls _0801E518
+ b _0801EB4A
+_0801E518:
+ ldr r1, _0801E55C @ =gUnknown_081FAB5C
+ ldrb r0, [r7, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0x10
+ bne _0801E528
+ b _0801E714
+_0801E528:
+ cmp r0, 0x10
+ bhi _0801E560
+ cmp r0, 0x7
+ beq _0801E57A
+ cmp r0, 0x8
+ bne _0801E536
+ b _0801E630
+_0801E536:
+ b _0801EA14
+ .align 2, 0
+_0801E538: .4byte gUnknown_02024C0A
+_0801E53C: .4byte gUnknown_02024C08
+_0801E540: .4byte 0x02000000
+_0801E544: .4byte gUnknown_02024C07
+_0801E548: .4byte 0x00016003
+_0801E54C: .4byte gBattleMons
+_0801E550: .4byte gUnknown_02024C6C
+_0801E554: .4byte gUnknown_02024C7A
+_0801E558: .4byte gUnknown_02024D1E
+_0801E55C: .4byte gUnknown_081FAB5C
+_0801E560:
+ cmp r0, 0x40
+ bne _0801E566
+ b _0801E888
+_0801E566:
+ cmp r0, 0x40
+ bhi _0801E572
+ cmp r0, 0x20
+ bne _0801E570
+ b _0801E7EA
+_0801E570:
+ b _0801EA14
+_0801E572:
+ cmp r0, 0x80
+ bne _0801E578
+ b _0801E8E4
+_0801E578:
+ b _0801EA14
+_0801E57A:
+ mov r3, r8
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r9
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x2B
+ beq _0801E5DC
+ ldr r0, _0801E5D4 @ =gUnknown_02024A60
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, _0801E5D8 @ =gUnknown_02024A68
+ ldrb r3, [r1]
+ adds r7, r0, 0
+ mov r12, r1
+ cmp r3, 0
+ beq _0801E5E8
+ mov r4, r9
+ ldr r0, [r4, 0x50]
+ movs r1, 0x70
+ ands r0, r1
+ cmp r0, 0
+ bne _0801E5E8
+ adds r1, r7, 0
+ mov r6, r9
+ adds r6, 0x50
+ movs r5, 0x58
+ movs r4, 0x70
+_0801E5B4:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r3
+ bcs _0801E5E8
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r6
+ ldr r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ beq _0801E5B4
+ b _0801E5E8
+ .align 2, 0
+_0801E5D4: .4byte gUnknown_02024A60
+_0801E5D8: .4byte gUnknown_02024A68
+_0801E5DC:
+ ldr r0, _0801E628 @ =gUnknown_02024A60
+ ldr r2, _0801E62C @ =gUnknown_02024A68
+ ldrb r1, [r2]
+ strb r1, [r0]
+ adds r7, r0, 0
+ mov r12, r2
+_0801E5E8:
+ mov r0, r8
+ ldrb r2, [r0]
+ movs r0, 0x58
+ adds r1, r2, 0
+ muls r1, r0
+ mov r0, r9
+ adds r0, 0x4C
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801E600
+ b _0801EA14
+_0801E600:
+ ldrb r0, [r7]
+ mov r3, r12
+ ldrb r3, [r3]
+ cmp r0, r3
+ beq _0801E60C
+ b _0801EA14
+_0801E60C:
+ mov r4, r9
+ adds r0, r1, r4
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x48
+ bne _0801E61A
+ b _0801EA14
+_0801E61A:
+ cmp r0, 0xF
+ bne _0801E620
+ b _0801EA14
+_0801E620:
+ adds r0, r2, 0
+ bl b_cancel_multi_turn_move_maybe
+ b _0801EA04
+ .align 2, 0
+_0801E628: .4byte gUnknown_02024A60
+_0801E62C: .4byte gUnknown_02024A68
+_0801E630:
+ mov r2, r8
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r9
+ adds r0, 0x20
+ ldrb r1, [r0]
+ cmp r1, 0x11
+ bne _0801E688
+ cmp r4, 0x1
+ beq _0801E64A
+ cmp r5, 0x80
+ bne _0801E688
+_0801E64A:
+ ldr r0, _0801E678 @ =byte_2024C06
+ strb r1, [r0]
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r1, 0x11
+ bl sub_81074C4
+ ldr r4, _0801E67C @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801E680 @ =BattleScript_1D98BD
+_0801E664:
+ str r0, [r4]
+ ldr r2, _0801E684 @ =gUnknown_02024C6C
+ ldr r1, [r2]
+ movs r0, 0x80
+ lsls r0, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E676
+ b _0801E928
+_0801E676:
+ b _0801E94C
+ .align 2, 0
+_0801E678: .4byte byte_2024C06
+_0801E67C: .4byte gUnknown_02024C10
+_0801E680: .4byte BattleScript_1D98BD
+_0801E684: .4byte gUnknown_02024C6C
+_0801E688:
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x58
+ muls r0, r1
+ add r0, r9
+ adds r1, r0, 0
+ adds r1, 0x21
+ ldrb r1, [r1]
+ cmp r1, 0x3
+ beq _0801E6AC
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _0801E6AC
+ cmp r1, 0x8
+ beq _0801E6AC
+ cmp r0, 0x8
+ bne _0801E6C6
+_0801E6AC:
+ ldr r0, _0801E710 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E6C6
+ cmp r4, 0x1
+ bne _0801E6C0
+ b _0801E98C
+_0801E6C0:
+ cmp r5, 0x80
+ bne _0801E6C6
+ b _0801E98C
+_0801E6C6:
+ mov r2, r8
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r1, r0
+ mov r4, r9
+ adds r3, r1, r4
+ adds r0, r3, 0
+ adds r0, 0x21
+ ldrb r4, [r0]
+ cmp r4, 0x3
+ bne _0801E6DE
+ b _0801EA14
+_0801E6DE:
+ adds r0, 0x1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _0801E6E8
+ b _0801EA14
+_0801E6E8:
+ cmp r4, 0x8
+ bne _0801E6EE
+ b _0801EA14
+_0801E6EE:
+ cmp r0, 0x8
+ bne _0801E6F4
+ b _0801EA14
+_0801E6F4:
+ mov r0, r9
+ adds r0, 0x4C
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801E702
+ b _0801EA14
+_0801E702:
+ adds r0, r3, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x11
+ bne _0801E70E
+ b _0801EA14
+_0801E70E:
+ b _0801EA04
+ .align 2, 0
+_0801E710: .4byte gUnknown_02024C6C
+_0801E714:
+ mov r2, r8
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r9
+ adds r0, 0x20
+ ldrb r1, [r0]
+ cmp r1, 0x29
+ bne _0801E758
+ cmp r4, 0x1
+ beq _0801E72E
+ cmp r5, 0x80
+ bne _0801E758
+_0801E72E:
+ ldr r0, _0801E74C @ =byte_2024C06
+ strb r1, [r0]
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r1, 0x29
+ bl sub_81074C4
+ ldr r4, _0801E750 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801E754 @ =BattleScript_1D98A5
+ b _0801E664
+ .align 2, 0
+_0801E74C: .4byte byte_2024C06
+_0801E750: .4byte gUnknown_02024C10
+_0801E754: .4byte BattleScript_1D98A5
+_0801E758:
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ mov r2, r9
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0xA
+ beq _0801E778
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0xA
+ bne _0801E7A8
+_0801E778:
+ ldr r0, _0801E79C @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E7A8
+ cmp r4, 0x1
+ beq _0801E78E
+ cmp r5, 0x80
+ bne _0801E7A8
+_0801E78E:
+ ldr r4, _0801E7A0 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801E7A4 @ =BattleScript_1D98A5
+ b _0801E998
+ .align 2, 0
+_0801E79C: .4byte gUnknown_02024C6C
+_0801E7A0: .4byte gUnknown_02024C10
+_0801E7A4: .4byte BattleScript_1D98A5
+_0801E7A8:
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r1, 0x58
+ adds r2, r0, 0
+ muls r2, r1
+ mov r4, r9
+ adds r1, r2, r4
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0xA
+ bne _0801E7C2
+ b _0801EA14
+_0801E7C2:
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0xA
+ bne _0801E7CE
+ b _0801EA14
+_0801E7CE:
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x29
+ bne _0801E7DA
+ b _0801EA14
+_0801E7DA:
+ mov r0, r9
+ adds r0, 0x4C
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801E7E8
+ b _0801EA14
+_0801E7E8:
+ b _0801EA04
+_0801E7EA:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0801E826
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801E826
+ ldr r0, _0801E87C @ =word_2024DB8
+ ldrh r1, [r0]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E826
+ movs r1, 0
+ str r1, [sp, 0x4]
+_0801E826:
+ ldr r4, _0801E880 @ =gBattleMons
+ ldr r0, _0801E884 @ =gUnknown_02024C0A
+ ldrb r3, [r0]
+ movs r0, 0x58
+ adds r2, r3, 0
+ muls r2, r0
+ adds r1, r2, r4
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0xF
+ bne _0801E840
+ b _0801EA14
+_0801E840:
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0xF
+ bne _0801E84C
+ b _0801EA14
+_0801E84C:
+ adds r0, r4, 0
+ adds r0, 0x4C
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801E85A
+ b _0801EA14
+_0801E85A:
+ ldr r2, [sp, 0x4]
+ cmp r2, 0
+ bne _0801E862
+ b _0801EA14
+_0801E862:
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x28
+ bne _0801E86E
+ b _0801EA14
+_0801E86E:
+ adds r0, r3, 0
+ bl b_cancel_multi_turn_move_maybe
+ movs r3, 0x1
+ mov r10, r3
+ b _0801EA14
+ .align 2, 0
+_0801E87C: .4byte word_2024DB8
+_0801E880: .4byte gBattleMons
+_0801E884: .4byte gUnknown_02024C0A
+_0801E888:
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ mov r2, r9
+ adds r0, r1, r2
+ adds r0, 0x20
+ ldrb r2, [r0]
+ cmp r2, 0x7
+ bne _0801E8D0
+ cmp r4, 0x1
+ beq _0801E8A6
+ cmp r5, 0x80
+ beq _0801E8A6
+ b _0801EA14
+_0801E8A6:
+ ldr r0, _0801E8C4 @ =byte_2024C06
+ strb r2, [r0]
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r1, 0x7
+ bl sub_81074C4
+ ldr r4, _0801E8C8 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801E8CC @ =BattleScript_1D98B1
+ b _0801E664
+ .align 2, 0
+_0801E8C4: .4byte byte_2024C06
+_0801E8C8: .4byte gUnknown_02024C10
+_0801E8CC: .4byte BattleScript_1D98B1
+_0801E8D0:
+ mov r0, r9
+ adds r0, 0x4C
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801E8DE
+ b _0801EA14
+_0801E8DE:
+ movs r4, 0x1
+ mov r10, r4
+ b _0801EA14
+_0801E8E4:
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r9
+ adds r0, 0x20
+ ldrb r1, [r0]
+ cmp r1, 0x11
+ bne _0801E952
+ cmp r4, 0x1
+ beq _0801E8FE
+ cmp r5, 0x80
+ bne _0801E952
+_0801E8FE:
+ ldr r0, _0801E938 @ =byte_2024C06
+ strb r1, [r0]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x11
+ bl sub_81074C4
+ ldr r4, _0801E93C @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801E940 @ =BattleScript_1D98BD
+ str r0, [r4]
+ ldr r2, _0801E944 @ =gUnknown_02024C6C
+ ldr r1, [r2]
+ movs r0, 0x80
+ lsls r0, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E94C
+_0801E928:
+ movs r0, 0x1
+ strb r0, [r7, 0x5]
+ ldr r0, _0801E948 @ =0xffffdfff
+ ands r1, r0
+ str r1, [r2]
+ bl _0801F5FA
+ .align 2, 0
+_0801E938: .4byte byte_2024C06
+_0801E93C: .4byte gUnknown_02024C10
+_0801E940: .4byte BattleScript_1D98BD
+_0801E944: .4byte gUnknown_02024C6C
+_0801E948: .4byte 0xffffdfff
+_0801E94C:
+ strb r0, [r7, 0x5]
+ bl _0801F5FA
+_0801E952:
+ mov r2, r8
+ ldrb r0, [r2]
+ movs r1, 0x58
+ muls r0, r1
+ add r0, r9
+ adds r1, r0, 0
+ adds r1, 0x21
+ ldrb r1, [r1]
+ cmp r1, 0x3
+ beq _0801E976
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _0801E976
+ cmp r1, 0x8
+ beq _0801E976
+ cmp r0, 0x8
+ bne _0801E9B4
+_0801E976:
+ ldr r0, _0801E9A4 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E9B4
+ cmp r4, 0x1
+ beq _0801E98C
+ cmp r5, 0x80
+ bne _0801E9B4
+_0801E98C:
+ ldr r4, _0801E9A8 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801E9AC @ =BattleScript_1D98BD
+_0801E998:
+ str r0, [r4]
+ ldr r1, _0801E9B0 @ =gUnknown_02024D1E
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ bl _0801F5FA
+ .align 2, 0
+_0801E9A4: .4byte gUnknown_02024C6C
+_0801E9A8: .4byte gUnknown_02024C10
+_0801E9AC: .4byte BattleScript_1D98BD
+_0801E9B0: .4byte gUnknown_02024D1E
+_0801E9B4:
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r6, 0x58
+ muls r0, r6
+ mov r2, r9
+ adds r2, 0x4C
+ adds r5, r0, r2
+ ldr r4, [r5]
+ cmp r4, 0
+ bne _0801EA14
+ mov r3, r9
+ adds r1, r0, r3
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r3, [r0]
+ cmp r3, 0x3
+ beq _0801EA0A
+ adds r0, 0x1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _0801EA0A
+ cmp r3, 0x8
+ beq _0801EA0A
+ cmp r0, 0x8
+ beq _0801EA0A
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x11
+ beq _0801EA14
+ mov r4, r8
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r2
+ ldr r0, [r1]
+ movs r2, 0x9
+ negs r2, r2
+ ands r0, r2
+ str r0, [r1]
+_0801EA04:
+ movs r0, 0x1
+ mov r10, r0
+ b _0801EA14
+_0801EA0A:
+ ldr r0, _0801EA58 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+_0801EA14:
+ mov r1, r10
+ cmp r1, 0x1
+ beq _0801EA1C
+ b _0801EB3C
+_0801EA1C:
+ ldr r0, _0801EA5C @ =gUnknown_02024C10
+ ldr r0, [r0]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r1, _0801EA60 @ =gUnknown_081FAB5C
+ ldr r0, _0801EA64 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r3, [r0]
+ cmp r3, 0x7
+ bne _0801EA70
+ bl Random
+ ldr r2, _0801EA68 @ =gBattleMons
+ ldr r1, _0801EA6C @ =gUnknown_02024C0A
+ ldrb r3, [r1]
+ movs r1, 0x58
+ muls r3, r1
+ adds r2, 0x4C
+ adds r3, r2
+ movs r1, 0x3
+ ands r1, r0
+ adds r1, 0x2
+ ldr r0, [r3]
+ orrs r0, r1
+ str r0, [r3]
+ b _0801EA84
+ .align 2, 0
+_0801EA58: .4byte gUnknown_02024C68
+_0801EA5C: .4byte gUnknown_02024C10
+_0801EA60: .4byte gUnknown_081FAB5C
+_0801EA64: .4byte gUnknown_02024D1E
+_0801EA68: .4byte gBattleMons
+_0801EA6C: .4byte gUnknown_02024C0A
+_0801EA70:
+ ldr r2, _0801EAD4 @ =gBattleMons
+ ldr r0, _0801EAD8 @ =gUnknown_02024C0A
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ adds r2, 0x4C
+ adds r1, r2
+ ldr r0, [r1]
+ orrs r0, r3
+ str r0, [r1]
+_0801EA84:
+ ldr r2, _0801EADC @ =gUnknown_02024C10
+ ldr r1, _0801EAE0 @ =gUnknown_081FAC4C
+ ldr r5, _0801EAE4 @ =gUnknown_02024D1E
+ ldrb r0, [r5, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r4, _0801EAE8 @ =gUnknown_02024A60
+ ldr r1, _0801EAD8 @ =gUnknown_02024C0A
+ ldrb r0, [r1]
+ strb r0, [r4]
+ ldrb r1, [r1]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r1, _0801EAEC @ =gUnknown_02024ACC
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r2, _0801EAF0 @ =gUnknown_02024C6C
+ ldr r1, [r2]
+ movs r0, 0x80
+ lsls r0, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _0801EAF8
+ movs r0, 0x1
+ strb r0, [r5, 0x5]
+ ldr r0, _0801EAF4 @ =0xffffdfff
+ ands r1, r0
+ str r1, [r2]
+ b _0801EAFA
+ .align 2, 0
+_0801EAD4: .4byte gBattleMons
+_0801EAD8: .4byte gUnknown_02024C0A
+_0801EADC: .4byte gUnknown_02024C10
+_0801EAE0: .4byte gUnknown_081FAC4C
+_0801EAE4: .4byte gUnknown_02024D1E
+_0801EAE8: .4byte gUnknown_02024A60
+_0801EAEC: .4byte gUnknown_02024ACC
+_0801EAF0: .4byte gUnknown_02024C6C
+_0801EAF4: .4byte 0xffffdfff
+_0801EAF8:
+ strb r0, [r5, 0x5]
+_0801EAFA:
+ ldr r0, _0801EB2C @ =gUnknown_02024D1E
+ ldrb r2, [r0, 0x3]
+ adds r7, r0, 0
+ cmp r2, 0x2
+ beq _0801EB14
+ cmp r2, 0x6
+ beq _0801EB14
+ cmp r2, 0x5
+ beq _0801EB14
+ cmp r2, 0x3
+ beq _0801EB14
+ bl _0801F5FA
+_0801EB14:
+ ldr r0, _0801EB30 @ =0x02000000
+ ldrb r1, [r7, 0x3]
+ ldr r2, _0801EB34 @ =0x000160ca
+ adds r0, r2
+ strb r1, [r0]
+ ldr r2, _0801EB38 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 7
+ bl _0801F4F2
+ .align 2, 0
+_0801EB2C: .4byte gUnknown_02024D1E
+_0801EB30: .4byte 0x02000000
+_0801EB34: .4byte 0x000160ca
+_0801EB38: .4byte gUnknown_02024C6C
+_0801EB3C:
+ mov r3, r10
+ cmp r3, 0
+ beq _0801EB46
+ bl _0801F5FA
+_0801EB46:
+ bl _0801F5DC
+_0801EB4A:
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ mov r0, r9
+ adds r0, 0x50
+ adds r1, r0
+ ldr r2, _0801EB84 @ =gUnknown_081FAB5C
+ ldrb r3, [r7, 0x3]
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r1, [r1]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0801EB6E
+ bl _0801F5DC
+_0801EB6E:
+ subs r0, r3, 0x7
+ cmp r0, 0x34
+ bls _0801EB78
+ bl _0801F5FA
+_0801EB78:
+ lsls r0, 2
+ ldr r1, _0801EB88 @ =_0801EB8C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801EB84: .4byte gUnknown_081FAB5C
+_0801EB88: .4byte _0801EB8C
+ .align 2, 0
+_0801EB8C:
+ .4byte _0801EC60
+ .4byte _0801ECD4
+ .4byte _0801EE4C
+ .4byte _0801ED60
+ .4byte _0801EDDC
+ .4byte _0801EE84
+ .4byte _0801EECC
+ .4byte _0801EFA8
+ .4byte _0801EFEC
+ .4byte _0801EFEC
+ .4byte _0801EFEC
+ .4byte _0801EFEC
+ .4byte _0801EFEC
+ .4byte _0801EFEC
+ .4byte _0801EFEC
+ .4byte _0801F040
+ .4byte _0801F040
+ .4byte _0801F040
+ .4byte _0801F040
+ .4byte _0801F040
+ .4byte _0801F040
+ .4byte _0801F040
+ .4byte _0801F13C
+ .4byte _0801F184
+ .4byte _0801F1A4
+ .4byte _0801F364
+ .4byte _0801F3A0
+ .4byte _0801F3BC
+ .4byte _0801F3D4
+ .4byte _0801F3EC
+ .4byte _0801F44C
+ .4byte _0801F464
+ .4byte _0801F094
+ .4byte _0801F094
+ .4byte _0801F094
+ .4byte _0801F094
+ .4byte _0801F094
+ .4byte _0801F094
+ .4byte _0801F094
+ .4byte _0801F0E8
+ .4byte _0801F0E8
+ .4byte _0801F0E8
+ .4byte _0801F0E8
+ .4byte _0801F0E8
+ .4byte _0801F0E8
+ .4byte _0801F0E8
+ .4byte _0801F4A8
+ .4byte _0801F500
+ .4byte _0801F5FA
+ .4byte _0801F5FA
+ .4byte _0801F5FA
+ .4byte _0801F5FA
+ .4byte _0801F5EC
+_0801EC60:
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r5, 0x58
+ adds r1, r0, 0
+ muls r1, r5
+ mov r2, r9
+ adds r0, r1, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x14
+ bne _0801EC7A
+ bl _0801F5DC
+_0801EC7A:
+ mov r4, r9
+ adds r4, 0x50
+ adds r0, r1, r4
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _0801EC8E
+ bl _0801F5DC
+_0801EC8E:
+ bl Random
+ mov r3, r8
+ ldrb r1, [r3]
+ adds r2, r1, 0
+ muls r2, r5
+ adds r2, r4
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ lsrs r1, 16
+ adds r1, 0x2
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ ldr r4, _0801ECC8 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r1, _0801ECCC @ =gUnknown_081FAC4C
+ ldr r0, _0801ECD0 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _0801F5F8
+ .align 2, 0
+_0801ECC8: .4byte gUnknown_02024C10
+_0801ECCC: .4byte gUnknown_081FAC4C
+_0801ECD0: .4byte gUnknown_02024D1E
+_0801ECD4:
+ mov r0, r8
+ ldrb r2, [r0]
+ movs r6, 0x58
+ adds r0, r2, 0
+ muls r0, r6
+ add r0, r9
+ adds r0, 0x20
+ ldrb r1, [r0]
+ cmp r1, 0x27
+ bne _0801ED18
+ cmp r4, 0x1
+ beq _0801ECF4
+ cmp r5, 0x80
+ beq _0801ECF4
+ bl _0801F5DC
+_0801ECF4:
+ ldr r0, _0801ED0C @ =byte_2024C06
+ strb r1, [r0]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x27
+ bl sub_81074C4
+ ldr r1, _0801ED10 @ =gUnknown_02024C10
+ ldr r0, _0801ED14 @ =gUnknown_081D98D7
+ str r0, [r1]
+ bl _0801F5FA
+ .align 2, 0
+_0801ED0C: .4byte byte_2024C06
+_0801ED10: .4byte gUnknown_02024C10
+_0801ED14: .4byte gUnknown_081D98D7
+_0801ED18:
+ adds r0, r2, 0
+ bl sub_801E3B4
+ ldr r1, _0801ED54 @ =gUnknown_02024A7E
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bhi _0801ED2E
+ bl _0801F5DC
+_0801ED2E:
+ mov r2, r8
+ ldrb r0, [r2]
+ adds r2, r0, 0
+ muls r2, r6
+ mov r0, r9
+ adds r0, 0x50
+ adds r2, r0
+ ldr r1, _0801ED58 @ =gUnknown_081FAB5C
+ ldr r0, _0801ED5C @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ orrs r1, r0
+ str r1, [r2]
+ bl _0801F5DC
+ .align 2, 0
+_0801ED54: .4byte gUnknown_02024A7E
+_0801ED58: .4byte gUnknown_081FAB5C
+_0801ED5C: .4byte gUnknown_02024D1E
+_0801ED60:
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r5, 0x58
+ muls r0, r5
+ mov r4, r9
+ adds r4, 0x50
+ adds r2, r0, r4
+ ldr r1, [r2]
+ movs r0, 0x70
+ ands r0, r1
+ cmp r0, 0
+ beq _0801ED7C
+ bl _0801F5DC
+_0801ED7C:
+ movs r0, 0x80
+ lsls r0, 5
+ orrs r1, r0
+ str r1, [r2]
+ ldr r1, _0801EDC8 @ =gUnknown_02024C54
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ ldr r1, _0801EDCC @ =gUnknown_02024BE6
+ ldrh r1, [r1]
+ strh r1, [r0]
+ bl Random
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r2, r1, 0
+ muls r2, r5
+ adds r2, r4
+ movs r1, 0x3
+ ands r1, r0
+ adds r1, 0x2
+ lsls r1, 4
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ ldr r4, _0801EDD0 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r1, _0801EDD4 @ =gUnknown_081FAC4C
+ ldr r0, _0801EDD8 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _0801F5F8
+ .align 2, 0
+_0801EDC8: .4byte gUnknown_02024C54
+_0801EDCC: .4byte gUnknown_02024BE6
+_0801EDD0: .4byte gUnknown_02024C10
+_0801EDD4: .4byte gUnknown_081FAC4C
+_0801EDD8: .4byte gUnknown_02024D1E
+_0801EDDC:
+ ldr r5, _0801EE30 @ =gUnknown_02024C07
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ bne _0801EE14
+ ldr r4, _0801EE34 @ =gUnknown_02024D1A
+ ldrh r3, [r4]
+ ldr r2, _0801EE38 @ =gBattleMons
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x2A
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, r3, r0
+ strh r0, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r3, r0
+ bls _0801EE14
+ ldr r3, _0801EE3C @ =0x0000ffff
+ adds r0, r3, 0
+ strh r0, [r4]
+_0801EE14:
+ ldr r4, _0801EE40 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r1, _0801EE44 @ =gUnknown_081FAC4C
+ ldr r0, _0801EE48 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _0801F5F8
+ .align 2, 0
+_0801EE30: .4byte gUnknown_02024C07
+_0801EE34: .4byte gUnknown_02024D1A
+_0801EE38: .4byte gBattleMons
+_0801EE3C: .4byte 0x0000ffff
+_0801EE40: .4byte gUnknown_02024C10
+_0801EE44: .4byte gUnknown_081FAC4C
+_0801EE48: .4byte gUnknown_02024D1E
+_0801EE4C:
+ mov r4, r8
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ mov r1, r9
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801EE62
+ b _0801F5DC
+_0801EE62:
+ bl Random
+ ldr r4, _0801EE80 @ =gUnknown_02024D1E
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ adds r0, 0x3
+ strb r0, [r4, 0x3]
+ movs r0, 0
+ movs r1, 0
+ bl sub_801E3EC
+ b _0801F5FA
+ .align 2, 0
+_0801EE80: .4byte gUnknown_02024D1E
+_0801EE84:
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ mov r0, r9
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 5
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _0801EEC0 @ =gUnknown_02024C54
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r1
+ ldr r1, _0801EEC4 @ =gUnknown_02024BE6
+ ldrh r1, [r1]
+ strh r1, [r0]
+ ldr r0, _0801EEC8 @ =gUnknown_02024D28
+ ldrb r1, [r2]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1, 0x1]
+ b _0801F5DC
+ .align 2, 0
+_0801EEC0: .4byte gUnknown_02024C54
+_0801EEC4: .4byte gUnknown_02024BE6
+_0801EEC8: .4byte gUnknown_02024D28
+_0801EECC:
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r6, 0x58
+ muls r0, r6
+ mov r4, r9
+ adds r4, 0x50
+ adds r0, r4
+ ldr r5, [r0]
+ movs r0, 0xE0
+ lsls r0, 8
+ ands r5, r0
+ cmp r5, 0
+ beq _0801EEE8
+ b _0801F5DC
+_0801EEE8:
+ bl Random
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r2, r1, 0
+ muls r2, r6
+ adds r2, r4
+ movs r1, 0x3
+ ands r1, r0
+ adds r1, 0x3
+ lsls r1, 13
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ ldr r2, _0801EF80 @ =0x02000000
+ mov r3, r8
+ ldrb r0, [r3]
+ lsls r0, 1
+ ldr r4, _0801EF84 @ =0x00016004
+ adds r0, r4
+ adds r0, r2
+ ldr r6, _0801EF88 @ =gUnknown_02024BE6
+ ldrh r1, [r6]
+ strb r1, [r0]
+ ldrb r0, [r3]
+ lsls r0, 1
+ ldr r1, _0801EF8C @ =0x00016005
+ adds r0, r1
+ adds r0, r2
+ ldrh r1, [r6]
+ lsrs r1, 8
+ strb r1, [r0]
+ ldrb r0, [r3]
+ ldr r3, _0801EF90 @ =0x00016020
+ adds r0, r3
+ adds r0, r2
+ ldr r1, _0801EF94 @ =gUnknown_02024C07
+ ldrb r1, [r1]
+ strb r1, [r0]
+ ldr r4, _0801EF98 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r1, _0801EF9C @ =gUnknown_081FAC4C
+ ldr r2, _0801EFA0 @ =gUnknown_02024D1E
+ ldrb r0, [r2, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r4]
+ strb r5, [r2, 0x5]
+ ldr r1, _0801EFA4 @ =gUnknown_0840164C
+ ldrh r0, [r1]
+ ldrh r4, [r6]
+ cmp r0, r4
+ bne _0801EF5C
+ b _0801F5FA
+_0801EF5C:
+ adds r3, r1, 0
+ adds r1, r6, 0
+_0801EF60:
+ ldrb r0, [r2, 0x5]
+ adds r0, 0x1
+ strb r0, [r2, 0x5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _0801EF70
+ b _0801F5FA
+_0801EF70:
+ ldrb r0, [r2, 0x5]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ ldrh r4, [r1]
+ cmp r0, r4
+ bne _0801EF60
+ b _0801F5FA
+ .align 2, 0
+_0801EF80: .4byte 0x02000000
+_0801EF84: .4byte 0x00016004
+_0801EF88: .4byte gUnknown_02024BE6
+_0801EF8C: .4byte 0x00016005
+_0801EF90: .4byte 0x00016020
+_0801EF94: .4byte gUnknown_02024C07
+_0801EF98: .4byte gUnknown_02024C10
+_0801EF9C: .4byte gUnknown_081FAC4C
+_0801EFA0: .4byte gUnknown_02024D1E
+_0801EFA4: .4byte gUnknown_0840164C
+_0801EFA8:
+ ldr r1, _0801EFD8 @ =gUnknown_02024BEC
+ ldr r0, _0801EFDC @ =gUnknown_02024BF0
+ ldr r0, [r0]
+ cmp r0, 0
+ bge _0801EFB4
+ adds r0, 0x3
+_0801EFB4:
+ asrs r0, 2
+ str r0, [r1]
+ cmp r0, 0
+ bne _0801EFC0
+ movs r0, 0x1
+ str r0, [r1]
+_0801EFC0:
+ ldr r4, _0801EFE0 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r1, _0801EFE4 @ =gUnknown_081FAC4C
+ ldr r0, _0801EFE8 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ b _0801F5F8
+ .align 2, 0
+_0801EFD8: .4byte gUnknown_02024BEC
+_0801EFDC: .4byte gUnknown_02024BF0
+_0801EFE0: .4byte gUnknown_02024C10
+_0801EFE4: .4byte gUnknown_081FAC4C
+_0801EFE8: .4byte gUnknown_02024D1E
+_0801EFEC:
+ ldrb r1, [r7, 0x3]
+ adds r1, 0xF2
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x10
+ adds r2, r6, 0
+ movs r3, 0
+ bl sub_8025E20
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _0801F008
+ b _0801F5DC
+_0801F008:
+ ldr r2, _0801F02C @ =0x02000000
+ ldrb r1, [r7, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ ldr r4, _0801F030 @ =0x000160a4
+ adds r1, r2, r4
+ strb r0, [r1]
+ ldr r0, _0801F034 @ =0x000160a5
+ adds r2, r0
+ strb r3, [r2]
+ ldr r4, _0801F038 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F03C @ =gUnknown_081D71E5
+ b _0801F5F8
+ .align 2, 0
+_0801F02C: .4byte 0x02000000
+_0801F030: .4byte 0x000160a4
+_0801F034: .4byte 0x000160a5
+_0801F038: .4byte gUnknown_02024C10
+_0801F03C: .4byte gUnknown_081D71E5
+_0801F040:
+ movs r0, 0x70
+ negs r0, r0
+ ldrb r1, [r7, 0x3]
+ adds r1, 0xEB
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r6, 0
+ movs r3, 0
+ bl sub_8025E20
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _0801F05E
+ b _0801F5DC
+_0801F05E:
+ ldr r2, _0801F080 @ =0x02000000
+ ldrb r1, [r7, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ ldr r4, _0801F084 @ =0x000160a4
+ adds r1, r2, r4
+ strb r0, [r1]
+ ldr r0, _0801F088 @ =0x000160a5
+ adds r2, r0
+ strb r3, [r2]
+ ldr r4, _0801F08C @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F090 @ =gUnknown_081D7276
+ b _0801F5F8
+ .align 2, 0
+_0801F080: .4byte 0x02000000
+_0801F084: .4byte 0x000160a4
+_0801F088: .4byte 0x000160a5
+_0801F08C: .4byte gUnknown_02024C10
+_0801F090: .4byte gUnknown_081D7276
+_0801F094:
+ ldrb r1, [r7, 0x3]
+ adds r1, 0xDA
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x20
+ adds r2, r6, 0
+ movs r3, 0
+ bl sub_8025E20
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _0801F0B0
+ b _0801F5DC
+_0801F0B0:
+ ldr r2, _0801F0D4 @ =0x02000000
+ ldrb r1, [r7, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ ldr r4, _0801F0D8 @ =0x000160a4
+ adds r1, r2, r4
+ strb r0, [r1]
+ ldr r0, _0801F0DC @ =0x000160a5
+ adds r2, r0
+ strb r3, [r2]
+ ldr r4, _0801F0E0 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F0E4 @ =gUnknown_081D71E5
+ b _0801F5F8
+ .align 2, 0
+_0801F0D4: .4byte 0x02000000
+_0801F0D8: .4byte 0x000160a4
+_0801F0DC: .4byte 0x000160a5
+_0801F0E0: .4byte gUnknown_02024C10
+_0801F0E4: .4byte gUnknown_081D71E5
+_0801F0E8:
+ movs r0, 0x60
+ negs r0, r0
+ ldrb r1, [r7, 0x3]
+ adds r1, 0xD3
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r6, 0
+ movs r3, 0
+ bl sub_8025E20
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _0801F106
+ b _0801F5DC
+_0801F106:
+ ldr r2, _0801F128 @ =0x02000000
+ ldrb r1, [r7, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ ldr r4, _0801F12C @ =0x000160a4
+ adds r1, r2, r4
+ strb r0, [r1]
+ ldr r0, _0801F130 @ =0x000160a5
+ adds r2, r0
+ strb r3, [r2]
+ ldr r4, _0801F134 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F138 @ =gUnknown_081D7276
+ b _0801F5F8
+ .align 2, 0
+_0801F128: .4byte 0x02000000
+_0801F12C: .4byte 0x000160a4
+_0801F130: .4byte 0x000160a5
+_0801F134: .4byte gUnknown_02024C10
+_0801F138: .4byte gUnknown_081D7276
+_0801F13C:
+ mov r2, r8
+ ldrb r1, [r2]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ mov r0, r9
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 15
+ orrs r0, r1
+ str r0, [r2]
+ ldr r2, _0801F178 @ =gUnknown_02024CA8
+ mov r3, r8
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x2
+ strb r1, [r0, 0x19]
+ ldr r1, _0801F17C @ =gUnknown_02024C54
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ ldr r1, _0801F180 @ =gUnknown_02024BE6
+ ldrh r1, [r1]
+ strh r1, [r0]
+ b _0801F5DC
+ .align 2, 0
+_0801F178: .4byte gUnknown_02024CA8
+_0801F17C: .4byte gUnknown_02024C54
+_0801F180: .4byte gUnknown_02024BE6
+_0801F184:
+ ldr r0, _0801F1A0 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ mov r0, r9
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 16
+_0801F19A:
+ orrs r0, r1
+ str r0, [r2]
+ b _0801F5DC
+ .align 2, 0
+_0801F1A0: .4byte gUnknown_02024C07
+_0801F1A4:
+ ldr r4, _0801F254 @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0801F1D8
+ ldr r0, _0801F258 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _0801F25C @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ bne _0801F214
+ ldr r0, _0801F260 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ beq _0801F1D8
+ b _0801F5DC
+_0801F1D8:
+ ldr r0, _0801F258 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _0801F25C @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ bne _0801F214
+ ldr r0, _0801F260 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ beq _0801F214
+ ldr r0, _0801F264 @ =gUnknown_02024DBC
+ adds r0, 0x29
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ ldr r3, _0801F268 @ =gBitTable
+ ldr r2, _0801F26C @ =gUnknown_02024A6A
+ ldr r0, _0801F254 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0801F214
+ b _0801F5DC
+_0801F214:
+ ldr r2, _0801F270 @ =gBattleMons
+ ldr r1, _0801F274 @ =gUnknown_02024C08
+ ldrb r0, [r1]
+ movs r3, 0x58
+ muls r0, r3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0x2E]
+ adds r7, r1, 0
+ mov r9, r2
+ cmp r0, 0
+ beq _0801F284
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x3C
+ bne _0801F284
+ ldr r1, _0801F278 @ =gUnknown_02024C10
+ ldr r0, _0801F27C @ =gUnknown_081D9913
+ str r0, [r1]
+ ldr r1, _0801F280 @ =byte_2024C06
+ ldrb r0, [r7]
+ muls r0, r3
+ add r0, r9
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ ldrb r1, [r1]
+ bl sub_81074C4
+ b _0801F5FA
+ .align 2, 0
+_0801F254: .4byte gUnknown_02024C07
+_0801F258: .4byte gUnknown_020239F8
+_0801F25C: .4byte 0x00000902
+_0801F260: .4byte gTrainerBattleOpponent
+_0801F264: .4byte gUnknown_02024DBC
+_0801F268: .4byte gBitTable
+_0801F26C: .4byte gUnknown_02024A6A
+_0801F270: .4byte gBattleMons
+_0801F274: .4byte gUnknown_02024C08
+_0801F278: .4byte gUnknown_02024C10
+_0801F27C: .4byte gUnknown_081D9913
+_0801F280: .4byte byte_2024C06
+_0801F284:
+ ldr r4, _0801F340 @ =gUnknown_02024C07
+ mov r10, r4
+ ldrb r1, [r4]
+ movs r0, 0x58
+ mov r8, r0
+ mov r0, r8
+ muls r0, r1
+ add r0, r9
+ ldrh r3, [r0, 0x2E]
+ cmp r3, 0
+ beq _0801F29C
+ b _0801F5DC
+_0801F29C:
+ ldrb r0, [r7]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ add r0, r9
+ ldrh r2, [r0, 0x2E]
+ adds r0, r2, 0
+ cmp r0, 0xAF
+ bne _0801F2B0
+ b _0801F5DC
+_0801F2B0:
+ cmp r0, 0
+ bne _0801F2B6
+ b _0801F5DC
+_0801F2B6:
+ lsls r0, r1, 1
+ ldr r5, _0801F344 @ =0x020160f0
+ adds r0, r5
+ ldr r1, _0801F348 @ =gUnknown_02024C04
+ strh r2, [r0]
+ strh r2, [r1]
+ ldrb r0, [r7]
+ mov r4, r8
+ muls r4, r0
+ adds r0, r4, 0
+ add r0, r9
+ movs r6, 0
+ strh r3, [r0, 0x2E]
+ ldr r4, _0801F34C @ =gUnknown_02024A60
+ mov r2, r10
+ ldrb r0, [r2]
+ strb r0, [r4]
+ str r1, [sp]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x2
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ mov r3, r10
+ ldrb r0, [r3]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldrb r0, [r7]
+ strb r0, [r4]
+ ldrb r0, [r7]
+ mov r4, r8
+ muls r4, r0
+ adds r0, r4, 0
+ mov r1, r9
+ adds r1, 0x2E
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x2
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r7]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r4, _0801F350 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F354 @ =gUnknown_081D96F6
+ str r0, [r4]
+ ldr r0, _0801F358 @ =0xfffe9f10
+ adds r5, r0
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _0801F35C @ =0x000160e8
+ adds r0, r1
+ adds r0, r5
+ strb r6, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r2, _0801F360 @ =0x000160e9
+ adds r0, r2
+ adds r0, r5
+ strb r6, [r0]
+ b _0801F5FA
+ .align 2, 0
+_0801F340: .4byte gUnknown_02024C07
+_0801F344: .4byte 0x020160f0
+_0801F348: .4byte gUnknown_02024C04
+_0801F34C: .4byte gUnknown_02024A60
+_0801F350: .4byte gUnknown_02024C10
+_0801F354: .4byte gUnknown_081D96F6
+_0801F358: .4byte 0xfffe9f10
+_0801F35C: .4byte 0x000160e8
+_0801F360: .4byte 0x000160e9
+_0801F364:
+ ldr r3, _0801F394 @ =gUnknown_02024C08
+ ldrb r1, [r3]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ mov r0, r9
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 19
+ orrs r0, r1
+ str r0, [r2]
+ ldr r2, _0801F398 @ =gUnknown_02024CA8
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _0801F39C @ =gUnknown_02024C07
+ ldrb r1, [r1]
+ strb r1, [r0, 0x14]
+ b _0801F5DC
+ .align 2, 0
+_0801F394: .4byte gUnknown_02024C08
+_0801F398: .4byte gUnknown_02024CA8
+_0801F39C: .4byte gUnknown_02024C07
+_0801F3A0:
+ ldr r0, _0801F3B8 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ mov r0, r9
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 20
+ b _0801F19A
+ .align 2, 0
+_0801F3B8: .4byte gUnknown_02024C08
+_0801F3BC:
+ ldr r4, _0801F3CC @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F3D0 @ =gUnknown_081D9224
+ b _0801F5F8
+ .align 2, 0
+_0801F3CC: .4byte gUnknown_02024C10
+_0801F3D0: .4byte gUnknown_081D9224
+_0801F3D4:
+ ldr r4, _0801F3E4 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F3E8 @ =gUnknown_081D92C0
+ b _0801F5F8
+ .align 2, 0
+_0801F3E4: .4byte gUnknown_02024C10
+_0801F3E8: .4byte gUnknown_081D92C0
+_0801F3EC:
+ ldr r6, _0801F43C @ =gUnknown_02024C08
+ ldrb r0, [r6]
+ movs r2, 0x58
+ muls r0, r2
+ mov r1, r9
+ adds r1, 0x4C
+ adds r5, r0, r1
+ ldr r4, [r5]
+ movs r0, 0x40
+ ands r0, r4
+ cmp r0, 0
+ bne _0801F406
+ b _0801F5DC
+_0801F406:
+ movs r0, 0x41
+ negs r0, r0
+ ands r4, r0
+ str r4, [r5]
+ ldr r4, _0801F440 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ strb r0, [r4]
+ ldrb r0, [r4]
+ muls r0, r2
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r4, _0801F444 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F448 @ =gUnknown_081D9635
+ b _0801F5F8
+ .align 2, 0
+_0801F43C: .4byte gUnknown_02024C08
+_0801F440: .4byte gUnknown_02024A60
+_0801F444: .4byte gUnknown_02024C10
+_0801F448: .4byte gUnknown_081D9635
+_0801F44C:
+ ldr r4, _0801F45C @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F460 @ =gUnknown_081D93FA
+ b _0801F5F8
+ .align 2, 0
+_0801F45C: .4byte gUnknown_02024C10
+_0801F460: .4byte gUnknown_081D93FA
+_0801F464:
+ ldr r4, _0801F494 @ =gUnknown_02024BEC
+ ldr r0, _0801F498 @ =gUnknown_02024BF0
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801F47A
+ movs r0, 0x1
+ str r0, [r4]
+_0801F47A:
+ ldr r4, _0801F49C @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r1, _0801F4A0 @ =gUnknown_081FAC4C
+ ldr r0, _0801F4A4 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ b _0801F5F8
+ .align 2, 0
+_0801F494: .4byte gUnknown_02024BEC
+_0801F498: .4byte gUnknown_02024BF0
+_0801F49C: .4byte gUnknown_02024C10
+_0801F4A0: .4byte gUnknown_081FAC4C
+_0801F4A4: .4byte gUnknown_02024D1E
+_0801F4A8:
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r5, 0x58
+ muls r0, r5
+ mov r4, r9
+ adds r4, 0x50
+ adds r2, r0, r4
+ ldr r1, [r2]
+ movs r0, 0xC0
+ lsls r0, 4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801F4C4
+ b _0801F5DC
+_0801F4C4:
+ movs r0, 0x80
+ lsls r0, 5
+ orrs r1, r0
+ str r1, [r2]
+ ldr r1, _0801F4F8 @ =gUnknown_02024C54
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ ldr r1, _0801F4FC @ =gUnknown_02024BE6
+ ldrh r1, [r1]
+ strh r1, [r0]
+ bl Random
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r2, r1, 0
+ muls r2, r5
+ adds r2, r4
+ movs r1, 0x1
+ ands r1, r0
+ adds r1, 0x2
+ lsls r1, 10
+ ldr r0, [r2]
+_0801F4F2:
+ orrs r0, r1
+ str r0, [r2]
+ b _0801F5FA
+ .align 2, 0
+_0801F4F8: .4byte gUnknown_02024C54
+_0801F4FC: .4byte gUnknown_02024BE6
+_0801F500:
+ mov r5, r8
+ ldrb r3, [r5]
+ movs r4, 0x58
+ adds r0, r3, 0
+ muls r0, r4
+ mov r2, r9
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r2, [r0]
+ cmp r2, 0x3C
+ bne _0801F540
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0
+ beq _0801F5DC
+ ldr r0, _0801F534 @ =byte_2024C06
+ strb r2, [r0]
+ ldr r1, _0801F538 @ =gUnknown_02024C10
+ ldr r0, _0801F53C @ =gUnknown_081D9913
+ str r0, [r1]
+ ldrb r0, [r5]
+ movs r1, 0x3C
+ bl sub_81074C4
+ b _0801F5FA
+ .align 2, 0
+_0801F534: .4byte byte_2024C06
+_0801F538: .4byte gUnknown_02024C10
+_0801F53C: .4byte gUnknown_081D9913
+_0801F540:
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0
+ beq _0801F5DC
+ adds r0, r3, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0801F5B8 @ =gUnknown_02024C04
+ mov r3, r8
+ ldrb r0, [r3]
+ muls r0, r4
+ add r0, r9
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r1]
+ ldrb r0, [r3]
+ muls r0, r4
+ add r0, r9
+ movs r5, 0
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldr r2, _0801F5BC @ =gUnknown_02024DBC
+ adds r2, 0x29
+ adds r2, r6, r2
+ ldr r3, _0801F5C0 @ =gBitTable
+ ldr r1, _0801F5C4 @ =gUnknown_02024A6A
+ mov r4, r8
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r4, _0801F5C8 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F5CC @ =gUnknown_081D944B
+ str r0, [r4]
+ ldr r1, _0801F5D0 @ =0x02000000
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 1
+ ldr r3, _0801F5D4 @ =0x000160e8
+ adds r0, r3
+ adds r0, r1
+ strb r5, [r0]
+ ldrb r0, [r2]
+ lsls r0, 1
+ ldr r4, _0801F5D8 @ =0x000160e9
+ adds r0, r4
+ adds r0, r1
+ strb r5, [r0]
+ b _0801F5FA
+ .align 2, 0
+_0801F5B8: .4byte gUnknown_02024C04
+_0801F5BC: .4byte gUnknown_02024DBC
+_0801F5C0: .4byte gBitTable
+_0801F5C4: .4byte gUnknown_02024A6A
+_0801F5C8: .4byte gUnknown_02024C10
+_0801F5CC: .4byte gUnknown_081D944B
+_0801F5D0: .4byte 0x02000000
+_0801F5D4: .4byte 0x000160e8
+_0801F5D8: .4byte 0x000160e9
+_0801F5DC:
+ ldr r1, _0801F5E8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ b _0801F5FA
+ .align 2, 0
+_0801F5E8: .4byte gUnknown_02024C10
+_0801F5EC:
+ ldr r4, _0801F60C @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F610 @ =gUnknown_081D94B0
+_0801F5F8:
+ str r0, [r4]
+_0801F5FA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801F60C: .4byte gUnknown_02024C10
+_0801F610: .4byte gUnknown_081D94B0
+ thumb_func_end sub_801E3EC
+
+ thumb_func_start atk15_seteffectwithchancetarget
+atk15_seteffectwithchancetarget: @ 801F614
+ push {r4,lr}
+ ldr r2, _0801F640 @ =gBattleMons
+ ldr r0, _0801F644 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x20
+ bne _0801F650
+ ldr r2, _0801F648 @ =gBattleMoves
+ ldr r0, _0801F64C @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x5]
+ lsls r4, r0, 1
+ b _0801F660
+ .align 2, 0
+_0801F640: .4byte gBattleMons
+_0801F644: .4byte gUnknown_02024C07
+_0801F648: .4byte gBattleMoves
+_0801F64C: .4byte gUnknown_02024BE6
+_0801F650:
+ ldr r2, _0801F680 @ =gBattleMoves
+ ldr r0, _0801F684 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r4, [r0, 0x5]
+_0801F660:
+ ldr r3, _0801F688 @ =gUnknown_02024D1E
+ ldrb r2, [r3, 0x3]
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _0801F690
+ ldr r0, _0801F68C @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801F690
+ movs r0, 0x7F
+ ands r0, r2
+ strb r0, [r3, 0x3]
+ b _0801F6BE
+ .align 2, 0
+_0801F680: .4byte gBattleMoves
+_0801F684: .4byte gUnknown_02024BE6
+_0801F688: .4byte gUnknown_02024D1E
+_0801F68C: .4byte gUnknown_02024C68
+_0801F690:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r4
+ bhi _0801F6DA
+ ldr r0, _0801F6C8 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0
+ beq _0801F6DA
+ ldr r0, _0801F6CC @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801F6DA
+ cmp r4, 0x63
+ bls _0801F6D0
+_0801F6BE:
+ movs r0, 0
+ movs r1, 0x80
+ bl sub_801E3EC
+ b _0801F6E2
+ .align 2, 0
+_0801F6C8: .4byte gUnknown_02024D1E
+_0801F6CC: .4byte gUnknown_02024C68
+_0801F6D0:
+ movs r0, 0
+ movs r1, 0
+ bl sub_801E3EC
+ b _0801F6E2
+_0801F6DA:
+ ldr r1, _0801F6F8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_0801F6E2:
+ ldr r0, _0801F6FC @ =gUnknown_02024D1E
+ movs r1, 0
+ strb r1, [r0, 0x3]
+ ldr r0, _0801F700 @ =0x02000000
+ ldr r2, _0801F704 @ =0x00016112
+ adds r0, r2
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801F6F8: .4byte gUnknown_02024C10
+_0801F6FC: .4byte gUnknown_02024D1E
+_0801F700: .4byte 0x02000000
+_0801F704: .4byte 0x00016112
+ thumb_func_end atk15_seteffectwithchancetarget
+
+ thumb_func_start sub_801F708
+sub_801F708: @ 801F708
+ push {lr}
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_801E3EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801F708
+
+ thumb_func_start sub_801F718
+sub_801F718: @ 801F718
+ push {lr}
+ movs r0, 0
+ movs r1, 0
+ bl sub_801E3EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801F718
+
+ thumb_func_start sub_801F728
+sub_801F728: @ 801F728
+ push {lr}
+ ldr r0, _0801F74C @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r2, _0801F750 @ =gUnknown_02024A60
+ strb r0, [r2]
+ ldr r3, _0801F754 @ =gUnknown_02024D1E
+ ldrb r0, [r3, 0x3]
+ cmp r0, 0x6
+ bhi _0801F75C
+ ldr r1, _0801F758 @ =gBattleMons
+ ldrb r2, [r2]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, 0x4C
+ b _0801F766
+ .align 2, 0
+_0801F74C: .4byte gUnknown_02024C10
+_0801F750: .4byte gUnknown_02024A60
+_0801F754: .4byte gUnknown_02024D1E
+_0801F758: .4byte gBattleMons
+_0801F75C:
+ ldr r1, _0801F794 @ =gBattleMons
+ ldrb r2, [r2]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, 0x50
+_0801F766:
+ adds r2, r1
+ ldr r1, _0801F798 @ =gUnknown_081FAB5C
+ ldrb r0, [r3, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ ldr r0, _0801F79C @ =gUnknown_02024D1E
+ movs r2, 0
+ strb r2, [r0, 0x3]
+ ldr r1, _0801F7A0 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ ldr r0, _0801F7A4 @ =0x02000000
+ ldr r1, _0801F7A8 @ =0x00016112
+ adds r0, r1
+ strb r2, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801F794: .4byte gBattleMons
+_0801F798: .4byte gUnknown_081FAB5C
+_0801F79C: .4byte gUnknown_02024D1E
+_0801F7A0: .4byte gUnknown_02024C10
+_0801F7A4: .4byte 0x02000000
+_0801F7A8: .4byte 0x00016112
+ thumb_func_end sub_801F728
+
+ thumb_func_start sub_801F7AC
+sub_801F7AC: @ 801F7AC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, _0801F81C @ =gUnknown_02024C10
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x2]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _0801F834
+ ldrb r0, [r2, 0x1]
+ bl sub_8015150
+ ldr r5, _0801F820 @ =gUnknown_02024A60
+ strb r0, [r5]
+ ldr r2, _0801F824 @ =gUnknown_02024C6C
+ ldr r1, _0801F828 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ bne _0801F7E6
+ b _0801FB1C
+_0801F7E6:
+ ldr r1, [r6]
+ ldrb r4, [r1, 0x3]
+ ldrb r0, [r1, 0x4]
+ lsls r0, 8
+ orrs r4, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 16
+ orrs r4, r0
+ ldrb r0, [r1, 0x6]
+ lsls r0, 24
+ orrs r4, r0
+ bl b_movescr_stack_pop_cursor
+ str r4, [r6]
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ ldr r1, _0801F82C @ =gUnknown_02024C7A
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r1
+ ldrh r2, [r0]
+ ldr r1, _0801F830 @ =0x0000fdff
+ ands r1, r2
+ strh r1, [r0]
+ b _0801FB22
+ .align 2, 0
+_0801F81C: .4byte gUnknown_02024C10
+_0801F820: .4byte gUnknown_02024A60
+_0801F824: .4byte gUnknown_02024C6C
+_0801F828: .4byte gBitTable
+_0801F82C: .4byte gUnknown_02024C7A
+_0801F830: .4byte 0x0000fdff
+_0801F834:
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x1
+ bne _0801F85C
+ ldr r1, _0801F84C @ =gUnknown_02024A60
+ ldr r0, _0801F850 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _0801F854 @ =gUnknown_02024C08
+ ldrb r7, [r0]
+ ldr r4, _0801F858 @ =gUnknown_081D8C58
+ b _0801F86A
+ .align 2, 0
+_0801F84C: .4byte gUnknown_02024A60
+_0801F850: .4byte gUnknown_02024C07
+_0801F854: .4byte gUnknown_02024C08
+_0801F858: .4byte gUnknown_081D8C58
+_0801F85C:
+ ldr r1, _0801F954 @ =gUnknown_02024A60
+ ldr r0, _0801F958 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _0801F95C @ =gUnknown_02024C07
+ ldrb r7, [r0]
+ ldr r4, _0801F960 @ =gUnknown_081D8C65
+_0801F86A:
+ ldr r0, _0801F964 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r0, _0801F968 @ =gBitTable
+ mov r12, r0
+ ldr r2, _0801F954 @ =gUnknown_02024A60
+ mov r8, r2
+ ldrb r2, [r2]
+ lsls r0, r2, 2
+ add r0, r12
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0801F886
+ b _0801FB1C
+_0801F886:
+ ldr r3, _0801F96C @ =gBattleMons
+ mov r10, r3
+ movs r5, 0x58
+ mov r9, r5
+ mov r0, r9
+ muls r0, r2
+ add r0, r10
+ ldrh r3, [r0, 0x28]
+ cmp r3, 0
+ beq _0801F89C
+ b _0801FB1C
+_0801F89C:
+ ldr r2, _0801F970 @ =0x02000000
+ lsls r1, r7, 1
+ ldr r5, _0801F974 @ =0x000160ac
+ adds r0, r1, r5
+ adds r0, r2
+ strb r3, [r0]
+ ldr r0, _0801F978 @ =0x000160ad
+ adds r1, r0
+ adds r1, r2
+ strb r3, [r1]
+ lsls r1, r7, 2
+ adds r5, 0x54
+ adds r0, r1, r5
+ adds r0, r2
+ strb r3, [r0]
+ adds r5, 0x1
+ adds r0, r1, r5
+ adds r0, r2
+ strb r3, [r0]
+ adds r5, 0x1
+ adds r0, r1, r5
+ adds r0, r2
+ strb r3, [r0]
+ ldr r0, _0801F97C @ =0x00016103
+ adds r1, r0
+ adds r1, r2
+ strb r3, [r1]
+ ldr r5, _0801F980 @ =gUnknown_02024C6C
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r0, 2
+ add r0, r12
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r5]
+ orrs r0, r1
+ str r0, [r5]
+ ldr r0, [r6]
+ adds r0, 0x7
+ bl b_movescr_stack_push
+ str r4, [r6]
+ mov r2, r8
+ ldrb r0, [r2]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801F9B0
+ ldr r0, [r5]
+ movs r1, 0x80
+ lsls r1, 15
+ orrs r0, r1
+ str r0, [r5]
+ ldr r1, _0801F984 @ =gUnknown_030042E0
+ ldrb r0, [r1]
+ cmp r0, 0xFE
+ bhi _0801F914
+ adds r0, 0x1
+ strb r0, [r1]
+_0801F914:
+ mov r0, r9
+ muls r0, r7
+ add r0, r10
+ adds r3, r0, 0
+ adds r3, 0x2A
+ mov r4, r8
+ ldrb r2, [r4]
+ mov r0, r9
+ muls r0, r2
+ add r0, r10
+ adds r1, r0, 0
+ adds r1, 0x2A
+ ldrb r0, [r3]
+ ldrb r5, [r1]
+ cmp r0, r5
+ bls _0801F9CC
+ ldrb r1, [r1]
+ subs r0, r1
+ cmp r0, 0x1D
+ ble _0801F990
+ ldr r1, _0801F988 @ =gUnknown_02024A6A
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0801F98C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x8
+ bl AdjustFriendship
+ b _0801F9CC
+ .align 2, 0
+_0801F954: .4byte gUnknown_02024A60
+_0801F958: .4byte gUnknown_02024C08
+_0801F95C: .4byte gUnknown_02024C07
+_0801F960: .4byte gUnknown_081D8C65
+_0801F964: .4byte gUnknown_02024C0C
+_0801F968: .4byte gBitTable
+_0801F96C: .4byte gBattleMons
+_0801F970: .4byte 0x02000000
+_0801F974: .4byte 0x000160ac
+_0801F978: .4byte 0x000160ad
+_0801F97C: .4byte 0x00016103
+_0801F980: .4byte gUnknown_02024C6C
+_0801F984: .4byte gUnknown_030042E0
+_0801F988: .4byte gUnknown_02024A6A
+_0801F98C: .4byte gPlayerParty
+_0801F990:
+ ldr r1, _0801F9A8 @ =gUnknown_02024A6A
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0801F9AC @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x6
+ bl AdjustFriendship
+ b _0801F9CC
+ .align 2, 0
+_0801F9A8: .4byte gUnknown_02024A6A
+_0801F9AC: .4byte gPlayerParty
+_0801F9B0:
+ ldr r1, _0801FAE0 @ =gUnknown_030042E0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0xFE
+ bhi _0801F9BC
+ adds r0, 0x1
+ strb r0, [r1, 0x1]
+_0801F9BC:
+ ldr r2, _0801FAE4 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ mov r3, r9
+ muls r3, r0
+ adds r0, r3, 0
+ add r0, r10
+ ldrh r0, [r0]
+ strh r0, [r1, 0x20]
+_0801F9CC:
+ ldr r0, _0801FAE8 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801FA02
+ ldr r6, _0801FAEC @ =gBattleMons
+ ldr r0, _0801FAF0 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ movs r5, 0x58
+ muls r0, r5
+ adds r0, r6
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801FA02
+ ldr r4, _0801FAF4 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ bl b_movescr_stack_push
+ ldr r1, _0801FAF8 @ =gUnknown_02024BEC
+ adds r0, r7, 0
+ muls r0, r5
+ adds r0, r6
+ ldrh r0, [r0, 0x28]
+ str r0, [r1]
+ ldr r0, _0801FAFC @ =gUnknown_081D9156
+ str r0, [r4]
+_0801FA02:
+ ldr r1, _0801FB00 @ =gUnknown_02024C98
+ ldr r6, _0801FB04 @ =gUnknown_02024C08
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801FA1A
+ b _0801FB22
+_0801FA1A:
+ ldr r0, _0801FAE8 @ =gUnknown_02024C6C
+ ldr r5, [r0]
+ movs r0, 0x80
+ lsls r0, 17
+ ands r5, r0
+ cmp r5, 0
+ bne _0801FB22
+ ldr r4, _0801FAF0 @ =gUnknown_02024C07
+ mov r8, r4
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _0801FB22
+ ldr r0, _0801FAEC @ =gBattleMons
+ mov r9, r0
+ mov r1, r8
+ ldrb r2, [r1]
+ movs r7, 0x58
+ adds r3, r2, 0
+ muls r3, r7
+ adds r0, r3, r0
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801FB22
+ ldr r0, _0801FB08 @ =gUnknown_02024BE6
+ ldrh r0, [r0]
+ cmp r0, 0xA5
+ beq _0801FB22
+ ldr r1, _0801FB0C @ =0x02000000
+ ldr r4, _0801FB10 @ =0x0001608c
+ adds r0, r2, r4
+ adds r0, r1
+ ldrb r4, [r0]
+ adds r0, r4, r3
+ mov r6, r9
+ adds r6, 0x24
+ adds r0, r6
+ strb r5, [r0]
+ ldr r5, _0801FAF4 @ =gUnknown_02024C10
+ ldr r0, [r5]
+ bl b_movescr_stack_push
+ ldr r0, _0801FB14 @ =gUnknown_081D9468
+ str r0, [r5]
+ ldr r5, _0801FAE4 @ =gUnknown_02024A60
+ mov r1, r8
+ ldrb r0, [r1]
+ strb r0, [r5]
+ adds r1, r4, 0
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r5]
+ muls r0, r7
+ adds r0, r6
+ adds r0, r4
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _0801FB18 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ lsls r4, 1
+ mov r2, r8
+ ldrb r0, [r2]
+ muls r0, r7
+ adds r0, r4, r0
+ mov r2, r9
+ adds r2, 0xC
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1, 0x2]
+ mov r3, r8
+ ldrb r0, [r3]
+ muls r0, r7
+ adds r4, r0
+ adds r4, r2
+ ldrh r0, [r4]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ b _0801FB22
+ .align 2, 0
+_0801FAE0: .4byte gUnknown_030042E0
+_0801FAE4: .4byte gUnknown_02024A60
+_0801FAE8: .4byte gUnknown_02024C6C
+_0801FAEC: .4byte gBattleMons
+_0801FAF0: .4byte gUnknown_02024C07
+_0801FAF4: .4byte gUnknown_02024C10
+_0801FAF8: .4byte gUnknown_02024BEC
+_0801FAFC: .4byte gUnknown_081D9156
+_0801FB00: .4byte gUnknown_02024C98
+_0801FB04: .4byte gUnknown_02024C08
+_0801FB08: .4byte gUnknown_02024BE6
+_0801FB0C: .4byte 0x02000000
+_0801FB10: .4byte 0x0001608c
+_0801FB14: .4byte gUnknown_081D9468
+_0801FB18: .4byte gUnknown_030041C0
+_0801FB1C:
+ ldr r0, [r6]
+ adds r0, 0x7
+ str r0, [r6]
+_0801FB22:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801F7AC
+
+ thumb_func_start sub_801FB34
+sub_801FB34: @ 801FB34
+ push {r4,r5,lr}
+ ldr r0, _0801FB64 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801FB5E
+ ldr r5, _0801FB68 @ =gUnknown_02024C10
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _0801FB6C @ =gUnknown_02024A60
+ strb r0, [r4]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x0A_A_A_A
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+_0801FB5E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801FB64: .4byte gUnknown_02024A64
+_0801FB68: .4byte gUnknown_02024C10
+_0801FB6C: .4byte gUnknown_02024A60
+ thumb_func_end sub_801FB34
+
+ thumb_func_start atkE2_cmde2
+atkE2_cmde2: @ 801FB70
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r0, _0801FBC4 @ =gUnknown_02024A64
+ ldr r6, [r0]
+ cmp r6, 0
+ bne _0801FBBC
+ ldr r5, _0801FBC8 @ =gUnknown_02024C10
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _0801FBCC @ =gUnknown_02024A60
+ strb r0, [r4]
+ ldr r1, _0801FBD0 @ =gBattleMons
+ ldrb r0, [r4]
+ movs r2, 0x58
+ muls r0, r2
+ adds r1, 0x4C
+ adds r0, r1
+ str r6, [r0]
+ ldrb r0, [r4]
+ muls r0, r2
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ bl sub_8010F48
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+_0801FBBC:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801FBC4: .4byte gUnknown_02024A64
+_0801FBC8: .4byte gUnknown_02024C10
+_0801FBCC: .4byte gUnknown_02024A60
+_0801FBD0: .4byte gBattleMons
+ thumb_func_end atkE2_cmde2
+
+ thumb_func_start atk1C_jumpifstatus
+atk1C_jumpifstatus: @ 801FBD4
+ push {r4,r5,lr}
+ ldr r5, _0801FC30 @ =gUnknown_02024C10
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [r5]
+ ldrb r4, [r2, 0x2]
+ ldrb r1, [r2, 0x3]
+ lsls r1, 8
+ adds r4, r1
+ ldrb r1, [r2, 0x4]
+ lsls r1, 16
+ adds r4, r1
+ ldrb r1, [r2, 0x5]
+ lsls r1, 24
+ adds r4, r1
+ ldrb r3, [r2, 0x6]
+ ldrb r1, [r2, 0x7]
+ lsls r1, 8
+ adds r3, r1
+ ldrb r1, [r2, 0x8]
+ lsls r1, 16
+ adds r3, r1
+ ldrb r1, [r2, 0x9]
+ lsls r1, 24
+ adds r3, r1
+ ldr r2, _0801FC34 @ =gBattleMons
+ movs r1, 0x58
+ muls r1, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r1, r0
+ ldr r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ beq _0801FC38
+ adds r0, r1, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801FC38
+ str r3, [r5]
+ b _0801FC40
+ .align 2, 0
+_0801FC30: .4byte gUnknown_02024C10
+_0801FC34: .4byte gBattleMons
+_0801FC38:
+ ldr r1, _0801FC48 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0xA
+ str r0, [r1]
+_0801FC40:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801FC48: .4byte gUnknown_02024C10
+ thumb_func_end atk1C_jumpifstatus
+
+ thumb_func_start atk1D_jumpifsecondarystatus
+atk1D_jumpifsecondarystatus: @ 801FC4C
+ push {r4,r5,lr}
+ ldr r5, _0801FCA8 @ =gUnknown_02024C10
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [r5]
+ ldrb r4, [r2, 0x2]
+ ldrb r1, [r2, 0x3]
+ lsls r1, 8
+ adds r4, r1
+ ldrb r1, [r2, 0x4]
+ lsls r1, 16
+ adds r4, r1
+ ldrb r1, [r2, 0x5]
+ lsls r1, 24
+ adds r4, r1
+ ldrb r3, [r2, 0x6]
+ ldrb r1, [r2, 0x7]
+ lsls r1, 8
+ adds r3, r1
+ ldrb r1, [r2, 0x8]
+ lsls r1, 16
+ adds r3, r1
+ ldrb r1, [r2, 0x9]
+ lsls r1, 24
+ adds r3, r1
+ ldr r2, _0801FCAC @ =gBattleMons
+ movs r1, 0x58
+ muls r1, r0
+ adds r0, r2, 0
+ adds r0, 0x50
+ adds r0, r1, r0
+ ldr r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ beq _0801FCB0
+ adds r0, r1, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801FCB0
+ str r3, [r5]
+ b _0801FCB8
+ .align 2, 0
+_0801FCA8: .4byte gUnknown_02024C10
+_0801FCAC: .4byte gBattleMons
+_0801FCB0:
+ ldr r1, _0801FCC0 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0xA
+ str r0, [r1]
+_0801FCB8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801FCC0: .4byte gUnknown_02024C10
+ thumb_func_end atk1D_jumpifsecondarystatus
+
+ thumb_func_start atk1E_jumpifability
+atk1E_jumpifability: @ 801FCC4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r6, _0801FD18 @ =gUnknown_02024C10
+ ldr r2, [r6]
+ ldrb r5, [r2, 0x2]
+ mov r8, r5
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ adds r7, r1, r0
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x8
+ bne _0801FD24
+ ldr r0, _0801FD1C @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xD
+ adds r2, r5, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _0801FDA0
+ ldr r1, _0801FD20 @ =byte_2024C06
+ strb r5, [r1]
+ str r7, [r6]
+ subs r4, 0x1
+ lsls r0, r4, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ b _0801FD80
+ .align 2, 0
+_0801FD18: .4byte gUnknown_02024C10
+_0801FD1C: .4byte gUnknown_02024C07
+_0801FD20: .4byte byte_2024C06
+_0801FD24:
+ cmp r0, 0x9
+ bne _0801FD5C
+ ldr r0, _0801FD54 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xC
+ adds r2, r5, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _0801FDA0
+ ldr r1, _0801FD58 @ =byte_2024C06
+ strb r5, [r1]
+ str r7, [r6]
+ subs r4, 0x1
+ lsls r0, r4, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ b _0801FD80
+ .align 2, 0
+_0801FD54: .4byte gUnknown_02024C07
+_0801FD58: .4byte byte_2024C06
+_0801FD5C:
+ ldrb r0, [r2, 0x1]
+ bl sub_8015150
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _0801FD90 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r1, [r0]
+ cmp r1, r8
+ bne _0801FDA0
+ ldr r0, _0801FD94 @ =byte_2024C06
+ strb r1, [r0]
+ str r7, [r6]
+ ldrb r1, [r0]
+ adds r0, r4, 0
+_0801FD80:
+ bl sub_81074C4
+ ldr r0, _0801FD98 @ =0x02000000
+ ldr r1, _0801FD9C @ =0x000160f8
+ adds r0, r1
+ strb r4, [r0]
+ b _0801FDA6
+ .align 2, 0
+_0801FD90: .4byte gBattleMons
+_0801FD94: .4byte byte_2024C06
+_0801FD98: .4byte 0x02000000
+_0801FD9C: .4byte 0x000160f8
+_0801FDA0:
+ ldr r0, [r6]
+ adds r0, 0x7
+ str r0, [r6]
+_0801FDA6:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end atk1E_jumpifability
+
+ thumb_func_start sub_801FDB4
+sub_801FDB4: @ 801FDB4
+ push {r4-r6,lr}
+ ldr r0, _0801FDCC @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r4, [r0, 0x1]
+ cmp r4, 0x1
+ bne _0801FDD4
+ ldr r0, _0801FDD0 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ b _0801FDDE
+ .align 2, 0
+_0801FDCC: .4byte gUnknown_02024C10
+_0801FDD0: .4byte gUnknown_02024C07
+_0801FDD4:
+ ldr r0, _0801FE14 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ movs r4, 0x1
+_0801FDDE:
+ ands r4, r0
+ ldr r6, _0801FE18 @ =gUnknown_02024C10
+ ldr r3, [r6]
+ ldrb r2, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r1, [r3, 0x4]
+ ldrb r0, [r3, 0x5]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r3, 0x7]
+ lsls r0, 24
+ adds r5, r1, r0
+ ldr r1, _0801FE1C @ =gUnknown_02024C7A
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ beq _0801FE20
+ str r5, [r6]
+ b _0801FE26
+ .align 2, 0
+_0801FE14: .4byte gUnknown_02024C08
+_0801FE18: .4byte gUnknown_02024C10
+_0801FE1C: .4byte gUnknown_02024C7A
+_0801FE20:
+ adds r0, r3, 0
+ adds r0, 0x8
+ str r0, [r6]
+_0801FE26:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801FDB4
+
+ thumb_func_start sub_801FE2C
+sub_801FE2C: @ 801FE2C
+ push {r4,r5,lr}
+ movs r5, 0
+ ldr r4, _0801FE60 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0801FE64 @ =gBattleMons
+ ldr r3, [r4]
+ movs r1, 0x58
+ muls r0, r1
+ ldrb r1, [r3, 0x3]
+ adds r0, r1
+ adds r2, 0x18
+ adds r0, r2
+ ldrb r2, [r0]
+ ldrb r0, [r3, 0x2]
+ cmp r0, 0x5
+ bhi _0801FEEA
+ lsls r0, 2
+ ldr r1, _0801FE68 @ =_0801FE6C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801FE60: .4byte gUnknown_02024C10
+_0801FE64: .4byte gBattleMons
+_0801FE68: .4byte _0801FE6C
+ .align 2, 0
+_0801FE6C:
+ .4byte _0801FE84
+ .4byte _0801FE94
+ .4byte _0801FEA4
+ .4byte _0801FEB4
+ .4byte _0801FEC4
+ .4byte _0801FED8
+_0801FE84:
+ ldr r0, _0801FE90 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r2, r0
+ bne _0801FEEA
+ b _0801FEE4
+ .align 2, 0
+_0801FE90: .4byte gUnknown_02024C10
+_0801FE94:
+ ldr r0, _0801FEA0 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r2, r0
+ beq _0801FEEA
+ b _0801FEE4
+ .align 2, 0
+_0801FEA0: .4byte gUnknown_02024C10
+_0801FEA4:
+ ldr r0, _0801FEB0 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r2, r0
+ bls _0801FEEA
+ b _0801FEE4
+ .align 2, 0
+_0801FEB0: .4byte gUnknown_02024C10
+_0801FEB4:
+ ldr r0, _0801FEC0 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r2, r0
+ bcs _0801FEEA
+ b _0801FEE4
+ .align 2, 0
+_0801FEC0: .4byte gUnknown_02024C10
+_0801FEC4:
+ ldr r0, _0801FED4 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ ands r2, r0
+ cmp r2, 0
+ beq _0801FEEA
+ b _0801FEE4
+ .align 2, 0
+_0801FED4: .4byte gUnknown_02024C10
+_0801FED8:
+ ldr r0, _0801FF0C @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ ands r2, r0
+ cmp r2, 0
+ bne _0801FEEA
+_0801FEE4:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_0801FEEA:
+ cmp r5, 0
+ beq _0801FF10
+ ldr r3, _0801FF0C @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r3]
+ b _0801FF18
+ .align 2, 0
+_0801FF0C: .4byte gUnknown_02024C10
+_0801FF10:
+ ldr r1, _0801FF20 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x9
+ str r0, [r1]
+_0801FF18:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801FF20: .4byte gUnknown_02024C10
+ thumb_func_end sub_801FE2C
+
+ thumb_func_start atk21_jumpifspecialstatusflag
+atk21_jumpifspecialstatusflag: @ 801FF24
+ push {r4-r6,lr}
+ ldr r4, _0801FF78 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r5, _0801FF7C @ =gUnknown_02024A60
+ strb r0, [r5]
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ adds r6, r1, r0
+ ldrb r1, [r2, 0x7]
+ ldrb r0, [r2, 0x8]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x9]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0xA]
+ lsls r0, 24
+ adds r3, r1, r0
+ ldrb r0, [r2, 0x6]
+ cmp r0, 0
+ beq _0801FF84
+ ldr r0, _0801FF80 @ =gUnknown_02024C98
+ ldrb r1, [r5]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ ands r0, r6
+ cmp r0, 0
+ bne _0801FF9C
+ b _0801FF94
+ .align 2, 0
+_0801FF78: .4byte gUnknown_02024C10
+_0801FF7C: .4byte gUnknown_02024A60
+_0801FF80: .4byte gUnknown_02024C98
+_0801FF84:
+ ldr r0, _0801FF98 @ =gUnknown_02024C98
+ ldrb r1, [r5]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ ands r0, r6
+ cmp r0, 0
+ beq _0801FF9C
+_0801FF94:
+ str r3, [r4]
+ b _0801FFA2
+ .align 2, 0
+_0801FF98: .4byte gUnknown_02024C98
+_0801FF9C:
+ adds r0, r2, 0
+ adds r0, 0xB
+ str r0, [r4]
+_0801FFA2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end atk21_jumpifspecialstatusflag
+
+ thumb_func_start sub_801FFA8
+sub_801FFA8: @ 801FFA8
+ push {r4-r6,lr}
+ ldr r4, _0801FFF0 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, [r4]
+ ldrb r5, [r3, 0x2]
+ ldrb r2, [r3, 0x3]
+ ldrb r1, [r3, 0x4]
+ lsls r1, 8
+ adds r2, r1
+ ldrb r1, [r3, 0x5]
+ lsls r1, 16
+ adds r2, r1
+ ldrb r1, [r3, 0x6]
+ lsls r1, 24
+ adds r6, r2, r1
+ ldr r2, _0801FFF4 @ =gBattleMons
+ movs r1, 0x58
+ muls r0, r1
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r5
+ beq _0801FFEC
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, r5
+ bne _0801FFF8
+_0801FFEC:
+ str r6, [r4]
+ b _0801FFFC
+ .align 2, 0
+_0801FFF0: .4byte gUnknown_02024C10
+_0801FFF4: .4byte gBattleMons
+_0801FFF8:
+ adds r0, r3, 0x7
+ str r0, [r4]
+_0801FFFC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801FFA8
+
+ thumb_func_start sub_8020004
+sub_8020004: @ 8020004
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r6, 0
+ ldr r0, _0802004C @ =0x0201605c
+ mov r10, r0
+ ldr r0, _08020050 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r1, _08020054 @ =gUnknown_02024C09
+ strb r0, [r1]
+ ldr r2, _08020058 @ =gUnknown_02024DEA
+ movs r1, 0x2
+ ands r1, r0
+ lsls r1, 24
+ lsrs r1, 25
+ adds r1, r2
+ ldrb r1, [r1]
+ mov r8, r1
+ mov r0, r10
+ subs r0, 0x4D
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bls _08020040
+ bl _08020996
+_08020040:
+ lsls r0, 2
+ ldr r1, _0802005C @ =_08020060
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0802004C: .4byte 0x0201605c
+_08020050: .4byte gUnknown_02024C10
+_08020054: .4byte gUnknown_02024C09
+_08020058: .4byte gUnknown_02024DEA
+_0802005C: .4byte _08020060
+ .align 2, 0
+_08020060:
+ .4byte _0802007C
+ .4byte _080200FC
+ .4byte _08020216
+ .4byte _0802055C
+ .4byte _08020648
+ .4byte _08020910
+ .4byte _0802096C
+_0802007C:
+ ldr r4, _080200A8 @ =gUnknown_02024C09
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08020098
+ ldr r0, _080200AC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _080200B0 @ =0x00000982
+ ands r0, r1
+ cmp r0, 0
+ beq _080200BC
+_08020098:
+ ldr r0, _080200B4 @ =0x02000000
+ ldr r1, _080200B8 @ =0x0001600f
+ adds r0, r1
+ movs r1, 0x6
+ strb r1, [r0]
+ bl _08020996
+ .align 2, 0
+_080200A8: .4byte gUnknown_02024C09
+_080200AC: .4byte gUnknown_020239F8
+_080200B0: .4byte 0x00000982
+_080200B4: .4byte 0x02000000
+_080200B8: .4byte 0x0001600f
+_080200BC:
+ ldr r2, _080200E8 @ =0x02000000
+ ldr r3, _080200EC @ =0x0001600f
+ adds r1, r2, r3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080200F0 @ =0x00016113
+ adds r2, r0
+ ldr r3, _080200F4 @ =gBitTable
+ ldr r1, _080200F8 @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ bl _08020996
+ .align 2, 0
+_080200E8: .4byte 0x02000000
+_080200EC: .4byte 0x0001600f
+_080200F0: .4byte 0x00016113
+_080200F4: .4byte gBitTable
+_080200F8: .4byte gUnknown_02024A6A
+_080200FC:
+ movs r5, 0
+ movs r7, 0
+ ldr r1, _08020150 @ =gSaveBlock1 + 0x3688
+ mov r9, r1
+_08020104:
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _08020154 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0802016A
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0802016A
+ ldr r0, _08020158 @ =gBitTable
+ lsls r1, r7, 2
+ adds r1, r0
+ ldr r0, [r1]
+ mov r2, r8
+ ands r0, r2
+ cmp r0, 0
+ beq _08020138
+ adds r5, 0x1
+_08020138:
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0802015C
+ mov r3, r9
+ ldrb r4, [r3]
+ b _08020164
+ .align 2, 0
+_08020150: .4byte gSaveBlock1 + 0x3688
+_08020154: .4byte gPlayerParty
+_08020158: .4byte gBitTable
+_0802015C:
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08020164:
+ cmp r4, 0x19
+ bne _0802016A
+ adds r6, 0x1
+_0802016A:
+ adds r7, 0x1
+ cmp r7, 0x5
+ ble _08020104
+ ldr r3, _080201D0 @ =gBaseStats
+ ldr r2, _080201D4 @ =gBattleMons
+ ldr r0, _080201D8 @ =gUnknown_02024C09
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldrh r2, [r1]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrb r2, [r0, 0x9]
+ adds r1, 0x2A
+ ldrb r0, [r1]
+ muls r0, r2
+ movs r1, 0x7
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r6, 0
+ beq _080201E0
+ lsrs r4, r0, 17
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl __divsi3
+ mov r1, r10
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080201B6
+ movs r0, 0x1
+ strh r0, [r1]
+_080201B6:
+ ldr r5, _080201DC @ =gUnknown_02024DEE
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl __divsi3
+ strh r0, [r5]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080201FA
+ movs r0, 0x1
+ strh r0, [r5]
+ b _080201FA
+ .align 2, 0
+_080201D0: .4byte gBaseStats
+_080201D4: .4byte gBattleMons
+_080201D8: .4byte gUnknown_02024C09
+_080201DC: .4byte gUnknown_02024DEE
+_080201E0:
+ adds r0, r1, 0
+ adds r1, r5, 0
+ bl __divsi3
+ mov r2, r10
+ strh r0, [r2]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080201F6
+ movs r0, 0x1
+ strh r0, [r2]
+_080201F6:
+ ldr r0, _08020248 @ =gUnknown_02024DEE
+ strh r6, [r0]
+_080201FA:
+ ldr r1, _0802024C @ =0x02000000
+ ldr r3, _08020250 @ =0x0001600f
+ adds r2, r1, r3
+ ldrb r0, [r2]
+ adds r0, 0x1
+ movs r3, 0
+ strb r0, [r2]
+ ldr r2, _08020254 @ =0x00016018
+ adds r0, r1, r2
+ strb r3, [r0]
+ ldr r3, _08020258 @ =0x0001605f
+ adds r1, r3
+ mov r0, r8
+ strb r0, [r1]
+_08020216:
+ ldr r0, _0802025C @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08020220
+ b _08020996
+_08020220:
+ ldr r0, _0802024C @ =0x02000000
+ ldr r1, _08020254 @ =0x00016018
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08020260 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0802026C
+ ldr r0, _08020264 @ =gSaveBlock1
+ ldr r2, _08020268 @ =0x00003688
+ adds r0, r2
+ ldrb r4, [r0]
+ b _08020274
+ .align 2, 0
+_08020248: .4byte gUnknown_02024DEE
+_0802024C: .4byte 0x02000000
+_08020250: .4byte 0x0001600f
+_08020254: .4byte 0x00016018
+_08020258: .4byte 0x0001605f
+_0802025C: .4byte gUnknown_02024A64
+_08020260: .4byte gPlayerParty
+_08020264: .4byte gSaveBlock1
+_08020268: .4byte 0x00003688
+_0802026C:
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08020274:
+ ldr r5, _08020294 @ =0x02000000
+ cmp r4, 0x19
+ beq _080202A0
+ ldr r3, _08020298 @ =0x0001605f
+ adds r1, r5, r3
+ ldrb r0, [r1]
+ movs r2, 0x1
+ ands r2, r0
+ cmp r2, 0
+ bne _080202A0
+ lsrs r0, 1
+ strb r0, [r1]
+ ldr r0, _0802029C @ =0x0001600f
+ adds r1, r5, r0
+ b _080202C8
+ .align 2, 0
+_08020294: .4byte 0x02000000
+_08020298: .4byte 0x0001605f
+_0802029C: .4byte 0x0001600f
+_080202A0:
+ ldr r1, _080202D4 @ =0x00016018
+ adds r0, r5, r1
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080202D8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x38
+ bl GetMonData
+ cmp r0, 0x64
+ bne _080202E8
+ ldr r2, _080202DC @ =0x0001605f
+ adds r1, r5, r2
+ ldrb r0, [r1]
+ lsrs r0, 1
+ movs r2, 0
+ strb r0, [r1]
+ ldr r3, _080202E0 @ =0x0001600f
+ adds r1, r5, r3
+_080202C8:
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r0, _080202E4 @ =gUnknown_02024BEC
+ str r2, [r0]
+ b _08020996
+ .align 2, 0
+_080202D4: .4byte 0x00016018
+_080202D8: .4byte gPlayerParty
+_080202DC: .4byte 0x0001605f
+_080202E0: .4byte 0x0001600f
+_080202E4: .4byte gUnknown_02024BEC
+_080202E8:
+ ldr r0, _0802034C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08020316
+ ldr r0, _08020350 @ =gBattleMons
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08020316
+ ldr r0, _08020354 @ =0x0001601b
+ adds r5, r0
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _08020316
+ bl sub_80325B8
+ ldr r0, _08020358 @ =0x00000161
+ bl PlayBGM
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+_08020316:
+ ldr r5, _0802035C @ =0x02000000
+ ldr r1, _08020360 @ =0x00016018
+ adds r0, r5, r1
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08020364 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _08020332
+ b _0802051E
+_08020332:
+ ldr r2, _08020368 @ =0x0001605f
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ movs r3, 0x1
+ ands r3, r0
+ cmp r3, 0
+ beq _08020370
+ ldr r1, _0802036C @ =gUnknown_02024BEC
+ mov r3, r10
+ ldrh r0, [r3]
+ str r0, [r1]
+ mov r8, r1
+ b _08020376
+ .align 2, 0
+_0802034C: .4byte gUnknown_020239F8
+_08020350: .4byte gBattleMons
+_08020354: .4byte 0x0001601b
+_08020358: .4byte 0x00000161
+_0802035C: .4byte 0x02000000
+_08020360: .4byte 0x00016018
+_08020364: .4byte gPlayerParty
+_08020368: .4byte 0x0001605f
+_0802036C: .4byte gUnknown_02024BEC
+_08020370:
+ ldr r0, _080203EC @ =gUnknown_02024BEC
+ str r3, [r0]
+ mov r8, r0
+_08020376:
+ cmp r4, 0x19
+ bne _08020386
+ ldr r0, _080203F0 @ =gUnknown_02024DEE
+ ldrh r1, [r0]
+ mov r2, r8
+ ldr r0, [r2]
+ adds r0, r1
+ str r0, [r2]
+_08020386:
+ cmp r4, 0x28
+ bne _0802039C
+ mov r3, r8
+ ldr r1, [r3]
+ movs r0, 0x96
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ mov r1, r8
+ str r0, [r1]
+_0802039C:
+ ldr r0, _080203F4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080203B8
+ ldr r4, _080203EC @ =gUnknown_02024BEC
+ ldr r1, [r4]
+ movs r0, 0x96
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+_080203B8:
+ ldr r0, _080203F8 @ =0x02000000
+ ldr r2, _080203FC @ =0x00016018
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08020400 @ =gPlayerParty
+ adds r0, r1
+ bl sub_8040AA4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08020404
+ ldr r4, _080203EC @ =gUnknown_02024BEC
+ ldr r1, [r4]
+ movs r0, 0x96
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ movs r7, 0xA5
+ lsls r7, 1
+ mov r8, r4
+ b _0802040A
+ .align 2, 0
+_080203EC: .4byte gUnknown_02024BEC
+_080203F0: .4byte gUnknown_02024DEE
+_080203F4: .4byte gUnknown_020239F8
+_080203F8: .4byte 0x02000000
+_080203FC: .4byte 0x00016018
+_08020400: .4byte gPlayerParty
+_08020404:
+ ldr r7, _0802043C @ =0x00000149
+ ldr r3, _08020440 @ =gUnknown_02024BEC
+ mov r8, r3
+_0802040A:
+ ldr r0, _08020444 @ =gUnknown_020239F8
+ ldrh r0, [r0]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08020488
+ ldr r1, _08020448 @ =gUnknown_02024A6A
+ ldr r0, _0802044C @ =0x02000000
+ ldr r3, _08020450 @ =0x00016018
+ adds r2, r0, r3
+ ldrh r1, [r1, 0x4]
+ adds r5, r0, 0
+ ldr r4, _08020454 @ =gBitTable
+ ldr r3, _08020458 @ =gUnknown_02024C0C
+ ldrb r2, [r2]
+ cmp r1, r2
+ bne _08020460
+ ldrb r1, [r3]
+ ldr r0, [r4, 0x8]
+ ands r1, r0
+ cmp r1, 0
+ bne _08020460
+ ldr r0, _0802045C @ =0x000160a2
+ adds r1, r5, r0
+ b _0802047C
+ .align 2, 0
+_0802043C: .4byte 0x00000149
+_08020440: .4byte gUnknown_02024BEC
+_08020444: .4byte gUnknown_020239F8
+_08020448: .4byte gUnknown_02024A6A
+_0802044C: .4byte 0x02000000
+_08020450: .4byte 0x00016018
+_08020454: .4byte gBitTable
+_08020458: .4byte gUnknown_02024C0C
+_0802045C: .4byte 0x000160a2
+_08020460:
+ ldrb r2, [r3]
+ ldr r0, [r4]
+ ands r2, r0
+ cmp r2, 0
+ bne _08020478
+ ldr r1, _08020474 @ =0x000160a2
+ adds r0, r5, r1
+ strb r2, [r0]
+ b _08020490
+ .align 2, 0
+_08020474: .4byte 0x000160a2
+_08020478:
+ ldr r2, _08020484 @ =0x000160a2
+ adds r1, r5, r2
+_0802047C:
+ movs r0, 0x2
+ strb r0, [r1]
+ b _08020490
+ .align 2, 0
+_08020484: .4byte 0x000160a2
+_08020488:
+ ldr r0, _08020530 @ =0x02000000
+ ldr r3, _08020534 @ =0x000160a2
+ adds r0, r3
+ strb r1, [r0]
+_08020490:
+ ldr r1, _08020538 @ =gUnknown_030041C0
+ movs r3, 0
+ movs r2, 0xFD
+ strb r2, [r1]
+ movs r5, 0x4
+ strb r5, [r1, 0x1]
+ ldr r4, _08020530 @ =0x02000000
+ ldr r0, _08020534 @ =0x000160a2
+ adds r6, r4, r0
+ ldrb r0, [r6]
+ strb r0, [r1, 0x2]
+ ldr r0, _0802053C @ =0x00016018
+ adds r4, r0
+ ldrb r0, [r4]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08020540 @ =gUnknown_03004290
+ strb r2, [r1]
+ strb r3, [r1, 0x1]
+ strb r7, [r1, 0x2]
+ movs r3, 0xFF
+ lsls r3, 8
+ ands r7, r3
+ asrs r0, r7, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1, 0x4]
+ ldr r1, _08020544 @ =gUnknown_030042B0
+ strb r2, [r1]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ strb r5, [r1, 0x2]
+ movs r0, 0x5
+ strb r0, [r1, 0x3]
+ mov r0, r8
+ ldr r2, [r0]
+ strb r2, [r1, 0x4]
+ adds r0, r2, 0
+ ands r0, r3
+ asrs r0, 8
+ strb r0, [r1, 0x5]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r2
+ asrs r0, 16
+ strb r0, [r1, 0x6]
+ lsrs r2, 24
+ strb r2, [r1, 0x7]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1, 0x8]
+ ldrb r1, [r6]
+ movs r0, 0xD
+ bl b_std_message
+ ldrb r1, [r4]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08020548 @ =gPlayerParty
+ adds r0, r1
+ ldr r3, _0802054C @ =gBattleMons
+ ldr r1, _08020550 @ =gUnknown_02024C09
+ ldrb r2, [r1]
+ movs r1, 0x58
+ muls r1, r2
+ adds r1, r3
+ ldrh r1, [r1]
+ bl MonGainEVs
+_0802051E:
+ ldr r1, _08020530 @ =0x02000000
+ ldr r3, _08020554 @ =0x0001605f
+ adds r2, r1, r3
+ ldrb r0, [r2]
+ lsrs r0, 1
+ strb r0, [r2]
+ ldr r0, _08020558 @ =0x0001600f
+ adds r1, r0
+ b _08020618
+ .align 2, 0
+_08020530: .4byte 0x02000000
+_08020534: .4byte 0x000160a2
+_08020538: .4byte gUnknown_030041C0
+_0802053C: .4byte 0x00016018
+_08020540: .4byte gUnknown_03004290
+_08020544: .4byte gUnknown_030042B0
+_08020548: .4byte gPlayerParty
+_0802054C: .4byte gBattleMons
+_08020550: .4byte gUnknown_02024C09
+_08020554: .4byte 0x0001605f
+_08020558: .4byte 0x0001600f
+_0802055C:
+ ldr r0, _08020620 @ =gUnknown_02024A64
+ ldr r2, [r0]
+ cmp r2, 0
+ beq _08020566
+ b _08020996
+_08020566:
+ ldr r1, _08020624 @ =gUnknown_02024260
+ ldr r4, _08020628 @ =0x02000000
+ ldr r3, _0802062C @ =0x000160a2
+ adds r3, r4
+ mov r8, r3
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, _08020630 @ =0x00016018
+ adds r7, r4, r0
+ ldrb r0, [r7]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _08020634 @ =gPlayerParty
+ adds r0, r5
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08020612
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x38
+ bl GetMonData
+ cmp r0, 0x64
+ beq _08020612
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x3A
+ bl GetMonData
+ ldr r1, _08020638 @ =0x00017180
+ adds r4, r1
+ strh r0, [r4]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x3B
+ bl GetMonData
+ strh r0, [r4, 0x2]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x3C
+ bl GetMonData
+ strh r0, [r4, 0x4]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x3D
+ bl GetMonData
+ strh r0, [r4, 0x6]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x3E
+ bl GetMonData
+ strh r0, [r4, 0x8]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x3F
+ bl GetMonData
+ strh r0, [r4, 0xA]
+ ldr r4, _0802063C @ =gUnknown_02024A60
+ mov r2, r8
+ ldrb r0, [r2]
+ strb r0, [r4]
+ ldrb r1, [r7]
+ ldr r0, _08020640 @ =gUnknown_02024BEC
+ ldrh r2, [r0]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x19_a_bb
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08020612:
+ ldr r1, _08020628 @ =0x02000000
+ ldr r3, _08020644 @ =0x0001600f
+ adds r1, r3
+_08020618:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08020996
+ .align 2, 0
+_08020620: .4byte gUnknown_02024A64
+_08020624: .4byte gUnknown_02024260
+_08020628: .4byte 0x02000000
+_0802062C: .4byte 0x000160a2
+_08020630: .4byte 0x00016018
+_08020634: .4byte gPlayerParty
+_08020638: .4byte 0x00017180
+_0802063C: .4byte gUnknown_02024A60
+_08020640: .4byte gUnknown_02024BEC
+_08020644: .4byte 0x0001600f
+_08020648:
+ ldr r0, _080208AC @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08020652
+ b _08020996
+_08020652:
+ ldr r1, _080208B0 @ =gUnknown_02024A60
+ ldr r4, _080208B4 @ =0x02000000
+ ldr r2, _080208B8 @ =0x000160a2
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r2, _080208BC @ =gUnknown_02024260
+ ldrb r3, [r1]
+ lsls r1, r3, 9
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x21
+ beq _0802066E
+ b _080208F0
+_0802066E:
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0xB
+ beq _0802067A
+ b _080208F0
+_0802067A:
+ ldr r0, _080208C0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080206A8
+ ldr r1, _080208C4 @ =gUnknown_02024A6A
+ lsls r0, r3, 1
+ adds r2, r0, r1
+ ldr r0, _080208C8 @ =0x00016018
+ adds r1, r4, r0
+ ldrh r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080206A8
+ adds r1, r0, 0
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080208CC @ =gPlayerParty
+ adds r0, r1
+ adds r1, r3, 0
+ bl sub_80324F8
+_080206A8:
+ ldr r1, _080208D0 @ =gUnknown_030041C0
+ movs r2, 0xFD
+ strb r2, [r1]
+ movs r0, 0x4
+ strb r0, [r1, 0x1]
+ ldr r5, _080208B0 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ strb r0, [r1, 0x2]
+ ldr r0, _080208B4 @ =0x02000000
+ ldr r3, _080208C8 @ =0x00016018
+ adds r6, r0, r3
+ ldrb r0, [r6]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r4, _080208D4 @ =gUnknown_03004290
+ strb r2, [r4]
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ strb r0, [r4, 0x2]
+ movs r0, 0x3
+ strb r0, [r4, 0x3]
+ ldrb r0, [r6]
+ movs r1, 0x64
+ mov r8, r1
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ ldr r7, _080208CC @ =gPlayerParty
+ adds r0, r7
+ movs r1, 0x38
+ bl GetMonData
+ strb r0, [r4, 0x4]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r4, 0x5]
+ bl b_movescr_stack_push_cursor
+ ldr r2, _080208D8 @ =gUnknown_03004324
+ ldr r1, _080208DC @ =gBitTable
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080208E0 @ =gUnknown_02024C10
+ ldr r0, _080208E4 @ =gUnknown_081D8EF3
+ str r0, [r1]
+ ldr r4, _080208E8 @ =gUnknown_02024BEC
+ ldr r2, _080208BC @ =gUnknown_02024260
+ ldrb r1, [r5]
+ lsls r1, 9
+ adds r0, r2, 0x2
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r2, 0x3
+ adds r1, r2
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r3, r0
+ str r3, [r4]
+ ldrb r0, [r6]
+ mov r3, r8
+ muls r3, r0
+ adds r0, r3, 0
+ adds r0, r7
+ movs r1, 0
+ bl AdjustFriendship
+ ldr r0, _080208C4 @ =gUnknown_02024A6A
+ ldrb r1, [r6]
+ ldrh r0, [r0]
+ cmp r0, r1
+ bne _080207EC
+ ldr r4, _080208EC @ =gBattleMons
+ ldrh r0, [r4, 0x28]
+ cmp r0, 0
+ beq _080207EC
+ mov r0, r8
+ muls r0, r1
+ adds r0, r7
+ movs r1, 0x38
+ bl GetMonData
+ adds r1, r4, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r4, 0x28]
+ ldrb r0, [r6]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r7
+ movs r1, 0x3A
+ bl GetMonData
+ strh r0, [r4, 0x2C]
+ ldrb r0, [r6]
+ mov r3, r8
+ muls r3, r0
+ adds r0, r3, 0
+ adds r0, r7
+ movs r1, 0x3B
+ bl GetMonData
+ strh r0, [r4, 0x2]
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ movs r1, 0x3C
+ bl GetMonData
+ strh r0, [r4, 0x4]
+ ldrb r0, [r6]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r7
+ movs r1, 0x3D
+ bl GetMonData
+ strh r0, [r4, 0x6]
+ ldrb r0, [r6]
+ mov r3, r8
+ muls r3, r0
+ adds r0, r3, 0
+ adds r0, r7
+ movs r1, 0x3D
+ bl GetMonData
+ strh r0, [r4, 0x6]
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ movs r1, 0x3E
+ bl GetMonData
+ strh r0, [r4, 0x8]
+ ldrb r0, [r6]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r7
+ movs r1, 0x3F
+ bl GetMonData
+ strh r0, [r4, 0xA]
+_080207EC:
+ ldr r0, _080208C4 @ =gUnknown_02024A6A
+ ldr r1, _080208B4 @ =0x02000000
+ ldr r3, _080208C8 @ =0x00016018
+ adds r7, r1, r3
+ ldrb r2, [r7]
+ ldrh r0, [r0, 0x4]
+ cmp r0, r2
+ bne _080208F6
+ ldr r6, _080208EC @ =gBattleMons
+ movs r0, 0xD8
+ adds r0, r6
+ mov r8, r0
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080208F6
+ ldr r0, _080208C0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080208F6
+ movs r5, 0x64
+ adds r0, r2, 0
+ muls r0, r5
+ ldr r4, _080208CC @ =gPlayerParty
+ adds r0, r4
+ movs r1, 0x38
+ bl GetMonData
+ adds r1, r6, 0
+ adds r1, 0xDA
+ strb r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x39
+ bl GetMonData
+ mov r1, r8
+ strh r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x3A
+ bl GetMonData
+ adds r1, r6, 0
+ adds r1, 0xDC
+ strh r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x3B
+ bl GetMonData
+ adds r1, r6, 0
+ adds r1, 0xB2
+ strh r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x3C
+ bl GetMonData
+ adds r1, r6, 0
+ adds r1, 0xB4
+ strh r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x3D
+ bl GetMonData
+ movs r2, 0xB6
+ adds r2, r6
+ mov r8, r2
+ strh r0, [r2]
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x3D
+ bl GetMonData
+ mov r3, r8
+ strh r0, [r3]
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x3E
+ bl GetMonData
+ adds r1, r6, 0
+ adds r1, 0xB8
+ strh r0, [r1]
+ b _080208F6
+ .align 2, 0
+_080208AC: .4byte gUnknown_02024A64
+_080208B0: .4byte gUnknown_02024A60
+_080208B4: .4byte 0x02000000
+_080208B8: .4byte 0x000160a2
+_080208BC: .4byte gUnknown_02024260
+_080208C0: .4byte gUnknown_020239F8
+_080208C4: .4byte gUnknown_02024A6A
+_080208C8: .4byte 0x00016018
+_080208CC: .4byte gPlayerParty
+_080208D0: .4byte gUnknown_030041C0
+_080208D4: .4byte gUnknown_03004290
+_080208D8: .4byte gUnknown_03004324
+_080208DC: .4byte gBitTable
+_080208E0: .4byte gUnknown_02024C10
+_080208E4: .4byte gUnknown_081D8EF3
+_080208E8: .4byte gUnknown_02024BEC
+_080208EC: .4byte gBattleMons
+_080208F0:
+ ldr r1, _08020904 @ =gUnknown_02024BEC
+ movs r0, 0
+ str r0, [r1]
+_080208F6:
+ ldr r0, _08020908 @ =0x02000000
+ ldr r1, _0802090C @ =0x0001600f
+ adds r0, r1
+ movs r1, 0x5
+ strb r1, [r0]
+ b _08020996
+ .align 2, 0
+_08020904: .4byte gUnknown_02024BEC
+_08020908: .4byte 0x02000000
+_0802090C: .4byte 0x0001600f
+_08020910:
+ ldr r0, _08020924 @ =gUnknown_02024BEC
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08020930
+ ldr r0, _08020928 @ =0x02000000
+ ldr r2, _0802092C @ =0x0001600f
+ adds r0, r2
+ movs r1, 0x3
+ strb r1, [r0]
+ b _08020996
+ .align 2, 0
+_08020924: .4byte gUnknown_02024BEC
+_08020928: .4byte 0x02000000
+_0802092C: .4byte 0x0001600f
+_08020930:
+ ldr r2, _08020950 @ =0x02000000
+ ldr r3, _08020954 @ =0x00016018
+ adds r1, r2, r3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bhi _0802095C
+ ldr r0, _08020958 @ =0x0001600f
+ adds r1, r2, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ b _08020996
+ .align 2, 0
+_08020950: .4byte 0x02000000
+_08020954: .4byte 0x00016018
+_08020958: .4byte 0x0001600f
+_0802095C:
+ ldr r3, _08020968 @ =0x0001600f
+ adds r1, r2, r3
+ movs r0, 0x6
+ strb r0, [r1]
+ b _08020996
+ .align 2, 0
+_08020968: .4byte 0x0001600f
+_0802096C:
+ ldr r0, _080209A4 @ =gUnknown_02024A64
+ ldr r5, [r0]
+ cmp r5, 0
+ bne _08020996
+ ldr r4, _080209A8 @ =gBattleMons
+ ldr r2, _080209AC @ =gUnknown_02024C09
+ ldrb r0, [r2]
+ movs r1, 0x58
+ muls r0, r1
+ adds r0, r4
+ movs r3, 0
+ strh r5, [r0, 0x2E]
+ ldrb r0, [r2]
+ muls r0, r1
+ adds r0, r4
+ adds r0, 0x20
+ strb r3, [r0]
+ ldr r1, _080209B0 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_08020996:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080209A4: .4byte gUnknown_02024A64
+_080209A8: .4byte gBattleMons
+_080209AC: .4byte gUnknown_02024C09
+_080209B0: .4byte gUnknown_02024C10
+ thumb_func_end sub_8020004
+
+ thumb_func_start sub_80209B4
+sub_80209B4: @ 80209B4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ ldr r0, _08020AF0 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080209C6
+ b _08020B46
+_080209C6:
+ movs r5, 0
+_080209C8:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08020AF4 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080209F8
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _080209F8
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r0, r6, r0
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080209F8:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _080209C8
+ cmp r6, 0
+ bne _08020A0C
+ ldr r0, _08020AF8 @ =gUnknown_02024D26
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+_08020A0C:
+ movs r6, 0
+ movs r5, 0
+_08020A10:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08020AFC @ =gEnemyParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08020A40
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _08020A40
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r0, r6, r0
+ lsls r0, 16
+ lsrs r6, r0, 16
+_08020A40:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08020A10
+ ldr r2, _08020AF8 @ =gUnknown_02024D26
+ cmp r6, 0
+ bne _08020A54
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_08020A54:
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _08020B3E
+ ldr r2, _08020B00 @ =gUnknown_020239F8
+ ldrh r1, [r2]
+ movs r0, 0x2
+ ands r0, r1
+ mov r8, r2
+ cmp r0, 0
+ beq _08020B3E
+ movs r2, 0
+ movs r5, 0
+ ldr r0, _08020B04 @ =gUnknown_02024A68
+ ldrb r3, [r0]
+ mov r12, r0
+ ldr r7, _08020B08 @ =gUnknown_02024C10
+ cmp r2, r3
+ bge _08020AA0
+ ldr r0, _08020B0C @ =gUnknown_02024C6C
+ movs r1, 0x80
+ lsls r1, 21
+ ldr r6, [r0]
+ adds r4, r3, 0
+ ldr r3, _08020B10 @ =gUnknown_02024D68
+_08020A84:
+ adds r0, r1, 0
+ lsls r0, r5
+ ands r0, r6
+ cmp r0, 0
+ beq _08020A98
+ ldrb r0, [r3]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08020A98
+ adds r2, 0x1
+_08020A98:
+ adds r3, 0x28
+ adds r5, 0x2
+ cmp r5, r4
+ blt _08020A84
+_08020AA0:
+ movs r4, 0
+ movs r5, 0x1
+ mov r0, r12
+ ldrb r3, [r0]
+ cmp r5, r3
+ bge _08020ADA
+ ldr r0, _08020B0C @ =gUnknown_02024C6C
+ movs r1, 0x80
+ lsls r1, 21
+ mov r12, r1
+ ldr r1, [r0]
+ ldr r0, _08020B10 @ =gUnknown_02024D68
+ adds r6, r3, 0
+ adds r3, r0, 0
+ adds r3, 0x14
+_08020ABE:
+ mov r0, r12
+ lsls r0, r5
+ ands r0, r1
+ cmp r0, 0
+ beq _08020AD2
+ ldrb r0, [r3]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08020AD2
+ adds r4, 0x1
+_08020AD2:
+ adds r3, 0x28
+ adds r5, 0x2
+ cmp r5, r6
+ blt _08020ABE
+_08020ADA:
+ mov r0, r8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08020B14
+ adds r0, r4, r2
+ cmp r0, 0x1
+ bgt _08020B1C
+ b _08020B36
+ .align 2, 0
+_08020AF0: .4byte gUnknown_02024A64
+_08020AF4: .4byte gPlayerParty
+_08020AF8: .4byte gUnknown_02024D26
+_08020AFC: .4byte gEnemyParty
+_08020B00: .4byte gUnknown_020239F8
+_08020B04: .4byte gUnknown_02024A68
+_08020B08: .4byte gUnknown_02024C10
+_08020B0C: .4byte gUnknown_02024C6C
+_08020B10: .4byte gUnknown_02024D68
+_08020B14:
+ cmp r4, 0
+ beq _08020B36
+ cmp r2, 0
+ beq _08020B36
+_08020B1C:
+ ldr r2, [r7]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r7]
+ b _08020B46
+_08020B36:
+ ldr r0, [r7]
+ adds r0, 0x5
+ str r0, [r7]
+ b _08020B46
+_08020B3E:
+ ldr r1, _08020B50 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08020B46:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08020B50: .4byte gUnknown_02024C10
+ thumb_func_end sub_80209B4
+
+ thumb_func_start sub_8020B54
+sub_8020B54: @ 8020B54
+ ldr r1, _08020B80 @ =gUnknown_02024C68
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _08020B84 @ =0x02000000
+ ldr r1, _08020B88 @ =0x0001601f
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08020B8C @ =gCritMultiplier
+ strb r1, [r0]
+ ldr r0, _08020B90 @ =gUnknown_02024D1E
+ strb r2, [r0, 0x3]
+ strb r2, [r0, 0x6]
+ ldr r2, _08020B94 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ subs r1, 0x42
+ ands r0, r1
+ ldr r1, _08020B98 @ =0xffffbfff
+ ands r0, r1
+ str r0, [r2]
+ bx lr
+ .align 2, 0
+_08020B80: .4byte gUnknown_02024C68
+_08020B84: .4byte 0x02000000
+_08020B88: .4byte 0x0001601f
+_08020B8C: .4byte gCritMultiplier
+_08020B90: .4byte gUnknown_02024D1E
+_08020B94: .4byte gUnknown_02024C6C
+_08020B98: .4byte 0xffffbfff
+ thumb_func_end sub_8020B54
+
+ thumb_func_start atk25_resetflags
+atk25_resetflags: @ 8020B9C
+ push {lr}
+ bl sub_8020B54
+ ldr r1, _08020BB0 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08020BB0: .4byte gUnknown_02024C10
+ thumb_func_end atk25_resetflags
+
+ thumb_func_start sub_8020BB4
+sub_8020BB4: @ 8020BB4
+ ldr r3, _08020BC4 @ =gUnknown_02024C0E
+ ldr r2, _08020BC8 @ =gUnknown_02024C10
+ ldr r0, [r2]
+ ldrb r1, [r0, 0x1]
+ strb r1, [r3]
+ adds r0, 0x2
+ str r0, [r2]
+ bx lr
+ .align 2, 0
+_08020BC4: .4byte gUnknown_02024C0E
+_08020BC8: .4byte gUnknown_02024C10
+ thumb_func_end sub_8020BB4
+
+ thumb_func_start atk27_cmd27
+atk27_cmd27: @ 8020BCC
+ push {lr}
+ ldr r1, _08020BE8 @ =gUnknown_02024C0E
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08020BF0
+ ldr r1, _08020BEC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08020C0A
+ .align 2, 0
+_08020BE8: .4byte gUnknown_02024C0E
+_08020BEC: .4byte gUnknown_02024C10
+_08020BF0:
+ ldr r3, _08020C10 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r3]
+_08020C0A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08020C10: .4byte gUnknown_02024C10
+ thumb_func_end atk27_cmd27
+
+ thumb_func_start sub_8020C14
+sub_8020C14: @ 8020C14
+ ldr r3, _08020C30 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r3]
+ bx lr
+ .align 2, 0
+_08020C30: .4byte gUnknown_02024C10
+ thumb_func_end sub_8020C14
+
+ thumb_func_start atk29_jumpifbyte
+atk29_jumpifbyte: @ 8020C34
+ push {r4-r6,lr}
+ ldr r3, _08020C78 @ =gUnknown_02024C10
+ ldr r1, [r3]
+ ldrb r6, [r1, 0x1]
+ ldrb r2, [r1, 0x2]
+ ldrb r0, [r1, 0x3]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 24
+ adds r5, r2, r0
+ ldrb r4, [r1, 0x6]
+ ldrb r2, [r1, 0x7]
+ ldrb r0, [r1, 0x8]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x9]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0xA]
+ lsls r0, 24
+ adds r2, r0
+ adds r1, 0xB
+ str r1, [r3]
+ cmp r6, 0x5
+ bhi _08020CCC
+ lsls r0, r6, 2
+ ldr r1, _08020C7C @ =_08020C80
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08020C78: .4byte gUnknown_02024C10
+_08020C7C: .4byte _08020C80
+ .align 2, 0
+_08020C80:
+ .4byte _08020C98
+ .4byte _08020CA0
+ .4byte _08020CA8
+ .4byte _08020CB0
+ .4byte _08020CB8
+ .4byte _08020CC2
+_08020C98:
+ ldrb r0, [r5]
+ cmp r0, r4
+ bne _08020CCC
+ b _08020CCA
+_08020CA0:
+ ldrb r0, [r5]
+ cmp r0, r4
+ beq _08020CCC
+ b _08020CCA
+_08020CA8:
+ ldrb r0, [r5]
+ cmp r0, r4
+ bls _08020CCC
+ b _08020CCA
+_08020CB0:
+ ldrb r0, [r5]
+ cmp r0, r4
+ bcs _08020CCC
+ b _08020CCA
+_08020CB8:
+ ldrb r0, [r5]
+ ands r4, r0
+ cmp r4, 0
+ beq _08020CCC
+ b _08020CCA
+_08020CC2:
+ ldrb r0, [r5]
+ ands r4, r0
+ cmp r4, 0
+ bne _08020CCC
+_08020CCA:
+ str r2, [r3]
+_08020CCC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end atk29_jumpifbyte
+
+ thumb_func_start sub_8020CD4
+sub_8020CD4: @ 8020CD4
+ push {r4-r6,lr}
+ ldr r3, _08020D20 @ =gUnknown_02024C10
+ ldr r1, [r3]
+ ldrb r6, [r1, 0x1]
+ ldrb r2, [r1, 0x2]
+ ldrb r0, [r1, 0x3]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 24
+ adds r5, r2, r0
+ ldrb r4, [r1, 0x6]
+ ldrb r0, [r1, 0x7]
+ lsls r0, 8
+ orrs r4, r0
+ ldrb r2, [r1, 0x8]
+ ldrb r0, [r1, 0x9]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0xA]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0xB]
+ lsls r0, 24
+ adds r2, r0
+ adds r1, 0xC
+ str r1, [r3]
+ cmp r6, 0x5
+ bhi _08020D74
+ lsls r0, r6, 2
+ ldr r1, _08020D24 @ =_08020D28
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08020D20: .4byte gUnknown_02024C10
+_08020D24: .4byte _08020D28
+ .align 2, 0
+_08020D28:
+ .4byte _08020D40
+ .4byte _08020D48
+ .4byte _08020D50
+ .4byte _08020D58
+ .4byte _08020D60
+ .4byte _08020D6A
+_08020D40:
+ ldrh r0, [r5]
+ cmp r0, r4
+ bne _08020D74
+ b _08020D72
+_08020D48:
+ ldrh r0, [r5]
+ cmp r0, r4
+ beq _08020D74
+ b _08020D72
+_08020D50:
+ ldrh r0, [r5]
+ cmp r0, r4
+ bls _08020D74
+ b _08020D72
+_08020D58:
+ ldrh r0, [r5]
+ cmp r0, r4
+ bcs _08020D74
+ b _08020D72
+_08020D60:
+ ldrh r0, [r5]
+ ands r4, r0
+ cmp r4, 0
+ beq _08020D74
+ b _08020D72
+_08020D6A:
+ ldrh r0, [r5]
+ ands r4, r0
+ cmp r4, 0
+ bne _08020D74
+_08020D72:
+ str r2, [r3]
+_08020D74:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020CD4
+
+ thumb_func_start sub_8020D7C
+sub_8020D7C: @ 8020D7C
+ push {r4-r6,lr}
+ ldr r3, _08020DD4 @ =gUnknown_02024C10
+ ldr r1, [r3]
+ ldrb r6, [r1, 0x1]
+ ldrb r2, [r1, 0x2]
+ ldrb r0, [r1, 0x3]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 24
+ adds r5, r2, r0
+ ldrb r4, [r1, 0x6]
+ ldrb r0, [r1, 0x7]
+ lsls r0, 8
+ orrs r4, r0
+ ldrb r0, [r1, 0x8]
+ lsls r0, 16
+ orrs r4, r0
+ ldrb r0, [r1, 0x9]
+ lsls r0, 24
+ orrs r4, r0
+ ldrb r2, [r1, 0xA]
+ ldrb r0, [r1, 0xB]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0xC]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0xD]
+ lsls r0, 24
+ adds r2, r0
+ adds r1, 0xE
+ str r1, [r3]
+ cmp r6, 0x5
+ bhi _08020E28
+ lsls r0, r6, 2
+ ldr r1, _08020DD8 @ =_08020DDC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08020DD4: .4byte gUnknown_02024C10
+_08020DD8: .4byte _08020DDC
+ .align 2, 0
+_08020DDC:
+ .4byte _08020DF4
+ .4byte _08020DFC
+ .4byte _08020E04
+ .4byte _08020E0C
+ .4byte _08020E14
+ .4byte _08020E1E
+_08020DF4:
+ ldr r0, [r5]
+ cmp r0, r4
+ bne _08020E28
+ b _08020E26
+_08020DFC:
+ ldr r0, [r5]
+ cmp r0, r4
+ beq _08020E28
+ b _08020E26
+_08020E04:
+ ldr r0, [r5]
+ cmp r0, r4
+ bls _08020E28
+ b _08020E26
+_08020E0C:
+ ldr r0, [r5]
+ cmp r0, r4
+ bcs _08020E28
+ b _08020E26
+_08020E14:
+ ldr r0, [r5]
+ ands r0, r4
+ cmp r0, 0
+ beq _08020E28
+ b _08020E26
+_08020E1E:
+ ldr r0, [r5]
+ ands r0, r4
+ cmp r0, 0
+ bne _08020E28
+_08020E26:
+ str r2, [r3]
+_08020E28:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020D7C
+
+ thumb_func_start sub_8020E30
+sub_8020E30: @ 8020E30
+ push {r4-r7,lr}
+ ldr r2, _08020E88 @ =gUnknown_02024C10
+ ldr r3, [r2]
+ ldrb r1, [r3, 0x1]
+ ldrb r0, [r3, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r3, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 24
+ adds r5, r1, r0
+ ldrb r1, [r3, 0x5]
+ ldrb r0, [r3, 0x6]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r3, 0x7]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 24
+ adds r4, r1, r0
+ ldrb r6, [r3, 0x9]
+ ldrb r1, [r3, 0xA]
+ ldrb r0, [r3, 0xB]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r3, 0xC]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r3, 0xD]
+ lsls r0, 24
+ adds r1, r0
+ mov r12, r1
+ movs r1, 0
+ cmp r1, r6
+ bcs _08020EA8
+ ldrb r0, [r5]
+ ldrb r7, [r4]
+ cmp r0, r7
+ beq _08020E8C
+ adds r0, r3, 0
+ b _08020EA4
+ .align 2, 0
+_08020E88: .4byte gUnknown_02024C10
+_08020E8C:
+ adds r5, 0x1
+ adds r4, 0x1
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, r6
+ bcs _08020EA8
+ ldrb r0, [r5]
+ ldrb r3, [r4]
+ cmp r0, r3
+ beq _08020E8C
+ ldr r0, [r2]
+_08020EA4:
+ adds r0, 0xE
+ str r0, [r2]
+_08020EA8:
+ cmp r1, r6
+ bne _08020EB0
+ mov r7, r12
+ str r7, [r2]
+_08020EB0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020E30
+
+ thumb_func_start sub_8020EB8
+sub_8020EB8: @ 8020EB8
+ push {r4-r7,lr}
+ movs r7, 0
+ ldr r3, _08020F2C @ =gUnknown_02024C10
+ ldr r1, [r3]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ adds r5, r2, r0
+ ldrb r2, [r1, 0x5]
+ ldrb r0, [r1, 0x6]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x7]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x8]
+ lsls r0, 24
+ adds r4, r2, r0
+ ldrb r6, [r1, 0x9]
+ ldrb r2, [r1, 0xA]
+ ldrb r0, [r1, 0xB]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0xC]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0xD]
+ lsls r0, 24
+ adds r2, r0
+ mov r12, r2
+ movs r1, 0
+ cmp r7, r6
+ bcs _08020F22
+_08020F06:
+ ldrb r0, [r5]
+ ldrb r2, [r4]
+ cmp r0, r2
+ bne _08020F14
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_08020F14:
+ adds r5, 0x1
+ adds r4, 0x1
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, r6
+ bcc _08020F06
+_08020F22:
+ cmp r7, r6
+ beq _08020F30
+ mov r0, r12
+ b _08020F34
+ .align 2, 0
+_08020F2C: .4byte gUnknown_02024C10
+_08020F30:
+ ldr r0, [r3]
+ adds r0, 0xE
+_08020F34:
+ str r0, [r3]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020EB8
+
+ thumb_func_start sub_8020F3C
+sub_8020F3C: @ 8020F3C
+ ldr r3, _08020F60 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ ldrb r0, [r2, 0x5]
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r0, 0x6
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_08020F60: .4byte gUnknown_02024C10
+ thumb_func_end sub_8020F3C
+
+ thumb_func_start sub_8020F64
+sub_8020F64: @ 8020F64
+ ldr r3, _08020F8C @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ ldrb r0, [r2, 0x5]
+ ldrb r2, [r1]
+ adds r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r0, 0x6
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_08020F8C: .4byte gUnknown_02024C10
+ thumb_func_end sub_8020F64
+
+ thumb_func_start sub_8020F90
+sub_8020F90: @ 8020F90
+ ldr r3, _08020FB8 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ ldrb r0, [r1]
+ ldrb r2, [r2, 0x5]
+ subs r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r0, 0x6
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_08020FB8: .4byte gUnknown_02024C10
+ thumb_func_end sub_8020F90
+
+ thumb_func_start atk31_copyarray
+atk31_copyarray: @ 8020FBC
+ push {r4-r6,lr}
+ ldr r3, _0802100C @ =gUnknown_02024C10
+ ldr r1, [r3]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ adds r6, r2, r0
+ ldrb r2, [r1, 0x5]
+ ldrb r0, [r1, 0x6]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x7]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x8]
+ lsls r0, 24
+ adds r5, r2, r0
+ ldrb r4, [r1, 0x9]
+ movs r2, 0
+ cmp r2, r4
+ bge _08021000
+_08020FF2:
+ adds r0, r6, r2
+ adds r1, r5, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, r4
+ blt _08020FF2
+_08021000:
+ ldr r0, [r3]
+ adds r0, 0xA
+ str r0, [r3]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802100C: .4byte gUnknown_02024C10
+ thumb_func_end atk31_copyarray
+
+ thumb_func_start atk32_memcpy_with_offset
+atk32_memcpy_with_offset: @ 8021010
+ push {r4-r7,lr}
+ ldr r3, _08021078 @ =gUnknown_02024C10
+ ldr r1, [r3]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ adds r7, r2, r0
+ ldrb r2, [r1, 0x5]
+ ldrb r0, [r1, 0x6]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x7]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x8]
+ lsls r0, 24
+ adds r6, r2, r0
+ ldrb r2, [r1, 0x9]
+ ldrb r0, [r1, 0xA]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0xB]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0xC]
+ lsls r0, 24
+ adds r5, r2, r0
+ ldrb r4, [r1, 0xD]
+ movs r2, 0
+ cmp r2, r4
+ bge _0802106C
+_0802105A:
+ adds r0, r7, r2
+ ldrb r1, [r5]
+ adds r1, r2, r1
+ adds r1, r6, r1
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, r4
+ blt _0802105A
+_0802106C:
+ ldr r0, [r3]
+ adds r0, 0xE
+ str r0, [r3]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021078: .4byte gUnknown_02024C10
+ thumb_func_end atk32_memcpy_with_offset
+
+ thumb_func_start sub_802107C
+sub_802107C: @ 802107C
+ ldr r3, _080210A4 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ ldrb r0, [r1]
+ ldrb r2, [r2, 0x5]
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r0, 0x6
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_080210A4: .4byte gUnknown_02024C10
+ thumb_func_end sub_802107C
+
+ thumb_func_start atk34_orhalfword
+atk34_orhalfword: @ 80210A8
+ push {r4,lr}
+ ldr r4, _080210DC @ =gUnknown_02024C10
+ ldr r3, [r4]
+ ldrb r2, [r3, 0x1]
+ ldrb r0, [r3, 0x2]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r3, 0x3]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 24
+ adds r2, r0
+ ldrb r1, [r3, 0x5]
+ ldrb r0, [r3, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrh r0, [r2]
+ orrs r1, r0
+ strh r1, [r2]
+ ldr r0, [r4]
+ adds r0, 0x7
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080210DC: .4byte gUnknown_02024C10
+ thumb_func_end atk34_orhalfword
+
+ thumb_func_start atk35_orword
+atk35_orword: @ 80210E0
+ push {r4,lr}
+ ldr r4, _08021120 @ =gUnknown_02024C10
+ ldr r2, [r4]
+ ldrb r3, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r3, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r3, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r3, r0
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ adds r1, r0
+ ldr r0, [r3]
+ orrs r0, r1
+ str r0, [r3]
+ ldr r0, [r4]
+ adds r0, 0x9
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021120: .4byte gUnknown_02024C10
+ thumb_func_end atk35_orword
+
+ thumb_func_start sub_8021124
+sub_8021124: @ 8021124
+ ldr r3, _0802114C @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ ldrb r2, [r2, 0x5]
+ ldrb r0, [r1]
+ bics r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r0, 0x6
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_0802114C: .4byte gUnknown_02024C10
+ thumb_func_end sub_8021124
+
+ thumb_func_start atk37_bichalfword
+atk37_bichalfword: @ 8021150
+ push {r4,lr}
+ ldr r4, _08021184 @ =gUnknown_02024C10
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x1]
+ ldrb r0, [r3, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r3, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ ldrb r2, [r3, 0x5]
+ ldrb r0, [r3, 0x6]
+ lsls r0, 8
+ orrs r2, r0
+ ldrh r0, [r1]
+ bics r0, r2
+ strh r0, [r1]
+ ldr r0, [r4]
+ adds r0, 0x7
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021184: .4byte gUnknown_02024C10
+ thumb_func_end atk37_bichalfword
+
+ thumb_func_start atk38_bicword
+atk38_bicword: @ 8021188
+ push {r4,lr}
+ ldr r4, _080211C8 @ =gUnknown_02024C10
+ ldr r2, [r4]
+ ldrb r3, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r3, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r3, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r3, r0
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ adds r1, r0
+ ldr r0, [r3]
+ bics r0, r1
+ str r0, [r3]
+ ldr r0, [r4]
+ adds r0, 0x9
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080211C8: .4byte gUnknown_02024C10
+ thumb_func_end atk38_bicword
+
+ thumb_func_start atk39_pause
+atk39_pause: @ 80211CC
+ push {r4,r5,lr}
+ ldr r0, _08021200 @ =gUnknown_02024A64
+ ldr r4, [r0]
+ cmp r4, 0
+ bne _080211F8
+ ldr r5, _08021204 @ =gUnknown_02024C10
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldr r3, _08021208 @ =gUnknown_02024D18
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r1
+ bcc _080211F8
+ strh r4, [r3]
+ adds r0, r2, 0x3
+ str r0, [r5]
+_080211F8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021200: .4byte gUnknown_02024A64
+_08021204: .4byte gUnknown_02024C10
+_08021208: .4byte gUnknown_02024D18
+ thumb_func_end atk39_pause
+
+ thumb_func_start sub_802120C
+sub_802120C: @ 802120C
+ push {lr}
+ ldr r0, _08021224 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0802121E
+ ldr r1, _08021228 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_0802121E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021224: .4byte gUnknown_02024A64
+_08021228: .4byte gUnknown_02024C10
+ thumb_func_end sub_802120C
+
+ thumb_func_start atk3B_8022C68
+atk3B_8022C68: @ 802122C
+ push {lr}
+ ldr r0, _08021240 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _0802124C
+ ldr r0, _08021244 @ =gUnknown_02024A60
+ ldr r1, _08021248 @ =gUnknown_02024C08
+ b _08021250
+ .align 2, 0
+_08021240: .4byte gUnknown_02024C10
+_08021244: .4byte gUnknown_02024A60
+_08021248: .4byte gUnknown_02024C08
+_0802124C:
+ ldr r0, _08021274 @ =gUnknown_02024A60
+ ldr r1, _08021278 @ =gUnknown_02024C07
+_08021250:
+ ldrb r1, [r1]
+ strb r1, [r0]
+ ldr r0, _0802127C @ =gUnknown_02024BEC
+ ldrh r1, [r0]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
+ ldr r0, _08021274 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _08021280 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021274: .4byte gUnknown_02024A60
+_08021278: .4byte gUnknown_02024C07
+_0802127C: .4byte gUnknown_02024BEC
+_08021280: .4byte gUnknown_02024C10
+ thumb_func_end atk3B_8022C68
+
+ thumb_func_start atk3C_return
+atk3C_return: @ 8021284
+ push {lr}
+ bl b_movescr_stack_pop_cursor
+ pop {r0}
+ bx r0
+ thumb_func_end atk3C_return
+
+ thumb_func_start sub_8021290
+sub_8021290: @ 8021290
+ ldr r0, _080212A4 @ =gUnknown_02024C68
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080212A8 @ =gUnknown_02024A60
+ strb r1, [r0]
+ ldr r1, _080212AC @ =gUnknown_02024A7F
+ movs r0, 0xB
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080212A4: .4byte gUnknown_02024C68
+_080212A8: .4byte gUnknown_02024A60
+_080212AC: .4byte gUnknown_02024A7F
+ thumb_func_end sub_8021290
+
+ thumb_func_start sub_80212B0
+sub_80212B0: @ 80212B0
+ ldr r1, _080212C0 @ =gUnknown_02024A60
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080212C4 @ =gUnknown_02024A7F
+ movs r0, 0xB
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080212C0: .4byte gUnknown_02024A60
+_080212C4: .4byte gUnknown_02024A7F
+ thumb_func_end sub_80212B0
+
+ thumb_func_start atk3F_end3
+atk3F_end3: @ 80212C8
+ push {lr}
+ bl b_movescr_stack_pop_cursor
+ ldr r2, _080212F0 @ =0x02017140
+ adds r1, r2, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080212DE
+ subs r0, 0x1
+ strb r0, [r1]
+_080212DE:
+ ldr r0, _080212F4 @ =gUnknown_030042D4
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080212F0: .4byte 0x02017140
+_080212F4: .4byte gUnknown_030042D4
+ thumb_func_end atk3F_end3
+
+ thumb_func_start atk41_call
+atk41_call: @ 80212F8
+ push {r4,lr}
+ ldr r4, _08021324 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x5
+ bl b_movescr_stack_push
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021324: .4byte gUnknown_02024C10
+ thumb_func_end atk41_call
+
+ thumb_func_start atk42_jumpiftype2
+atk42_jumpiftype2: @ 8021328
+ push {r4,lr}
+ ldr r4, _08021370 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, [r4]
+ ldr r2, _08021374 @ =gBattleMons
+ movs r1, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r1, r0, 0
+ adds r1, 0x21
+ ldrb r2, [r3, 0x2]
+ ldrb r1, [r1]
+ cmp r2, r1
+ beq _08021356
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r2, r0
+ bne _08021378
+_08021356:
+ ldrb r1, [r3, 0x3]
+ ldrb r0, [r3, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0802137C
+ .align 2, 0
+_08021370: .4byte gUnknown_02024C10
+_08021374: .4byte gBattleMons
+_08021378:
+ adds r0, r3, 0x7
+ str r0, [r4]
+_0802137C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end atk42_jumpiftype2
+
+ thumb_func_start sub_8021384
+sub_8021384: @ 8021384
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _080213BC @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r2, [r0, 0x1]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _080213C0
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _080213C6
+ .align 2, 0
+_080213BC: .4byte gUnknown_02024C10
+_080213C0:
+ ldr r0, [r4]
+ adds r0, 0x6
+ str r0, [r4]
+_080213C6:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8021384
+
+ thumb_func_start sub_80213D0
+sub_80213D0: @ 80213D0
+ ldr r1, _080213E4 @ =0x02000000
+ ldr r0, _080213E8 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ ldr r2, _080213EC @ =0x00016060
+ adds r0, r2
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080213E4: .4byte 0x02000000
+_080213E8: .4byte gUnknown_02024C07
+_080213EC: .4byte 0x00016060
+ thumb_func_end sub_80213D0
+
+ thumb_func_start atk46_cmd46
+atk46_cmd46: @ 80213F0
+ push {r4-r6,lr}
+ ldr r5, _08021444 @ =gUnknown_02024C10
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r6, _08021448 @ =gUnknown_02024A60
+ strb r0, [r6]
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ adds r3, r1, r0
+ ldrb r4, [r2, 0x2]
+ adds r0, r4, 0
+ cmp r0, 0x1
+ beq _08021426
+ cmp r0, 0x11
+ beq _08021426
+ cmp r0, 0x2
+ bne _0802144C
+_08021426:
+ ldr r4, _08021444 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x2]
+ ldrh r2, [r3]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
+ ldr r0, _08021448 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r4]
+ adds r0, 0x7
+ str r0, [r4]
+ b _080214AE
+ .align 2, 0
+_08021444: .4byte gUnknown_02024C10
+_08021448: .4byte gUnknown_02024A60
+_0802144C:
+ ldr r0, _08021464 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0802146C
+ adds r0, r2, 0x7
+ bl b_movescr_stack_push
+ ldr r0, _08021468 @ =gUnknown_081D8EEF
+ b _080214AC
+ .align 2, 0
+_08021464: .4byte gUnknown_02024C6C
+_08021468: .4byte gUnknown_081D8EEF
+_0802146C:
+ adds r0, r4, 0
+ subs r0, 0xA
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _08021498
+ ldr r1, _08021490 @ =gUnknown_02024C98
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _08021494 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ beq _08021498
+ adds r0, r2, 0x7
+ b _080214AC
+ .align 2, 0
+_08021490: .4byte gUnknown_02024C98
+_08021494: .4byte 0x000400c0
+_08021498:
+ ldrb r1, [r2, 0x2]
+ ldrh r2, [r3]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
+ ldrb r0, [r6]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r5]
+ adds r0, 0x7
+_080214AC:
+ str r0, [r5]
+_080214AE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end atk46_cmd46
+
+ thumb_func_start sub_80214B4
+sub_80214B4: @ 80214B4
+ push {r4-r7,lr}
+ ldr r6, _0802151C @ =gUnknown_02024C10
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r7, _08021520 @ =gUnknown_02024A60
+ strb r0, [r7]
+ ldr r2, [r6]
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ adds r3, r1, r0
+ ldrb r1, [r2, 0x6]
+ ldrb r0, [r2, 0x7]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x9]
+ lsls r0, 24
+ adds r4, r1, r0
+ ldrb r5, [r3]
+ adds r0, r5, 0
+ cmp r0, 0x1
+ beq _080214FE
+ cmp r0, 0x11
+ beq _080214FE
+ cmp r0, 0x2
+ bne _08021524
+_080214FE:
+ ldrb r1, [r3]
+ ldrh r2, [r4]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
+ ldr r0, _08021520 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _0802151C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0xA
+ str r0, [r1]
+ b _0802157A
+ .align 2, 0
+_0802151C: .4byte gUnknown_02024C10
+_08021520: .4byte gUnknown_02024A60
+_08021524:
+ ldr r0, _08021534 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08021538
+ adds r0, r2, 0
+ b _08021576
+ .align 2, 0
+_08021534: .4byte gUnknown_02024C6C
+_08021538:
+ adds r0, r5, 0
+ subs r0, 0xA
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _08021564
+ ldr r1, _0802155C @ =gUnknown_02024C98
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _08021560 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ beq _08021564
+ adds r0, r2, 0
+ b _08021576
+ .align 2, 0
+_0802155C: .4byte gUnknown_02024C98
+_08021560: .4byte 0x000400c0
+_08021564:
+ ldrb r1, [r3]
+ ldrh r2, [r4]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
+ ldrb r0, [r7]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r6]
+_08021576:
+ adds r0, 0xA
+ str r0, [r6]
+_0802157A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80214B4
+
+ thumb_func_start atk47
+atk47: @ 8021580
+ push {r4,lr}
+ movs r3, 0
+ ldr r0, _080215A0 @ =0x02000000
+ ldr r2, _080215A4 @ =0x0001601e
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ movs r2, 0xF0
+ ands r2, r1
+ adds r4, r0, 0
+ cmp r2, 0x20
+ beq _080215B6
+ cmp r2, 0x20
+ bgt _080215A8
+ cmp r2, 0x10
+ beq _080215B2
+ b _080215C0
+ .align 2, 0
+_080215A0: .4byte 0x02000000
+_080215A4: .4byte 0x0001601e
+_080215A8:
+ cmp r2, 0x90
+ beq _080215BA
+ cmp r2, 0xA0
+ beq _080215BE
+ b _080215C0
+_080215B2:
+ movs r3, 0xF
+ b _080215C0
+_080215B6:
+ movs r3, 0x27
+ b _080215C0
+_080215BA:
+ movs r3, 0x16
+ b _080215C0
+_080215BE:
+ movs r3, 0x2E
+_080215C0:
+ ldr r1, _080215EC @ =0x0001601e
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ movs r0, 0xF
+ ands r0, r1
+ adds r0, r3, r0
+ subs r0, 0x1
+ ldr r2, _080215F0 @ =0x000160a4
+ adds r1, r4, r2
+ movs r2, 0
+ strb r0, [r1]
+ ldr r1, _080215F4 @ =0x000160a5
+ adds r0, r4, r1
+ strb r2, [r0]
+ ldr r1, _080215F8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080215EC: .4byte 0x0001601e
+_080215F0: .4byte 0x000160a4
+_080215F4: .4byte 0x000160a5
+_080215F8: .4byte gUnknown_02024C10
+ thumb_func_end atk47
+
+ thumb_func_start atk48_playstatchangeanimation
+atk48_playstatchangeanimation: @ 80215FC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r7, 0
+ movs r0, 0
+ mov r8, r0
+ movs r3, 0
+ ldr r5, _08021670 @ =gUnknown_02024C10
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ str r3, [sp]
+ bl sub_8015150
+ ldr r2, _08021674 @ =gUnknown_02024A60
+ strb r0, [r2]
+ ldr r0, [r5]
+ ldrb r4, [r0, 0x2]
+ ldrb r1, [r0, 0x3]
+ movs r0, 0x1
+ ands r0, r1
+ ldr r3, [sp]
+ cmp r0, 0
+ beq _08021710
+ movs r0, 0x2
+ ands r0, r1
+ movs r1, 0x15
+ cmp r0, 0
+ beq _0802163C
+ movs r1, 0x2D
+_0802163C:
+ cmp r4, 0
+ beq _080216E4
+ movs r0, 0x1
+ mov r10, r0
+ ldr r0, _08021678 @ =gUnknown_02024A98
+ mov r9, r0
+ lsls r5, r1, 16
+_0802164A:
+ adds r0, r4, 0
+ mov r1, r10
+ ands r0, r1
+ cmp r0, 0
+ beq _080216D6
+ ldr r0, _08021670 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x3]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0802167C
+ ldr r0, _08021674 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7, r0
+ b _080216C4
+ .align 2, 0
+_08021670: .4byte gUnknown_02024C10
+_08021674: .4byte gUnknown_02024A60
+_08021678: .4byte gUnknown_02024A98
+_0802167C:
+ ldr r6, _08021700 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ str r3, [sp]
+ bl battle_get_per_side_status
+ mov r1, r10
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08021704 @ =gUnknown_02024C80
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ ldr r3, [sp]
+ cmp r0, 0
+ bne _080216D6
+ ldr r0, _08021708 @ =gBattleMons
+ ldrb r2, [r6]
+ movs r1, 0x58
+ muls r2, r1
+ adds r0, r2, r0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1D
+ beq _080216D6
+ cmp r0, 0x49
+ beq _080216D6
+ cmp r0, 0x33
+ bne _080216BA
+ cmp r7, 0x6
+ beq _080216D6
+_080216BA:
+ cmp r0, 0x34
+ bne _080216C2
+ cmp r7, 0x1
+ beq _080216D6
+_080216C2:
+ adds r0, r7, r2
+_080216C4:
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ ble _080216D6
+ lsrs r0, r5, 16
+ mov r8, r0
+ adds r3, 0x1
+_080216D6:
+ lsrs r4, 1
+ movs r1, 0x80
+ lsls r1, 9
+ adds r5, r1
+ adds r7, 0x1
+ cmp r4, 0
+ bne _0802164A
+_080216E4:
+ ldr r0, _0802170C @ =gUnknown_02024C10
+ mov r9, r0
+ cmp r3, 0x1
+ ble _08021772
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x3]
+ movs r0, 0x2
+ ands r0, r1
+ movs r1, 0x39
+ mov r8, r1
+ cmp r0, 0
+ beq _08021772
+ movs r0, 0x3A
+ b _08021770
+ .align 2, 0
+_08021700: .4byte gUnknown_02024A60
+_08021704: .4byte gUnknown_02024C80
+_08021708: .4byte gBattleMons
+_0802170C: .4byte gUnknown_02024C10
+_08021710:
+ movs r0, 0x2
+ ands r0, r1
+ movs r1, 0xE
+ cmp r0, 0
+ beq _0802171C
+ movs r1, 0x26
+_0802171C:
+ mov r9, r5
+ cmp r4, 0
+ beq _08021758
+ ldr r6, _0802178C @ =gUnknown_02024A98
+ adds r5, r2, 0
+ lsls r2, r1, 16
+_08021728:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0802174A
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7, r0
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xB
+ bgt _0802174A
+ lsrs r1, r2, 16
+ mov r8, r1
+ adds r3, 0x1
+_0802174A:
+ lsrs r4, 1
+ movs r0, 0x80
+ lsls r0, 9
+ adds r2, r0
+ adds r7, 0x1
+ cmp r4, 0
+ bne _08021728
+_08021758:
+ cmp r3, 0x1
+ ble _08021772
+ mov r1, r9
+ ldr r0, [r1]
+ ldrb r1, [r0, 0x3]
+ movs r0, 0x2
+ ands r0, r1
+ movs r1, 0x37
+ mov r8, r1
+ cmp r0, 0
+ beq _08021772
+ movs r0, 0x38
+_08021770:
+ mov r8, r0
+_08021772:
+ mov r1, r9
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08021790
+ cmp r3, 0x1
+ bgt _08021790
+ adds r0, r2, 0x4
+ mov r1, r9
+ b _080217E6
+ .align 2, 0
+_0802178C: .4byte gUnknown_02024A98
+_08021790:
+ cmp r3, 0
+ beq _080217E0
+ ldr r0, _080217D0 @ =0x02000000
+ ldr r1, _080217D4 @ =0x000160dc
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080217E0
+ movs r0, 0
+ movs r1, 0x1
+ mov r2, r8
+ str r3, [sp]
+ bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
+ ldr r0, _080217D8 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, _080217DC @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x3]
+ movs r0, 0x4
+ ands r0, r1
+ ldr r3, [sp]
+ cmp r0, 0
+ beq _080217CC
+ cmp r3, 0x1
+ ble _080217CC
+ movs r0, 0x1
+ strb r0, [r4]
+_080217CC:
+ ldr r1, _080217DC @ =gUnknown_02024C10
+ b _080217E2
+ .align 2, 0
+_080217D0: .4byte 0x02000000
+_080217D4: .4byte 0x000160dc
+_080217D8: .4byte gUnknown_02024A60
+_080217DC: .4byte gUnknown_02024C10
+_080217E0:
+ mov r1, r9
+_080217E2:
+ ldr r0, [r1]
+ adds r0, 0x4
+_080217E6:
+ str r0, [r1]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end atk48_playstatchangeanimation
+
+ thumb_func_start sub_80217F8
+sub_80217F8: @ 80217F8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ movs r0, 0
+ mov r10, r0
+ ldr r0, _08021834 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x1]
+ str r1, [sp, 0x10]
+ ldrb r0, [r0, 0x2]
+ str r0, [sp, 0x14]
+ ldr r1, _08021838 @ =gBattleMons
+ ldr r0, _0802183C @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _08021844
+ ldr r1, _08021840 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x7]
+ b _0802184E
+ .align 2, 0
+_08021834: .4byte gUnknown_02024C10
+_08021838: .4byte gBattleMons
+_0802183C: .4byte gUnknown_02024C07
+_08021840: .4byte gEnigmaBerries
+_08021844:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r0, 24
+_0802184E:
+ str r0, [sp, 0x8]
+ ldr r0, _0802186C @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r1, 1
+ ldr r0, _08021870 @ =0x020160e8
+ adds r1, r0
+ str r1, [sp, 0xC]
+ subs r0, 0xCC
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080218C0
+ movs r2, 0x3F
+ ands r2, r0
+ str r2, [sp, 0x4]
+ b _080218D2
+ .align 2, 0
+_0802186C: .4byte gUnknown_02024C07
+_08021870: .4byte 0x020160e8
+_08021874:
+ strb r2, [r7]
+ ldr r0, [r5]
+ orrs r0, r6
+ str r0, [r5]
+ ldr r0, _080218AC @ =0x02000000
+ ldr r3, _080218B0 @ =0x0001600c
+ adds r0, r3
+ strb r4, [r0]
+ bl sub_8020B54
+ ldr r2, _080218B4 @ =gUnknown_081D6BBC
+ mov r4, r8
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ bl b_movescr_stack_push
+ ldr r1, _080218B8 @ =gUnknown_02024C10
+ ldr r0, _080218BC @ =gUnknown_081D9B2D
+ bl _0802229C
+ .align 2, 0
+_080218AC: .4byte 0x02000000
+_080218B0: .4byte 0x0001600c
+_080218B4: .4byte gUnknown_081D6BBC
+_080218B8: .4byte gUnknown_02024C10
+_080218BC: .4byte gUnknown_081D9B2D
+_080218C0:
+ ldr r2, _080218D8 @ =gBattleMoves
+ ldr r0, _080218DC @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ str r0, [sp, 0x4]
+_080218D2:
+ ldr r5, _080218E0 @ =0x02000000
+ mov r12, r5
+ b _080218EE
+ .align 2, 0
+_080218D8: .4byte gBattleMoves
+_080218DC: .4byte gUnknown_02024BE6
+_080218E0: .4byte 0x02000000
+_080218E4:
+ mov r0, r10
+ cmp r0, 0
+ beq _080218EE
+ bl _08022286
+_080218EE:
+ ldr r0, _08021908 @ =0x0001600c
+ add r0, r12
+ ldrb r0, [r0]
+ cmp r0, 0x11
+ bls _080218FC
+ bl _0802224E
+_080218FC:
+ lsls r0, 2
+ ldr r1, _0802190C @ =_08021910
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08021908: .4byte 0x0001600c
+_0802190C: .4byte _08021910
+ .align 2, 0
+_08021910:
+ .4byte _08021958
+ .4byte _08021A34
+ .4byte _08021AF0
+ .4byte _08021B20
+ .4byte _08021B44
+ .4byte _08021B78
+ .4byte _08021B9C
+ .4byte _08021C40
+ .4byte _08021C78
+ .4byte _08021CA8
+ .4byte _08021CCC
+ .4byte _08021D18
+ .4byte _08021DAC
+ .4byte _08021E30
+ .4byte _08021E70
+ .4byte _08022068
+ .4byte _080221C0
+ .4byte _0802224E
+_08021958:
+ ldr r5, _08021A08 @ =gBattleMons
+ ldr r2, _08021A0C @ =gUnknown_02024C08
+ ldrb r4, [r2]
+ movs r6, 0x58
+ adds r3, r4, 0
+ muls r3, r6
+ adds r0, r5, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 16
+ ands r1, r0
+ cmp r1, 0
+ beq _080219FE
+ adds r0, r3, r5
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _080219FE
+ ldr r0, _08021A10 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ cmp r1, r4
+ beq _080219FE
+ adds r0, r1, 0
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r1, _08021A0C @ =gUnknown_02024C08
+ ldrb r0, [r1]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _080219FE
+ ldr r0, _08021A14 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _080219FE
+ ldr r2, _08021A18 @ =gUnknown_02024D28
+ ldr r4, _08021A0C @ =gUnknown_02024C08
+ ldrb r3, [r4]
+ lsls r1, r3, 4
+ adds r0, r2, 0x4
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080219C8
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080219FE
+_080219C8:
+ ldr r2, _08021A1C @ =gBattleMoves
+ ldr r0, _08021A20 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _080219FE
+ adds r0, r3, 0
+ muls r0, r6
+ adds r1, r0, r5
+ ldrb r2, [r1, 0x19]
+ movs r0, 0x19
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xB
+ bgt _080219FE
+ adds r0, r2, 0x1
+ strb r0, [r1, 0x19]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08021A24 @ =gUnknown_02024C10
+ ldr r0, _08021A28 @ =gUnknown_081D9132
+ str r0, [r1]
+ movs r5, 0x1
+ mov r10, r5
+_080219FE:
+ ldr r2, _08021A2C @ =0x02000000
+ ldr r0, _08021A30 @ =0x0001600c
+ adds r1, r2, r0
+ b _08021E00
+ .align 2, 0
+_08021A08: .4byte gBattleMons
+_08021A0C: .4byte gUnknown_02024C08
+_08021A10: .4byte gUnknown_02024C07
+_08021A14: .4byte gUnknown_02024C68
+_08021A18: .4byte gUnknown_02024D28
+_08021A1C: .4byte gBattleMoves
+_08021A20: .4byte gUnknown_02024BE6
+_08021A24: .4byte gUnknown_02024C10
+_08021A28: .4byte gUnknown_081D9132
+_08021A2C: .4byte 0x02000000
+_08021A30: .4byte 0x0001600c
+_08021A34:
+ ldr r2, _08021AD0 @ =gBattleMons
+ ldr r1, _08021AD4 @ =gUnknown_02024C08
+ ldrb r4, [r1]
+ movs r3, 0x58
+ mov r12, r3
+ mov r3, r12
+ muls r3, r4
+ adds r7, r2, 0
+ adds r7, 0x4C
+ adds r6, r3, r7
+ ldr r5, [r6]
+ movs r0, 0x20
+ ands r0, r5
+ cmp r0, 0
+ bne _08021A54
+ b _08021DFA
+_08021A54:
+ adds r0, r3, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _08021A5E
+ b _08021DFA
+_08021A5E:
+ ldr r0, _08021AD8 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ cmp r0, r4
+ bne _08021A68
+ b _08021DFA
+_08021A68:
+ ldr r0, _08021ADC @ =gUnknown_02024D68
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 2
+ adds r0, 0xC
+ adds r1, r0
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _08021A7C
+ b _08021DFA
+_08021A7C:
+ ldr r0, _08021AE0 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08021A8A
+ b _08021DFA
+_08021A8A:
+ ldr r4, [sp, 0x4]
+ cmp r4, 0xA
+ beq _08021A92
+ b _08021DFA
+_08021A92:
+ movs r0, 0x21
+ negs r0, r0
+ ands r5, r0
+ str r5, [r6]
+ ldr r4, _08021AE4 @ =gUnknown_02024A60
+ ldr r5, _08021AD4 @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ strb r0, [r4]
+ ldrb r0, [r5]
+ mov r1, r12
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08021AE8 @ =gUnknown_02024C10
+ ldr r0, _08021AEC @ =gUnknown_081D955D
+ str r0, [r1]
+ movs r2, 0x1
+ mov r10, r2
+ b _08021DFA
+ .align 2, 0
+_08021AD0: .4byte gBattleMons
+_08021AD4: .4byte gUnknown_02024C08
+_08021AD8: .4byte gUnknown_02024C07
+_08021ADC: .4byte gUnknown_02024D68
+_08021AE0: .4byte gUnknown_02024C68
+_08021AE4: .4byte gUnknown_02024A60
+_08021AE8: .4byte gUnknown_02024C10
+_08021AEC: .4byte gUnknown_081D955D
+_08021AF0:
+ ldr r0, _08021B14 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x7
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _08021B0C
+ movs r4, 0x1
+ mov r10, r4
+_08021B0C:
+ ldr r2, _08021B18 @ =0x02000000
+ ldr r5, _08021B1C @ =0x0001600c
+ adds r1, r2, r5
+ b _08021E00
+ .align 2, 0
+_08021B14: .4byte gUnknown_02024C08
+_08021B18: .4byte 0x02000000
+_08021B1C: .4byte 0x0001600c
+_08021B20:
+ ldr r0, _08021B40 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x4
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _08021B3A
+ b _08021DFA
+_08021B3A:
+ movs r0, 0x1
+ mov r10, r0
+ b _08021DFA
+ .align 2, 0
+_08021B40: .4byte gUnknown_02024C08
+_08021B44:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x5
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _08021B68
+ movs r4, 0x1
+ mov r10, r4
+ ldr r5, _08021B64 @ =0x02000000
+ mov r12, r5
+ b _0802224E
+ .align 2, 0
+_08021B64: .4byte 0x02000000
+_08021B68:
+ ldr r2, _08021B70 @ =0x02000000
+ ldr r0, _08021B74 @ =0x0001600c
+ adds r1, r2, r0
+ b _08021E00
+ .align 2, 0
+_08021B70: .4byte 0x02000000
+_08021B74: .4byte 0x0001600c
+_08021B78:
+ ldr r0, _08021B98 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x8
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _08021B92
+ b _08021DFA
+_08021B92:
+ movs r1, 0x1
+ mov r10, r1
+ b _08021DFA
+ .align 2, 0
+_08021B98: .4byte gUnknown_02024C07
+_08021B9C:
+ ldr r0, _08021C28 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 18
+ ands r0, r1
+ cmp r0, 0
+ beq _08021BE0
+ ldr r4, [sp, 0x8]
+ cmp r4, 0x1D
+ bne _08021BE0
+ ldr r0, _08021C2C @ =gUnknown_02024BE8
+ ldrh r2, [r0]
+ adds r7, r0, 0
+ cmp r2, 0xA5
+ beq _08021BE0
+ ldr r5, [sp, 0xC]
+ ldrh r1, [r5]
+ cmp r1, 0
+ beq _08021BC8
+ ldr r0, _08021C30 @ =0x0000ffff
+ cmp r1, r0
+ bne _08021BE0
+_08021BC8:
+ cmp r2, 0xE2
+ bne _08021BDA
+ ldr r0, _08021C34 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _08021BDA
+ b _08022244
+_08021BDA:
+ ldrh r0, [r7]
+ ldr r1, [sp, 0xC]
+ strh r0, [r1]
+_08021BE0:
+ movs r4, 0
+ ldr r2, _08021C38 @ =gBattleMons
+ ldr r3, _08021C3C @ =gUnknown_02024C07
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r2, 0xC
+ adds r0, r2
+ ldrh r0, [r0]
+ ldr r5, [sp, 0xC]
+ ldrh r1, [r5]
+ mov r9, r3
+ cmp r0, r1
+ beq _08021C18
+ mov r6, r9
+ movs r3, 0x58
+ adds r5, r1, 0
+_08021C02:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _08021C18
+ lsls r0, r4, 1
+ ldrb r1, [r6]
+ muls r1, r3
+ adds r0, r1
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r0, r5
+ bne _08021C02
+_08021C18:
+ cmp r4, 0x4
+ beq _08021C1E
+ b _08022244
+_08021C1E:
+ movs r0, 0
+ ldr r1, [sp, 0xC]
+_08021C22:
+ strh r0, [r1]
+ b _08022244
+ .align 2, 0
+_08021C28: .4byte gUnknown_02024C6C
+_08021C2C: .4byte gUnknown_02024BE8
+_08021C30: .4byte 0x0000ffff
+_08021C34: .4byte gUnknown_02024C68
+_08021C38: .4byte gBattleMons
+_08021C3C: .4byte gUnknown_02024C07
+_08021C40:
+ movs r4, 0
+ ldr r0, _08021C6C @ =gUnknown_02024A68
+ ldrb r2, [r0]
+ cmp r4, r2
+ blt _08021C4C
+ b _08022244
+_08021C4C:
+ movs r5, 0
+ ldr r2, _08021C70 @ =0x020160f0
+ ldr r3, _08021C74 @ =gBattleMons
+_08021C52:
+ ldrh r1, [r2]
+ cmp r1, 0
+ beq _08021C5C
+ strh r1, [r3, 0x2E]
+ strh r5, [r2]
+_08021C5C:
+ adds r2, 0x2
+ adds r3, 0x58
+ adds r4, 0x1
+ ldrb r1, [r0]
+ cmp r4, r1
+ blt _08021C52
+ b _08022244
+ .align 2, 0
+_08021C6C: .4byte gUnknown_02024A68
+_08021C70: .4byte 0x020160f0
+_08021C74: .4byte gBattleMons
+_08021C78:
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl sub_801A02C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08021C98
+ movs r2, 0x1
+ mov r10, r2
+ ldr r3, _08021C94 @ =0x02000000
+ mov r12, r3
+ b _0802224E
+ .align 2, 0
+_08021C94: .4byte 0x02000000
+_08021C98:
+ ldr r2, _08021CA0 @ =0x02000000
+ ldr r4, _08021CA4 @ =0x0001600c
+ adds r1, r2, r4
+ b _08021E00
+ .align 2, 0
+_08021CA0: .4byte 0x02000000
+_08021CA4: .4byte 0x0001600c
+_08021CA8:
+ movs r0, 0x4
+ movs r1, 0
+ movs r2, 0
+ bl sub_801A02C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08021CBC
+ movs r5, 0x1
+ mov r10, r5
+_08021CBC:
+ ldr r2, _08021CC4 @ =0x02000000
+ ldr r0, _08021CC8 @ =0x0001600c
+ adds r1, r2, r0
+ b _08021E00
+ .align 2, 0
+_08021CC4: .4byte 0x02000000
+_08021CC8: .4byte 0x0001600c
+_08021CCC:
+ ldr r1, _08021D04 @ =gUnknown_02024C98
+ ldr r0, _08021D08 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _08021D0C @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ bne _08021CE2
+ b _08021DFA
+_08021CE2:
+ ldr r0, _08021D10 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08021CF0
+ b _08021DFA
+_08021CF0:
+ ldr r4, _08021D14 @ =gUnknown_02024A60
+ strb r2, [r4]
+ movs r0, 0
+ movs r1, 0x1
+ bl dp01_build_cmdbuf_x33_a_33_33
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _08021DFA
+ .align 2, 0
+_08021D04: .4byte gUnknown_02024C98
+_08021D08: .4byte gUnknown_02024C07
+_08021D0C: .4byte 0x000400c0
+_08021D10: .4byte gUnknown_02024C6C
+_08021D14: .4byte gUnknown_02024A60
+_08021D18:
+ ldr r0, _08021D88 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _08021D44
+ ldr r1, _08021D8C @ =gUnknown_02024C98
+ ldr r0, _08021D90 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _08021D94 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ beq _08021D44
+ adds r0, r2, 0
+ bl sub_8015660
+ lsls r0, 24
+ cmp r0, 0
+ beq _08021D7E
+_08021D44:
+ ldr r4, _08021D98 @ =gUnknown_02024A60
+ ldr r5, _08021D90 @ =gUnknown_02024C07
+ ldrb r0, [r5]
+ strb r0, [r4]
+ movs r0, 0
+ movs r1, 0
+ bl dp01_build_cmdbuf_x33_a_33_33
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, _08021D8C @ =gUnknown_02024C98
+ ldrb r2, [r5]
+ lsls r2, 2
+ adds r2, r0
+ ldr r0, [r2]
+ ldr r1, _08021D9C @ =0xfffbff3f
+ ands r0, r1
+ str r0, [r2]
+ ldr r2, _08021DA0 @ =gUnknown_02024D68
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_08021D7E:
+ ldr r2, _08021DA4 @ =0x02000000
+ ldr r4, _08021DA8 @ =0x0001600c
+ adds r1, r2, r4
+ b _08021E00
+ .align 2, 0
+_08021D88: .4byte gUnknown_02024C68
+_08021D8C: .4byte gUnknown_02024C98
+_08021D90: .4byte gUnknown_02024C07
+_08021D94: .4byte 0x000400c0
+_08021D98: .4byte gUnknown_02024A60
+_08021D9C: .4byte 0xfffbff3f
+_08021DA0: .4byte gUnknown_02024D68
+_08021DA4: .4byte 0x02000000
+_08021DA8: .4byte 0x0001600c
+_08021DAC:
+ ldr r2, _08021E0C @ =gUnknown_02024D68
+ ldr r1, _08021E10 @ =gUnknown_02024C08
+ ldrb r3, [r1]
+ lsls r4, r3, 2
+ adds r0, r4, r3
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _08021DFA
+ ldr r0, _08021E14 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _08021DFA
+ ldr r5, _08021E18 @ =gUnknown_02024C98
+ adds r0, r4, r5
+ ldr r0, [r0]
+ ldr r1, _08021E1C @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ bne _08021DFA
+ ldr r4, _08021E20 @ =gUnknown_02024A60
+ strb r3, [r4]
+ movs r0, 0
+ movs r1, 0
+ bl dp01_build_cmdbuf_x33_a_33_33
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, _08021E10 @ =gUnknown_02024C08
+ ldrb r2, [r0]
+ lsls r2, 2
+ adds r2, r5
+ ldr r0, [r2]
+ ldr r1, _08021E24 @ =0xfffbff3f
+ ands r0, r1
+ str r0, [r2]
+_08021DFA:
+ ldr r2, _08021E28 @ =0x02000000
+ ldr r3, _08021E2C @ =0x0001600c
+ adds r1, r2, r3
+_08021E00:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r12, r2
+ b _0802224E
+ .align 2, 0
+_08021E0C: .4byte gUnknown_02024D68
+_08021E10: .4byte gUnknown_02024C08
+_08021E14: .4byte gUnknown_02024A68
+_08021E18: .4byte gUnknown_02024C98
+_08021E1C: .4byte 0x000400c0
+_08021E20: .4byte gUnknown_02024A60
+_08021E24: .4byte 0xfffbff3f
+_08021E28: .4byte 0x02000000
+_08021E2C: .4byte 0x0001600c
+_08021E30:
+ movs r4, 0
+ ldr r0, _08021E60 @ =gUnknown_02024A68
+ ldrb r5, [r0]
+ cmp r4, r5
+ blt _08021E3C
+ b _08022244
+_08021E3C:
+ ldr r2, _08021E64 @ =gUnknown_02024CA8
+ ldr r5, _08021E68 @ =0xfeffffff
+ adds r3, r0, 0
+ ldr r1, _08021E6C @ =gUnknown_02024AD0
+_08021E44:
+ ldrb r0, [r2, 0xA]
+ cmp r0, 0
+ bne _08021E50
+ ldr r0, [r1]
+ ands r0, r5
+ str r0, [r1]
+_08021E50:
+ adds r2, 0x1C
+ adds r1, 0x58
+ adds r4, 0x1
+ ldrb r0, [r3]
+ cmp r4, r0
+ blt _08021E44
+ b _08022244
+ .align 2, 0
+_08021E60: .4byte gUnknown_02024A68
+_08021E64: .4byte gUnknown_02024CA8
+_08021E68: .4byte 0xfeffffff
+_08021E6C: .4byte gUnknown_02024AD0
+_08021E70:
+ ldr r1, _08021F2C @ =gUnknown_02024C6C
+ ldr r3, [r1]
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r3
+ ldr r2, _08021F30 @ =gUnknown_02024C07
+ mov r9, r2
+ adds r5, r1, 0
+ cmp r0, 0
+ beq _08021E9A
+ ldr r0, _08021F34 @ =gUnknown_02024A60
+ ldrb r2, [r2]
+ strb r2, [r0]
+ ldr r1, _08021F38 @ =gUnknown_02024C08
+ ldrb r0, [r1]
+ mov r4, r9
+ strb r0, [r4]
+ strb r2, [r1]
+ ldr r0, _08021F3C @ =0xffffefff
+ ands r3, r0
+ str r3, [r5]
+_08021E9A:
+ ldr r1, _08021F40 @ =gBattleMoves
+ ldr r2, _08021F44 @ =gUnknown_02024BE8
+ ldrh r3, [r2]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r8, r1
+ adds r7, r2, 0
+ cmp r0, 0x7F
+ bne _08021EBE
+ ldr r0, _08021F48 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08021ECA
+_08021EBE:
+ ldr r1, _08021F4C @ =gUnknown_02024C2C
+ mov r2, r9
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r1
+ strh r3, [r0]
+_08021ECA:
+ ldr r0, _08021F50 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _08021F54 @ =gBitTable
+ mov r3, r9
+ ldrb r4, [r3]
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r3, [r0]
+ ands r1, r3
+ adds r6, r2, 0
+ cmp r1, 0
+ beq _08021EE4
+ b _08022244
+_08021EE4:
+ ldr r0, _08021F58 @ =0x000160a6
+ add r0, r12
+ ldrb r0, [r0]
+ ands r0, r3
+ cmp r0, 0
+ beq _08021EF2
+ b _08022244
+_08021EF2:
+ ldrh r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ add r0, r8
+ ldrb r0, [r0]
+ cmp r0, 0x7F
+ bne _08021F04
+ b _08022244
+_08021F04:
+ ldr r0, [r5]
+ movs r1, 0x80
+ lsls r1, 18
+ ands r0, r1
+ cmp r0, 0
+ beq _08021F68
+ ldr r1, _08021F5C @ =gUnknown_02024C34
+ lsls r0, r4, 1
+ adds r0, r1
+ strh r2, [r0]
+ ldr r0, _08021F60 @ =gUnknown_02024C4C
+ mov r4, r9
+ ldrb r1, [r4]
+ lsls r1, 1
+ adds r1, r0
+ ldr r0, _08021F64 @ =gUnknown_02024BE6
+ ldrh r0, [r0]
+ strh r0, [r1]
+ b _08021F82
+ .align 2, 0
+_08021F2C: .4byte gUnknown_02024C6C
+_08021F30: .4byte gUnknown_02024C07
+_08021F34: .4byte gUnknown_02024A60
+_08021F38: .4byte gUnknown_02024C08
+_08021F3C: .4byte 0xffffefff
+_08021F40: .4byte gBattleMoves
+_08021F44: .4byte gUnknown_02024BE8
+_08021F48: .4byte gUnknown_02024C68
+_08021F4C: .4byte gUnknown_02024C2C
+_08021F50: .4byte gUnknown_02024C0C
+_08021F54: .4byte gBitTable
+_08021F58: .4byte 0x000160a6
+_08021F5C: .4byte gUnknown_02024C34
+_08021F60: .4byte gUnknown_02024C4C
+_08021F64: .4byte gUnknown_02024BE6
+_08021F68:
+ ldr r1, _08021FD0 @ =gUnknown_02024C34
+ lsls r0, r4, 1
+ adds r0, r1
+ ldr r1, _08021FD4 @ =0x0000ffff
+ strh r1, [r0]
+ ldr r1, _08021FD8 @ =gUnknown_02024C4C
+ mov r2, r9
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0]
+_08021F82:
+ ldr r2, _08021FDC @ =gUnknown_02024C08
+ ldrb r3, [r2]
+ lsls r0, r3, 2
+ adds r0, r6
+ ldr r0, [r0]
+ lsls r0, 28
+ ldr r1, [r5]
+ ands r1, r0
+ cmp r1, 0
+ bne _08021FA0
+ ldr r0, _08021FE0 @ =gUnknown_02024C5C
+ adds r0, r3, r0
+ mov r3, r9
+ ldrb r1, [r3]
+ strb r1, [r0]
+_08021FA0:
+ ldr r0, [r5]
+ movs r1, 0x80
+ lsls r1, 18
+ ands r0, r1
+ cmp r0, 0
+ beq _0802204C
+ ldr r0, _08021FE4 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0802204C
+ ldrh r2, [r7]
+ ldr r0, _08021FD4 @ =0x0000ffff
+ cmp r2, r0
+ bne _08021FEC
+ ldr r1, _08021FE8 @ =gUnknown_02024C3C
+ ldr r4, _08021FDC @ =gUnknown_02024C08
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ strh r2, [r0]
+ b _08022244
+ .align 2, 0
+_08021FD0: .4byte gUnknown_02024C34
+_08021FD4: .4byte 0x0000ffff
+_08021FD8: .4byte gUnknown_02024C4C
+_08021FDC: .4byte gUnknown_02024C08
+_08021FE0: .4byte gUnknown_02024C5C
+_08021FE4: .4byte gUnknown_02024C68
+_08021FE8: .4byte gUnknown_02024C3C
+_08021FEC:
+ ldr r0, _08022014 @ =gUnknown_02024C3C
+ ldr r5, _08022018 @ =gUnknown_02024C08
+ ldrb r1, [r5]
+ lsls r1, 1
+ adds r1, r0
+ ldr r4, _0802201C @ =gUnknown_02024BE6
+ ldrh r0, [r4]
+ strh r0, [r1]
+ ldr r0, _08022020 @ =0x0001601c
+ add r0, r12
+ ldrb r3, [r0]
+ cmp r3, 0
+ beq _08022028
+ ldr r0, _08022024 @ =gUnknown_02024C44
+ ldrb r1, [r5]
+ lsls r1, 1
+ adds r1, r0
+ movs r0, 0x3F
+ ands r0, r3
+ b _08021C22
+ .align 2, 0
+_08022014: .4byte gUnknown_02024C3C
+_08022018: .4byte gUnknown_02024C08
+_0802201C: .4byte gUnknown_02024BE6
+_08022020: .4byte 0x0001601c
+_08022024: .4byte gUnknown_02024C44
+_08022028:
+ ldr r0, _08022044 @ =gUnknown_02024C44
+ ldr r1, _08022048 @ =gUnknown_02024C08
+ ldrb r2, [r1]
+ lsls r2, 1
+ adds r2, r0
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrb r0, [r0, 0x2]
+ strh r0, [r2]
+ b _08022244
+ .align 2, 0
+_08022044: .4byte gUnknown_02024C44
+_08022048: .4byte gUnknown_02024C08
+_0802204C:
+ ldr r0, _0802205C @ =gUnknown_02024C3C
+ ldr r2, _08022060 @ =gUnknown_02024C08
+ ldrb r1, [r2]
+ lsls r1, 1
+ adds r1, r0
+ ldr r0, _08022064 @ =0x0000ffff
+ b _08021C22
+ .align 2, 0
+_0802205C: .4byte gUnknown_02024C3C
+_08022060: .4byte gUnknown_02024C08
+_08022064: .4byte 0x0000ffff
+_08022068:
+ ldr r0, _0802212C @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r6, _08022130 @ =gBitTable
+ ldr r2, _08022134 @ =gUnknown_02024C07
+ ldrb r5, [r2]
+ lsls r0, r5, 2
+ adds r0, r6
+ ldr r4, [r0]
+ ands r1, r4
+ mov r9, r2
+ cmp r1, 0
+ beq _08022082
+ b _08022244
+_08022082:
+ ldr r0, _08022138 @ =0x000160a6
+ add r0, r12
+ ldrb r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ beq _08022090
+ b _08022244
+_08022090:
+ ldr r1, _0802213C @ =gBattleMoves
+ ldr r4, _08022140 @ =gUnknown_02024BE8
+ ldrh r3, [r4]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0802215C
+ ldr r0, _08022144 @ =gUnknown_02024C6C
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 18
+ ands r0, r1
+ cmp r0, 0
+ beq _0802215C
+ ldr r2, _08022148 @ =gUnknown_02024C08
+ ldrb r0, [r2]
+ cmp r5, r0
+ bne _080220C0
+ b _08022244
+_080220C0:
+ adds r2, r0, 0
+ lsls r0, r2, 2
+ adds r0, r6
+ ldr r0, [r0]
+ lsls r0, 28
+ ands r1, r0
+ cmp r1, 0
+ bne _0802215C
+ ldr r0, _0802214C @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0802215C
+ lsls r0, r2, 1
+ ldr r5, _08022150 @ =0x000160ac
+ adds r0, r5
+ add r0, r12
+ strb r3, [r0]
+ ldr r0, _08022148 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ lsls r1, 1
+ ldr r2, _08022154 @ =0x000160ad
+ adds r1, r2
+ add r1, r12
+ ldrh r0, [r4]
+ lsrs r0, 8
+ strb r0, [r1]
+ ldr r3, _08022148 @ =gUnknown_02024C08
+ ldrb r2, [r3]
+ lsls r2, 2
+ mov r5, r9
+ ldrb r0, [r5]
+ lsrs r0, 1
+ lsls r0, 1
+ ldr r1, _08022158 @ =0x00016100
+ adds r0, r1
+ adds r2, r0
+ add r2, r12
+ ldrh r0, [r4]
+ strb r0, [r2]
+ ldrb r2, [r3]
+ lsls r2, 2
+ ldrb r0, [r5]
+ lsrs r0, 1
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ adds r2, r0
+ add r2, r12
+ ldrh r0, [r4]
+ lsrs r0, 8
+ strb r0, [r2]
+ b _08022244
+ .align 2, 0
+_0802212C: .4byte gUnknown_02024C0C
+_08022130: .4byte gBitTable
+_08022134: .4byte gUnknown_02024C07
+_08022138: .4byte 0x000160a6
+_0802213C: .4byte gBattleMoves
+_08022140: .4byte gUnknown_02024BE8
+_08022144: .4byte gUnknown_02024C6C
+_08022148: .4byte gUnknown_02024C08
+_0802214C: .4byte gUnknown_02024C68
+_08022150: .4byte 0x000160ac
+_08022154: .4byte 0x000160ad
+_08022158: .4byte 0x00016100
+_0802215C:
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r2, _080221B4 @ =gUnknown_02024C08
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _08022244
+ ldr r3, _080221B4 @ =gUnknown_02024C08
+ ldrb r0, [r3]
+ lsls r0, 1
+ ldr r4, _080221B8 @ =0x000160ac
+ adds r0, r4
+ add r0, r12
+ movs r3, 0
+ strb r3, [r0]
+ ldr r5, _080221B4 @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ lsls r0, 1
+ ldr r1, _080221BC @ =0x000160ad
+ adds r0, r1
+ add r0, r12
+ strb r3, [r0]
+ ldrb r2, [r5]
+ lsls r2, 2
+ mov r4, r9
+ ldrb r0, [r4]
+ lsrs r0, 1
+ lsls r0, 1
+ adds r1, 0x53
+ adds r0, r1
+ adds r2, r0
+ add r2, r12
+ strb r3, [r2]
+ ldrb r2, [r5]
+ lsls r2, 2
+ ldrb r0, [r4]
+ lsrs r0, 1
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ adds r2, r0
+ add r2, r12
+ strb r3, [r2]
+ b _08022244
+ .align 2, 0
+_080221B4: .4byte gUnknown_02024C08
+_080221B8: .4byte 0x000160ac
+_080221BC: .4byte 0x000160ad
+_080221C0:
+ ldr r5, _080222B0 @ =gUnknown_02024C6C
+ ldr r2, [r5]
+ movs r0, 0x80
+ lsls r0, 12
+ ands r0, r2
+ cmp r0, 0
+ bne _08022244
+ ldr r0, _080222B4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08022244
+ ldr r1, _080222B8 @ =gUnknown_02024D28
+ ldr r0, _080222BC @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ cmp r0, 0
+ blt _08022244
+ ldr r0, _080222C0 @ =gBattleMoves
+ mov r9, r0
+ ldr r1, _080222C4 @ =gUnknown_02024BE6
+ mov r8, r1
+ ldrh r0, [r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ add r1, r9
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0x8
+ bne _08022244
+ movs r6, 0x80
+ lsls r6, 2
+ adds r4, r6, 0
+ ands r4, r2
+ cmp r4, 0
+ bne _08022244
+ ldr r7, _080222C8 @ =gUnknown_02024C08
+ ldrb r0, [r7]
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080222CC @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0802223A
+ bl _08021874
+_0802223A:
+ ldr r0, [r5]
+ orrs r0, r6
+ str r0, [r5]
+ ldr r2, _080222D0 @ =0x02000000
+ mov r12, r2
+_08022244:
+ ldr r1, _080222D4 @ =0x0001600c
+ add r1, r12
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0802224E:
+ ldr r3, [sp, 0x10]
+ cmp r3, 0x1
+ bne _08022262
+ mov r4, r10
+ cmp r4, 0
+ bne _08022262
+ ldr r1, _080222D4 @ =0x0001600c
+ add r1, r12
+ movs r0, 0x11
+ strb r0, [r1]
+_08022262:
+ ldr r5, [sp, 0x10]
+ cmp r5, 0x2
+ bne _08022278
+ ldr r1, _080222D4 @ =0x0001600c
+ add r1, r12
+ ldr r0, [sp, 0x14]
+ ldrb r2, [r1]
+ cmp r0, r2
+ bne _08022278
+ movs r0, 0x11
+ strb r0, [r1]
+_08022278:
+ ldr r0, _080222D4 @ =0x0001600c
+ add r0, r12
+ ldrb r0, [r0]
+ cmp r0, 0x11
+ beq _08022286
+ bl _080218E4
+_08022286:
+ ldr r0, _080222D4 @ =0x0001600c
+ add r0, r12
+ ldrb r0, [r0]
+ cmp r0, 0x11
+ bne _0802229E
+ mov r3, r10
+ cmp r3, 0
+ bne _0802229E
+ ldr r1, _080222D8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x3
+_0802229C:
+ str r0, [r1]
+_0802229E:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080222B0: .4byte gUnknown_02024C6C
+_080222B4: .4byte gUnknown_020239F8
+_080222B8: .4byte gUnknown_02024D28
+_080222BC: .4byte gUnknown_02024C07
+_080222C0: .4byte gBattleMoves
+_080222C4: .4byte gUnknown_02024BE6
+_080222C8: .4byte gUnknown_02024C08
+_080222CC: .4byte gBattleMons
+_080222D0: .4byte 0x02000000
+_080222D4: .4byte 0x0001600c
+_080222D8: .4byte gUnknown_02024C10
+ thumb_func_end sub_80217F8
+
+ thumb_func_start atk4A_damageflags
+atk4A_damageflags: @ 80222DC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r4, 0
+ movs r5, 0
+ ldr r2, _08022340 @ =gBattleMoves
+ ldr r0, _08022344 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ mov r8, r0
+ ldr r2, _08022348 @ =gBattleMons
+ ldr r3, _0802234C @ =gUnknown_02024C08
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ mov r12, r2
+ adds r7, r3, 0
+ cmp r0, 0x1A
+ bne _08022370
+ mov r1, r8
+ cmp r1, 0x4
+ bne _08022370
+ ldr r3, _08022350 @ =byte_2024C06
+ strb r0, [r3]
+ ldr r2, _08022354 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x9
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08022358 @ =gUnknown_02024C3C
+ ldrb r0, [r7]
+ lsls r0, 1
+ adds r0, r1
+ strh r4, [r0]
+ ldr r0, _0802235C @ =gUnknown_02024D1E
+ mov r2, r8
+ strb r2, [r0, 0x6]
+ ldrb r0, [r7]
+ ldrb r1, [r3]
+ bl sub_81074C4
+ b _08022452
+ .align 2, 0
+_08022340: .4byte gBattleMoves
+_08022344: .4byte gUnknown_02024BE6
+_08022348: .4byte gBattleMons
+_0802234C: .4byte gUnknown_02024C08
+_08022350: .4byte byte_2024C06
+_08022354: .4byte gUnknown_02024C68
+_08022358: .4byte gUnknown_02024C3C
+_0802235C: .4byte gUnknown_02024D1E
+_08022360:
+ ldr r0, _0802236C @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+ b _08022452
+ .align 2, 0
+_0802236C: .4byte gUnknown_02024C68
+_08022370:
+ ldr r1, _0802237C @ =gTypeEffectiveness
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ adds r6, r1, 0
+ b _08022432
+ .align 2, 0
+_0802237C: .4byte gTypeEffectiveness
+_08022380:
+ adds r0, r5, r6
+ ldrb r0, [r0]
+ cmp r0, r8
+ bne _0802242C
+ adds r2, r5, 0x1
+ adds r3, r2, r6
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r12
+ adds r0, 0x21
+ ldrb r1, [r3]
+ adds r3, r2, 0
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _080223BE
+ adds r0, r5, 0x2
+ adds r0, r6
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _08022360
+ cmp r1, 0x5
+ bne _080223B2
+ movs r0, 0x4
+ orrs r4, r0
+_080223B2:
+ cmp r1, 0x14
+ bne _080223BE
+ movs r0, 0x2
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_080223BE:
+ adds r2, r3, r6
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r12
+ adds r1, r0, 0
+ adds r1, 0x22
+ ldrb r2, [r2]
+ ldrb r1, [r1]
+ cmp r2, r1
+ bne _0802242C
+ adds r0, 0x21
+ ldrb r1, [r0]
+ cmp r1, r2
+ beq _080223E6
+ adds r0, r5, 0x2
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08022360
+_080223E6:
+ cmp r1, r2
+ beq _080223FC
+ adds r0, r5, 0x2
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bne _080223FC
+ movs r0, 0x4
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_080223FC:
+ adds r2, r3, r6
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r12
+ adds r1, r0, 0
+ adds r1, 0x22
+ ldrb r2, [r2]
+ ldrb r1, [r1]
+ cmp r2, r1
+ bne _0802242C
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r2
+ beq _0802242C
+ adds r0, r5, 0x2
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0x14
+ bne _0802242C
+ movs r0, 0x2
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_0802242C:
+ adds r5, 0x3
+ adds r0, r5, r6
+ ldrb r0, [r0]
+_08022432:
+ cmp r0, 0xFF
+ beq _08022452
+ cmp r0, 0xFE
+ bne _08022380
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ mov r1, r12
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 22
+ ands r0, r1
+ cmp r0, 0
+ beq _0802242C
+_08022452:
+ ldr r2, _08022500 @ =gBattleMons
+ ldr r0, _08022504 @ =gUnknown_02024C08
+ mov r8, r0
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r6, [r0]
+ cmp r6, 0x19
+ bne _080224CE
+ movs r5, 0x29
+ ands r5, r4
+ cmp r5, 0
+ bne _080224CE
+ ldr r0, _08022508 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ ldr r7, _0802250C @ =gUnknown_02024BE6
+ ldrh r1, [r7]
+ bl move_weather_interaction
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bne _080224CE
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08022494
+ movs r0, 0x6
+ ands r4, r0
+ cmp r4, 0x6
+ bne _080224CE
+_08022494:
+ ldr r2, _08022510 @ =gBattleMoves
+ ldrh r1, [r7]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _080224CE
+ ldr r3, _08022514 @ =byte_2024C06
+ strb r6, [r3]
+ ldr r2, _08022518 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0802251C @ =gUnknown_02024C3C
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r1
+ strh r5, [r0]
+ ldr r1, _08022520 @ =gUnknown_02024D1E
+ movs r0, 0x3
+ strb r0, [r1, 0x6]
+ ldrb r0, [r2]
+ ldrb r1, [r3]
+ bl sub_81074C4
+_080224CE:
+ ldr r0, _08022518 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080224EC
+ ldr r2, _08022524 @ =gUnknown_02024D28
+ ldr r0, _08022508 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r1, 4
+ adds r1, r2
+ ldrb r0, [r1, 0x1]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r1, 0x1]
+_080224EC:
+ ldr r1, _08022528 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08022500: .4byte gBattleMons
+_08022504: .4byte gUnknown_02024C08
+_08022508: .4byte gUnknown_02024C07
+_0802250C: .4byte gUnknown_02024BE6
+_08022510: .4byte gBattleMoves
+_08022514: .4byte byte_2024C06
+_08022518: .4byte gUnknown_02024C68
+_0802251C: .4byte gUnknown_02024C3C
+_08022520: .4byte gUnknown_02024D1E
+_08022524: .4byte gUnknown_02024D28
+_08022528: .4byte gUnknown_02024C10
+ thumb_func_end atk4A_damageflags
+
+ thumb_func_start atk4B_cmd4b
+atk4B_cmd4b: @ 802252C
+ push {r4,lr}
+ ldr r4, _08022568 @ =gUnknown_02024A60
+ ldr r0, _0802256C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r2, _08022570 @ =gUnknown_02024C6C
+ ldr r1, _08022574 @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ bne _0802255A
+ movs r0, 0
+ movs r1, 0
+ bl dp01_build_cmdbuf_x06_a
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_0802255A:
+ ldr r1, _08022578 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08022568: .4byte gUnknown_02024A60
+_0802256C: .4byte gUnknown_02024C07
+_08022570: .4byte gUnknown_02024C6C
+_08022574: .4byte gBitTable
+_08022578: .4byte gUnknown_02024C10
+ thumb_func_end atk4B_cmd4b
+
+ thumb_func_start atk4C_switch1
+atk4C_switch1: @ 802257C
+ push {r4-r6,lr}
+ ldr r0, _080225D4 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080225CC
+ ldr r5, _080225D8 @ =gUnknown_02024C10
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _080225DC @ =gUnknown_02024A60
+ strb r0, [r4]
+ ldr r3, _080225E0 @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r3
+ ldr r2, _080225E4 @ =0x02000000
+ ldr r6, _080225E8 @ =0x00016068
+ adds r0, r6
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r1]
+ ldr r1, _080225EC @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0]
+ movs r0, 0
+ movs r1, 0
+ bl dp01_build_cmdbuf_x00_a_b_0
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+_080225CC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080225D4: .4byte gUnknown_02024A64
+_080225D8: .4byte gUnknown_02024C10
+_080225DC: .4byte gUnknown_02024A60
+_080225E0: .4byte gUnknown_02024A6A
+_080225E4: .4byte 0x02000000
+_080225E8: .4byte 0x00016068
+_080225EC: .4byte gBitTable
+ thumb_func_end atk4C_switch1
+
+ thumb_func_start sub_80225F0
+sub_80225F0: @ 80225F0
+ push {r4-r7,lr}
+ sub sp, 0x58
+ ldr r0, _0802274C @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080225FE
+ b _08022744
+_080225FE:
+ ldr r0, _08022750 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _08022754 @ =gUnknown_02024A60
+ strb r0, [r4]
+ ldr r6, _08022758 @ =gBattleMons
+ ldrb r0, [r4]
+ movs r5, 0x58
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r6
+ mov r0, sp
+ movs r2, 0x58
+ bl memcpy
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r3, r0, r6
+ movs r2, 0
+ ldr r5, _0802275C @ =gUnknown_02024260
+ adds r7, r4, 0
+_0802262C:
+ adds r0, r3, r2
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r1, 0x4
+ adds r1, r2, r1
+ adds r1, r5
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x57
+ bls _0802262C
+ ldr r4, _08022758 @ =gBattleMons
+ ldrb r0, [r7]
+ movs r6, 0x58
+ adds r2, r0, 0
+ muls r2, r6
+ adds r2, r4
+ ldr r3, _08022760 @ =gBaseStats
+ ldrh r1, [r2]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x6]
+ adds r2, 0x21
+ strb r0, [r2]
+ ldrb r0, [r7]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r4
+ ldrh r2, [r1]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x7]
+ adds r1, 0x22
+ strb r0, [r1]
+ ldrb r0, [r7]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r4
+ ldrh r0, [r1]
+ ldrb r1, [r1, 0x17]
+ lsrs r1, 7
+ bl GetAbilityBySpecies
+ ldrb r1, [r7]
+ muls r1, r6
+ adds r1, r4
+ adds r1, 0x20
+ strb r0, [r1]
+ ldrb r0, [r7]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08022764 @ =gUnknown_02024DBC
+ adds r0, 0x29
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ ldr r3, _08022768 @ =gBitTable
+ ldr r2, _0802276C @ =gUnknown_02024A6A
+ ldrb r5, [r7]
+ lsls r0, r5, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ands r1, r0
+ mov r12, r4
+ cmp r1, 0
+ beq _080226CA
+ adds r0, r5, 0
+ muls r0, r6
+ add r0, r12
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+_080226CA:
+ ldr r2, _08022770 @ =gBattleMoves
+ ldr r0, _08022774 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x7F
+ bne _08022710
+ movs r2, 0
+ adds r4, r7, 0
+ movs r6, 0x58
+ mov r5, r12
+ adds r5, 0x18
+ add r3, sp, 0x18
+_080226EA:
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r2, r1
+ adds r1, r5
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _080226EA
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ mov r1, r12
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [sp, 0x50]
+ str r1, [r0]
+_08022710:
+ bl sub_8010B88
+ ldr r0, _08022778 @ =0x02000000
+ ldr r3, _08022754 @ =gUnknown_02024A60
+ ldrb r2, [r3]
+ ldr r1, _0802277C @ =0x00016003
+ adds r0, r1
+ strb r2, [r0]
+ ldr r1, _08022780 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x7
+ strb r0, [r1, 0x1]
+ strb r2, [r1, 0x2]
+ ldr r2, _0802276C @ =gUnknown_02024A6A
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08022750 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_08022744:
+ add sp, 0x58
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802274C: .4byte gUnknown_02024A64
+_08022750: .4byte gUnknown_02024C10
+_08022754: .4byte gUnknown_02024A60
+_08022758: .4byte gBattleMons
+_0802275C: .4byte gUnknown_02024260
+_08022760: .4byte gBaseStats
+_08022764: .4byte gUnknown_02024DBC
+_08022768: .4byte gBitTable
+_0802276C: .4byte gUnknown_02024A6A
+_08022770: .4byte gBattleMoves
+_08022774: .4byte gUnknown_02024BE6
+_08022778: .4byte 0x02000000
+_0802277C: .4byte 0x00016003
+_08022780: .4byte gUnknown_030041C0
+ thumb_func_end sub_80225F0
+
+ thumb_func_start sub_8022784
+sub_8022784: @ 8022784
+ push {r4,r5,lr}
+ ldr r0, _0802280C @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08022806
+ ldr r0, _08022810 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _08022814 @ =gUnknown_02024A60
+ strb r0, [r4]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080227D0
+ ldr r0, _08022818 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _0802281C @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ bne _080227D0
+ ldr r2, _08022820 @ =gBattleMons
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2
+ bl sub_8090D90
+_080227D0:
+ ldr r2, _08022824 @ =gUnknown_02024C0C
+ ldr r1, _08022828 @ =gBitTable
+ ldr r5, _08022814 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldrb r0, [r2]
+ bics r0, r1
+ strb r0, [r2]
+ ldr r1, _0802282C @ =gUnknown_02024A6A
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r4, _08022810 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r2, [r0, 0x2]
+ movs r0, 0
+ bl sub_800C704
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r4]
+ adds r0, 0x3
+ str r0, [r4]
+_08022806:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802280C: .4byte gUnknown_02024A64
+_08022810: .4byte gUnknown_02024C10
+_08022814: .4byte gUnknown_02024A60
+_08022818: .4byte gUnknown_020239F8
+_0802281C: .4byte 0x00000902
+_08022820: .4byte gBattleMons
+_08022824: .4byte gUnknown_02024C0C
+_08022828: .4byte gBitTable
+_0802282C: .4byte gUnknown_02024A6A
+ thumb_func_end sub_8022784
+
+ thumb_func_start sub_8022830
+sub_8022830: @ 8022830
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, _08022894 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x1]
+ movs r0, 0x7F
+ ands r0, r1
+ bl sub_8015150
+ ldr r3, _08022898 @ =gUnknown_02024A60
+ strb r0, [r3]
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080228A8
+ ldr r1, _0802289C @ =gBattleMons
+ ldrb r3, [r3]
+ movs r0, 0x58
+ muls r0, r3
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080228A0 @ =0x0400e000
+ ands r0, r1
+ cmp r0, 0
+ bne _0802287C
+ ldr r1, _080228A4 @ =gUnknown_02024C98
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 3
+ ands r0, r1
+ cmp r0, 0
+ beq _080228A8
+_0802287C:
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08022A2C
+ .align 2, 0
+_08022894: .4byte gUnknown_02024C10
+_08022898: .4byte gUnknown_02024A60
+_0802289C: .4byte gBattleMons
+_080228A0: .4byte 0x0400e000
+_080228A4: .4byte gUnknown_02024C98
+_080228A8:
+ ldr r5, _08022934 @ =gUnknown_020239F8
+ ldrh r1, [r5]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08022948
+ ldr r4, _08022938 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0802293C @ =gPlayerParty
+ mov r8, r1
+ cmp r0, 0x1
+ bne _080228CC
+ ldr r0, _08022940 @ =gEnemyParty
+ mov r8, r0
+_080228CC:
+ movs r5, 0
+ ldrb r0, [r4]
+ bl sub_803FC34
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_803FBFC
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bne _080228E6
+ movs r5, 0x3
+_080228E6:
+ adds r6, r5, 0x3
+ cmp r5, r6
+ bge _0802292E
+ ldr r7, _08022944 @ =gUnknown_02024A6A
+_080228EE:
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08022928
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _08022928
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08022928
+ ldr r0, _08022938 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ cmp r0, r5
+ bne _0802292E
+_08022928:
+ adds r5, 0x1
+ cmp r5, r6
+ blt _080228EE
+_0802292E:
+ cmp r5, r6
+ beq _080229FC
+ b _08022A24
+ .align 2, 0
+_08022934: .4byte gUnknown_020239F8
+_08022938: .4byte gUnknown_02024A60
+_0802293C: .4byte gPlayerParty
+_08022940: .4byte gEnemyParty
+_08022944: .4byte gUnknown_02024A6A
+_08022948:
+ ldr r0, _08022978 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bne _08022988
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrh r1, [r5]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802297C
+ movs r0, 0x3
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r6, r0, 24
+ b _0802297E
+ .align 2, 0
+_08022978: .4byte gUnknown_02024A60
+_0802297C:
+ adds r6, r7, 0
+_0802297E:
+ ldr r0, _08022984 @ =gEnemyParty
+ mov r8, r0
+ b _080229AE
+ .align 2, 0
+_08022984: .4byte gEnemyParty
+_08022988:
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrh r1, [r5]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080229A8
+ movs r0, 0x2
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r6, r0, 24
+ b _080229AA
+_080229A8:
+ adds r6, r7, 0
+_080229AA:
+ ldr r1, _08022A18 @ =gPlayerParty
+ mov r8, r1
+_080229AE:
+ movs r5, 0
+_080229B0:
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080229F2
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080229F2
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _080229F2
+ ldr r1, _08022A1C @ =gUnknown_02024A6A
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _080229F2
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r5, r0
+ bne _080229F8
+_080229F2:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _080229B0
+_080229F8:
+ cmp r5, 0x6
+ bne _08022A24
+_080229FC:
+ ldr r3, _08022A20 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08022A2C
+ .align 2, 0
+_08022A18: .4byte gPlayerParty
+_08022A1C: .4byte gUnknown_02024A6A
+_08022A20: .4byte gUnknown_02024C10
+_08022A24:
+ ldr r1, _08022A38 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x6
+ str r0, [r1]
+_08022A2C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08022A38: .4byte gUnknown_02024C10
+ thumb_func_end sub_8022830
+
+ thumb_func_start sub_8022A3C
+sub_8022A3C: @ 8022A3C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r4, _08022A84 @ =0x02000000
+ ldr r5, _08022A88 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ ldr r3, _08022A8C @ =0x00016064
+ adds r1, r0, r3
+ adds r1, r4
+ ldr r3, _08022A90 @ =gUnknown_02024A6A
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldr r1, _08022A94 @ =0x0001606c
+ adds r4, r1
+ adds r0, r4
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x1
+ movs r3, 0
+ bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08022A84: .4byte 0x02000000
+_08022A88: .4byte gUnknown_02024A60
+_08022A8C: .4byte 0x00016064
+_08022A90: .4byte gUnknown_02024A6A
+_08022A94: .4byte 0x0001606c
+ thumb_func_end sub_8022A3C
+
+ thumb_func_start atk50_openpartyscreen
+atk50_openpartyscreen: @ 8022A98
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ movs r7, 0
+ movs r0, 0
+ mov r9, r0
+ ldr r6, _08022B44 @ =gUnknown_02024C10
+ ldr r1, [r6]
+ ldrb r2, [r1, 0x2]
+ ldrb r0, [r1, 0x3]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 24
+ orrs r2, r0
+ mov r8, r2
+ ldrb r2, [r1, 0x1]
+ adds r0, r2, 0
+ mov r12, r6
+ cmp r0, 0x5
+ beq _08022ACE
+ b _08022F74
+_08022ACE:
+ ldr r0, _08022B48 @ =gUnknown_020239F8
+ ldrh r0, [r0]
+ movs r1, 0x41
+ ands r1, r0
+ cmp r1, 0x1
+ beq _08022BBC
+ ldr r1, _08022B4C @ =gUnknown_02024A60
+ strb r7, [r1]
+ ldr r0, _08022B50 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcc _08022AE8
+ b _08022F62
+_08022AE8:
+ ldr r7, _08022B54 @ =gUnknown_02024C6C
+ ldr r6, _08022B58 @ =gBitTable
+ adds r4, r1, 0
+ ldr r0, _08022B5C @ =gUnknown_02024C0C
+ mov r8, r0
+_08022AF2:
+ ldrb r2, [r4]
+ lsls r0, r2, 2
+ adds r0, r6
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r7]
+ ands r0, r1
+ cmp r0, 0
+ beq _08022B94
+ adds r0, r2, 0
+ movs r1, 0x6
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _08022B60
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ mov r2, r8
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r7]
+ bics r0, r1
+ str r0, [r7]
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_800D1D8
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _08022BA2
+ .align 2, 0
+_08022B44: .4byte gUnknown_02024C10
+_08022B48: .4byte gUnknown_020239F8
+_08022B4C: .4byte gUnknown_02024A60
+_08022B50: .4byte gUnknown_02024A68
+_08022B54: .4byte gUnknown_02024C6C
+_08022B58: .4byte gBitTable
+_08022B5C: .4byte gUnknown_02024C0C
+_08022B60:
+ ldr r5, _08022B90 @ =gUnknown_02024D68
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022BA2
+ movs r0, 0x6
+ bl sub_8022A3C
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _08022BA2
+ .align 2, 0
+_08022B90: .4byte gUnknown_02024D68
+_08022B94:
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_800D1D8
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08022BA2:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08022BB8 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08022AF2
+ b _08022F62
+ .align 2, 0
+_08022BB8: .4byte gUnknown_02024A68
+_08022BBC:
+ ands r1, r0
+ cmp r1, 0
+ bne _08022BC4
+ b _08022F62
+_08022BC4:
+ ldr r0, _08022C1C @ =gUnknown_02024C6C
+ mov r8, r0
+ ldr r0, [r0]
+ lsrs r5, r0, 28
+ ldr r6, _08022C20 @ =gBitTable
+ ldr r0, [r6]
+ ands r0, r5
+ cmp r0, 0
+ beq _08022C7E
+ ldr r4, _08022C24 @ =gUnknown_02024A60
+ strb r7, [r4]
+ movs r0, 0
+ movs r1, 0x6
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _08022C2C
+ ldr r2, _08022C28 @ =gUnknown_02024C0C
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r0]
+ lsls r1, 28
+ mov r2, r8
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2A_2A_2A_2A
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _08022C7E
+ .align 2, 0
+_08022C1C: .4byte gUnknown_02024C6C
+_08022C20: .4byte gBitTable
+_08022C24: .4byte gUnknown_02024A60
+_08022C28: .4byte gUnknown_02024C0C
+_08022C2C:
+ ldr r6, _08022C60 @ =gUnknown_02024D68
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022C6C
+ ldr r0, _08022C64 @ =0x02000000
+ ldr r1, _08022C68 @ =0x0001606a
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8022A3C
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _08022C7E
+ .align 2, 0
+_08022C60: .4byte gUnknown_02024D68
+_08022C64: .4byte 0x02000000
+_08022C68: .4byte 0x0001606a
+_08022C6C:
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_800D1D8
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ movs r2, 0x1
+ mov r9, r2
+_08022C7E:
+ ldr r6, _08022CD8 @ =gBitTable
+ ldr r0, [r6, 0x8]
+ ands r0, r5
+ cmp r0, 0
+ beq _08022D40
+ ldr r0, [r6]
+ ands r0, r5
+ cmp r0, 0
+ bne _08022D40
+ ldr r4, _08022CDC @ =gUnknown_02024A60
+ movs r0, 0x2
+ strb r0, [r4]
+ movs r0, 0x2
+ movs r1, 0x6
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _08022CE8
+ ldr r2, _08022CE0 @ =gUnknown_02024C0C
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r2, _08022CE4 @ =gUnknown_02024C6C
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2A_2A_2A_2A
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _08022D40
+ .align 2, 0
+_08022CD8: .4byte gBitTable
+_08022CDC: .4byte gUnknown_02024A60
+_08022CE0: .4byte gUnknown_02024C0C
+_08022CE4: .4byte gUnknown_02024C6C
+_08022CE8:
+ ldr r6, _08022D1C @ =gUnknown_02024D68
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022D28
+ ldr r0, _08022D20 @ =0x02000000
+ ldr r1, _08022D24 @ =0x00016068
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8022A3C
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _08022D40
+ .align 2, 0
+_08022D1C: .4byte gUnknown_02024D68
+_08022D20: .4byte 0x02000000
+_08022D24: .4byte 0x00016068
+_08022D28:
+ movs r0, 0x1
+ mov r2, r9
+ ands r0, r2
+ cmp r0, 0
+ bne _08022D40
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_800D1D8
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08022D40:
+ ldr r6, _08022D90 @ =gBitTable
+ ldr r0, [r6, 0x4]
+ ands r0, r5
+ cmp r0, 0
+ beq _08022DF6
+ ldr r4, _08022D94 @ =gUnknown_02024A60
+ movs r0, 0x1
+ strb r0, [r4]
+ movs r0, 0x1
+ movs r1, 0x6
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _08022DA0
+ ldr r2, _08022D98 @ =gUnknown_02024C0C
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r2, _08022D9C @ =gUnknown_02024C6C
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2A_2A_2A_2A
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _08022DF6
+ .align 2, 0
+_08022D90: .4byte gBitTable
+_08022D94: .4byte gUnknown_02024A60
+_08022D98: .4byte gUnknown_02024C0C
+_08022D9C: .4byte gUnknown_02024C6C
+_08022DA0:
+ ldr r6, _08022DD4 @ =gUnknown_02024D68
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022DE0
+ ldr r0, _08022DD8 @ =0x02000000
+ ldr r1, _08022DDC @ =0x0001606b
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8022A3C
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _08022DF6
+ .align 2, 0
+_08022DD4: .4byte gUnknown_02024D68
+_08022DD8: .4byte 0x02000000
+_08022DDC: .4byte 0x0001606b
+_08022DE0:
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_800D1D8
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ movs r0, 0x2
+ mov r2, r9
+ orrs r2, r0
+ mov r9, r2
+_08022DF6:
+ ldr r6, _08022E50 @ =gBitTable
+ ldr r0, [r6, 0xC]
+ ands r0, r5
+ cmp r0, 0
+ beq _08022EB8
+ ldr r0, [r6, 0x4]
+ ands r0, r5
+ cmp r0, 0
+ bne _08022EB8
+ ldr r4, _08022E54 @ =gUnknown_02024A60
+ movs r0, 0x3
+ strb r0, [r4]
+ movs r0, 0x3
+ movs r1, 0x6
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _08022E60
+ ldr r2, _08022E58 @ =gUnknown_02024C0C
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r2, _08022E5C @ =gUnknown_02024C6C
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2A_2A_2A_2A
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _08022EB8
+ .align 2, 0
+_08022E50: .4byte gBitTable
+_08022E54: .4byte gUnknown_02024A60
+_08022E58: .4byte gUnknown_02024C0C
+_08022E5C: .4byte gUnknown_02024C6C
+_08022E60:
+ ldr r6, _08022E94 @ =gUnknown_02024D68
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022EA0
+ ldr r0, _08022E98 @ =0x02000000
+ ldr r1, _08022E9C @ =0x00016069
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8022A3C
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _08022EB8
+ .align 2, 0
+_08022E94: .4byte gUnknown_02024D68
+_08022E98: .4byte 0x02000000
+_08022E9C: .4byte 0x00016069
+_08022EA0:
+ movs r0, 0x2
+ mov r2, r9
+ ands r2, r0
+ cmp r2, 0
+ bne _08022EB8
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_800D1D8
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08022EB8:
+ ldr r1, _08022EE8 @ =gUnknown_02024D68
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022F0C
+ adds r0, r1, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022F0C
+ cmp r5, 0
+ beq _08022F0C
+ ldr r0, _08022EEC @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r0, _08022EF0 @ =gBitTable
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08022EF8
+ ldr r1, _08022EF4 @ =gUnknown_02024A60
+ movs r0, 0x2
+ strb r0, [r1]
+ b _08022EFC
+ .align 2, 0
+_08022EE8: .4byte gUnknown_02024D68
+_08022EEC: .4byte gUnknown_02024C0C
+_08022EF0: .4byte gBitTable
+_08022EF4: .4byte gUnknown_02024A60
+_08022EF8:
+ ldr r0, _08022F3C @ =gUnknown_02024A60
+ strb r1, [r0]
+_08022EFC:
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_800D1D8
+ ldr r0, _08022F3C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08022F0C:
+ ldr r1, _08022F40 @ =gUnknown_02024D68
+ ldrb r0, [r1, 0x14]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022F62
+ adds r0, r1, 0
+ adds r0, 0x3C
+ ldrb r0, [r0]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022F62
+ cmp r5, 0
+ beq _08022F62
+ ldr r0, _08022F44 @ =gUnknown_02024C0C
+ ldrb r0, [r0]
+ ldr r1, _08022F48 @ =gBitTable
+ ldr r1, [r1, 0x4]
+ ands r0, r1
+ cmp r0, 0
+ beq _08022F4C
+ ldr r1, _08022F3C @ =gUnknown_02024A60
+ movs r0, 0x3
+ b _08022F50
+ .align 2, 0
+_08022F3C: .4byte gUnknown_02024A60
+_08022F40: .4byte gUnknown_02024D68
+_08022F44: .4byte gUnknown_02024C0C
+_08022F48: .4byte gBitTable
+_08022F4C:
+ ldr r1, _08022F6C @ =gUnknown_02024A60
+ movs r0, 0x1
+_08022F50:
+ strb r0, [r1]
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_800D1D8
+ ldr r0, _08022F6C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08022F62:
+ ldr r1, _08022F70 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x6
+ str r0, [r1]
+ b _08023302
+ .align 2, 0
+_08022F6C: .4byte gUnknown_02024A60
+_08022F70: .4byte gUnknown_02024C10
+_08022F74:
+ cmp r0, 0x6
+ beq _08022F7A
+ b _08023170
+_08022F7A:
+ ldr r0, _08022FF0 @ =gUnknown_020239F8
+ ldrh r2, [r0]
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ beq _08022F88
+ b _0802310C
+_08022F88:
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _08022F92
+ b _0802310C
+_08022F92:
+ ldr r7, _08022FF4 @ =gUnknown_02024C6C
+ ldr r0, [r7]
+ lsrs r5, r0, 28
+ ldr r4, _08022FF8 @ =gBitTable
+ ldr r0, [r4, 0x8]
+ ands r0, r5
+ cmp r0, 0
+ beq _0802303A
+ ldr r0, [r4]
+ ands r0, r5
+ cmp r0, 0
+ beq _0802303A
+ ldr r6, _08022FFC @ =gUnknown_02024A60
+ movs r0, 0x2
+ strb r0, [r6]
+ ldr r0, _08023000 @ =gUnknown_02024260
+ ldrb r1, [r0, 0x1]
+ movs r0, 0x2
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _08023008
+ ldr r2, _08023004 @ =gUnknown_02024C0C
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r7]
+ bics r0, r1
+ str r0, [r7]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2A_2A_2A_2A
+ ldrb r0, [r6]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _0802303A
+ .align 2, 0
+_08022FF0: .4byte gUnknown_020239F8
+_08022FF4: .4byte gUnknown_02024C6C
+_08022FF8: .4byte gBitTable
+_08022FFC: .4byte gUnknown_02024A60
+_08023000: .4byte gUnknown_02024260
+_08023004: .4byte gUnknown_02024C0C
+_08023008:
+ ldr r4, _08023098 @ =gUnknown_02024D68
+ ldrb r0, [r6]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _0802303A
+ ldr r0, _0802309C @ =0x02000000
+ ldr r1, _080230A0 @ =0x00016068
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8022A3C
+ ldrb r1, [r6]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+_0802303A:
+ ldr r4, _080230A4 @ =gBitTable
+ ldr r0, [r4, 0xC]
+ ands r0, r5
+ cmp r0, 0
+ beq _080230EE
+ ldr r0, [r4, 0x4]
+ ands r5, r0
+ cmp r5, 0
+ beq _080230EE
+ ldr r5, _080230A8 @ =gUnknown_02024A60
+ movs r0, 0x3
+ strb r0, [r5]
+ ldr r0, _080230AC @ =gUnknown_02024260
+ ldr r2, _080230B0 @ =0x00000201
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x3
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _080230BC
+ ldr r2, _080230B4 @ =gUnknown_02024C0C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r2, _080230B8 @ =gUnknown_02024C6C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2A_2A_2A_2A
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _080230EE
+ .align 2, 0
+_08023098: .4byte gUnknown_02024D68
+_0802309C: .4byte 0x02000000
+_080230A0: .4byte 0x00016068
+_080230A4: .4byte gBitTable
+_080230A8: .4byte gUnknown_02024A60
+_080230AC: .4byte gUnknown_02024260
+_080230B0: .4byte 0x00000201
+_080230B4: .4byte gUnknown_02024C0C
+_080230B8: .4byte gUnknown_02024C6C
+_080230BC:
+ ldr r4, _080230FC @ =gUnknown_02024D68
+ ldrb r0, [r5]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _080230EE
+ ldr r0, _08023100 @ =0x02000000
+ ldr r1, _08023104 @ =0x00016069
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8022A3C
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+_080230EE:
+ ldr r1, _08023108 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x6
+ str r0, [r1]
+ mov r12, r1
+ b _08023110
+ .align 2, 0
+_080230FC: .4byte gUnknown_02024D68
+_08023100: .4byte 0x02000000
+_08023104: .4byte 0x00016069
+_08023108: .4byte gUnknown_02024C10
+_0802310C:
+ adds r0, r1, 0x6
+ str r0, [r6]
+_08023110:
+ ldr r0, _08023160 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ lsrs r5, r0, 28
+ ldr r1, _08023164 @ =gUnknown_02024C09
+ movs r0, 0
+ strb r0, [r1]
+ ldr r4, _08023168 @ =gBitTable
+ ldr r2, [r4]
+ ands r2, r5
+ ldr r6, _0802316C @ =gUnknown_02024A68
+ cmp r2, 0
+ bne _0802314C
+ adds r7, r6, 0
+ ldrb r0, [r6]
+ cmp r2, r0
+ bcs _0802314C
+ adds r3, r1, 0
+_08023132:
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ ldrb r2, [r3]
+ lsls r0, r2, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ands r0, r5
+ cmp r0, 0
+ bne _0802314C
+ ldrb r0, [r7]
+ cmp r2, r0
+ bcc _08023132
+_0802314C:
+ ldrb r0, [r1]
+ ldrb r6, [r6]
+ cmp r0, r6
+ beq _08023156
+ b _08023302
+_08023156:
+ mov r1, r8
+ mov r2, r12
+ str r1, [r2]
+ b _08023302
+ .align 2, 0
+_08023160: .4byte gUnknown_02024C6C
+_08023164: .4byte gUnknown_02024C09
+_08023168: .4byte gBitTable
+_0802316C: .4byte gUnknown_02024A68
+_08023170:
+ movs r0, 0x80
+ ands r0, r2
+ movs r5, 0x1
+ cmp r0, 0
+ beq _0802317C
+ movs r5, 0
+_0802317C:
+ movs r0, 0x7F
+ ands r0, r2
+ bl sub_8015150
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080231A4 @ =gUnknown_02024D68
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 25
+ cmp r0, 0
+ bge _080231A8
+ ldr r0, [r6]
+ adds r0, 0x6
+ str r0, [r6]
+ b _08023302
+ .align 2, 0
+_080231A4: .4byte gUnknown_02024D68
+_080231A8:
+ adds r0, r7, 0
+ movs r1, 0x6
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _080231F8
+ ldr r2, _080231E8 @ =gUnknown_02024A60
+ strb r7, [r2]
+ ldr r3, _080231EC @ =gUnknown_02024C0C
+ ldr r4, _080231F0 @ =gBitTable
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ldrb r1, [r3]
+ orrs r0, r1
+ strb r0, [r3]
+ ldr r3, _080231F4 @ =gUnknown_02024C6C
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r3]
+ bics r0, r1
+ str r0, [r3]
+ mov r0, r8
+ str r0, [r6]
+ b _08023302
+ .align 2, 0
+_080231E8: .4byte gUnknown_02024A60
+_080231EC: .4byte gUnknown_02024C0C
+_080231F0: .4byte gBitTable
+_080231F4: .4byte gUnknown_02024C6C
+_080231F8:
+ ldr r4, _080232A0 @ =gUnknown_02024A60
+ strb r7, [r4]
+ ldr r3, _080232A4 @ =0x02000000
+ ldrb r0, [r4]
+ ldr r2, _080232A8 @ =0x00016064
+ adds r1, r0, r2
+ adds r1, r3
+ ldr r2, _080232AC @ =gUnknown_02024A6A
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ ldr r1, _080232B0 @ =0x00016068
+ adds r0, r1
+ adds r0, r3
+ ldrb r2, [r0]
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldr r1, _080232B4 @ =0x0001606c
+ adds r3, r1
+ adds r0, r3
+ str r0, [sp]
+ movs r0, 0
+ adds r1, r5, 0
+ movs r3, 0
+ bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r6]
+ adds r0, 0x6
+ str r0, [r6]
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802325A
+ ldr r1, _080232B8 @ =gUnknown_030042E0
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0xFE
+ bhi _0802325A
+ adds r0, 0x1
+ strb r0, [r1, 0x2]
+_0802325A:
+ ldr r0, _080232BC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080232C4
+ ldr r1, _080232A0 @ =gUnknown_02024A60
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _080232C0 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08023302
+ adds r4, r1, 0
+_08023276:
+ ldrb r0, [r4]
+ cmp r0, r7
+ beq _0802328A
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_800D1D8
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_0802328A:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _080232C0 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08023276
+ b _08023302
+ .align 2, 0
+_080232A0: .4byte gUnknown_02024A60
+_080232A4: .4byte 0x02000000
+_080232A8: .4byte 0x00016064
+_080232AC: .4byte gUnknown_02024A6A
+_080232B0: .4byte 0x00016068
+_080232B4: .4byte 0x0001606c
+_080232B8: .4byte gUnknown_030042E0
+_080232BC: .4byte gUnknown_020239F8
+_080232C0: .4byte gUnknown_02024A68
+_080232C4:
+ adds r0, r7, 0
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ ldr r4, _08023310 @ =gUnknown_02024A60
+ strb r0, [r4]
+ ldr r0, _08023314 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _08023318 @ =gBitTable
+ ldrb r3, [r4]
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080232F4
+ movs r0, 0x2
+ eors r3, r0
+ strb r3, [r4]
+_080232F4:
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_800D1D8
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08023302:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023310: .4byte gUnknown_02024A60
+_08023314: .4byte gUnknown_02024C0C
+_08023318: .4byte gBitTable
+ thumb_func_end atk50_openpartyscreen
+
+ thumb_func_start sub_802331C
+sub_802331C: @ 802331C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _0802334C @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0802332C
+ b _080234FE
+_0802332C:
+ ldr r4, _08023350 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r7, _08023354 @ =gUnknown_02024A60
+ strb r0, [r7]
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0x1
+ beq _080233A0
+ cmp r0, 0x1
+ bgt _08023358
+ cmp r0, 0
+ beq _0802335E
+ b _080234F6
+ .align 2, 0
+_0802334C: .4byte gUnknown_02024A64
+_08023350: .4byte gUnknown_02024C10
+_08023354: .4byte gUnknown_02024A60
+_08023358:
+ cmp r0, 0x2
+ beq _080233BC
+ b _080234F6
+_0802335E:
+ movs r3, 0
+ ldr r2, _08023390 @ =gUnknown_02024A68
+ ldrb r0, [r2]
+ cmp r3, r0
+ blt _0802336A
+ b _080234F6
+_0802336A:
+ ldr r0, _08023394 @ =0x02000000
+ ldr r1, _08023398 @ =gUnknown_02024260
+ movs r5, 0x80
+ lsls r5, 2
+ adds r4, r2, 0
+ ldr r6, _0802339C @ =0x00016068
+ adds r2, r0, r6
+_08023378:
+ ldrb r0, [r1]
+ cmp r0, 0x22
+ bne _08023382
+ ldrb r0, [r1, 0x1]
+ strb r0, [r2]
+_08023382:
+ adds r1, r5
+ adds r2, 0x1
+ adds r3, 0x1
+ ldrb r0, [r4]
+ cmp r3, r0
+ blt _08023378
+ b _080234F6
+ .align 2, 0
+_08023390: .4byte gUnknown_02024A68
+_08023394: .4byte 0x02000000
+_08023398: .4byte gUnknown_02024260
+_0802339C: .4byte 0x00016068
+_080233A0:
+ ldr r0, _080233B8 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080233AE
+ b _080234F6
+_080233AE:
+ ldrb r0, [r7]
+ bl sub_8012258
+ b _080234F6
+ .align 2, 0
+_080233B8: .4byte gUnknown_020239F8
+_080233BC:
+ ldr r1, _08023484 @ =gUnknown_02024D1E
+ ldr r4, _08023488 @ =gUnknown_02024260
+ ldrb r0, [r7]
+ lsls r0, 9
+ adds r2, r4, 0x1
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r6, _0802348C @ =0x02000000
+ ldrb r0, [r7]
+ ldr r3, _08023490 @ =0x00016068
+ adds r1, r0, r3
+ adds r1, r6
+ lsls r0, 9
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _08023494 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080234A4
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r5, _08023498 @ =0x0001606c
+ adds r1, r5
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r0, 0xF
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, r5
+ adds r1, r6
+ lsls r0, 9
+ adds r2, r4, 0x2
+ mov r12, r2
+ add r0, r12
+ ldrb r2, [r0]
+ movs r3, 0xF0
+ adds r0, r3, 0
+ ands r0, r2
+ ldrb r2, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r2, _0802349C @ =0x0001606d
+ adds r1, r2
+ adds r1, r6
+ lsls r0, 9
+ adds r4, 0x3
+ mov r8, r4
+ add r0, r8
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r4, 0x2
+ eors r0, r4
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, r5
+ adds r1, r6
+ ldrb r2, [r1]
+ adds r0, r3, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r7]
+ eors r0, r4
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, r5
+ adds r1, r6
+ ldrb r0, [r7]
+ lsls r0, 9
+ add r0, r12
+ ldrb r0, [r0]
+ ands r3, r0
+ lsrs r3, 4
+ ldrb r0, [r1]
+ orrs r3, r0
+ strb r3, [r1]
+ ldrb r0, [r7]
+ eors r4, r0
+ lsls r1, r4, 1
+ adds r1, r4
+ ldr r3, _080234A0 @ =0x0001606e
+ adds r1, r3
+ adds r1, r6
+ ldrb r0, [r7]
+ lsls r0, 9
+ add r0, r8
+ ldrb r0, [r0]
+ strb r0, [r1]
+ b _080234AA
+ .align 2, 0
+_08023484: .4byte gUnknown_02024D1E
+_08023488: .4byte gUnknown_02024260
+_0802348C: .4byte 0x02000000
+_08023490: .4byte 0x00016068
+_08023494: .4byte gUnknown_020239F8
+_08023498: .4byte 0x0001606c
+_0802349C: .4byte 0x0001606d
+_080234A0: .4byte 0x0001606e
+_080234A4:
+ ldrb r0, [r7]
+ bl sub_8012258
+_080234AA:
+ ldr r1, _08023508 @ =gUnknown_030041C0
+ movs r5, 0xFD
+ strb r5, [r1]
+ movs r0, 0x6
+ strb r0, [r1, 0x1]
+ ldr r4, _0802350C @ =gBattleMons
+ ldr r3, _08023510 @ =gUnknown_02024C07
+ ldrb r0, [r3]
+ movs r2, 0x58
+ muls r0, r2
+ adds r0, r4
+ ldrh r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r3]
+ muls r0, r2
+ adds r0, r4
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r2, _08023514 @ =gUnknown_03004290
+ strb r5, [r2]
+ movs r0, 0x7
+ strb r0, [r2, 0x1]
+ ldr r3, _08023518 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ strb r0, [r2, 0x2]
+ ldr r1, _0802351C @ =gUnknown_02024260
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2, 0x3]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r2, 0x4]
+_080234F6:
+ ldr r1, _08023520 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x3
+ str r0, [r1]
+_080234FE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023508: .4byte gUnknown_030041C0
+_0802350C: .4byte gBattleMons
+_08023510: .4byte gUnknown_02024C07
+_08023514: .4byte gUnknown_03004290
+_08023518: .4byte gUnknown_02024A60
+_0802351C: .4byte gUnknown_02024260
+_08023520: .4byte gUnknown_02024C10
+ thumb_func_end sub_802331C
+
+ thumb_func_start sub_8023524
+sub_8023524: @ 8023524
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r6, _08023630 @ =gUnknown_02024C10
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _08023634 @ =gUnknown_02024A60
+ strb r0, [r4]
+ ldrb r0, [r4]
+ bl sub_80157C4
+ ldr r2, _08023638 @ =gUnknown_02024C6C
+ ldr r1, _0802363C @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ ldr r2, _08023640 @ =gUnknown_02024D68
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r2, [r1]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ ldr r5, _08023644 @ =gUnknown_02024C7A
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r5
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 2
+ mov r8, r0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802367C
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r5
+ ldrh r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0802367C
+ ldr r1, _08023648 @ =gBattleMons
+ mov r9, r1
+ ldrb r2, [r4]
+ movs r7, 0x58
+ adds r0, r2, 0
+ muls r0, r7
+ adds r1, r0, r1
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _0802367C
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _0802367C
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1A
+ beq _0802367C
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r5
+ ldrh r2, [r0]
+ mov r1, r8
+ orrs r1, r2
+ strh r1, [r0]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ ldr r2, _0802364C @ =gUnknown_02024C80
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x6]
+ movs r1, 0x5
+ subs r1, r0
+ lsls r1, 25
+ lsrs r1, 24
+ ldr r5, _08023650 @ =gUnknown_02024BEC
+ ldrb r0, [r4]
+ muls r0, r7
+ add r0, r9
+ ldrh r0, [r0, 0x2C]
+ bl __divsi3
+ str r0, [r5]
+ cmp r0, 0
+ bne _08023614
+ movs r0, 0x1
+ str r0, [r5]
+_08023614:
+ ldr r0, _08023654 @ =0x02000000
+ ldrb r1, [r4]
+ ldr r2, _08023658 @ =0x00016003
+ adds r0, r2
+ strb r1, [r0]
+ bl b_movescr_stack_push_cursor
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _08023660
+ ldr r0, _0802365C @ =gUnknown_081D919F
+ str r0, [r6]
+ b _080237B6
+ .align 2, 0
+_08023630: .4byte gUnknown_02024C10
+_08023634: .4byte gUnknown_02024A60
+_08023638: .4byte gUnknown_02024C6C
+_0802363C: .4byte gBitTable
+_08023640: .4byte gUnknown_02024D68
+_08023644: .4byte gUnknown_02024C7A
+_08023648: .4byte gBattleMons
+_0802364C: .4byte gUnknown_02024C80
+_08023650: .4byte gUnknown_02024BEC
+_08023654: .4byte 0x02000000
+_08023658: .4byte 0x00016003
+_0802365C: .4byte gUnknown_081D919F
+_08023660:
+ cmp r0, 0x1
+ bne _08023670
+ ldr r0, _0802366C @ =gUnknown_081D9171
+ str r0, [r6]
+ b _080237B6
+ .align 2, 0
+_0802366C: .4byte gUnknown_081D9171
+_08023670:
+ ldr r0, _08023678 @ =gUnknown_081D91CD
+ str r0, [r6]
+ b _080237B6
+ .align 2, 0
+_08023678: .4byte gUnknown_081D91CD
+_0802367C:
+ ldr r1, _08023754 @ =gBattleMons
+ ldr r5, _08023758 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x36
+ bne _080236A2
+ ldr r1, _0802375C @ =gUnknown_02024CA8
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0, 0x18]
+_080236A2:
+ ldrb r1, [r5]
+ movs r0, 0
+ str r0, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _080236B8
+ b _080237B6
+_080236B8:
+ ldrb r1, [r5]
+ movs r0, 0
+ movs r2, 0
+ bl sub_801A02C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080237B6
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ ldr r1, _08023760 @ =gUnknown_02024C7A
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r1
+ ldrh r2, [r0]
+ ldr r1, _08023764 @ =0x0000fdff
+ ands r1, r2
+ strh r1, [r0]
+ movs r4, 0
+ ldr r0, _08023768 @ =gUnknown_02024A68
+ ldrb r3, [r0]
+ cmp r4, r3
+ bge _08023706
+ ldr r6, _0802376C @ =gUnknown_02024A7A
+ ldr r3, _08023770 @ =gUnknown_02024A76
+ movs r2, 0xC
+ adds r1, r0, 0
+_080236F0:
+ adds r0, r4, r6
+ ldrb r0, [r0]
+ ldrb r7, [r5]
+ cmp r0, r7
+ bne _080236FE
+ adds r0, r4, r3
+ strb r2, [r0]
+_080236FE:
+ adds r4, 0x1
+ ldrb r0, [r1]
+ cmp r4, r0
+ blt _080236F0
+_08023706:
+ movs r4, 0
+ ldr r0, _08023768 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ bge _08023736
+ ldr r5, _08023754 @ =gBattleMons
+_08023712:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 23
+ ldr r1, _08023774 @ =0x020160bc
+ adds r0, r1
+ movs r1, 0x58
+ muls r1, r4
+ adds r1, r5
+ ldrh r1, [r1, 0x28]
+ strh r1, [r0]
+ adds r4, 0x1
+ ldr r0, _08023768 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08023712
+_08023736:
+ ldr r0, _08023778 @ =gUnknown_02024C10
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x5
+ bne _080237B0
+ ldr r0, _0802377C @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ lsrs r4, r0, 28
+ ldr r1, _08023780 @ =gUnknown_02024C09
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r2, _08023784 @ =gBitTable
+ b _08023796
+ .align 2, 0
+_08023754: .4byte gBattleMons
+_08023758: .4byte gUnknown_02024A60
+_0802375C: .4byte gUnknown_02024CA8
+_08023760: .4byte gUnknown_02024C7A
+_08023764: .4byte 0x0000fdff
+_08023768: .4byte gUnknown_02024A68
+_0802376C: .4byte gUnknown_02024A7A
+_08023770: .4byte gUnknown_02024A76
+_08023774: .4byte 0x020160bc
+_08023778: .4byte gUnknown_02024C10
+_0802377C: .4byte gUnknown_02024C6C
+_08023780: .4byte gUnknown_02024C09
+_08023784: .4byte gBitTable
+_08023788:
+ ldr r0, _080237C4 @ =gUnknown_02024A68
+ ldrb r3, [r1]
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _080237B0
+ adds r0, r3, 0x1
+ strb r0, [r1]
+_08023796:
+ ldrb r0, [r1]
+ lsls r0, 2
+ adds r0, r2
+ ldr r3, [r0]
+ adds r0, r4, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08023788
+ ldr r0, _080237C8 @ =gUnknown_02024C0C
+ ldrb r0, [r0]
+ ands r0, r3
+ cmp r0, 0
+ bne _08023788
+_080237B0:
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+_080237B6:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080237C4: .4byte gUnknown_02024A68
+_080237C8: .4byte gUnknown_02024C0C
+ thumb_func_end sub_8023524
+
+ thumb_func_start sub_80237CC
+sub_80237CC: @ 80237CC
+ push {lr}
+ ldr r0, _080237DC @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _080237E0
+ movs r0, 0
+ b _080237E2
+ .align 2, 0
+_080237DC: .4byte gUnknown_02024C10
+_080237E0:
+ movs r0, 0x1
+_080237E2:
+ bl battle_get_side_with_given_state
+ ldr r1, _08023804 @ =gUnknown_02024A60
+ strb r0, [r1]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x08_8_8_8
+ ldr r0, _08023804 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _08023808 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023804: .4byte gUnknown_02024A60
+_08023808: .4byte gUnknown_02024C10
+ thumb_func_end sub_80237CC
+
+ thumb_func_start atk54_802511C
+atk54_802511C: @ 802380C
+ push {r4,r5,lr}
+ ldr r5, _0802383C @ =gUnknown_02024A60
+ ldr r0, _08023840 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldr r4, _08023844 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2B_aa_0
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r4]
+ adds r0, 0x3
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802383C: .4byte gUnknown_02024A60
+_08023840: .4byte gUnknown_02024C07
+_08023844: .4byte gUnknown_02024C10
+ thumb_func_end atk54_802511C
+
+ thumb_func_start sub_8023848
+sub_8023848: @ 8023848
+ push {r4,r5,lr}
+ ldr r5, _08023878 @ =gUnknown_02024A60
+ ldr r0, _0802387C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldr r4, _08023880 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ movs r0, 0
+ bl sub_800D074
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r4]
+ adds r0, 0x3
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023878: .4byte gUnknown_02024A60
+_0802387C: .4byte gUnknown_02024C07
+_08023880: .4byte gUnknown_02024C10
+ thumb_func_end sub_8023848
+
+ thumb_func_start atk56_8025194
+atk56_8025194: @ 8023884
+ push {r4,r5,lr}
+ ldr r5, _080238AC @ =gUnknown_02024C10
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _080238B0 @ =gUnknown_02024A60
+ strb r0, [r4]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2D_2D_2D_2D
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080238AC: .4byte gUnknown_02024C10
+_080238B0: .4byte gUnknown_02024A60
+ thumb_func_end atk56_8025194
+
+ thumb_func_start atk57_80251C4_flee
+atk57_80251C4_flee: @ 80238B4
+ push {r4,lr}
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r4, _080238E0 @ =gUnknown_02024A60
+ strb r0, [r4]
+ ldr r0, _080238E4 @ =gUnknown_02024D26
+ ldrb r1, [r0]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x37_a
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _080238E8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080238E0: .4byte gUnknown_02024A60
+_080238E4: .4byte gUnknown_02024D26
+_080238E8: .4byte gUnknown_02024C10
+ thumb_func_end atk57_80251C4_flee
+
+ thumb_func_start atk58_cmd58
+atk58_cmd58: @ 80238EC
+ push {r4,r5,lr}
+ ldr r5, _08023918 @ =gUnknown_02024C10
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _0802391C @ =gUnknown_02024A60
+ strb r0, [r4]
+ movs r0, 0
+ movs r1, 0x1
+ bl dp01_build_cmdbuf_x06_a
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023918: .4byte gUnknown_02024C10
+_0802391C: .4byte gUnknown_02024A60
+ thumb_func_end atk58_cmd58
+
+ thumb_func_start atk59_8025230
+atk59_8025230: @ 8023920
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _0802399C @ =gUnknown_02024C10
+ ldr r2, [r0]
+ ldrb r6, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r6, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r6, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r6, r0
+ ldrb r4, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r4, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r4, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r4, r0
+ ldr r0, _080239A0 @ =0x02000000
+ ldr r1, _080239A4 @ =0x00016018
+ adds r7, r0, r1
+ ldrb r1, [r7]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080239A8 @ =gPlayerParty
+ adds r0, r1
+ ldrb r1, [r2, 0x9]
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080239AC @ =0x0000fffe
+ cmp r5, r0
+ bne _08023992
+ mov r9, r7
+ mov r8, r5
+ movs r7, 0x64
+_0802397A:
+ mov r3, r9
+ ldrb r0, [r3]
+ muls r0, r7
+ ldr r1, _080239A8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ beq _0802397A
+_08023992:
+ cmp r5, 0
+ bne _080239B0
+ ldr r0, _0802399C @ =gUnknown_02024C10
+ str r4, [r0]
+ b _08023A58
+ .align 2, 0
+_0802399C: .4byte gUnknown_02024C10
+_080239A0: .4byte 0x02000000
+_080239A4: .4byte 0x00016018
+_080239A8: .4byte gPlayerParty
+_080239AC: .4byte 0x0000fffe
+_080239B0:
+ ldr r0, _080239C0 @ =0x0000ffff
+ cmp r5, r0
+ bne _080239C8
+ ldr r1, _080239C4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0xA
+ str r0, [r1]
+ b _08023A58
+ .align 2, 0
+_080239C0: .4byte 0x0000ffff
+_080239C4: .4byte gUnknown_02024C10
+_080239C8:
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r1, _08023A64 @ =gUnknown_02024A60
+ strb r0, [r1]
+ ldr r0, _08023A68 @ =gUnknown_02024A6A
+ ldrb r2, [r1]
+ lsls r1, r2, 1
+ adds r1, r0
+ ldr r0, _08023A6C @ =0x02000000
+ ldr r3, _08023A70 @ =0x00016018
+ adds r0, r3
+ ldrh r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08023A08
+ ldr r3, _08023A74 @ =gBattleMons
+ movs r0, 0x58
+ muls r2, r0
+ adds r0, r3, 0
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _08023A08
+ adds r0, r2, r3
+ adds r1, r5, 0
+ bl GiveMoveToBattleMon
+_08023A08:
+ ldr r0, _08023A78 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08023A54
+ movs r0, 0x2
+ bl battle_get_side_with_given_state
+ ldr r1, _08023A64 @ =gUnknown_02024A60
+ strb r0, [r1]
+ ldr r0, _08023A68 @ =gUnknown_02024A6A
+ ldrb r2, [r1]
+ lsls r1, r2, 1
+ adds r1, r0
+ ldr r0, _08023A6C @ =0x02000000
+ ldr r3, _08023A70 @ =0x00016018
+ adds r0, r3
+ ldrh r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08023A54
+ ldr r3, _08023A74 @ =gBattleMons
+ movs r0, 0x58
+ muls r2, r0
+ adds r0, r3, 0
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _08023A54
+ adds r0, r2, r3
+ adds r1, r5, 0
+ bl GiveMoveToBattleMon
+_08023A54:
+ ldr r0, _08023A7C @ =gUnknown_02024C10
+ str r6, [r0]
+_08023A58:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023A64: .4byte gUnknown_02024A60
+_08023A68: .4byte gUnknown_02024A6A
+_08023A6C: .4byte 0x02000000
+_08023A70: .4byte 0x00016018
+_08023A74: .4byte gBattleMons
+_08023A78: .4byte gUnknown_020239F8
+_08023A7C: .4byte gUnknown_02024C10
+ thumb_func_end atk59_8025230
+
+ thumb_func_start sub_8023A80
+sub_8023A80: @ 8023A80
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x18
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl sub_802BBD4
+ ldr r4, _08023AC8 @ =gUnknown_03004210
+ ldr r1, _08023ACC @ =gUnknown_08400D7A
+ movs r2, 0x80
+ lsls r2, 1
+ movs r0, 0x9
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x19
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _08023AD0 @ =0x0000ffff
+ ldr r3, _08023AD4 @ =0x00002d9f
+ movs r0, 0x20
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0xC
+ bl sub_814A5C0
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023AC8: .4byte gUnknown_03004210
+_08023ACC: .4byte gUnknown_08400D7A
+_08023AD0: .4byte 0x0000ffff
+_08023AD4: .4byte 0x00002d9f
+ thumb_func_end sub_8023A80
+
+ thumb_func_start sub_8023AD8
+sub_8023AD8: @ 8023AD8
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0x18
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl sub_802BBD4
+ bl sub_814A7FC
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8023AD8
+
+ thumb_func_start sub_8023AF8
+sub_8023AF8: @ 8023AF8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r1, _08023B24 @ =gUnknown_02024A60
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _08023B28 @ =0x02000000
+ ldr r2, _08023B2C @ =0x0001601a
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0x5
+ bls _08023B18
+ b _08023E5C
+_08023B18:
+ lsls r0, 2
+ ldr r1, _08023B30 @ =_08023B34
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08023B24: .4byte gUnknown_02024A60
+_08023B28: .4byte 0x02000000
+_08023B2C: .4byte 0x0001601a
+_08023B30: .4byte _08023B34
+ .align 2, 0
+_08023B34:
+ .4byte _08023B4C
+ .4byte _08023B74
+ .4byte _08023C30
+ .4byte _08023C84
+ .4byte _08023E38
+ .4byte _08023E4C
+_08023B4C:
+ bl sub_8023A80
+ ldr r1, _08023B68 @ =0x02000000
+ ldr r0, _08023B6C @ =0x0001601a
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r2, 0
+ strb r0, [r1]
+ ldr r0, _08023B70 @ =gUnknown_02024D1E
+ strb r2, [r0, 0x1]
+ bl sub_802BC6C
+ b _08023E5C
+ .align 2, 0
+_08023B68: .4byte 0x02000000
+_08023B6C: .4byte 0x0001601a
+_08023B70: .4byte gUnknown_02024D1E
+_08023B74:
+ ldr r0, _08023BFC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08023B9A
+ ldr r4, _08023C00 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _08023B9A
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_08023B9A:
+ ldr r0, _08023BFC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08023BC0
+ ldr r4, _08023C00 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08023BC0
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_08023BC0:
+ ldr r0, _08023BFC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08023C0C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08023C00 @ =gUnknown_02024D1E
+ ldrb r4, [r0, 0x1]
+ cmp r4, 0
+ bne _08023C1C
+ bl sub_8023AD8
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08023C04 @ =0x02000000
+ ldr r2, _08023C08 @ =0x0001601a
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08023E5A
+ .align 2, 0
+_08023BFC: .4byte gMain
+_08023C00: .4byte gUnknown_02024D1E
+_08023C04: .4byte 0x02000000
+_08023C08: .4byte 0x0001601a
+_08023C0C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08023C16
+ b _08023E5C
+_08023C16:
+ movs r0, 0x5
+ bl PlaySE
+_08023C1C:
+ ldr r0, _08023C28 @ =0x02000000
+ ldr r1, _08023C2C @ =0x0001601a
+ adds r0, r1
+ movs r1, 0x4
+ strb r1, [r0]
+ b _08023E5C
+ .align 2, 0
+_08023C28: .4byte 0x02000000
+_08023C2C: .4byte 0x0001601a
+_08023C30:
+ ldr r0, _08023C68 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08023C3E
+ b _08023E5C
+_08023C3E:
+ ldr r0, _08023C6C @ =gPlayerParty
+ ldr r2, _08023C70 @ =0x00016018
+ adds r1, r5, r2
+ ldrb r1, [r1]
+ ldr r2, _08023C74 @ =gPlayerPartyCount
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _08023C78 @ =sub_807AD58
+ ldr r4, _08023C7C @ =word_2024E82
+ ldrh r4, [r4]
+ str r4, [sp]
+ bl sub_809D9F0
+ ldr r0, _08023C80 @ =0x0001601a
+ adds r1, r5, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08023E5A
+ .align 2, 0
+_08023C68: .4byte gPaletteFade
+_08023C6C: .4byte gPlayerParty
+_08023C70: .4byte 0x00016018
+_08023C74: .4byte gPlayerPartyCount
+_08023C78: .4byte sub_807AD58
+_08023C7C: .4byte word_2024E82
+_08023C80: .4byte 0x0001601a
+_08023C84:
+ ldr r0, _08023CB4 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08023C92
+ b _08023E5C
+_08023C92:
+ ldr r0, _08023CB8 @ =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, _08023CBC @ =sub_800F808
+ cmp r1, r0
+ beq _08023C9E
+ b _08023E5C
+_08023C9E:
+ bl sub_809FA30
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bne _08023CC8
+ ldr r0, _08023CC0 @ =0x02000000
+ ldr r1, _08023CC4 @ =0x0001601a
+ adds r0, r1
+ strb r5, [r0]
+ b _08023E5C
+ .align 2, 0
+_08023CB4: .4byte gPaletteFade
+_08023CB8: .4byte gMain
+_08023CBC: .4byte sub_800F808
+_08023CC0: .4byte 0x02000000
+_08023CC4: .4byte 0x0001601a
+_08023CC8:
+ ldr r2, _08023D08 @ =0x02000000
+ mov r9, r2
+ ldr r6, _08023D0C @ =0x00016018
+ add r6, r9
+ ldrb r0, [r6]
+ movs r1, 0x64
+ mov r8, r1
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ ldr r7, _08023D10 @ =gPlayerParty
+ adds r0, r7
+ adds r1, r5, 0
+ adds r1, 0xD
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_8040A00
+ cmp r0, 0
+ beq _08023D20
+ ldr r0, _08023D14 @ =0x0000013f
+ ldr r1, _08023D18 @ =gUnknown_02024A60
+ ldrb r1, [r1]
+ bl b_std_message
+ ldr r1, _08023D1C @ =0x0001601a
+ add r1, r9
+ movs r0, 0x5
+ b _08023E5A
+ .align 2, 0
+_08023D08: .4byte 0x02000000
+_08023D0C: .4byte 0x00016018
+_08023D10: .4byte gPlayerParty
+_08023D14: .4byte 0x0000013f
+_08023D18: .4byte gUnknown_02024A60
+_08023D1C: .4byte 0x0001601a
+_08023D20:
+ ldr r3, _08023E10 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ ldr r1, _08023E14 @ =gUnknown_03004290
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ strb r4, [r1, 0x2]
+ lsrs r0, r4, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ adds r1, r5, 0
+ bl RemoveMonPPBonus
+ ldrb r0, [r6]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r7
+ ldr r7, _08023E18 @ =word_2024E82
+ ldrh r1, [r7]
+ adds r2, r5, 0
+ bl SetMonMoveSlot
+ ldr r0, _08023E1C @ =gUnknown_02024A6A
+ ldrh r0, [r0]
+ ldrb r6, [r6]
+ cmp r0, r6
+ bne _08023DB0
+ ldr r4, _08023E20 @ =gBattleMons
+ ldr r0, [r4, 0x50]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _08023DB0
+ ldr r0, _08023E24 @ =gUnknown_02024CA8
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _08023E28 @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08023DB0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl RemoveBattleMonPPBonus
+ ldrh r1, [r7]
+ adds r0, r4, 0
+ adds r2, r5, 0
+ bl SetBattleMonMoveSlot
+_08023DB0:
+ ldr r0, _08023E2C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08023E5C
+ ldr r0, _08023E1C @ =gUnknown_02024A6A
+ ldr r1, _08023E30 @ =0x02000000
+ ldr r2, _08023E34 @ =0x00016018
+ adds r1, r2
+ ldrh r0, [r0, 0x4]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08023E5C
+ ldr r4, _08023E20 @ =gBattleMons
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _08023E5C
+ ldr r0, _08023E24 @ =gUnknown_02024CA8
+ adds r0, 0x50
+ ldrb r1, [r0]
+ lsrs r1, 4
+ ldr r2, _08023E28 @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08023E5C
+ adds r4, 0xB0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl RemoveBattleMonPPBonus
+ ldr r0, _08023E18 @ =word_2024E82
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ adds r2, r5, 0
+ bl SetBattleMonMoveSlot
+ b _08023E5C
+ .align 2, 0
+_08023E10: .4byte gUnknown_02024C10
+_08023E14: .4byte gUnknown_03004290
+_08023E18: .4byte word_2024E82
+_08023E1C: .4byte gUnknown_02024A6A
+_08023E20: .4byte gBattleMons
+_08023E24: .4byte gUnknown_02024CA8
+_08023E28: .4byte gBitTable
+_08023E2C: .4byte gUnknown_020239F8
+_08023E30: .4byte 0x02000000
+_08023E34: .4byte 0x00016018
+_08023E38:
+ bl sub_8023AD8
+ ldr r1, _08023E48 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08023E5C
+ .align 2, 0
+_08023E48: .4byte gUnknown_02024C10
+_08023E4C:
+ ldr r0, _08023E6C @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08023E5C
+ ldr r2, _08023E70 @ =0x0001601a
+ adds r1, r5, r2
+ movs r0, 0x2
+_08023E5A:
+ strb r0, [r1]
+_08023E5C:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023E6C: .4byte gUnknown_02024A64
+_08023E70: .4byte 0x0001601a
+ thumb_func_end sub_8023AF8
+
+ thumb_func_start atk5B_80256E0
+atk5B_80256E0: @ 8023E74
+ push {r4,r5,lr}
+ ldr r0, _08023E88 @ =0x02000000
+ ldr r1, _08023E8C @ =0x0001601a
+ adds r5, r0, r1
+ ldrb r4, [r5]
+ cmp r4, 0
+ beq _08023E90
+ cmp r4, 0x1
+ beq _08023EA8
+ b _08023F78
+ .align 2, 0
+_08023E88: .4byte 0x02000000
+_08023E8C: .4byte 0x0001601a
+_08023E90:
+ bl sub_8023A80
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ ldr r0, _08023EA4 @ =gUnknown_02024D1E
+ strb r4, [r0, 0x1]
+ bl sub_802BC6C
+ b _08023F78
+ .align 2, 0
+_08023EA4: .4byte gUnknown_02024D1E
+_08023EA8:
+ ldr r0, _08023F2C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08023ECE
+ ldr r4, _08023F30 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _08023ECE
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_08023ECE:
+ ldr r0, _08023F2C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08023EF4
+ ldr r4, _08023F30 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08023EF4
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_08023EF4:
+ ldr r0, _08023F2C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08023F4C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08023F30 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _08023F38
+ ldr r3, _08023F34 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08023F40
+ .align 2, 0
+_08023F2C: .4byte gMain
+_08023F30: .4byte gUnknown_02024D1E
+_08023F34: .4byte gUnknown_02024C10
+_08023F38:
+ ldr r1, _08023F48 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08023F40:
+ bl sub_8023AD8
+ b _08023F78
+ .align 2, 0
+_08023F48: .4byte gUnknown_02024C10
+_08023F4C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08023F78
+ movs r0, 0x5
+ bl PlaySE
+ ldr r3, _08023F80 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ bl sub_8023AD8
+_08023F78:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023F80: .4byte gUnknown_02024C10
+ thumb_func_end atk5B_80256E0
+
+ thumb_func_start atk5C_cmd5c
+atk5C_cmd5c: @ 8023F84
+ push {r4,lr}
+ ldr r4, _08023FF0 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r2, _08023FF4 @ =gUnknown_02024A60
+ strb r0, [r2]
+ ldr r0, _08023FF8 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _08024008
+ ldr r0, _08023FFC @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08023FD6
+ ldr r1, _08024000 @ =gBattleMons
+ ldrb r2, [r2]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _08023FD6
+ ldr r0, _08024004 @ =gUnknown_02024CA8
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ cmp r0, 0
+ bne _08024008
+_08023FD6:
+ movs r0, 0
+ bl dp01_build_cmdbuf_x29_29_29_29
+ ldr r0, _08023FF4 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _08023FF0 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ b _0802400E
+ .align 2, 0
+_08023FF0: .4byte gUnknown_02024C10
+_08023FF4: .4byte gUnknown_02024A60
+_08023FF8: .4byte gUnknown_02024C68
+_08023FFC: .4byte gUnknown_02024C6C
+_08024000: .4byte gBattleMons
+_08024004: .4byte gUnknown_02024CA8
+_08024008:
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+_0802400E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end atk5C_cmd5c
+
+ thumb_func_start sub_8024014
+sub_8024014: @ 8024014
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ movs r5, 0
+ ldr r0, _08024048 @ =gTrainerBattleOpponent
+ ldrh r2, [r0]
+ movs r1, 0x80
+ lsls r1, 3
+ cmp r2, r1
+ bne _08024058
+ ldr r0, _0802404C @ =0x02017000
+ adds r1, r0, 0
+ adds r1, 0x94
+ ldrb r2, [r1]
+ ldr r1, _08024050 @ =0xfffff056
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r2, 0
+ muls r4, r0
+ ldr r0, _08024054 @ =gSaveBlock1 + 0x490
+ mov r8, r0
+ b _08024140
+ .align 2, 0
+_08024048: .4byte gTrainerBattleOpponent
+_0802404C: .4byte 0x02017000
+_08024050: .4byte 0xfffff056
+_08024054: .4byte gSaveBlock1 + 0x490
+_08024058:
+ ldr r2, _08024074 @ =gTrainers
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r3, r0, 3
+ adds r4, r3, r2
+ ldrb r1, [r4]
+ cmp r1, 0x1
+ beq _080240AE
+ cmp r1, 0x1
+ bgt _08024078
+ cmp r1, 0
+ beq _08024082
+ b _080240C4
+ .align 2, 0
+_08024074: .4byte gTrainers
+_08024078:
+ cmp r1, 0x2
+ beq _08024098
+ cmp r1, 0x3
+ beq _080240AE
+ b _080240C4
+_08024082:
+ adds r0, r2, 0
+ adds r0, 0x24
+ adds r0, r3, r0
+ ldr r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r1
+ subs r0, 0x8
+ b _080240C2
+_08024098:
+ adds r0, r2, 0
+ adds r0, 0x24
+ adds r0, r3, r0
+ ldr r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r1
+ subs r0, 0x8
+ b _080240C2
+_080240AE:
+ adds r0, r2, 0
+ adds r0, 0x24
+ adds r0, r3, r0
+ ldr r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ subs r0, 0x10
+_080240C2:
+ ldrb r5, [r0, 0x2]
+_080240C4:
+ ldr r0, _08024120 @ =gTrainerMoney
+ lsls r1, r6, 2
+ adds r3, r1, r0
+ ldrb r1, [r3]
+ mov r12, r0
+ lsls r4, r5, 2
+ ldr r5, _08024124 @ =0x02000000
+ ldr r7, _08024128 @ =gUnknown_020239F8
+ ldr r0, _0802412C @ =gSaveBlock1 + 0x490
+ mov r8, r0
+ cmp r1, 0xFF
+ beq _080240FE
+ ldr r2, _08024130 @ =gTrainers
+ ldr r0, _08024134 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r2, [r0, 0x1]
+ adds r1, r3, 0
+_080240EE:
+ ldrb r0, [r1]
+ cmp r0, r2
+ beq _080240FE
+ adds r1, 0x4
+ adds r6, 0x1
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _080240EE
+_080240FE:
+ ldr r1, _08024138 @ =0x00016056
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ adds r3, r4, 0
+ muls r3, r0
+ lsls r0, r6, 2
+ add r0, r12
+ ldrb r2, [r0, 0x1]
+ ldrh r1, [r7]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802413C
+ lsls r0, r2, 1
+ adds r4, r3, 0
+ muls r4, r0
+ b _08024140
+ .align 2, 0
+_08024120: .4byte gTrainerMoney
+_08024124: .4byte 0x02000000
+_08024128: .4byte gUnknown_020239F8
+_0802412C: .4byte gSaveBlock1 + 0x490
+_08024130: .4byte gTrainers
+_08024134: .4byte gTrainerBattleOpponent
+_08024138: .4byte 0x00016056
+_0802413C:
+ adds r4, r3, 0
+ muls r4, r2
+_08024140:
+ mov r0, r8
+ adds r1, r4, 0
+ bl sub_80B79B8
+ ldr r1, _0802418C @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ movs r0, 0x4
+ strb r0, [r1, 0x2]
+ movs r0, 0x5
+ strb r0, [r1, 0x3]
+ strb r4, [r1, 0x4]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r4
+ lsrs r0, 8
+ strb r0, [r1, 0x5]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r4
+ lsrs r0, 16
+ strb r0, [r1, 0x6]
+ lsrs r0, r4, 24
+ strb r0, [r1, 0x7]
+ movs r0, 0xFF
+ strb r0, [r1, 0x8]
+ ldr r1, _08024190 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802418C: .4byte gUnknown_030041C0
+_08024190: .4byte gUnknown_02024C10
+ thumb_func_end sub_8024014
+
+ thumb_func_start atk5E_8025A70
+atk5E_8025A70: @ 8024194
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, _080241B8 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r6, _080241BC @ =gUnknown_02024A60
+ strb r0, [r6]
+ ldr r5, _080241C0 @ =gUnknown_02024D1E
+ ldrb r0, [r5]
+ mov r8, r4
+ cmp r0, 0
+ beq _080241C4
+ cmp r0, 0x1
+ beq _080241DC
+ b _08024230
+ .align 2, 0
+_080241B8: .4byte gUnknown_02024C10
+_080241BC: .4byte gUnknown_02024A60
+_080241C0: .4byte gUnknown_02024D1E
+_080241C4:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl dp01_build_cmdbuf_x00_a_b_0
+ ldrb r0, [r6]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _08024230
+_080241DC:
+ ldr r0, _0802423C @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08024230
+ ldrb r0, [r6]
+ lsls r0, 9
+ ldr r1, _08024240 @ =gUnknown_02024264
+ adds r0, r1
+ mov r12, r0
+ movs r2, 0
+ adds r4, r6, 0
+ movs r5, 0x58
+ ldr r6, _08024244 @ =gUnknown_02024AA4
+ adds r7, r6, 0
+ subs r7, 0x18
+ mov r3, r12
+ adds r3, 0xC
+_080241FE:
+ lsls r1, r2, 1
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r1, r0
+ adds r1, r7
+ ldrh r0, [r3]
+ strh r0, [r1]
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r2, r1
+ adds r1, r6
+ mov r0, r12
+ adds r0, 0x24
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r3, 0x2
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080241FE
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_08024230:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802423C: .4byte gUnknown_02024A64
+_08024240: .4byte gUnknown_02024264
+_08024244: .4byte gUnknown_02024AA4
+ thumb_func_end atk5E_8025A70
+
+ thumb_func_start atk5F_8025B24
+atk5F_8025B24: @ 8024248
+ push {lr}
+ ldr r0, _08024270 @ =gUnknown_02024A60
+ ldr r2, _08024274 @ =gUnknown_02024C07
+ ldrb r3, [r2]
+ strb r3, [r0]
+ ldr r1, _08024278 @ =gUnknown_02024C08
+ ldrb r0, [r1]
+ strb r0, [r2]
+ strb r3, [r1]
+ ldr r2, _0802427C @ =gUnknown_02024C6C
+ ldr r1, [r2]
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08024284
+ ldr r0, _08024280 @ =0xffffefff
+ ands r1, r0
+ b _08024286
+ .align 2, 0
+_08024270: .4byte gUnknown_02024A60
+_08024274: .4byte gUnknown_02024C07
+_08024278: .4byte gUnknown_02024C08
+_0802427C: .4byte gUnknown_02024C6C
+_08024280: .4byte 0xffffefff
+_08024284:
+ orrs r1, r3
+_08024286:
+ str r1, [r2]
+ ldr r1, _08024294 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024294: .4byte gUnknown_02024C10
+ thumb_func_end atk5F_8025B24
+
+ thumb_func_start atk60_cmd60
+atk60_cmd60: @ 8024298
+ push {lr}
+ ldr r0, _080242C0 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080242B2
+ ldr r0, _080242C4 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sav12_xor_increment
+_080242B2:
+ ldr r1, _080242C4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080242C0: .4byte gUnknown_02024C07
+_080242C4: .4byte gUnknown_02024C10
+ thumb_func_end atk60_cmd60
+
+ thumb_func_start atk61_8025BA4
+atk61_8025BA4: @ 80242C8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x30
+ ldr r0, _0802432C @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0802437C
+ ldr r0, _08024330 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r1, _08024334 @ =gUnknown_02024A60
+ strb r0, [r1]
+ ldrb r0, [r1]
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r1, _08024338 @ =gEnemyParty
+ mov r8, r1
+ cmp r0, 0
+ bne _080242FA
+ ldr r0, _0802433C @ =gPlayerParty
+ mov r8, r0
+_080242FA:
+ movs r7, 0
+ add r6, sp, 0x4
+ mov r5, sp
+_08024300:
+ movs r0, 0x64
+ muls r0, r7
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _08024324
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ bne _08024344
+_08024324:
+ ldr r0, _08024340 @ =0x0000ffff
+ strh r0, [r5]
+ movs r0, 0
+ b _08024356
+ .align 2, 0
+_0802432C: .4byte gUnknown_02024A64
+_08024330: .4byte gUnknown_02024C10
+_08024334: .4byte gUnknown_02024A60
+_08024338: .4byte gEnemyParty
+_0802433C: .4byte gPlayerParty
+_08024340: .4byte 0x0000ffff
+_08024344:
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+_08024356:
+ str r0, [r6]
+ adds r6, 0x8
+ adds r5, 0x8
+ adds r7, 0x1
+ cmp r7, 0x5
+ ble _08024300
+ movs r0, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl dp01_build_cmdbuf_x30_TODO
+ ldr r0, _08024388 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _0802438C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_0802437C:
+ add sp, 0x30
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024388: .4byte gUnknown_02024A60
+_0802438C: .4byte gUnknown_02024C10
+ thumb_func_end atk61_8025BA4
+
+ thumb_func_start atk62_08025C6C
+atk62_08025C6C: @ 8024390
+ push {r4,r5,lr}
+ ldr r5, _080243B8 @ =gUnknown_02024C10
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _080243BC @ =gUnknown_02024A60
+ strb r0, [r4]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x31_31_31_31
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080243B8: .4byte gUnknown_02024C10
+_080243BC: .4byte gUnknown_02024A60
+ thumb_func_end atk62_08025C6C
+
+ thumb_func_start atk63_jumptoattack
+atk63_jumptoattack: @ 80243C0
+ push {r4,lr}
+ ldr r0, _080243D8 @ =gUnknown_02024C10
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _080243E4
+ ldr r0, _080243DC @ =gUnknown_02024BE6
+ ldr r1, _080243E0 @ =gUnknown_02024BEA
+ ldrh r1, [r1]
+ strh r1, [r0]
+ b _080243F2
+ .align 2, 0
+_080243D8: .4byte gUnknown_02024C10
+_080243DC: .4byte gUnknown_02024BE6
+_080243E0: .4byte gUnknown_02024BEA
+_080243E4:
+ ldr r2, _08024410 @ =gUnknown_02024BE8
+ ldr r1, _08024414 @ =gUnknown_02024BE6
+ ldr r0, _08024418 @ =gUnknown_02024BEA
+ ldrh r0, [r0]
+ strh r0, [r1]
+ strh r0, [r2]
+ adds r0, r1, 0
+_080243F2:
+ ldr r3, _0802441C @ =gUnknown_081D6BBC
+ ldr r2, _08024420 @ =gBattleMoves
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024410: .4byte gUnknown_02024BE8
+_08024414: .4byte gUnknown_02024BE6
+_08024418: .4byte gUnknown_02024BEA
+_0802441C: .4byte gUnknown_081D6BBC
+_08024420: .4byte gBattleMoves
+ thumb_func_end atk63_jumptoattack
+
+ thumb_func_start atk64_statusanimation
+atk64_statusanimation: @ 8024424
+ push {r4,lr}
+ ldr r0, _08024494 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0802448C
+ ldr r0, _08024498 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _0802449C @ =gUnknown_02024A60
+ strb r0, [r4]
+ ldr r1, _080244A0 @ =gUnknown_02024C98
+ ldrb r2, [r4]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080244A4 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ bne _08024484
+ ldr r0, _080244A8 @ =gUnknown_02024CA8
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ cmp r0, 0
+ bne _08024484
+ ldr r0, _080244AC @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08024484
+ ldr r1, _080244B0 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r2, [r0]
+ movs r0, 0
+ movs r1, 0
+ bl dp01_build_cmdbuf_x1B_aaaa_b
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08024484:
+ ldr r1, _08024498 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_0802448C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024494: .4byte gUnknown_02024A64
+_08024498: .4byte gUnknown_02024C10
+_0802449C: .4byte gUnknown_02024A60
+_080244A0: .4byte gUnknown_02024C98
+_080244A4: .4byte 0x000400c0
+_080244A8: .4byte gUnknown_02024CA8
+_080244AC: .4byte gUnknown_02024C6C
+_080244B0: .4byte gBattleMons
+ thumb_func_end atk64_statusanimation
+
+ thumb_func_start atk65_8025D90
+atk65_8025D90: @ 80244B4
+ push {r4,r5,lr}
+ ldr r0, _0802453C @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08024534
+ ldr r4, _08024540 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r5, _08024544 @ =gUnknown_02024A60
+ strb r0, [r5]
+ ldr r1, [r4]
+ ldrb r3, [r1, 0x2]
+ ldrb r0, [r1, 0x3]
+ lsls r0, 8
+ orrs r3, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 16
+ orrs r3, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 24
+ orrs r3, r0
+ ldr r1, _08024548 @ =gUnknown_02024C98
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _0802454C @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802452C
+ ldr r0, _08024550 @ =gUnknown_02024CA8
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ cmp r0, 0
+ bne _0802452C
+ ldr r0, _08024554 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802452C
+ ldr r1, _08024558 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r2, [r0]
+ ands r2, r3
+ movs r0, 0
+ movs r1, 0x1
+ bl dp01_build_cmdbuf_x1B_aaaa_b
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+_0802452C:
+ ldr r1, _08024540 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x6
+ str r0, [r1]
+_08024534:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802453C: .4byte gUnknown_02024A64
+_08024540: .4byte gUnknown_02024C10
+_08024544: .4byte gUnknown_02024A60
+_08024548: .4byte gUnknown_02024C98
+_0802454C: .4byte 0x000400c0
+_08024550: .4byte gUnknown_02024CA8
+_08024554: .4byte gUnknown_02024C6C
+_08024558: .4byte gBattleMons
+ thumb_func_end atk65_8025D90
+
+ thumb_func_start atk66_8025E38
+atk66_8025E38: @ 802455C
+ push {r4,r5,lr}
+ ldr r0, _080245D4 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080245CE
+ ldr r4, _080245D8 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r5, _080245DC @ =gUnknown_02024A60
+ strb r0, [r5]
+ ldr r4, [r4]
+ ldrb r2, [r4, 0x3]
+ ldrb r0, [r4, 0x4]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r4, 0x5]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r4, 0x6]
+ lsls r0, 24
+ orrs r2, r0
+ ldr r1, _080245E0 @ =gUnknown_02024C98
+ ldrb r3, [r5]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080245E4 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ bne _080245C6
+ ldr r0, _080245E8 @ =gUnknown_02024CA8
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ cmp r0, 0
+ bne _080245C6
+ ldr r0, _080245EC @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080245C6
+ ldrb r1, [r4, 0x2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x1B_aaaa_b
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+_080245C6:
+ ldr r1, _080245D8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x7
+ str r0, [r1]
+_080245CE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080245D4: .4byte gUnknown_02024A64
+_080245D8: .4byte gUnknown_02024C10
+_080245DC: .4byte gUnknown_02024A60
+_080245E0: .4byte gUnknown_02024C98
+_080245E4: .4byte 0x000400c0
+_080245E8: .4byte gUnknown_02024CA8
+_080245EC: .4byte gUnknown_02024C6C
+ thumb_func_end atk66_8025E38
+
+ thumb_func_start atk67_8025ECC
+atk67_8025ECC: @ 80245F0
+ push {r4,r5,lr}
+ ldr r5, _08024600 @ =gUnknown_02024D1E
+ ldrb r4, [r5]
+ cmp r4, 0
+ beq _08024604
+ cmp r4, 0x1
+ beq _08024616
+ b _08024696
+ .align 2, 0
+_08024600: .4byte gUnknown_02024D1E
+_08024604:
+ bl sub_8023A80
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ strb r4, [r5, 0x1]
+ bl sub_802BC6C
+ b _08024696
+_08024616:
+ ldr r0, _08024674 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0802463A
+ ldrb r0, [r5, 0x1]
+ cmp r0, 0
+ beq _0802463A
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0
+ strb r0, [r5, 0x1]
+ bl sub_802BC6C
+_0802463A:
+ ldr r0, _08024674 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08024660
+ ldr r4, _08024678 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08024660
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_08024660:
+ ldr r0, _08024674 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802467C
+ ldr r1, _08024678 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ b _08024684
+ .align 2, 0
+_08024674: .4byte gMain
+_08024678: .4byte gUnknown_02024D1E
+_0802467C:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08024696
+_08024684:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8023AD8
+ ldr r1, _0802469C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_08024696:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802469C: .4byte gUnknown_02024C10
+ thumb_func_end atk67_8025ECC
+
+ thumb_func_start sub_80246A0
+sub_80246A0: @ 80246A0
+ push {r4,r5,lr}
+ movs r1, 0
+ ldr r2, _080246CC @ =gUnknown_02024A68
+ ldr r5, _080246D0 @ =gUnknown_02024C10
+ ldrb r0, [r2]
+ cmp r1, r0
+ bge _080246BE
+ ldr r4, _080246D4 @ =gUnknown_02024A76
+ movs r3, 0xC
+_080246B2:
+ adds r0, r1, r4
+ strb r3, [r0]
+ adds r1, 0x1
+ ldrb r0, [r2]
+ cmp r1, r0
+ blt _080246B2
+_080246BE:
+ ldr r0, [r5]
+ adds r0, 0x1
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080246CC: .4byte gUnknown_02024A68
+_080246D0: .4byte gUnknown_02024C10
+_080246D4: .4byte gUnknown_02024A76
+ thumb_func_end sub_80246A0
+
+ thumb_func_start atk69_8025FE0
+atk69_8025FE0: @ 80246D8
+ push {r4-r7,lr}
+ ldr r7, _08024700 @ =gBattleMons
+ ldr r6, _08024704 @ =gUnknown_02024C08
+ ldrb r2, [r6]
+ movs r5, 0x58
+ adds r0, r2, 0
+ muls r0, r5
+ adds r1, r0, r7
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _0802470C
+ ldr r1, _08024708 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x7]
+ ldrb r6, [r0, 0x1A]
+ b _08024726
+ .align 2, 0
+_08024700: .4byte gBattleMons
+_08024704: .4byte gUnknown_02024C08
+_08024708: .4byte gEnigmaBerries
+_0802470C:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r7
+ ldrh r0, [r0, 0x2E]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08024726:
+ ldr r1, _080247E8 @ =gUnknown_02024C0B
+ ldr r5, _080247EC @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ strb r0, [r1]
+ cmp r4, 0x27
+ bne _08024764
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r6
+ bcs _08024764
+ ldrb r0, [r5]
+ movs r1, 0x27
+ bl sub_81074F8
+ ldr r2, _080247F0 @ =gUnknown_02024D68
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+_08024764:
+ ldr r2, _080247F4 @ =gBattleMons
+ ldr r3, _080247EC @ =gUnknown_02024C08
+ ldrb r4, [r3]
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, r2, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 17
+ ands r1, r0
+ adds r5, r2, 0
+ cmp r1, 0
+ bne _08024834
+ ldr r2, _080247F8 @ =gBattleMoves
+ ldr r0, _080247FC @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x65
+ beq _080247B6
+ ldr r0, _08024800 @ =gUnknown_02024D28
+ lsls r1, r4, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 30
+ cmp r0, 0
+ blt _080247B6
+ ldr r0, _080247F0 @ =gUnknown_02024D68
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _08024834
+_080247B6:
+ ldrb r0, [r3]
+ movs r4, 0x58
+ muls r0, r4
+ adds r0, r5
+ ldrh r1, [r0, 0x28]
+ ldr r2, _08024804 @ =gUnknown_02024BEC
+ ldr r0, [r2]
+ cmp r1, r0
+ bgt _08024834
+ subs r0, r1, 0x1
+ str r0, [r2]
+ ldr r1, _08024800 @ =gUnknown_02024D28
+ ldrb r3, [r3]
+ lsls r0, r3, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ cmp r0, 0
+ bge _0802480C
+ ldr r0, _08024808 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _08024834
+ .align 2, 0
+_080247E8: .4byte gUnknown_02024C0B
+_080247EC: .4byte gUnknown_02024C08
+_080247F0: .4byte gUnknown_02024D68
+_080247F4: .4byte gBattleMons
+_080247F8: .4byte gBattleMoves
+_080247FC: .4byte gUnknown_02024BE6
+_08024800: .4byte gUnknown_02024D28
+_08024804: .4byte gUnknown_02024BEC
+_08024808: .4byte gUnknown_02024C68
+_0802480C:
+ ldr r0, _08024844 @ =gUnknown_02024D68
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _08024834
+ ldr r2, _08024848 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0802484C @ =gUnknown_02024C04
+ adds r0, r3, 0
+ muls r0, r4
+ adds r0, r5
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r1]
+_08024834:
+ ldr r1, _08024850 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024844: .4byte gUnknown_02024D68
+_08024848: .4byte gUnknown_02024C68
+_0802484C: .4byte gUnknown_02024C04
+_08024850: .4byte gUnknown_02024C10
+ thumb_func_end atk69_8025FE0
+
+ thumb_func_start atk6A_stash_item_for_side
+atk6A_stash_item_for_side: @ 8024854
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r6, _080248B0 @ =gUnknown_02024C10
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r5, _080248B4 @ =gUnknown_02024A60
+ strb r0, [r5]
+ ldrb r4, [r5]
+ lsls r1, r4, 1
+ ldr r0, _080248B8 @ =0x020160cc
+ adds r1, r0
+ ldr r2, _080248BC @ =gBattleMons
+ movs r3, 0x58
+ adds r0, r4, 0
+ muls r0, r3
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r1]
+ ldrb r0, [r5]
+ muls r0, r3
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r5]
+ muls r0, r3
+ adds r2, 0x2E
+ adds r0, r2
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x2
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r6]
+ adds r0, 0x2
+ str r0, [r6]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080248B0: .4byte gUnknown_02024C10
+_080248B4: .4byte gUnknown_02024A60
+_080248B8: .4byte 0x020160cc
+_080248BC: .4byte gBattleMons
+ thumb_func_end atk6A_stash_item_for_side
+
+ thumb_func_start sub_80248C0
+sub_80248C0: @ 80248C0
+ ldr r1, _080248EC @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x7
+ strb r0, [r1, 0x1]
+ ldr r2, _080248F0 @ =gUnknown_02024C07
+ ldrb r0, [r2]
+ strb r0, [r1, 0x2]
+ ldr r3, _080248F4 @ =gUnknown_02024A6A
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _080248F8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080248EC: .4byte gUnknown_030041C0
+_080248F0: .4byte gUnknown_02024C07
+_080248F4: .4byte gUnknown_02024A6A
+_080248F8: .4byte gUnknown_02024C10
+ thumb_func_end sub_80248C0
+
+ thumb_func_start sub_80248FC
+sub_80248FC: @ 80248FC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r1, 0
+ movs r7, 0
+ ldr r0, _08024928 @ =0x02000000
+ mov r10, r0
+ ldr r4, _0802492C @ =0x0001609c
+ add r4, r10
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bne _0802491C
+ b _08024AF4
+_0802491C:
+ cmp r0, 0x1
+ bgt _08024930
+ cmp r0, 0
+ beq _0802493E
+ b _08024C38
+ .align 2, 0
+_08024928: .4byte 0x02000000
+_0802492C: .4byte 0x0001609c
+_08024930:
+ cmp r0, 0x2
+ bne _08024936
+ b _08024C04
+_08024936:
+ cmp r0, 0x3
+ bne _0802493C
+ b _08024C30
+_0802493C:
+ b _08024C38
+_0802493E:
+ str r1, [sp]
+ movs r0, 0xB
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x7
+ bl sub_802BBD4
+ ldr r0, _0802499C @ =gStringVar4
+ ldr r1, _080249A0 @ =gUnknown_08400D9F
+ bl StringCopy
+ adds r5, r0, 0
+ movs r1, 0
+ mov r8, r1
+_0802495A:
+ movs r2, 0
+ mov r9, r2
+ ldr r0, _080249A4 @ =gUnknown_0840165C
+ mov r1, r8
+ lsls r4, r1, 2
+ adds r0, r4, r0
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl StringAppend
+ adds r5, r0, 0
+ ldr r0, _080249A8 @ =0x02000000
+ ldr r2, _080249AC @ =0x00016018
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080249B0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _080249B4 @ =gLevelUpStatBoxStats
+ add r1, r8
+ ldrb r1, [r1]
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ mov r0, r8
+ cmp r0, 0x5
+ bhi _08024A1A
+ ldr r0, _080249B8 @ =_080249BC
+ adds r0, r4, r0
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0802499C: .4byte gStringVar4
+_080249A0: .4byte gUnknown_08400D9F
+_080249A4: .4byte gUnknown_0840165C
+_080249A8: .4byte 0x02000000
+_080249AC: .4byte 0x00016018
+_080249B0: .4byte gPlayerParty
+_080249B4: .4byte gLevelUpStatBoxStats
+_080249B8: .4byte _080249BC
+ .align 2, 0
+_080249BC:
+ .4byte _080249D4
+ .4byte _080249E0
+ .4byte _080249EC
+ .4byte _080249F8
+ .4byte _08024A04
+ .4byte _08024A10
+_080249D4:
+ ldr r0, _080249DC @ =0x02017180
+ ldrh r0, [r0]
+ b _08024A14
+ .align 2, 0
+_080249DC: .4byte 0x02017180
+_080249E0:
+ ldr r0, _080249E8 @ =0x02017180
+ ldrh r0, [r0, 0x8]
+ b _08024A14
+ .align 2, 0
+_080249E8: .4byte 0x02017180
+_080249EC:
+ ldr r0, _080249F4 @ =0x02017180
+ ldrh r0, [r0, 0x2]
+ b _08024A14
+ .align 2, 0
+_080249F4: .4byte 0x02017180
+_080249F8:
+ ldr r0, _08024A00 @ =0x02017180
+ ldrh r0, [r0, 0xA]
+ b _08024A14
+ .align 2, 0
+_08024A00: .4byte 0x02017180
+_08024A04:
+ ldr r0, _08024A0C @ =0x02017180
+ ldrh r0, [r0, 0x4]
+ b _08024A14
+ .align 2, 0
+_08024A0C: .4byte 0x02017180
+_08024A10:
+ ldr r0, _08024A54 @ =0x02017180
+ ldrh r0, [r0, 0x6]
+_08024A14:
+ subs r0, r1, r0
+ lsls r0, 16
+ lsrs r7, r0, 16
+_08024A1A:
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08024A2C
+ negs r0, r0
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r1, 0x1
+ add r9, r1
+_08024A2C:
+ movs r0, 0xFC
+ strb r0, [r5]
+ movs r0, 0x13
+ strb r0, [r5, 0x1]
+ movs r1, 0x1
+ mov r2, r8
+ ands r1, r2
+ lsls r0, r1, 3
+ adds r0, r1
+ adds r0, 0x5
+ lsls r0, 3
+ adds r0, 0x6
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ mov r0, r9
+ cmp r0, 0
+ beq _08024A5C
+ ldr r1, _08024A58 @ =gUnknown_08400DAC
+ b _08024A5E
+ .align 2, 0
+_08024A54: .4byte 0x02017180
+_08024A58: .4byte gUnknown_08400DAC
+_08024A5C:
+ ldr r1, _08024AA4 @ =gUnknown_08400DAA
+_08024A5E:
+ adds r0, r5, 0
+ bl StringCopy
+ adds r5, r0, 0
+ movs r6, 0xFC
+ strb r6, [r5]
+ movs r4, 0x14
+ strb r4, [r5, 0x1]
+ movs r0, 0x6
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ lsls r1, r7, 16
+ asrs r1, 16
+ adds r0, r5, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r5, r0, 0
+ strb r6, [r5]
+ strb r4, [r5, 0x1]
+ movs r0, 0
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ movs r0, 0x1
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _08024AA8
+ movs r0, 0xFE
+ strb r0, [r5]
+ movs r0, 0xFF
+ strb r0, [r5, 0x1]
+ adds r5, 0x1
+ b _08024AB8
+ .align 2, 0
+_08024AA4: .4byte gUnknown_08400DAA
+_08024AA8:
+ strb r6, [r5]
+ movs r0, 0x11
+ strb r0, [r5, 0x1]
+ movs r0, 0x8
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ movs r0, 0xFF
+ strb r0, [r5]
+_08024AB8:
+ movs r2, 0x1
+ add r8, r2
+ mov r0, r8
+ cmp r0, 0x5
+ bgt _08024AC4
+ b _0802495A
+_08024AC4:
+ ldr r4, _08024AE4 @ =gUnknown_03004210
+ ldr r1, _08024AE8 @ =gStringVar4
+ adds r2, 0xFF
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0xC
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _08024AEC @ =0x02000000
+ ldr r2, _08024AF0 @ =0x0001609c
+ adds r1, r2
+ b _08024BEA
+ .align 2, 0
+_08024AE4: .4byte gUnknown_03004210
+_08024AE8: .4byte gStringVar4
+_08024AEC: .4byte 0x02000000
+_08024AF0: .4byte 0x0001609c
+_08024AF4:
+ ldr r0, _08024B94 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0
+ bne _08024AFE
+ b _08024C38
+_08024AFE:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08024B98 @ =gStringVar4
+ ldr r1, _08024B9C @ =gUnknown_08400D9F
+ bl StringCopy
+ adds r5, r0, 0
+ movs r0, 0
+ mov r8, r0
+ mov r9, r0
+ movs r6, 0xFC
+ movs r7, 0x14
+ ldr r1, _08024BA0 @ =0x00016018
+ add r10, r1
+_08024B1C:
+ ldr r1, _08024BA4 @ =gUnknown_0840165C
+ mov r2, r8
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl StringAppend
+ adds r5, r0, 0
+ mov r0, r10
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08024BA8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _08024BAC @ =gLevelUpStatBoxStats
+ add r1, r8
+ ldrb r1, [r1]
+ bl GetMonData
+ adds r1, r0, 0
+ strb r6, [r5]
+ movs r0, 0x13
+ strb r0, [r5, 0x1]
+ movs r4, 0x1
+ mov r2, r8
+ ands r4, r2
+ lsls r0, r4, 3
+ adds r0, r4
+ adds r0, 0x5
+ lsls r0, 3
+ adds r0, 0x6
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ strb r6, [r5]
+ strb r7, [r5, 0x1]
+ movs r0, 0x6
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r5, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r5, r0, 0
+ strb r6, [r5]
+ strb r7, [r5, 0x1]
+ mov r0, r9
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ cmp r4, 0
+ beq _08024BB0
+ movs r0, 0xFE
+ strb r0, [r5]
+ movs r0, 0xFF
+ strb r0, [r5, 0x1]
+ adds r5, 0x1
+ b _08024BC0
+ .align 2, 0
+_08024B94: .4byte gMain
+_08024B98: .4byte gStringVar4
+_08024B9C: .4byte gUnknown_08400D9F
+_08024BA0: .4byte 0x00016018
+_08024BA4: .4byte gUnknown_0840165C
+_08024BA8: .4byte gPlayerParty
+_08024BAC: .4byte gLevelUpStatBoxStats
+_08024BB0:
+ strb r6, [r5]
+ movs r0, 0x11
+ strb r0, [r5, 0x1]
+ movs r0, 0x8
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ movs r0, 0xFF
+ strb r0, [r5]
+_08024BC0:
+ movs r1, 0x1
+ add r8, r1
+ mov r2, r8
+ cmp r2, 0x5
+ ble _08024B1C
+ ldr r4, _08024BF4 @ =gUnknown_03004210
+ ldr r1, _08024BF8 @ =gStringVar4
+ movs r2, 0x80
+ lsls r2, 1
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0xC
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _08024BFC @ =0x02000000
+ ldr r0, _08024C00 @ =0x0001609c
+ adds r1, r0
+_08024BEA:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08024C38
+ .align 2, 0
+_08024BF4: .4byte gUnknown_03004210
+_08024BF8: .4byte gStringVar4
+_08024BFC: .4byte 0x02000000
+_08024C00: .4byte 0x0001609c
+_08024C04:
+ ldr r0, _08024C2C @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0
+ beq _08024C38
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xB
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x7
+ bl sub_802BBD4
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _08024C38
+ .align 2, 0
+_08024C2C: .4byte gMain
+_08024C30:
+ ldr r1, _08024C48 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_08024C38:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024C48: .4byte gUnknown_02024C10
+ thumb_func_end sub_80248FC
+
+ thumb_func_start sub_8024C4C
+sub_8024C4C: @ 8024C4C
+ push {lr}
+ bl sub_80156DC
+ ldr r1, _08024C60 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024C60: .4byte gUnknown_02024C10
+ thumb_func_end sub_8024C4C
+
+ thumb_func_start atk6E_state0_side_becomes_attacker
+atk6E_state0_side_becomes_attacker: @ 8024C64
+ push {lr}
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r1, _08024C7C @ =gUnknown_02024C07
+ strb r0, [r1]
+ ldr r1, _08024C80 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024C7C: .4byte gUnknown_02024C07
+_08024C80: .4byte gUnknown_02024C10
+ thumb_func_end atk6E_state0_side_becomes_attacker
+
+ thumb_func_start atk6F_8026810
+atk6F_8026810: @ 8024C84
+ push {r4,r5,lr}
+ ldr r5, _08024CB0 @ =gUnknown_02024C10
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _08024CB4 @ =gUnknown_02024A60
+ strb r0, [r4]
+ movs r0, 0
+ movs r1, 0
+ bl dp01_build_cmdbuf_x33_a_33_33
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024CB0: .4byte gUnknown_02024C10
+_08024CB4: .4byte gUnknown_02024A60
+ thumb_func_end atk6F_8026810
+
+ thumb_func_start atk70_record_ability_usage_of_side
+atk70_record_ability_usage_of_side: @ 8024CB8
+ push {r4,lr}
+ ldr r4, _08024CE0 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r1, _08024CE4 @ =gUnknown_02024A60
+ strb r0, [r1]
+ ldrb r0, [r1]
+ ldr r1, _08024CE8 @ =byte_2024C06
+ ldrb r1, [r1]
+ bl sub_81074C4
+ ldr r0, [r4]
+ adds r0, 0x1
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024CE0: .4byte gUnknown_02024C10
+_08024CE4: .4byte gUnknown_02024A60
+_08024CE8: .4byte byte_2024C06
+ thumb_func_end atk70_record_ability_usage_of_side
+
+ thumb_func_start sub_8024CEC
+sub_8024CEC: @ 8024CEC
+ ldr r2, _08024D0C @ =gUnknown_03004290
+ movs r0, 0xFD
+ strb r0, [r2]
+ movs r0, 0x2
+ strb r0, [r2, 0x1]
+ ldr r0, _08024D10 @ =word_2024E82
+ ldrh r1, [r0]
+ strb r1, [r2, 0x2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r0, 8
+ strb r0, [r2, 0x3]
+ movs r0, 0xFF
+ strb r0, [r2, 0x4]
+ bx lr
+ .align 2, 0
+_08024D0C: .4byte gUnknown_03004290
+_08024D10: .4byte word_2024E82
+ thumb_func_end sub_8024CEC
+
+ thumb_func_start atk71_80268A0
+atk71_80268A0: @ 8024D14
+ push {lr}
+ bl sub_8024CEC
+ ldr r1, _08024D28 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024D28: .4byte gUnknown_02024C10
+ thumb_func_end atk71_80268A0
+
+ thumb_func_start atk72_flee
+atk72_flee: @ 8024D2C
+ push {lr}
+ ldr r0, _08024D58 @ =gUnknown_02024C09
+ ldrb r0, [r0]
+ bl sub_8014AB8
+ lsls r0, 24
+ cmp r0, 0
+ beq _08024D60
+ ldr r3, _08024D5C @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08024D68
+ .align 2, 0
+_08024D58: .4byte gUnknown_02024C09
+_08024D5C: .4byte gUnknown_02024C10
+_08024D60:
+ ldr r1, _08024D6C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08024D68:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024D6C: .4byte gUnknown_02024C10
+ thumb_func_end atk72_flee
+
+ thumb_func_start atk73_cmd73
+atk73_cmd73: @ 8024D70
+ push {r4,r5,lr}
+ ldr r0, _08024DC0 @ =gUnknown_020239F8
+ ldrh r0, [r0]
+ movs r5, 0x1
+ ands r5, r0
+ cmp r5, 0
+ bne _08024E12
+ ldr r0, _08024DC4 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r1, _08024DC8 @ =gUnknown_02024A60
+ strb r0, [r1]
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08024DCC @ =gBattleMons
+ movs r1, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldrh r4, [r1, 0x28]
+ movs r0, 0x64
+ muls r0, r4
+ ldrh r1, [r1, 0x2C]
+ bl __divsi3
+ cmp r0, 0
+ bne _08024DAE
+ movs r0, 0x1
+_08024DAE:
+ cmp r0, 0x45
+ bgt _08024DB6
+ cmp r4, 0
+ bne _08024DD8
+_08024DB6:
+ ldr r0, _08024DD0 @ =0x02000000
+ ldr r1, _08024DD4 @ =0x000160c1
+ adds r0, r1
+ strb r5, [r0]
+ b _08024E12
+ .align 2, 0
+_08024DC0: .4byte gUnknown_020239F8
+_08024DC4: .4byte gUnknown_02024C10
+_08024DC8: .4byte gUnknown_02024A60
+_08024DCC: .4byte gBattleMons
+_08024DD0: .4byte 0x02000000
+_08024DD4: .4byte 0x000160c1
+_08024DD8:
+ cmp r0, 0x27
+ ble _08024DF0
+ ldr r0, _08024DE8 @ =0x02000000
+ ldr r1, _08024DEC @ =0x000160c1
+ adds r0, r1
+ movs r1, 0x1
+ b _08024E10
+ .align 2, 0
+_08024DE8: .4byte 0x02000000
+_08024DEC: .4byte 0x000160c1
+_08024DF0:
+ cmp r0, 0x9
+ ble _08024E08
+ ldr r0, _08024E00 @ =0x02000000
+ ldr r1, _08024E04 @ =0x000160c1
+ adds r0, r1
+ movs r1, 0x2
+ b _08024E10
+ .align 2, 0
+_08024E00: .4byte 0x02000000
+_08024E04: .4byte 0x000160c1
+_08024E08:
+ ldr r0, _08024E20 @ =0x02000000
+ ldr r1, _08024E24 @ =0x000160c1
+ adds r0, r1
+ movs r1, 0x3
+_08024E10:
+ strb r1, [r0]
+_08024E12:
+ ldr r1, _08024E28 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024E20: .4byte 0x02000000
+_08024E24: .4byte 0x000160c1
+_08024E28: .4byte gUnknown_02024C10
+ thumb_func_end atk73_cmd73
+
+ thumb_func_start atk74_hp_tresholds_2
+atk74_hp_tresholds_2: @ 8024E2C
+ push {r4-r7,lr}
+ ldr r0, _08024E8C @ =gUnknown_020239F8
+ ldrh r0, [r0]
+ movs r7, 0x1
+ ands r7, r0
+ cmp r7, 0
+ bne _08024ED0
+ ldr r0, _08024E90 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ adds r4, r0, 0
+ ldr r0, _08024E94 @ =gUnknown_02024A60
+ strb r4, [r0]
+ movs r0, 0x1
+ eors r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r6, _08024E98 @ =0x02000000
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 23
+ ldr r1, _08024E9C @ =0x000160bc
+ adds r0, r1
+ adds r0, r6
+ ldrb r5, [r0]
+ ldr r1, _08024EA0 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ ldrh r4, [r0, 0x28]
+ subs r1, r5, r4
+ movs r0, 0x64
+ muls r0, r1
+ adds r1, r5, 0
+ bl __divsi3
+ adds r1, r0, 0
+ cmp r4, r5
+ bcc _08024EA8
+ ldr r1, _08024EA4 @ =0x000160c1
+ adds r0, r6, r1
+ strb r7, [r0]
+ b _08024ED0
+ .align 2, 0
+_08024E8C: .4byte gUnknown_020239F8
+_08024E90: .4byte gUnknown_02024C10
+_08024E94: .4byte gUnknown_02024A60
+_08024E98: .4byte 0x02000000
+_08024E9C: .4byte 0x000160bc
+_08024EA0: .4byte gBattleMons
+_08024EA4: .4byte 0x000160c1
+_08024EA8:
+ cmp r0, 0x1D
+ bgt _08024EB8
+ ldr r0, _08024EB4 @ =0x000160c1
+ adds r1, r6, r0
+ movs r0, 0x1
+ b _08024ECE
+ .align 2, 0
+_08024EB4: .4byte 0x000160c1
+_08024EB8:
+ cmp r1, 0x45
+ bgt _08024EC8
+ ldr r0, _08024EC4 @ =0x000160c1
+ adds r1, r6, r0
+ movs r0, 0x2
+ b _08024ECE
+ .align 2, 0
+_08024EC4: .4byte 0x000160c1
+_08024EC8:
+ ldr r0, _08024EE0 @ =0x000160c1
+ adds r1, r6, r0
+ movs r0, 0x3
+_08024ECE:
+ strb r0, [r1]
+_08024ED0:
+ ldr r1, _08024EE4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024EE0: .4byte 0x000160c1
+_08024EE4: .4byte gUnknown_02024C10
+ thumb_func_end atk74_hp_tresholds_2
+
+ thumb_func_start atk75_8026A58
+atk75_8026A58: @ 8024EE8
+ push {lr}
+ sub sp, 0x4
+ ldr r2, _08024F28 @ =gUnknown_02024E6C
+ ldr r1, _08024F2C @ =gUnknown_02024C07
+ ldrb r0, [r1]
+ strb r0, [r2]
+ ldr r2, _08024F30 @ =gUnknown_02024A6A
+ ldrb r0, [r1]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r1, _08024F34 @ =gEnemyParty
+ adds r0, r1
+ ldr r1, _08024F38 @ =gUnknown_02024C04
+ ldrh r1, [r1]
+ lsls r2, 24
+ lsrs r2, 24
+ movs r3, 0x1
+ str r3, [sp]
+ movs r3, 0
+ bl sub_803E1B0
+ ldr r1, _08024F3C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024F28: .4byte gUnknown_02024E6C
+_08024F2C: .4byte gUnknown_02024C07
+_08024F30: .4byte gUnknown_02024A6A
+_08024F34: .4byte gEnemyParty
+_08024F38: .4byte gUnknown_02024C04
+_08024F3C: .4byte gUnknown_02024C10
+ thumb_func_end atk75_8026A58
+
+ thumb_func_start sub_8024F40
+sub_8024F40: @ 8024F40
+ push {r4-r6,lr}
+ ldr r4, _08024F64 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r1, _08024F68 @ =gUnknown_02024A60
+ strb r0, [r1]
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0x6
+ bls _08024F5A
+ b _08025112
+_08024F5A:
+ lsls r0, 2
+ ldr r1, _08024F6C @ =_08024F70
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08024F64: .4byte gUnknown_02024C10
+_08024F68: .4byte gUnknown_02024A60
+_08024F6C: .4byte _08024F70
+ .align 2, 0
+_08024F70:
+ .4byte _08024F8C
+ .4byte _08024F9C
+ .4byte _08024FFC
+ .4byte _0802500C
+ .4byte _08025024
+ .4byte _08025060
+ .4byte _08025098
+_08024F8C:
+ ldr r0, _08024F98 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl b_cancel_multi_turn_move_maybe
+ b _08025112
+ .align 2, 0
+_08024F98: .4byte gUnknown_02024A60
+_08024F9C:
+ ldr r1, _08024FD8 @ =gUnknown_02024C07
+ ldr r4, _08024FDC @ =gUnknown_02024C08
+ ldrb r0, [r4]
+ strb r0, [r1]
+ ldrb r0, [r1]
+ bl battle_side_get_owner
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08024FE0 @ =gUnknown_02024C80
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r2, r1, r2
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _08024FE8
+ ldr r1, _08024FE4 @ =gBattleMons
+ ldrb r2, [r2, 0x9]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08024FE8
+ strb r2, [r4]
+ b _08025112
+ .align 2, 0
+_08024FD8: .4byte gUnknown_02024C07
+_08024FDC: .4byte gUnknown_02024C08
+_08024FE0: .4byte gUnknown_02024C80
+_08024FE4: .4byte gBattleMons
+_08024FE8:
+ ldr r0, _08024FF4 @ =gUnknown_02024C08
+ ldr r1, _08024FF8 @ =gUnknown_02024A60
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _08025112
+ .align 2, 0
+_08024FF4: .4byte gUnknown_02024C08
+_08024FF8: .4byte gUnknown_02024A60
+_08024FFC:
+ bl sub_8012028
+ ldr r1, _08025008 @ =gUnknown_02024D1E
+ strb r0, [r1]
+ b _08025112
+ .align 2, 0
+_08025008: .4byte gUnknown_02024D1E
+_0802500C:
+ ldr r0, _0802501C @ =gUnknown_02024BE6
+ ldrh r0, [r0]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _08025020 @ =gUnknown_02024C08
+ strb r0, [r1]
+ b _08025112
+ .align 2, 0
+_0802501C: .4byte gUnknown_02024BE6
+_08025020: .4byte gUnknown_02024C08
+_08025024:
+ ldr r2, _08025044 @ =gUnknown_02024C6C
+ ldr r1, _08025048 @ =gBitTable
+ ldr r0, _0802504C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ lsls r0, 28
+ ldr r2, [r2]
+ ands r2, r0
+ cmp r2, 0
+ beq _08025054
+ ldr r1, _08025050 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1]
+ b _08025112
+ .align 2, 0
+_08025044: .4byte gUnknown_02024C6C
+_08025048: .4byte gBitTable
+_0802504C: .4byte gUnknown_02024A60
+_08025050: .4byte gUnknown_02024D1E
+_08025054:
+ ldr r0, _0802505C @ =gUnknown_02024D1E
+ strb r2, [r0]
+ b _08025112
+ .align 2, 0
+_0802505C: .4byte gUnknown_02024D1E
+_08025060:
+ ldr r4, _08025090 @ =gUnknown_02024D68
+ ldr r3, _08025094 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r3]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ b _08025112
+ .align 2, 0
+_08025090: .4byte gUnknown_02024D68
+_08025094: .4byte gUnknown_02024A60
+_08025098:
+ ldr r3, _080250B8 @ =gUnknown_02024A6A
+ ldr r0, _080250BC @ =0x02000000
+ ldr r1, _080250C0 @ =0x00016018
+ adds r0, r1
+ ldrh r2, [r3]
+ ldrb r1, [r0]
+ cmp r2, r1
+ beq _080250B2
+ ldrh r0, [r3, 0x4]
+ cmp r0, r1
+ bne _08025112
+ cmp r2, r0
+ bne _080250C8
+_080250B2:
+ ldr r1, _080250C4 @ =gUnknown_02024A60
+ movs r0, 0
+ b _080250CC
+ .align 2, 0
+_080250B8: .4byte gUnknown_02024A6A
+_080250BC: .4byte 0x02000000
+_080250C0: .4byte 0x00016018
+_080250C4: .4byte gUnknown_02024A60
+_080250C8:
+ ldr r1, _08025120 @ =gUnknown_02024A60
+ movs r0, 0x2
+_080250CC:
+ strb r0, [r1]
+ adds r5, r1, 0
+ ldrb r2, [r5]
+ lsls r1, r2, 1
+ ldr r0, _08025124 @ =0x020160e8
+ adds r4, r1, r0
+ movs r3, 0
+ ldr r1, _08025128 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r0, [r0]
+ ldrh r2, [r4]
+ cmp r0, r2
+ beq _0802510A
+ adds r6, r5, 0
+ movs r5, 0x58
+ adds r2, r1, 0
+_080250F2:
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _0802510A
+ lsls r1, r3, 1
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r1, r0
+ adds r1, r2
+ ldrh r0, [r1]
+ ldrh r1, [r4]
+ cmp r0, r1
+ bne _080250F2
+_0802510A:
+ cmp r3, 0x4
+ bne _08025112
+ movs r0, 0
+ strh r0, [r4]
+_08025112:
+ ldr r1, _0802512C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x3
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025120: .4byte gUnknown_02024A60
+_08025124: .4byte 0x020160e8
+_08025128: .4byte gBattleMons
+_0802512C: .4byte gUnknown_02024C10
+ thumb_func_end sub_8024F40
+
+ thumb_func_start atk77_setprotect
+atk77_setprotect: @ 8025130
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0x1
+ ldr r2, _080251FC @ =gUnknown_02024C4C
+ ldr r1, _08025200 @ =gUnknown_02024C07
+ ldrb r3, [r1]
+ lsls r0, r3, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ mov r8, r1
+ ldr r7, _08025204 @ =gUnknown_02024CA8
+ cmp r0, 0xB6
+ beq _08025160
+ cmp r0, 0xC5
+ beq _08025160
+ cmp r0, 0xCB
+ beq _08025160
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r7
+ movs r1, 0
+ strb r1, [r0, 0x8]
+_08025160:
+ ldr r0, _08025208 @ =gUnknown_02024A7E
+ ldrb r1, [r0]
+ ldr r0, _0802520C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _08025170
+ movs r6, 0
+_08025170:
+ ldr r2, _08025210 @ =gProtectSuccessRates
+ mov r5, r8
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrb r4, [r0, 0x8]
+ lsls r4, 1
+ adds r4, r2
+ bl Random
+ ldrh r1, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r1, r0
+ bls _08025224
+ cmp r6, 0
+ beq _08025224
+ ldr r4, _08025214 @ =gBattleMoves
+ ldr r3, _08025218 @ =gUnknown_02024BE6
+ ldrh r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1]
+ cmp r0, 0x6F
+ bne _080251C0
+ ldr r0, _0802521C @ =gUnknown_02024D28
+ ldrb r1, [r5]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r1, _08025220 @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r1, 0x5]
+_080251C0:
+ ldrh r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1]
+ cmp r0, 0x74
+ bne _080251E6
+ ldr r0, _0802521C @ =gUnknown_02024D28
+ ldrb r1, [r5]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r1, _08025220 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+_080251E6:
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r0, [r1, 0x8]
+ adds r0, 0x1
+ strb r0, [r1, 0x8]
+ b _08025246
+ .align 2, 0
+_080251FC: .4byte gUnknown_02024C4C
+_08025200: .4byte gUnknown_02024C07
+_08025204: .4byte gUnknown_02024CA8
+_08025208: .4byte gUnknown_02024A7E
+_0802520C: .4byte gUnknown_02024A68
+_08025210: .4byte gProtectSuccessRates
+_08025214: .4byte gBattleMoves
+_08025218: .4byte gUnknown_02024BE6
+_0802521C: .4byte gUnknown_02024D28
+_08025220: .4byte gUnknown_02024D1E
+_08025224:
+ ldr r2, _08025258 @ =gUnknown_02024CA8
+ ldr r0, _0802525C @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0, 0x8]
+ ldr r1, _08025260 @ =gUnknown_02024D1E
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ ldr r2, _08025264 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_08025246:
+ ldr r1, _08025268 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025258: .4byte gUnknown_02024CA8
+_0802525C: .4byte gUnknown_02024C07
+_08025260: .4byte gUnknown_02024D1E
+_08025264: .4byte gUnknown_02024C68
+_08025268: .4byte gUnknown_02024C10
+ thumb_func_end atk77_setprotect
+
+ thumb_func_start atk78_faintifabilitynotdamp
+atk78_faintifabilitynotdamp: @ 802526C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _08025328 @ =gUnknown_02024A64
+ ldr r2, [r0]
+ cmp r2, 0
+ bne _08025370
+ ldr r1, _0802532C @ =gUnknown_02024C08
+ strb r2, [r1]
+ ldr r0, _08025330 @ =gUnknown_02024A68
+ ldrb r3, [r0]
+ adds r5, r1, 0
+ mov r8, r0
+ ldr r6, _08025334 @ =gBattleMons
+ cmp r2, r3
+ bcs _080252B8
+ adds r0, r6, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ beq _080252B8
+ adds r2, r3, 0
+ adds r4, r6, 0
+ movs r3, 0x58
+_0802529C:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r2
+ bcs _080252B8
+ ldrb r0, [r5]
+ muls r0, r3
+ adds r0, r4
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bne _0802529C
+_080252B8:
+ ldrb r0, [r5]
+ mov r1, r8
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08025354
+ ldr r4, _08025338 @ =gUnknown_02024A60
+ ldr r7, _0802533C @ =gUnknown_02024C07
+ ldrb r0, [r7]
+ strb r0, [r4]
+ ldr r2, _08025340 @ =gUnknown_02024BEC
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r6
+ ldrh r0, [r0, 0x28]
+ str r0, [r2]
+ ldr r1, _08025344 @ =0x00007fff
+ movs r0, 0
+ bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _08025348 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ movs r0, 0
+ strb r0, [r5]
+ mov r2, r8
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08025370
+ adds r3, r5, 0
+ ldrb r5, [r7]
+ ldr r7, _0802534C @ =gBitTable
+ adds r4, r0, 0
+ ldr r6, _08025350 @ =gUnknown_02024C0C
+_08025304:
+ ldrb r2, [r3]
+ cmp r2, r5
+ beq _0802531A
+ ldrb r0, [r6]
+ ldrb r1, [r3]
+ lsls r1, 2
+ adds r1, r7
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ beq _08025370
+_0802531A:
+ adds r0, r2, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r4
+ bcc _08025304
+ b _08025370
+ .align 2, 0
+_08025328: .4byte gUnknown_02024A64
+_0802532C: .4byte gUnknown_02024C08
+_08025330: .4byte gUnknown_02024A68
+_08025334: .4byte gBattleMons
+_08025338: .4byte gUnknown_02024A60
+_0802533C: .4byte gUnknown_02024C07
+_08025340: .4byte gUnknown_02024BEC
+_08025344: .4byte 0x00007fff
+_08025348: .4byte gUnknown_02024C10
+_0802534C: .4byte gBitTable
+_08025350: .4byte gUnknown_02024C0C
+_08025354:
+ ldr r1, _0802537C @ =byte_2024C06
+ movs r0, 0x6
+ strb r0, [r1]
+ ldrb r0, [r5]
+ movs r1, 0x58
+ muls r1, r0
+ adds r1, r6
+ adds r1, 0x20
+ ldrb r1, [r1]
+ bl sub_81074C4
+ ldr r1, _08025380 @ =gUnknown_02024C10
+ ldr r0, _08025384 @ =gUnknown_081D9834
+ str r0, [r1]
+_08025370:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802537C: .4byte byte_2024C06
+_08025380: .4byte gUnknown_02024C10
+_08025384: .4byte gUnknown_081D9834
+ thumb_func_end atk78_faintifabilitynotdamp
+
+ thumb_func_start atk79_setuserhptozero
+atk79_setuserhptozero: @ 8025388
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080253D4 @ =gUnknown_02024A64
+ ldr r3, [r0]
+ cmp r3, 0
+ bne _080253CC
+ ldr r4, _080253D8 @ =gUnknown_02024A60
+ ldr r0, _080253DC @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r1, _080253E0 @ =gBattleMons
+ ldrb r0, [r4]
+ movs r2, 0x58
+ muls r0, r2
+ adds r0, r1
+ strh r3, [r0, 0x28]
+ ldrb r0, [r4]
+ muls r0, r2
+ adds r1, 0x28
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x2A
+ movs r2, 0
+ movs r3, 0x2
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _080253E4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_080253CC:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080253D4: .4byte gUnknown_02024A64
+_080253D8: .4byte gUnknown_02024A60
+_080253DC: .4byte gUnknown_02024C07
+_080253E0: .4byte gBattleMons
+_080253E4: .4byte gUnknown_02024C10
+ thumb_func_end atk79_setuserhptozero
+
+ thumb_func_start sub_80253E8
+sub_80253E8: @ 80253E8
+ push {r4-r7,lr}
+ ldr r3, _08025460 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r4, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r4, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r4, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r4, r0
+ ldr r0, _08025464 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ adds r7, r3, 0
+ cmp r0, 0
+ beq _08025480
+ ldr r0, _08025468 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r2, _0802546C @ =gUnknown_02024C07
+ lsls r1, 24
+ lsrs r1, 24
+ adds r3, r0, 0
+ ldr r6, _08025470 @ =gUnknown_02024C0C
+ ldr r5, _08025474 @ =gBitTable
+ ldr r0, _08025478 @ =gUnknown_02024A68
+ mov r12, r0
+ ldrb r0, [r2]
+ cmp r1, r0
+ bne _0802543E
+_0802542E:
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _0802542E
+_0802543E:
+ ldrb r0, [r6]
+ ldrb r1, [r3]
+ lsls r1, 2
+ adds r1, r5
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ bne _0802542E
+ ldrb r0, [r3]
+ mov r2, r12
+ ldrb r2, [r2]
+ cmp r0, r2
+ bcc _0802547C
+ ldr r0, [r7]
+ adds r0, 0x5
+ str r0, [r7]
+ b _08025484
+ .align 2, 0
+_08025460: .4byte gUnknown_02024C10
+_08025464: .4byte gUnknown_020239F8
+_08025468: .4byte gUnknown_02024C08
+_0802546C: .4byte gUnknown_02024C07
+_08025470: .4byte gUnknown_02024C0C
+_08025474: .4byte gBitTable
+_08025478: .4byte gUnknown_02024A68
+_0802547C:
+ str r4, [r7]
+ b _08025484
+_08025480:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08025484:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80253E8
+
+ thumb_func_start sub_802548C
+sub_802548C: @ 802548C
+ push {r4-r6,lr}
+ ldr r4, _080254E8 @ =gUnknown_02024C10
+ ldr r1, [r4]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r2, r0
+ ldrb r0, [r1, 0x5]
+ ldr r3, _080254EC @ =gUnknown_02024C08
+ cmp r0, 0x1
+ bne _080254B4
+ ldr r0, _080254F0 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r3]
+_080254B4:
+ ldr r1, _080254F4 @ =gUnknown_02024BEC
+ ldr r6, _080254F8 @ =gBattleMons
+ ldrb r0, [r3]
+ movs r5, 0x58
+ muls r0, r5
+ adds r0, r6
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 1
+ str r0, [r1]
+ cmp r0, 0
+ bne _080254CE
+ movs r0, 0x1
+ str r0, [r1]
+_080254CE:
+ ldr r0, [r1]
+ negs r0, r0
+ str r0, [r1]
+ ldrb r0, [r3]
+ muls r0, r5
+ adds r0, r6
+ ldrh r1, [r0, 0x28]
+ ldrh r0, [r0, 0x2C]
+ cmp r1, r0
+ bne _080254FC
+ str r2, [r4]
+ b _08025502
+ .align 2, 0
+_080254E8: .4byte gUnknown_02024C10
+_080254EC: .4byte gUnknown_02024C08
+_080254F0: .4byte gUnknown_02024C07
+_080254F4: .4byte gUnknown_02024BEC
+_080254F8: .4byte gBattleMons
+_080254FC:
+ ldr r0, [r4]
+ adds r0, 0x6
+ str r0, [r4]
+_08025502:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802548C
+
+ thumb_func_start sub_8025508
+sub_8025508: @ 8025508
+ push {r4-r7,lr}
+ ldr r3, _0802556C @ =0x02000000
+ ldr r4, _08025570 @ =gUnknown_02024C07
+ ldrb r2, [r4]
+ lsls r1, r2, 1
+ ldr r5, _08025574 @ =0x000160ac
+ adds r0, r1, r5
+ adds r0, r3
+ ldrb r7, [r0]
+ ldr r0, _08025578 @ =0x000160ad
+ adds r1, r0
+ adds r1, r3
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r7, r0
+ lsls r2, 2
+ ldr r1, _0802557C @ =0x00016100
+ adds r0, r2, r1
+ adds r0, r3
+ ldrb r6, [r0]
+ adds r5, 0x55
+ adds r0, r2, r5
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r6, r0
+ adds r1, 0x2
+ adds r0, r2, r1
+ adds r0, r3
+ ldrb r5, [r0]
+ ldr r0, _08025580 @ =0x00016103
+ adds r2, r0
+ adds r2, r3
+ ldrb r0, [r2]
+ lsls r0, 8
+ orrs r5, r0
+ cmp r7, 0
+ beq _08025594
+ ldr r0, _08025584 @ =0x0000ffff
+ cmp r7, r0
+ beq _08025594
+ ldr r2, _08025588 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _0802558C @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ ldr r4, _08025590 @ =gUnknown_02024BE6
+ strh r7, [r4]
+ b _0802565C
+ .align 2, 0
+_0802556C: .4byte 0x02000000
+_08025570: .4byte gUnknown_02024C07
+_08025574: .4byte 0x000160ac
+_08025578: .4byte 0x000160ad
+_0802557C: .4byte 0x00016100
+_08025580: .4byte 0x00016103
+_08025584: .4byte 0x0000ffff
+_08025588: .4byte gUnknown_02024C6C
+_0802558C: .4byte 0xfffffbff
+_08025590: .4byte gUnknown_02024BE6
+_08025594:
+ cmp r6, 0
+ beq _08025644
+ cmp r5, 0
+ beq _08025618
+ ldr r0, _080255C4 @ =0x0000ffff
+ cmp r6, r0
+ beq _08025618
+ cmp r5, r0
+ beq _08025618
+ ldr r2, _080255C8 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _080255CC @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080255D4
+ ldr r0, _080255D0 @ =gUnknown_02024BE6
+ strh r6, [r0]
+ b _080255D8
+ .align 2, 0
+_080255C4: .4byte 0x0000ffff
+_080255C8: .4byte gUnknown_02024C6C
+_080255CC: .4byte 0xfffffbff
+_080255D0: .4byte gUnknown_02024BE6
+_080255D4:
+ ldr r0, _08025604 @ =gUnknown_02024BE6
+ strh r5, [r0]
+_080255D8:
+ adds r5, r0, 0
+ ldrh r0, [r5]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _08025608 @ =gUnknown_02024C08
+ strb r0, [r1]
+ ldr r4, _0802560C @ =gUnknown_02024C10
+ ldr r3, _08025610 @ =gUnknown_081D6BBC
+ ldr r2, _08025614 @ =gBattleMoves
+ ldrh r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r4]
+ b _080256C0
+ .align 2, 0
+_08025604: .4byte gUnknown_02024BE6
+_08025608: .4byte gUnknown_02024C08
+_0802560C: .4byte gUnknown_02024C10
+_08025610: .4byte gUnknown_081D6BBC
+_08025614: .4byte gBattleMoves
+_08025618:
+ cmp r6, 0
+ beq _08025644
+ ldr r0, _08025634 @ =0x0000ffff
+ cmp r6, r0
+ beq _08025644
+ ldr r2, _08025638 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _0802563C @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ ldr r4, _08025640 @ =gUnknown_02024BE6
+ strh r6, [r4]
+ b _0802565C
+ .align 2, 0
+_08025634: .4byte 0x0000ffff
+_08025638: .4byte gUnknown_02024C6C
+_0802563C: .4byte 0xfffffbff
+_08025640: .4byte gUnknown_02024BE6
+_08025644:
+ cmp r5, 0
+ beq _080256A4
+ ldr r0, _08025684 @ =0x0000ffff
+ cmp r5, r0
+ beq _080256A4
+ ldr r2, _08025688 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _0802568C @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ ldr r4, _08025690 @ =gUnknown_02024BE6
+ strh r5, [r4]
+_0802565C:
+ ldrh r0, [r4]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _08025694 @ =gUnknown_02024C08
+ strb r0, [r1]
+ ldr r5, _08025698 @ =gUnknown_02024C10
+ ldr r3, _0802569C @ =gUnknown_081D6BBC
+ ldr r2, _080256A0 @ =gBattleMoves
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r5]
+ b _080256C0
+ .align 2, 0
+_08025684: .4byte 0x0000ffff
+_08025688: .4byte gUnknown_02024C6C
+_0802568C: .4byte 0xfffffbff
+_08025690: .4byte gUnknown_02024BE6
+_08025694: .4byte gUnknown_02024C08
+_08025698: .4byte gUnknown_02024C10
+_0802569C: .4byte gUnknown_081D6BBC
+_080256A0: .4byte gBattleMoves
+_080256A4:
+ ldr r2, _080256C8 @ =gUnknown_02024D68
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r1, _080256CC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_080256C0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080256C8: .4byte gUnknown_02024D68
+_080256CC: .4byte gUnknown_02024C10
+ thumb_func_end sub_8025508
+
+ thumb_func_start sub_80256D0
+sub_80256D0: @ 80256D0
+ push {lr}
+ ldr r2, _080256F0 @ =word_2024DB8
+ ldrh r0, [r2]
+ movs r1, 0x7
+ ands r1, r0
+ cmp r1, 0
+ beq _080256FC
+ ldr r2, _080256F4 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080256F8 @ =gUnknown_02024D1E
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ b _0802570C
+ .align 2, 0
+_080256F0: .4byte word_2024DB8
+_080256F4: .4byte gUnknown_02024C68
+_080256F8: .4byte gUnknown_02024D1E
+_080256FC:
+ movs r0, 0x1
+ strh r0, [r2]
+ ldr r0, _08025718 @ =gUnknown_02024D1E
+ strb r1, [r0, 0x5]
+ ldr r0, _0802571C @ =gUnknown_02024DBC
+ adds r0, 0x28
+ movs r1, 0x5
+ strb r1, [r0]
+_0802570C:
+ ldr r1, _08025720 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025718: .4byte gUnknown_02024D1E
+_0802571C: .4byte gUnknown_02024DBC
+_08025720: .4byte gUnknown_02024C10
+ thumb_func_end sub_80256D0
+
+ thumb_func_start atk7E_setreflect
+atk7E_setreflect: @ 8025724
+ push {r4-r6,lr}
+ ldr r5, _08025754 @ =gUnknown_02024C07
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ ldr r6, _08025758 @ =gUnknown_02024C7A
+ movs r4, 0x1
+ adds r1, r4, 0
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r6
+ ldrh r1, [r1]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08025764
+ ldr r2, _0802575C @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08025760 @ =gUnknown_02024D1E
+ movs r0, 0
+ b _080257C4
+ .align 2, 0
+_08025754: .4byte gUnknown_02024C07
+_08025758: .4byte gUnknown_02024C7A
+_0802575C: .4byte gUnknown_02024C68
+_08025760: .4byte gUnknown_02024D1E
+_08025764:
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ adds r1, r4, 0
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r6
+ ldrh r0, [r1]
+ movs r2, 0x1
+ orrs r0, r2
+ strh r0, [r1]
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ ldr r2, _080257B4 @ =gUnknown_02024C80
+ adds r1, r4, 0
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x5
+ strb r1, [r0]
+ ldr r0, _080257B8 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080257C0
+ movs r0, 0x1
+ bl sub_803C348
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bne _080257C0
+ ldr r0, _080257BC @ =gUnknown_02024D1E
+ strb r1, [r0, 0x5]
+ b _080257C6
+ .align 2, 0
+_080257B4: .4byte gUnknown_02024C80
+_080257B8: .4byte gUnknown_020239F8
+_080257BC: .4byte gUnknown_02024D1E
+_080257C0:
+ ldr r1, _080257D4 @ =gUnknown_02024D1E
+ movs r0, 0x1
+_080257C4:
+ strb r0, [r1, 0x5]
+_080257C6:
+ ldr r1, _080257D8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080257D4: .4byte gUnknown_02024D1E
+_080257D8: .4byte gUnknown_02024C10
+ thumb_func_end atk7E_setreflect
+
+ thumb_func_start sub_80257DC
+sub_80257DC: @ 80257DC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r7, _0802581C @ =gUnknown_02024C68
+ ldrb r5, [r7]
+ movs r0, 0x29
+ ands r0, r5
+ cmp r0, 0
+ bne _0802580E
+ ldr r0, _08025820 @ =gUnknown_02024C98
+ mov r9, r0
+ ldr r1, _08025824 @ =gUnknown_02024C08
+ mov r8, r1
+ ldrb r4, [r1]
+ lsls r0, r4, 2
+ mov r2, r9
+ adds r6, r0, r2
+ ldr r2, [r6]
+ movs r0, 0x4
+ mov r12, r0
+ adds r3, r2, 0
+ ands r3, r0
+ cmp r3, 0
+ beq _0802582C
+_0802580E:
+ movs r0, 0x1
+ orrs r0, r5
+ strb r0, [r7]
+ ldr r1, _08025828 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _0802587C
+ .align 2, 0
+_0802581C: .4byte gUnknown_02024C68
+_08025820: .4byte gUnknown_02024C98
+_08025824: .4byte gUnknown_02024C08
+_08025828: .4byte gUnknown_02024D1E
+_0802582C:
+ ldr r1, _08025858 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, r0, r1
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ beq _08025848
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ bne _08025860
+_08025848:
+ movs r0, 0x1
+ orrs r0, r5
+ strb r0, [r7]
+ ldr r1, _0802585C @ =gUnknown_02024D1E
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ b _0802587C
+ .align 2, 0
+_08025858: .4byte gBattleMons
+_0802585C: .4byte gUnknown_02024D1E
+_08025860:
+ ldr r0, _08025890 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ orrs r2, r0
+ str r2, [r6]
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r1, 2
+ add r1, r9
+ ldr r0, [r1]
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1]
+ ldr r0, _08025894 @ =gUnknown_02024D1E
+ strb r3, [r0, 0x5]
+_0802587C:
+ ldr r1, _08025898 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025890: .4byte gUnknown_02024C07
+_08025894: .4byte gUnknown_02024D1E
+_08025898: .4byte gUnknown_02024C10
+ thumb_func_end sub_80257DC
+
+ thumb_func_start atk80_manipulatedamage
+atk80_manipulatedamage: @ 802589C
+ push {r4,lr}
+ ldr r1, _080258B4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ ldrb r2, [r0, 0x1]
+ adds r4, r1, 0
+ cmp r2, 0x1
+ beq _080258CC
+ cmp r2, 0x1
+ bgt _080258B8
+ cmp r2, 0
+ beq _080258BE
+ b _0802590C
+ .align 2, 0
+_080258B4: .4byte gUnknown_02024C10
+_080258B8:
+ cmp r2, 0x2
+ beq _08025904
+ b _0802590C
+_080258BE:
+ ldr r1, _080258C8 @ =gUnknown_02024BEC
+ ldr r0, [r1]
+ negs r0, r0
+ b _0802590A
+ .align 2, 0
+_080258C8: .4byte gUnknown_02024BEC
+_080258CC:
+ ldr r3, _080258F8 @ =gUnknown_02024BEC
+ ldr r0, [r3]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ str r0, [r3]
+ cmp r0, 0
+ bne _080258DE
+ str r2, [r3]
+_080258DE:
+ ldr r2, _080258FC @ =gBattleMons
+ ldr r0, _08025900 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x2C]
+ lsrs r1, r0, 1
+ ldr r0, [r3]
+ cmp r1, r0
+ bge _0802590C
+ str r1, [r3]
+ b _0802590C
+ .align 2, 0
+_080258F8: .4byte gUnknown_02024BEC
+_080258FC: .4byte gBattleMons
+_08025900: .4byte gUnknown_02024C08
+_08025904:
+ ldr r1, _08025918 @ =gUnknown_02024BEC
+ ldr r0, [r1]
+ lsls r0, 1
+_0802590A:
+ str r0, [r1]
+_0802590C:
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025918: .4byte gUnknown_02024BEC
+ thumb_func_end atk80_manipulatedamage
+
+ thumb_func_start atk81_setrest
+atk81_setrest: @ 802591C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r0, _08025974 @ =gUnknown_02024C10
+ mov r12, r0
+ ldr r1, [r0]
+ ldrb r6, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r6, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r6, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r6, r0
+ ldr r5, _08025978 @ =gUnknown_02024A60
+ ldr r2, _0802597C @ =gUnknown_02024C08
+ ldr r0, _08025980 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r2]
+ strb r0, [r5]
+ ldr r4, _08025984 @ =gUnknown_02024BEC
+ ldr r1, _08025988 @ =gBattleMons
+ ldrb r0, [r2]
+ movs r3, 0x58
+ muls r0, r3
+ adds r0, r1
+ ldrh r0, [r0, 0x2C]
+ negs r0, r0
+ str r0, [r4]
+ ldrb r0, [r2]
+ adds r4, r0, 0
+ muls r4, r3
+ 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 _0802598C
+ mov r0, r12
+ str r6, [r0]
+ b _080259DC
+ .align 2, 0
+_08025974: .4byte gUnknown_02024C10
+_08025978: .4byte gUnknown_02024A60
+_0802597C: .4byte gUnknown_02024C08
+_08025980: .4byte gUnknown_02024C07
+_08025984: .4byte gUnknown_02024BEC
+_08025988: .4byte gBattleMons
+_0802598C:
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r4, r0
+ ldr r1, [r0]
+ movs r0, 0xF8
+ ands r1, r0
+ cmp r1, 0
+ beq _080259A8
+ ldr r1, _080259A4 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _080259AC
+ .align 2, 0
+_080259A4: .4byte gUnknown_02024D1E
+_080259A8:
+ ldr r0, _080259E4 @ =gUnknown_02024D1E
+ strb r1, [r0, 0x5]
+_080259AC:
+ ldrb r0, [r5]
+ movs r3, 0x58
+ muls r0, r3
+ adds r2, 0x4C
+ adds r0, r2
+ movs r1, 0x3
+ str r1, [r0]
+ ldrb r0, [r7]
+ muls r0, r3
+ adds r0, r2
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r7]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _080259E8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_080259DC:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080259E4: .4byte gUnknown_02024D1E
+_080259E8: .4byte gUnknown_02024C10
+ thumb_func_end atk81_setrest
+
+ thumb_func_start atk82_jumpifnotfirstturn
+atk82_jumpifnotfirstturn: @ 80259EC
+ push {r4,r5,lr}
+ ldr r5, _08025A20 @ =gUnknown_02024C10
+ ldr r4, [r5]
+ ldrb r3, [r4, 0x1]
+ ldrb r0, [r4, 0x2]
+ lsls r0, 8
+ orrs r3, r0
+ ldrb r0, [r4, 0x3]
+ lsls r0, 16
+ orrs r3, r0
+ ldrb r0, [r4, 0x4]
+ lsls r0, 24
+ orrs r3, r0
+ ldr r2, _08025A24 @ =gUnknown_02024CA8
+ ldr r0, _08025A28 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x16]
+ cmp r0, 0
+ beq _08025A2C
+ adds r0, r4, 0x5
+ str r0, [r5]
+ b _08025A2E
+ .align 2, 0
+_08025A20: .4byte gUnknown_02024C10
+_08025A24: .4byte gUnknown_02024CA8
+_08025A28: .4byte gUnknown_02024C07
+_08025A2C:
+ str r3, [r5]
+_08025A2E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end atk82_jumpifnotfirstturn
+
+ thumb_func_start sub_8025A34
+sub_8025A34: @ 8025A34
+ ldr r1, _08025A40 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08025A40: .4byte gUnknown_02024C10
+ thumb_func_end sub_8025A34
+
+ thumb_func_start sub_8025A44
+sub_8025A44: @ 8025A44
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r2, 0
+ ldr r0, _08025A9C @ =gUnknown_02024A68
+ ldrb r1, [r0]
+ mov r8, r0
+ cmp r2, r1
+ bge _08025AB8
+ ldr r0, _08025AA0 @ =gBattleMons
+ mov r12, r0
+ movs r0, 0x58
+ muls r0, r3
+ add r0, r12
+ adds r5, r0, 0
+ adds r5, 0x20
+ ldr r6, _08025AA4 @ =0x02016003
+ movs r3, 0
+ ldr r7, _08025AA8 @ =gUnknown_02024D1E
+ adds r4, r1, 0
+_08025A70:
+ mov r0, r12
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x70
+ ands r0, r1
+ cmp r0, 0
+ beq _08025AB0
+ ldrb r0, [r5]
+ cmp r0, 0x2B
+ beq _08025AB0
+ movs r3, 0
+ strb r2, [r6]
+ ldr r1, _08025AAC @ =gUnknown_02024C08
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _08025AD0
+ cmp r0, r2
+ beq _08025AC4
+ movs r0, 0x1
+ strb r0, [r7, 0x5]
+ b _08025AB8
+ .align 2, 0
+_08025A9C: .4byte gUnknown_02024A68
+_08025AA0: .4byte gBattleMons
+_08025AA4: .4byte 0x02016003
+_08025AA8: .4byte gUnknown_02024D1E
+_08025AAC: .4byte gUnknown_02024C08
+_08025AB0:
+ adds r3, 0x58
+ adds r2, 0x1
+ cmp r2, r4
+ blt _08025A70
+_08025AB8:
+ mov r1, r8
+ ldrb r1, [r1]
+ cmp r2, r1
+ beq _08025AD4
+ movs r0, 0x1
+ b _08025AD6
+_08025AC4:
+ ldr r0, _08025ACC @ =gUnknown_02024D1E
+ strb r3, [r0, 0x5]
+ b _08025AB8
+ .align 2, 0
+_08025ACC: .4byte gUnknown_02024D1E
+_08025AD0:
+ strb r2, [r1]
+ b _08025AB8
+_08025AD4:
+ movs r0, 0
+_08025AD6:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8025A44
+
+ thumb_func_start sub_8025AE0
+sub_8025AE0: @ 8025AE0
+ push {r4-r6,lr}
+ ldr r5, _08025B0C @ =gUnknown_02024C10
+ ldr r1, [r5]
+ ldrb r4, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r4, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r4, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r4, r0
+ ldr r6, _08025B10 @ =gUnknown_02024C08
+ ldrb r0, [r6]
+ bl sub_8025A44
+ lsls r0, 24
+ cmp r0, 0
+ beq _08025B14
+ str r4, [r5]
+ b _08025B56
+ .align 2, 0
+_08025B0C: .4byte gUnknown_02024C10
+_08025B10: .4byte gUnknown_02024C08
+_08025B14:
+ ldr r1, _08025B44 @ =gBattleMons
+ ldrb r3, [r6]
+ movs r0, 0x58
+ muls r0, r3
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r1, r0, 0
+ cmp r1, 0xF
+ beq _08025B2C
+ cmp r1, 0x48
+ bne _08025B50
+_08025B2C:
+ ldr r2, _08025B48 @ =byte_2024C06
+ strb r0, [r2]
+ ldr r1, _08025B4C @ =gUnknown_02024D1E
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ str r4, [r5]
+ ldrb r1, [r2]
+ adds r0, r3, 0
+ bl sub_81074C4
+ b _08025B56
+ .align 2, 0
+_08025B44: .4byte gBattleMons
+_08025B48: .4byte byte_2024C06
+_08025B4C: .4byte gUnknown_02024D1E
+_08025B50:
+ ldr r0, [r5]
+ adds r0, 0x5
+ str r0, [r5]
+_08025B56:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8025AE0
+
+ thumb_func_start sub_8025B5C
+sub_8025B5C: @ 8025B5C
+ push {r4,r5,lr}
+ ldr r5, _08025B84 @ =gUnknown_02024CA8
+ ldr r4, _08025B88 @ =gUnknown_02024C07
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r0, r5
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0x3
+ bne _08025B94
+ ldr r2, _08025B8C @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08025B90 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _08025BBE
+ .align 2, 0
+_08025B84: .4byte gUnknown_02024CA8
+_08025B88: .4byte gUnknown_02024C07
+_08025B8C: .4byte gUnknown_02024C68
+_08025B90: .4byte gUnknown_02024D1E
+_08025B94:
+ adds r0, 0x1
+ movs r3, 0
+ strb r0, [r1, 0x9]
+ ldr r2, _08025BCC @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r2]
+ movs r0, 0x1
+ strb r0, [r2, 0x1]
+ strb r0, [r2, 0x2]
+ strb r0, [r2, 0x3]
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x9]
+ strb r0, [r2, 0x4]
+ movs r0, 0xFF
+ strb r0, [r2, 0x5]
+ ldr r0, _08025BD0 @ =gUnknown_02024D1E
+ strb r3, [r0, 0x5]
+_08025BBE:
+ ldr r1, _08025BD4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025BCC: .4byte gUnknown_030041C0
+_08025BD0: .4byte gUnknown_02024D1E
+_08025BD4: .4byte gUnknown_02024C10
+ thumb_func_end sub_8025B5C
+
+ thumb_func_start atk86_stockpiletobasedamage
+atk86_stockpiletobasedamage: @ 8025BD8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ ldr r3, _08025C10 @ =gUnknown_02024C10
+ ldr r1, [r3]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r2, r0
+ ldr r7, _08025C14 @ =gUnknown_02024CA8
+ ldr r6, _08025C18 @ =gUnknown_02024C07
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0
+ bne _08025C1C
+ str r2, [r3]
+ b _08025CC2
+ .align 2, 0
+_08025C10: .4byte gUnknown_02024C10
+_08025C14: .4byte gUnknown_02024CA8
+_08025C18: .4byte gUnknown_02024C07
+_08025C1C:
+ ldr r0, _08025CD0 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x1
+ beq _08025CA8
+ ldr r0, _08025CD4 @ =gUnknown_02024BEC
+ mov r8, r0
+ ldr r4, _08025CD8 @ =gUnknown_02024C7A
+ ldr r5, _08025CDC @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ ldrb r0, [r6]
+ movs r4, 0x58
+ muls r0, r4
+ ldr r2, _08025CE0 @ =gBattleMons
+ adds r0, r2
+ ldrb r1, [r5]
+ muls r1, r4
+ adds r1, r2
+ ldr r2, _08025CE4 @ =gUnknown_02024BE6
+ ldrh r2, [r2]
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ ldrb r4, [r6]
+ str r4, [sp, 0x8]
+ ldrb r4, [r5]
+ str r4, [sp, 0xC]
+ bl CalculateBaseDamage
+ ldrb r2, [r6]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r7
+ ldrb r1, [r1, 0x9]
+ adds r3, r0, 0
+ muls r3, r1
+ mov r1, r8
+ str r3, [r1]
+ ldr r2, _08025CE8 @ =0x02000000
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrb r0, [r0, 0x9]
+ ldr r1, _08025CEC @ =0x00016002
+ adds r2, r1
+ strb r0, [r2]
+ ldr r1, _08025CF0 @ =gUnknown_02024D28
+ ldrb r0, [r6]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08025CA8
+ lsls r0, r3, 4
+ subs r0, r3
+ movs r1, 0xA
+ bl __divsi3
+ mov r1, r8
+ str r0, [r1]
+_08025CA8:
+ ldr r2, _08025CF4 @ =gUnknown_02024CA8
+ ldr r0, _08025CF8 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0, 0x9]
+ ldr r1, _08025CFC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08025CC2:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025CD0: .4byte gUnknown_02024D1E
+_08025CD4: .4byte gUnknown_02024BEC
+_08025CD8: .4byte gUnknown_02024C7A
+_08025CDC: .4byte gUnknown_02024C08
+_08025CE0: .4byte gBattleMons
+_08025CE4: .4byte gUnknown_02024BE6
+_08025CE8: .4byte 0x02000000
+_08025CEC: .4byte 0x00016002
+_08025CF0: .4byte gUnknown_02024D28
+_08025CF4: .4byte gUnknown_02024CA8
+_08025CF8: .4byte gUnknown_02024C07
+_08025CFC: .4byte gUnknown_02024C10
+ thumb_func_end atk86_stockpiletobasedamage
+
+ thumb_func_start sub_8025D00
+sub_8025D00: @ 8025D00
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r7, _08025D40 @ =gUnknown_02024C10
+ ldr r1, [r7]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r2, r0
+ ldr r0, _08025D44 @ =gUnknown_02024CA8
+ mov r8, r0
+ ldr r6, _08025D48 @ =gUnknown_02024C07
+ ldrb r3, [r6]
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ mov r1, r8
+ adds r4, r0, r1
+ ldrb r1, [r4, 0x9]
+ cmp r1, 0
+ bne _08025D50
+ str r2, [r7]
+ ldr r0, _08025D4C @ =gUnknown_02024D1E
+ strb r1, [r0, 0x5]
+ b _08025DD0
+ .align 2, 0
+_08025D40: .4byte gUnknown_02024C10
+_08025D44: .4byte gUnknown_02024CA8
+_08025D48: .4byte gUnknown_02024C07
+_08025D4C: .4byte gUnknown_02024D1E
+_08025D50:
+ ldr r1, _08025D74 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2C]
+ ldrh r3, [r1, 0x28]
+ cmp r0, r3
+ bne _08025D80
+ movs r0, 0
+ strb r0, [r4, 0x9]
+ str r2, [r7]
+ ldr r1, _08025D78 @ =gUnknown_02024C08
+ ldrb r0, [r6]
+ strb r0, [r1]
+ ldr r1, _08025D7C @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _08025DD0
+ .align 2, 0
+_08025D74: .4byte gBattleMons
+_08025D78: .4byte gUnknown_02024C08
+_08025D7C: .4byte gUnknown_02024D1E
+_08025D80:
+ ldr r5, _08025DDC @ =gUnknown_02024BEC
+ ldrh r0, [r1, 0x2C]
+ ldrb r1, [r4, 0x9]
+ movs r2, 0x3
+ subs r2, r1
+ movs r4, 0x1
+ adds r1, r4, 0
+ lsls r1, r2
+ bl __divsi3
+ str r0, [r5]
+ cmp r0, 0
+ bne _08025D9C
+ str r4, [r5]
+_08025D9C:
+ ldr r0, [r5]
+ negs r0, r0
+ str r0, [r5]
+ ldr r2, _08025DE0 @ =0x02000000
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrb r0, [r0, 0x9]
+ ldr r1, _08025DE4 @ =0x00016002
+ adds r2, r1
+ movs r3, 0
+ strb r0, [r2]
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r8
+ strb r3, [r0, 0x9]
+ ldr r0, [r7]
+ adds r0, 0x5
+ str r0, [r7]
+ ldr r1, _08025DE8 @ =gUnknown_02024C08
+ ldrb r0, [r6]
+ strb r0, [r1]
+_08025DD0:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025DDC: .4byte gUnknown_02024BEC
+_08025DE0: .4byte 0x02000000
+_08025DE4: .4byte 0x00016002
+_08025DE8: .4byte gUnknown_02024C08
+ thumb_func_end sub_8025D00
+
+ thumb_func_start atk88_negativedamage
+atk88_negativedamage: @ 8025DEC
+ push {lr}
+ ldr r2, _08025E14 @ =gUnknown_02024BEC
+ ldr r0, _08025E18 @ =gUnknown_02024BF0
+ ldr r0, [r0]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ negs r0, r0
+ str r0, [r2]
+ cmp r0, 0
+ bne _08025E08
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r2]
+_08025E08:
+ ldr r1, _08025E1C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025E14: .4byte gUnknown_02024BEC
+_08025E18: .4byte gUnknown_02024BF0
+_08025E1C: .4byte gUnknown_02024C10
+ thumb_func_end atk88_negativedamage
+
+ thumb_func_start sub_8025E20
+sub_8025E20: @ 8025E20
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ movs r0, 0
+ mov r9, r0
+ mov r10, r0
+ movs r0, 0x40
+ ands r0, r5
+ cmp r0, 0
+ beq _08025E54
+ ldr r0, _08025E4C @ =gUnknown_02024A60
+ ldr r1, _08025E50 @ =gUnknown_02024C07
+ b _08025E58
+ .align 2, 0
+_08025E4C: .4byte gUnknown_02024A60
+_08025E50: .4byte gUnknown_02024C07
+_08025E54:
+ ldr r0, _08025EF8 @ =gUnknown_02024A60
+ ldr r1, _08025EFC @ =gUnknown_02024C08
+_08025E58:
+ ldrb r1, [r1]
+ strb r1, [r0]
+ movs r0, 0xBF
+ ands r5, r0
+ movs r0, 0x80
+ ands r0, r5
+ cmp r0, 0
+ beq _08025E72
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08025E72:
+ movs r0, 0x7F
+ ands r5, r0
+ movs r0, 0x20
+ ands r0, r5
+ cmp r0, 0
+ beq _08025E88
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+_08025E88:
+ movs r0, 0xDF
+ ands r5, r0
+ ldr r1, _08025F00 @ =gUnknown_030041C0
+ movs r4, 0
+ movs r2, 0xFD
+ strb r2, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ strb r7, [r1, 0x2]
+ movs r3, 0x1
+ negs r3, r3
+ mov r12, r3
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ lsls r0, r6, 24
+ cmp r0, 0
+ blt _08025EAC
+ b _080261B0
+_08025EAC:
+ ldr r4, _08025F04 @ =gUnknown_02024C80
+ ldr r1, _08025EF8 @ =gUnknown_02024A60
+ ldrb r0, [r1]
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0
+ beq _08025F54
+ mov r2, r9
+ cmp r2, 0
+ bne _08025F54
+ ldr r0, _08025F08 @ =gUnknown_02024BE6
+ ldrh r0, [r0]
+ cmp r0, 0xAE
+ beq _08025F84
+ cmp r5, 0x1
+ bne _08025F74
+ ldr r4, _08025F0C @ =gUnknown_02024D68
+ ldr r3, _08025EF8 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08025F14
+ ldr r0, _08025F10 @ =gUnknown_02024C10
+ mov r4, r8
+ str r4, [r0]
+ b _08025F74
+ .align 2, 0
+_08025EF8: .4byte gUnknown_02024A60
+_08025EFC: .4byte gUnknown_02024C08
+_08025F00: .4byte gUnknown_030041C0
+_08025F04: .4byte gUnknown_02024C80
+_08025F08: .4byte gUnknown_02024BE6
+_08025F0C: .4byte gUnknown_02024D68
+_08025F10: .4byte gUnknown_02024C10
+_08025F14:
+ mov r0, r8
+ bl b_movescr_stack_push
+ ldr r0, _08025F40 @ =0x02000000
+ ldr r6, _08025F44 @ =gUnknown_02024A60
+ ldrb r1, [r6]
+ ldr r2, _08025F48 @ =0x00016003
+ adds r0, r2
+ strb r1, [r0]
+ ldr r1, _08025F4C @ =gUnknown_02024C10
+ ldr r0, _08025F50 @ =gUnknown_081D9128
+ str r0, [r1]
+ ldrb r1, [r6]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ b _08025F74
+ .align 2, 0
+_08025F40: .4byte 0x02000000
+_08025F44: .4byte gUnknown_02024A60
+_08025F48: .4byte 0x00016003
+_08025F4C: .4byte gUnknown_02024C10
+_08025F50: .4byte gUnknown_081D9128
+_08025F54:
+ ldr r0, _08025F78 @ =gUnknown_02024BE6
+ ldrh r0, [r0]
+ cmp r0, 0xAE
+ beq _08025F84
+ mov r3, r10
+ cmp r3, 0x1
+ beq _08025F84
+ movs r0, 0
+ bl sub_801C108
+ lsls r0, 24
+ cmp r0, 0
+ beq _08025F84
+ ldr r1, _08025F7C @ =gUnknown_02024C10
+ ldr r0, _08025F80 @ =BattleScript_1D83D6
+ str r0, [r1]
+_08025F74:
+ movs r0, 0x1
+ b _080262A4
+ .align 2, 0
+_08025F78: .4byte gUnknown_02024BE6
+_08025F7C: .4byte gUnknown_02024C10
+_08025F80: .4byte BattleScript_1D83D6
+_08025F84:
+ ldr r2, _08025FCC @ =gBattleMons
+ ldr r1, _08025FD0 @ =gUnknown_02024A60
+ ldrb r3, [r1]
+ movs r4, 0x58
+ adds r0, r3, 0
+ muls r0, r4
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ mov r10, r2
+ cmp r0, 0x1D
+ beq _08025FA0
+ cmp r0, 0x49
+ bne _08026040
+_08025FA0:
+ mov r0, r9
+ cmp r0, 0
+ bne _08026040
+ ldr r0, _08025FD4 @ =gUnknown_02024BE6
+ ldrh r0, [r0]
+ cmp r0, 0xAE
+ beq _08026040
+ cmp r5, 0x1
+ bne _08025F74
+ ldr r4, _08025FD8 @ =gUnknown_02024D68
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08025FE0
+ ldr r0, _08025FDC @ =gUnknown_02024C10
+ mov r1, r8
+ str r1, [r0]
+ b _08025F74
+ .align 2, 0
+_08025FCC: .4byte gBattleMons
+_08025FD0: .4byte gUnknown_02024A60
+_08025FD4: .4byte gUnknown_02024BE6
+_08025FD8: .4byte gUnknown_02024D68
+_08025FDC: .4byte gUnknown_02024C10
+_08025FE0:
+ mov r0, r8
+ bl b_movescr_stack_push
+ ldr r0, _08026028 @ =0x02000000
+ ldr r2, _0802602C @ =gUnknown_02024A60
+ ldrb r1, [r2]
+ ldr r3, _08026030 @ =0x00016003
+ adds r0, r3
+ strb r1, [r0]
+ ldr r1, _08026034 @ =gUnknown_02024C10
+ ldr r0, _08026038 @ =gUnknown_081D989B
+ str r0, [r1]
+ ldr r1, _0802603C @ =byte_2024C06
+ ldrb r0, [r2]
+ movs r6, 0x58
+ muls r0, r6
+ add r0, r10
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ bl sub_81074C4
+ ldr r0, _0802602C @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ b _08025F74
+ .align 2, 0
+_08026028: .4byte 0x02000000
+_0802602C: .4byte gUnknown_02024A60
+_08026030: .4byte 0x00016003
+_08026034: .4byte gUnknown_02024C10
+_08026038: .4byte gUnknown_081D989B
+_0802603C: .4byte byte_2024C06
+_08026040:
+ ldr r1, _08026090 @ =gUnknown_02024A60
+ ldrb r0, [r1]
+ movs r4, 0x58
+ muls r0, r4
+ add r0, r10
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x33
+ bne _080260A8
+ mov r2, r9
+ cmp r2, 0
+ bne _080260A8
+ cmp r7, 0x6
+ bne _080260A8
+ cmp r5, 0x1
+ bne _08025F74
+ mov r0, r8
+ bl b_movescr_stack_push
+ ldr r0, _08026094 @ =0x02000000
+ ldr r3, _08026090 @ =gUnknown_02024A60
+ ldrb r1, [r3]
+ ldr r6, _08026098 @ =0x00016003
+ adds r0, r6
+ strb r1, [r0]
+ ldr r1, _0802609C @ =gUnknown_02024C10
+ ldr r0, _080260A0 @ =gUnknown_081D9903
+ str r0, [r1]
+ ldr r1, _080260A4 @ =byte_2024C06
+ ldrb r0, [r3]
+ muls r0, r4
+ add r0, r10
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r3]
+ ldrb r1, [r1]
+ bl sub_81074C4
+ b _08025F74
+ .align 2, 0
+_08026090: .4byte gUnknown_02024A60
+_08026094: .4byte 0x02000000
+_08026098: .4byte 0x00016003
+_0802609C: .4byte gUnknown_02024C10
+_080260A0: .4byte gUnknown_081D9903
+_080260A4: .4byte byte_2024C06
+_080260A8:
+ ldr r1, _080260FC @ =gUnknown_02024A60
+ ldrb r0, [r1]
+ movs r4, 0x58
+ muls r0, r4
+ add r0, r10
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x34
+ bne _08026114
+ mov r2, r9
+ cmp r2, 0
+ bne _08026114
+ cmp r7, 0x1
+ bne _08026114
+ cmp r5, 0x1
+ beq _080260CA
+ b _08025F74
+_080260CA:
+ mov r0, r8
+ bl b_movescr_stack_push
+ ldr r0, _08026100 @ =0x02000000
+ ldr r3, _080260FC @ =gUnknown_02024A60
+ ldrb r1, [r3]
+ ldr r6, _08026104 @ =0x00016003
+ adds r0, r6
+ strb r1, [r0]
+ ldr r1, _08026108 @ =gUnknown_02024C10
+ ldr r0, _0802610C @ =gUnknown_081D9903
+ str r0, [r1]
+ ldr r1, _08026110 @ =byte_2024C06
+ ldrb r0, [r3]
+ muls r0, r4
+ add r0, r10
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r3]
+ ldrb r1, [r1]
+ bl sub_81074C4
+ b _08025F74
+ .align 2, 0
+_080260FC: .4byte gUnknown_02024A60
+_08026100: .4byte 0x02000000
+_08026104: .4byte 0x00016003
+_08026108: .4byte gUnknown_02024C10
+_0802610C: .4byte gUnknown_081D9903
+_08026110: .4byte byte_2024C06
+_08026114:
+ ldr r0, _080261A0 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r10
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x13
+ bne _0802612C
+ cmp r5, 0
+ bne _0802612C
+ b _08025F74
+_0802612C:
+ lsls r0, r6, 24
+ asrs r0, 28
+ movs r1, 0x7
+ ands r0, r1
+ negs r0, r0
+ lsls r0, 24
+ ldr r3, _080261A4 @ =gUnknown_03004290
+ movs r4, 0
+ movs r1, 0xFD
+ strb r1, [r3]
+ movs r2, 0x1
+ lsrs r6, r0, 24
+ asrs r0, 24
+ subs r1, 0xFF
+ cmp r0, r1
+ bne _08026156
+ strb r4, [r3, 0x1]
+ movs r0, 0xD3
+ strb r0, [r3, 0x2]
+ strb r4, [r3, 0x3]
+ movs r2, 0x4
+_08026156:
+ adds r0, r2, r3
+ strb r4, [r0]
+ adds r2, 0x1
+ adds r1, r2, r3
+ movs r0, 0xD4
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r0, r2, r3
+ strb r4, [r0]
+ adds r2, 0x1
+ adds r1, r2, r3
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, _080261A0 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r7, r0
+ mov r1, r10
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _08026206
+ movs r1, 0
+ ldr r0, _080261A8 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ ldr r3, _080261AC @ =gUnknown_02024D1E
+ mov r8, r3
+ cmp r0, r2
+ bne _0802619A
+ movs r1, 0x1
+_0802619A:
+ mov r4, r8
+ strb r1, [r4, 0x5]
+ b _08026234
+ .align 2, 0
+_080261A0: .4byte gUnknown_02024A60
+_080261A4: .4byte gUnknown_03004290
+_080261A8: .4byte gUnknown_02024C08
+_080261AC: .4byte gUnknown_02024D1E
+_080261B0:
+ asrs r6, r0, 28
+ movs r0, 0x7
+ ands r6, r0
+ ldr r3, _08026210 @ =gUnknown_03004290
+ strb r2, [r3]
+ movs r2, 0x1
+ cmp r6, 0x2
+ bne _080261CA
+ strb r4, [r3, 0x1]
+ movs r0, 0xD1
+ strb r0, [r3, 0x2]
+ strb r4, [r3, 0x3]
+ movs r2, 0x4
+_080261CA:
+ adds r0, r2, r3
+ strb r4, [r0]
+ adds r2, 0x1
+ adds r1, r2, r3
+ movs r0, 0xD2
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r0, r2, r3
+ strb r4, [r0]
+ adds r2, 0x1
+ adds r1, r2, r3
+ ldrb r0, [r1]
+ mov r2, r12
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r2, _08026214 @ =gBattleMons
+ ldr r4, _08026218 @ =gUnknown_02024A60
+ ldrb r3, [r4]
+ movs r0, 0x58
+ muls r0, r3
+ adds r0, r7, r0
+ adds r1, r2, 0
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ mov r10, r2
+ cmp r0, 0xC
+ bne _08026220
+_08026206:
+ ldr r1, _0802621C @ =gUnknown_02024D1E
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ mov r8, r1
+ b _08026234
+ .align 2, 0
+_08026210: .4byte gUnknown_03004290
+_08026214: .4byte gBattleMons
+_08026218: .4byte gUnknown_02024A60
+_0802621C: .4byte gUnknown_02024D1E
+_08026220:
+ movs r1, 0
+ ldr r0, _080262B4 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ ldr r2, _080262B8 @ =gUnknown_02024D1E
+ mov r8, r2
+ cmp r0, r3
+ bne _08026230
+ movs r1, 0x1
+_08026230:
+ mov r3, r8
+ strb r1, [r3, 0x5]
+_08026234:
+ ldr r2, _080262BC @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ movs r4, 0x58
+ adds r1, r0, 0
+ muls r1, r4
+ adds r1, r7, r1
+ mov r3, r10
+ adds r3, 0x18
+ adds r1, r3
+ lsls r0, r6, 24
+ asrs r0, 24
+ ldrb r6, [r1]
+ adds r0, r6
+ strb r0, [r1]
+ ldrb r0, [r2]
+ muls r0, r4
+ adds r0, r7, r0
+ adds r1, r0, r3
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bge _08026264
+ movs r0, 0
+ strb r0, [r1]
+_08026264:
+ ldr r1, _080262BC @ =gUnknown_02024A60
+ ldrb r0, [r1]
+ muls r0, r4
+ adds r0, r7, r0
+ adds r1, r0, r3
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xC
+ ble _0802627A
+ movs r0, 0xC
+ strb r0, [r1]
+_0802627A:
+ mov r2, r8
+ ldrb r0, [r2, 0x5]
+ cmp r0, 0x2
+ bne _080262A2
+ movs r3, 0x1
+ ands r3, r5
+ cmp r3, 0
+ beq _08026294
+ ldr r0, _080262C0 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+_08026294:
+ mov r4, r8
+ ldrb r0, [r4, 0x5]
+ cmp r0, 0x2
+ bne _080262A2
+ cmp r3, 0
+ bne _080262A2
+ b _08025F74
+_080262A2:
+ movs r0, 0
+_080262A4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080262B4: .4byte gUnknown_02024C08
+_080262B8: .4byte gUnknown_02024D1E
+_080262BC: .4byte gUnknown_02024A60
+_080262C0: .4byte gUnknown_02024C68
+ thumb_func_end sub_8025E20
+
+ thumb_func_start atk89_statbuffchange
+atk89_statbuffchange: @ 80262C4
+ push {r4,r5,lr}
+ ldr r5, _0802630C @ =gUnknown_02024C10
+ ldr r2, [r5]
+ ldrb r3, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r3, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r3, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r3, r0
+ ldr r0, _08026310 @ =0x02000000
+ ldr r1, _08026314 @ =0x0001601e
+ adds r0, r1
+ ldrb r4, [r0]
+ movs r0, 0xF0
+ ands r0, r4
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0xF
+ ands r1, r4
+ ldrb r2, [r2, 0x1]
+ bl sub_8025E20
+ lsls r0, 24
+ cmp r0, 0
+ bne _08026304
+ ldr r0, [r5]
+ adds r0, 0x6
+ str r0, [r5]
+_08026304:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802630C: .4byte gUnknown_02024C10
+_08026310: .4byte 0x02000000
+_08026314: .4byte 0x0001601e
+ thumb_func_end atk89_statbuffchange
+
+ thumb_func_start atk8A_normalisebuffs
+atk8A_normalisebuffs: @ 8026318
+ push {r4-r7,lr}
+ movs r2, 0
+ ldr r0, _08026360 @ =gUnknown_02024A68
+ ldrb r1, [r0]
+ ldr r0, _08026364 @ =gUnknown_02024C10
+ mov r12, r0
+ cmp r2, r1
+ bge _08026350
+ ldr r0, _08026368 @ =gBattleMons
+ movs r4, 0x6
+ adds r5, r1, 0
+ movs r7, 0x58
+ adds r6, r0, 0
+ adds r6, 0x18
+_08026334:
+ adds r3, r2, 0x1
+ movs r1, 0x7
+ adds r0, r2, 0
+ muls r0, r7
+ adds r0, r6
+ adds r0, 0x7
+_08026340:
+ strb r4, [r0]
+ subs r0, 0x1
+ subs r1, 0x1
+ cmp r1, 0
+ bge _08026340
+ adds r2, r3, 0
+ cmp r2, r5
+ blt _08026334
+_08026350:
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026360: .4byte gUnknown_02024A68
+_08026364: .4byte gUnknown_02024C10
+_08026368: .4byte gBattleMons
+ thumb_func_end atk8A_normalisebuffs
+
+ thumb_func_start atk8B_setbide
+atk8B_setbide: @ 802636C
+ push {r4,r5,lr}
+ ldr r4, _080263C4 @ =gBattleMons
+ ldr r3, _080263C8 @ =gUnknown_02024C07
+ ldrb r0, [r3]
+ movs r5, 0x58
+ adds r2, r0, 0
+ muls r2, r5
+ adds r4, 0x50
+ adds r2, r4
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 5
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _080263CC @ =gUnknown_02024C54
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ ldr r1, _080263D0 @ =gUnknown_02024BE6
+ ldrh r1, [r1]
+ movs r2, 0
+ strh r1, [r0]
+ ldr r1, _080263D4 @ =gUnknown_02024BF4
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ str r2, [r0]
+ ldrb r0, [r3]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r4
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 2
+ orrs r0, r2
+ str r0, [r1]
+ ldr r1, _080263D8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080263C4: .4byte gBattleMons
+_080263C8: .4byte gUnknown_02024C07
+_080263CC: .4byte gUnknown_02024C54
+_080263D0: .4byte gUnknown_02024BE6
+_080263D4: .4byte gUnknown_02024BF4
+_080263D8: .4byte gUnknown_02024C10
+ thumb_func_end atk8B_setbide
+
+ thumb_func_start atk8C_confuseifrepeatingattackends
+atk8C_confuseifrepeatingattackends: @ 80263DC
+ push {lr}
+ ldr r1, _0802640C @ =gBattleMons
+ ldr r0, _08026410 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xC0
+ lsls r1, 4
+ ands r0, r1
+ cmp r0, 0
+ bne _080263FE
+ ldr r1, _08026414 @ =gUnknown_02024D1E
+ movs r0, 0x75
+ strb r0, [r1, 0x3]
+_080263FE:
+ ldr r1, _08026418 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802640C: .4byte gBattleMons
+_08026410: .4byte gUnknown_02024C07
+_08026414: .4byte gUnknown_02024D1E
+_08026418: .4byte gUnknown_02024C10
+ thumb_func_end atk8C_confuseifrepeatingattackends
+
+ thumb_func_start atk8D_setloopcounter
+atk8D_setloopcounter: @ 802641C
+ push {r4,r5,lr}
+ ldr r0, _08026430 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x1]
+ cmp r1, 0
+ beq _08026438
+ ldr r0, _08026434 @ =gUnknown_02024C0E
+ strb r1, [r0]
+ b _08026452
+ .align 2, 0
+_08026430: .4byte gUnknown_02024C10
+_08026434: .4byte gUnknown_02024C0E
+_08026438:
+ ldr r4, _08026460 @ =gUnknown_02024C0E
+ bl Random
+ movs r5, 0x3
+ ands r0, r5
+ strb r0, [r4]
+ cmp r0, 0x1
+ bls _0802644E
+ bl Random
+ ands r0, r5
+_0802644E:
+ adds r0, 0x2
+ strb r0, [r4]
+_08026452:
+ ldr r1, _08026464 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026460: .4byte gUnknown_02024C0E
+_08026464: .4byte gUnknown_02024C10
+ thumb_func_end atk8D_setloopcounter
+
+ thumb_func_start sub_8026468
+sub_8026468: @ 8026468
+ push {r4,lr}
+ ldr r1, _080264A8 @ =0x02000000
+ ldr r0, _080264AC @ =0x000160e0
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0xFD
+ strb r0, [r2]
+ ldr r2, _080264B0 @ =0x000160e1
+ adds r0, r1, r2
+ movs r2, 0x1
+ strb r2, [r0]
+ ldr r4, _080264B4 @ =0x000160e2
+ adds r0, r1, r4
+ strb r2, [r0]
+ adds r4, 0x1
+ adds r0, r1, r4
+ strb r2, [r0]
+ ldr r2, _080264B8 @ =0x000160e4
+ adds r0, r1, r2
+ strb r3, [r0]
+ adds r4, 0x2
+ adds r1, r4
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, _080264BC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080264A8: .4byte 0x02000000
+_080264AC: .4byte 0x000160e0
+_080264B0: .4byte 0x000160e1
+_080264B4: .4byte 0x000160e2
+_080264B8: .4byte 0x000160e4
+_080264BC: .4byte gUnknown_02024C10
+ thumb_func_end sub_8026468
+
+ thumb_func_start sub_80264C0
+sub_80264C0: @ 80264C0
+ push {r4-r7,lr}
+ ldr r6, _080264F4 @ =gBattleMons
+ ldr r7, _080264F8 @ =gUnknown_02024C07
+ ldrb r0, [r7]
+ movs r5, 0x58
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r6
+ adds r1, 0x2A
+ ldr r4, _080264FC @ =gUnknown_02024C08
+ ldrb r3, [r4]
+ adds r0, r3, 0
+ muls r0, r5
+ adds r0, r6
+ adds r0, 0x2A
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcc _0802650C
+ ldr r0, _08026500 @ =0x02000000
+ ldr r2, _08026504 @ =0x00016064
+ adds r1, r3, r2
+ adds r1, r0
+ ldr r2, _08026508 @ =gUnknown_02024A6A
+ lsls r0, r3, 1
+ b _08026568
+ .align 2, 0
+_080264F4: .4byte gBattleMons
+_080264F8: .4byte gUnknown_02024C07
+_080264FC: .4byte gUnknown_02024C08
+_08026500: .4byte 0x02000000
+_08026504: .4byte 0x00016064
+_08026508: .4byte gUnknown_02024A6A
+_0802650C:
+ bl Random
+ movs r3, 0xFF
+ ands r3, r0
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r6
+ adds r0, 0x2A
+ ldrb r2, [r0]
+ ldrb r4, [r4]
+ adds r0, r4, 0
+ muls r0, r5
+ adds r0, r6
+ adds r0, 0x2A
+ ldrb r1, [r0]
+ adds r2, r1
+ adds r0, r3, 0
+ muls r0, r2
+ asrs r0, 8
+ adds r0, 0x1
+ lsrs r1, 2
+ cmp r0, r1
+ bhi _0802655C
+ ldr r3, _08026558 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ movs r0, 0
+ b _08026576
+ .align 2, 0
+_08026558: .4byte gUnknown_02024C10
+_0802655C:
+ ldr r0, _0802657C @ =0x02000000
+ ldr r2, _08026580 @ =0x00016064
+ adds r1, r4, r2
+ adds r1, r0
+ ldr r2, _08026584 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+_08026568:
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldr r1, _08026588 @ =gUnknown_02024C10
+ ldr r0, _0802658C @ =gUnknown_081D90FC
+ str r0, [r1]
+ movs r0, 0x1
+_08026576:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0802657C: .4byte 0x02000000
+_08026580: .4byte 0x00016064
+_08026584: .4byte gUnknown_02024A6A
+_08026588: .4byte gUnknown_02024C10
+_0802658C: .4byte gUnknown_081D90FC
+ thumb_func_end sub_80264C0
+
+ thumb_func_start sub_8026590
+sub_8026590: @ 8026590
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, _08026628 @ =gUnknown_020239F8
+ ldrh r1, [r4]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _080265A4
+ b _0802687C
+_080265A4:
+ ldr r5, _0802662C @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r1, _08026630 @ =gEnemyParty
+ mov r8, r1
+ cmp r0, 0
+ bne _080265BA
+ ldr r2, _08026634 @ =gPlayerParty
+ mov r8, r2
+_080265BA:
+ ldrh r1, [r4]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08026638
+ movs r7, 0
+ movs r6, 0
+ ldrb r0, [r5]
+ bl sub_803FC34
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_803FBFC
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bne _080265E0
+ movs r6, 0x3
+_080265E0:
+ adds r5, r6, 0
+ adds r0, r5, 0x3
+ cmp r5, r0
+ bge _08026678
+_080265E8:
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0802661A
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0802661A
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0802661A
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_0802661A:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r6, 0x3
+ cmp r5, r0
+ blt _080265E8
+ b _08026678
+ .align 2, 0
+_08026628: .4byte gUnknown_020239F8
+_0802662C: .4byte gUnknown_02024C08
+_08026630: .4byte gEnemyParty
+_08026634: .4byte gPlayerParty
+_08026638:
+ movs r7, 0
+ movs r5, 0
+_0802663C:
+ movs r0, 0x64
+ muls r0, r5
+ mov r2, r8
+ adds r4, r2, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0802666E
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0802666E
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0802666E
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_0802666E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _0802663C
+_08026678:
+ cmp r7, 0x1
+ bhi _08026688
+ ldr r0, _080266BC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x41
+ ands r0, r1
+ cmp r0, 0x1
+ bne _080266A0
+_08026688:
+ cmp r7, 0x2
+ bhi _080266C4
+ ldr r0, _080266BC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080266C4
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080266C4
+_080266A0:
+ ldr r3, _080266C0 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08026880
+ .align 2, 0
+_080266BC: .4byte gUnknown_020239F8
+_080266C0: .4byte gUnknown_02024C10
+_080266C4:
+ bl sub_80264C0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080266D0
+ b _08026880
+_080266D0:
+ ldr r0, _08026710 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08026774
+_080266DC:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _08026714 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ bl sub_803FC34
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_803FBFC
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bne _08026718
+ adds r0, r6, 0x3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _0802671A
+ .align 2, 0
+_08026710: .4byte gUnknown_020239F8
+_08026714: .4byte gUnknown_02024C08
+_08026718:
+ adds r5, r6, 0
+_0802671A:
+ ldr r4, _0802676C @ =gUnknown_02024A6A
+ ldr r0, _08026770 @ =gUnknown_02024C08
+ ldrb r2, [r0]
+ lsls r1, r2, 1
+ adds r1, r4
+ lsls r0, r5, 16
+ lsrs r3, r0, 16
+ ldrh r1, [r1]
+ cmp r3, r1
+ beq _080266DC
+ movs r0, 0x2
+ eors r2, r0
+ lsls r0, r2, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r3, r0
+ beq _080266DC
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080266DC
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0x1
+ beq _080266DC
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080266DC
+ b _08026832
+ .align 2, 0
+_0802676C: .4byte gUnknown_02024A6A
+_08026770: .4byte gUnknown_02024C08
+_08026774:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080267E4
+ ldr r6, _080267DC @ =gUnknown_02024A6A
+_0802677E:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080267E0 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r6
+ adds r2, r5, 0
+ ldrh r0, [r0]
+ cmp r2, r0
+ beq _0802677E
+ movs r0, 0x2
+ eors r1, r0
+ lsls r0, r1, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ cmp r2, r0
+ beq _0802677E
+ movs r0, 0x64
+ muls r0, r5
+ mov r2, r8
+ adds r4, r2, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0802677E
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0x1
+ beq _0802677E
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0802677E
+ b _08026832
+ .align 2, 0
+_080267DC: .4byte gUnknown_02024A6A
+_080267E0: .4byte gUnknown_02024C08
+_080267E4:
+ ldr r6, _0802686C @ =gUnknown_02024A6A
+_080267E6:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _08026870 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _080267E6
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080267E6
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0x1
+ beq _080267E6
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080267E6
+_08026832:
+ ldr r0, _08026874 @ =0x02000000
+ ldr r4, _08026870 @ =gUnknown_02024C08
+ ldrb r1, [r4]
+ ldr r2, _08026878 @ =0x00016068
+ adds r1, r2
+ adds r1, r0
+ strb r5, [r1]
+ bl sub_806B528
+ lsls r0, 24
+ cmp r0, 0
+ bne _08026850
+ ldrb r0, [r4]
+ bl sub_8012258
+_08026850:
+ ldrb r0, [r4]
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_8094B6C
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl sub_8094B6C
+ b _08026880
+ .align 2, 0
+_0802686C: .4byte gUnknown_02024A6A
+_08026870: .4byte gUnknown_02024C08
+_08026874: .4byte 0x02000000
+_08026878: .4byte 0x00016068
+_0802687C:
+ bl sub_80264C0
+_08026880:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8026590
+
+ thumb_func_start sub_802688C
+sub_802688C: @ 802688C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r6, 0
+ ldr r2, _08026920 @ =gBattleMons
+ ldr r3, _08026924 @ =gUnknown_02024C07
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r2, 0
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r0, [r0]
+ mov r8, r2
+ cmp r0, 0
+ beq _080268CE
+ movs r5, 0x58
+ adds r2, r1, 0
+_080268B4:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bhi _080268CE
+ lsls r1, r6, 1
+ ldrb r0, [r3]
+ muls r0, r5
+ adds r1, r0
+ adds r1, r2
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _080268B4
+_080268CE:
+ movs r3, 0
+ cmp r3, r6
+ bcs _08026950
+ ldr r0, _08026928 @ =gBattleMoves
+ mov r10, r0
+ ldr r5, _08026920 @ =gBattleMons
+ mov r12, r5
+ ldr r7, _08026924 @ =gUnknown_02024C07
+ ldrb r0, [r7]
+ movs r4, 0x58
+ adds r5, r0, 0
+ muls r5, r4
+ movs r0, 0xC
+ add r0, r12
+ mov r9, r0
+_080268EC:
+ lsls r0, r3, 1
+ adds r0, r5
+ add r0, r9
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ add r0, r10
+ ldrb r2, [r0, 0x2]
+ cmp r2, 0x9
+ bne _0802692E
+ mov r0, r8
+ adds r1, r5, r0
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ beq _0802691A
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bne _0802692C
+_0802691A:
+ movs r2, 0x7
+ b _0802692E
+ .align 2, 0
+_08026920: .4byte gBattleMons
+_08026924: .4byte gUnknown_02024C07
+_08026928: .4byte gBattleMoves
+_0802692C:
+ movs r2, 0
+_0802692E:
+ ldrb r0, [r7]
+ muls r0, r4
+ add r0, r12
+ adds r1, r0, 0
+ adds r1, 0x21
+ ldrb r1, [r1]
+ cmp r2, r1
+ beq _08026946
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r2, r0
+ bne _08026950
+_08026946:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r6
+ bcc _080268EC
+_08026950:
+ cmp r3, r6
+ bne _08026974
+ ldr r3, _08026970 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08026A18
+ .align 2, 0
+_08026970: .4byte gUnknown_02024C10
+_08026974:
+ movs r7, 0x3
+ ldr r5, _080269CC @ =gBattleMoves
+ mov r9, r5
+_0802697A:
+ bl Random
+ adds r3, r0, 0
+ ands r3, r7
+ cmp r3, r6
+ bcs _0802697A
+ ldr r4, _080269D0 @ =gBattleMons
+ lsls r1, r3, 1
+ ldr r3, _080269D4 @ =gUnknown_02024C07
+ ldrb r2, [r3]
+ movs r0, 0x58
+ adds r5, r2, 0
+ muls r5, r0
+ adds r1, r5
+ adds r0, r4, 0
+ adds r0, 0xC
+ adds r1, r0
+ ldrh r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrb r2, [r0, 0x2]
+ mov r8, r4
+ adds r4, r3, 0
+ cmp r2, 0x9
+ bne _080269DA
+ mov r0, r8
+ adds r2, r5, r0
+ adds r0, r2, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ beq _080269C8
+ adds r0, r2, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bne _080269D8
+_080269C8:
+ movs r2, 0x7
+ b _080269DA
+ .align 2, 0
+_080269CC: .4byte gBattleMoves
+_080269D0: .4byte gBattleMons
+_080269D4: .4byte gUnknown_02024C07
+_080269D8:
+ movs r2, 0
+_080269DA:
+ ldrb r0, [r4]
+ movs r3, 0x58
+ muls r0, r3
+ add r0, r8
+ adds r1, r0, 0
+ adds r1, 0x21
+ ldrb r5, [r1]
+ cmp r2, r5
+ beq _0802697A
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r2, r0
+ beq _0802697A
+ strb r2, [r1]
+ ldrb r0, [r4]
+ muls r0, r3
+ add r0, r8
+ adds r0, 0x22
+ strb r2, [r0]
+ ldr r1, _08026A28 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x3
+ strb r0, [r1, 0x1]
+ strb r2, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r1, _08026A2C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08026A18:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026A28: .4byte gUnknown_030041C0
+_08026A2C: .4byte gUnknown_02024C10
+ thumb_func_end sub_802688C
+
+ thumb_func_start atk91_givemoney
+atk91_givemoney: @ 8026A30
+ push {r4,lr}
+ ldr r0, _08026A8C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08026AAC
+ ldr r4, _08026A90 @ =gUnknown_02024D1A
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _08026AAC
+ ldr r0, _08026A94 @ =gSaveBlock1 + 0x490
+ ldrh r2, [r4]
+ ldr r1, _08026A98 @ =0x02000000
+ ldr r3, _08026A9C @ =0x00016056
+ adds r1, r3
+ ldrb r1, [r1]
+ muls r1, r2
+ bl sub_80B79B8
+ ldr r1, _08026AA0 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0x5
+ strb r0, [r1, 0x3]
+ ldrh r2, [r4]
+ strb r2, [r1, 0x4]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r2
+ lsrs r0, 8
+ strb r0, [r1, 0x5]
+ movs r0, 0xFF
+ strb r0, [r1, 0x6]
+ ldr r4, _08026AA4 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _08026AA8 @ =gUnknown_081D95DB
+ str r0, [r4]
+ b _08026AB4
+ .align 2, 0
+_08026A8C: .4byte gUnknown_020239F8
+_08026A90: .4byte gUnknown_02024D1A
+_08026A94: .4byte gSaveBlock1 + 0x490
+_08026A98: .4byte 0x02000000
+_08026A9C: .4byte 0x00016056
+_08026AA0: .4byte gUnknown_030041C0
+_08026AA4: .4byte gUnknown_02024C10
+_08026AA8: .4byte gUnknown_081D95DB
+_08026AAC:
+ ldr r1, _08026ABC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_08026AB4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026ABC: .4byte gUnknown_02024C10
+ thumb_func_end atk91_givemoney
+
+ thumb_func_start atk92_setlightscreen
+atk92_setlightscreen: @ 8026AC0
+ push {r4-r6,lr}
+ ldr r4, _08026AF0 @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ ldr r6, _08026AF4 @ =gUnknown_02024C7A
+ movs r5, 0x1
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r6
+ ldrh r1, [r1]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08026B00
+ ldr r2, _08026AF8 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08026AFC @ =gUnknown_02024D1E
+ movs r0, 0
+ b _08026B60
+ .align 2, 0
+_08026AF0: .4byte gUnknown_02024C07
+_08026AF4: .4byte gUnknown_02024C7A
+_08026AF8: .4byte gUnknown_02024C68
+_08026AFC: .4byte gUnknown_02024D1E
+_08026B00:
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r6
+ ldrh r0, [r1]
+ movs r2, 0x2
+ orrs r0, r2
+ strh r0, [r1]
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ ldr r2, _08026B50 @ =gUnknown_02024C80
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x5
+ strb r1, [r0, 0x1]
+ ldr r0, _08026B54 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08026B5C
+ movs r0, 0x1
+ bl sub_803C348
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08026B5C
+ ldr r1, _08026B58 @ =gUnknown_02024D1E
+ movs r0, 0x4
+ b _08026B60
+ .align 2, 0
+_08026B50: .4byte gUnknown_02024C80
+_08026B54: .4byte gUnknown_020239F8
+_08026B58: .4byte gUnknown_02024D1E
+_08026B5C:
+ ldr r1, _08026B70 @ =gUnknown_02024D1E
+ movs r0, 0x3
+_08026B60:
+ strb r0, [r1, 0x5]
+ ldr r1, _08026B74 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026B70: .4byte gUnknown_02024D1E
+_08026B74: .4byte gUnknown_02024C10
+ thumb_func_end atk92_setlightscreen
+
+ thumb_func_start sub_8026B78
+sub_8026B78: @ 8026B78
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r7, _08026BA8 @ =gBattleMons
+ ldr r6, _08026BAC @ =gUnknown_02024C08
+ ldrb r2, [r6]
+ movs r5, 0x58
+ adds r0, r2, 0
+ muls r0, r5
+ adds r1, r0, r7
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _08026BB4
+ ldr r1, _08026BB0 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x7]
+ ldrb r6, [r0, 0x1A]
+ b _08026BCE
+ .align 2, 0
+_08026BA8: .4byte gBattleMons
+_08026BAC: .4byte gUnknown_02024C08
+_08026BB0: .4byte gEnigmaBerries
+_08026BB4:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r7
+ ldrh r0, [r0, 0x2E]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08026BCE:
+ ldr r1, _08026C4C @ =gUnknown_02024C0B
+ ldr r5, _08026C50 @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ strb r0, [r1]
+ cmp r4, 0x27
+ bne _08026C0C
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r6
+ bcs _08026C0C
+ ldrb r0, [r5]
+ movs r1, 0x27
+ bl sub_81074F8
+ ldr r2, _08026C54 @ =gUnknown_02024D68
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+_08026C0C:
+ ldr r0, _08026C58 @ =gBattleMons
+ mov r8, r0
+ ldr r1, _08026C50 @ =gUnknown_02024C08
+ ldrb r2, [r1]
+ movs r6, 0x58
+ adds r0, r2, 0
+ muls r0, r6
+ mov r3, r8
+ adds r5, r0, r3
+ adds r0, r5, 0
+ adds r0, 0x20
+ ldrb r3, [r0]
+ mov r10, r8
+ cmp r3, 0x5
+ bne _08026C6C
+ ldr r2, _08026C5C @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _08026C60 @ =byte_2024C06
+ strb r3, [r0]
+ ldr r1, _08026C64 @ =gUnknown_02024C10
+ ldr r0, _08026C68 @ =gUnknown_081D9826
+ str r0, [r1]
+ ldr r1, _08026C50 @ =gUnknown_02024C08
+ ldrb r0, [r1]
+ movs r1, 0x5
+ bl sub_81074C4
+ b _08026E40
+ .align 2, 0
+_08026C4C: .4byte gUnknown_02024C0B
+_08026C50: .4byte gUnknown_02024C08
+_08026C54: .4byte gUnknown_02024D68
+_08026C58: .4byte gBattleMons
+_08026C5C: .4byte gUnknown_02024C68
+_08026C60: .4byte byte_2024C06
+_08026C64: .4byte gUnknown_02024C10
+_08026C68: .4byte gUnknown_081D9826
+_08026C6C:
+ ldr r1, _08026CE0 @ =gUnknown_02024C98
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x18
+ ands r0, r1
+ cmp r0, 0
+ bne _08026CF4
+ ldr r1, _08026CE4 @ =gBattleMoves
+ ldr r0, _08026CE8 @ =gUnknown_02024BE6
+ ldrh r0, [r0]
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ ldr r7, _08026CEC @ =gUnknown_02024C07
+ ldrb r0, [r7]
+ muls r0, r6
+ add r0, r10
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ adds r1, r5, 0
+ adds r1, 0x2A
+ ldrb r1, [r1]
+ subs r0, r1
+ ldrb r2, [r2, 0x3]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r0, 0x1
+ cmp r0, r4
+ bge _08026CDC
+ ldrb r0, [r7]
+ adds r1, r0, 0
+ muls r1, r6
+ add r1, r10
+ adds r1, 0x2A
+ ldr r2, _08026CF0 @ =gUnknown_02024C08
+ ldrb r0, [r2]
+ muls r0, r6
+ add r0, r10
+ adds r0, 0x2A
+ ldrb r1, [r1]
+ movs r4, 0x1
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _08026D20
+_08026CDC:
+ mov r10, r8
+ b _08026DE0
+ .align 2, 0
+_08026CE0: .4byte gUnknown_02024C98
+_08026CE4: .4byte gBattleMoves
+_08026CE8: .4byte gUnknown_02024BE6
+_08026CEC: .4byte gUnknown_02024C07
+_08026CF0: .4byte gUnknown_02024C08
+_08026CF4:
+ ldr r0, _08026D4C @ =gUnknown_02024CA8
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldr r2, _08026D50 @ =gUnknown_02024C07
+ ldrb r0, [r1, 0x15]
+ movs r4, 0
+ ldrb r3, [r2]
+ cmp r0, r3
+ bne _08026D20
+ ldrb r0, [r2]
+ muls r0, r6
+ add r0, r10
+ adds r0, 0x2A
+ adds r1, r5, 0
+ adds r1, 0x2A
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08026D20
+ movs r4, 0x1
+_08026D20:
+ cmp r4, 0
+ beq _08026DE0
+ ldr r0, _08026D54 @ =gUnknown_02024D28
+ ldr r1, _08026D58 @ =gUnknown_02024C08
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 30
+ cmp r0, 0
+ bge _08026D64
+ ldr r1, _08026D5C @ =gUnknown_02024BEC
+ movs r0, 0x58
+ muls r0, r2
+ add r0, r10
+ ldrh r0, [r0, 0x28]
+ subs r0, 0x1
+ str r0, [r1]
+ ldr r2, _08026D60 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x40
+ b _08026DC6
+ .align 2, 0
+_08026D4C: .4byte gUnknown_02024CA8
+_08026D50: .4byte gUnknown_02024C07
+_08026D54: .4byte gUnknown_02024D28
+_08026D58: .4byte gUnknown_02024C08
+_08026D5C: .4byte gUnknown_02024BEC
+_08026D60: .4byte gUnknown_02024C68
+_08026D64:
+ ldr r0, _08026DA0 @ =gUnknown_02024D68
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _08026DB4
+ ldr r1, _08026DA4 @ =gUnknown_02024BEC
+ movs r3, 0x58
+ adds r0, r2, 0
+ muls r0, r3
+ add r0, r10
+ ldrh r0, [r0, 0x28]
+ subs r0, 0x1
+ str r0, [r1]
+ ldr r2, _08026DA8 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08026DAC @ =gUnknown_02024C04
+ ldr r2, _08026DB0 @ =gUnknown_02024C08
+ ldrb r0, [r2]
+ muls r0, r3
+ add r0, r10
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r1]
+ b _08026DCA
+ .align 2, 0
+_08026DA0: .4byte gUnknown_02024D68
+_08026DA4: .4byte gUnknown_02024BEC
+_08026DA8: .4byte gUnknown_02024C68
+_08026DAC: .4byte gUnknown_02024C04
+_08026DB0: .4byte gUnknown_02024C08
+_08026DB4:
+ ldr r1, _08026DD4 @ =gUnknown_02024BEC
+ movs r0, 0x58
+ muls r0, r2
+ add r0, r10
+ ldrh r0, [r0, 0x28]
+ str r0, [r1]
+ ldr r2, _08026DD8 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x10
+_08026DC6:
+ orrs r0, r1
+ strb r0, [r2]
+_08026DCA:
+ ldr r1, _08026DDC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08026E40
+ .align 2, 0
+_08026DD4: .4byte gUnknown_02024BEC
+_08026DD8: .4byte gUnknown_02024C68
+_08026DDC: .4byte gUnknown_02024C10
+_08026DE0:
+ ldr r2, _08026E10 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _08026E14 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ movs r2, 0x58
+ adds r1, r0, 0
+ muls r1, r2
+ add r1, r10
+ adds r1, 0x2A
+ ldr r3, _08026E18 @ =gUnknown_02024C08
+ ldrb r0, [r3]
+ muls r0, r2
+ add r0, r10
+ adds r0, 0x2A
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcc _08026E20
+ ldr r1, _08026E1C @ =gUnknown_02024D1E
+ movs r0, 0
+ b _08026E24
+ .align 2, 0
+_08026E10: .4byte gUnknown_02024C68
+_08026E14: .4byte gUnknown_02024C07
+_08026E18: .4byte gUnknown_02024C08
+_08026E1C: .4byte gUnknown_02024D1E
+_08026E20:
+ ldr r1, _08026E50 @ =gUnknown_02024D1E
+ movs r0, 0x1
+_08026E24:
+ strb r0, [r1, 0x5]
+ ldr r3, _08026E54 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_08026E40:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026E50: .4byte gUnknown_02024D1E
+_08026E54: .4byte gUnknown_02024C10
+ thumb_func_end sub_8026B78
+
+ thumb_func_start atk94_gethalfcurrentenemyhp
+atk94_gethalfcurrentenemyhp: @ 8026E58
+ push {lr}
+ ldr r3, _08026E84 @ =gUnknown_02024BEC
+ ldr r2, _08026E88 @ =gBattleMons
+ ldr r0, _08026E8C @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x28]
+ lsrs r0, 1
+ str r0, [r3]
+ cmp r0, 0
+ bne _08026E76
+ movs r0, 0x1
+ str r0, [r3]
+_08026E76:
+ ldr r1, _08026E90 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026E84: .4byte gUnknown_02024BEC
+_08026E88: .4byte gBattleMons
+_08026E8C: .4byte gUnknown_02024C08
+_08026E90: .4byte gUnknown_02024C10
+ thumb_func_end atk94_gethalfcurrentenemyhp
+
+ thumb_func_start sub_8026E94
+sub_8026E94: @ 8026E94
+ push {lr}
+ ldr r2, _08026EB4 @ =word_2024DB8
+ ldrh r1, [r2]
+ movs r0, 0x18
+ ands r0, r1
+ cmp r0, 0
+ beq _08026EC0
+ ldr r2, _08026EB8 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08026EBC @ =gUnknown_02024D1E
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ b _08026ED2
+ .align 2, 0
+_08026EB4: .4byte word_2024DB8
+_08026EB8: .4byte gUnknown_02024C68
+_08026EBC: .4byte gUnknown_02024D1E
+_08026EC0:
+ movs r0, 0x8
+ strh r0, [r2]
+ ldr r1, _08026EE0 @ =gUnknown_02024D1E
+ movs r0, 0x3
+ strb r0, [r1, 0x5]
+ ldr r0, _08026EE4 @ =gUnknown_02024DBC
+ adds r0, 0x28
+ movs r1, 0x5
+ strb r1, [r0]
+_08026ED2:
+ ldr r1, _08026EE8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026EE0: .4byte gUnknown_02024D1E
+_08026EE4: .4byte gUnknown_02024DBC
+_08026EE8: .4byte gUnknown_02024C10
+ thumb_func_end sub_8026E94
+
+ thumb_func_start sub_8026EEC
+sub_8026EEC: @ 8026EEC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08026F0A
+ b _0802701C
+_08026F0A:
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _08026F20
+ b _0802701C
+_08026F20:
+ ldr r2, _08026F94 @ =word_2024DB8
+ ldrh r1, [r2]
+ movs r0, 0x18
+ ands r0, r1
+ adds r4, r2, 0
+ ldr r5, _08026F98 @ =gUnknown_02024C07
+ cmp r0, 0
+ beq _08026FAE
+ ldr r0, _08026F9C @ =gBattleMons
+ ldrb r2, [r5]
+ movs r1, 0x58
+ muls r1, r2
+ adds r3, r1, r0
+ adds r0, r3, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ beq _08026FA8
+ cmp r0, 0x8
+ beq _08026FA8
+ cmp r0, 0x4
+ beq _08026FA8
+ adds r0, r3, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ beq _08026FA8
+ cmp r0, 0x8
+ beq _08026FA8
+ cmp r0, 0x4
+ beq _08026FA8
+ adds r0, r3, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ beq _08026FA8
+ ldr r0, _08026FA0 @ =gUnknown_02024C98
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r1, [r1]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08026FA8
+ movs r0, 0x80
+ lsls r0, 11
+ ands r1, r0
+ cmp r1, 0
+ bne _08026FA8
+ ldr r1, _08026FA4 @ =gUnknown_02024BEC
+ ldrh r0, [r3, 0x2C]
+ lsrs r0, 4
+ str r0, [r1]
+ cmp r0, 0
+ bne _08026FAE
+ movs r0, 0x1
+ b _08026FAC
+ .align 2, 0
+_08026F94: .4byte word_2024DB8
+_08026F98: .4byte gUnknown_02024C07
+_08026F9C: .4byte gBattleMons
+_08026FA0: .4byte gUnknown_02024C98
+_08026FA4: .4byte gUnknown_02024BEC
+_08026FA8:
+ ldr r1, _08027004 @ =gUnknown_02024BEC
+ movs r0, 0
+_08026FAC:
+ str r0, [r1]
+_08026FAE:
+ ldrh r1, [r4]
+ movs r4, 0x80
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08027024
+ ldr r1, _08027008 @ =gBattleMons
+ ldrb r3, [r5]
+ movs r0, 0x58
+ muls r0, r3
+ adds r2, r0, r1
+ adds r0, r2, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0xF
+ beq _08027010
+ adds r0, r2, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0xF
+ beq _08027010
+ ldr r0, _0802700C @ =gUnknown_02024C98
+ lsls r1, r3, 2
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r1, 0
+ ands r0, r4
+ cmp r0, 0
+ bne _08027010
+ movs r0, 0x80
+ lsls r0, 11
+ ands r1, r0
+ cmp r1, 0
+ bne _08027010
+ ldr r1, _08027004 @ =gUnknown_02024BEC
+ ldrh r0, [r2, 0x2C]
+ lsrs r0, 4
+ str r0, [r1]
+ cmp r0, 0
+ bne _08027024
+ movs r0, 0x1
+ str r0, [r1]
+ b _08027024
+ .align 2, 0
+_08027004: .4byte gUnknown_02024BEC
+_08027008: .4byte gBattleMons
+_0802700C: .4byte gUnknown_02024C98
+_08027010:
+ ldr r1, _08027018 @ =gUnknown_02024BEC
+ movs r0, 0
+ str r0, [r1]
+ b _08027024
+ .align 2, 0
+_08027018: .4byte gUnknown_02024BEC
+_0802701C:
+ ldr r1, _08027050 @ =gUnknown_02024BEC
+ movs r0, 0
+ str r0, [r1]
+ ldr r5, _08027054 @ =gUnknown_02024C07
+_08027024:
+ ldr r0, _08027058 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _0802705C @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0802703E
+ ldr r1, _08027050 @ =gUnknown_02024BEC
+ movs r0, 0
+ str r0, [r1]
+_0802703E:
+ ldr r1, _08027060 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027050: .4byte gUnknown_02024BEC
+_08027054: .4byte gUnknown_02024C07
+_08027058: .4byte gUnknown_02024C0C
+_0802705C: .4byte gBitTable
+_08027060: .4byte gUnknown_02024C10
+ thumb_func_end sub_8026EEC
+
+ thumb_func_start sub_8027064
+sub_8027064: @ 8027064
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _08027090 @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802709C
+ ldr r1, _08027094 @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08027098 @ =gPlayerParty
+ b _080270AC
+ .align 2, 0
+_08027090: .4byte gUnknown_02024C07
+_08027094: .4byte gUnknown_02024A6A
+_08027098: .4byte gPlayerParty
+_0802709C:
+ ldr r1, _080270D0 @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080270D4 @ =gEnemyParty
+_080270AC:
+ adds r5, r1, r0
+ ldr r4, _080270D8 @ =gUnknown_02024C08
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080270E0
+ ldr r1, _080270D0 @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080270DC @ =gPlayerParty
+ b _080270F0
+ .align 2, 0
+_080270D0: .4byte gUnknown_02024A6A
+_080270D4: .4byte gEnemyParty
+_080270D8: .4byte gUnknown_02024C08
+_080270DC: .4byte gPlayerParty
+_080270E0:
+ ldr r1, _0802714C @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08027150 @ =gEnemyParty
+_080270F0:
+ adds r4, r1, r0
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ adds r0, r5, 0
+ movs r1, 0
+ bl GetMonData
+ mov r9, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r7, r0, 0
+ ldr r5, _08027154 @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ movs r6, 0x58
+ muls r0, r6
+ ldr r1, _08027158 @ =gBattleMons
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r2, [r0]
+ cmp r2, 0xC
+ bne _08027168
+ ldr r1, _0802715C @ =gUnknown_02024C10
+ ldr r0, _08027160 @ =gUnknown_081D98C9
+ str r0, [r1]
+ ldr r0, _08027164 @ =byte_2024C06
+ strb r2, [r0]
+ ldrb r0, [r5]
+ movs r1, 0xC
+ bl sub_81074C4
+ b _0802721C
+ .align 2, 0
+_0802714C: .4byte gUnknown_02024A6A
+_08027150: .4byte gEnemyParty
+_08027154: .4byte gUnknown_02024C08
+_08027158: .4byte gBattleMons
+_0802715C: .4byte gUnknown_02024C10
+_08027160: .4byte gUnknown_081D98C9
+_08027164: .4byte byte_2024C06
+_08027168:
+ mov r0, r10
+ mov r1, r9
+ bl GetGenderFromSpeciesAndPersonality
+ adds r4, r0, 0
+ mov r0, r8
+ adds r1, r7, 0
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _080271CA
+ ldr r1, _080271E8 @ =gUnknown_02024C98
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080271EC @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ bne _080271CA
+ adds r0, r2, 0
+ muls r0, r6
+ ldr r4, _080271F0 @ =gBattleMons
+ adds r4, 0x50
+ adds r0, r4
+ ldr r0, [r0]
+ movs r1, 0xF0
+ lsls r1, 12
+ ands r0, r1
+ cmp r0, 0
+ bne _080271CA
+ mov r0, r10
+ mov r1, r9
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080271CA
+ mov r0, r8
+ adds r1, r7, 0
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080271F8
+_080271CA:
+ ldr r3, _080271F4 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802721C
+ .align 2, 0
+_080271E8: .4byte gUnknown_02024C98
+_080271EC: .4byte 0x000400c0
+_080271F0: .4byte gBattleMons
+_080271F4: .4byte gUnknown_02024C10
+_080271F8:
+ ldrb r0, [r5]
+ adds r2, r0, 0
+ muls r2, r6
+ adds r2, r4
+ ldr r1, _0802722C @ =gBitTable
+ ldr r0, _08027230 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 16
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _08027234 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802721C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802722C: .4byte gBitTable
+_08027230: .4byte gUnknown_02024C07
+_08027234: .4byte gUnknown_02024C10
+ thumb_func_end sub_8027064
+
+ thumb_func_start sub_8027238
+sub_8027238: @ 8027238
+ push {r4-r7,lr}
+ ldr r0, _08027280 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08027324
+ ldr r5, _08027284 @ =gUnknown_02024C10
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x4
+ beq _08027290
+ bl sub_8015150
+ ldr r4, _08027288 @ =gUnknown_02024A60
+ strb r0, [r4]
+ ldr r3, _0802728C @ =gBattleMons
+ ldrb r1, [r4]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ adds r0, r3, 0
+ adds r0, 0x4C
+ adds r0, r2, r0
+ ldr r1, [r0]
+ adds r3, 0x50
+ adds r2, r3
+ ldr r2, [r2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x1A_aaaa_bbbb
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+ b _08027324
+ .align 2, 0
+_08027280: .4byte gUnknown_02024A64
+_08027284: .4byte gUnknown_02024C10
+_08027288: .4byte gUnknown_02024A60
+_0802728C: .4byte gBattleMons
+_08027290:
+ ldr r4, _0802732C @ =gUnknown_02024A60
+ ldr r5, _08027330 @ =gUnknown_02024C07
+ ldrb r0, [r5]
+ strb r0, [r4]
+ ldr r6, _08027334 @ =gUnknown_02024C0C
+ ldrb r1, [r6]
+ ldr r7, _08027338 @ =gBitTable
+ ldrb r2, [r4]
+ lsls r0, r2, 2
+ adds r0, r7
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080272CC
+ ldr r3, _0802733C @ =gBattleMons
+ movs r0, 0x58
+ muls r2, r0
+ adds r0, r3, 0
+ adds r0, 0x4C
+ adds r0, r2, r0
+ ldr r1, [r0]
+ adds r3, 0x50
+ adds r2, r3
+ ldr r2, [r2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x1A_aaaa_bbbb
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_080272CC:
+ ldr r0, _08027340 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802731C
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ strb r0, [r4]
+ ldrb r1, [r6]
+ ldrb r2, [r4]
+ lsls r0, r2, 2
+ adds r0, r7
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0802731C
+ ldr r3, _0802733C @ =gBattleMons
+ movs r0, 0x58
+ muls r2, r0
+ adds r0, r3, 0
+ adds r0, 0x4C
+ adds r0, r2, r0
+ ldr r1, [r0]
+ adds r3, 0x50
+ adds r2, r3
+ ldr r2, [r2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x1A_aaaa_bbbb
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_0802731C:
+ ldr r1, _08027344 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_08027324:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802732C: .4byte gUnknown_02024A60
+_08027330: .4byte gUnknown_02024C07
+_08027334: .4byte gUnknown_02024C0C
+_08027338: .4byte gBitTable
+_0802733C: .4byte gBattleMons
+_08027340: .4byte gUnknown_020239F8
+_08027344: .4byte gUnknown_02024C10
+ thumb_func_end sub_8027238
+
+ thumb_func_start sub_8027348
+sub_8027348: @ 8027348
+ push {r4-r6,lr}
+ ldr r6, _08027378 @ =gUnknown_02024C80
+ ldr r4, _0802737C @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ movs r5, 0x1
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0
+ beq _08027388
+ ldr r2, _08027380 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _08027384 @ =gUnknown_02024D1E
+ strb r5, [r0, 0x5]
+ b _080273C0
+ .align 2, 0
+_08027378: .4byte gUnknown_02024C80
+_0802737C: .4byte gUnknown_02024C07
+_08027380: .4byte gUnknown_02024C68
+_08027384: .4byte gUnknown_02024D1E
+_08027388:
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x5
+ strb r1, [r0, 0x2]
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ ldr r2, _080273D0 @ =gUnknown_02024C7A
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r3, 0x80
+ lsls r3, 1
+ adds r0, r3, 0
+ movs r3, 0
+ orrs r0, r2
+ strh r0, [r1]
+ ldr r0, _080273D4 @ =gUnknown_02024D1E
+ strb r3, [r0, 0x5]
+_080273C0:
+ ldr r1, _080273D8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080273D0: .4byte gUnknown_02024C7A
+_080273D4: .4byte gUnknown_02024D1E
+_080273D8: .4byte gUnknown_02024C10
+ thumb_func_end sub_8027348
+
+ thumb_func_start atk9A_setincreasedcriticalchance
+atk9A_setincreasedcriticalchance: @ 80273DC
+ push {lr}
+ ldr r1, _0802740C @ =gBattleMons
+ ldr r0, _08027410 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r3, 0x80
+ lsls r3, 13
+ adds r2, r1, 0
+ ands r2, r3
+ cmp r2, 0
+ beq _0802741C
+ ldr r2, _08027414 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08027418 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _08027424
+ .align 2, 0
+_0802740C: .4byte gBattleMons
+_08027410: .4byte gUnknown_02024C07
+_08027414: .4byte gUnknown_02024C68
+_08027418: .4byte gUnknown_02024D1E
+_0802741C:
+ orrs r1, r3
+ str r1, [r0]
+ ldr r0, _08027430 @ =gUnknown_02024D1E
+ strb r2, [r0, 0x5]
+_08027424:
+ ldr r1, _08027434 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027430: .4byte gUnknown_02024D1E
+_08027434: .4byte gUnknown_02024C10
+ thumb_func_end atk9A_setincreasedcriticalchance
+
+ thumb_func_start atk9B_transformdataexecution
+atk9B_transformdataexecution: @ 8027438
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r1, _08027490 @ =gUnknown_02024BE8
+ ldr r2, _08027494 @ =0x0000ffff
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _08027498 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ ldr r7, _0802749C @ =gBattleMons
+ ldr r0, _080274A0 @ =gUnknown_02024C08
+ mov r12, r0
+ ldrb r1, [r0]
+ movs r6, 0x58
+ adds r0, r1, 0
+ muls r0, r6
+ adds r5, r7, 0
+ adds r5, 0x50
+ adds r0, r5
+ ldr r0, [r0]
+ movs r4, 0x80
+ lsls r4, 14
+ ands r0, r4
+ cmp r0, 0
+ bne _0802747E
+ ldr r0, _080274A4 @ =gUnknown_02024C98
+ lsls r1, 2
+ adds r1, r0
+ ldr r2, [r1]
+ ldr r0, _080274A8 @ =0x000400c0
+ ands r2, r0
+ cmp r2, 0
+ beq _080274B4
+_0802747E:
+ ldr r2, _080274AC @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080274B0 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ b _080275C8
+ .align 2, 0
+_08027490: .4byte gUnknown_02024BE8
+_08027494: .4byte 0x0000ffff
+_08027498: .4byte gUnknown_02024C10
+_0802749C: .4byte gBattleMons
+_080274A0: .4byte gUnknown_02024C08
+_080274A4: .4byte gUnknown_02024C98
+_080274A8: .4byte 0x000400c0
+_080274AC: .4byte gUnknown_02024C68
+_080274B0: .4byte gUnknown_02024D1E
+_080274B4:
+ ldr r3, _08027588 @ =gUnknown_02024C07
+ ldrb r0, [r3]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r5
+ ldr r0, [r1]
+ orrs r0, r4
+ str r0, [r1]
+ ldr r4, _0802758C @ =gUnknown_02024CA8
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r2, [r0, 0x4]
+ ldrb r0, [r3]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0xB]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0xB]
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r2, r12
+ ldrb r1, [r2]
+ muls r1, r6
+ adds r2, r7, 0
+ adds r2, 0x48
+ adds r1, r2
+ ldr r1, [r1]
+ str r1, [r0]
+ ldrb r0, [r3]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0x18]
+ movs r0, 0xF
+ ands r0, r2
+ strb r0, [r1, 0x18]
+ ldr r1, _08027590 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x6
+ strb r0, [r1, 0x1]
+ mov r2, r12
+ ldrb r0, [r2]
+ muls r0, r6
+ adds r0, r7
+ ldrh r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r2]
+ muls r0, r6
+ adds r0, r7
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldrb r0, [r3]
+ muls r0, r6
+ adds r5, r0, r7
+ ldrb r0, [r2]
+ muls r0, r6
+ adds r2, r0, r7
+ movs r4, 0
+ adds r6, r3, 0
+ ldr r0, _08027594 @ =gUnknown_02024A60
+ mov r8, r0
+_0802754C:
+ adds r0, r5, r4
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r4, 0x1
+ cmp r4, 0x23
+ bls _0802754C
+ movs r4, 0
+ ldr r7, _08027598 @ =gBattleMoves
+ ldr r3, _0802759C @ =gUnknown_02024A8C
+ adds r5, r3, 0
+ adds r5, 0x18
+_08027564:
+ lsls r1, r4, 1
+ ldrb r2, [r6]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, r2
+ adds r1, r3
+ ldrh r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrb r1, [r0, 0x4]
+ cmp r1, 0x4
+ bhi _080275A0
+ adds r0, r4, r2
+ adds r0, r5
+ b _080275A6
+ .align 2, 0
+_08027588: .4byte gUnknown_02024C07
+_0802758C: .4byte gUnknown_02024CA8
+_08027590: .4byte gUnknown_030041C0
+_08027594: .4byte gUnknown_02024A60
+_08027598: .4byte gBattleMoves
+_0802759C: .4byte gUnknown_02024A8C
+_080275A0:
+ adds r0, r4, r2
+ adds r0, r5
+ movs r1, 0x5
+_080275A6:
+ strb r1, [r0]
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08027564
+ ldrb r0, [r6]
+ mov r1, r8
+ strb r0, [r1]
+ movs r0, 0
+ movs r1, 0x2
+ bl dp01_build_cmdbuf_x38_a
+ mov r2, r8
+ ldrb r0, [r2]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _080275D4 @ =gUnknown_02024D1E
+ movs r0, 0
+_080275C8:
+ strb r0, [r1, 0x5]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080275D4: .4byte gUnknown_02024D1E
+ thumb_func_end atk9B_transformdataexecution
+
+ thumb_func_start sub_80275D8
+sub_80275D8: @ 80275D8
+ push {r4-r7,lr}
+ ldr r7, _08027608 @ =gBattleMons
+ ldr r6, _0802760C @ =gUnknown_02024C07
+ ldrb r0, [r6]
+ movs r5, 0x58
+ muls r0, r5
+ adds r3, r0, r7
+ ldrh r0, [r3, 0x2C]
+ lsrs r1, r0, 2
+ adds r2, r1, 0
+ cmp r1, 0
+ bne _080275F2
+ movs r2, 0x1
+_080275F2:
+ ldrh r0, [r3, 0x28]
+ cmp r0, r2
+ bhi _08027618
+ ldr r1, _08027610 @ =gUnknown_02024BEC
+ movs r0, 0
+ str r0, [r1]
+ ldr r1, _08027614 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _0802766C
+ .align 2, 0
+_08027608: .4byte gBattleMons
+_0802760C: .4byte gUnknown_02024C07
+_08027610: .4byte gUnknown_02024BEC
+_08027614: .4byte gUnknown_02024D1E
+_08027618:
+ ldr r4, _0802767C @ =gUnknown_02024BEC
+ str r1, [r4]
+ cmp r1, 0
+ bne _08027624
+ movs r0, 0x1
+ str r0, [r4]
+_08027624:
+ ldrb r0, [r6]
+ adds r2, r0, 0
+ muls r2, r5
+ adds r3, r7, 0
+ adds r3, 0x50
+ adds r2, r3
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 17
+ orrs r0, r1
+ str r0, [r2]
+ ldrb r0, [r6]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r3
+ ldr r0, [r1]
+ ldr r2, _08027680 @ =0xffff1fff
+ ands r0, r2
+ str r0, [r1]
+ ldr r2, _08027684 @ =gUnknown_02024CA8
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, [r4]
+ movs r2, 0
+ strb r1, [r0, 0xA]
+ ldr r0, _08027688 @ =gUnknown_02024D1E
+ strb r2, [r0, 0x5]
+ ldr r2, _0802768C @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 1
+ orrs r0, r1
+ str r0, [r2]
+_0802766C:
+ ldr r1, _08027690 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802767C: .4byte gUnknown_02024BEC
+_08027680: .4byte 0xffff1fff
+_08027684: .4byte gUnknown_02024CA8
+_08027688: .4byte gUnknown_02024D1E
+_0802768C: .4byte gUnknown_02024C6C
+_08027690: .4byte gUnknown_02024C10
+ thumb_func_end sub_80275D8
+
+ thumb_func_start sub_8027694
+sub_8027694: @ 8027694
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r3, 0
+ ldr r0, _080276D4 @ =gUnknown_081FACFE
+ ldrh r1, [r0]
+ ldr r4, _080276D8 @ =0x0000fffe
+ adds r5, r0, 0
+ cmp r1, r4
+ beq _080276BC
+ cmp r1, r2
+ beq _080276BC
+ adds r1, r5, 0
+_080276AE:
+ adds r1, 0x2
+ adds r3, 0x1
+ ldrh r0, [r1]
+ cmp r0, r4
+ beq _080276BC
+ cmp r0, r2
+ bne _080276AE
+_080276BC:
+ lsls r0, r3, 1
+ adds r0, r5
+ ldrh r1, [r0]
+ ldr r0, _080276D8 @ =0x0000fffe
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080276D4: .4byte gUnknown_081FACFE
+_080276D8: .4byte 0x0000fffe
+ thumb_func_end sub_8027694
+
+ thumb_func_start atk9D_copyattack
+atk9D_copyattack: @ 80276DC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _08027754 @ =gUnknown_02024BE8
+ ldr r1, _08027758 @ =0x0000ffff
+ adds r7, r1, 0
+ strh r7, [r0]
+ ldr r5, _0802775C @ =gUnknown_02024C34
+ ldr r6, _08027760 @ =gUnknown_02024C08
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ bl sub_8027694
+ lsls r0, 24
+ cmp r0, 0
+ bne _08027736
+ ldr r3, _08027764 @ =gBattleMons
+ ldr r2, _08027768 @ =gUnknown_02024C07
+ ldrb r1, [r2]
+ movs r0, 0x58
+ adds r4, r1, 0
+ muls r4, r0
+ adds r0, r3, 0
+ adds r0, 0x50
+ adds r0, r4, r0
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 14
+ ands r1, r0
+ mov r12, r3
+ mov r9, r2
+ cmp r1, 0
+ bne _08027736
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r5
+ ldrh r1, [r0]
+ cmp r1, 0
+ beq _08027736
+ cmp r1, r7
+ bne _08027770
+_08027736:
+ ldr r3, _0802776C @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _080278A8
+ .align 2, 0
+_08027754: .4byte gUnknown_02024BE8
+_08027758: .4byte 0x0000ffff
+_0802775C: .4byte gUnknown_02024C34
+_08027760: .4byte gUnknown_02024C08
+_08027764: .4byte gBattleMons
+_08027768: .4byte gUnknown_02024C07
+_0802776C: .4byte gUnknown_02024C10
+_08027770:
+ movs r2, 0
+ mov r3, r12
+ adds r3, 0xC
+ adds r0, r4, r3
+ ldrh r0, [r0]
+ ldr r4, _08027800 @ =gUnknown_02024C10
+ mov r10, r4
+ cmp r0, r1
+ beq _080277AA
+ mov r8, r3
+ adds r7, r5, 0
+ adds r5, r6, 0
+ mov r4, r9
+ movs r3, 0x58
+_0802778C:
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _080277AA
+ lsls r1, r2, 1
+ ldrb r0, [r4]
+ muls r0, r3
+ adds r1, r0
+ add r1, r8
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r1, [r1]
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _0802778C
+_080277AA:
+ cmp r2, 0x4
+ bne _0802788C
+ ldr r5, _08027804 @ =gUnknown_02024BE4
+ ldrb r1, [r5]
+ lsls r1, 1
+ mov r2, r9
+ ldrb r0, [r2]
+ movs r6, 0x58
+ muls r0, r6
+ adds r1, r0
+ mov r0, r12
+ adds r0, 0xC
+ adds r1, r0
+ ldr r2, _08027808 @ =gUnknown_02024C34
+ ldr r3, _0802780C @ =gUnknown_02024C08
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldr r4, _08027810 @ =gBattleMoves
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r4, [r0, 0x4]
+ cmp r4, 0x4
+ bhi _08027814
+ mov r1, r9
+ ldrb r0, [r1]
+ muls r0, r6
+ ldrb r1, [r5]
+ adds r0, r1
+ mov r1, r12
+ adds r1, 0x24
+ adds r0, r1
+ strb r4, [r0]
+ b _08027828
+ .align 2, 0
+_08027800: .4byte gUnknown_02024C10
+_08027804: .4byte gUnknown_02024BE4
+_08027808: .4byte gUnknown_02024C34
+_0802780C: .4byte gUnknown_02024C08
+_08027810: .4byte gBattleMoves
+_08027814:
+ mov r4, r9
+ ldrb r0, [r4]
+ muls r0, r6
+ ldrb r1, [r5]
+ adds r0, r1
+ mov r1, r12
+ adds r1, 0x24
+ adds r0, r1
+ movs r1, 0x5
+ strb r1, [r0]
+_08027828:
+ ldr r1, _08027880 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08027884 @ =gUnknown_02024CA8
+ mov r2, r9
+ ldrb r0, [r2]
+ lsls r2, r0, 3
+ subs r2, r0
+ lsls r2, 2
+ adds r2, r1
+ ldrb r4, [r2, 0x18]
+ lsrs r3, r4, 4
+ ldr r1, _08027888 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ orrs r1, r3
+ lsls r1, 4
+ movs r0, 0xF
+ ands r0, r4
+ orrs r0, r1
+ strb r0, [r2, 0x18]
+ mov r4, r10
+ ldr r0, [r4]
+ adds r0, 0x5
+ str r0, [r4]
+ b _080278A8
+ .align 2, 0
+_08027880: .4byte gUnknown_030041C0
+_08027884: .4byte gUnknown_02024CA8
+_08027888: .4byte gBitTable
+_0802788C:
+ mov r0, r10
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ mov r2, r10
+ str r1, [r2]
+_080278A8:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end atk9D_copyattack
+
+ thumb_func_start sub_80278B8
+sub_80278B8: @ 80278B8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r7, _08027938 @ =gUnknown_02024BE6
+ movs r6, 0xB1
+ lsls r6, 1
+ ldr r5, _0802793C @ =gUnknown_081FACFE
+ ldr r0, _08027940 @ =gUnknown_02024C10
+ mov r8, r0
+_080278CA:
+ bl Random
+ ldr r2, _08027944 @ =0x000001ff
+ adds r1, r2, 0
+ ands r0, r1
+ adds r0, 0x1
+ strh r0, [r7]
+ cmp r0, r6
+ bhi _080278CA
+ movs r0, 0x3
+_080278DE:
+ subs r0, 0x1
+ cmp r0, 0
+ bge _080278DE
+ ldr r4, _08027938 @ =gUnknown_02024BE6
+ ldrh r2, [r4]
+ ldr r3, _08027948 @ =0x0000ffff
+ subs r0, r5, 0x2
+_080278EC:
+ adds r0, 0x2
+ ldrh r1, [r0]
+ cmp r1, r2
+ beq _080278F8
+ cmp r1, r3
+ bne _080278EC
+_080278F8:
+ ldr r0, _08027948 @ =0x0000ffff
+ cmp r1, r0
+ bne _080278CA
+ ldr r2, _0802794C @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _08027950 @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ ldr r3, _08027954 @ =gUnknown_081D6BBC
+ ldr r2, _08027958 @ =gBattleMoves
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ mov r1, r8
+ str r0, [r1]
+ ldrh r0, [r4]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _0802795C @ =gUnknown_02024C08
+ strb r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027938: .4byte gUnknown_02024BE6
+_0802793C: .4byte gUnknown_081FACFE
+_08027940: .4byte gUnknown_02024C10
+_08027944: .4byte 0x000001ff
+_08027948: .4byte 0x0000ffff
+_0802794C: .4byte gUnknown_02024C6C
+_08027950: .4byte 0xfffffbff
+_08027954: .4byte gUnknown_081D6BBC
+_08027958: .4byte gBattleMoves
+_0802795C: .4byte gUnknown_02024C08
+ thumb_func_end sub_80278B8
+
+ thumb_func_start sub_8027960
+sub_8027960: @ 8027960
+ ldr r3, _08027980 @ =gUnknown_02024BEC
+ ldr r2, _08027984 @ =gBattleMons
+ ldr r0, _08027988 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ str r0, [r3]
+ ldr r1, _0802798C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08027980: .4byte gUnknown_02024BEC
+_08027984: .4byte gBattleMons
+_08027988: .4byte gUnknown_02024C07
+_0802798C: .4byte gUnknown_02024C10
+ thumb_func_end sub_8027960
+
+ thumb_func_start atkA0_psywavedamageeffect
+atkA0_psywavedamageeffect: @ 8027990
+ push {r4,lr}
+ movs r4, 0xF
+_08027994:
+ bl Random
+ adds r3, r4, 0
+ ands r3, r0
+ cmp r3, 0xA
+ bgt _08027994
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r3, r0, 1
+ ldr r4, _080279D4 @ =gUnknown_02024BEC
+ ldr r2, _080279D8 @ =gBattleMons
+ ldr r0, _080279DC @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x2A
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ adds r0, 0x32
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ ldr r1, _080279E0 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080279D4: .4byte gUnknown_02024BEC
+_080279D8: .4byte gBattleMons
+_080279DC: .4byte gUnknown_02024C07
+_080279E0: .4byte gUnknown_02024C10
+ thumb_func_end atkA0_psywavedamageeffect
+
+ thumb_func_start atkA1_counterdamagecalculator
+atkA1_counterdamagecalculator: @ 80279E4
+ push {r4-r6,lr}
+ ldr r4, _08027A54 @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, _08027A58 @ =gUnknown_02024D28
+ ldrb r0, [r4]
+ lsls r0, 4
+ adds r0, r5
+ ldrb r0, [r0, 0xC]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r0, r5, 0x4
+ adds r0, r1, r0
+ ldr r3, [r0]
+ cmp r3, 0
+ beq _08027A98
+ cmp r6, r2
+ beq _08027A98
+ ldr r6, _08027A5C @ =gBattleMons
+ adds r0, r1, r5
+ ldrb r0, [r0, 0xC]
+ movs r4, 0x58
+ muls r0, r4
+ adds r0, r6
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08027A98
+ ldr r1, _08027A60 @ =gUnknown_02024BEC
+ lsls r0, r3, 1
+ str r0, [r1]
+ ldr r1, _08027A64 @ =gUnknown_02024C80
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r1
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0
+ beq _08027A6C
+ ldrb r1, [r1, 0x9]
+ adds r0, r1, 0
+ muls r0, r4
+ adds r0, r6
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08027A6C
+ ldr r0, _08027A68 @ =gUnknown_02024C08
+ strb r1, [r0]
+ b _08027A7C
+ .align 2, 0
+_08027A54: .4byte gUnknown_02024C07
+_08027A58: .4byte gUnknown_02024D28
+_08027A5C: .4byte gBattleMons
+_08027A60: .4byte gUnknown_02024BEC
+_08027A64: .4byte gUnknown_02024C80
+_08027A68: .4byte gUnknown_02024C08
+_08027A6C:
+ ldr r2, _08027A88 @ =gUnknown_02024C08
+ ldr r1, _08027A8C @ =gUnknown_02024D28
+ ldr r0, _08027A90 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0xC]
+ strb r0, [r2]
+_08027A7C:
+ ldr r1, _08027A94 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08027AC8
+ .align 2, 0
+_08027A88: .4byte gUnknown_02024C08
+_08027A8C: .4byte gUnknown_02024D28
+_08027A90: .4byte gUnknown_02024C07
+_08027A94: .4byte gUnknown_02024C10
+_08027A98:
+ ldr r2, _08027AD0 @ =gUnknown_02024D68
+ ldr r0, _08027AD4 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r3, _08027AD8 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_08027AC8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027AD0: .4byte gUnknown_02024D68
+_08027AD4: .4byte gUnknown_02024C07
+_08027AD8: .4byte gUnknown_02024C10
+ thumb_func_end atkA1_counterdamagecalculator
+
+ thumb_func_start atkA2_mirrorcoatdamagecalculator
+atkA2_mirrorcoatdamagecalculator: @ 8027ADC
+ push {r4-r6,lr}
+ ldr r4, _08027B4C @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, _08027B50 @ =gUnknown_02024D28
+ ldrb r0, [r4]
+ lsls r0, 4
+ adds r0, r5
+ ldrb r0, [r0, 0xD]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r0, r5, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r3, [r0]
+ cmp r3, 0
+ beq _08027B90
+ cmp r6, r2
+ beq _08027B90
+ ldr r6, _08027B54 @ =gBattleMons
+ adds r0, r1, r5
+ ldrb r0, [r0, 0xD]
+ movs r4, 0x58
+ muls r0, r4
+ adds r0, r6
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08027B90
+ ldr r1, _08027B58 @ =gUnknown_02024BEC
+ lsls r0, r3, 1
+ str r0, [r1]
+ ldr r1, _08027B5C @ =gUnknown_02024C80
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r1
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0
+ beq _08027B64
+ ldrb r1, [r1, 0x9]
+ adds r0, r1, 0
+ muls r0, r4
+ adds r0, r6
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08027B64
+ ldr r0, _08027B60 @ =gUnknown_02024C08
+ strb r1, [r0]
+ b _08027B74
+ .align 2, 0
+_08027B4C: .4byte gUnknown_02024C07
+_08027B50: .4byte gUnknown_02024D28
+_08027B54: .4byte gBattleMons
+_08027B58: .4byte gUnknown_02024BEC
+_08027B5C: .4byte gUnknown_02024C80
+_08027B60: .4byte gUnknown_02024C08
+_08027B64:
+ ldr r2, _08027B80 @ =gUnknown_02024C08
+ ldr r1, _08027B84 @ =gUnknown_02024D28
+ ldr r0, _08027B88 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0xD]
+ strb r0, [r2]
+_08027B74:
+ ldr r1, _08027B8C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08027BC0
+ .align 2, 0
+_08027B80: .4byte gUnknown_02024C08
+_08027B84: .4byte gUnknown_02024D28
+_08027B88: .4byte gUnknown_02024C07
+_08027B8C: .4byte gUnknown_02024C10
+_08027B90:
+ ldr r2, _08027BC8 @ =gUnknown_02024D68
+ ldr r0, _08027BCC @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r3, _08027BD0 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_08027BC0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027BC8: .4byte gUnknown_02024D68
+_08027BCC: .4byte gUnknown_02024C07
+_08027BD0: .4byte gUnknown_02024C10
+ thumb_func_end atkA2_mirrorcoatdamagecalculator
+
+ thumb_func_start atkA3_disablelastusedattack
+atkA3_disablelastusedattack: @ 8027BD4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r4, 0
+ ldr r2, _08027CD4 @ =gBattleMons
+ ldr r3, _08027CD8 @ =gUnknown_02024C08
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r7, r2, 0
+ adds r7, 0xC
+ adds r0, r7
+ ldr r5, _08027CDC @ =gUnknown_02024C34
+ lsls r1, 1
+ adds r1, r5
+ ldrh r0, [r0]
+ mov r9, r2
+ adds r6, r3, 0
+ ldr r2, _08027CE0 @ =gUnknown_02024CA8
+ mov r8, r2
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _08027C28
+ mov r12, r6
+ movs r3, 0x58
+_08027C08:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _08027C28
+ lsls r2, r4, 1
+ mov r0, r12
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ muls r0, r3
+ adds r2, r0
+ adds r2, r7
+ lsls r1, 1
+ adds r1, r5
+ ldrh r0, [r2]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _08027C08
+_08027C28:
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0
+ bne _08027CEC
+ cmp r4, 0x4
+ beq _08027CEC
+ movs r5, 0x58
+ adds r0, r1, 0
+ muls r0, r5
+ adds r0, r4, r0
+ mov r1, r9
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08027CEC
+ ldr r1, _08027CE4 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ lsls r2, r4, 1
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r2, r0
+ mov r3, r9
+ adds r3, 0xC
+ adds r0, r3
+ ldrh r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r2, r0
+ adds r0, r3
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r8
+ muls r1, r5
+ adds r2, r1
+ adds r2, r3
+ ldrh r1, [r2]
+ strh r1, [r0, 0x4]
+ bl Random
+ ldrb r2, [r6]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ add r1, r8
+ movs r2, 0x3
+ ands r2, r0
+ adds r2, 0x2
+ ldrb r3, [r1, 0xB]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0xB]
+ ldrb r0, [r6]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ add r1, r8
+ ldrb r3, [r1, 0xB]
+ lsls r2, r3, 28
+ lsrs r2, 24
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0xB]
+ ldr r1, _08027CE8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08027D06
+ .align 2, 0
+_08027CD4: .4byte gBattleMons
+_08027CD8: .4byte gUnknown_02024C08
+_08027CDC: .4byte gUnknown_02024C34
+_08027CE0: .4byte gUnknown_02024CA8
+_08027CE4: .4byte gUnknown_030041C0
+_08027CE8: .4byte gUnknown_02024C10
+_08027CEC:
+ ldr r3, _08027D14 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_08027D06:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027D14: .4byte gUnknown_02024C10
+ thumb_func_end atkA3_disablelastusedattack
+
+ thumb_func_start atkA4_setencore
+atkA4_setencore: @ 8027D18
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r5, 0
+ ldr r3, _08027E0C @ =gBattleMons
+ ldr r4, _08027E10 @ =gUnknown_02024C08
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r6, r3, 0
+ adds r6, 0xC
+ adds r0, r6
+ ldr r2, _08027E14 @ =gUnknown_02024C34
+ lsls r1, 1
+ adds r1, r2
+ ldrh r0, [r0]
+ mov r10, r3
+ mov r8, r2
+ ldr r2, _08027E18 @ =gUnknown_02024CA8
+ mov r9, r2
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _08027D72
+ mov r12, r4
+ adds r7, r6, 0
+ mov r6, r8
+ movs r3, 0x58
+_08027D52:
+ adds r5, 0x1
+ cmp r5, 0x3
+ bgt _08027D72
+ lsls r2, r5, 1
+ mov r0, r12
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ muls r0, r3
+ adds r2, r0
+ adds r2, r7
+ lsls r1, 1
+ adds r1, r6
+ ldrh r0, [r2]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _08027D52
+_08027D72:
+ ldrb r0, [r4]
+ lsls r0, 1
+ add r0, r8
+ ldrh r2, [r0]
+ cmp r2, 0xA5
+ beq _08027D86
+ cmp r2, 0xE3
+ beq _08027D86
+ cmp r2, 0x77
+ bne _08027D88
+_08027D86:
+ movs r5, 0x4
+_08027D88:
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ mov r2, r9
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x6]
+ cmp r0, 0
+ bne _08027E20
+ cmp r5, 0x4
+ beq _08027E20
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ adds r0, r5, r2
+ mov r1, r10
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08027E20
+ lsls r0, r5, 1
+ adds r0, r2
+ subs r1, 0x18
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r3, 0x6]
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r9
+ strb r5, [r0, 0xC]
+ bl Random
+ ldrb r2, [r4]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ add r1, r9
+ movs r2, 0x3
+ ands r2, r0
+ adds r2, 0x3
+ ldrb r3, [r1, 0xE]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0xE]
+ ldrb r0, [r4]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ add r1, r9
+ ldrb r3, [r1, 0xE]
+ lsls r2, r3, 28
+ lsrs r2, 24
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0xE]
+ ldr r1, _08027E1C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08027E3A
+ .align 2, 0
+_08027E0C: .4byte gBattleMons
+_08027E10: .4byte gUnknown_02024C08
+_08027E14: .4byte gUnknown_02024C34
+_08027E18: .4byte gUnknown_02024CA8
+_08027E1C: .4byte gUnknown_02024C10
+_08027E20:
+ ldr r3, _08027E48 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_08027E3A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027E48: .4byte gUnknown_02024C10
+ thumb_func_end atkA4_setencore
+
+ thumb_func_start sub_8027E4C
+sub_8027E4C: @ 8027E4C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r7, _08027EEC @ =gBattleMons
+ ldr r0, _08027EF0 @ =gUnknown_02024C08
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r6, 0x58
+ adds r2, r0, 0
+ muls r2, r6
+ adds r0, r7, 0
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ bne _08027F18
+ ldr r1, _08027EF4 @ =gUnknown_02024C07
+ mov r12, r1
+ ldrb r0, [r1]
+ muls r0, r6
+ adds r0, r7
+ ldrh r4, [r0, 0x28]
+ adds r0, r2, r7
+ ldrh r2, [r0, 0x28]
+ adds r4, r2
+ asrs r4, 1
+ ldr r5, _08027EF8 @ =gUnknown_02024BEC
+ mov r9, r5
+ subs r2, r4
+ str r2, [r5]
+ ldr r3, _08027EFC @ =0x02000000
+ ldr r1, _08027F00 @ =0x00016014
+ adds r0, r3, r1
+ strb r2, [r0]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r2
+ asrs r0, 8
+ ldr r5, _08027F04 @ =0x00016015
+ adds r1, r3, r5
+ strb r0, [r1]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r2
+ asrs r0, 16
+ adds r5, 0x1
+ adds r1, r3, r5
+ strb r0, [r1]
+ lsrs r2, 24
+ ldr r0, _08027F08 @ =0x00016017
+ adds r3, r0
+ strb r2, [r3]
+ mov r1, r12
+ ldrb r0, [r1]
+ muls r0, r6
+ adds r0, r7
+ ldrh r0, [r0, 0x28]
+ subs r0, r4
+ mov r5, r9
+ str r0, [r5]
+ ldr r2, _08027F0C @ =gUnknown_02024D68
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x4
+ adds r0, r2
+ ldr r1, _08027F10 @ =0x0000ffff
+ str r1, [r0]
+ ldr r1, _08027F14 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08027F32
+ .align 2, 0
+_08027EEC: .4byte gBattleMons
+_08027EF0: .4byte gUnknown_02024C08
+_08027EF4: .4byte gUnknown_02024C07
+_08027EF8: .4byte gUnknown_02024BEC
+_08027EFC: .4byte 0x02000000
+_08027F00: .4byte 0x00016014
+_08027F04: .4byte 0x00016015
+_08027F08: .4byte 0x00016017
+_08027F0C: .4byte gUnknown_02024D68
+_08027F10: .4byte 0x0000ffff
+_08027F14: .4byte gUnknown_02024C10
+_08027F18:
+ ldr r3, _08027F40 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_08027F32:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027F40: .4byte gUnknown_02024C10
+ thumb_func_end sub_8027E4C
+
+ thumb_func_start sub_8027F44
+sub_8027F44: @ 8027F44
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r1, _08027FA8 @ =gUnknown_02024C3C
+ ldr r4, _08027FAC @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ cmp r1, 0
+ beq _08027F8C
+ ldr r0, _08027FB0 @ =0x0000ffff
+ cmp r1, r0
+ beq _08027F8C
+ ldrh r0, [r2]
+ bl sub_8028350
+ lsls r0, 24
+ cmp r0, 0
+ beq _08028024
+ ldr r2, _08027FB4 @ =gUnknown_02024D28
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r0, r2, 0x4
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08028024
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08028024
+_08027F8C:
+ ldr r3, _08027FB8 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08028110
+ .align 2, 0
+_08027FA8: .4byte gUnknown_02024C3C
+_08027FAC: .4byte gUnknown_02024C07
+_08027FB0: .4byte 0x0000ffff
+_08027FB4: .4byte gUnknown_02024D28
+_08027FB8: .4byte gUnknown_02024C10
+_08027FBC:
+ mov r0, r12
+ strb r5, [r0]
+ mov r1, r10
+ ldrb r0, [r1]
+ muls r0, r2
+ adds r0, r7
+ adds r0, 0x22
+ strb r5, [r0]
+ ldr r1, _08027FE0 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x3
+ strb r0, [r1, 0x1]
+ strb r5, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r1, _08027FE4 @ =gUnknown_02024C10
+ b _08028012
+ .align 2, 0
+_08027FE0: .4byte gUnknown_030041C0
+_08027FE4: .4byte gUnknown_02024C10
+_08027FE8:
+ mov r0, r8
+ adds r0, 0x1
+ adds r0, r3
+ ldrb r2, [r0]
+ strb r2, [r4]
+ mov r4, r10
+ ldrb r0, [r4]
+ muls r0, r6
+ ldr r7, _0802801C @ =gBattleMons
+ adds r0, r7
+ adds r0, 0x22
+ strb r2, [r0]
+ ldr r1, _08028020 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x3
+ strb r0, [r1, 0x1]
+ strb r2, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ mov r1, r12
+_08028012:
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08028110
+ .align 2, 0
+_0802801C: .4byte gBattleMons
+_08028020: .4byte gUnknown_030041C0
+_08028024:
+ movs r4, 0
+ mov r8, r4
+ movs r7, 0x7F
+ mov r9, r7
+_0802802C:
+ bl Random
+ mov r4, r9
+ ands r4, r0
+ cmp r4, 0x70
+ bhi _0802802C
+ lsls r0, r4, 1
+ adds r4, r0, r4
+ ldr r6, _08028120 @ =gTypeEffectiveness
+ adds r3, r4, r6
+ ldr r1, _08028124 @ =gUnknown_02024C44
+ ldr r2, _08028128 @ =gUnknown_02024C07
+ ldrb r5, [r2]
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrb r1, [r3]
+ mov r10, r2
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _08028088
+ adds r0, r4, 0x2
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bhi _08028088
+ ldr r7, _0802812C @ =gBattleMons
+ movs r2, 0x58
+ adds r0, r5, 0
+ muls r0, r2
+ adds r3, r0, r7
+ movs r0, 0x21
+ adds r0, r3
+ mov r12, r0
+ adds r0, r4, 0x1
+ adds r0, r6
+ ldrb r5, [r0]
+ mov r1, r12
+ ldrb r0, [r1]
+ adds r1, r5, 0
+ cmp r0, r1
+ beq _08028088
+ adds r0, r3, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _08027FBC
+_08028088:
+ movs r7, 0x1
+ add r8, r7
+ ldr r0, _08028130 @ =0x000003e7
+ cmp r8, r0
+ ble _0802802C
+ movs r0, 0
+ mov r8, r0
+ ldr r1, _08028134 @ =gUnknown_02024C10
+ mov r12, r1
+ ldr r3, _08028120 @ =gTypeEffectiveness
+ adds r0, r4, 0x1
+ adds r0, r3
+ mov r9, r0
+ adds r5, r3, 0
+_080280A4:
+ ldrb r1, [r5]
+ cmp r1, 0xFF
+ bgt _080280AE
+ cmp r1, 0xFE
+ bge _080280E8
+_080280AE:
+ mov r4, r10
+ ldrb r2, [r4]
+ lsls r0, r2, 1
+ ldr r7, _08028124 @ =gUnknown_02024C44
+ adds r0, r7
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _080280E8
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0x5
+ bhi _080280E8
+ movs r6, 0x58
+ adds r0, r2, 0
+ muls r0, r6
+ ldr r1, _0802812C @ =gBattleMons
+ adds r2, r0, r1
+ adds r4, r2, 0
+ adds r4, 0x21
+ ldrb r0, [r4]
+ mov r7, r9
+ ldrb r1, [r7]
+ cmp r0, r1
+ beq _080280E8
+ adds r0, r2, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, r1
+ beq _080280E8
+ b _08027FE8
+_080280E8:
+ adds r5, 0x3
+ movs r0, 0x3
+ add r8, r0
+ ldr r0, _08028138 @ =0x0000014f
+ cmp r8, r0
+ bls _080280A4
+ mov r1, r12
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ mov r4, r12
+ str r1, [r4]
+_08028110:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028120: .4byte gTypeEffectiveness
+_08028124: .4byte gUnknown_02024C44
+_08028128: .4byte gUnknown_02024C07
+_0802812C: .4byte gBattleMons
+_08028130: .4byte 0x000003e7
+_08028134: .4byte gUnknown_02024C10
+_08028138: .4byte 0x0000014f
+ thumb_func_end sub_8027F44
+
+ thumb_func_start atkA7_setalwayshitflag
+atkA7_setalwayshitflag: @ 802813C
+ push {r4,lr}
+ ldr r4, _08028180 @ =gUnknown_02024C98
+ ldr r3, _08028184 @ =gUnknown_02024C08
+ ldrb r1, [r3]
+ lsls r1, 2
+ adds r1, r4
+ ldr r0, [r1]
+ movs r2, 0x19
+ negs r2, r2
+ ands r0, r2
+ str r0, [r1]
+ ldrb r1, [r3]
+ lsls r1, 2
+ adds r1, r4
+ ldr r0, [r1]
+ movs r2, 0x10
+ orrs r0, r2
+ str r0, [r1]
+ ldr r2, _08028188 @ =gUnknown_02024CA8
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _0802818C @ =gUnknown_02024C07
+ ldrb r1, [r1]
+ strb r1, [r0, 0x15]
+ ldr r1, _08028190 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028180: .4byte gUnknown_02024C98
+_08028184: .4byte gUnknown_02024C08
+_08028188: .4byte gUnknown_02024CA8
+_0802818C: .4byte gUnknown_02024C07
+_08028190: .4byte gUnknown_02024C10
+ thumb_func_end atkA7_setalwayshitflag
+
+ thumb_func_start atkA8_copymovepermanently
+atkA8_copymovepermanently: @ 8028194
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ ldr r0, _080282F4 @ =gUnknown_02024BE8
+ ldr r1, _080282F8 @ =0x0000ffff
+ adds r5, r1, 0
+ strh r5, [r0]
+ ldr r3, _080282FC @ =gBattleMons
+ ldr r2, _08028300 @ =gUnknown_02024C07
+ ldrb r1, [r2]
+ movs r0, 0x58
+ adds r4, r1, 0
+ muls r4, r0
+ adds r0, r3, 0
+ adds r0, 0x50
+ adds r0, r4, r0
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 14
+ ands r1, r0
+ mov r12, r3
+ mov r10, r2
+ cmp r1, 0
+ beq _080281CC
+ b _08028320
+_080281CC:
+ ldr r0, _08028304 @ =gUnknown_02024C2C
+ ldr r2, _08028308 @ =gUnknown_02024C08
+ ldrb r1, [r2]
+ lsls r1, 1
+ adds r1, r0
+ ldrh r1, [r1]
+ mov r9, r0
+ mov r8, r2
+ cmp r1, 0xA5
+ bne _080281E2
+ b _08028320
+_080281E2:
+ cmp r1, 0
+ bne _080281E8
+ b _08028320
+_080281E8:
+ cmp r1, r5
+ bne _080281EE
+ b _08028320
+_080281EE:
+ cmp r1, 0xA6
+ bne _080281F4
+ b _08028320
+_080281F4:
+ movs r7, 0
+ mov r5, r9
+ mov r0, r12
+ adds r0, 0xC
+ adds r1, r4, r0
+ mov r3, r8
+_08028200:
+ ldrh r2, [r1]
+ cmp r2, 0xA6
+ beq _08028212
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r2, r0
+ beq _0802821A
+_08028212:
+ adds r1, 0x2
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _08028200
+_0802821A:
+ cmp r7, 0x4
+ beq _08028220
+ b _08028320
+_08028220:
+ ldr r4, _0802830C @ =gUnknown_02024BE4
+ ldrb r1, [r4]
+ lsls r1, 1
+ mov r2, r10
+ ldrb r0, [r2]
+ movs r3, 0x58
+ muls r0, r3
+ adds r1, r0
+ mov r6, r12
+ adds r6, 0xC
+ adds r1, r6
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 1
+ add r0, r9
+ ldrh r0, [r0]
+ strh r0, [r1]
+ mov r1, r10
+ ldrb r0, [r1]
+ adds r2, r0, 0
+ muls r2, r3
+ ldrb r4, [r4]
+ adds r2, r4
+ mov r5, r12
+ adds r5, 0x24
+ adds r2, r5
+ ldr r4, _08028310 @ =gBattleMoves
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r0, 1
+ add r0, r9
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x4]
+ strb r0, [r2]
+ ldr r1, _08028314 @ =gUnknown_02024A60
+ mov r2, r10
+ ldrb r0, [r2]
+ strb r0, [r1]
+ movs r7, 0
+ ldrb r0, [r2]
+ muls r0, r3
+ adds r4, r0, r5
+ adds r3, r0, 0
+ add r2, sp, 0x4
+ add r5, sp, 0xC
+_08028282:
+ adds r0, r3, r6
+ ldrh r0, [r0]
+ strh r0, [r2]
+ adds r1, r5, r7
+ ldrb r0, [r4]
+ strb r0, [r1]
+ adds r4, 0x1
+ adds r3, 0x2
+ adds r2, 0x2
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _08028282
+ add r2, sp, 0x4
+ mov r0, r10
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r12
+ adds r0, 0x3B
+ ldrb r0, [r0]
+ strb r0, [r2, 0xC]
+ str r2, [sp]
+ movs r0, 0
+ movs r1, 0x3
+ movs r2, 0
+ movs r3, 0x10
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldr r0, _08028314 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _08028318 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ ldr r3, _08028304 @ =gUnknown_02024C2C
+ ldr r2, _08028308 @ =gUnknown_02024C08
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _0802831C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802833A
+ .align 2, 0
+_080282F4: .4byte gUnknown_02024BE8
+_080282F8: .4byte 0x0000ffff
+_080282FC: .4byte gBattleMons
+_08028300: .4byte gUnknown_02024C07
+_08028304: .4byte gUnknown_02024C2C
+_08028308: .4byte gUnknown_02024C08
+_0802830C: .4byte gUnknown_02024BE4
+_08028310: .4byte gBattleMoves
+_08028314: .4byte gUnknown_02024A60
+_08028318: .4byte gUnknown_030041C0
+_0802831C: .4byte gUnknown_02024C10
+_08028320:
+ ldr r3, _0802834C @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802833A:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802834C: .4byte gUnknown_02024C10
+ thumb_func_end atkA8_copymovepermanently
+
+ thumb_func_start sub_8028350
+sub_8028350: @ 8028350
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _08028380 @ =gBattleMoves
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1]
+ cmp r0, 0x91
+ beq _0802837A
+ cmp r0, 0x27
+ beq _0802837A
+ cmp r0, 0x4B
+ beq _0802837A
+ cmp r0, 0x97
+ beq _0802837A
+ cmp r0, 0x9B
+ beq _0802837A
+ cmp r0, 0x1A
+ bne _08028384
+_0802837A:
+ movs r0, 0x1
+ b _08028386
+ .align 2, 0
+_08028380: .4byte gBattleMoves
+_08028384:
+ movs r0, 0
+_08028386:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8028350
+
+ thumb_func_start sub_802838C
+sub_802838C: @ 802838C
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _080283AA
+ cmp r1, 0xD6
+ beq _080283AA
+ movs r0, 0x89
+ lsls r0, 1
+ cmp r1, r0
+ beq _080283AA
+ cmp r1, 0x77
+ beq _080283AA
+ cmp r1, 0x76
+ bne _080283AE
+_080283AA:
+ movs r0, 0x1
+ b _080283B0
+_080283AE:
+ movs r0, 0
+_080283B0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802838C
+
+ thumb_func_start move_weather_interaction
+move_weather_interaction: @ 80283B4
+ push {lr}
+ lsls r1, 16
+ lsrs r2, r1, 16
+ ldr r1, _0802840C @ =gBattleMoves
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0x97
+ bne _080283D8
+ ldr r0, _08028410 @ =word_2024DB8
+ ldrh r1, [r0]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ bne _08028418
+_080283D8:
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0x91
+ beq _080283FA
+ cmp r0, 0x27
+ beq _080283FA
+ cmp r0, 0x4B
+ beq _080283FA
+ cmp r0, 0x97
+ beq _080283FA
+ cmp r0, 0x9B
+ beq _080283FA
+ cmp r0, 0x1A
+ bne _08028418
+_080283FA:
+ ldr r0, _08028414 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 20
+ ands r0, r1
+ cmp r0, 0
+ beq _08028418
+ movs r0, 0x1
+ b _0802841A
+ .align 2, 0
+_0802840C: .4byte gBattleMoves
+_08028410: .4byte word_2024DB8
+_08028414: .4byte gUnknown_02024C6C
+_08028418:
+ movs r0, 0x2
+_0802841A:
+ pop {r1}
+ bx r1
+ thumb_func_end move_weather_interaction
+
+ thumb_func_start sub_8028420
+sub_8028420: @ 8028420
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r6, 0
+ movs r5, 0
+ ldr r0, _080284B0 @ =gUnknown_02024C07
+ mov r9, r0
+ movs r1, 0x58
+ mov r8, r1
+ ldr r7, _080284B4 @ =gUnknown_02024A8C
+ movs r0, 0x84
+ lsls r0, 1
+ mov r10, r0
+_0802843E:
+ lsls r4, r5, 1
+ mov r1, r9
+ ldrb r0, [r1]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r4, r0
+ adds r0, r7
+ ldrh r0, [r0]
+ bl sub_802838C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802847E
+ mov r1, r9
+ ldrb r0, [r1]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r4, r0
+ adds r0, r7
+ ldrh r1, [r0]
+ cmp r1, r10
+ beq _0802847E
+ cmp r1, 0xFD
+ beq _0802847E
+ adds r0, r1, 0
+ bl sub_8028350
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802848C
+_0802847E:
+ ldr r1, _080284B8 @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r0, [r0]
+ orrs r6, r0
+ lsls r0, r6, 24
+ lsrs r6, r0, 24
+_0802848C:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _0802843E
+ ldr r0, _080284B0 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ adds r1, r6, 0
+ movs r2, 0xFD
+ bl sub_8015A98
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xF
+ bne _080284C0
+ ldr r1, _080284BC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08028524
+ .align 2, 0
+_080284B0: .4byte gUnknown_02024C07
+_080284B4: .4byte gUnknown_02024A8C
+_080284B8: .4byte gBitTable
+_080284BC: .4byte gUnknown_02024C10
+_080284C0:
+ movs r7, 0x3
+ ldr r4, _08028534 @ =gBitTable
+_080284C4:
+ bl Random
+ adds r5, r7, 0
+ ands r5, r0
+ lsls r0, r5, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ands r0, r6
+ cmp r0, 0
+ bne _080284C4
+ ldr r4, _08028538 @ =gUnknown_02024BEA
+ ldr r2, _0802853C @ =gBattleMons
+ lsls r1, r5, 1
+ ldr r0, _08028540 @ =gUnknown_02024C07
+ ldrb r3, [r0]
+ movs r0, 0x58
+ muls r0, r3
+ adds r1, r0
+ adds r2, 0xC
+ adds r1, r2
+ ldrh r0, [r1]
+ strh r0, [r4]
+ ldr r0, _08028544 @ =gUnknown_02024BE4
+ strb r5, [r0]
+ ldr r2, _08028548 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _0802854C @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ ldrh r0, [r4]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _08028550 @ =gUnknown_02024C08
+ strb r0, [r1]
+ ldr r3, _08028554 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_08028524:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028534: .4byte gBitTable
+_08028538: .4byte gUnknown_02024BEA
+_0802853C: .4byte gBattleMons
+_08028540: .4byte gUnknown_02024C07
+_08028544: .4byte gUnknown_02024BE4
+_08028548: .4byte gUnknown_02024C6C
+_0802854C: .4byte 0xfffffbff
+_08028550: .4byte gUnknown_02024C08
+_08028554: .4byte gUnknown_02024C10
+ thumb_func_end sub_8028420
+
+ thumb_func_start sub_8028558
+sub_8028558: @ 8028558
+ ldr r1, _0802857C @ =gBattleMons
+ ldr r0, _08028580 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 18
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _08028584 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0802857C: .4byte gBattleMons
+_08028580: .4byte gUnknown_02024C07
+_08028584: .4byte gUnknown_02024C10
+ thumb_func_end sub_8028558
+
+ thumb_func_start b_feature_update_destiny_bond
+b_feature_update_destiny_bond: @ 8028588
+ push {r4,r5,lr}
+ ldr r0, _080285D8 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080285DC @ =gUnknown_02024C08
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _080285E0 @ =gBattleMons
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 18
+ ands r0, r1
+ cmp r0, 0
+ beq _080285D2
+ cmp r5, r3
+ beq _080285D2
+ ldr r2, _080285E4 @ =gUnknown_02024C6C
+ ldr r1, [r2]
+ movs r0, 0x80
+ lsls r0, 17
+ ands r0, r1
+ cmp r0, 0
+ bne _080285D2
+ movs r0, 0x40
+ orrs r1, r0
+ str r1, [r2]
+_080285D2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080285D8: .4byte gUnknown_02024C07
+_080285DC: .4byte gUnknown_02024C08
+_080285E0: .4byte gBattleMons
+_080285E4: .4byte gUnknown_02024C6C
+ thumb_func_end b_feature_update_destiny_bond
+
+ thumb_func_start atkAB_802A458
+atkAB_802A458: @ 80285E8
+ push {lr}
+ bl b_feature_update_destiny_bond
+ ldr r1, _080285FC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080285FC: .4byte gUnknown_02024C10
+ thumb_func_end atkAB_802A458
+
+ thumb_func_start atkAC_remaininghptopower
+atkAC_remaininghptopower: @ 8028600
+ push {lr}
+ ldr r2, _08028654 @ =gBattleMons
+ ldr r0, _08028658 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ movs r2, 0x28
+ ldrsh r0, [r1, r2]
+ movs r2, 0x2C
+ ldrsh r1, [r1, r2]
+ movs r2, 0x30
+ bl sub_80461D4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r3, 0
+ ldr r0, _0802865C @ =gUnknown_081FAD26
+ ldrb r2, [r0]
+ cmp r1, r2
+ ble _0802863A
+ adds r2, r0, 0
+_0802862C:
+ adds r3, 0x2
+ cmp r3, 0xB
+ bgt _0802863A
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ cmp r1, r0
+ bgt _0802862C
+_0802863A:
+ ldr r2, _08028660 @ =gUnknown_02024DEC
+ ldr r1, _0802865C @ =gUnknown_081FAD26
+ adds r0, r3, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r2]
+ ldr r1, _08028664 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028654: .4byte gBattleMons
+_08028658: .4byte gUnknown_02024C07
+_0802865C: .4byte gUnknown_081FAD26
+_08028660: .4byte gUnknown_02024DEC
+_08028664: .4byte gUnknown_02024C10
+ thumb_func_end atkAC_remaininghptopower
+
+ thumb_func_start sub_8028668
+sub_8028668: @ 8028668
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r4, _080287F8 @ =gUnknown_02024C34
+ ldr r1, _080287FC @ =gUnknown_02024C08
+ ldrb r2, [r1]
+ lsls r0, r2, 1
+ adds r0, r4
+ ldrh r3, [r0]
+ mov r8, r1
+ cmp r3, 0
+ bne _08028688
+ b _08028828
+_08028688:
+ ldr r0, _08028800 @ =0x0000ffff
+ cmp r3, r0
+ bne _08028690
+ b _08028828
+_08028690:
+ ldr r1, _08028804 @ =gUnknown_02024C98
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _08028808 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ beq _080286A2
+ b _08028828
+_080286A2:
+ movs r7, 0
+ ldr r0, _0802880C @ =gBattleMons
+ movs r1, 0x58
+ muls r1, r2
+ adds r2, r0, 0
+ adds r2, 0xC
+ adds r1, r2
+ ldrh r1, [r1]
+ cmp r3, r1
+ beq _080286DA
+ adds r6, r4, 0
+ mov r5, r8
+ adds r4, r2, 0
+ movs r3, 0x58
+_080286BE:
+ adds r7, 0x1
+ cmp r7, 0x3
+ bgt _080286DA
+ ldrb r0, [r5]
+ lsls r2, r0, 1
+ adds r2, r6
+ lsls r1, r7, 1
+ muls r0, r3
+ adds r1, r0
+ adds r1, r4
+ ldrh r0, [r2]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _080286BE
+_080286DA:
+ cmp r7, 0x4
+ bne _080286E0
+ b _08028828
+_080286E0:
+ mov r4, r8
+ ldrb r0, [r4]
+ movs r1, 0x58
+ mov r9, r1
+ mov r3, r9
+ muls r3, r0
+ adds r0, r3, 0
+ adds r0, r7, r0
+ ldr r1, _0802880C @ =gBattleMons
+ adds r1, 0x24
+ mov r10, r1
+ add r0, r10
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bhi _08028700
+ b _08028828
+_08028700:
+ bl Random
+ movs r1, 0x3
+ ands r1, r0
+ adds r6, r1, 0x2
+ ldrb r0, [r4]
+ mov r3, r9
+ muls r3, r0
+ adds r0, r3, 0
+ adds r0, r7, r0
+ add r0, r10
+ ldrb r0, [r0]
+ cmp r0, r6
+ bge _0802871E
+ adds r6, r0, 0
+_0802871E:
+ ldr r1, _08028810 @ =gUnknown_030041C0
+ movs r5, 0xFD
+ strb r5, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ ldr r2, _080287F8 @ =gUnknown_02024C34
+ mov r3, r8
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r4, _08028814 @ =gUnknown_03004290
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ strb r5, [r4]
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ strb r0, [r4, 0x2]
+ strb r0, [r4, 0x3]
+ strb r6, [r4, 0x4]
+ subs r0, 0x2
+ strb r0, [r4, 0x5]
+ mov r1, r8
+ ldrb r0, [r1]
+ mov r1, r9
+ muls r1, r0
+ adds r1, r7, r1
+ add r1, r10
+ ldrb r0, [r1]
+ subs r0, r6
+ strb r0, [r1]
+ ldr r4, _08028818 @ =gUnknown_02024A60
+ mov r3, r8
+ ldrb r0, [r3]
+ strb r0, [r4]
+ ldr r1, _0802881C @ =gUnknown_02024CA8
+ ldrb r3, [r4]
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _08028820 @ =gBitTable
+ lsls r0, r7, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080287D2
+ mov r2, r9
+ muls r2, r3
+ ldr r0, _0802880C @ =gBattleMons
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _080287D2
+ adds r1, r7, 0
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ mov r3, r10
+ adds r0, r2, r3
+ adds r0, r7
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_080287D2:
+ ldr r1, _08028824 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ ldr r1, _0802880C @ =gBattleMons
+ ldr r0, _080287FC @ =gUnknown_02024C08
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r7, r0
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08028842
+ adds r0, r2, 0
+ bl b_cancel_multi_turn_move_maybe
+ b _08028842
+ .align 2, 0
+_080287F8: .4byte gUnknown_02024C34
+_080287FC: .4byte gUnknown_02024C08
+_08028800: .4byte 0x0000ffff
+_08028804: .4byte gUnknown_02024C98
+_08028808: .4byte 0x000400c0
+_0802880C: .4byte gBattleMons
+_08028810: .4byte gUnknown_030041C0
+_08028814: .4byte gUnknown_03004290
+_08028818: .4byte gUnknown_02024A60
+_0802881C: .4byte gUnknown_02024CA8
+_08028820: .4byte gBitTable
+_08028824: .4byte gUnknown_02024C10
+_08028828:
+ ldr r3, _08028854 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_08028842:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028854: .4byte gUnknown_02024C10
+ thumb_func_end sub_8028668
+
+ thumb_func_start sub_8028858
+sub_8028858: @ 8028858
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r7, 0
+ ldr r0, _080288AC @ =gUnknown_02024BE6
+ ldrh r0, [r0]
+ cmp r0, 0xD7
+ beq _08028872
+ b _08028A26
+_08028872:
+ ldr r5, _080288B0 @ =gUnknown_02024D1E
+ strb r7, [r5, 0x5]
+ ldr r6, _080288B4 @ =gUnknown_02024C07
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r1, _080288B8 @ =gEnemyParty
+ mov r9, r1
+ cmp r0, 0
+ bne _0802888C
+ ldr r2, _080288BC @ =gPlayerParty
+ mov r9, r2
+_0802888C:
+ ldr r4, _080288C0 @ =gBattleMons
+ ldrb r3, [r6]
+ movs r0, 0x58
+ adds r2, r3, 0
+ muls r2, r0
+ adds r0, r2, r4
+ adds r1, r0, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ cmp r0, 0x2B
+ beq _080288C4
+ adds r0, r4, 0
+ adds r0, 0x4C
+ adds r0, r2, r0
+ str r7, [r0]
+ b _080288D4
+ .align 2, 0
+_080288AC: .4byte gUnknown_02024BE6
+_080288B0: .4byte gUnknown_02024D1E
+_080288B4: .4byte gUnknown_02024C07
+_080288B8: .4byte gEnemyParty
+_080288BC: .4byte gPlayerParty
+_080288C0: .4byte gBattleMons
+_080288C4:
+ ldrb r1, [r1]
+ adds r0, r3, 0
+ bl sub_81074C4
+ ldrb r0, [r5, 0x5]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+_080288D4:
+ ldr r4, _08028934 @ =gUnknown_02024A60
+ ldr r0, _08028938 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ movs r6, 0x2
+ eors r0, r6
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ ldr r1, _0802893C @ =0x02000000
+ ldr r2, _08028940 @ =0x00016003
+ adds r1, r2
+ strb r0, [r1]
+ strb r0, [r4]
+ ldr r0, _08028944 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08028964
+ ldr r0, _08028948 @ =gUnknown_02024C0C
+ ldrb r2, [r0]
+ ldr r1, _0802894C @ =gBitTable
+ ldrb r3, [r4]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ bne _08028964
+ ldr r5, _08028950 @ =gBattleMons
+ movs r0, 0x58
+ adds r4, r3, 0
+ muls r4, r0
+ adds r0, r4, r5
+ adds r1, r0, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ cmp r0, 0x2B
+ beq _08028954
+ adds r0, r5, 0
+ adds r0, 0x4C
+ adds r0, r4, r0
+ str r2, [r0]
+ b _08028964
+ .align 2, 0
+_08028934: .4byte gUnknown_02024A60
+_08028938: .4byte gUnknown_02024C07
+_0802893C: .4byte 0x02000000
+_08028940: .4byte 0x00016003
+_08028944: .4byte gUnknown_020239F8
+_08028948: .4byte gUnknown_02024C0C
+_0802894C: .4byte gBitTable
+_08028950: .4byte gBattleMons
+_08028954:
+ ldrb r1, [r1]
+ adds r0, r3, 0
+ bl sub_81074C4
+ ldr r1, _080289AC @ =gUnknown_02024D1E
+ ldrb r0, [r1, 0x5]
+ orrs r0, r6
+ strb r0, [r1, 0x5]
+_08028964:
+ movs r6, 0
+ ldr r0, _080289B0 @ =gBattleMons
+ mov r8, r0
+_0802896A:
+ movs r0, 0x64
+ adds r4, r6, 0
+ muls r4, r0
+ add r4, r9
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl GetMonData
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r5, 0
+ beq _08028A1E
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r5, r0
+ beq _08028A1E
+ ldr r2, _080289B4 @ =gUnknown_02024A6A
+ ldr r0, _080289B8 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r0, r6
+ bne _080289BC
+ movs r0, 0x58
+ muls r0, r1
+ b _080289EC
+ .align 2, 0
+_080289AC: .4byte gUnknown_02024D1E
+_080289B0: .4byte gBattleMons
+_080289B4: .4byte gUnknown_02024A6A
+_080289B8: .4byte gUnknown_02024C07
+_080289BC:
+ ldr r0, _080289F4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08028A04
+ ldr r0, _080289F8 @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ lsls r0, r3, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r0, r6
+ bne _08028A04
+ ldr r0, _080289FC @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _08028A00 @ =gBitTable
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08028A04
+ movs r0, 0x58
+ muls r0, r3
+_080289EC:
+ add r0, r8
+ adds r0, 0x20
+ ldrb r0, [r0]
+ b _08028A10
+ .align 2, 0
+_080289F4: .4byte gUnknown_020239F8
+_080289F8: .4byte gUnknown_02024A60
+_080289FC: .4byte gUnknown_02024C0C
+_08028A00: .4byte gBitTable
+_08028A04:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl GetAbilityBySpecies
+ lsls r0, 24
+ lsrs r0, 24
+_08028A10:
+ cmp r0, 0x2B
+ beq _08028A1E
+ movs r0, 0x1
+ lsls r0, r6
+ orrs r7, r0
+ lsls r0, r7, 24
+ lsrs r7, r0, 24
+_08028A1E:
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _0802896A
+ b _08028A7E
+_08028A26:
+ ldr r1, _08028AB4 @ =gUnknown_02024D1E
+ movs r0, 0x4
+ strb r0, [r1, 0x5]
+ movs r7, 0x3F
+ ldr r2, _08028AB8 @ =gBattleMons
+ ldr r1, _08028ABC @ =gUnknown_02024C07
+ ldrb r0, [r1]
+ movs r6, 0x58
+ muls r0, r6
+ adds r5, r2, 0
+ adds r5, 0x4C
+ adds r0, r5
+ str r4, [r0]
+ ldrb r0, [r1]
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ ldr r3, _08028AC0 @ =gUnknown_02024A60
+ strb r0, [r3]
+ ldr r0, _08028AC4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08028A7E
+ ldr r0, _08028AC8 @ =gUnknown_02024C0C
+ ldrb r2, [r0]
+ ldr r1, _08028ACC @ =gBitTable
+ ldrb r3, [r3]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ bne _08028A7E
+ adds r0, r3, 0
+ muls r0, r6
+ adds r0, r5
+ str r2, [r0]
+_08028A7E:
+ ldr r4, _08028AC0 @ =gUnknown_02024A60
+ ldr r0, _08028ABC @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r4]
+ add r1, sp, 0x4
+ str r1, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ adds r2, r7, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _08028AD0 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028AB4: .4byte gUnknown_02024D1E
+_08028AB8: .4byte gBattleMons
+_08028ABC: .4byte gUnknown_02024C07
+_08028AC0: .4byte gUnknown_02024A60
+_08028AC4: .4byte gUnknown_020239F8
+_08028AC8: .4byte gUnknown_02024C0C
+_08028ACC: .4byte gBitTable
+_08028AD0: .4byte gUnknown_02024C10
+ thumb_func_end sub_8028858
+
+ thumb_func_start sub_8028AD4
+sub_8028AD4: @ 8028AD4
+ push {r4-r7,lr}
+ ldr r7, _08028B24 @ =gBattleMons
+ ldr r0, _08028B28 @ =gUnknown_02024C08
+ ldrb r3, [r0]
+ movs r6, 0x58
+ adds r1, r3, 0
+ muls r1, r6
+ adds r0, r7, 0
+ adds r0, 0x50
+ adds r4, r1, r0
+ ldr r2, [r4]
+ movs r5, 0x80
+ lsls r5, 21
+ adds r0, r2, 0
+ ands r0, r5
+ cmp r0, 0
+ bne _08028B06
+ ldr r1, _08028B2C @ =gUnknown_02024C98
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _08028B30 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ beq _08028B38
+_08028B06:
+ ldr r3, _08028B34 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08028B5C
+ .align 2, 0
+_08028B24: .4byte gBattleMons
+_08028B28: .4byte gUnknown_02024C08
+_08028B2C: .4byte gUnknown_02024C98
+_08028B30: .4byte 0x000400c0
+_08028B34: .4byte gUnknown_02024C10
+_08028B38:
+ orrs r2, r5
+ str r2, [r4]
+ ldr r1, _08028B64 @ =gUnknown_02024BEC
+ ldr r0, _08028B68 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ muls r0, r6
+ adds r0, r7
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 1
+ str r0, [r1]
+ cmp r0, 0
+ bne _08028B54
+ movs r0, 0x1
+ str r0, [r1]
+_08028B54:
+ ldr r1, _08028B6C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08028B5C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028B64: .4byte gUnknown_02024BEC
+_08028B68: .4byte gUnknown_02024C07
+_08028B6C: .4byte gUnknown_02024C10
+ thumb_func_end sub_8028AD4
+
+ thumb_func_start sub_8028B70
+sub_8028B70: @ 8028B70
+ push {r4,lr}
+ ldr r4, _08028BC4 @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08028BC8 @ =gUnknown_02024C80
+ lsls r2, r0, 1
+ adds r0, r2, r0
+ lsls r0, 2
+ adds r3, r0, r1
+ ldrb r0, [r3, 0x6]
+ cmp r0, 0x3
+ bne _08028BD4
+ ldr r2, _08028BCC @ =gUnknown_02024D68
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r3, _08028BD0 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08028BEE
+ .align 2, 0
+_08028BC4: .4byte gUnknown_02024C07
+_08028BC8: .4byte gUnknown_02024C80
+_08028BCC: .4byte gUnknown_02024D68
+_08028BD0: .4byte gUnknown_02024C10
+_08028BD4:
+ ldr r1, _08028BF4 @ =gUnknown_02024C7A
+ adds r1, r2, r1
+ ldrh r2, [r1]
+ movs r0, 0x10
+ orrs r0, r2
+ strh r0, [r1]
+ ldrb r0, [r3, 0x6]
+ adds r0, 0x1
+ strb r0, [r3, 0x6]
+ ldr r1, _08028BF8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08028BEE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028BF4: .4byte gUnknown_02024C7A
+_08028BF8: .4byte gUnknown_02024C10
+ thumb_func_end sub_8028B70
+
+ thumb_func_start sub_8028BFC
+sub_8028BFC: @ 8028BFC
+ ldr r1, _08028C20 @ =gBattleMons
+ ldr r0, _08028C24 @ =gUnknown_02024C08
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 22
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _08028C28 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08028C20: .4byte gBattleMons
+_08028C24: .4byte gUnknown_02024C08
+_08028C28: .4byte gUnknown_02024C10
+ thumb_func_end sub_8028BFC
+
+ thumb_func_start atkB2_setperishsong
+atkB2_setperishsong: @ 8028C2C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r6, 0
+ movs r3, 0
+ ldr r0, _08028C70 @ =gUnknown_02024A68
+ adds r7, r0, 0
+ ldr r0, _08028C74 @ =gUnknown_02024C07
+ mov r8, r0
+ ldrb r1, [r7]
+ cmp r6, r1
+ bge _08028C98
+ movs r5, 0x20
+ ldr r0, _08028C78 @ =gBattleMons
+ mov r12, r0
+ ldr r0, _08028C7C @ =gUnknown_02024CA8
+ adds r4, r0, 0
+ adds r4, 0xF
+ ldr r2, _08028C80 @ =gUnknown_02024C98
+_08028C54:
+ ldr r1, [r2]
+ adds r0, r1, 0
+ ands r0, r5
+ cmp r0, 0
+ bne _08028C6C
+ movs r0, 0x58
+ muls r0, r3
+ add r0, r12
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x2B
+ bne _08028C84
+_08028C6C:
+ adds r6, 0x1
+ b _08028C8C
+ .align 2, 0
+_08028C70: .4byte gUnknown_02024A68
+_08028C74: .4byte gUnknown_02024C07
+_08028C78: .4byte gBattleMons
+_08028C7C: .4byte gUnknown_02024CA8
+_08028C80: .4byte gUnknown_02024C98
+_08028C84:
+ orrs r1, r5
+ str r1, [r2]
+ movs r0, 0x33
+ strb r0, [r4]
+_08028C8C:
+ adds r4, 0x1C
+ adds r2, 0x4
+ adds r3, 0x1
+ ldrb r0, [r7]
+ cmp r3, r0
+ blt _08028C54
+_08028C98:
+ mov r1, r8
+ ldrb r0, [r1]
+ bl sub_80153D0
+ ldr r0, _08028CC4 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r6, r0
+ bne _08028CCC
+ ldr r3, _08028CC8 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08028CD4
+ .align 2, 0
+_08028CC4: .4byte gUnknown_02024A68
+_08028CC8: .4byte gUnknown_02024C10
+_08028CCC:
+ ldr r1, _08028CE0 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08028CD4:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028CE0: .4byte gUnknown_02024C10
+ thumb_func_end atkB2_setperishsong
+
+ thumb_func_start atkB3_rolloutdamagecalculation
+atkB3_rolloutdamagecalculation: @ 8028CE4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _08028D08 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08028D18
+ ldr r0, _08028D0C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl b_cancel_multi_turn_move_maybe
+ ldr r1, _08028D10 @ =gUnknown_02024C10
+ ldr r0, _08028D14 @ =BattleScript_1D6F74
+ str r0, [r1]
+ b _08028E30
+ .align 2, 0
+_08028D08: .4byte gUnknown_02024C68
+_08028D0C: .4byte gUnknown_02024C07
+_08028D10: .4byte gUnknown_02024C10
+_08028D14: .4byte BattleScript_1D6F74
+_08028D18:
+ ldr r2, _08028E3C @ =gBattleMons
+ ldr r1, _08028E40 @ =gUnknown_02024C07
+ ldrb r3, [r1]
+ movs r5, 0x58
+ adds r0, r3, 0
+ muls r0, r5
+ adds r4, r2, 0
+ adds r4, 0x50
+ adds r0, r4
+ ldr r0, [r0]
+ movs r7, 0x80
+ lsls r7, 5
+ ands r0, r7
+ adds r6, r1, 0
+ mov r9, r2
+ ldr r1, _08028E44 @ =gUnknown_02024CA8
+ mov r12, r1
+ ldr r2, _08028E48 @ =gUnknown_02024BE6
+ mov r8, r2
+ cmp r0, 0
+ bne _08028D8A
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ add r0, r12
+ ldrb r2, [r0, 0x11]
+ movs r1, 0x10
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x5
+ orrs r1, r2
+ strb r1, [r0, 0x11]
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r12
+ 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
+ adds r1, r4
+ ldr r0, [r1]
+ orrs r0, r7
+ str r0, [r1]
+ ldr r1, _08028E4C @ =gUnknown_02024C54
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r1
+ mov r2, r8
+ ldrh r1, [r2]
+ strh r1, [r0]
+_08028D8A:
+ ldrb r0, [r6]
+ lsls r2, r0, 3
+ subs r2, r0
+ lsls r2, 2
+ add r2, r12
+ ldrb r3, [r2, 0x11]
+ lsls r1, r3, 28
+ lsrs r1, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x11]
+ cmp r1, 0
+ bne _08028DBE
+ ldrb r0, [r6]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r4
+ ldr r0, [r1]
+ ldr r2, _08028E50 @ =0xffffefff
+ ands r0, r2
+ str r0, [r1]
+_08028DBE:
+ ldr r3, _08028E54 @ =gUnknown_02024DEC
+ ldr r2, _08028E58 @ =gBattleMoves
+ mov r0, r8
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ strh r0, [r3]
+ movs r2, 0x1
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ mov r1, r12
+ adds r4, r0, r1
+ ldrb r0, [r4, 0x11]
+ lsls r0, 28
+ lsrs r0, 28
+ movs r1, 0x5
+ subs r1, r0
+ ldr r7, _08028E5C @ =gUnknown_02024C10
+ adds r5, r3, 0
+ cmp r2, r1
+ bge _08028E0C
+ adds r1, r5, 0
+ adds r3, r4, 0
+ movs r4, 0x5
+_08028DF8:
+ ldrh r0, [r1]
+ lsls r0, 1
+ strh r0, [r1]
+ adds r2, 0x1
+ ldrb r0, [r3, 0x11]
+ lsls r0, 28
+ lsrs r0, 28
+ subs r0, r4, r0
+ cmp r2, r0
+ blt _08028DF8
+_08028E0C:
+ ldrb r1, [r6]
+ movs r0, 0x58
+ muls r0, r1
+ mov r1, r9
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 23
+ ands r0, r1
+ cmp r0, 0
+ beq _08028E2A
+ ldrh r0, [r5]
+ lsls r0, 1
+ strh r0, [r5]
+_08028E2A:
+ ldr r0, [r7]
+ adds r0, 0x1
+ str r0, [r7]
+_08028E30:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028E3C: .4byte gBattleMons
+_08028E40: .4byte gUnknown_02024C07
+_08028E44: .4byte gUnknown_02024CA8
+_08028E48: .4byte gUnknown_02024BE6
+_08028E4C: .4byte gUnknown_02024C54
+_08028E50: .4byte 0xffffefff
+_08028E54: .4byte gUnknown_02024DEC
+_08028E58: .4byte gBattleMoves
+_08028E5C: .4byte gUnknown_02024C10
+ thumb_func_end atkB3_rolloutdamagecalculation
+
+ thumb_func_start atkB4_jumpifconfusedandattackmaxed
+atkB4_jumpifconfusedandattackmaxed: @ 8028E60
+ push {r4,r5,lr}
+ ldr r5, _08028EB0 @ =gBattleMons
+ ldr r0, _08028EB4 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ adds r3, r1, 0
+ muls r3, r0
+ adds r0, r5, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ ldr r4, _08028EB8 @ =gUnknown_02024C10
+ cmp r0, 0
+ beq _08028EBC
+ ldr r2, [r4]
+ ldrb r0, [r2, 0x1]
+ adds r0, r3
+ adds r1, r5, 0
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xC
+ bne _08028EBC
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08028EC2
+ .align 2, 0
+_08028EB0: .4byte gBattleMons
+_08028EB4: .4byte gUnknown_02024C08
+_08028EB8: .4byte gUnknown_02024C10
+_08028EBC:
+ ldr r0, [r4]
+ adds r0, 0x6
+ str r0, [r4]
+_08028EC2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end atkB4_jumpifconfusedandattackmaxed
+
+ thumb_func_start sub_8028EC8
+sub_8028EC8: @ 8028EC8
+ push {r4,r5,lr}
+ ldr r0, _08028EF0 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08028F04
+ ldr r2, _08028EF4 @ =gUnknown_02024CA8
+ ldr r0, _08028EF8 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0, 0x10]
+ ldr r1, _08028EFC @ =gUnknown_02024C10
+ ldr r0, _08028F00 @ =BattleScript_1D6F74
+ str r0, [r1]
+ b _08028F5C
+ .align 2, 0
+_08028EF0: .4byte gUnknown_02024C68
+_08028EF4: .4byte gUnknown_02024CA8
+_08028EF8: .4byte gUnknown_02024C07
+_08028EFC: .4byte gUnknown_02024C10
+_08028F00: .4byte BattleScript_1D6F74
+_08028F04:
+ ldr r5, _08028F64 @ =gUnknown_02024CA8
+ ldr r4, _08028F68 @ =gUnknown_02024C07
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r0, r5
+ ldrb r0, [r1, 0x10]
+ cmp r0, 0x5
+ beq _08028F1C
+ adds r0, 0x1
+ strb r0, [r1, 0x10]
+_08028F1C:
+ ldr r3, _08028F6C @ =gUnknown_02024DEC
+ ldr r2, _08028F70 @ =gBattleMoves
+ ldr r0, _08028F74 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ strh r0, [r3]
+ movs r2, 0x1
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r4, _08028F78 @ =gUnknown_02024C10
+ ldrb r1, [r0, 0x10]
+ cmp r2, r1
+ bge _08028F56
+ adds r1, r3, 0
+ adds r3, r0, 0
+_08028F48:
+ ldrh r0, [r1]
+ lsls r0, 1
+ strh r0, [r1]
+ adds r2, 0x1
+ ldrb r0, [r3, 0x10]
+ cmp r2, r0
+ blt _08028F48
+_08028F56:
+ ldr r0, [r4]
+ adds r0, 0x1
+ str r0, [r4]
+_08028F5C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028F64: .4byte gUnknown_02024CA8
+_08028F68: .4byte gUnknown_02024C07
+_08028F6C: .4byte gUnknown_02024DEC
+_08028F70: .4byte gBattleMoves
+_08028F74: .4byte gUnknown_02024BE6
+_08028F78: .4byte gUnknown_02024C10
+ thumb_func_end sub_8028EC8
+
+ thumb_func_start atkB6_happinesstodamagecalculation
+atkB6_happinesstodamagecalculation: @ 8028F7C
+ push {r4,lr}
+ ldr r2, _08028FA8 @ =gBattleMoves
+ ldr r0, _08028FAC @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x79
+ bne _08028FBC
+ ldr r4, _08028FB0 @ =gUnknown_02024DEC
+ ldr r2, _08028FB4 @ =gBattleMons
+ ldr r0, _08028FB8 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x2B
+ ldrb r1, [r0]
+ b _08028FD2
+ .align 2, 0
+_08028FA8: .4byte gBattleMoves
+_08028FAC: .4byte gUnknown_02024BE6
+_08028FB0: .4byte gUnknown_02024DEC
+_08028FB4: .4byte gBattleMons
+_08028FB8: .4byte gUnknown_02024C07
+_08028FBC:
+ ldr r4, _08028FF0 @ =gUnknown_02024DEC
+ ldr r2, _08028FF4 @ =gBattleMons
+ ldr r0, _08028FF8 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ movs r1, 0xFF
+ subs r1, r0
+_08028FD2:
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ movs r1, 0x19
+ bl __divsi3
+ strh r0, [r4]
+ ldr r1, _08028FFC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028FF0: .4byte gUnknown_02024DEC
+_08028FF4: .4byte gBattleMons
+_08028FF8: .4byte gUnknown_02024C07
+_08028FFC: .4byte gUnknown_02024C10
+ thumb_func_end atkB6_happinesstodamagecalculation
+
+ thumb_func_start atkB7_presentdamagecalculation
+atkB7_presentdamagecalculation: @ 8029000
+ push {r4,lr}
+ bl Random
+ movs r4, 0xFF
+ ands r4, r0
+ cmp r4, 0x65
+ bgt _0802901C
+ ldr r1, _08029018 @ =gUnknown_02024DEC
+ movs r0, 0x28
+ strh r0, [r1]
+ b _0802905E
+ .align 2, 0
+_08029018: .4byte gUnknown_02024DEC
+_0802901C:
+ cmp r4, 0xB1
+ bgt _0802902C
+ ldr r1, _08029028 @ =gUnknown_02024DEC
+ movs r0, 0x50
+ strh r0, [r1]
+ b _0802905E
+ .align 2, 0
+_08029028: .4byte gUnknown_02024DEC
+_0802902C:
+ cmp r4, 0xCB
+ bgt _0802903C
+ ldr r1, _08029038 @ =gUnknown_02024DEC
+ movs r0, 0x78
+ strh r0, [r1]
+ b _0802905E
+ .align 2, 0
+_08029038: .4byte gUnknown_02024DEC
+_0802903C:
+ ldr r3, _08029068 @ =gUnknown_02024BEC
+ ldr r2, _0802906C @ =gBattleMons
+ ldr r0, _08029070 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 2
+ str r0, [r3]
+ cmp r0, 0
+ bne _08029058
+ movs r0, 0x1
+ str r0, [r3]
+_08029058:
+ ldr r0, [r3]
+ negs r0, r0
+ str r0, [r3]
+_0802905E:
+ cmp r4, 0xCB
+ bgt _0802907C
+ ldr r1, _08029074 @ =gUnknown_02024C10
+ ldr r0, _08029078 @ =BattleScript_1D6F44
+ b _080290AC
+ .align 2, 0
+_08029068: .4byte gUnknown_02024BEC
+_0802906C: .4byte gBattleMons
+_08029070: .4byte gUnknown_02024C08
+_08029074: .4byte gUnknown_02024C10
+_08029078: .4byte BattleScript_1D6F44
+_0802907C:
+ ldr r2, _08029098 @ =gBattleMons
+ ldr r0, _0802909C @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r1, [r0, 0x2C]
+ ldrh r0, [r0, 0x28]
+ cmp r1, r0
+ bne _080290A8
+ ldr r1, _080290A0 @ =gUnknown_02024C10
+ ldr r0, _080290A4 @ =BattleScript_1D83B5
+ b _080290AC
+ .align 2, 0
+_08029098: .4byte gBattleMons
+_0802909C: .4byte gUnknown_02024C08
+_080290A0: .4byte gUnknown_02024C10
+_080290A4: .4byte BattleScript_1D83B5
+_080290A8:
+ ldr r1, _080290B4 @ =gUnknown_02024C10
+ ldr r0, _080290B8 @ =BattleScript_1D839B
+_080290AC:
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080290B4: .4byte gUnknown_02024C10
+_080290B8: .4byte BattleScript_1D839B
+ thumb_func_end atkB7_presentdamagecalculation
+
+ thumb_func_start sub_80290BC
+sub_80290BC: @ 80290BC
+ push {r4-r6,lr}
+ ldr r4, _080290F0 @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ ldr r6, _080290F4 @ =gUnknown_02024C7A
+ movs r5, 0x1
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r6
+ ldrh r1, [r1]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08029100
+ ldr r2, _080290F8 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080290FC @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ b _08029132
+ .align 2, 0
+_080290F0: .4byte gUnknown_02024C07
+_080290F4: .4byte gUnknown_02024C7A
+_080290F8: .4byte gUnknown_02024C68
+_080290FC: .4byte gUnknown_02024D1E
+_08029100:
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r6
+ ldrh r0, [r1]
+ movs r2, 0x20
+ orrs r0, r2
+ strh r0, [r1]
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ ldr r2, _08029140 @ =gUnknown_02024C80
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x5
+ strb r1, [r0, 0x7]
+ ldr r0, _08029144 @ =gUnknown_02024D1E
+ strb r1, [r0, 0x5]
+_08029132:
+ ldr r1, _08029148 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029140: .4byte gUnknown_02024C80
+_08029144: .4byte gUnknown_02024D1E
+_08029148: .4byte gUnknown_02024C10
+ thumb_func_end sub_80290BC
+
+ thumb_func_start atkB9_magnitudedamagecalculation
+atkB9_magnitudedamagecalculation: @ 802914C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x4
+ bgt _08029178
+ ldr r1, _08029174 @ =gUnknown_02024DEC
+ movs r0, 0xA
+ strh r0, [r1]
+ movs r3, 0x4
+ b _080291E4
+ .align 2, 0
+_08029174: .4byte gUnknown_02024DEC
+_08029178:
+ cmp r3, 0xE
+ bgt _0802918C
+ ldr r1, _08029188 @ =gUnknown_02024DEC
+ movs r0, 0x1E
+ strh r0, [r1]
+ movs r3, 0x5
+ b _080291E4
+ .align 2, 0
+_08029188: .4byte gUnknown_02024DEC
+_0802918C:
+ cmp r3, 0x22
+ bgt _080291A0
+ ldr r1, _0802919C @ =gUnknown_02024DEC
+ movs r0, 0x32
+ strh r0, [r1]
+ movs r3, 0x6
+ b _080291E4
+ .align 2, 0
+_0802919C: .4byte gUnknown_02024DEC
+_080291A0:
+ cmp r3, 0x40
+ bgt _080291B4
+ ldr r1, _080291B0 @ =gUnknown_02024DEC
+ movs r0, 0x46
+ strh r0, [r1]
+ movs r3, 0x7
+ b _080291E4
+ .align 2, 0
+_080291B0: .4byte gUnknown_02024DEC
+_080291B4:
+ cmp r3, 0x54
+ bgt _080291C8
+ ldr r1, _080291C4 @ =gUnknown_02024DEC
+ movs r0, 0x5A
+ strh r0, [r1]
+ movs r3, 0x8
+ b _080291E4
+ .align 2, 0
+_080291C4: .4byte gUnknown_02024DEC
+_080291C8:
+ cmp r3, 0x5E
+ bgt _080291DC
+ ldr r1, _080291D8 @ =gUnknown_02024DEC
+ movs r0, 0x6E
+ strh r0, [r1]
+ movs r3, 0x9
+ b _080291E4
+ .align 2, 0
+_080291D8: .4byte gUnknown_02024DEC
+_080291DC:
+ ldr r1, _08029250 @ =gUnknown_02024DEC
+ movs r0, 0x96
+ strh r0, [r1]
+ movs r3, 0xA
+_080291E4:
+ ldr r1, _08029254 @ =gUnknown_030041C0
+ movs r2, 0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ strb r0, [r1, 0x2]
+ movs r0, 0x2
+ strb r0, [r1, 0x3]
+ strb r3, [r1, 0x4]
+ movs r0, 0xFF
+ strb r0, [r1, 0x5]
+ ldr r1, _08029258 @ =gUnknown_02024C08
+ strb r2, [r1]
+ ldr r0, _0802925C @ =gUnknown_02024A68
+ ldrb r3, [r0]
+ adds r6, r1, 0
+ ldr r0, _08029260 @ =gUnknown_02024C10
+ mov r8, r0
+ cmp r2, r3
+ bcs _0802923C
+ adds r4, r6, 0
+ ldr r0, _08029264 @ =gUnknown_02024C07
+ ldrb r5, [r0]
+ ldr r1, _08029268 @ =gBitTable
+ mov r12, r1
+ ldr r7, _0802926C @ =gUnknown_02024C0C
+_0802921A:
+ ldrb r2, [r4]
+ cmp r2, r5
+ beq _08029230
+ ldrb r0, [r7]
+ ldrb r1, [r6]
+ lsls r1, 2
+ add r1, r12
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ beq _0802923C
+_08029230:
+ adds r0, r2, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r3
+ bcc _0802921A
+_0802923C:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029250: .4byte gUnknown_02024DEC
+_08029254: .4byte gUnknown_030041C0
+_08029258: .4byte gUnknown_02024C08
+_0802925C: .4byte gUnknown_02024A68
+_08029260: .4byte gUnknown_02024C10
+_08029264: .4byte gUnknown_02024C07
+_08029268: .4byte gBitTable
+_0802926C: .4byte gUnknown_02024C0C
+ thumb_func_end atkB9_magnitudedamagecalculation
+
+ thumb_func_start sub_8029270
+sub_8029270: @ 8029270
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _08029294 @ =gUnknown_02024C0E
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080292A0
+ ldr r0, _08029298 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802929C
+ movs r0, 0x1
+ b _080292BA
+ .align 2, 0
+_08029294: .4byte gUnknown_02024C0E
+_08029298: .4byte gUnknown_02024C07
+_0802929C:
+ movs r0, 0
+ b _080292BA
+_080292A0:
+ ldr r0, _080292B4 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080292B8
+ movs r0, 0x3
+ b _080292BA
+ .align 2, 0
+_080292B4: .4byte gUnknown_02024C07
+_080292B8:
+ movs r0, 0x2
+_080292BA:
+ bl battle_get_side_with_given_state
+ ldr r1, _0802937C @ =gUnknown_02024C08
+ strb r0, [r1]
+ ldr r0, _08029380 @ =gUnknown_02024C18
+ ldr r1, _0802937C @ =gUnknown_02024C08
+ mov r9, r1
+ ldrb r3, [r1]
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080293BC
+ ldr r5, _08029384 @ =gUnknown_02024C07
+ ldr r0, _08029388 @ =0x02000000
+ ldr r2, _0802938C @ =0x00016010
+ adds r1, r3, r2
+ adds r1, r0
+ ldrb r2, [r5]
+ mov r10, r0
+ ldrb r1, [r1]
+ cmp r2, r1
+ bne _080293BC
+ ldr r4, _08029390 @ =gBattleMons
+ movs r2, 0x58
+ adds r0, r3, 0
+ muls r0, r2
+ adds r1, r4, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x27
+ ands r0, r1
+ cmp r0, 0
+ bne _080293BC
+ ldrb r0, [r5]
+ muls r0, r2
+ adds r0, r4
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _080293BC
+ ldr r0, _08029394 @ =gUnknown_02024CA8
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x18]
+ lsls r0, 31
+ cmp r0, 0
+ bne _080293BC
+ ldr r0, _08029398 @ =gUnknown_02024C60
+ lsls r1, r3, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0xE4
+ bne _080293BC
+ movs r1, 0
+ ldr r0, _0802939C @ =gUnknown_02024A68
+ ldr r7, _080293A0 @ =gUnknown_02024BE6
+ mov r8, r7
+ ldr r2, _080293A4 @ =gUnknown_02024C6C
+ mov r12, r2
+ ldrb r7, [r0]
+ cmp r1, r7
+ bge _0802935A
+ ldr r6, _080293A8 @ =gUnknown_02024A7A
+ mov r5, r9
+ ldr r4, _080293AC @ =gUnknown_02024A76
+ movs r3, 0xB
+ adds r2, r0, 0
+_08029344:
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ ldrb r7, [r5]
+ cmp r0, r7
+ bne _08029352
+ adds r0, r1, r4
+ strb r3, [r0]
+_08029352:
+ adds r1, 0x1
+ ldrb r0, [r2]
+ cmp r1, r0
+ blt _08029344
+_0802935A:
+ movs r0, 0xE4
+ mov r1, r8
+ strh r0, [r1]
+ ldr r2, _080293B0 @ =gUnknown_02024C10
+ ldr r0, [r2]
+ adds r0, 0x5
+ str r0, [r2]
+ ldr r1, _080293B4 @ =0x00016002
+ add r1, r10
+ movs r0, 0x1
+ strb r0, [r1]
+ mov r7, r12
+ ldr r0, [r7]
+ ldr r1, _080293B8 @ =0xfffffbff
+ ands r0, r1
+ str r0, [r7]
+ b _080293D6
+ .align 2, 0
+_0802937C: .4byte gUnknown_02024C08
+_08029380: .4byte gUnknown_02024C18
+_08029384: .4byte gUnknown_02024C07
+_08029388: .4byte 0x02000000
+_0802938C: .4byte 0x00016010
+_08029390: .4byte gBattleMons
+_08029394: .4byte gUnknown_02024CA8
+_08029398: .4byte gUnknown_02024C60
+_0802939C: .4byte gUnknown_02024A68
+_080293A0: .4byte gUnknown_02024BE6
+_080293A4: .4byte gUnknown_02024C6C
+_080293A8: .4byte gUnknown_02024A7A
+_080293AC: .4byte gUnknown_02024A76
+_080293B0: .4byte gUnknown_02024C10
+_080293B4: .4byte 0x00016002
+_080293B8: .4byte 0xfffffbff
+_080293BC:
+ ldr r3, _080293E4 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_080293D6:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080293E4: .4byte gUnknown_02024C10
+ thumb_func_end sub_8029270
+
+ thumb_func_start sub_80293E8
+sub_80293E8: @ 80293E8
+ push {lr}
+ ldr r2, _08029408 @ =word_2024DB8
+ ldrh r1, [r2]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _08029414
+ ldr r2, _0802940C @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08029410 @ =gUnknown_02024D1E
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ b _08029426
+ .align 2, 0
+_08029408: .4byte word_2024DB8
+_0802940C: .4byte gUnknown_02024C68
+_08029410: .4byte gUnknown_02024D1E
+_08029414:
+ movs r0, 0x20
+ strh r0, [r2]
+ ldr r1, _08029434 @ =gUnknown_02024D1E
+ movs r0, 0x4
+ strb r0, [r1, 0x5]
+ ldr r0, _08029438 @ =gUnknown_02024DBC
+ adds r0, 0x28
+ movs r1, 0x5
+ strb r1, [r0]
+_08029426:
+ ldr r1, _0802943C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029434: .4byte gUnknown_02024D1E
+_08029438: .4byte gUnknown_02024DBC
+_0802943C: .4byte gUnknown_02024C10
+ thumb_func_end sub_80293E8
+
+ thumb_func_start atkBC_maxattackhalvehp
+atkBC_maxattackhalvehp: @ 8029440
+ push {r4,r5,lr}
+ ldr r5, _0802948C @ =gBattleMons
+ ldr r4, _08029490 @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ movs r3, 0x58
+ muls r0, r3
+ adds r2, r0, r5
+ ldrh r0, [r2, 0x2C]
+ lsrs r1, r0, 1
+ cmp r1, 0
+ bne _08029458
+ movs r1, 0x1
+_08029458:
+ movs r0, 0x19
+ ldrsb r0, [r2, r0]
+ cmp r0, 0xB
+ bgt _0802949C
+ ldrh r0, [r2, 0x28]
+ cmp r0, r1
+ bls _0802949C
+ movs r0, 0xC
+ strb r0, [r2, 0x19]
+ ldr r1, _08029494 @ =gUnknown_02024BEC
+ ldrb r0, [r4]
+ muls r0, r3
+ adds r0, r5
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 1
+ str r0, [r1]
+ cmp r0, 0
+ bne _08029480
+ movs r0, 0x1
+ str r0, [r1]
+_08029480:
+ ldr r1, _08029498 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _080294B6
+ .align 2, 0
+_0802948C: .4byte gBattleMons
+_08029490: .4byte gUnknown_02024C07
+_08029494: .4byte gUnknown_02024BEC
+_08029498: .4byte gUnknown_02024C10
+_0802949C:
+ ldr r3, _080294BC @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_080294B6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080294BC: .4byte gUnknown_02024C10
+ thumb_func_end atkBC_maxattackhalvehp
+
+ thumb_func_start atkBD_copyfoestats
+atkBD_copyfoestats: @ 80294C0
+ push {r4-r7,lr}
+ movs r2, 0
+ ldr r7, _080294F8 @ =gUnknown_02024C10
+ ldr r6, _080294FC @ =gUnknown_02024C07
+ movs r4, 0x58
+ ldr r3, _08029500 @ =gUnknown_02024A98
+ ldr r5, _08029504 @ =gUnknown_02024C08
+_080294CE:
+ ldrb r0, [r6]
+ adds r1, r0, 0
+ muls r1, r4
+ adds r1, r2, r1
+ adds r1, r3
+ ldrb r0, [r5]
+ muls r0, r4
+ adds r0, r2, r0
+ adds r0, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _080294CE
+ ldr r0, [r7]
+ adds r0, 0x5
+ str r0, [r7]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080294F8: .4byte gUnknown_02024C10
+_080294FC: .4byte gUnknown_02024C07
+_08029500: .4byte gUnknown_02024A98
+_08029504: .4byte gUnknown_02024C08
+ thumb_func_end atkBD_copyfoestats
+
+ thumb_func_start atkBE_breakfree
+atkBE_breakfree: @ 8029508
+ push {r4,r5,lr}
+ ldr r1, _08029570 @ =gBattleMons
+ ldr r5, _08029574 @ =gUnknown_02024C07
+ ldrb r2, [r5]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r3, r0, r1
+ ldr r1, [r3]
+ movs r0, 0xE0
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _08029594
+ ldr r0, _08029578 @ =0xffff1fff
+ ands r1, r0
+ str r1, [r3]
+ ldr r1, _0802957C @ =gUnknown_02024C08
+ ldr r2, _08029580 @ =0x02000000
+ ldrb r0, [r5]
+ ldr r3, _08029584 @ =0x00016020
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r1, _08029588 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r5]
+ lsls r0, 1
+ subs r3, 0x1C
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r3, 0x1
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0802958C @ =gUnknown_02024C10
+ ldr r0, _08029590 @ =gUnknown_081D92C2
+ b _0802963E
+ .align 2, 0
+_08029570: .4byte gBattleMons
+_08029574: .4byte gUnknown_02024C07
+_08029578: .4byte 0xffff1fff
+_0802957C: .4byte gUnknown_02024C08
+_08029580: .4byte 0x02000000
+_08029584: .4byte 0x00016020
+_08029588: .4byte gUnknown_030041C0
+_0802958C: .4byte gUnknown_02024C10
+_08029590: .4byte gUnknown_081D92C2
+_08029594:
+ ldr r4, _080295C8 @ =gUnknown_02024C98
+ lsls r0, r2, 2
+ adds r3, r0, r4
+ ldr r1, [r3]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080295D4
+ movs r0, 0x5
+ negs r0, r0
+ ands r1, r0
+ str r1, [r3]
+ ldrb r1, [r5]
+ lsls r1, 2
+ adds r1, r4
+ ldr r0, [r1]
+ movs r2, 0x4
+ negs r2, r2
+ ands r0, r2
+ str r0, [r1]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _080295CC @ =gUnknown_02024C10
+ ldr r0, _080295D0 @ =gUnknown_081D92C9
+ b _0802963E
+ .align 2, 0
+_080295C8: .4byte gUnknown_02024C98
+_080295CC: .4byte gUnknown_02024C10
+_080295D0: .4byte gUnknown_081D92C9
+_080295D4:
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ ldr r4, _08029624 @ =gUnknown_02024C7A
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ ldrh r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08029638
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ ldrh r2, [r0]
+ ldr r1, _08029628 @ =0x0000ffef
+ ands r1, r2
+ movs r4, 0
+ strh r1, [r0]
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ ldr r2, _0802962C @ =gUnknown_02024C80
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ strb r4, [r1, 0x6]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08029630 @ =gUnknown_02024C10
+ ldr r0, _08029634 @ =gUnknown_081D92D0
+ b _0802963E
+ .align 2, 0
+_08029624: .4byte gUnknown_02024C7A
+_08029628: .4byte 0x0000ffef
+_0802962C: .4byte gUnknown_02024C80
+_08029630: .4byte gUnknown_02024C10
+_08029634: .4byte gUnknown_081D92D0
+_08029638:
+ ldr r1, _08029648 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+_0802963E:
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029648: .4byte gUnknown_02024C10
+ thumb_func_end atkBE_breakfree
+
+ thumb_func_start sub_802964C
+sub_802964C: @ 802964C
+ ldr r1, _08029670 @ =gBattleMons
+ ldr r0, _08029674 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 23
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _08029678 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08029670: .4byte gBattleMons
+_08029674: .4byte gUnknown_02024C07
+_08029678: .4byte gUnknown_02024C10
+ thumb_func_end sub_802964C
+
+ thumb_func_start atkC0_recoverbasedonsunlight
+atkC0_recoverbasedonsunlight: @ 802967C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r1, _080296E8 @ =gUnknown_02024C08
+ ldr r5, _080296EC @ =gUnknown_02024C07
+ ldrb r0, [r5]
+ strb r0, [r1]
+ ldr r7, _080296F0 @ =gBattleMons
+ ldrb r0, [r5]
+ movs r6, 0x58
+ muls r0, r6
+ adds r0, r7
+ ldrh r1, [r0, 0x28]
+ ldrh r0, [r0, 0x2C]
+ cmp r1, r0
+ beq _0802975C
+ ldr r4, _080296F4 @ =word_2024DB8
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080296CE
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080296CE
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _080296FC
+_080296CE:
+ ldr r3, _080296F8 @ =gUnknown_02024BEC
+ ldr r2, _080296F0 @ =gBattleMons
+ ldr r0, _080296EC @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 1
+ str r0, [r3]
+ adds r1, r3, 0
+ b _08029736
+ .align 2, 0
+_080296E8: .4byte gUnknown_02024C08
+_080296EC: .4byte gUnknown_02024C07
+_080296F0: .4byte gBattleMons
+_080296F4: .4byte word_2024DB8
+_080296F8: .4byte gUnknown_02024BEC
+_080296FC:
+ ldrh r1, [r4]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _08029728
+ ldr r4, _08029724 @ =gUnknown_02024BEC
+ ldrb r0, [r5]
+ muls r0, r6
+ adds r0, r7
+ ldrh r1, [r0, 0x2C]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ movs r1, 0x1E
+ bl __divsi3
+ str r0, [r4]
+ adds r1, r4, 0
+ b _08029736
+ .align 2, 0
+_08029724: .4byte gUnknown_02024BEC
+_08029728:
+ ldr r1, _08029754 @ =gUnknown_02024BEC
+ ldrb r0, [r5]
+ muls r0, r6
+ adds r0, r7
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 2
+ str r0, [r1]
+_08029736:
+ adds r2, r1, 0
+ ldr r0, [r2]
+ cmp r0, 0
+ bne _08029742
+ movs r0, 0x1
+ str r0, [r2]
+_08029742:
+ ldr r0, [r1]
+ negs r0, r0
+ str r0, [r1]
+ ldr r1, _08029758 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08029776
+ .align 2, 0
+_08029754: .4byte gUnknown_02024BEC
+_08029758: .4byte gUnknown_02024C10
+_0802975C:
+ ldr r3, _08029780 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_08029776:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029780: .4byte gUnknown_02024C10
+ thumb_func_end atkC0_recoverbasedonsunlight
+
+ thumb_func_start sub_8029784
+sub_8029784: @ 8029784
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r2, _08029894 @ =gBattleMons
+ ldr r0, _08029898 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ adds r4, r1, 0
+ muls r4, r0
+ adds r4, r2
+ ldrb r0, [r4, 0x14]
+ mov r10, r0
+ mov r7, r10
+ lsls r7, 27
+ adds r0, r7, 0
+ lsrs r0, 27
+ mov r10, r0
+ movs r1, 0x2
+ mov r2, r10
+ ands r2, r1
+ asrs r2, 1
+ ldrh r7, [r4, 0x14]
+ mov r9, r7
+ mov r0, r9
+ lsls r0, 22
+ mov r9, r0
+ lsrs r3, r0, 27
+ adds r0, r1, 0
+ ands r0, r3
+ orrs r2, r0
+ ldrb r7, [r4, 0x15]
+ mov r8, r7
+ mov r0, r8
+ lsls r0, 25
+ mov r8, r0
+ lsrs r3, r0, 27
+ adds r0, r1, 0
+ ands r0, r3
+ lsls r0, 1
+ orrs r2, r0
+ ldr r6, [r4, 0x14]
+ lsls r6, 12
+ lsrs r3, r6, 27
+ adds r0, r1, 0
+ ands r0, r3
+ lsls r0, 2
+ orrs r2, r0
+ ldrh r5, [r4, 0x16]
+ lsls r5, 23
+ lsrs r3, r5, 27
+ adds r0, r1, 0
+ ands r0, r3
+ lsls r0, 3
+ orrs r2, r0
+ ldrb r3, [r4, 0x17]
+ lsls r3, 26
+ lsrs r0, r3, 27
+ ands r1, r0
+ lsls r1, 4
+ orrs r2, r1
+ movs r1, 0x1
+ adds r4, r1, 0
+ mov r7, r10
+ ands r4, r7
+ mov r0, r9
+ lsrs r0, 27
+ mov r9, r0
+ adds r0, r1, 0
+ mov r7, r9
+ ands r0, r7
+ lsls r0, 1
+ orrs r4, r0
+ mov r0, r8
+ lsrs r0, 27
+ mov r8, r0
+ adds r0, r1, 0
+ mov r7, r8
+ ands r0, r7
+ lsls r0, 2
+ orrs r4, r0
+ lsrs r6, 27
+ adds r0, r1, 0
+ ands r0, r6
+ lsls r0, 3
+ orrs r4, r0
+ lsrs r5, 27
+ adds r0, r1, 0
+ ands r0, r5
+ lsls r0, 4
+ orrs r4, r0
+ lsrs r3, 27
+ ands r1, r3
+ lsls r1, 5
+ orrs r4, r1
+ ldr r5, _0802989C @ =gUnknown_02024DEC
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ movs r1, 0x3F
+ bl __divsi3
+ adds r0, 0x1E
+ strh r0, [r5]
+ ldr r5, _080298A0 @ =0x02000000
+ lsls r0, r4, 4
+ subs r0, r4
+ movs r1, 0x3F
+ bl __divsi3
+ adds r1, r0, 0x1
+ ldr r0, _080298A4 @ =0x0001601c
+ adds r5, r0
+ strb r1, [r5]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ bls _08029876
+ adds r0, r1, 0x1
+ strb r0, [r5]
+_08029876:
+ ldrb r0, [r5]
+ movs r1, 0xC0
+ orrs r0, r1
+ strb r0, [r5]
+ ldr r1, _080298A8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029894: .4byte gBattleMons
+_08029898: .4byte gUnknown_02024C07
+_0802989C: .4byte gUnknown_02024DEC
+_080298A0: .4byte 0x02000000
+_080298A4: .4byte 0x0001601c
+_080298A8: .4byte gUnknown_02024C10
+ thumb_func_end sub_8029784
+
+ thumb_func_start atkC2_selectnexttarget
+atkC2_selectnexttarget: @ 80298AC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _08029908 @ =gUnknown_02024C08
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, _0802990C @ =gUnknown_02024A68
+ ldrb r1, [r1]
+ adds r6, r0, 0
+ ldr r0, _08029910 @ =gUnknown_02024C10
+ mov r8, r0
+ cmp r1, 0
+ beq _080298F6
+ adds r3, r6, 0
+ ldr r0, _08029914 @ =gUnknown_02024C07
+ ldrb r5, [r0]
+ ldr r0, _08029918 @ =gBitTable
+ mov r12, r0
+ adds r4, r1, 0
+ ldr r7, _0802991C @ =gUnknown_02024C0C
+_080298D4:
+ ldrb r2, [r3]
+ cmp r2, r5
+ beq _080298EA
+ ldrb r0, [r7]
+ ldrb r1, [r6]
+ lsls r1, 2
+ add r1, r12
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ beq _080298F6
+_080298EA:
+ adds r0, r2, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r4
+ bcc _080298D4
+_080298F6:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029908: .4byte gUnknown_02024C08
+_0802990C: .4byte gUnknown_02024A68
+_08029910: .4byte gUnknown_02024C10
+_08029914: .4byte gUnknown_02024C07
+_08029918: .4byte gBitTable
+_0802991C: .4byte gUnknown_02024C0C
+ thumb_func_end atkC2_selectnexttarget
+
+ thumb_func_start atkC3_setfutureattack
+atkC3_setfutureattack: @ 8029920
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ ldr r0, _08029958 @ =gUnknown_02024DBC
+ mov r8, r0
+ ldr r7, _0802995C @ =gUnknown_02024C08
+ ldrb r1, [r7]
+ adds r0, r1, r0
+ ldrb r6, [r0]
+ cmp r6, 0
+ beq _08029964
+ ldr r3, _08029960 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08029A2E
+ .align 2, 0
+_08029958: .4byte gUnknown_02024DBC
+_0802995C: .4byte gUnknown_02024C08
+_08029960: .4byte gUnknown_02024C10
+_08029964:
+ lsls r1, 1
+ mov r0, r8
+ adds r0, 0x18
+ adds r1, r0
+ ldr r2, _08029A04 @ =gUnknown_02024BE6
+ mov r9, r2
+ ldrh r0, [r2]
+ strh r0, [r1]
+ mov r0, r8
+ adds r0, 0x4
+ ldrb r4, [r7]
+ adds r0, r4
+ ldr r5, _08029A08 @ =gUnknown_02024C07
+ ldrb r1, [r5]
+ strb r1, [r0]
+ ldrb r0, [r7]
+ add r0, r8
+ movs r1, 0x3
+ strb r1, [r0]
+ ldr r4, _08029A0C @ =gUnknown_02024C7A
+ ldrb r0, [r7]
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ mov r10, r1
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ ldrb r0, [r5]
+ movs r4, 0x58
+ muls r0, r4
+ ldr r2, _08029A10 @ =gBattleMons
+ adds r0, r2
+ ldrb r1, [r7]
+ muls r1, r4
+ adds r1, r2
+ mov r4, r9
+ ldrh r2, [r4]
+ str r6, [sp]
+ str r6, [sp, 0x4]
+ ldrb r4, [r5]
+ str r4, [sp, 0x8]
+ ldrb r4, [r7]
+ str r4, [sp, 0xC]
+ bl CalculateBaseDamage
+ ldrb r1, [r7]
+ lsls r1, 2
+ mov r2, r8
+ adds r2, 0x8
+ adds r1, r2
+ str r0, [r1]
+ ldr r1, _08029A14 @ =gUnknown_02024D28
+ ldrb r0, [r5]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 28
+ cmp r0, 0
+ bge _080299F2
+ ldrb r4, [r7]
+ lsls r4, 2
+ adds r4, r2
+ ldr r1, [r4]
+ lsls r0, r1, 4
+ subs r0, r1
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r4]
+_080299F2:
+ mov r0, r9
+ ldrh r1, [r0]
+ ldr r0, _08029A18 @ =0x00000161
+ cmp r1, r0
+ bne _08029A20
+ ldr r0, _08029A1C @ =gUnknown_02024D1E
+ mov r1, r10
+ strb r1, [r0, 0x5]
+ b _08029A26
+ .align 2, 0
+_08029A04: .4byte gUnknown_02024BE6
+_08029A08: .4byte gUnknown_02024C07
+_08029A0C: .4byte gUnknown_02024C7A
+_08029A10: .4byte gBattleMons
+_08029A14: .4byte gUnknown_02024D28
+_08029A18: .4byte 0x00000161
+_08029A1C: .4byte gUnknown_02024D1E
+_08029A20:
+ ldr r1, _08029A40 @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r1, 0x5]
+_08029A26:
+ ldr r1, _08029A44 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08029A2E:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029A40: .4byte gUnknown_02024D1E
+_08029A44: .4byte gUnknown_02024C10
+ thumb_func_end atkC3_setfutureattack
+
+ thumb_func_start atkC4_802B910
+atkC4_802B910: @ 8029A48
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _08029A8C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r7, _08029A90 @ =gEnemyParty
+ cmp r0, 0
+ bne _08029A62
+ ldr r7, _08029A94 @ =gPlayerParty
+_08029A62:
+ ldr r2, _08029A98 @ =gBattleMons
+ ldr r0, _08029A9C @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _08029AA4
+ ldr r3, _08029AA0 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ b _08029C40
+ .align 2, 0
+_08029A8C: .4byte gUnknown_02024C07
+_08029A90: .4byte gEnemyParty
+_08029A94: .4byte gPlayerParty
+_08029A98: .4byte gBattleMons
+_08029A9C: .4byte gUnknown_02024C08
+_08029AA0: .4byte gUnknown_02024C10
+_08029AA4:
+ ldr r6, _08029BE0 @ =gUnknown_02024D1E
+ ldrb r0, [r6]
+ mov r8, r0
+ cmp r0, 0x5
+ bls _08029AB0
+ b _08029C0C
+_08029AB0:
+ adds r4, r6, 0
+ movs r5, 0x64
+_08029AB4:
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r0, r7, r0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08029AF8
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r7, r0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _08029AF8
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r0, r7, r0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _08029AF8
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r0, r7, r0
+ movs r1, 0x37
+ bl GetMonData
+ cmp r0, 0
+ beq _08029B08
+_08029AF8:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ adds r6, r4, 0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bls _08029AB4
+_08029B08:
+ ldr r1, _08029BE0 @ =gUnknown_02024D1E
+ mov r9, r1
+ ldrb r2, [r1]
+ cmp r2, 0x5
+ bhi _08029C0C
+ ldr r1, _08029BE4 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x4
+ strb r0, [r1, 0x1]
+ ldr r6, _08029BE8 @ =gUnknown_02024C07
+ ldrb r0, [r6]
+ strb r0, [r1, 0x2]
+ strb r2, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08029BEC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x9
+ str r0, [r1]
+ ldr r2, _08029BF0 @ =gUnknown_02024BEC
+ mov r8, r2
+ ldr r5, _08029BF4 @ =gBaseStats
+ mov r1, r9
+ ldrb r0, [r1]
+ movs r4, 0x64
+ muls r0, r4
+ adds r0, r7, r0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r3, [r1, 0x1]
+ mov r2, r8
+ str r3, [r2]
+ ldr r2, _08029BF8 @ =gBattleMoves
+ ldr r0, _08029BFC @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ muls r0, r3
+ mov r1, r8
+ str r0, [r1]
+ mov r2, r9
+ ldrb r0, [r2]
+ muls r0, r4
+ adds r0, r7, r0
+ movs r1, 0x38
+ bl GetMonData
+ lsls r0, 1
+ movs r1, 0x5
+ bl __udivsi3
+ adds r0, 0x2
+ mov r2, r8
+ ldr r1, [r2]
+ muls r0, r1
+ str r0, [r2]
+ ldr r3, _08029C00 @ =gBattleMons
+ ldr r1, _08029C04 @ =gUnknown_02024C08
+ ldrb r2, [r1]
+ movs r1, 0x58
+ muls r1, r2
+ adds r1, r3
+ ldrh r2, [r1]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r5
+ ldrb r1, [r1, 0x2]
+ bl __divsi3
+ mov r1, r8
+ str r0, [r1]
+ movs r1, 0x32
+ bl __divsi3
+ adds r2, r0, 0x2
+ mov r0, r8
+ str r2, [r0]
+ ldr r1, _08029C08 @ =gUnknown_02024D28
+ ldrb r0, [r6]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08029BD4
+ lsls r0, r2, 4
+ subs r0, r2
+ movs r1, 0xA
+ bl __divsi3
+ mov r1, r8
+ str r0, [r1]
+_08029BD4:
+ mov r2, r9
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ b _08029C46
+ .align 2, 0
+_08029BE0: .4byte gUnknown_02024D1E
+_08029BE4: .4byte gUnknown_030041C0
+_08029BE8: .4byte gUnknown_02024C07
+_08029BEC: .4byte gUnknown_02024C10
+_08029BF0: .4byte gUnknown_02024BEC
+_08029BF4: .4byte gBaseStats
+_08029BF8: .4byte gBattleMoves
+_08029BFC: .4byte gUnknown_02024BE6
+_08029C00: .4byte gBattleMons
+_08029C04: .4byte gUnknown_02024C08
+_08029C08: .4byte gUnknown_02024D28
+_08029C0C:
+ mov r0, r8
+ cmp r0, 0
+ beq _08029C2C
+ ldr r3, _08029C28 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ b _08029C40
+ .align 2, 0
+_08029C28: .4byte gUnknown_02024C10
+_08029C2C:
+ ldr r3, _08029C54 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+_08029C40:
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_08029C46:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029C54: .4byte gUnknown_02024C10
+ thumb_func_end atkC4_802B910
+
+ thumb_func_start atkC5_hidepreattack
+atkC5_hidepreattack: @ 8029C58
+ push {lr}
+ ldr r0, _08029C6C @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ cmp r1, 0x5B
+ beq _08029C98
+ cmp r1, 0x5B
+ bgt _08029C70
+ cmp r1, 0x13
+ beq _08029C7C
+ b _08029CC4
+ .align 2, 0
+_08029C6C: .4byte gUnknown_02024BE6
+_08029C70:
+ ldr r0, _08029C8C @ =0x00000123
+ cmp r1, r0
+ beq _08029CB0
+ adds r0, 0x31
+ cmp r1, r0
+ bne _08029CC4
+_08029C7C:
+ ldr r2, _08029C90 @ =gUnknown_02024C98
+ ldr r0, _08029C94 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1]
+ movs r2, 0x40
+ b _08029CC0
+ .align 2, 0
+_08029C8C: .4byte 0x00000123
+_08029C90: .4byte gUnknown_02024C98
+_08029C94: .4byte gUnknown_02024C07
+_08029C98:
+ ldr r2, _08029CA8 @ =gUnknown_02024C98
+ ldr r0, _08029CAC @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1]
+ movs r2, 0x80
+ b _08029CC0
+ .align 2, 0
+_08029CA8: .4byte gUnknown_02024C98
+_08029CAC: .4byte gUnknown_02024C07
+_08029CB0:
+ ldr r2, _08029CD0 @ =gUnknown_02024C98
+ ldr r0, _08029CD4 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 11
+_08029CC0:
+ orrs r0, r2
+ str r0, [r1]
+_08029CC4:
+ ldr r1, _08029CD8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029CD0: .4byte gUnknown_02024C98
+_08029CD4: .4byte gUnknown_02024C07
+_08029CD8: .4byte gUnknown_02024C10
+ thumb_func_end atkC5_hidepreattack
+
+ thumb_func_start atkC6_unhidepostattack
+atkC6_unhidepostattack: @ 8029CDC
+ push {lr}
+ ldr r0, _08029CF0 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ cmp r1, 0x5B
+ beq _08029D20
+ cmp r1, 0x5B
+ bgt _08029CF4
+ cmp r1, 0x13
+ beq _08029D00
+ b _08029D4E
+ .align 2, 0
+_08029CF0: .4byte gUnknown_02024BE6
+_08029CF4:
+ ldr r0, _08029D14 @ =0x00000123
+ cmp r1, r0
+ beq _08029D3C
+ adds r0, 0x31
+ cmp r1, r0
+ bne _08029D4E
+_08029D00:
+ ldr r2, _08029D18 @ =gUnknown_02024C98
+ ldr r0, _08029D1C @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1]
+ movs r2, 0x41
+ negs r2, r2
+ b _08029D4A
+ .align 2, 0
+_08029D14: .4byte 0x00000123
+_08029D18: .4byte gUnknown_02024C98
+_08029D1C: .4byte gUnknown_02024C07
+_08029D20:
+ ldr r2, _08029D34 @ =gUnknown_02024C98
+ ldr r0, _08029D38 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1]
+ movs r2, 0x81
+ negs r2, r2
+ b _08029D4A
+ .align 2, 0
+_08029D34: .4byte gUnknown_02024C98
+_08029D38: .4byte gUnknown_02024C07
+_08029D3C:
+ ldr r2, _08029D5C @ =gUnknown_02024C98
+ ldr r0, _08029D60 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1]
+ ldr r2, _08029D64 @ =0xfffbffff
+_08029D4A:
+ ands r0, r2
+ str r0, [r1]
+_08029D4E:
+ ldr r1, _08029D68 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029D5C: .4byte gUnknown_02024C98
+_08029D60: .4byte gUnknown_02024C07
+_08029D64: .4byte 0xfffbffff
+_08029D68: .4byte gUnknown_02024C10
+ thumb_func_end atkC6_unhidepostattack
+
+ thumb_func_start atkC7_setminimize
+atkC7_setminimize: @ 8029D6C
+ push {lr}
+ ldr r0, _08029D9C @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 18
+ ands r0, r1
+ cmp r0, 0
+ beq _08029D90
+ ldr r2, _08029DA0 @ =gUnknown_02024C98
+ ldr r0, _08029DA4 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 1
+ orrs r0, r2
+ str r0, [r1]
+_08029D90:
+ ldr r1, _08029DA8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029D9C: .4byte gUnknown_02024C6C
+_08029DA0: .4byte gUnknown_02024C98
+_08029DA4: .4byte gUnknown_02024C07
+_08029DA8: .4byte gUnknown_02024C10
+ thumb_func_end atkC7_setminimize
+
+ thumb_func_start sub_8029DAC
+sub_8029DAC: @ 8029DAC
+ push {lr}
+ ldr r3, _08029DD0 @ =word_2024DB8
+ ldrh r1, [r3]
+ movs r2, 0x80
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08029DDC
+ ldr r2, _08029DD4 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08029DD8 @ =gUnknown_02024D1E
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ b _08029DEA
+ .align 2, 0
+_08029DD0: .4byte word_2024DB8
+_08029DD4: .4byte gUnknown_02024C68
+_08029DD8: .4byte gUnknown_02024D1E
+_08029DDC:
+ strh r2, [r3]
+ ldr r0, _08029DF8 @ =gUnknown_02024D1E
+ movs r1, 0x5
+ strb r1, [r0, 0x5]
+ ldr r0, _08029DFC @ =gUnknown_02024DBC
+ adds r0, 0x28
+ strb r1, [r0]
+_08029DEA:
+ ldr r1, _08029E00 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029DF8: .4byte gUnknown_02024D1E
+_08029DFC: .4byte gUnknown_02024DBC
+_08029E00: .4byte gUnknown_02024C10
+ thumb_func_end sub_8029DAC
+
+ thumb_func_start atkC9_jumpifattackandspecialattackcannotfall
+atkC9_jumpifattackandspecialattackcannotfall: @ 8029E04
+ push {r4,lr}
+ ldr r2, _08029E48 @ =gBattleMons
+ ldr r0, _08029E4C @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r0, r2
+ movs r0, 0x19
+ ldrsb r0, [r1, r0]
+ adds r3, r2, 0
+ cmp r0, 0
+ bne _08029E58
+ movs r0, 0x1C
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bne _08029E58
+ ldr r0, _08029E50 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x1
+ beq _08029E58
+ ldr r3, _08029E54 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08029E84
+ .align 2, 0
+_08029E48: .4byte gBattleMons
+_08029E4C: .4byte gUnknown_02024C08
+_08029E50: .4byte gUnknown_02024D1E
+_08029E54: .4byte gUnknown_02024C10
+_08029E58:
+ ldr r4, _08029E8C @ =gUnknown_02024A60
+ ldr r0, _08029E90 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r2, _08029E94 @ =gUnknown_02024BEC
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r3
+ ldrh r0, [r0, 0x28]
+ str r0, [r2]
+ ldr r1, _08029E98 @ =0x00007fff
+ movs r0, 0
+ bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _08029E9C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08029E84:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029E8C: .4byte gUnknown_02024A60
+_08029E90: .4byte gUnknown_02024C07
+_08029E94: .4byte gUnknown_02024BEC
+_08029E98: .4byte 0x00007fff
+_08029E9C: .4byte gUnknown_02024C10
+ thumb_func_end atkC9_jumpifattackandspecialattackcannotfall
+
+ thumb_func_start atkCA_setforcedtarget
+atkCA_setforcedtarget: @ 8029EA0
+ push {r4,r5,lr}
+ ldr r4, _08029EE0 @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ ldr r5, _08029EE4 @ =gUnknown_02024C80
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r4]
+ strb r0, [r1, 0x9]
+ ldr r1, _08029EE8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029EE0: .4byte gUnknown_02024C07
+_08029EE4: .4byte gUnknown_02024C80
+_08029EE8: .4byte gUnknown_02024C10
+ thumb_func_end atkCA_setforcedtarget
+
+ thumb_func_start atkCB_setcharge
+atkCB_setcharge: @ 8029EEC
+ push {r4,lr}
+ ldr r0, _08029F40 @ =gUnknown_02024C98
+ ldr r3, _08029F44 @ =gUnknown_02024C07
+ ldrb r1, [r3]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 2
+ orrs r0, r2
+ str r0, [r1]
+ ldr r4, _08029F48 @ =gUnknown_02024CA8
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r2, [r0, 0x12]
+ movs r1, 0x10
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0, 0x12]
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r2, [r0, 0x12]
+ movs r1, 0xF
+ ands r1, r2
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0, 0x12]
+ ldr r1, _08029F4C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029F40: .4byte gUnknown_02024C98
+_08029F44: .4byte gUnknown_02024C07
+_08029F48: .4byte gUnknown_02024CA8
+_08029F4C: .4byte gUnknown_02024C10
+ thumb_func_end atkCB_setcharge
+
+ thumb_func_start atkCC_callterrainattack
+atkCC_callterrainattack: @ 8029F50
+ push {r4,lr}
+ ldr r2, _08029FA0 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _08029FA4 @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ ldr r4, _08029FA8 @ =gUnknown_02024BE6
+ ldr r1, _08029FAC @ =gNaturePowerMoves
+ ldr r0, _08029FB0 @ =gUnknown_0300428C
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r4]
+ ldrh r0, [r4]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _08029FB4 @ =gUnknown_02024C08
+ strb r0, [r1]
+ ldr r3, _08029FB8 @ =gUnknown_081D6BBC
+ ldr r2, _08029FBC @ =gBattleMoves
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ bl b_movescr_stack_push
+ ldr r1, _08029FC0 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029FA0: .4byte gUnknown_02024C6C
+_08029FA4: .4byte 0xfffffbff
+_08029FA8: .4byte gUnknown_02024BE6
+_08029FAC: .4byte gNaturePowerMoves
+_08029FB0: .4byte gUnknown_0300428C
+_08029FB4: .4byte gUnknown_02024C08
+_08029FB8: .4byte gUnknown_081D6BBC
+_08029FBC: .4byte gBattleMoves
+_08029FC0: .4byte gUnknown_02024C10
+ thumb_func_end atkCC_callterrainattack
+
+ thumb_func_start atkCD_cureifburnedparalysedorpoisoned
+atkCD_cureifburnedparalysedorpoisoned: @ 8029FC4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r1, _0802A010 @ =gBattleMons
+ ldr r3, _0802A014 @ =gUnknown_02024C07
+ ldrb r0, [r3]
+ movs r6, 0x58
+ muls r0, r6
+ adds r5, r1, 0
+ adds r5, 0x4C
+ adds r2, r0, r5
+ ldr r0, [r2]
+ movs r1, 0xD8
+ ands r0, r1
+ cmp r0, 0
+ beq _0802A020
+ movs r0, 0
+ str r0, [r2]
+ ldr r1, _0802A018 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ ldr r4, _0802A01C @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ strb r0, [r4]
+ ldrb r0, [r4]
+ muls r0, r6
+ adds r0, r5
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _0802A03A
+ .align 2, 0
+_0802A010: .4byte gBattleMons
+_0802A014: .4byte gUnknown_02024C07
+_0802A018: .4byte gUnknown_02024C10
+_0802A01C: .4byte gUnknown_02024A60
+_0802A020:
+ ldr r3, _0802A044 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802A03A:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A044: .4byte gUnknown_02024C10
+ thumb_func_end atkCD_cureifburnedparalysedorpoisoned
+
+ thumb_func_start atkCE_settorment
+atkCE_settorment: @ 802A048
+ push {lr}
+ ldr r1, _0802A080 @ =gBattleMons
+ ldr r0, _0802A084 @ =gUnknown_02024C08
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r2, 0x80
+ lsls r2, 24
+ cmp r1, 0
+ bge _0802A08C
+ ldr r3, _0802A088 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802A098
+ .align 2, 0
+_0802A080: .4byte gBattleMons
+_0802A084: .4byte gUnknown_02024C08
+_0802A088: .4byte gUnknown_02024C10
+_0802A08C:
+ orrs r1, r2
+ str r1, [r0]
+ ldr r1, _0802A09C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802A098:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A09C: .4byte gUnknown_02024C10
+ thumb_func_end atkCE_settorment
+
+ thumb_func_start atkCF_jumpifnodamage
+atkCF_jumpifnodamage: @ 802A0A0
+ push {lr}
+ ldr r2, _0802A0CC @ =gUnknown_02024D28
+ ldr r0, _0802A0D0 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r0, r2, 0x4
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0802A0C0
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0802A0D8
+_0802A0C0:
+ ldr r1, _0802A0D4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802A0F2
+ .align 2, 0
+_0802A0CC: .4byte gUnknown_02024D28
+_0802A0D0: .4byte gUnknown_02024C07
+_0802A0D4: .4byte gUnknown_02024C10
+_0802A0D8:
+ ldr r3, _0802A0F8 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802A0F2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A0F8: .4byte gUnknown_02024C10
+ thumb_func_end atkCF_jumpifnodamage
+
+ thumb_func_start atkD0_settaunt
+atkD0_settaunt: @ 802A0FC
+ push {r4,lr}
+ ldr r4, _0802A140 @ =gUnknown_02024CA8
+ ldr r3, _0802A144 @ =gUnknown_02024C08
+ ldrb r0, [r3]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r2, r1, r4
+ ldrb r1, [r2, 0x13]
+ lsls r0, r1, 28
+ cmp r0, 0
+ bne _0802A14C
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2, 0x13]
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r2, [r0, 0x13]
+ movs r1, 0xF
+ ands r1, r2
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0, 0x13]
+ ldr r1, _0802A148 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802A166
+ .align 2, 0
+_0802A140: .4byte gUnknown_02024CA8
+_0802A144: .4byte gUnknown_02024C08
+_0802A148: .4byte gUnknown_02024C10
+_0802A14C:
+ ldr r3, _0802A16C @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802A166:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A16C: .4byte gUnknown_02024C10
+ thumb_func_end atkD0_settaunt
+
+ thumb_func_start sub_802A170
+sub_802A170: @ 802A170
+ push {r4,lr}
+ ldr r4, _0802A1D8 @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ ldr r3, _0802A1DC @ =gUnknown_02024C08
+ strb r0, [r3]
+ ldr r0, _0802A1E0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802A1F4
+ ldr r0, _0802A1E4 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _0802A1E8 @ =gBitTable
+ ldrb r3, [r3]
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0802A1F4
+ ldr r1, _0802A1EC @ =gUnknown_02024D28
+ ldrb r0, [r4]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 28
+ cmp r0, 0
+ blt _0802A1F4
+ lsls r0, r3, 4
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ lsls r0, r1, 28
+ cmp r0, 0
+ blt _0802A1F4
+ movs r0, 0x8
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0802A1F0 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802A20E
+ .align 2, 0
+_0802A1D8: .4byte gUnknown_02024C07
+_0802A1DC: .4byte gUnknown_02024C08
+_0802A1E0: .4byte gUnknown_020239F8
+_0802A1E4: .4byte gUnknown_02024C0C
+_0802A1E8: .4byte gBitTable
+_0802A1EC: .4byte gUnknown_02024D28
+_0802A1F0: .4byte gUnknown_02024C10
+_0802A1F4:
+ ldr r3, _0802A214 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802A20E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A214: .4byte gUnknown_02024C10
+ thumb_func_end sub_802A170
+
+ thumb_func_start sub_802A218
+sub_802A218: @ 802A218
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, _0802A30C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0802A24C
+ ldr r0, _0802A310 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _0802A314 @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ bne _0802A24C
+ ldr r0, _0802A318 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ bne _0802A2EE
+_0802A24C:
+ ldr r4, _0802A30C @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0802A310 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _0802A314 @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ bne _0802A290
+ ldr r0, _0802A318 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ beq _0802A290
+ ldr r0, _0802A31C @ =gUnknown_02024DBC
+ adds r0, 0x29
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ ldr r3, _0802A320 @ =gBitTable
+ ldr r2, _0802A324 @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0802A2EE
+_0802A290:
+ ldr r0, _0802A328 @ =gBattleMons
+ mov r9, r0
+ ldr r1, _0802A30C @ =gUnknown_02024C07
+ ldrb r4, [r1]
+ movs r2, 0x58
+ mov r8, r2
+ mov r0, r8
+ muls r0, r4
+ mov r3, r9
+ adds r5, r0, r3
+ ldrh r3, [r5, 0x2E]
+ adds r1, r3, 0
+ cmp r1, 0
+ bne _0802A2BE
+ ldr r0, _0802A32C @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ add r0, r9
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0
+ beq _0802A2EE
+_0802A2BE:
+ cmp r1, 0xAF
+ beq _0802A2EE
+ ldr r7, _0802A32C @ =gUnknown_02024C08
+ ldrb r0, [r7]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ mov r1, r9
+ adds r2, r0, r1
+ ldrh r1, [r2, 0x2E]
+ cmp r1, 0xAF
+ beq _0802A2EE
+ adds r0, r3, 0
+ subs r0, 0x79
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xB
+ bls _0802A2EE
+ adds r0, r1, 0
+ subs r0, 0x79
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xB
+ bhi _0802A334
+_0802A2EE:
+ ldr r3, _0802A330 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802A49A
+ .align 2, 0
+_0802A30C: .4byte gUnknown_02024C07
+_0802A310: .4byte gUnknown_020239F8
+_0802A314: .4byte 0x00000902
+_0802A318: .4byte gTrainerBattleOpponent
+_0802A31C: .4byte gUnknown_02024DBC
+_0802A320: .4byte gBitTable
+_0802A324: .4byte gUnknown_02024A6A
+_0802A328: .4byte gBattleMons
+_0802A32C: .4byte gUnknown_02024C08
+_0802A330: .4byte gUnknown_02024C10
+_0802A334:
+ adds r0, r2, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x3C
+ bne _0802A36C
+ ldr r1, _0802A360 @ =gUnknown_02024C10
+ ldr r0, _0802A364 @ =gUnknown_081D9913
+ str r0, [r1]
+ ldr r1, _0802A368 @ =byte_2024C06
+ ldrb r0, [r7]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ add r0, r9
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ ldrb r1, [r1]
+ bl sub_81074C4
+ b _0802A49A
+ .align 2, 0
+_0802A360: .4byte gUnknown_02024C10
+_0802A364: .4byte gUnknown_081D9913
+_0802A368: .4byte byte_2024C06
+_0802A36C:
+ lsls r0, r4, 1
+ ldr r4, _0802A458 @ =0x020160f0
+ adds r6, r0, r4
+ ldrh r5, [r5, 0x2E]
+ mov r10, r5
+ strh r1, [r6]
+ ldr r3, _0802A45C @ =gUnknown_02024C07
+ ldrb r0, [r3]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r9
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r7]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ add r0, r9
+ mov r3, r10
+ strh r3, [r0, 0x2E]
+ ldr r5, _0802A460 @ =gUnknown_02024A60
+ ldr r1, _0802A45C @ =gUnknown_02024C07
+ ldrb r0, [r1]
+ strb r0, [r5]
+ str r6, [sp]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x2
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldr r2, _0802A45C @ =gUnknown_02024C07
+ ldrb r0, [r2]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldrb r0, [r7]
+ strb r0, [r5]
+ ldrb r0, [r7]
+ mov r3, r8
+ muls r3, r0
+ adds r0, r3, 0
+ mov r1, r9
+ adds r1, 0x2E
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x2
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r7]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, _0802A464 @ =0xfffe9f10
+ adds r4, r0
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r2, _0802A468 @ =0x000160e8
+ adds r0, r2
+ adds r0, r4
+ movs r1, 0
+ strb r1, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _0802A46C @ =0x000160e9
+ adds r0, r1
+ adds r0, r4
+ movs r3, 0
+ strb r3, [r0]
+ ldr r3, _0802A45C @ =gUnknown_02024C07
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ adds r0, r4
+ movs r2, 0
+ strb r2, [r0]
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ adds r0, r4
+ strb r2, [r0]
+ ldr r1, _0802A470 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ ldr r1, _0802A474 @ =gUnknown_030041C0
+ movs r3, 0xFD
+ strb r3, [r1]
+ movs r2, 0xA
+ strb r2, [r1, 0x1]
+ ldrh r0, [r6]
+ strb r0, [r1, 0x2]
+ ldrh r0, [r6]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _0802A478 @ =gUnknown_03004290
+ strb r3, [r1]
+ strb r2, [r1, 0x1]
+ mov r3, r10
+ strb r3, [r1, 0x2]
+ mov r2, r10
+ lsrs r0, r2, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1, 0x4]
+ cmp r2, 0
+ beq _0802A480
+ ldrh r0, [r6]
+ cmp r0, 0
+ beq _0802A494
+ ldr r1, _0802A47C @ =gUnknown_02024D1E
+ movs r0, 0x2
+ b _0802A498
+ .align 2, 0
+_0802A458: .4byte 0x020160f0
+_0802A45C: .4byte gUnknown_02024C07
+_0802A460: .4byte gUnknown_02024A60
+_0802A464: .4byte 0xfffe9f10
+_0802A468: .4byte 0x000160e8
+_0802A46C: .4byte 0x000160e9
+_0802A470: .4byte gUnknown_02024C10
+_0802A474: .4byte gUnknown_030041C0
+_0802A478: .4byte gUnknown_03004290
+_0802A47C: .4byte gUnknown_02024D1E
+_0802A480:
+ ldrh r0, [r6]
+ cmp r0, 0
+ beq _0802A494
+ ldr r0, _0802A490 @ =gUnknown_02024D1E
+ movs r3, 0
+ strb r3, [r0, 0x5]
+ b _0802A49A
+ .align 2, 0
+_0802A490: .4byte gUnknown_02024D1E
+_0802A494:
+ ldr r1, _0802A4AC @ =gUnknown_02024D1E
+ movs r0, 0x1
+_0802A498:
+ strb r0, [r1, 0x5]
+_0802A49A:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A4AC: .4byte gUnknown_02024D1E
+ thumb_func_end sub_802A218
+
+ thumb_func_start sub_802A4B0
+sub_802A4B0: @ 802A4B0
+ push {r4,lr}
+ ldr r3, _0802A4F0 @ =gBattleMons
+ ldr r4, _0802A4F4 @ =gUnknown_02024C08
+ ldrb r0, [r4]
+ movs r2, 0x58
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ cmp r0, 0
+ beq _0802A504
+ cmp r0, 0x19
+ beq _0802A504
+ ldr r0, _0802A4F8 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ strb r1, [r0]
+ ldr r1, _0802A4FC @ =byte_2024C06
+ ldrb r0, [r4]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r1, _0802A500 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802A51E
+ .align 2, 0
+_0802A4F0: .4byte gBattleMons
+_0802A4F4: .4byte gUnknown_02024C08
+_0802A4F8: .4byte gUnknown_02024C07
+_0802A4FC: .4byte byte_2024C06
+_0802A500: .4byte gUnknown_02024C10
+_0802A504:
+ ldr r3, _0802A524 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802A51E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A524: .4byte gUnknown_02024C10
+ thumb_func_end sub_802A4B0
+
+ thumb_func_start atkD4_802C408
+atkD4_802C408: @ 802A528
+ push {r4-r7,lr}
+ ldr r7, _0802A53C @ =gUnknown_02024C10
+ ldr r2, [r7]
+ ldrb r3, [r2, 0x1]
+ cmp r3, 0
+ beq _0802A540
+ cmp r3, 0x1
+ beq _0802A578
+ b _0802A5F4
+ .align 2, 0
+_0802A53C: .4byte gUnknown_02024C10
+_0802A540:
+ ldr r1, _0802A56C @ =gUnknown_02024DBC
+ ldr r4, _0802A570 @ =gUnknown_02024C07
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r5, [r4]
+ adds r3, r0, r5
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _0802A5C4
+ movs r0, 0x2
+ strb r0, [r3]
+ ldrb r0, [r4]
+ adds r1, 0x24
+ adds r1, r0, r1
+ ldr r2, _0802A574 @ =gUnknown_02024A6A
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldr r0, [r7]
+ adds r0, 0x6
+ b _0802A5F2
+ .align 2, 0
+_0802A56C: .4byte gUnknown_02024DBC
+_0802A570: .4byte gUnknown_02024C07
+_0802A574: .4byte gUnknown_02024A6A
+_0802A578:
+ ldr r1, _0802A5DC @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x4
+ strb r0, [r1, 0x1]
+ ldr r4, _0802A5E0 @ =gUnknown_02024C08
+ ldrb r0, [r4]
+ strb r0, [r1, 0x2]
+ ldr r0, _0802A5E4 @ =gUnknown_02024DBC
+ adds r0, 0x24
+ ldrb r5, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _0802A5E8 @ =gUnknown_02024BEC
+ ldr r6, _0802A5EC @ =gBattleMons
+ ldrb r0, [r4]
+ movs r5, 0x58
+ muls r0, r5
+ adds r0, r6
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 1
+ str r0, [r1]
+ cmp r0, 0
+ bne _0802A5B0
+ str r3, [r1]
+_0802A5B0:
+ ldr r0, [r1]
+ negs r0, r0
+ str r0, [r1]
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r0, r6
+ ldrh r1, [r0, 0x28]
+ ldrh r0, [r0, 0x2C]
+ cmp r1, r0
+ bne _0802A5F0
+_0802A5C4:
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r7]
+ b _0802A5F4
+ .align 2, 0
+_0802A5DC: .4byte gUnknown_030041C0
+_0802A5E0: .4byte gUnknown_02024C08
+_0802A5E4: .4byte gUnknown_02024DBC
+_0802A5E8: .4byte gUnknown_02024BEC
+_0802A5EC: .4byte gBattleMons
+_0802A5F0:
+ adds r0, r2, 0x6
+_0802A5F2:
+ str r0, [r7]
+_0802A5F4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end atkD4_802C408
+
+ thumb_func_start sub_802A5FC
+sub_802A5FC: @ 802A5FC
+ push {lr}
+ ldr r1, _0802A634 @ =gUnknown_02024C98
+ ldr r0, _0802A638 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r3, 0x80
+ lsls r3, 3
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _0802A640
+ ldr r3, _0802A63C @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802A64C
+ .align 2, 0
+_0802A634: .4byte gUnknown_02024C98
+_0802A638: .4byte gUnknown_02024C07
+_0802A63C: .4byte gUnknown_02024C10
+_0802A640:
+ orrs r1, r3
+ str r1, [r2]
+ ldr r1, _0802A650 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802A64C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A650: .4byte gUnknown_02024C10
+ thumb_func_end sub_802A5FC
+
+ thumb_func_start atkD6_doubledamagedealtifdamaged
+atkD6_doubledamagedealtifdamaged: @ 802A654
+ push {lr}
+ ldr r3, _0802A6A4 @ =gUnknown_02024D28
+ ldr r0, _0802A6A8 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r0, r3, 0x4
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0802A674
+ adds r0, r2, r3
+ ldr r1, _0802A6AC @ =gUnknown_02024C08
+ ldrb r0, [r0, 0xC]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0802A68C
+_0802A674:
+ adds r0, r3, 0
+ adds r0, 0x8
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0802A696
+ adds r0, r2, r3
+ ldr r1, _0802A6AC @ =gUnknown_02024C08
+ ldrb r0, [r0, 0xD]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0802A696
+_0802A68C:
+ ldr r0, _0802A6B0 @ =0x02000000
+ ldr r1, _0802A6B4 @ =0x0001601f
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+_0802A696:
+ ldr r1, _0802A6B8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A6A4: .4byte gUnknown_02024D28
+_0802A6A8: .4byte gUnknown_02024C07
+_0802A6AC: .4byte gUnknown_02024C08
+_0802A6B0: .4byte 0x02000000
+_0802A6B4: .4byte 0x0001601f
+_0802A6B8: .4byte gUnknown_02024C10
+ thumb_func_end atkD6_doubledamagedealtifdamaged
+
+ thumb_func_start sub_802A6BC
+sub_802A6BC: @ 802A6BC
+ push {r4,lr}
+ ldr r1, _0802A700 @ =gUnknown_02024C98
+ ldr r0, _0802A704 @ =gUnknown_02024C08
+ ldrb r3, [r0]
+ lsls r0, r3, 2
+ adds r4, r0, r1
+ ldr r2, [r4]
+ movs r0, 0xC0
+ lsls r0, 5
+ ands r0, r2
+ cmp r0, 0
+ bne _0802A6E4
+ ldr r1, _0802A708 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r3
+ adds r1, 0x4C
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802A710
+_0802A6E4:
+ ldr r3, _0802A70C @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802A720
+ .align 2, 0
+_0802A700: .4byte gUnknown_02024C98
+_0802A704: .4byte gUnknown_02024C08
+_0802A708: .4byte gBattleMons
+_0802A70C: .4byte gUnknown_02024C10
+_0802A710:
+ movs r0, 0x80
+ lsls r0, 5
+ orrs r2, r0
+ str r2, [r4]
+ ldr r1, _0802A728 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802A720:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A728: .4byte gUnknown_02024C10
+ thumb_func_end sub_802A6BC
+
+ thumb_func_start atkD8_setdamagetohealthdifference
+atkD8_setdamagetohealthdifference: @ 802A72C
+ push {lr}
+ ldr r2, _0802A768 @ =gBattleMons
+ ldr r0, _0802A76C @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ movs r1, 0x58
+ muls r0, r1
+ adds r3, r0, r2
+ ldr r0, _0802A770 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ muls r0, r1
+ adds r1, r0, r2
+ ldrh r0, [r3, 0x28]
+ ldrh r2, [r1, 0x28]
+ cmp r0, r2
+ bhi _0802A778
+ ldr r3, _0802A774 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802A78A
+ .align 2, 0
+_0802A768: .4byte gBattleMons
+_0802A76C: .4byte gUnknown_02024C08
+_0802A770: .4byte gUnknown_02024C07
+_0802A774: .4byte gUnknown_02024C10
+_0802A778:
+ ldr r2, _0802A790 @ =gUnknown_02024BEC
+ ldrh r0, [r3, 0x28]
+ ldrh r1, [r1, 0x28]
+ subs r0, r1
+ str r0, [r2]
+ ldr r1, _0802A794 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802A78A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A790: .4byte gUnknown_02024BEC
+_0802A794: .4byte gUnknown_02024C10
+ thumb_func_end atkD8_setdamagetohealthdifference
+
+ thumb_func_start atkD9_scaledamagebyhealthratio
+atkD9_scaledamagebyhealthratio: @ 802A798
+ push {r4,lr}
+ ldr r4, _0802A7E4 @ =gUnknown_02024DEC
+ ldrh r0, [r4]
+ cmp r0, 0
+ bne _0802A7D4
+ ldr r2, _0802A7E8 @ =gBattleMoves
+ ldr r0, _0802A7EC @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r3, [r0, 0x1]
+ ldr r2, _0802A7F0 @ =gBattleMons
+ ldr r0, _0802A7F4 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldrh r0, [r1, 0x28]
+ muls r0, r3
+ ldrh r1, [r1, 0x2C]
+ bl __divsi3
+ strh r0, [r4]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0802A7D4
+ movs r0, 0x1
+ strh r0, [r4]
+_0802A7D4:
+ ldr r1, _0802A7F8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A7E4: .4byte gUnknown_02024DEC
+_0802A7E8: .4byte gBattleMoves
+_0802A7EC: .4byte gUnknown_02024BE6
+_0802A7F0: .4byte gBattleMons
+_0802A7F4: .4byte gUnknown_02024C07
+_0802A7F8: .4byte gUnknown_02024C10
+ thumb_func_end atkD9_scaledamagebyhealthratio
+
+ thumb_func_start atkDA_abilityswap
+atkDA_abilityswap: @ 802A7FC
+ push {r4-r6,lr}
+ ldr r5, _0802A860 @ =gBattleMons
+ ldr r0, _0802A864 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ movs r4, 0x58
+ muls r0, r4
+ adds r0, r5
+ adds r2, r0, 0
+ adds r2, 0x20
+ ldrb r1, [r2]
+ cmp r1, 0
+ bne _0802A824
+ ldr r0, _0802A868 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ muls r0, r4
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802A844
+_0802A824:
+ cmp r1, 0x19
+ beq _0802A844
+ ldr r6, _0802A868 @ =gUnknown_02024C08
+ ldrb r0, [r6]
+ muls r0, r4
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r3, [r0]
+ cmp r3, 0x19
+ beq _0802A844
+ ldr r0, _0802A86C @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0802A874
+_0802A844:
+ ldr r3, _0802A870 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802A88A
+ .align 2, 0
+_0802A860: .4byte gBattleMons
+_0802A864: .4byte gUnknown_02024C07
+_0802A868: .4byte gUnknown_02024C08
+_0802A86C: .4byte gUnknown_02024C68
+_0802A870: .4byte gUnknown_02024C10
+_0802A874:
+ ldrb r1, [r2]
+ strb r3, [r2]
+ ldrb r0, [r6]
+ muls r0, r4
+ adds r0, r5
+ adds r0, 0x20
+ strb r1, [r0]
+ ldr r1, _0802A890 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802A88A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A890: .4byte gUnknown_02024C10
+ thumb_func_end atkDA_abilityswap
+
+ thumb_func_start atkDB_imprisoneffect
+atkDB_imprisoneffect: @ 802A894
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r0, 0
+ mov r8, r0
+ ldr r1, _0802A8B8 @ =gUnknown_02024C98
+ ldr r0, _0802A8BC @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _0802A8E8
+ b _0802A95E
+ .align 2, 0
+_0802A8B8: .4byte gUnknown_02024C98
+_0802A8BC: .4byte gUnknown_02024C07
+_0802A8C0:
+ ldr r0, _0802A8E0 @ =gUnknown_02024C98
+ mov r2, r9
+ ldrb r1, [r2]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 6
+ orrs r0, r2
+ str r0, [r1]
+ ldr r1, _0802A8E4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802A956
+ .align 2, 0
+_0802A8E0: .4byte gUnknown_02024C98
+_0802A8E4: .4byte gUnknown_02024C10
+_0802A8E8:
+ adds r0, r2, 0
+ bl sub_801529C
+ movs r6, 0
+ b _0802A94E
+_0802A8F2:
+ adds r0, r6, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r8, r0
+ beq _0802A948
+ movs r4, 0
+ ldr r7, _0802A984 @ =gUnknown_02024C07
+ mov r9, r7
+ ldr r0, _0802A988 @ =gBattleMons
+ mov r12, r0
+ mov r1, r9
+ ldrb r0, [r1]
+ mov r2, r12
+ adds r2, 0xC
+ movs r1, 0x58
+ muls r0, r1
+ adds r3, r0, r2
+ adds r5, r6, 0
+ muls r5, r1
+_0802A91C:
+ movs r2, 0
+ ldrh r1, [r3]
+ mov r0, r12
+ adds r0, 0xC
+ adds r0, r5, r0
+_0802A926:
+ ldrh r7, [r0]
+ cmp r1, r7
+ bne _0802A930
+ cmp r1, 0
+ bne _0802A938
+_0802A930:
+ adds r0, 0x2
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _0802A926
+_0802A938:
+ cmp r2, 0x4
+ bne _0802A944
+ adds r3, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0802A91C
+_0802A944:
+ cmp r4, 0x4
+ bne _0802A8C0
+_0802A948:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0802A94E:
+ ldr r0, _0802A98C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _0802A8F2
+_0802A956:
+ ldr r0, _0802A98C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r6, r0
+ bne _0802A978
+_0802A95E:
+ ldr r3, _0802A990 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802A978:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A984: .4byte gUnknown_02024C07
+_0802A988: .4byte gBattleMons
+_0802A98C: .4byte gUnknown_02024A68
+_0802A990: .4byte gUnknown_02024C10
+ thumb_func_end atkDB_imprisoneffect
+
+ thumb_func_start atkDC_setgrudge
+atkDC_setgrudge: @ 802A994
+ push {lr}
+ ldr r1, _0802A9CC @ =gUnknown_02024C98
+ ldr r0, _0802A9D0 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r3, 0x80
+ lsls r3, 7
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _0802A9D8
+ ldr r3, _0802A9D4 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802A9E4
+ .align 2, 0
+_0802A9CC: .4byte gUnknown_02024C98
+_0802A9D0: .4byte gUnknown_02024C07
+_0802A9D4: .4byte gUnknown_02024C10
+_0802A9D8:
+ orrs r1, r3
+ str r1, [r2]
+ ldr r1, _0802A9E8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802A9E4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A9E8: .4byte gUnknown_02024C10
+ thumb_func_end atkDC_setgrudge
+
+ thumb_func_start atkDD_weightdamagecalculation
+atkDD_weightdamagecalculation: @ 802A9EC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r5, 0
+ ldr r2, _0802AA50 @ =gWeightDamage
+ ldrh r0, [r2]
+ ldr r1, _0802AA54 @ =0x0000ffff
+ cmp r0, r1
+ beq _0802AA64
+ adds r6, r2, 0
+ ldr r0, _0802AA58 @ =gBattleMons
+ mov r8, r0
+ adds r7, r1, 0
+ adds r4, r6, 0
+_0802AA08:
+ ldr r0, _0802AA5C @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r8
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D54
+ ldrh r1, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r1, r0
+ bhi _0802AA36
+ adds r4, 0x4
+ adds r5, 0x2
+ ldrh r0, [r4]
+ cmp r0, r7
+ bne _0802AA08
+_0802AA36:
+ lsls r0, r5, 1
+ adds r0, r6
+ ldrh r1, [r0]
+ ldr r0, _0802AA54 @ =0x0000ffff
+ cmp r1, r0
+ beq _0802AA64
+ ldr r0, _0802AA60 @ =gUnknown_02024DEC
+ adds r1, r5, 0x1
+ lsls r1, 1
+ adds r1, r6
+ ldrh r1, [r1]
+ strh r1, [r0]
+ b _0802AA6A
+ .align 2, 0
+_0802AA50: .4byte gWeightDamage
+_0802AA54: .4byte 0x0000ffff
+_0802AA58: .4byte gBattleMons
+_0802AA5C: .4byte gUnknown_02024C08
+_0802AA60: .4byte gUnknown_02024DEC
+_0802AA64:
+ ldr r1, _0802AA7C @ =gUnknown_02024DEC
+ movs r0, 0x78
+ strh r0, [r1]
+_0802AA6A:
+ ldr r1, _0802AA80 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802AA7C: .4byte gUnknown_02024DEC
+_0802AA80: .4byte gUnknown_02024C10
+ thumb_func_end atkDD_weightdamagecalculation
+
+ thumb_func_start atkDE_asistattackselect
+atkDE_asistattackselect: @ 802AA84
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0
+ mov r10, r0
+ ldr r0, _0802AB9C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ ands r1, r0
+ ldr r0, _0802ABA0 @ =gPlayerParty
+ str r0, [sp]
+ cmp r1, 0
+ beq _0802AAAC
+ ldr r1, _0802ABA4 @ =gEnemyParty
+ str r1, [sp]
+_0802AAAC:
+ movs r2, 0
+_0802AAAE:
+ ldr r1, _0802ABA8 @ =gUnknown_02024A6A
+ ldr r0, _0802AB9C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ adds r1, r2, 0x1
+ str r1, [sp, 0x4]
+ ldrh r0, [r0]
+ cmp r2, r0
+ beq _0802AB54
+ movs r0, 0x64
+ adds r6, r2, 0
+ muls r6, r0
+ ldr r0, [sp]
+ adds r4, r0, r6
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _0802AB54
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _0802AB54
+ movs r5, 0
+ ldr r1, _0802ABAC @ =0x0000ffff
+ mov r8, r1
+ mov r9, r6
+ mov r1, r10
+ lsls r0, r1, 1
+ ldr r1, _0802ABB0 @ =0x02016024
+ adds r6, r0, r1
+_0802AAF8:
+ movs r7, 0
+ adds r1, r5, 0
+ adds r1, 0xD
+ ldr r0, [sp]
+ add r0, r9
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_802838C
+ lsls r0, 24
+ adds r1, r5, 0x1
+ cmp r0, 0
+ bne _0802AB4E
+ ldr r0, _0802ABB4 @ =gUnknown_081FACFE
+ ldrh r2, [r0]
+ adds r3, r0, 0
+ cmp r2, r8
+ beq _0802AB42
+ cmp r4, r2
+ beq _0802AB38
+ ldr r5, _0802ABAC @ =0x0000ffff
+ adds r2, r3, 0
+_0802AB2A:
+ adds r2, 0x2
+ adds r7, 0x1
+ ldrh r0, [r2]
+ cmp r0, r5
+ beq _0802AB42
+ cmp r4, r0
+ bne _0802AB2A
+_0802AB38:
+ lsls r0, r7, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, r8
+ bne _0802AB4E
+_0802AB42:
+ cmp r4, 0
+ beq _0802AB4E
+ strh r4, [r6]
+ adds r6, 0x2
+ movs r0, 0x1
+ add r10, r0
+_0802AB4E:
+ adds r5, r1, 0
+ cmp r5, 0x3
+ ble _0802AAF8
+_0802AB54:
+ ldr r2, [sp, 0x4]
+ cmp r2, 0x5
+ ble _0802AAAE
+ mov r1, r10
+ cmp r1, 0
+ beq _0802ABCC
+ ldr r2, _0802ABB8 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _0802ABBC @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ ldr r4, _0802ABC0 @ =gUnknown_02024BEA
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ mov r0, r10
+ muls r0, r1
+ asrs r0, 8
+ lsls r0, 1
+ ldr r1, _0802ABB0 @ =0x02016024
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r4]
+ ldrh r0, [r4]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _0802ABC4 @ =gUnknown_02024C08
+ strb r0, [r1]
+ ldr r1, _0802ABC8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802ABE6
+ .align 2, 0
+_0802AB9C: .4byte gUnknown_02024C07
+_0802ABA0: .4byte gPlayerParty
+_0802ABA4: .4byte gEnemyParty
+_0802ABA8: .4byte gUnknown_02024A6A
+_0802ABAC: .4byte 0x0000ffff
+_0802ABB0: .4byte 0x02016024
+_0802ABB4: .4byte gUnknown_081FACFE
+_0802ABB8: .4byte gUnknown_02024C6C
+_0802ABBC: .4byte 0xfffffbff
+_0802ABC0: .4byte gUnknown_02024BEA
+_0802ABC4: .4byte gUnknown_02024C08
+_0802ABC8: .4byte gUnknown_02024C10
+_0802ABCC:
+ ldr r3, _0802ABF8 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802ABE6:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802ABF8: .4byte gUnknown_02024C10
+ thumb_func_end atkDE_asistattackselect
+
+ thumb_func_start atkDF_setmagiccoat
+atkDF_setmagiccoat: @ 802ABFC
+ push {lr}
+ ldr r1, _0802AC44 @ =gUnknown_02024C08
+ ldr r3, _0802AC48 @ =gUnknown_02024C07
+ ldrb r0, [r3]
+ strb r0, [r1]
+ ldr r2, _0802AC4C @ =gUnknown_02024D68
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, _0802AC50 @ =gUnknown_02024A7E
+ ldrb r1, [r0]
+ ldr r0, _0802AC54 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _0802AC5C
+ ldr r3, _0802AC58 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802AC74
+ .align 2, 0
+_0802AC44: .4byte gUnknown_02024C08
+_0802AC48: .4byte gUnknown_02024C07
+_0802AC4C: .4byte gUnknown_02024D68
+_0802AC50: .4byte gUnknown_02024A7E
+_0802AC54: .4byte gUnknown_02024A68
+_0802AC58: .4byte gUnknown_02024C10
+_0802AC5C:
+ ldr r0, _0802AC78 @ =gUnknown_02024D28
+ ldrb r1, [r3]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x10
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r1, _0802AC7C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802AC74:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802AC78: .4byte gUnknown_02024D28
+_0802AC7C: .4byte gUnknown_02024C10
+ thumb_func_end atkDF_setmagiccoat
+
+ thumb_func_start atkE0_setstealstatchange
+atkE0_setstealstatchange: @ 802AC80
+ push {lr}
+ ldr r2, _0802ACC4 @ =gUnknown_02024D68
+ ldr r3, _0802ACC8 @ =gUnknown_02024C07
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, _0802ACCC @ =gUnknown_02024A7E
+ ldrb r1, [r0]
+ ldr r0, _0802ACD0 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _0802ACD8
+ ldr r3, _0802ACD4 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802ACEE
+ .align 2, 0
+_0802ACC4: .4byte gUnknown_02024D68
+_0802ACC8: .4byte gUnknown_02024C07
+_0802ACCC: .4byte gUnknown_02024A7E
+_0802ACD0: .4byte gUnknown_02024A68
+_0802ACD4: .4byte gUnknown_02024C10
+_0802ACD8:
+ ldr r0, _0802ACF4 @ =gUnknown_02024D28
+ ldrb r1, [r3]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r1, _0802ACF8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802ACEE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802ACF4: .4byte gUnknown_02024D28
+_0802ACF8: .4byte gUnknown_02024C10
+ thumb_func_end atkE0_setstealstatchange
+
+ thumb_func_start atkE1_802CBE4
+atkE1_802CBE4: @ 802ACFC
+ push {r4-r6,lr}
+ ldr r4, _0802ADA0 @ =0x02000000
+ ldr r1, _0802ADA4 @ =0x000160dd
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ subs r1, 0xDA
+ adds r4, r1
+ strb r0, [r4]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _0802ADA8 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r2]
+ movs r0, 0x9
+ strb r0, [r2, 0x1]
+ ldr r3, _0802ADAC @ =gBattleMons
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r2, 0x2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x3]
+ ldr r2, _0802ADB0 @ =gUnknown_02024C08
+ ldr r1, _0802ADB4 @ =gUnknown_02024A68
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _0802AD84
+ adds r4, r2, 0
+ ldr r6, _0802ADB8 @ =gBitTable
+_0802AD44:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r5
+ beq _0802AD66
+ ldr r0, _0802ADBC @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ands r1, r0
+ ldr r2, _0802ADB4 @ =gUnknown_02024A68
+ cmp r1, 0
+ beq _0802AD7A
+_0802AD66:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _0802ADB4 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r1, 0
+ ldrb r1, [r2]
+ cmp r0, r1
+ bcc _0802AD44
+_0802AD7A:
+ ldr r0, _0802ADB0 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ ldrb r2, [r2]
+ cmp r0, r2
+ bcc _0802ADC4
+_0802AD84:
+ ldr r3, _0802ADC0 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802ADCC
+ .align 2, 0
+_0802ADA0: .4byte 0x02000000
+_0802ADA4: .4byte 0x000160dd
+_0802ADA8: .4byte gUnknown_030041C0
+_0802ADAC: .4byte gBattleMons
+_0802ADB0: .4byte gUnknown_02024C08
+_0802ADB4: .4byte gUnknown_02024A68
+_0802ADB8: .4byte gBitTable
+_0802ADBC: .4byte gUnknown_02024C0C
+_0802ADC0: .4byte gUnknown_02024C10
+_0802ADC4:
+ ldr r1, _0802ADD4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802ADCC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802ADD4: .4byte gUnknown_02024C10
+ thumb_func_end atkE1_802CBE4
+
+ thumb_func_start sub_802ADD8
+sub_802ADD8: @ 802ADD8
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r6, _0802AE44 @ =gUnknown_02024C10
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r5, _0802AE48 @ =gUnknown_02024A60
+ strb r0, [r5]
+ ldr r4, _0802AE4C @ =gBattleMons
+ ldrb r0, [r5]
+ movs r1, 0x58
+ mov r12, r1
+ mov r1, r12
+ muls r1, r0
+ adds r0, r1, r4
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1E
+ bne _0802AE34
+ adds r4, 0x4C
+ adds r1, r4
+ movs r0, 0
+ str r0, [r1]
+ ldr r2, _0802AE50 @ =gBitTable
+ ldr r1, _0802AE54 @ =0x02000000
+ ldrb r3, [r5]
+ ldr r7, _0802AE58 @ =0x00016064
+ adds r0, r3, r7
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0]
+ mov r0, r12
+ muls r0, r3
+ adds r0, r4
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+_0802AE34:
+ ldr r0, [r6]
+ adds r0, 0x2
+ str r0, [r6]
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802AE44: .4byte gUnknown_02024C10
+_0802AE48: .4byte gUnknown_02024A60
+_0802AE4C: .4byte gBattleMons
+_0802AE50: .4byte gBitTable
+_0802AE54: .4byte 0x02000000
+_0802AE58: .4byte 0x00016064
+ thumb_func_end sub_802ADD8
+
+ thumb_func_start atkE3_jumpiffainted
+atkE3_jumpiffainted: @ 802AE5C
+ push {r4,lr}
+ ldr r4, _0802AE98 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r1, _0802AE9C @ =gUnknown_02024A60
+ strb r0, [r1]
+ ldr r2, _0802AEA0 @ =gBattleMons
+ ldrb r1, [r1]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _0802AEA4
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0802AEAA
+ .align 2, 0
+_0802AE98: .4byte gUnknown_02024C10
+_0802AE9C: .4byte gUnknown_02024A60
+_0802AEA0: .4byte gBattleMons
+_0802AEA4:
+ ldr r0, [r4]
+ adds r0, 0x6
+ str r0, [r4]
+_0802AEAA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end atkE3_jumpiffainted
+
+ thumb_func_start sub_802AEB0
+sub_802AEB0: @ 802AEB0
+ push {lr}
+ ldr r0, _0802AEC4 @ =gUnknown_0300428C
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bhi _0802AF4C
+ lsls r0, 2
+ ldr r1, _0802AEC8 @ =_0802AECC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0802AEC4: .4byte gUnknown_0300428C
+_0802AEC8: .4byte _0802AECC
+ .align 2, 0
+_0802AECC:
+ .4byte _0802AEEC
+ .4byte _0802AEF8
+ .4byte _0802AF04
+ .4byte _0802AF10
+ .4byte _0802AF1C
+ .4byte _0802AF28
+ .4byte _0802AF34
+ .4byte _0802AF40
+_0802AEEC:
+ ldr r1, _0802AEF4 @ =gUnknown_02024D1E
+ movs r0, 0x2
+ b _0802AF50
+ .align 2, 0
+_0802AEF4: .4byte gUnknown_02024D1E
+_0802AEF8:
+ ldr r1, _0802AF00 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ b _0802AF50
+ .align 2, 0
+_0802AF00: .4byte gUnknown_02024D1E
+_0802AF04:
+ ldr r1, _0802AF0C @ =gUnknown_02024D1E
+ movs r0, 0x1B
+ b _0802AF50
+ .align 2, 0
+_0802AF0C: .4byte gUnknown_02024D1E
+_0802AF10:
+ ldr r1, _0802AF18 @ =gUnknown_02024D1E
+ movs r0, 0x17
+ b _0802AF50
+ .align 2, 0
+_0802AF18: .4byte gUnknown_02024D1E
+_0802AF1C:
+ ldr r1, _0802AF24 @ =gUnknown_02024D1E
+ movs r0, 0x16
+ b _0802AF50
+ .align 2, 0
+_0802AF24: .4byte gUnknown_02024D1E
+_0802AF28:
+ ldr r1, _0802AF30 @ =gUnknown_02024D1E
+ movs r0, 0x18
+ b _0802AF50
+ .align 2, 0
+_0802AF30: .4byte gUnknown_02024D1E
+_0802AF34:
+ ldr r1, _0802AF3C @ =gUnknown_02024D1E
+ movs r0, 0x7
+ b _0802AF50
+ .align 2, 0
+_0802AF3C: .4byte gUnknown_02024D1E
+_0802AF40:
+ ldr r1, _0802AF48 @ =gUnknown_02024D1E
+ movs r0, 0x8
+ b _0802AF50
+ .align 2, 0
+_0802AF48: .4byte gUnknown_02024D1E
+_0802AF4C:
+ ldr r1, _0802AF60 @ =gUnknown_02024D1E
+ movs r0, 0x5
+_0802AF50:
+ strb r0, [r1, 0x3]
+ ldr r1, _0802AF64 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802AF60: .4byte gUnknown_02024D1E
+_0802AF64: .4byte gUnknown_02024C10
+ thumb_func_end sub_802AEB0
+
+ thumb_func_start sub_802AF68
+sub_802AF68: @ 802AF68
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r7, 0
+ ldr r0, _0802AFB4 @ =gBaseStats
+ mov r9, r0
+ ldr r1, _0802AFB8 @ =gPickupItems
+ mov r8, r1
+_0802AF7A:
+ movs r0, 0x64
+ adds r4, r7, 0
+ muls r4, r0
+ ldr r0, _0802AFBC @ =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl GetMonData
+ cmp r0, 0
+ beq _0802AFC0
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0, 0x17]
+ b _0802AFCA
+ .align 2, 0
+_0802AFB4: .4byte gBaseStats
+_0802AFB8: .4byte gPickupItems
+_0802AFBC: .4byte gPlayerParty
+_0802AFC0:
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0, 0x16]
+_0802AFCA:
+ adds r4, r7, 0x1
+ cmp r0, 0x35
+ bne _0802B032
+ cmp r5, 0
+ beq _0802B032
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r5, r0
+ beq _0802B032
+ cmp r6, 0
+ bne _0802B032
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _0802B032
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ mov r1, r8
+ ldrh r0, [r1, 0x2]
+ cmp r0, r3
+ bgt _0802B020
+ adds r1, 0x2
+_0802B012:
+ adds r1, 0x4
+ adds r2, 0x2
+ cmp r2, 0x11
+ bgt _0802B020
+ ldrh r0, [r1]
+ cmp r0, r3
+ ble _0802B012
+_0802B020:
+ movs r0, 0x64
+ muls r0, r7
+ ldr r1, _0802B04C @ =gPlayerParty
+ adds r0, r1
+ lsls r2, 1
+ add r2, r8
+ movs r1, 0xC
+ bl SetMonData
+_0802B032:
+ adds r7, r4, 0
+ cmp r7, 0x5
+ ble _0802AF7A
+ ldr r1, _0802B050 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B04C: .4byte gPlayerParty
+_0802B050: .4byte gUnknown_02024C10
+ thumb_func_end sub_802AF68
+
+ thumb_func_start atkE6_castform_transform
+atkE6_castform_transform: @ 802B054
+ push {r4,lr}
+ ldr r4, _0802B0A8 @ =gUnknown_02024A60
+ ldr r3, _0802B0AC @ =0x02000000
+ ldr r1, _0802B0B0 @ =0x00016003
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r1, _0802B0B4 @ =gBattleMons
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B086
+ ldr r0, _0802B0B8 @ =0x0001609b
+ adds r2, r3, r0
+ ldrb r1, [r2]
+ movs r0, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+_0802B086:
+ ldr r1, _0802B0B8 @ =0x0001609b
+ adds r0, r3, r1
+ ldrb r2, [r0]
+ movs r0, 0
+ movs r1, 0
+ bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _0802B0BC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B0A8: .4byte gUnknown_02024A60
+_0802B0AC: .4byte 0x02000000
+_0802B0B0: .4byte 0x00016003
+_0802B0B4: .4byte gBattleMons
+_0802B0B8: .4byte 0x0001609b
+_0802B0BC: .4byte gUnknown_02024C10
+ thumb_func_end atkE6_castform_transform
+
+ thumb_func_start atkE7_castform_switch
+atkE7_castform_switch: @ 802B0C0
+ push {r4,r5,lr}
+ ldr r1, _0802B0F4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ ldr r5, _0802B0F8 @ =0x02000000
+ ldr r1, _0802B0FC @ =0x00016003
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ bl castform_switch
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _0802B0EC
+ ldr r0, _0802B100 @ =gUnknown_081D977D
+ bl b_push_move_exec
+ subs r1, r4, 0x1
+ ldr r2, _0802B104 @ =0x0001609b
+ adds r0, r5, r2
+ strb r1, [r0]
+_0802B0EC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B0F4: .4byte gUnknown_02024C10
+_0802B0F8: .4byte 0x02000000
+_0802B0FC: .4byte 0x00016003
+_0802B100: .4byte gUnknown_081D977D
+_0802B104: .4byte 0x0001609b
+ thumb_func_end atkE7_castform_switch
+
+ thumb_func_start atkE8_settypebasedhalvers
+atkE8_settypebasedhalvers: @ 802B108
+ push {r4,lr}
+ movs r4, 0
+ ldr r2, _0802B144 @ =gBattleMoves
+ ldr r0, _0802B148 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0xC9
+ bne _0802B158
+ ldr r1, _0802B14C @ =gUnknown_02024C98
+ ldr r0, _0802B150 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r3, 0x80
+ lsls r3, 9
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ bne _0802B17C
+ orrs r1, r3
+ str r1, [r2]
+ ldr r0, _0802B154 @ =gUnknown_02024D1E
+ strb r4, [r0, 0x5]
+ b _0802B180
+ .align 2, 0
+_0802B144: .4byte gBattleMoves
+_0802B148: .4byte gUnknown_02024BE6
+_0802B14C: .4byte gUnknown_02024C98
+_0802B150: .4byte gUnknown_02024C07
+_0802B154: .4byte gUnknown_02024D1E
+_0802B158:
+ ldr r1, _0802B18C @ =gUnknown_02024C98
+ ldr r0, _0802B190 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r3, 0x80
+ lsls r3, 10
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ bne _0802B17C
+ orrs r1, r3
+ str r1, [r2]
+ ldr r1, _0802B194 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ movs r4, 0x1
+_0802B17C:
+ cmp r4, 0
+ beq _0802B19C
+_0802B180:
+ ldr r1, _0802B198 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802B1B6
+ .align 2, 0
+_0802B18C: .4byte gUnknown_02024C98
+_0802B190: .4byte gUnknown_02024C07
+_0802B194: .4byte gUnknown_02024D1E
+_0802B198: .4byte gUnknown_02024C10
+_0802B19C:
+ ldr r3, _0802B1BC @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802B1B6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B1BC: .4byte gUnknown_02024C10
+ thumb_func_end atkE8_settypebasedhalvers
+
+ thumb_func_start sub_802B1C0
+sub_802B1C0: @ 802B1C0
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0802B276
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802B276
+ ldr r3, _0802B218 @ =word_2024DB8
+ ldrb r0, [r3]
+ ldr r2, _0802B21C @ =0x02000000
+ cmp r0, 0
+ beq _0802B202
+ ldr r0, _0802B220 @ =0x0001601f
+ adds r1, r2, r0
+ movs r0, 0x2
+ strb r0, [r1]
+_0802B202:
+ ldrh r1, [r3]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B228
+ ldr r0, _0802B224 @ =0x0001601c
+ adds r1, r2, r0
+ movs r0, 0x8B
+ strb r0, [r1]
+ b _0802B276
+ .align 2, 0
+_0802B218: .4byte word_2024DB8
+_0802B21C: .4byte 0x02000000
+_0802B220: .4byte 0x0001601f
+_0802B224: .4byte 0x0001601c
+_0802B228:
+ movs r0, 0x18
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B240
+ ldr r0, _0802B23C @ =0x0001601c
+ adds r1, r2, r0
+ movs r0, 0x85
+ strb r0, [r1]
+ b _0802B276
+ .align 2, 0
+_0802B23C: .4byte 0x0001601c
+_0802B240:
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B258
+ ldr r0, _0802B254 @ =0x0001601c
+ adds r1, r2, r0
+ movs r0, 0x8A
+ strb r0, [r1]
+ b _0802B276
+ .align 2, 0
+_0802B254: .4byte 0x0001601c
+_0802B258:
+ movs r3, 0x80
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B270
+ ldr r0, _0802B26C @ =0x0001601c
+ adds r1, r2, r0
+ movs r0, 0x8F
+ strb r0, [r1]
+ b _0802B276
+ .align 2, 0
+_0802B26C: .4byte 0x0001601c
+_0802B270:
+ ldr r1, _0802B284 @ =0x0001601c
+ adds r0, r2, r1
+ strb r3, [r0]
+_0802B276:
+ ldr r1, _0802B288 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B284: .4byte 0x0001601c
+_0802B288: .4byte gUnknown_02024C10
+ thumb_func_end sub_802B1C0
+
+ thumb_func_start atkEA_recycleitem
+atkEA_recycleitem: @ 802B28C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r7, _0802B2F0 @ =gUnknown_02024A60
+ ldr r0, _0802B2F4 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r7]
+ ldrb r2, [r7]
+ lsls r1, r2, 1
+ ldr r0, _0802B2F8 @ =0x020160cc
+ adds r6, r1, r0
+ ldrh r5, [r6]
+ cmp r5, 0
+ beq _0802B308
+ ldr r4, _0802B2FC @ =gBattleMons
+ movs r3, 0x58
+ adds r0, r2, 0
+ muls r0, r3
+ adds r0, r4
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0
+ bne _0802B308
+ ldr r1, _0802B300 @ =gUnknown_02024C04
+ strh r5, [r1]
+ strh r0, [r6]
+ ldrb r0, [r7]
+ muls r0, r3
+ adds r0, r4
+ ldrh r1, [r1]
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r7]
+ muls r0, r3
+ adds r1, r4, 0
+ adds r1, 0x2E
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x2
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r7]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _0802B304 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802B322
+ .align 2, 0
+_0802B2F0: .4byte gUnknown_02024A60
+_0802B2F4: .4byte gUnknown_02024C07
+_0802B2F8: .4byte 0x020160cc
+_0802B2FC: .4byte gBattleMons
+_0802B300: .4byte gUnknown_02024C04
+_0802B304: .4byte gUnknown_02024C10
+_0802B308:
+ ldr r3, _0802B32C @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802B322:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B32C: .4byte gUnknown_02024C10
+ thumb_func_end atkEA_recycleitem
+
+ thumb_func_start atkEB_settypetoterrain
+atkEB_settypetoterrain: @ 802B330
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _0802B3A0 @ =gBattleMons
+ mov r8, r0
+ ldr r7, _0802B3A4 @ =gUnknown_02024C07
+ ldrb r0, [r7]
+ movs r6, 0x58
+ muls r0, r6
+ mov r1, r8
+ adds r3, r0, r1
+ movs r0, 0x21
+ adds r0, r3
+ mov r12, r0
+ ldr r5, _0802B3A8 @ =gTerrainToType
+ ldr r4, _0802B3AC @ =gUnknown_0300428C
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r2, [r0]
+ mov r1, r12
+ ldrb r0, [r1]
+ adds r1, r2, 0
+ cmp r0, r1
+ beq _0802B3B8
+ adds r0, r3, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, r1
+ beq _0802B3B8
+ mov r0, r12
+ strb r2, [r0]
+ ldrb r0, [r7]
+ adds r1, r0, 0
+ muls r1, r6
+ add r1, r8
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ adds r1, 0x22
+ strb r0, [r1]
+ ldr r1, _0802B3B0 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x3
+ strb r0, [r1, 0x1]
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r1, _0802B3B4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802B3D2
+ .align 2, 0
+_0802B3A0: .4byte gBattleMons
+_0802B3A4: .4byte gUnknown_02024C07
+_0802B3A8: .4byte gTerrainToType
+_0802B3AC: .4byte gUnknown_0300428C
+_0802B3B0: .4byte gUnknown_030041C0
+_0802B3B4: .4byte gUnknown_02024C10
+_0802B3B8:
+ ldr r3, _0802B3DC @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802B3D2:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B3DC: .4byte gUnknown_02024C10
+ thumb_func_end atkEB_settypetoterrain
+
+ thumb_func_start sub_802B3E0
+sub_802B3E0: @ 802B3E0
+ push {r4,r5,lr}
+ ldr r5, _0802B45C @ =gUnknown_02024C07
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ ldr r4, _0802B460 @ =gUnknown_02024A60
+ strb r0, [r4]
+ ldr r0, _0802B464 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B490
+ ldr r0, _0802B468 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _0802B46C @ =gBitTable
+ ldrb r3, [r4]
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0802B490
+ ldr r0, _0802B470 @ =gUnknown_02024C18
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0802B490
+ ldr r1, _0802B474 @ =gUnknown_02024C60
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r2, [r0]
+ cmp r2, 0xE4
+ bne _0802B490
+ ldr r0, _0802B478 @ =gUnknown_02024A76
+ adds r0, r3, r0
+ movs r1, 0xB
+ strb r1, [r0]
+ ldr r0, _0802B47C @ =gUnknown_02024BE6
+ strh r2, [r0]
+ ldr r1, _0802B480 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ ldr r1, _0802B484 @ =0x02000000
+ ldr r0, _0802B488 @ =0x00016002
+ adds r2, r1, r0
+ movs r0, 0x1
+ strb r0, [r2]
+ ldrb r0, [r5]
+ ldr r2, _0802B48C @ =0x000160a7
+ adds r1, r2
+ strb r0, [r1]
+ ldrb r0, [r4]
+ strb r0, [r5]
+ b _0802B4AA
+ .align 2, 0
+_0802B45C: .4byte gUnknown_02024C07
+_0802B460: .4byte gUnknown_02024A60
+_0802B464: .4byte gUnknown_020239F8
+_0802B468: .4byte gUnknown_02024C0C
+_0802B46C: .4byte gBitTable
+_0802B470: .4byte gUnknown_02024C18
+_0802B474: .4byte gUnknown_02024C60
+_0802B478: .4byte gUnknown_02024A76
+_0802B47C: .4byte gUnknown_02024BE6
+_0802B480: .4byte gUnknown_02024C10
+_0802B484: .4byte 0x02000000
+_0802B488: .4byte 0x00016002
+_0802B48C: .4byte 0x000160a7
+_0802B490:
+ ldr r3, _0802B4B0 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802B4AA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B4B0: .4byte gUnknown_02024C10
+ thumb_func_end sub_802B3E0
+
+ thumb_func_start sub_802B4B4
+sub_802B4B4: @ 802B4B4
+ push {r4,r5,lr}
+ ldr r1, _0802B4DC @ =gUnknown_02024C0A
+ ldr r3, _0802B4E0 @ =gUnknown_02024C07
+ ldrb r0, [r3]
+ strb r0, [r1]
+ ldr r2, _0802B4E4 @ =gUnknown_02024C08
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r1, 0
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _0802B4F0
+ ldr r0, _0802B4E8 @ =0x02000000
+ ldr r5, _0802B4EC @ =0x00016003
+ adds r1, r0, r5
+ ldrb r1, [r1]
+ strb r1, [r2]
+ strb r1, [r3]
+ b _0802B4FA
+ .align 2, 0
+_0802B4DC: .4byte gUnknown_02024C0A
+_0802B4E0: .4byte gUnknown_02024C07
+_0802B4E4: .4byte gUnknown_02024C08
+_0802B4E8: .4byte 0x02000000
+_0802B4EC: .4byte 0x00016003
+_0802B4F0:
+ ldr r0, _0802B510 @ =0x02000000
+ ldr r3, _0802B514 @ =0x00016003
+ adds r1, r0, r3
+ ldrb r1, [r1]
+ strb r1, [r2]
+_0802B4FA:
+ ldrb r1, [r4]
+ ldr r5, _0802B514 @ =0x00016003
+ adds r0, r5
+ strb r1, [r0]
+ ldr r1, _0802B518 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B510: .4byte 0x02000000
+_0802B514: .4byte 0x00016003
+_0802B518: .4byte gUnknown_02024C10
+ thumb_func_end sub_802B4B4
+
+ thumb_func_start sub_802B51C
+sub_802B51C: @ 802B51C
+ push {r4,lr}
+ ldr r0, _0802B56C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0802B570 @ =gUnknown_02024C80
+ lsls r3, r0, 1
+ adds r0, r3, r0
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _0802B544
+ ldrb r2, [r4, 0x1]
+ cmp r2, 0
+ beq _0802B58C
+_0802B544:
+ ldr r2, _0802B574 @ =gUnknown_02024C7A
+ adds r2, r3, r2
+ ldrh r1, [r2]
+ ldr r0, _0802B578 @ =0x0000fffe
+ ands r0, r1
+ movs r3, 0
+ ldr r1, _0802B57C @ =0x0000fffd
+ ands r0, r1
+ strh r0, [r2]
+ strb r3, [r4]
+ strb r3, [r4, 0x1]
+ ldr r0, _0802B580 @ =0x02000000
+ ldr r2, _0802B584 @ =0x00016002
+ adds r1, r0, r2
+ movs r2, 0x1
+ strb r2, [r1]
+ ldr r3, _0802B588 @ =0x000160a1
+ adds r0, r3
+ b _0802B598
+ .align 2, 0
+_0802B56C: .4byte gUnknown_02024C07
+_0802B570: .4byte gUnknown_02024C80
+_0802B574: .4byte gUnknown_02024C7A
+_0802B578: .4byte 0x0000fffe
+_0802B57C: .4byte 0x0000fffd
+_0802B580: .4byte 0x02000000
+_0802B584: .4byte 0x00016002
+_0802B588: .4byte 0x000160a1
+_0802B58C:
+ ldr r0, _0802B5A8 @ =0x02000000
+ ldr r3, _0802B5AC @ =0x00016002
+ adds r1, r0, r3
+ strb r2, [r1]
+ ldr r1, _0802B5B0 @ =0x000160a1
+ adds r0, r1
+_0802B598:
+ strb r2, [r0]
+ ldr r1, _0802B5B4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B5A8: .4byte 0x02000000
+_0802B5AC: .4byte 0x00016002
+_0802B5B0: .4byte 0x000160a1
+_0802B5B4: .4byte gUnknown_02024C10
+ thumb_func_end sub_802B51C
+
+ thumb_func_start sub_802B5B8
+sub_802B5B8: @ 802B5B8
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r0, _0802B5F8 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0802B5C6
+ b _0802B94E
+_0802B5C6:
+ ldr r5, _0802B5FC @ =gUnknown_02024A60
+ ldr r0, _0802B600 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldr r6, _0802B604 @ =gUnknown_02024C08
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r6]
+ ldr r0, _0802B608 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B614
+ movs r0, 0
+ movs r1, 0x5
+ bl dp01_build_cmdbuf_x0D_a
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _0802B60C @ =gUnknown_02024C10
+ ldr r0, _0802B610 @ =gUnknown_081D9F35
+ b _0802B94C
+ .align 2, 0
+_0802B5F8: .4byte gUnknown_02024A64
+_0802B5FC: .4byte gUnknown_02024A60
+_0802B600: .4byte gUnknown_02024C07
+_0802B604: .4byte gUnknown_02024C08
+_0802B608: .4byte gUnknown_020239F8
+_0802B60C: .4byte gUnknown_02024C10
+_0802B610: .4byte gUnknown_081D9F35
+_0802B614:
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B63C
+ movs r0, 0
+ movs r1, 0x4
+ bl dp01_build_cmdbuf_x0D_a
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _0802B634 @ =gUnknown_02024C10
+ ldr r0, _0802B638 @ =gUnknown_081D9F00
+ b _0802B94C
+ .align 2, 0
+_0802B634: .4byte gUnknown_02024C10
+_0802B638: .4byte gUnknown_081D9F00
+_0802B63C:
+ ldr r0, _0802B660 @ =gUnknown_02024C04
+ ldrh r0, [r0]
+ cmp r0, 0x5
+ bne _0802B66C
+ ldr r0, _0802B664 @ =0x02000000
+ ldr r1, _0802B668 @ =0x00016089
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 8
+ subs r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _0802B684
+ .align 2, 0
+_0802B660: .4byte gUnknown_02024C04
+_0802B664: .4byte 0x02000000
+_0802B668: .4byte 0x00016089
+_0802B66C:
+ ldr r3, _0802B6A0 @ =gBaseStats
+ ldr r2, _0802B6A4 @ =gBattleMons
+ ldrb r1, [r6]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r5, [r0, 0x8]
+_0802B684:
+ ldr r2, _0802B6A8 @ =gUnknown_02024C04
+ ldrh r0, [r2]
+ cmp r0, 0x5
+ bhi _0802B68E
+ b _0802B784
+_0802B68E:
+ subs r0, 0x6
+ cmp r0, 0x6
+ bls _0802B696
+ b _0802B78E
+_0802B696:
+ lsls r0, 2
+ ldr r1, _0802B6AC @ =_0802B6B0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0802B6A0: .4byte gBaseStats
+_0802B6A4: .4byte gBattleMons
+_0802B6A8: .4byte gUnknown_02024C04
+_0802B6AC: .4byte _0802B6B0
+ .align 2, 0
+_0802B6B0:
+ .4byte _0802B6CC
+ .4byte _0802B6FC
+ .4byte _0802B70E
+ .4byte _0802B73C
+ .4byte _0802B76C
+ .4byte _0802B72E
+ .4byte _0802B72E
+_0802B6CC:
+ ldr r2, _0802B6F4 @ =gBattleMons
+ ldr r0, _0802B6F8 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r1, r0, 0
+ adds r1, 0x21
+ ldrb r1, [r1]
+ cmp r1, 0xB
+ beq _0802B760
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0xB
+ beq _0802B760
+ cmp r1, 0x6
+ beq _0802B760
+ cmp r0, 0x6
+ beq _0802B760
+ b _0802B72E
+ .align 2, 0
+_0802B6F4: .4byte gBattleMons
+_0802B6F8: .4byte gUnknown_02024C08
+_0802B6FC:
+ bl sav1_map_get_light_level
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0xA
+ cmp r0, 0x5
+ bne _0802B78E
+ movs r4, 0x23
+ b _0802B78E
+_0802B70E:
+ ldr r2, _0802B734 @ =gBattleMons
+ ldr r0, _0802B738 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x2A
+ ldrb r1, [r0]
+ cmp r1, 0x27
+ bhi _0802B72E
+ movs r0, 0x28
+ subs r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bhi _0802B78E
+_0802B72E:
+ movs r4, 0xA
+ b _0802B78E
+ .align 2, 0
+_0802B734: .4byte gBattleMons
+_0802B738: .4byte gUnknown_02024C08
+_0802B73C:
+ ldr r2, _0802B764 @ =gBattleMons
+ ldr r0, _0802B768 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ movs r4, 0xA
+ cmp r0, 0
+ beq _0802B78E
+_0802B760:
+ movs r4, 0x1E
+ b _0802B78E
+ .align 2, 0
+_0802B764: .4byte gBattleMons
+_0802B768: .4byte gUnknown_02024C08
+_0802B76C:
+ ldr r0, _0802B780 @ =gUnknown_030042E0
+ ldrb r0, [r0, 0x13]
+ adds r0, 0xA
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x28
+ bls _0802B78E
+ movs r4, 0x28
+ b _0802B78E
+ .align 2, 0
+_0802B780: .4byte gUnknown_030042E0
+_0802B784:
+ ldr r1, _0802B7F4 @ =gBallCatchBonuses
+ ldrh r0, [r2]
+ subs r0, 0x2
+ adds r0, r1
+ ldrb r4, [r0]
+_0802B78E:
+ adds r0, r5, 0
+ muls r0, r4
+ movs r1, 0xA
+ bl __divsi3
+ ldr r5, _0802B7F8 @ =gBattleMons
+ ldr r1, _0802B7FC @ =gUnknown_02024C08
+ ldrb r1, [r1]
+ movs r7, 0x58
+ adds r4, r1, 0
+ muls r4, r7
+ adds r3, r4, r5
+ ldrh r2, [r3, 0x2C]
+ lsls r1, r2, 1
+ adds r1, r2
+ ldrh r2, [r3, 0x28]
+ lsls r2, 1
+ subs r2, r1, r2
+ muls r0, r2
+ bl __divsi3
+ adds r6, r0, 0
+ adds r5, 0x4C
+ adds r4, r5
+ ldr r4, [r4]
+ movs r0, 0x27
+ ands r0, r4
+ cmp r0, 0
+ beq _0802B7CA
+ lsls r6, 1
+_0802B7CA:
+ ands r4, r7
+ cmp r4, 0
+ beq _0802B7DC
+ lsls r0, r6, 4
+ subs r0, r6
+ movs r1, 0xA
+ bl __udivsi3
+ adds r6, r0, 0
+_0802B7DC:
+ ldr r1, _0802B800 @ =gUnknown_02024C04
+ ldrh r0, [r1]
+ cmp r0, 0x5
+ beq _0802B81C
+ cmp r0, 0x1
+ bne _0802B808
+ ldr r0, _0802B804 @ =gUnknown_030042E0
+ ldrb r1, [r0, 0x5]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ b _0802B81C
+ .align 2, 0
+_0802B7F4: .4byte gBallCatchBonuses
+_0802B7F8: .4byte gBattleMons
+_0802B7FC: .4byte gUnknown_02024C08
+_0802B800: .4byte gUnknown_02024C04
+_0802B804: .4byte gUnknown_030042E0
+_0802B808:
+ ldr r0, _0802B860 @ =gUnknown_030042E0
+ ldrh r1, [r1]
+ adds r0, r1
+ adds r1, r0, 0
+ adds r1, 0x34
+ ldrb r0, [r1]
+ cmp r0, 0xFE
+ bhi _0802B81C
+ adds r0, 0x1
+ strb r0, [r1]
+_0802B81C:
+ cmp r6, 0xFE
+ bls _0802B880
+ movs r0, 0
+ movs r1, 0x4
+ bl dp01_build_cmdbuf_x0D_a
+ ldr r0, _0802B864 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _0802B868 @ =gUnknown_02024C10
+ ldr r0, _0802B86C @ =gUnknown_081D9EC2
+ str r0, [r1]
+ ldr r1, _0802B870 @ =gUnknown_02024A6A
+ ldr r0, _0802B874 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802B878 @ =gEnemyParty
+ adds r0, r1
+ ldr r2, _0802B87C @ =gUnknown_02024C04
+ movs r1, 0x26
+ bl SetMonData
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ beq _0802B90E
+ b _0802B938
+ .align 2, 0
+_0802B860: .4byte gUnknown_030042E0
+_0802B864: .4byte gUnknown_02024A60
+_0802B868: .4byte gUnknown_02024C10
+_0802B86C: .4byte gUnknown_081D9EC2
+_0802B870: .4byte gUnknown_02024A6A
+_0802B874: .4byte gUnknown_02024C08
+_0802B878: .4byte gEnemyParty
+_0802B87C: .4byte gUnknown_02024C04
+_0802B880:
+ movs r0, 0xFF
+ lsls r0, 16
+ adds r1, r6, 0
+ bl __udivsi3
+ bl Sqrt
+ lsls r0, 16
+ lsrs r0, 16
+ bl Sqrt
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _0802B8A8 @ =0x000ffff0
+ adds r1, r6, 0
+ bl __udivsi3
+ adds r6, r0, 0
+ movs r4, 0
+ b _0802B8B2
+ .align 2, 0
+_0802B8A8: .4byte 0x000ffff0
+_0802B8AC:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0802B8B2:
+ cmp r4, 0x3
+ bhi _0802B8C2
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r6
+ bcc _0802B8AC
+_0802B8C2:
+ ldr r5, _0802B918 @ =gUnknown_02024C04
+ ldrh r0, [r5]
+ cmp r0, 0x1
+ bne _0802B8CC
+ movs r4, 0x4
+_0802B8CC:
+ movs r0, 0
+ adds r1, r4, 0
+ bl dp01_build_cmdbuf_x0D_a
+ ldr r0, _0802B91C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ cmp r4, 0x4
+ bne _0802B944
+ ldr r1, _0802B920 @ =gUnknown_02024C10
+ ldr r0, _0802B924 @ =gUnknown_081D9EC2
+ str r0, [r1]
+ ldr r1, _0802B928 @ =gUnknown_02024A6A
+ ldr r0, _0802B92C @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802B930 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x26
+ adds r2, r5, 0
+ bl SetMonData
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _0802B938
+_0802B90E:
+ ldr r1, _0802B934 @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ b _0802B94E
+ .align 2, 0
+_0802B918: .4byte gUnknown_02024C04
+_0802B91C: .4byte gUnknown_02024A60
+_0802B920: .4byte gUnknown_02024C10
+_0802B924: .4byte gUnknown_081D9EC2
+_0802B928: .4byte gUnknown_02024A6A
+_0802B92C: .4byte gUnknown_02024C08
+_0802B930: .4byte gEnemyParty
+_0802B934: .4byte gUnknown_02024D1E
+_0802B938:
+ ldr r1, _0802B940 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _0802B94E
+ .align 2, 0
+_0802B940: .4byte gUnknown_02024D1E
+_0802B944:
+ ldr r0, _0802B954 @ =gUnknown_02024D1E
+ strb r4, [r0, 0x5]
+ ldr r1, _0802B958 @ =gUnknown_02024C10
+ ldr r0, _0802B95C @ =gUnknown_081D9F0A
+_0802B94C:
+ str r0, [r1]
+_0802B94E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B954: .4byte gUnknown_02024D1E
+_0802B958: .4byte gUnknown_02024C10
+_0802B95C: .4byte gUnknown_081D9F0A
+ thumb_func_end sub_802B5B8
+
+ thumb_func_start sub_802B960
+sub_802B960: @ 802B960
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ ldr r0, _0802B9C8 @ =gUnknown_02024A6A
+ mov r9, r0
+ ldr r5, _0802B9CC @ =gUnknown_02024C07
+ ldrb r0, [r5]
+ movs r4, 0x1
+ eors r0, r4
+ lsls r0, 1
+ add r0, r9
+ ldrh r0, [r0]
+ movs r1, 0x64
+ mov r8, r1
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r6, _0802B9D0 @ =gEnemyParty
+ adds r0, r6
+ bl GiveMonToPlayer
+ ldr r2, _0802B9D4 @ =gUnknown_030042E0
+ ldr r1, _0802B9D8 @ =gBattleMons
+ ldrb r0, [r5]
+ eors r4, r0
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2, 0x28]
+ lsls r4, 1
+ add r4, r9
+ ldrh r0, [r4]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ adds r2, 0x2A
+ movs r1, 0x2
+ bl GetMonData
+ ldr r1, _0802B9DC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B9C8: .4byte gUnknown_02024A6A
+_0802B9CC: .4byte gUnknown_02024C07
+_0802B9D0: .4byte gEnemyParty
+_0802B9D4: .4byte gUnknown_030042E0
+_0802B9D8: .4byte gBattleMons
+_0802B9DC: .4byte gUnknown_02024C10
+ thumb_func_end sub_802B960
+
+ thumb_func_start sub_802B9E0
+sub_802B9E0: @ 802B9E0
+ push {r4-r6,lr}
+ ldr r4, _0802BA20 @ =gBattleMons
+ ldr r6, _0802BA24 @ =gUnknown_02024C08
+ ldrb r0, [r6]
+ movs r5, 0x58
+ muls r0, r5
+ adds r0, r4
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802BA2C
+ ldr r3, _0802BA28 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0802BA82
+ .align 2, 0
+_0802BA20: .4byte gBattleMons
+_0802BA24: .4byte gUnknown_02024C08
+_0802BA28: .4byte gUnknown_02024C10
+_0802BA2C:
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl sub_8090D90
+ ldrb r0, [r6]
+ adds r2, r0, 0
+ muls r2, r5
+ adds r0, r2, r4
+ ldrh r0, [r0]
+ cmp r0, 0xC9
+ bne _0802BA5C
+ ldr r0, _0802BA88 @ =gSaveBlock2
+ adds r1, r4, 0
+ adds r1, 0x48
+ adds r1, r2, r1
+ ldr r1, [r1]
+ str r1, [r0, 0x1C]
+_0802BA5C:
+ ldrb r0, [r6]
+ adds r2, r0, 0
+ muls r2, r5
+ adds r0, r2, r4
+ ldrh r1, [r0]
+ movs r0, 0x9A
+ lsls r0, 1
+ cmp r1, r0
+ bne _0802BA7A
+ ldr r0, _0802BA88 @ =gSaveBlock2
+ adds r1, r4, 0
+ adds r1, 0x48
+ adds r1, r2, r1
+ ldr r1, [r1]
+ str r1, [r0, 0x20]
+_0802BA7A:
+ ldr r1, _0802BA8C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802BA82:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802BA88: .4byte gSaveBlock2
+_0802BA8C: .4byte gUnknown_02024C10
+ thumb_func_end sub_802B9E0
+
+ thumb_func_start sub_802BA90
+sub_802BA90: @ 802BA90
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r7, _0802BAA8 @ =gUnknown_02024D1E
+ ldrb r1, [r7]
+ cmp r1, 0x1
+ beq _0802BAC6
+ cmp r1, 0x1
+ bgt _0802BAAC
+ cmp r1, 0
+ beq _0802BAB8
+ b _0802BBC4
+ .align 2, 0
+_0802BAA8: .4byte gUnknown_02024D1E
+_0802BAAC:
+ cmp r1, 0x2
+ beq _0802BB10
+ cmp r1, 0x3
+ bne _0802BAB6
+ b _0802BBB0
+_0802BAB6:
+ b _0802BBC4
+_0802BAB8:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ b _0802BB6E
+_0802BAC6:
+ ldr r0, _0802BB04 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802BBC4
+ ldr r4, _0802BB08 @ =gBattleMons
+ ldr r6, _0802BB0C @ =gUnknown_02024C08
+ ldrb r0, [r6]
+ movs r5, 0x58
+ muls r0, r5
+ adds r0, r4
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r6]
+ adds r2, r1, 0
+ muls r2, r5
+ adds r1, r4, 0
+ adds r1, 0x54
+ adds r1, r2, r1
+ ldr r1, [r1]
+ adds r4, 0x48
+ adds r2, r4
+ ldr r2, [r2]
+ bl sub_809070C
+ strb r0, [r7, 0x1]
+ b _0802BB72
+ .align 2, 0
+_0802BB04: .4byte gPaletteFade
+_0802BB08: .4byte gBattleMons
+_0802BB0C: .4byte gUnknown_02024C08
+_0802BB10:
+ ldr r0, _0802BB7C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802BBC4
+ ldr r0, _0802BB80 @ =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, _0802BB84 @ =sub_800F808
+ cmp r1, r0
+ bne _0802BBC4
+ ldr r2, _0802BB88 @ =gTasks
+ ldrb r1, [r7, 0x1]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r4, [r0, 0x4]
+ cmp r4, 0
+ bne _0802BBC4
+ ldr r0, _0802BB8C @ =gBattleTerrainTiles_Building
+ ldr r1, _0802BB90 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0802BB94 @ =gBattleTerrainTilemap_Building
+ ldr r1, _0802BB98 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0802BB9C @ =gBattleTerrainPalette_BattleTower
+ movs r1, 0x20
+ movs r2, 0x60
+ bl LoadCompressedPalette
+ ldr r1, _0802BBA0 @ =REG_BG3CNT
+ ldr r2, _0802BBA4 @ =0x00005a0b
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0802BBA8 @ =gUnknown_030041B0
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0802BBAC @ =0x0000fffc
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+_0802BB6E:
+ bl BeginNormalPaletteFade
+_0802BB72:
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ b _0802BBC4
+ .align 2, 0
+_0802BB7C: .4byte gPaletteFade
+_0802BB80: .4byte gMain
+_0802BB84: .4byte sub_800F808
+_0802BB88: .4byte gTasks
+_0802BB8C: .4byte gBattleTerrainTiles_Building
+_0802BB90: .4byte 0x06008000
+_0802BB94: .4byte gBattleTerrainTilemap_Building
+_0802BB98: .4byte 0x0600d000
+_0802BB9C: .4byte gBattleTerrainPalette_BattleTower
+_0802BBA0: .4byte REG_BG3CNT
+_0802BBA4: .4byte 0x00005a0b
+_0802BBA8: .4byte gUnknown_030041B0
+_0802BBAC: .4byte 0x0000fffc
+_0802BBB0:
+ ldr r0, _0802BBCC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802BBC4
+ ldr r1, _0802BBD0 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_0802BBC4:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802BBCC: .4byte gPaletteFade
+_0802BBD0: .4byte gUnknown_02024C10
+ thumb_func_end sub_802BA90
+
+ thumb_func_start sub_802BBD4
+sub_802BBD4: @ 802BBD4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, [sp, 0x20]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r12, r1
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 24
+ lsrs r7, r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r8, r4
+ mov r2, r12
+ cmp r2, r7
+ bgt _0802BC5A
+ lsls r1, r6, 1
+ ldr r0, _0802BC20 @ =0x0600c000
+ adds r1, r0
+ mov r9, r1
+_0802BC06:
+ adds r1, r6, 0
+ adds r0, r2, 0x1
+ mov r10, r0
+ cmp r1, r5
+ bgt _0802BC54
+ lsls r0, r2, 6
+ mov r4, r9
+ adds r3, r4, r0
+_0802BC16:
+ cmp r2, r12
+ bne _0802BC28
+ ldr r0, _0802BC24 @ =0x00001022
+ b _0802BC36
+ .align 2, 0
+_0802BC20: .4byte 0x0600c000
+_0802BC24: .4byte 0x00001022
+_0802BC28:
+ cmp r2, r7
+ bne _0802BC34
+ ldr r0, _0802BC30 @ =0x00001028
+ b _0802BC36
+ .align 2, 0
+_0802BC30: .4byte 0x00001028
+_0802BC34:
+ ldr r0, _0802BC68 @ =0x00001025
+_0802BC36:
+ cmp r1, r6
+ beq _0802BC42
+ adds r0, 0x1
+ cmp r1, r5
+ bne _0802BC42
+ adds r0, 0x1
+_0802BC42:
+ mov r4, r8
+ cmp r4, 0
+ beq _0802BC4A
+ movs r0, 0
+_0802BC4A:
+ strh r0, [r3]
+ adds r3, 0x2
+ adds r1, 0x1
+ cmp r1, r5
+ ble _0802BC16
+_0802BC54:
+ mov r2, r10
+ cmp r2, r7
+ ble _0802BC06
+_0802BC5A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802BC68: .4byte 0x00001025
+ thumb_func_end sub_802BBD4
+
+ thumb_func_start sub_802BC6C
+sub_802BC6C: @ 802BC6C
+ push {lr}
+ ldr r0, _0802BC88 @ =gUnknown_02024D1E
+ ldrb r1, [r0, 0x1]
+ lsls r1, 28
+ movs r0, 0x90
+ lsls r0, 23
+ adds r1, r0
+ lsrs r1, 24
+ movs r0, 0xC8
+ bl sub_814A880
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802BC88: .4byte gUnknown_02024D1E
+ thumb_func_end sub_802BC6C
+
+ thumb_func_start nullsub_6
+nullsub_6: @ 802BC8C
+ bx lr
+ thumb_func_end nullsub_6
+
+ thumb_func_start atkF3_receive_new_pokemon_maybe
+atkF3_receive_new_pokemon_maybe: @ 802BC90
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r0, _0802BCB4 @ =gUnknown_02024D1E
+ ldrb r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0x4
+ bls _0802BCA8
+ b _0802BEDA
+_0802BCA8:
+ lsls r0, r1, 2
+ ldr r1, _0802BCB8 @ =_0802BCBC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0802BCB4: .4byte gUnknown_02024D1E
+_0802BCB8: .4byte _0802BCBC
+ .align 2, 0
+_0802BCBC:
+ .4byte _0802BCD0
+ .4byte _0802BCEC
+ .4byte _0802BD84
+ .4byte _0802BE50
+ .4byte _0802BEA4
+_0802BCD0:
+ bl sub_8023A80
+ ldr r0, _0802BCE8 @ =gUnknown_02024D1E
+ ldrb r1, [r0]
+ adds r1, 0x1
+ movs r2, 0
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ bl sub_802BC6C
+ b _0802BEDA
+ .align 2, 0
+_0802BCE8: .4byte gUnknown_02024D1E
+_0802BCEC:
+ ldr r0, _0802BD60 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0802BD10
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _0802BD10
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_0802BD10:
+ ldr r0, _0802BD60 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0802BD36
+ ldr r4, _0802BD64 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _0802BD36
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_0802BD36:
+ ldr r0, _0802BD60 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802BD68
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0802BD64 @ =gUnknown_02024D1E
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _0802BD7A
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x3
+ bl BeginFastPaletteFade
+ b _0802BEDA
+ .align 2, 0
+_0802BD60: .4byte gMain
+_0802BD64: .4byte gUnknown_02024D1E
+_0802BD68:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0802BD72
+ b _0802BEDA
+_0802BD72:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0802BD80 @ =gUnknown_02024D1E
+_0802BD7A:
+ movs r0, 0x4
+ strb r0, [r1]
+ b _0802BEDA
+ .align 2, 0
+_0802BD80: .4byte gUnknown_02024D1E
+_0802BD84:
+ ldr r0, _0802BE34 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0802BD92
+ b _0802BEDA
+_0802BD92:
+ ldr r7, _0802BE38 @ =gUnknown_02024A6A
+ ldr r0, _0802BE3C @ =gUnknown_02024C07
+ mov r10, r0
+ ldrb r0, [r0]
+ movs r4, 0x1
+ eors r0, r4
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r1, 0x64
+ mov r9, r1
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r1, _0802BE40 @ =gEnemyParty
+ mov r8, r1
+ add r0, r8
+ movs r1, 0x2
+ ldr r2, _0802BE44 @ =0x02016079
+ bl GetMonData
+ mov r1, r10
+ ldrb r0, [r1]
+ eors r0, r4
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r8
+ movs r1, 0xB
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r6, 16
+ lsrs r6, 16
+ mov r1, r10
+ ldrb r0, [r1]
+ eors r0, r4
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r8
+ bl GetMonGender
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ mov r1, r10
+ ldrb r0, [r1]
+ eors r4, r0
+ lsls r4, 1
+ adds r4, r7
+ ldrh r0, [r4]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r8
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ str r0, [sp]
+ ldr r0, _0802BE48 @ =sub_800F808
+ str r0, [sp, 0x4]
+ movs r0, 0x2
+ ldr r1, _0802BE44 @ =0x02016079
+ adds r2, r6, 0
+ adds r3, r5, 0
+ bl DoNamingScreen
+ ldr r1, _0802BE4C @ =gUnknown_02024D1E
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0802BEDA
+ .align 2, 0
+_0802BE34: .4byte gPaletteFade
+_0802BE38: .4byte gUnknown_02024A6A
+_0802BE3C: .4byte gUnknown_02024C07
+_0802BE40: .4byte gEnemyParty
+_0802BE44: .4byte 0x02016079
+_0802BE48: .4byte sub_800F808
+_0802BE4C: .4byte gUnknown_02024D1E
+_0802BE50:
+ ldr r0, _0802BE88 @ =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, _0802BE8C @ =sub_800F808
+ cmp r1, r0
+ bne _0802BEDA
+ ldr r0, _0802BE90 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802BEDA
+ ldr r2, _0802BE94 @ =gUnknown_02024A6A
+ ldr r0, _0802BE98 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x1
+ eors r0, r1
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802BE9C @ =gEnemyParty
+ adds r0, r1
+ ldr r2, _0802BEA0 @ =0x02016079
+ movs r1, 0x2
+ bl SetMonData
+ b _0802BEC0
+ .align 2, 0
+_0802BE88: .4byte gMain
+_0802BE8C: .4byte sub_800F808
+_0802BE90: .4byte gPaletteFade
+_0802BE94: .4byte gUnknown_02024A6A
+_0802BE98: .4byte gUnknown_02024C07
+_0802BE9C: .4byte gEnemyParty
+_0802BEA0: .4byte 0x02016079
+_0802BEA4:
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _0802BEC0
+ ldr r1, _0802BEBC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802BEDA
+ .align 2, 0
+_0802BEBC: .4byte gUnknown_02024C10
+_0802BEC0:
+ ldr r3, _0802BEEC @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_0802BEDA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802BEEC: .4byte gUnknown_02024C10
+ thumb_func_end atkF3_receive_new_pokemon_maybe
+
+ thumb_func_start sub_802BEF0
+sub_802BEF0: @ 802BEF0
+ ldr r2, _0802BF10 @ =gBattleMons
+ ldr r0, _0802BF14 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldr r0, _0802BF18 @ =gUnknown_02024BEC
+ ldr r2, [r0]
+ ldrh r0, [r1, 0x28]
+ subs r0, r2
+ strh r0, [r1, 0x28]
+ ldr r1, _0802BF1C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0802BF10: .4byte gBattleMons
+_0802BF14: .4byte gUnknown_02024C07
+_0802BF18: .4byte gUnknown_02024BEC
+_0802BF1C: .4byte gUnknown_02024C10
+ thumb_func_end sub_802BEF0
+
+ thumb_func_start sub_802BF20
+sub_802BF20: @ 802BF20
+ ldr r1, _0802BF3C @ =gBattleMons
+ ldr r0, _0802BF40 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x4C
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+ ldr r1, _0802BF44 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0802BF3C: .4byte gBattleMons
+_0802BF40: .4byte gUnknown_02024C07
+_0802BF44: .4byte gUnknown_02024C10
+ thumb_func_end sub_802BF20
+
+ thumb_func_start sub_802BF48
+sub_802BF48: @ 802BF48
+ ldr r1, _0802BF50 @ =gUnknown_02024A7F
+ movs r0, 0xC
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0802BF50: .4byte gUnknown_02024A7F
+ thumb_func_end sub_802BF48
+
+ thumb_func_start sub_802BF54
+sub_802BF54: @ 802BF54
+ ldr r1, _0802BF64 @ =gUnknown_02024A7F
+ movs r0, 0xC
+ strb r0, [r1]
+ ldr r1, _0802BF68 @ =gUnknown_02024A7E
+ ldr r0, _0802BF6C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0802BF64: .4byte gUnknown_02024A7F
+_0802BF68: .4byte gUnknown_02024A7E
+_0802BF6C: .4byte gUnknown_02024A68
+ thumb_func_end sub_802BF54
+
+ thumb_func_start nullsub_91
+nullsub_91: @ 802BF70
+ bx lr
+ thumb_func_end nullsub_91
+
+ thumb_func_start sub_802BF74
+sub_802BF74: @ 802BF74
+ ldr r1, _0802BF8C @ =gUnknown_03004330
+ ldr r0, _0802BF90 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802BF94 @ =sub_802C014
+ str r1, [r0]
+ ldr r1, _0802BF98 @ =gUnknown_02024E6D
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0802BF8C: .4byte gUnknown_03004330
+_0802BF90: .4byte gUnknown_02024A60
+_0802BF94: .4byte sub_802C014
+_0802BF98: .4byte gUnknown_02024E6D
+ thumb_func_end sub_802BF74
+
+ thumb_func_start dp01_tbl1_exec_completed
+dp01_tbl1_exec_completed: @ 802BF9C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _0802BFDC @ =gUnknown_03004330
+ ldr r4, _0802BFE0 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802BFE4 @ =sub_802C014
+ str r1, [r0]
+ ldr r0, _0802BFE8 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802BFF0
+ bl GetMultiplayerId
+ mov r1, sp
+ strb r0, [r1]
+ movs r0, 0x2
+ movs r1, 0x4
+ mov r2, sp
+ bl dp01_prepare_buffer_wireless_probably
+ ldr r1, _0802BFEC @ =gUnknown_02023A60
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r0, r1
+ movs r1, 0x38
+ strb r1, [r0]
+ b _0802C002
+ .align 2, 0
+_0802BFDC: .4byte gUnknown_03004330
+_0802BFE0: .4byte gUnknown_02024A60
+_0802BFE4: .4byte sub_802C014
+_0802BFE8: .4byte gUnknown_020239F8
+_0802BFEC: .4byte gUnknown_02023A60
+_0802BFF0:
+ ldr r2, _0802C00C @ =gUnknown_02024A64
+ ldr r1, _0802C010 @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+_0802C002:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802C00C: .4byte gUnknown_02024A64
+_0802C010: .4byte gBitTable
+ thumb_func_end dp01_tbl1_exec_completed
+
+ thumb_func_start sub_802C014
+sub_802C014: @ 802C014
+ push {lr}
+ ldr r2, _0802C048 @ =gUnknown_02024A64
+ ldr r1, _0802C04C @ =gBitTable
+ ldr r0, _0802C050 @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0802C060
+ ldr r0, _0802C054 @ =gUnknown_02023A60
+ lsls r1, r3, 9
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x38
+ bhi _0802C05C
+ ldr r0, _0802C058 @ =gUnknown_081FAD98
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+ b _0802C060
+ .align 2, 0
+_0802C048: .4byte gUnknown_02024A64
+_0802C04C: .4byte gBitTable
+_0802C050: .4byte gUnknown_02024A60
+_0802C054: .4byte gUnknown_02023A60
+_0802C058: .4byte gUnknown_081FAD98
+_0802C05C:
+ bl dp01_tbl1_exec_completed
+_0802C060:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802C014
+
+ thumb_func_start bx_0802E404
+bx_0802E404: @ 802C064
+ push {lr}
+ ldr r2, _0802C08C @ =gSprites
+ ldr r1, _0802C090 @ =gUnknown_02024BE0
+ ldr r0, _0802C094 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x24
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0802C086
+ bl dp01_tbl1_exec_completed
+_0802C086:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802C08C: .4byte gSprites
+_0802C090: .4byte gUnknown_02024BE0
+_0802C094: .4byte gUnknown_02024A60
+ thumb_func_end bx_0802E404
+
+ thumb_func_start sub_802C098
+sub_802C098: @ 802C098
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r7, _0802C0FC @ =gUnknown_02023A60
+ ldr r4, _0802C100 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r2, r0, 9
+ adds r1, r7, 0x2
+ adds r1, r2, r1
+ ldrb r5, [r1]
+ adds r1, r7, 0x3
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 8
+ orrs r5, r1
+ movs r1, 0x1
+ movs r2, 0x7
+ movs r3, 0x1
+ bl dp11b_obj_instanciate
+ ldrb r0, [r4]
+ movs r1, 0
+ movs r2, 0x7
+ movs r3, 0x1
+ bl dp11b_obj_instanciate
+ ldr r0, _0802C104 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C13E
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_814A7FC
+ ldr r1, _0802C108 @ =gUnknown_02024E60
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0802C11C
+ cmp r0, 0x1
+ bgt _0802C10C
+ cmp r0, 0
+ beq _0802C116
+ b _0802C138
+ .align 2, 0
+_0802C0FC: .4byte gUnknown_02023A60
+_0802C100: .4byte gUnknown_02024A60
+_0802C104: .4byte gMain
+_0802C108: .4byte gUnknown_02024E60
+_0802C10C:
+ cmp r0, 0x2
+ beq _0802C122
+ cmp r0, 0x3
+ beq _0802C12E
+ b _0802C138
+_0802C116:
+ movs r0, 0x1
+ movs r1, 0
+ b _0802C126
+_0802C11C:
+ movs r0, 0x1
+ movs r1, 0x1
+ b _0802C126
+_0802C122:
+ movs r0, 0x1
+ movs r1, 0x2
+_0802C126:
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ b _0802C138
+_0802C12E:
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+_0802C138:
+ bl dp01_tbl1_exec_completed
+ b _0802C2AC
+_0802C13E:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C178
+ ldr r5, _0802C174 @ =gUnknown_02024E60
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802C158
+ b _0802C2AC
+_0802C158:
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl nullsub_8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x1
+ b _0802C200
+ .align 2, 0
+_0802C174: .4byte gUnknown_02024E60
+_0802C178:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C1B0
+ ldr r5, _0802C1AC @ =gUnknown_02024E60
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C192
+ b _0802C2AC
+_0802C192:
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl nullsub_8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x1
+ b _0802C200
+ .align 2, 0
+_0802C1AC: .4byte gUnknown_02024E60
+_0802C1B0:
+ movs r0, 0x40
+ mov r8, r0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C1D0
+ ldr r5, _0802C1CC @ =gUnknown_02024E60
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C2AC
+ b _0802C1E8
+ .align 2, 0
+_0802C1CC: .4byte gUnknown_02024E60
+_0802C1D0:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C218
+ ldr r5, _0802C214 @ =gUnknown_02024E60
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0802C2AC
+_0802C1E8:
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl nullsub_8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x2
+_0802C200:
+ eors r0, r2
+ strb r0, [r1]
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3E4
+ b _0802C2AC
+ .align 2, 0
+_0802C214: .4byte gUnknown_02024E60
+_0802C218:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C2A0
+ ldr r6, _0802C294 @ =gUnknown_020239F8
+ ldrh r1, [r6]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C2AC
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0802C2AC
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r1, _0802C298 @ =gUnknown_02024C0C
+ ldrb r1, [r1]
+ ldr r2, _0802C29C @ =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0802C2AC
+ ldrh r1, [r6]
+ mov r0, r8
+ ands r0, r1
+ cmp r0, 0
+ bne _0802C2AC
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r1, r7, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0802C278
+ cmp r5, 0xC
+ bhi _0802C2AC
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl AddBagItem
+_0802C278:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ movs r1, 0xC
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ bl dp01_tbl1_exec_completed
+ bl sub_814A7FC
+ b _0802C2AC
+ .align 2, 0
+_0802C294: .4byte gUnknown_020239F8
+_0802C298: .4byte gUnknown_02024C0C
+_0802C29C: .4byte gBitTable
+_0802C2A0:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C2AC
+ bl sub_804454C
+_0802C2AC:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802C098
+
+ thumb_func_start unref_sub_802C2B8
+unref_sub_802C2B8: @ 802C2B8
+ push {r4,lr}
+ ldr r4, _0802C2E0 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl dp11b_obj_free
+ ldrb r0, [r4]
+ movs r1, 0
+ bl dp11b_obj_free
+ ldr r1, _0802C2E4 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802C2E8 @ =sub_802C2EC
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802C2E0: .4byte gUnknown_02024A60
+_0802C2E4: .4byte gUnknown_03004330
+_0802C2E8: .4byte sub_802C2EC
+ thumb_func_end unref_sub_802C2B8
+
+ thumb_func_start sub_802C2EC
+sub_802C2EC: @ 802C2EC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r1, _0802C384 @ =gUnknown_081FAE7C
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ ldr r0, _0802C388 @ =gUnknown_03004344
+ ldrb r0, [r0]
+ movs r1, 0x1
+ movs r2, 0xF
+ movs r3, 0x1
+ bl dp11b_obj_instanciate
+ movs r4, 0
+ ldr r0, _0802C38C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802C32E
+_0802C312:
+ ldr r0, _0802C388 @ =gUnknown_03004344
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _0802C324
+ lsls r0, r4, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ bl dp11b_obj_free
+_0802C324:
+ adds r4, 0x1
+ ldr r0, _0802C38C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _0802C312
+_0802C32E:
+ ldr r0, _0802C390 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C3A8
+ bl sub_814A7FC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _0802C394 @ =gSprites
+ ldr r1, _0802C398 @ =gUnknown_02024BE0
+ ldr r4, _0802C388 @ =gUnknown_03004344
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0802C39C @ =sub_8010574
+ str r1, [r0]
+ ldr r1, _0802C3A0 @ =gUnknown_02024E64
+ ldr r0, _0802C3A4 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldrb r0, [r4]
+ lsls r0, 8
+ orrs r2, r0
+ movs r0, 0x1
+ movs r1, 0xA
+ bl dp01_build_cmdbuf_x21_a_bb
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl dp11b_obj_free
+ bl dp01_tbl1_exec_completed
+ b _0802C658
+ .align 2, 0
+_0802C384: .4byte gUnknown_081FAE7C
+_0802C388: .4byte gUnknown_03004344
+_0802C38C: .4byte gUnknown_02024A68
+_0802C390: .4byte gMain
+_0802C394: .4byte gSprites
+_0802C398: .4byte gUnknown_02024BE0
+_0802C39C: .4byte sub_8010574
+_0802C3A0: .4byte gUnknown_02024E64
+_0802C3A4: .4byte gUnknown_02024A60
+_0802C3A8:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C41C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _0802C400 @ =gSprites
+ ldr r1, _0802C404 @ =gUnknown_02024BE0
+ ldr r5, _0802C408 @ =gUnknown_03004344
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0802C40C @ =sub_8010574
+ str r1, [r0]
+ ldr r1, _0802C410 @ =gUnknown_03004330
+ ldr r4, _0802C414 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802C418 @ =sub_802C68C
+ str r1, [r0]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ movs r2, 0x7
+ movs r3, 0x1
+ bl dp11b_obj_instanciate
+ ldrb r0, [r4]
+ movs r1, 0
+ movs r2, 0x7
+ movs r3, 0x1
+ bl dp11b_obj_instanciate
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl dp11b_obj_free
+ b _0802C658
+ .align 2, 0
+_0802C400: .4byte gSprites
+_0802C404: .4byte gUnknown_02024BE0
+_0802C408: .4byte gUnknown_03004344
+_0802C40C: .4byte sub_8010574
+_0802C410: .4byte gUnknown_03004330
+_0802C414: .4byte gUnknown_02024A60
+_0802C418: .4byte sub_802C68C
+_0802C41C:
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ bne _0802C426
+ b _0802C540
+_0802C426:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _0802C458 @ =gSprites
+ ldr r1, _0802C45C @ =gUnknown_02024BE0
+ ldr r3, _0802C460 @ =gUnknown_03004344
+ ldrb r0, [r3]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0802C464 @ =sub_8010574
+ str r1, [r0]
+ adds r5, r3, 0
+_0802C448:
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r4, 0
+ mov r0, sp
+ b _0802C472
+ .align 2, 0
+_0802C458: .4byte gSprites
+_0802C45C: .4byte gUnknown_02024BE0
+_0802C460: .4byte gUnknown_03004344
+_0802C464: .4byte sub_8010574
+_0802C468:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _0802C478
+ mov r2, sp
+ adds r0, r2, r4
+_0802C472:
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0802C468
+_0802C478:
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0802C480
+ movs r4, 0x3
+_0802C480:
+ mov r1, sp
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ bl battle_get_side_with_given_state
+ strb r0, [r5]
+ ldr r1, _0802C4B4 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0802C478
+ movs r4, 0
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0802C4FE
+ cmp r0, 0x1
+ bgt _0802C4B8
+ cmp r0, 0
+ beq _0802C4C2
+ b _0802C500
+ .align 2, 0
+_0802C4B4: .4byte gUnknown_02024A68
+_0802C4B8:
+ cmp r0, 0x2
+ beq _0802C4C2
+ cmp r0, 0x3
+ beq _0802C4FE
+ b _0802C500
+_0802C4C2:
+ ldr r2, _0802C520 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ ldrb r1, [r5]
+ cmp r0, r1
+ bne _0802C4FE
+ ldr r1, _0802C524 @ =gUnknown_02024A6A
+ ldrb r2, [r2]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802C528 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802C52C @ =gUnknown_02024E64
+ adds r2, r1
+ ldrb r1, [r2]
+ adds r1, 0xD
+ bl GetMonData
+ ldr r2, _0802C530 @ =gBattleMoves
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x6]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C500
+_0802C4FE:
+ adds r4, 0x1
+_0802C500:
+ ldr r0, _0802C534 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _0802C538 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ ldr r0, _0802C53C @ =gUnknown_03004344
+ cmp r1, 0
+ beq _0802C518
+ movs r4, 0
+_0802C518:
+ cmp r4, 0
+ beq _0802C448
+ b _0802C640
+ .align 2, 0
+_0802C520: .4byte gUnknown_02024A60
+_0802C524: .4byte gUnknown_02024A6A
+_0802C528: .4byte gPlayerParty
+_0802C52C: .4byte gUnknown_02024E64
+_0802C530: .4byte gBattleMoves
+_0802C534: .4byte gUnknown_02024C0C
+_0802C538: .4byte gBitTable
+_0802C53C: .4byte gUnknown_03004344
+_0802C540:
+ movs r0, 0x90
+ ands r0, r1
+ cmp r0, 0
+ bne _0802C54A
+ b _0802C658
+_0802C54A:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _0802C57C @ =gSprites
+ ldr r1, _0802C580 @ =gUnknown_02024BE0
+ ldr r3, _0802C584 @ =gUnknown_03004344
+ ldrb r0, [r3]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0802C588 @ =sub_8010574
+ str r1, [r0]
+ adds r5, r3, 0
+_0802C56C:
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r4, 0
+ mov r0, sp
+ b _0802C596
+ .align 2, 0
+_0802C57C: .4byte gSprites
+_0802C580: .4byte gUnknown_02024BE0
+_0802C584: .4byte gUnknown_03004344
+_0802C588: .4byte sub_8010574
+_0802C58C:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _0802C59C
+ mov r2, sp
+ adds r0, r2, r4
+_0802C596:
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0802C58C
+_0802C59C:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0802C5A4
+ movs r4, 0
+_0802C5A4:
+ mov r1, sp
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ bl battle_get_side_with_given_state
+ strb r0, [r5]
+ ldr r1, _0802C5D8 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0802C59C
+ movs r4, 0
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0802C622
+ cmp r0, 0x1
+ bgt _0802C5DC
+ cmp r0, 0
+ beq _0802C5E6
+ b _0802C624
+ .align 2, 0
+_0802C5D8: .4byte gUnknown_02024A68
+_0802C5DC:
+ cmp r0, 0x2
+ beq _0802C5E6
+ cmp r0, 0x3
+ beq _0802C622
+ b _0802C624
+_0802C5E6:
+ ldr r2, _0802C660 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ ldrb r1, [r5]
+ cmp r0, r1
+ bne _0802C622
+ ldr r1, _0802C664 @ =gUnknown_02024A6A
+ ldrb r2, [r2]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802C668 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802C66C @ =gUnknown_02024E64
+ adds r2, r1
+ ldrb r1, [r2]
+ adds r1, 0xD
+ bl GetMonData
+ ldr r2, _0802C670 @ =gBattleMoves
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x6]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C624
+_0802C622:
+ adds r4, 0x1
+_0802C624:
+ ldr r0, _0802C674 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _0802C678 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ ldr r0, _0802C67C @ =gUnknown_03004344
+ cmp r1, 0
+ beq _0802C63C
+ movs r4, 0
+_0802C63C:
+ cmp r4, 0
+ beq _0802C56C
+_0802C640:
+ ldr r2, _0802C680 @ =gSprites
+ ldr r1, _0802C684 @ =gUnknown_02024BE0
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0802C688 @ =sub_8010520
+ str r1, [r0]
+_0802C658:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802C660: .4byte gUnknown_02024A60
+_0802C664: .4byte gUnknown_02024A6A
+_0802C668: .4byte gPlayerParty
+_0802C66C: .4byte gUnknown_02024E64
+_0802C670: .4byte gBattleMoves
+_0802C674: .4byte gUnknown_02024C0C
+_0802C678: .4byte gBitTable
+_0802C67C: .4byte gUnknown_03004344
+_0802C680: .4byte gSprites
+_0802C684: .4byte gUnknown_02024BE0
+_0802C688: .4byte sub_8010520
+ thumb_func_end sub_802C2EC
+
+ thumb_func_start sub_802C68C
+sub_802C68C: @ 802C68C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r0, 0
+ mov r8, r0
+ ldr r7, _0802C6E4 @ =gUnknown_02024A60
+ ldrb r2, [r7]
+ lsls r0, r2, 9
+ ldr r1, _0802C6E8 @ =gUnknown_02023A64
+ adds r6, r0, r1
+ ldr r0, _0802C6EC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r5, 0x1
+ adds r4, r5, 0
+ ands r4, r1
+ cmp r4, 0
+ bne _0802C6B2
+ b _0802C864
+_0802C6B2:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0802C6F0 @ =gUnknown_02024E64
+ ldrb r0, [r7]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r1, r6, r0
+ ldrh r0, [r1]
+ cmp r0, 0xAE
+ bne _0802C6F4
+ ldrb r0, [r6, 0x12]
+ movs r4, 0
+ cmp r0, 0x7
+ beq _0802C702
+ ldrb r1, [r6, 0x13]
+ movs r0, 0x7
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ asrs r4, r0, 31
+ movs r0, 0x10
+ ands r4, r0
+ b _0802C702
+ .align 2, 0
+_0802C6E4: .4byte gUnknown_02024A60
+_0802C6E8: .4byte gUnknown_02023A64
+_0802C6EC: .4byte gMain
+_0802C6F0: .4byte gUnknown_02024E64
+_0802C6F4:
+ ldr r2, _0802C714 @ =gBattleMoves
+ ldrh r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r4, [r0, 0x6]
+_0802C702:
+ movs r0, 0x10
+ ands r0, r4
+ cmp r0, 0
+ beq _0802C720
+ ldr r0, _0802C718 @ =gUnknown_03004344
+ ldr r1, _0802C71C @ =gUnknown_02024A60
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _0802C73A
+ .align 2, 0
+_0802C714: .4byte gBattleMoves
+_0802C718: .4byte gUnknown_03004344
+_0802C71C: .4byte gUnknown_02024A60
+_0802C720:
+ ldr r0, _0802C764 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ movs r2, 0x1
+ movs r0, 0x1
+ ands r0, r1
+ eors r0, r2
+ bl battle_get_side_with_given_state
+ ldr r1, _0802C768 @ =gUnknown_03004344
+ strb r0, [r1]
+_0802C73A:
+ ldr r3, _0802C76C @ =gUnknown_02023A60
+ ldr r5, _0802C764 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r1, r2, 9
+ adds r0, r3, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0802C770
+ movs r0, 0x2
+ ands r0, r4
+ cmp r0, 0
+ beq _0802C7B2
+ adds r0, r3, 0x2
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0802C7B2
+ movs r2, 0x1
+ add r8, r2
+ b _0802C7B2
+ .align 2, 0
+_0802C764: .4byte gUnknown_02024A60
+_0802C768: .4byte gUnknown_03004344
+_0802C76C: .4byte gUnknown_02023A60
+_0802C770:
+ movs r0, 0x7D
+ ands r0, r4
+ cmp r0, 0
+ bne _0802C77C
+ movs r0, 0x1
+ add r8, r0
+_0802C77C:
+ ldr r0, _0802C7D0 @ =gUnknown_02024E64
+ adds r0, r2, r0
+ adds r1, r6, 0
+ adds r1, 0x8
+ ldrb r0, [r0]
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0802C7B8
+ movs r0, 0x12
+ ands r0, r4
+ cmp r0, 0
+ bne _0802C7B2
+ movs r0, 0
+ bl sub_803C348
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _0802C7B2
+ ldrb r0, [r5]
+ bl sub_803C434
+ ldr r1, _0802C7D4 @ =gUnknown_03004344
+ strb r0, [r1]
+ movs r2, 0
+ mov r8, r2
+_0802C7B2:
+ mov r0, r8
+ cmp r0, 0
+ bne _0802C7DC
+_0802C7B8:
+ bl sub_814A7FC
+ ldr r1, _0802C7D0 @ =gUnknown_02024E64
+ ldr r0, _0802C7D8 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r0, _0802C7D4 @ =gUnknown_03004344
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r2, r0
+ b _0802C888
+ .align 2, 0
+_0802C7D0: .4byte gUnknown_02024E64
+_0802C7D4: .4byte gUnknown_03004344
+_0802C7D8: .4byte gUnknown_02024A60
+_0802C7DC:
+ ldr r1, _0802C7F8 @ =gUnknown_03004330
+ ldr r2, _0802C7FC @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802C800 @ =sub_802C2EC
+ str r1, [r0]
+ movs r0, 0x12
+ ands r4, r0
+ cmp r4, 0
+ beq _0802C808
+ ldr r1, _0802C804 @ =gUnknown_03004344
+ ldrb r0, [r2]
+ b _0802C838
+ .align 2, 0
+_0802C7F8: .4byte gUnknown_03004330
+_0802C7FC: .4byte gUnknown_02024A60
+_0802C800: .4byte sub_802C2EC
+_0802C804: .4byte gUnknown_03004344
+_0802C808:
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ ldr r1, _0802C828 @ =gUnknown_02024C0C
+ ldrb r1, [r1]
+ ldr r2, _0802C82C @ =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0802C830
+ movs r0, 0x3
+ b _0802C832
+ .align 2, 0
+_0802C828: .4byte gUnknown_02024C0C
+_0802C82C: .4byte gBitTable
+_0802C830:
+ movs r0, 0x1
+_0802C832:
+ bl battle_get_side_with_given_state
+ ldr r1, _0802C854 @ =gUnknown_03004344
+_0802C838:
+ strb r0, [r1]
+ ldr r2, _0802C858 @ =gSprites
+ ldr r1, _0802C85C @ =gUnknown_02024BE0
+ ldr r0, _0802C854 @ =gUnknown_03004344
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0802C860 @ =sub_8010520
+ b _0802CA36
+ .align 2, 0
+_0802C854: .4byte gUnknown_03004344
+_0802C858: .4byte gSprites
+_0802C85C: .4byte gUnknown_02024BE0
+_0802C860: .4byte sub_8010520
+_0802C864:
+ movs r6, 0x2
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C8A4
+ bl sub_814A7FC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0802C898 @ =gUnknown_030042A4
+ strh r4, [r0]
+ ldr r1, _0802C89C @ =gUnknown_030042A0
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _0802C8A0 @ =0x0000ffff
+_0802C888:
+ movs r0, 0x1
+ movs r1, 0xA
+ bl dp01_build_cmdbuf_x21_a_bb
+ bl dp01_tbl1_exec_completed
+ b _0802CA38
+ .align 2, 0
+_0802C898: .4byte gUnknown_030042A4
+_0802C89C: .4byte gUnknown_030042A0
+_0802C8A0: .4byte 0x0000ffff
+_0802C8A4:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C8D4
+ ldr r4, _0802C8D0 @ =gUnknown_02024E64
+ adds r2, r4
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802C8BC
+ b _0802CA38
+_0802C8BC:
+ ldrb r0, [r2]
+ bl nullsub_7
+ ldrb r1, [r7]
+ adds r1, r4
+ ldrb r0, [r1]
+ movs r2, 0x1
+ eors r0, r2
+ b _0802C976
+ .align 2, 0
+_0802C8D0: .4byte gUnknown_02024E64
+_0802C8D4:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C914
+ ldr r4, _0802C90C @ =gUnknown_02024E64
+ adds r3, r2, r4
+ ldrb r2, [r3]
+ movs r6, 0x1
+ adds r0, r5, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _0802C8EE
+ b _0802CA38
+_0802C8EE:
+ ldr r1, _0802C910 @ =gUnknown_03004348
+ adds r0, r6, 0
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _0802C8FC
+ b _0802CA38
+_0802C8FC:
+ ldrb r0, [r3]
+ bl nullsub_7
+ ldrb r1, [r7]
+ adds r1, r4
+ ldrb r0, [r1]
+ eors r0, r6
+ b _0802C976
+ .align 2, 0
+_0802C90C: .4byte gUnknown_02024E64
+_0802C910: .4byte gUnknown_03004348
+_0802C914:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C944
+ ldr r4, _0802C940 @ =gUnknown_02024E64
+ adds r2, r4
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802C92C
+ b _0802CA38
+_0802C92C:
+ ldrb r0, [r2]
+ bl nullsub_7
+ ldrb r1, [r7]
+ adds r1, r4
+ ldrb r0, [r1]
+ movs r2, 0x2
+ eors r0, r2
+ b _0802C976
+ .align 2, 0
+_0802C940: .4byte gUnknown_02024E64
+_0802C944:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C99C
+ ldr r4, _0802C994 @ =gUnknown_02024E64
+ adds r3, r2, r4
+ ldrb r2, [r3]
+ movs r5, 0x2
+ adds r0, r6, 0
+ ands r0, r2
+ cmp r0, 0
+ bne _0802CA38
+ ldr r1, _0802C998 @ =gUnknown_03004348
+ adds r0, r5, 0
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _0802CA38
+ ldrb r0, [r3]
+ bl nullsub_7
+ ldrb r1, [r7]
+ adds r1, r4
+ ldrb r0, [r1]
+ eors r0, r5
+_0802C976:
+ strb r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r7]
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3B4
+ bl sub_802E220
+ bl sub_802E2D4
+ b _0802CA38
+ .align 2, 0
+_0802C994: .4byte gUnknown_02024E64
+_0802C998: .4byte gUnknown_03004348
+_0802C99C:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0802CA38
+ ldr r0, _0802C9D8 @ =gUnknown_03004348
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _0802CA38
+ ldr r0, _0802C9DC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ ands r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ bne _0802CA38
+ ldr r4, _0802C9E0 @ =gUnknown_02024E64
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ ldr r1, _0802C9E4 @ =gUnknown_081FAE80
+ bl sub_802E12C
+ ldrb r0, [r7]
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802C9EC
+ ldr r0, _0802C9E8 @ =gUnknown_03004344
+ strb r5, [r0]
+ b _0802C9F4
+ .align 2, 0
+_0802C9D8: .4byte gUnknown_03004348
+_0802C9DC: .4byte gUnknown_020239F8
+_0802C9E0: .4byte gUnknown_02024E64
+_0802C9E4: .4byte gUnknown_081FAE80
+_0802C9E8: .4byte gUnknown_03004344
+_0802C9EC:
+ ldr r1, _0802CA44 @ =gUnknown_03004344
+ adds r0, 0x1
+ strb r0, [r1]
+ adds r0, r1, 0
+_0802C9F4:
+ ldrb r0, [r0]
+ movs r1, 0x1B
+ bl sub_802E3B4
+ ldr r4, _0802CA48 @ =gUnknown_03004210
+ ldr r1, _0802CA4C @ =0x00001016
+ movs r0, 0x1C
+ str r0, [sp]
+ movs r0, 0x3A
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r2, 0x17
+ movs r3, 0x37
+ bl FillWindowRect
+ ldr r1, _0802CA50 @ =gUnknown_08400D89
+ movs r2, 0xA4
+ lsls r2, 2
+ movs r0, 0x37
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x17
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _0802CA54 @ =gUnknown_03004330
+ ldr r0, _0802CA58 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802CA5C @ =sub_802CA60
+_0802CA36:
+ str r1, [r0]
+_0802CA38:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802CA44: .4byte gUnknown_03004344
+_0802CA48: .4byte gUnknown_03004210
+_0802CA4C: .4byte 0x00001016
+_0802CA50: .4byte gUnknown_08400D89
+_0802CA54: .4byte gUnknown_03004330
+_0802CA58: .4byte gUnknown_02024A60
+_0802CA5C: .4byte sub_802CA60
+ thumb_func_end sub_802C68C
+
+ thumb_func_start sub_802CA60
+sub_802CA60: @ 802CA60
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ ldr r0, _0802CDEC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x5
+ ands r0, r1
+ cmp r0, 0
+ bne _0802CA7A
+ b _0802CE78
+_0802CA7A:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0802CDF0 @ =gUnknown_02024E64
+ mov r10, r0
+ ldr r1, _0802CDF4 @ =gUnknown_02024A60
+ mov r8, r1
+ ldrb r1, [r1]
+ adds r2, r1, r0
+ ldr r5, _0802CDF8 @ =gUnknown_03004344
+ ldrb r0, [r2]
+ ldrb r3, [r5]
+ cmp r0, r3
+ bne _0802CA98
+ b _0802CE14
+_0802CA98:
+ lsls r1, 9
+ ldr r0, _0802CDFC @ =gUnknown_02023A64
+ adds r1, r0
+ mov r9, r1
+ ldrb r1, [r2]
+ lsls r1, 1
+ add r1, r9
+ ldrh r6, [r1]
+ ldrb r0, [r5]
+ lsls r0, 1
+ add r0, r9
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldrb r0, [r5]
+ lsls r0, 1
+ add r0, r9
+ strh r6, [r0]
+ mov r1, r8
+ ldrb r0, [r1]
+ add r0, r10
+ ldrb r1, [r0]
+ mov r7, r9
+ adds r7, 0x8
+ 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, r10
+ ldrb r1, [r0]
+ mov r2, r9
+ 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, r0
+ strb r6, [r2]
+ mov r3, r8
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r2, _0802CE00 @ =gUnknown_02024CA8
+ adds r6, r0, r2
+ ldrb r4, [r6, 0x18]
+ lsls r3, r4, 24
+ lsrs r2, r3, 28
+ ldr r0, _0802CE04 @ =gBitTable
+ mov r12, r0
+ add r1, r10
+ ldrb r0, [r1]
+ lsls r0, 2
+ add r0, r12
+ ldr r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ beq _0802CB52
+ lsrs r1, r3, 28
+ bics r1, r0
+ lsls 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, r0
+ lsls r1, 2
+ ldr r3, _0802CE00 @ =gUnknown_02024CA8
+ adds r1, r3
+ ldrb r4, [r1, 0x18]
+ lsrs r3, r4, 4
+ ldrb r0, [r5]
+ lsls r0, 2
+ add r0, r12
+ ldr r0, [r0]
+ orrs r0, r3
+ lsls r0, 4
+ ands r2, r4
+ orrs r2, r0
+ strb r2, [r1, 0x18]
+_0802CB52:
+ bl sub_802E1B0
+ movs r6, 0
+ mov r12, r7
+ mov r5, sp
+ adds r5, 0x20
+ str r5, [sp, 0x28]
+ ldr r2, _0802CE08 @ =gBattleMons
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r4, r0, 0
+ adds r4, 0x3B
+ mov r7, r8
+ mov r10, r2
+ movs r5, 0x3
+_0802CB76:
+ mov r3, sp
+ adds r3, r6
+ adds r3, 0x8
+ 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, 0x1
+ cmp r6, 0x3
+ ble _0802CB76
+ ldr r1, _0802CDF0 @ =gUnknown_02024E64
+ ldrb r0, [r7]
+ adds r0, r1
+ ldrb r0, [r0]
+ add r0, sp
+ adds r0, 0x8
+ ldrb r0, [r0]
+ ldr r2, [sp, 0x28]
+ strb r0, [r2]
+ ldrb r0, [r7]
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r2, sp
+ adds r2, r0
+ adds r2, 0x8
+ ldr r1, _0802CDF8 @ =gUnknown_03004344
+ ldrb r0, [r1]
+ add r0, sp
+ adds r0, 0x8
+ ldrb r0, [r0]
+ movs r3, 0
+ strb r0, [r2]
+ ldrb r0, [r1]
+ mov r1, sp
+ adds r1, r0
+ adds r1, 0x8
+ ldr r5, [sp, 0x28]
+ ldrb r0, [r5]
+ strb r0, [r1]
+ strb r3, [r5]
+ movs r6, 0
+ ldr r2, [sp, 0x28]
+_0802CBD0:
+ mov r0, sp
+ adds r0, r6
+ adds r0, 0x8
+ ldrb r1, [r0]
+ lsls r0, r6, 1
+ lsls r1, r0
+ ldrb r0, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802CBD0
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r10
+ adds r0, 0x3B
+ ldr r2, [sp, 0x28]
+ ldrb r1, [r2]
+ strb r1, [r0]
+ movs r6, 0
+ adds r4, r7, 0
+ movs r3, 0x58
+ movs r5, 0x24
+ add r5, r10
+ mov r8, r5
+ mov r2, r9
+ mov r7, r10
+ adds r7, 0xC
+ mov r5, r12
+_0802CC0C:
+ lsls r1, r6, 1
+ ldrb r0, [r4]
+ muls r0, r3
+ adds r1, r0
+ adds r1, r7
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ muls r1, r3
+ adds r1, r6, r1
+ add r1, r8
+ adds r0, r5, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r2, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802CC0C
+ ldr r2, _0802CDF4 @ =gUnknown_02024A60
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r0, r1
+ mov r1, r10
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ beq _0802CC4E
+ b _0802CE1C
+_0802CC4E:
+ movs r6, 0
+ mov r0, sp
+ adds r0, 0xC
+ str r0, [sp, 0x24]
+ add r1, sp, 0x14
+ mov r10, r1
+ ldr r3, _0802CE0C @ =gUnknown_02024A6A
+ mov r9, r3
+ mov r8, r2
+ movs r7, 0x64
+ ldr r5, _0802CE10 @ =gPlayerParty
+ adds r4, r0, 0
+_0802CC66:
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r0, 1
+ add r0, r9
+ ldrh r0, [r0]
+ muls r0, r7
+ adds r0, r5
+ adds r1, r6, 0
+ adds r1, 0xD
+ bl GetMonData
+ strh r0, [r4]
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 1
+ add r0, r9
+ ldrh r0, [r0]
+ muls r0, r7
+ adds r0, r5
+ adds r1, r6, 0
+ adds r1, 0x11
+ bl GetMonData
+ mov r3, r10
+ adds r1, r3, r6
+ strb r0, [r1]
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802CC66
+ ldr r1, _0802CE0C @ =gUnknown_02024A6A
+ ldr r0, _0802CDF4 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802CE10 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ ldr r5, [sp, 0x28]
+ strb r0, [r5]
+ movs r6, 0
+ movs r5, 0x3
+ ldr r4, [sp, 0x28]
+_0802CCC6:
+ mov r3, sp
+ adds r3, r6
+ adds r3, 0x8
+ 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, 0x1
+ cmp r6, 0x3
+ ble _0802CCC6
+ ldr r4, _0802CDF0 @ =gUnknown_02024E64
+ ldr r3, _0802CDF4 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r1, 1
+ ldr r0, [sp, 0x24]
+ adds r1, r0, r1
+ ldrh r6, [r1]
+ ldr r2, _0802CDF8 @ =gUnknown_03004344
+ ldrb r0, [r2]
+ lsls r0, 1
+ ldr r5, [sp, 0x24]
+ adds r0, r5, r0
+ ldrh r0, [r0]
+ movs r5, 0
+ strh r0, [r1]
+ ldrb r0, [r2]
+ lsls r0, 1
+ ldr r1, [sp, 0x24]
+ adds r0, r1, r0
+ strh r6, [r0]
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r1, [r0]
+ add r1, r10
+ ldrb r6, [r1]
+ ldrb r0, [r2]
+ add r0, r10
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r2]
+ add r0, r10
+ strb r6, [r0]
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r0, [r0]
+ add r0, sp
+ adds r0, 0x8
+ ldrb r0, [r0]
+ ldr r1, [sp, 0x28]
+ strb r0, [r1]
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r0, [r0]
+ mov r1, sp
+ adds r1, r0
+ adds r1, 0x8
+ ldrb r0, [r2]
+ add r0, sp
+ adds r0, 0x8
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r2]
+ mov r1, sp
+ adds r1, r0
+ adds r1, 0x8
+ ldr r2, [sp, 0x28]
+ ldrb r0, [r2]
+ strb r0, [r1]
+ strb r5, [r2]
+ movs r6, 0
+ ldr r2, [sp, 0x28]
+_0802CD5E:
+ mov r0, sp
+ adds r0, r6
+ adds r0, 0x8
+ ldrb r1, [r0]
+ lsls r0, r6, 1
+ lsls r1, r0
+ ldrb r0, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802CD5E
+ movs r6, 0
+ ldr r3, _0802CE0C @ =gUnknown_02024A6A
+ mov r10, r3
+ ldr r5, _0802CDF4 @ =gUnknown_02024A60
+ mov r9, r5
+ movs r0, 0x64
+ mov r8, r0
+ ldr r7, _0802CE10 @ =gPlayerParty
+ ldr r5, [sp, 0x24]
+ adds r5, 0x8
+ ldr r4, [sp, 0x24]
+_0802CD8C:
+ mov r1, r9
+ ldrb r0, [r1]
+ lsls r0, 1
+ add r0, r10
+ ldrh r0, [r0]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r7
+ adds r1, r6, 0
+ adds r1, 0xD
+ adds r2, r4, 0
+ bl SetMonData
+ mov r3, r9
+ ldrb r0, [r3]
+ lsls r0, 1
+ add r0, r10
+ ldrh r0, [r0]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ adds r1, r6, 0
+ adds r1, 0x11
+ adds r2, r5, 0
+ bl SetMonData
+ adds r5, 0x1
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802CD8C
+ ldr r1, _0802CE0C @ =gUnknown_02024A6A
+ ldr r0, _0802CDF4 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802CE10 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x15
+ ldr r2, [sp, 0x28]
+ bl SetMonData
+ b _0802CE1C
+ .align 2, 0
+_0802CDEC: .4byte gMain
+_0802CDF0: .4byte gUnknown_02024E64
+_0802CDF4: .4byte gUnknown_02024A60
+_0802CDF8: .4byte gUnknown_03004344
+_0802CDFC: .4byte gUnknown_02023A64
+_0802CE00: .4byte gUnknown_02024CA8
+_0802CE04: .4byte gBitTable
+_0802CE08: .4byte gBattleMons
+_0802CE0C: .4byte gUnknown_02024A6A
+_0802CE10: .4byte gPlayerParty
+_0802CE14:
+ ldrb r0, [r5]
+ ldr r1, _0802CF20 @ =gUnknown_08400D49
+ bl sub_802E12C
+_0802CE1C:
+ ldr r1, _0802CF24 @ =gUnknown_03004330
+ ldr r2, _0802CF28 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802CF2C @ =sub_802C68C
+ str r1, [r0]
+ ldr r3, _0802CF30 @ =gUnknown_02024E64
+ ldrb r0, [r2]
+ adds r0, r3
+ ldr r1, _0802CF34 @ =gUnknown_03004344
+ ldrb r1, [r1]
+ strb r1, [r0]
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3B4
+ ldr r4, _0802CF38 @ =gUnknown_03004210
+ ldr r1, _0802CF3C @ =0x00001016
+ movs r0, 0x1C
+ str r0, [sp]
+ movs r0, 0x3A
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r2, 0x17
+ movs r3, 0x37
+ bl FillWindowRect
+ ldr r1, _0802CF40 @ =gUnknown_08400D38
+ movs r2, 0xA4
+ lsls r2, 2
+ movs r0, 0x37
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x17
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ bl sub_802E220
+ bl sub_802E2D4
+_0802CE78:
+ ldr r6, _0802CF44 @ =gMain
+ ldrh r1, [r6, 0x2E]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ beq _0802CEF0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0802CF34 @ =gUnknown_03004344
+ ldrb r0, [r0]
+ bl nullsub_7
+ ldr r5, _0802CF30 @ =gUnknown_02024E64
+ ldr r4, _0802CF28 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3B4
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ ldr r1, _0802CF20 @ =gUnknown_08400D49
+ bl sub_802E12C
+ ldr r1, _0802CF24 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802CF2C @ =sub_802C68C
+ str r1, [r0]
+ ldr r4, _0802CF38 @ =gUnknown_03004210
+ ldr r1, _0802CF3C @ =0x00001016
+ movs r0, 0x1C
+ str r0, [sp]
+ movs r0, 0x3A
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r2, 0x17
+ movs r3, 0x37
+ bl FillWindowRect
+ ldr r1, _0802CF40 @ =gUnknown_08400D38
+ movs r2, 0xA4
+ lsls r2, 2
+ movs r0, 0x37
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x17
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ bl sub_802E220
+ bl sub_802E2D4
+_0802CEF0:
+ ldrh r1, [r6, 0x2E]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0802CF8C
+ ldr r3, _0802CF34 @ =gUnknown_03004344
+ ldrb r2, [r3]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _0802CF8C
+ ldr r0, _0802CF30 @ =gUnknown_02024E64
+ ldr r1, _0802CF28 @ =gUnknown_02024A60
+ ldrb r1, [r1]
+ adds r1, r0
+ ldrb r5, [r1]
+ cmp r2, r5
+ bne _0802CF48
+ ldrb r0, [r1]
+ movs r1, 0x1D
+ bl sub_802E3B4
+ b _0802CF4E
+ .align 2, 0
+_0802CF20: .4byte gUnknown_08400D49
+_0802CF24: .4byte gUnknown_03004330
+_0802CF28: .4byte gUnknown_02024A60
+_0802CF2C: .4byte sub_802C68C
+_0802CF30: .4byte gUnknown_02024E64
+_0802CF34: .4byte gUnknown_03004344
+_0802CF38: .4byte gUnknown_03004210
+_0802CF3C: .4byte 0x00001016
+_0802CF40: .4byte gUnknown_08400D38
+_0802CF44: .4byte gMain
+_0802CF48:
+ ldrb r0, [r3]
+ bl nullsub_7
+_0802CF4E:
+ ldr r4, _0802CF78 @ =gUnknown_03004344
+ ldrb r0, [r4]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0802CF7C @ =gUnknown_02024E64
+ ldr r0, _0802CF80 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0802CF84
+ adds r0, r1, 0
+ movs r1, 0
+ bl sub_802E3B4
+ b _0802CF8C
+ .align 2, 0
+_0802CF78: .4byte gUnknown_03004344
+_0802CF7C: .4byte gUnknown_02024E64
+_0802CF80: .4byte gUnknown_02024A60
+_0802CF84:
+ ldrb r0, [r4]
+ movs r1, 0x1B
+ bl sub_802E3B4
+_0802CF8C:
+ ldr r0, _0802CFC8 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D020
+ ldr r3, _0802CFCC @ =gUnknown_03004344
+ ldrb r2, [r3]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _0802D020
+ ldr r1, _0802CFD0 @ =gUnknown_03004348
+ movs r0, 0x1
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _0802D020
+ ldr r0, _0802CFD4 @ =gUnknown_02024E64
+ ldr r1, _0802CFD8 @ =gUnknown_02024A60
+ ldrb r1, [r1]
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r2, r0
+ bne _0802CFDC
+ ldrb r0, [r1]
+ movs r1, 0x1D
+ bl sub_802E3B4
+ b _0802CFE2
+ .align 2, 0
+_0802CFC8: .4byte gMain
+_0802CFCC: .4byte gUnknown_03004344
+_0802CFD0: .4byte gUnknown_03004348
+_0802CFD4: .4byte gUnknown_02024E64
+_0802CFD8: .4byte gUnknown_02024A60
+_0802CFDC:
+ ldrb r0, [r3]
+ bl nullsub_7
+_0802CFE2:
+ ldr r4, _0802D00C @ =gUnknown_03004344
+ ldrb r0, [r4]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0802D010 @ =gUnknown_02024E64
+ ldr r0, _0802D014 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0802D018
+ adds r0, r1, 0
+ movs r1, 0
+ bl sub_802E3B4
+ b _0802D020
+ .align 2, 0
+_0802D00C: .4byte gUnknown_03004344
+_0802D010: .4byte gUnknown_02024E64
+_0802D014: .4byte gUnknown_02024A60
+_0802D018:
+ ldrb r0, [r4]
+ movs r1, 0x1B
+ bl sub_802E3B4
+_0802D020:
+ ldr r0, _0802D050 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D0A4
+ ldr r3, _0802D054 @ =gUnknown_03004344
+ ldrb r2, [r3]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _0802D0A4
+ ldr r0, _0802D058 @ =gUnknown_02024E64
+ ldr r1, _0802D05C @ =gUnknown_02024A60
+ ldrb r1, [r1]
+ adds r1, r0
+ ldrb r5, [r1]
+ cmp r2, r5
+ bne _0802D060
+ ldrb r0, [r1]
+ movs r1, 0x1D
+ bl sub_802E3B4
+ b _0802D066
+ .align 2, 0
+_0802D050: .4byte gMain
+_0802D054: .4byte gUnknown_03004344
+_0802D058: .4byte gUnknown_02024E64
+_0802D05C: .4byte gUnknown_02024A60
+_0802D060:
+ ldrb r0, [r3]
+ bl nullsub_7
+_0802D066:
+ ldr r4, _0802D090 @ =gUnknown_03004344
+ ldrb r0, [r4]
+ movs r1, 0x2
+ eors r0, r1
+ strb r0, [r4]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0802D094 @ =gUnknown_02024E64
+ ldr r0, _0802D098 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0802D09C
+ adds r0, r1, 0
+ movs r1, 0
+ bl sub_802E3B4
+ b _0802D0A4
+ .align 2, 0
+_0802D090: .4byte gUnknown_03004344
+_0802D094: .4byte gUnknown_02024E64
+_0802D098: .4byte gUnknown_02024A60
+_0802D09C:
+ ldrb r0, [r4]
+ movs r1, 0x1B
+ bl sub_802E3B4
+_0802D0A4:
+ ldr r0, _0802D0E0 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D138
+ ldr r3, _0802D0E4 @ =gUnknown_03004344
+ ldrb r2, [r3]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ bne _0802D138
+ ldr r1, _0802D0E8 @ =gUnknown_03004348
+ movs r0, 0x2
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _0802D138
+ ldr r0, _0802D0EC @ =gUnknown_02024E64
+ ldr r1, _0802D0F0 @ =gUnknown_02024A60
+ ldrb r1, [r1]
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r2, r0
+ bne _0802D0F4
+ ldrb r0, [r1]
+ movs r1, 0x1D
+ bl sub_802E3B4
+ b _0802D0FA
+ .align 2, 0
+_0802D0E0: .4byte gMain
+_0802D0E4: .4byte gUnknown_03004344
+_0802D0E8: .4byte gUnknown_03004348
+_0802D0EC: .4byte gUnknown_02024E64
+_0802D0F0: .4byte gUnknown_02024A60
+_0802D0F4:
+ ldrb r0, [r3]
+ bl nullsub_7
+_0802D0FA:
+ ldr r4, _0802D124 @ =gUnknown_03004344
+ ldrb r0, [r4]
+ movs r1, 0x2
+ eors r0, r1
+ strb r0, [r4]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0802D128 @ =gUnknown_02024E64
+ ldr r0, _0802D12C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0802D130
+ adds r0, r1, 0
+ movs r1, 0
+ bl sub_802E3B4
+ b _0802D138
+ .align 2, 0
+_0802D124: .4byte gUnknown_03004344
+_0802D128: .4byte gUnknown_02024E64
+_0802D12C: .4byte gUnknown_02024A60
+_0802D130:
+ ldrb r0, [r4]
+ movs r1, 0x1B
+ bl sub_802E3B4
+_0802D138:
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802CA60
+
+ thumb_func_start sub_802D148
+sub_802D148: @ 802D148
+ push {lr}
+ ldr r0, _0802D178 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0802D174
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ ldr r3, _0802D17C @ =gMain
+ ldr r0, _0802D180 @ =0x0000043d
+ adds r2, r3, r0
+ ldrb r1, [r2]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _0802D184 @ =gUnknown_030042D0
+ ldr r0, [r0]
+ str r0, [r3]
+ ldr r0, _0802D188 @ =c2_8011A1C
+ bl SetMainCallback2
+_0802D174:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D178: .4byte gReceivedRemoteLinkPlayers
+_0802D17C: .4byte gMain
+_0802D180: .4byte 0x0000043d
+_0802D184: .4byte gUnknown_030042D0
+_0802D188: .4byte c2_8011A1C
+ thumb_func_end sub_802D148
+
+ thumb_func_start sub_802D18C
+sub_802D18C: @ 802D18C
+ push {lr}
+ ldr r0, _0802D1BC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D1F2
+ ldr r0, _0802D1C0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D1D0
+ bl sub_800832C
+ ldr r1, _0802D1C4 @ =gUnknown_03004330
+ ldr r0, _0802D1C8 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802D1CC @ =sub_802D148
+ str r1, [r0]
+ b _0802D1F2
+ .align 2, 0
+_0802D1BC: .4byte gPaletteFade
+_0802D1C0: .4byte gUnknown_020239F8
+_0802D1C4: .4byte gUnknown_03004330
+_0802D1C8: .4byte gUnknown_02024A60
+_0802D1CC: .4byte sub_802D148
+_0802D1D0:
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ ldr r2, _0802D1F8 @ =gMain
+ ldr r0, _0802D1FC @ =0x0000043d
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, _0802D200 @ =gUnknown_030042D0
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, [r2, 0x8]
+ bl SetMainCallback2
+_0802D1F2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D1F8: .4byte gMain
+_0802D1FC: .4byte 0x0000043d
+_0802D200: .4byte gUnknown_030042D0
+ thumb_func_end sub_802D18C
+
+ thumb_func_start sub_802D204
+sub_802D204: @ 802D204
+ push {lr}
+ ldr r2, _0802D22C @ =gSprites
+ ldr r1, _0802D230 @ =gUnknown_02024BE0
+ ldr r0, _0802D234 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0802D238 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0802D228
+ bl dp01_tbl1_exec_completed
+_0802D228:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D22C: .4byte gSprites
+_0802D230: .4byte gUnknown_02024BE0
+_0802D234: .4byte gUnknown_02024A60
+_0802D238: .4byte SpriteCallbackDummy
+ thumb_func_end sub_802D204
+
+ thumb_func_start sub_802D23C
+sub_802D23C: @ 802D23C
+ push {lr}
+ ldr r2, _0802D264 @ =gSprites
+ ldr r1, _0802D268 @ =gUnknown_02024BE0
+ ldr r0, _0802D26C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0802D270 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0802D260
+ bl dp01_tbl1_exec_completed
+_0802D260:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D264: .4byte gSprites
+_0802D268: .4byte gUnknown_02024BE0
+_0802D26C: .4byte gUnknown_02024A60
+_0802D270: .4byte SpriteCallbackDummy
+ thumb_func_end sub_802D23C
+
+ thumb_func_start sub_802D274
+sub_802D274: @ 802D274
+ push {r4-r6,lr}
+ ldr r6, _0802D2CC @ =gSprites
+ ldr r5, _0802D2D0 @ =gUnknown_02024BE0
+ ldr r4, _0802D2D4 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, _0802D2D8 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0802D2C6
+ ldr r0, _0802D2DC @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ bl nullsub_10
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl DestroySprite
+ bl dp01_tbl1_exec_completed
+_0802D2C6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D2CC: .4byte gSprites
+_0802D2D0: .4byte gUnknown_02024BE0
+_0802D2D4: .4byte gUnknown_02024A60
+_0802D2D8: .4byte SpriteCallbackDummy
+_0802D2DC: .4byte gSaveBlock2
+ thumb_func_end sub_802D274
+
+ thumb_func_start sub_802D2E0
+sub_802D2E0: @ 802D2E0
+ push {lr}
+ ldr r3, _0802D314 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _0802D318 @ =0x02017810
+ adds r1, r2
+ ldrb r0, [r1, 0x9]
+ subs r0, 0x1
+ strb r0, [r1, 0x9]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0802D310
+ ldrb r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0
+ strb r0, [r1, 0x9]
+ bl dp01_tbl1_exec_completed
+_0802D310:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D314: .4byte gUnknown_02024A60
+_0802D318: .4byte 0x02017810
+ thumb_func_end sub_802D2E0
+
+ thumb_func_start sub_802D31C
+sub_802D31C: @ 802D31C
+ push {r4-r7,lr}
+ movs r6, 0
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802D340
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802D374
+ ldr r0, _0802D360 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D374
+_0802D340:
+ ldr r2, _0802D364 @ =gSprites
+ ldr r1, _0802D368 @ =gUnknown_03004340
+ ldr r0, _0802D36C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0802D370 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0802D3AA
+ b _0802D3A8
+ .align 2, 0
+_0802D360: .4byte gUnknown_020239F8
+_0802D364: .4byte gSprites
+_0802D368: .4byte gUnknown_03004340
+_0802D36C: .4byte gUnknown_02024A60
+_0802D370: .4byte SpriteCallbackDummy
+_0802D374:
+ ldr r2, _0802D45C @ =gSprites
+ ldr r5, _0802D460 @ =gUnknown_03004340
+ ldr r0, _0802D464 @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r4, [r0]
+ ldr r0, _0802D468 @ =SpriteCallbackDummy
+ cmp r4, r0
+ bne _0802D3AA
+ movs r0, 0x2
+ eors r3, r0
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, r4
+ bne _0802D3AA
+_0802D3A8:
+ movs r6, 0x1
+_0802D3AA:
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802D3B6
+ movs r6, 0
+_0802D3B6:
+ cmp r6, 0
+ bne _0802D3BC
+ b _0802D4DA
+_0802D3BC:
+ ldr r7, _0802D464 @ =gUnknown_02024A60
+ ldrb r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r5, _0802D46C @ =0x02017810
+ adds r4, r0, r5
+ ldrb r1, [r4, 0x1]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D3D8
+ b _0802D4DA
+_0802D3D8:
+ movs r6, 0x2
+ adds r1, r6, 0
+ eors r1, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D4DA
+ ldrb r1, [r4]
+ movs r3, 0x7F
+ adds r0, r3, 0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x1]
+ movs r4, 0x2
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r7]
+ adds r1, r6, 0
+ eors r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0]
+ ands r3, r1
+ strb r3, [r0]
+ ldrb r0, [r7]
+ adds r1, r6, 0
+ eors r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ ands r4, r1
+ strb r4, [r0, 0x1]
+ ldr r4, _0802D470 @ =0x000027f9
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ ldr r0, _0802D474 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D47C
+ ldr r0, _0802D478 @ =gMPlay_BGM
+ bl m4aMPlayContinue
+ b _0802D488
+ .align 2, 0
+_0802D45C: .4byte gSprites
+_0802D460: .4byte gUnknown_03004340
+_0802D464: .4byte gUnknown_02024A60
+_0802D468: .4byte SpriteCallbackDummy
+_0802D46C: .4byte 0x02017810
+_0802D470: .4byte 0x000027f9
+_0802D474: .4byte gUnknown_020239F8
+_0802D478: .4byte gMPlay_BGM
+_0802D47C:
+ ldr r0, _0802D4E0 @ =gMPlay_BGM
+ ldr r1, _0802D4E4 @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+_0802D488:
+ ldr r7, _0802D4E8 @ =gUnknown_02024A6A
+ ldr r4, _0802D4EC @ =gUnknown_02024A60
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _0802D4F0 @ =gPlayerParty
+ adds r0, r5
+ bl sub_80324F8
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802D4BE
+ ldrb r0, [r4]
+ movs r1, 0x2
+ eors r1, r0
+ lsls r0, r1, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ bl sub_80324F8
+_0802D4BE:
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0802D4F4 @ =0x02017810
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0, 0x9]
+ ldr r1, _0802D4F8 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802D4FC @ =sub_802D2E0
+ str r1, [r0]
+_0802D4DA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D4E0: .4byte gMPlay_BGM
+_0802D4E4: .4byte 0x0000ffff
+_0802D4E8: .4byte gUnknown_02024A6A
+_0802D4EC: .4byte gUnknown_02024A60
+_0802D4F0: .4byte gPlayerParty
+_0802D4F4: .4byte 0x02017810
+_0802D4F8: .4byte gUnknown_03004330
+_0802D4FC: .4byte sub_802D2E0
+ thumb_func_end sub_802D31C
+
+ thumb_func_start sub_802D500
+sub_802D500: @ 802D500
+ push {r4-r7,lr}
+ ldr r5, _0802D654 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ ldr r4, _0802D658 @ =0x02017810
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r7, 0x88
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D530
+ ldr r0, _0802D65C @ =gUnknown_02024A6A
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0802D660 @ =gPlayerParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_0802D530:
+ ldrb r0, [r5]
+ movs r6, 0x2
+ adds r2, r6, 0
+ eors r2, r0
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D55E
+ ldr r0, _0802D65C @ =gUnknown_02024A6A
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0802D660 @ =gPlayerParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_0802D55E:
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r3, 0x8
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D64C
+ adds r1, r6, 0
+ eors r1, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D64C
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802D5EE
+ ldr r0, _0802D664 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D5EE
+ ldr r1, _0802D668 @ =gUnknown_0300434C
+ ldrb r0, [r5]
+ eors r0, r6
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0802D66C @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldr r4, _0802D670 @ =gUnknown_03004340
+ ldrb r0, [r5]
+ adds r1, r6, 0
+ eors r1, r0
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, _0802D65C @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0802D660 @ =gPlayerParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r5]
+ eors r0, r6
+ bl sub_804777C
+ ldrb r0, [r5]
+ eors r0, r6
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8043DFC
+_0802D5EE:
+ ldr r1, _0802D668 @ =gUnknown_0300434C
+ ldr r4, _0802D654 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0802D66C @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldr r5, _0802D670 @ =gUnknown_03004340
+ ldrb r1, [r4]
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, _0802D65C @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0802D660 @ =gPlayerParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ bl sub_804777C
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldr r2, _0802D674 @ =0x02017840
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _0802D678 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802D67C @ =sub_802D31C
+ str r1, [r0]
+_0802D64C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D654: .4byte gUnknown_02024A60
+_0802D658: .4byte 0x02017810
+_0802D65C: .4byte gUnknown_02024A6A
+_0802D660: .4byte gPlayerParty
+_0802D664: .4byte gUnknown_020239F8
+_0802D668: .4byte gUnknown_0300434C
+_0802D66C: .4byte gSprites
+_0802D670: .4byte gUnknown_03004340
+_0802D674: .4byte 0x02017840
+_0802D678: .4byte gUnknown_03004330
+_0802D67C: .4byte sub_802D31C
+ thumb_func_end sub_802D500
+
+ thumb_func_start sub_802D680
+sub_802D680: @ 802D680
+ push {r4-r6,lr}
+ ldr r2, _0802D710 @ =gSprites
+ ldr r0, _0802D714 @ =gUnknown_03004340
+ ldr r6, _0802D718 @ =gUnknown_02024A60
+ ldrb r3, [r6]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0802D71C @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0802D708
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r5, _0802D720 @ =0x02017810
+ adds r2, r0, r5
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D708
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r0, [r6]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r4, _0802D724 @ =0x000027f9
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ ldrb r2, [r6]
+ lsls r0, r2, 2
+ adds r1, r5, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D6FC
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+_0802D6FC:
+ ldr r0, _0802D728 @ =gUnknown_03004330
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _0802D72C @ =sub_802D730
+ str r0, [r1]
+_0802D708:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D710: .4byte gSprites
+_0802D714: .4byte gUnknown_03004340
+_0802D718: .4byte gUnknown_02024A60
+_0802D71C: .4byte SpriteCallbackDummy
+_0802D720: .4byte 0x02017810
+_0802D724: .4byte 0x000027f9
+_0802D728: .4byte gUnknown_03004330
+_0802D72C: .4byte sub_802D730
+ thumb_func_end sub_802D680
+
+ thumb_func_start sub_802D730
+sub_802D730: @ 802D730
+ push {r4,lr}
+ ldr r4, _0802D780 @ =gUnknown_02024A60
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0802D784 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D77A
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D77A
+ ldr r0, _0802D788 @ =gMPlay_BGM
+ ldr r1, _0802D78C @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+ ldr r2, _0802D790 @ =gUnknown_02024A6A
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0802D794 @ =gPlayerParty
+ adds r0, r2
+ bl sub_80324F8
+ bl dp01_tbl1_exec_completed
+_0802D77A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D780: .4byte gUnknown_02024A60
+_0802D784: .4byte 0x02017810
+_0802D788: .4byte gMPlay_BGM
+_0802D78C: .4byte 0x0000ffff
+_0802D790: .4byte gUnknown_02024A6A
+_0802D794: .4byte gPlayerParty
+ thumb_func_end sub_802D730
+
+ thumb_func_start sub_802D798
+sub_802D798: @ 802D798
+ push {r4-r6,lr}
+ ldr r5, _0802D844 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ ldr r6, _0802D848 @ =0x02017810
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D7C6
+ ldr r0, _0802D84C @ =gUnknown_02024A6A
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0802D850 @ =gPlayerParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_0802D7C6:
+ ldr r4, _0802D854 @ =gSprites
+ ldr r0, _0802D858 @ =gUnknown_0300434C
+ ldrb r2, [r5]
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r3, r0, 2
+ adds r0, r4, 0
+ adds r0, 0x1C
+ adds r0, r3, r0
+ ldr r1, [r0]
+ ldr r0, _0802D85C @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0802D83C
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D83C
+ adds r0, r3, r4
+ bl DestroySprite
+ ldr r4, _0802D860 @ =gUnknown_03004340
+ ldrb r1, [r5]
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, _0802D84C @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0802D850 @ =gPlayerParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r5]
+ bl sub_804777C
+ ldrb r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldrb r0, [r5]
+ bl sub_8031F88
+ ldr r1, _0802D864 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802D868 @ =sub_802D680
+ str r1, [r0]
+_0802D83C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D844: .4byte gUnknown_02024A60
+_0802D848: .4byte 0x02017810
+_0802D84C: .4byte gUnknown_02024A6A
+_0802D850: .4byte gPlayerParty
+_0802D854: .4byte gSprites
+_0802D858: .4byte gUnknown_0300434C
+_0802D85C: .4byte SpriteCallbackDummy
+_0802D860: .4byte gUnknown_03004340
+_0802D864: .4byte gUnknown_03004330
+_0802D868: .4byte sub_802D680
+ thumb_func_end sub_802D798
+
+ thumb_func_start c3_0802FDF4
+c3_0802FDF4: @ 802D86C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D88E
+ ldr r0, _0802D894 @ =gMPlay_BGM
+ ldr r1, _0802D898 @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+ adds r0, r4, 0
+ bl DestroyTask
+_0802D88E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D894: .4byte gMPlay_BGM
+_0802D898: .4byte 0x0000ffff
+ thumb_func_end c3_0802FDF4
+
+ thumb_func_start bx_t1_healthbar_update
+bx_t1_healthbar_update: @ 802D89C
+ push {r4-r6,lr}
+ ldr r5, _0802D8DC @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ ldr r6, _0802D8E0 @ =gUnknown_03004340
+ adds r1, r0, r6
+ ldrb r1, [r1]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8045C78
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ lsls r4, 16
+ asrs r1, r4, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0802D8E4
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0]
+ movs r2, 0
+ bl sub_80440EC
+ b _0802D8FE
+ .align 2, 0
+_0802D8DC: .4byte gUnknown_02024A60
+_0802D8E0: .4byte gUnknown_03004340
+_0802D8E4:
+ ldr r2, _0802D904 @ =gUnknown_02024A6A
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0802D908 @ =gPlayerParty
+ adds r0, r2
+ bl sub_80324F8
+ bl dp01_tbl1_exec_completed
+_0802D8FE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D904: .4byte gUnknown_02024A6A
+_0802D908: .4byte gPlayerParty
+ thumb_func_end bx_t1_healthbar_update
+
+ thumb_func_start sub_802D90C
+sub_802D90C: @ 802D90C
+ push {lr}
+ ldr r0, _0802D920 @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ bne _0802D91A
+ bl dp01_tbl1_exec_completed
+_0802D91A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D920: .4byte gUnknown_03004210
+ thumb_func_end sub_802D90C
+
+ thumb_func_start sub_802D924
+sub_802D924: @ 802D924
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r1, _0802DA24 @ =gTasks
+ lsls r0, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ mov r8, r0
+ ldrb r0, [r0, 0x8]
+ mov r10, r0
+ mov r1, r8
+ ldrb r7, [r1, 0xC]
+ str r7, [sp, 0x8]
+ ldrh r2, [r1, 0xA]
+ str r2, [sp, 0xC]
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0802D96A
+ ldr r1, _0802DA28 @ =gUnknown_02024A6A
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r10, r0
+ bne _0802D96A
+ b _0802DA80
+_0802D96A:
+ movs r0, 0x64
+ mov r1, r10
+ muls r1, r0
+ ldr r0, _0802DA2C @ =gPlayerParty
+ adds r6, r1, r0
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r6, 0
+ movs r1, 0x38
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ movs r1, 0x19
+ bl GetMonData
+ str r0, [sp, 0x4]
+ ldr r3, _0802DA30 @ =gExperienceTables
+ adds r4, 0x1
+ lsls r4, 2
+ ldr r2, _0802DA34 @ =gBaseStats
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ adds r1, r2
+ ldrb r2, [r1, 0x13]
+ movs r1, 0xCA
+ lsls r1, 1
+ muls r1, r2
+ adds r4, r1
+ adds r4, r3
+ ldr r2, [r4]
+ str r2, [sp]
+ ldr r3, [sp, 0xC]
+ lsls r1, r3, 16
+ asrs r1, 16
+ adds r0, r1
+ cmp r0, r2
+ bcc _0802DA58
+ adds r0, r6, 0
+ movs r1, 0x19
+ mov r2, sp
+ bl SetMonData
+ adds r0, r6, 0
+ bl CalculateMonStats
+ ldr r2, [sp]
+ add r0, sp, 0x4
+ ldrh r0, [r0]
+ subs r2, r0
+ ldr r0, [sp, 0xC]
+ subs r2, r0, r2
+ ldr r4, _0802DA38 @ =gUnknown_02024A60
+ ldrb r5, [r4]
+ strb r7, [r4]
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0x1
+ movs r1, 0xB
+ bl dp01_build_cmdbuf_x21_a_bb
+ strb r5, [r4]
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0802DA40
+ ldr r2, _0802DA28 @ =gUnknown_02024A6A
+ lsls r0, r7, 1
+ adds r0, r2
+ mov r1, r10
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _0802DA1E
+ movs r0, 0x2
+ eors r7, r0
+ lsls r0, r7, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _0802DA40
+_0802DA1E:
+ ldr r0, _0802DA3C @ =sub_802DCB0
+ b _0802DA82
+ .align 2, 0
+_0802DA24: .4byte gTasks
+_0802DA28: .4byte gUnknown_02024A6A
+_0802DA2C: .4byte gPlayerParty
+_0802DA30: .4byte gExperienceTables
+_0802DA34: .4byte gBaseStats
+_0802DA38: .4byte gUnknown_02024A60
+_0802DA3C: .4byte sub_802DCB0
+_0802DA40:
+ ldr r0, _0802DA50 @ =gTasks
+ mov r2, r9
+ lsls r1, r2, 2
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0802DA54 @ =sub_802DDC4
+ b _0802DA84
+ .align 2, 0
+_0802DA50: .4byte gTasks
+_0802DA54: .4byte sub_802DDC4
+_0802DA58:
+ str r0, [sp, 0x4]
+ add r2, sp, 0x4
+ adds r0, r6, 0
+ movs r1, 0x19
+ bl SetMonData
+ ldr r1, _0802DA78 @ =gUnknown_03004330
+ ldr r3, [sp, 0x8]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, _0802DA7C @ =sub_802D90C
+ str r1, [r0]
+ mov r0, r9
+ bl DestroyTask
+ b _0802DA86
+ .align 2, 0
+_0802DA78: .4byte gUnknown_03004330
+_0802DA7C: .4byte sub_802D90C
+_0802DA80:
+ ldr r0, _0802DA98 @ =sub_802DA9C
+_0802DA82:
+ mov r1, r8
+_0802DA84:
+ str r0, [r1]
+_0802DA86:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DA98: .4byte sub_802DA9C
+ thumb_func_end sub_802D924
+
+ thumb_func_start sub_802DA9C
+sub_802DA9C: @ 802DA9C
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0802DB54 @ =gTasks
+ lsls r2, r0, 2
+ mov r8, r2
+ add r8, r0
+ mov r0, r8
+ lsls r0, 3
+ mov r8, r0
+ add r8, r1
+ mov r2, r8
+ ldrb r1, [r2, 0x8]
+ movs r0, 0xA
+ ldrsh r2, [r2, r0]
+ mov r9, r2
+ mov r2, r8
+ ldrb r2, [r2, 0xC]
+ mov r10, r2
+ movs r0, 0x64
+ adds r6, r1, 0
+ muls r6, r0
+ ldr r0, _0802DB58 @ =gPlayerParty
+ adds r6, r0
+ adds r0, r6, 0
+ movs r1, 0x38
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r6, 0
+ movs r1, 0x19
+ bl GetMonData
+ adds r3, r0, 0
+ ldr r6, _0802DB5C @ =gExperienceTables
+ lsls r1, r4, 2
+ ldr r2, _0802DB60 @ =gBaseStats
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0, 0x13]
+ movs r0, 0xCA
+ lsls r0, 1
+ muls r0, r2
+ adds r1, r0
+ adds r1, r6
+ ldr r1, [r1]
+ subs r3, r1
+ adds r4, 0x1
+ lsls r4, 2
+ adds r4, r0
+ adds r4, r6
+ ldr r2, [r4]
+ subs r2, r1
+ ldr r0, _0802DB64 @ =gUnknown_03004340
+ add r0, r10
+ ldrb r1, [r0]
+ mov r0, r9
+ negs r0, r0
+ str r0, [sp]
+ mov r0, r10
+ bl sub_8043D84
+ movs r0, 0x21
+ bl PlaySE
+ ldr r0, _0802DB68 @ =sub_802DB6C
+ mov r1, r8
+ str r0, [r1]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DB54: .4byte gTasks
+_0802DB58: .4byte gPlayerParty
+_0802DB5C: .4byte gExperienceTables
+_0802DB60: .4byte gBaseStats
+_0802DB64: .4byte gUnknown_03004340
+_0802DB68: .4byte sub_802DB6C
+ thumb_func_end sub_802DA9C
+
+ thumb_func_start sub_802DB6C
+sub_802DB6C: @ 802DB6C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _0802DB98 @ =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r6, r0, r1
+ ldrh r1, [r6, 0x1C]
+ movs r2, 0x1C
+ ldrsh r0, [r6, r2]
+ cmp r0, 0xC
+ bgt _0802DB9C
+ adds r0, r1, 0x1
+ strh r0, [r6, 0x1C]
+ b _0802DC98
+ .align 2, 0
+_0802DB98: .4byte gTasks
+_0802DB9C:
+ ldrb r0, [r6, 0x8]
+ mov r9, r0
+ ldrh r2, [r6, 0xA]
+ mov r10, r2
+ ldrb r7, [r6, 0xC]
+ ldr r5, _0802DC64 @ =gUnknown_03004340
+ adds r5, r7, r5
+ ldrb r1, [r5]
+ adds r0, r7, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl sub_8045C78
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r5]
+ bl sub_8043DFC
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ bne _0802DC98
+ movs r0, 0x21
+ bl m4aSongNumStop
+ movs r0, 0x64
+ mov r1, r9
+ muls r1, r0
+ ldr r0, _0802DC68 @ =gPlayerParty
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0x38
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x19
+ bl GetMonData
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r3, _0802DC6C @ =gExperienceTables
+ adds r4, 0x1
+ lsls r4, 2
+ ldr r2, _0802DC70 @ =gBaseStats
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x13]
+ movs r0, 0xCA
+ lsls r0, 1
+ muls r0, r1
+ adds r4, r0
+ adds r4, r3
+ ldr r1, [r4]
+ str r1, [sp]
+ mov r2, r10
+ lsls r0, r2, 16
+ asrs r4, r0, 16
+ ldr r0, [sp, 0x4]
+ adds r0, r4
+ cmp r0, r1
+ blt _0802DC7C
+ adds r0, r5, 0
+ movs r1, 0x19
+ mov r2, sp
+ bl SetMonData
+ adds r0, r5, 0
+ bl CalculateMonStats
+ ldr r2, [sp]
+ add r0, sp, 0x4
+ ldrh r0, [r0]
+ subs r2, r0
+ subs r2, r4, r2
+ ldr r4, _0802DC74 @ =gUnknown_02024A60
+ ldrb r5, [r4]
+ strb r7, [r4]
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0x1
+ movs r1, 0xB
+ bl dp01_build_cmdbuf_x21_a_bb
+ strb r5, [r4]
+ ldr r0, _0802DC78 @ =sub_802DCB0
+ str r0, [r6]
+ b _0802DC98
+ .align 2, 0
+_0802DC64: .4byte gUnknown_03004340
+_0802DC68: .4byte gPlayerParty
+_0802DC6C: .4byte gExperienceTables
+_0802DC70: .4byte gBaseStats
+_0802DC74: .4byte gUnknown_02024A60
+_0802DC78: .4byte sub_802DCB0
+_0802DC7C:
+ str r0, [sp, 0x4]
+ add r2, sp, 0x4
+ adds r0, r5, 0
+ movs r1, 0x19
+ bl SetMonData
+ ldr r1, _0802DCA8 @ =gUnknown_03004330
+ lsls r0, r7, 2
+ adds r0, r1
+ ldr r1, _0802DCAC @ =sub_802D90C
+ str r1, [r0]
+ mov r0, r8
+ bl DestroyTask
+_0802DC98:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DCA8: .4byte gUnknown_03004330
+_0802DCAC: .4byte sub_802D90C
+ thumb_func_end sub_802DB6C
+
+ thumb_func_start sub_802DCB0
+sub_802DCB0: @ 802DCB0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0802DD04 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrb r4, [r0, 0xC]
+ ldrb r6, [r0, 0x8]
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0802DCE4
+ ldr r1, _0802DD08 @ =gUnknown_02024A6A
+ movs r0, 0x2
+ adds r2, r4, 0
+ eors r2, r0
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ bne _0802DCE4
+ adds r4, r2, 0
+_0802DCE4:
+ adds r0, r4, 0
+ adds r1, r4, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl move_anim_start_t4
+ ldr r0, _0802DD04 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0802DD0C @ =sub_802DD10
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DD04: .4byte gTasks
+_0802DD08: .4byte gUnknown_02024A6A
+_0802DD0C: .4byte sub_802DD10
+ thumb_func_end sub_802DCB0
+
+ thumb_func_start sub_802DD10
+sub_802DD10: @ 802DD10
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0802DD78 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrb r5, [r2, 0xC]
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 2
+ ldr r1, _0802DD7C @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0802DDAE
+ ldrb r4, [r2, 0x8]
+ movs r0, 0x64
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, _0802DD80 @ =gPlayerParty
+ adds r7, r1, r0
+ adds r0, r7, 0
+ movs r1, 0x38
+ bl GetMonData
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0802DD8C
+ ldr r1, _0802DD84 @ =gUnknown_02024A6A
+ movs r0, 0x2
+ adds r2, r5, 0
+ eors r2, r0
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ bne _0802DD8C
+ ldr r0, _0802DD88 @ =gUnknown_03004340
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ adds r1, r7, 0
+ movs r2, 0
+ bl sub_8045A5C
+ b _0802DDA0
+ .align 2, 0
+_0802DD78: .4byte gTasks
+_0802DD7C: .4byte 0x02017810
+_0802DD80: .4byte gPlayerParty
+_0802DD84: .4byte gUnknown_02024A6A
+_0802DD88: .4byte gUnknown_03004340
+_0802DD8C:
+ ldr r0, _0802DDB4 @ =gUnknown_03004340
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ movs r1, 0x64
+ muls r1, r4
+ ldr r2, _0802DDB8 @ =gPlayerParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+_0802DDA0:
+ ldr r0, _0802DDBC @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0802DDC0 @ =sub_802DDC4
+ str r0, [r1]
+_0802DDAE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DDB4: .4byte gUnknown_03004340
+_0802DDB8: .4byte gPlayerParty
+_0802DDBC: .4byte gTasks
+_0802DDC0: .4byte sub_802DDC4
+ thumb_func_end sub_802DD10
+
+ thumb_func_start sub_802DDC4
+sub_802DDC4: @ 802DDC4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0802DE00 @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ ldrb r1, [r4, 0x8]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802DE04 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x38
+ bl GetMonData
+ ldrb r0, [r4, 0xC]
+ ldr r1, _0802DE08 @ =gUnknown_03004330
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802DE0C @ =sub_802D90C
+ str r1, [r0]
+ adds r0, r5, 0
+ bl DestroyTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DE00: .4byte gTasks
+_0802DE04: .4byte gPlayerParty
+_0802DE08: .4byte gUnknown_03004330
+_0802DE0C: .4byte sub_802D90C
+ thumb_func_end sub_802DDC4
+
+ thumb_func_start sub_802DE10
+sub_802DE10: @ 802DE10
+ push {r4-r6,lr}
+ ldr r6, _0802DE94 @ =gSprites
+ ldr r5, _0802DE98 @ =gUnknown_02024BE0
+ ldr r4, _0802DE9C @ =gUnknown_02024A60
+ ldrb r2, [r4]
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r3, 0x22
+ ldrsh r1, [r0, r3]
+ movs r3, 0x26
+ ldrsh r0, [r0, r3]
+ adds r1, r0
+ cmp r1, 0xA0
+ ble _0802DE8C
+ ldr r1, _0802DEA0 @ =gUnknown_02024A6A
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802DEA4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl nullsub_9
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl DestroySprite
+ ldr r1, _0802DEA8 @ =gUnknown_03004340
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl1_exec_completed
+_0802DE8C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DE94: .4byte gSprites
+_0802DE98: .4byte gUnknown_02024BE0
+_0802DE9C: .4byte gUnknown_02024A60
+_0802DEA0: .4byte gUnknown_02024A6A
+_0802DEA4: .4byte gPlayerParty
+_0802DEA8: .4byte gUnknown_03004340
+ thumb_func_end sub_802DE10
+
+ thumb_func_start sub_802DEAC
+sub_802DEAC: @ 802DEAC
+ push {r4-r6,lr}
+ ldr r6, _0802DF04 @ =gUnknown_02024A60
+ ldrb r2, [r6]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _0802DF08 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0802DEFC
+ ldr r5, _0802DF0C @ =gUnknown_02024BE0
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0802DF10 @ =gSprites
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldr r1, _0802DF14 @ =gUnknown_03004340
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl1_exec_completed
+_0802DEFC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DF04: .4byte gUnknown_02024A60
+_0802DF08: .4byte 0x02017810
+_0802DF0C: .4byte gUnknown_02024BE0
+_0802DF10: .4byte gSprites
+_0802DF14: .4byte gUnknown_03004340
+ thumb_func_end sub_802DEAC
+
+ thumb_func_start sub_802DF18
+sub_802DF18: @ 802DF18
+ push {lr}
+ ldr r0, _0802DF2C @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ bne _0802DF26
+ bl dp01_tbl1_exec_completed
+_0802DF26:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DF2C: .4byte gUnknown_03004210
+ thumb_func_end sub_802DF18
+
+ thumb_func_start sub_802DF30
+sub_802DF30: @ 802DF30
+ push {r4,lr}
+ ldr r0, _0802DF70 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802DF6A
+ ldr r1, _0802DF74 @ =gUnknown_03004330
+ ldr r2, _0802DF78 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802DF7C @ =sub_802DF88
+ str r1, [r0]
+ ldr r3, _0802DF80 @ =gTasks
+ ldr r1, _0802DF84 @ =gUnknown_0300434C
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldrb r4, [r1, 0x8]
+ bl DestroyTask
+ adds r0, r4, 0
+ bl sub_8094E20
+_0802DF6A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DF70: .4byte gPaletteFade
+_0802DF74: .4byte gUnknown_03004330
+_0802DF78: .4byte gUnknown_02024A60
+_0802DF7C: .4byte sub_802DF88
+_0802DF80: .4byte gTasks
+_0802DF84: .4byte gUnknown_0300434C
+ thumb_func_end sub_802DF30
+
+ thumb_func_start sub_802DF88
+sub_802DF88: @ 802DF88
+ push {lr}
+ ldr r0, _0802DFB8 @ =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, _0802DFBC @ =sub_800F808
+ cmp r1, r0
+ bne _0802DFF8
+ ldr r0, _0802DFC0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802DFF8
+ ldr r0, _0802DFC4 @ =gUnknown_0202E8F4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0802DFD0
+ ldr r0, _0802DFC8 @ =gUnknown_0202E8F5
+ ldrb r1, [r0]
+ ldr r2, _0802DFCC @ =gUnknown_02038470
+ movs r0, 0x1
+ bl dp01_build_cmdbuf_x22_a_three_bytes
+ b _0802DFDA
+ .align 2, 0
+_0802DFB8: .4byte gMain
+_0802DFBC: .4byte sub_800F808
+_0802DFC0: .4byte gPaletteFade
+_0802DFC4: .4byte gUnknown_0202E8F4
+_0802DFC8: .4byte gUnknown_0202E8F5
+_0802DFCC: .4byte gUnknown_02038470
+_0802DFD0:
+ movs r0, 0x1
+ movs r1, 0x6
+ movs r2, 0
+ bl dp01_build_cmdbuf_x22_a_three_bytes
+_0802DFDA:
+ ldr r1, _0802DFFC @ =gUnknown_02023A60
+ ldr r0, _0802E000 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0802DFF4
+ bl b_link_standby_message
+_0802DFF4:
+ bl dp01_tbl1_exec_completed
+_0802DFF8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DFFC: .4byte gUnknown_02023A60
+_0802E000: .4byte gUnknown_02024A60
+ thumb_func_end sub_802DF88
+
+ thumb_func_start sub_802E004
+sub_802E004: @ 802E004
+ push {lr}
+ ldr r0, _0802E02C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802E028
+ ldr r1, _0802E030 @ =gUnknown_03004330
+ ldr r0, _0802E034 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802E038 @ =sub_802E03C
+ str r1, [r0]
+ bl nullsub_14
+ bl sub_80A6DCC
+_0802E028:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E02C: .4byte gPaletteFade
+_0802E030: .4byte gUnknown_03004330
+_0802E034: .4byte gUnknown_02024A60
+_0802E038: .4byte sub_802E03C
+ thumb_func_end sub_802E004
+
+ thumb_func_start sub_802E03C
+sub_802E03C: @ 802E03C
+ push {lr}
+ ldr r0, _0802E068 @ =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, _0802E06C @ =sub_800F808
+ cmp r1, r0
+ bne _0802E062
+ ldr r0, _0802E070 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802E062
+ ldr r0, _0802E074 @ =gScriptItemId
+ ldrh r1, [r0]
+ movs r0, 0x1
+ bl dp01_build_cmdbuf_x23_aa_0
+ bl dp01_tbl1_exec_completed
+_0802E062:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E068: .4byte gMain
+_0802E06C: .4byte sub_800F808
+_0802E070: .4byte gPaletteFade
+_0802E074: .4byte gScriptItemId
+ thumb_func_end sub_802E03C
+
+ thumb_func_start bx_wait_t1
+bx_wait_t1: @ 802E078
+ push {lr}
+ ldr r0, _0802E0A4 @ =gUnknown_02024E6D
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802E09A
+ ldr r0, _0802E0A8 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0802E0AC @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0802E09E
+_0802E09A:
+ bl dp01_tbl1_exec_completed
+_0802E09E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E0A4: .4byte gUnknown_02024E6D
+_0802E0A8: .4byte gUnknown_02024A60
+_0802E0AC: .4byte 0x02017810
+ thumb_func_end bx_wait_t1
+
+ thumb_func_start bx_blink_t1
+bx_blink_t1: @ 802E0B0
+ push {r4,lr}
+ ldr r1, _0802E0EC @ =gUnknown_02024BE0
+ ldr r0, _0802E0F0 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r2, _0802E0F4 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r0, r2
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x20
+ bne _0802E0FC
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ subs r0, 0x5
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _0802E0F8 @ =gUnknown_02024E6D
+ strb r3, [r0]
+ bl dp01_tbl1_exec_completed
+ b _0802E126
+ .align 2, 0
+_0802E0EC: .4byte gUnknown_02024BE0
+_0802E0F0: .4byte gUnknown_02024A60
+_0802E0F4: .4byte gSprites
+_0802E0F8: .4byte gUnknown_02024E6D
+_0802E0FC:
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0802E120
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_0802E120:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_0802E126:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end bx_blink_t1
+
+ thumb_func_start sub_802E12C
+sub_802E12C: @ 802E12C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldr r0, _0802E180 @ =gUnknown_02024A60
+ ldrb r4, [r0]
+ lsls r4, 9
+ ldr r0, _0802E184 @ =gUnknown_02023A64
+ adds r4, r0
+ ldr r5, _0802E188 @ =gUnknown_020238CC
+ adds r0, r5, 0
+ bl StringCopy
+ lsls r0, r6, 1
+ adds r4, r0
+ ldrh r1, [r4]
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _0802E18C @ =gMoveNames
+ adds r1, r0
+ adds r0, r5, 0
+ bl StringAppend
+ ldr r4, _0802E190 @ =gUnknown_03004210
+ adds r1, r5, 0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 18
+ movs r2, 0xC0
+ lsls r2, 18
+ adds r0, r2
+ lsrs r2, r0, 16
+ movs r0, 0x1
+ ands r0, r6
+ movs r3, 0x1
+ cmp r0, 0
+ beq _0802E176
+ movs r3, 0xB
+_0802E176:
+ cmp r6, 0x1
+ bgt _0802E194
+ movs r0, 0x37
+ b _0802E196
+ .align 2, 0
+_0802E180: .4byte gUnknown_02024A60
+_0802E184: .4byte gUnknown_02023A64
+_0802E188: .4byte gUnknown_020238CC
+_0802E18C: .4byte gMoveNames
+_0802E190: .4byte gUnknown_03004210
+_0802E194:
+ movs r0, 0x39
+_0802E196:
+ str r0, [sp]
+ adds r0, r4, 0
+ bl InitWindow
+ ldr r0, _0802E1AC @ =gUnknown_03004210
+ bl sub_8002F44
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E1AC: .4byte gUnknown_03004210
+ thumb_func_end sub_802E12C
+
+ thumb_func_start sub_802E1B0
+sub_802E1B0: @ 802E1B0
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r0, _0802E208 @ =gUnknown_02024A60
+ ldrb r4, [r0]
+ lsls r4, 9
+ ldr r0, _0802E20C @ =gUnknown_02023A64
+ adds r4, r0
+ ldr r5, _0802E210 @ =gUnknown_03004348
+ movs r0, 0
+ strb r0, [r5]
+ ldr r0, _0802E214 @ =gUnknown_03004210
+ ldr r1, _0802E218 @ =0x00001016
+ movs r2, 0x14
+ str r2, [sp]
+ movs r2, 0x3A
+ str r2, [sp, 0x4]
+ movs r2, 0x1
+ movs r3, 0x37
+ bl FillWindowRect
+ movs r6, 0
+_0802E1DA:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl nullsub_7
+ adds r0, r6, 0
+ ldr r1, _0802E21C @ =gUnknown_08400D49
+ bl sub_802E12C
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _0802E1F6
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+_0802E1F6:
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802E1DA
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E208: .4byte gUnknown_02024A60
+_0802E20C: .4byte gUnknown_02023A64
+_0802E210: .4byte gUnknown_03004348
+_0802E214: .4byte gUnknown_03004210
+_0802E218: .4byte 0x00001016
+_0802E21C: .4byte gUnknown_08400D49
+ thumb_func_end sub_802E1B0
+
+ thumb_func_start sub_802E220
+sub_802E220: @ 802E220
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r4, _0802E2B8 @ =gUnknown_02023A60
+ ldr r6, _0802E2BC @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ lsls r1, r0, 9
+ adds r0, r4, 0x2
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0802E2B0
+ adds r4, 0x4
+ adds r4, r1, r4
+ ldr r2, _0802E2C0 @ =gUnknown_020238CC
+ ldr r1, _0802E2C4 @ =gUnknown_08400D49
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ movs r1, 0xFC
+ strb r1, [r2]
+ movs r0, 0x11
+ strb r0, [r2, 0x1]
+ movs r0, 0x2
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ strb r1, [r2]
+ movs r0, 0x14
+ strb r0, [r2, 0x1]
+ movs r0, 0x6
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ ldr r5, _0802E2C8 @ =gUnknown_02024E64
+ ldrb r1, [r6]
+ adds r1, r5
+ adds r0, r4, 0
+ adds r0, 0x8
+ ldrb r1, [r1]
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r2, r0, 0
+ movs r0, 0xBA
+ strb r0, [r2]
+ adds r2, 0x1
+ ldrb r0, [r6]
+ adds r0, r5
+ adds r4, 0xC
+ ldrb r0, [r0]
+ adds r4, r0
+ ldrb r1, [r4]
+ adds r0, r2, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r4, _0802E2CC @ =gUnknown_03004210
+ ldr r1, _0802E2C0 @ =gUnknown_020238CC
+ ldr r2, _0802E2D0 @ =0x000002a2
+ movs r0, 0x37
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x19
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+_0802E2B0:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E2B8: .4byte gUnknown_02023A60
+_0802E2BC: .4byte gUnknown_02024A60
+_0802E2C0: .4byte gUnknown_020238CC
+_0802E2C4: .4byte gUnknown_08400D49
+_0802E2C8: .4byte gUnknown_02024E64
+_0802E2CC: .4byte gUnknown_03004210
+_0802E2D0: .4byte 0x000002a2
+ thumb_func_end sub_802E220
+
+ thumb_func_start sub_802E2D4
+sub_802E2D4: @ 802E2D4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r4, _0802E314 @ =gUnknown_02023A60
+ ldr r5, _0802E318 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ lsls r1, r0, 9
+ adds r0, r4, 0x2
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0802E328
+ ldr r4, _0802E31C @ =gUnknown_03004210
+ ldr r1, _0802E320 @ =0x00001016
+ movs r0, 0x1C
+ str r0, [sp]
+ movs r0, 0x3A
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r2, 0x17
+ movs r3, 0x37
+ bl FillWindowRect
+ ldr r1, _0802E324 @ =gUnknown_08400D52
+ movs r2, 0xA4
+ lsls r2, 2
+ movs r0, 0x37
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x13
+ bl InitWindow
+ b _0802E388
+ .align 2, 0
+_0802E314: .4byte gUnknown_02023A60
+_0802E318: .4byte gUnknown_02024A60
+_0802E31C: .4byte gUnknown_03004210
+_0802E320: .4byte 0x00001016
+_0802E324: .4byte gUnknown_08400D52
+_0802E328:
+ adds r4, 0x4
+ adds r4, r1, r4
+ ldr r3, _0802E398 @ =gUnknown_020238CC
+ ldr r1, _0802E39C @ =gUnknown_08400D49
+ adds r0, r3, 0
+ bl StringCopy
+ adds r3, r0, 0
+ ldr r2, _0802E3A0 @ =gBattleMoves
+ ldr r1, _0802E3A4 @ =gUnknown_02024E64
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r0
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ lsls r1, r0, 3
+ subs r1, r0
+ ldr r0, _0802E3A8 @ =gTypeNames
+ adds r1, r0
+ adds r0, r3, 0
+ bl StringCopy
+ ldr r4, _0802E3AC @ =gUnknown_03004210
+ ldr r1, _0802E3B0 @ =0x00001016
+ movs r0, 0x1C
+ str r0, [sp]
+ movs r0, 0x3A
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r2, 0x17
+ movs r3, 0x39
+ bl FillWindowRect
+ ldr r1, _0802E398 @ =gUnknown_020238CC
+ movs r2, 0xB0
+ lsls r2, 2
+ movs r0, 0x39
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x17
+ bl InitWindow
+_0802E388:
+ ldr r0, _0802E3AC @ =gUnknown_03004210
+ bl sub_8002F44
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E398: .4byte gUnknown_020238CC
+_0802E39C: .4byte gUnknown_08400D49
+_0802E3A0: .4byte gBattleMoves
+_0802E3A4: .4byte gUnknown_02024E64
+_0802E3A8: .4byte gTypeNames
+_0802E3AC: .4byte gUnknown_03004210
+_0802E3B0: .4byte 0x00001016
+ thumb_func_end sub_802E2D4
+
+ thumb_func_start sub_802E3B4
+sub_802E3B4: @ 802E3B4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x48
+ bl sub_814A958
+ ldr r1, _0802E3DC @ =gUnknown_081FAE89
+ lsls r4, 1
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ adds r1, 0x1
+ adds r4, r1
+ ldrb r1, [r4]
+ bl sub_814A880
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E3DC: .4byte gUnknown_081FAE89
+ thumb_func_end sub_802E3B4
+
+ thumb_func_start nullsub_7
+nullsub_7: @ 802E3E0
+ bx lr
+ thumb_func_end nullsub_7
+
+ thumb_func_start sub_802E3E4
+sub_802E3E4: @ 802E3E4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x2A
+ bl sub_814A958
+ ldr r1, _0802E40C @ =gUnknown_081FAE91
+ lsls r4, 1
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ adds r1, 0x1
+ adds r4, r1
+ ldrb r1, [r4]
+ bl sub_814A880
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E40C: .4byte gUnknown_081FAE91
+ thumb_func_end sub_802E3E4
+
+ thumb_func_start nullsub_8
+nullsub_8: @ 802E410
+ bx lr
+ thumb_func_end nullsub_8
+
+ thumb_func_start sub_802E414
+sub_802E414: @ 802E414
+ push {lr}
+ ldr r0, _0802E420 @ =sub_807AD58
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E420: .4byte sub_807AD58
+ thumb_func_end sub_802E414
+
+ thumb_func_start sub_802E424
+sub_802E424: @ 802E424
+ push {lr}
+ ldr r0, _0802E430 @ =sub_807AD58
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E430: .4byte sub_807AD58
+ thumb_func_end sub_802E424
+
+ thumb_func_start sub_802E434
+sub_802E434: @ 802E434
+ push {lr}
+ ldr r0, _0802E458 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0802E45C @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0802E452
+ bl dp01_tbl1_exec_completed
+_0802E452:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E458: .4byte gUnknown_02024A60
+_0802E45C: .4byte 0x02017810
+ thumb_func_end sub_802E434
+
+ thumb_func_start sub_802E460
+sub_802E460: @ 802E460
+ push {lr}
+ ldr r0, _0802E484 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0802E488 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0802E47E
+ bl dp01_tbl1_exec_completed
+_0802E47E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E484: .4byte gUnknown_02024A60
+_0802E488: .4byte 0x02017810
+ thumb_func_end sub_802E460
+
+ thumb_func_start b_link_standby_message
+b_link_standby_message: @ 802E48C
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _0802E4BC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802E4B6
+ ldr r0, _0802E4C0 @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0802E4C4 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r0, _0802E4C8 @ =gUnknown_03004210
+ ldr r1, _0802E4CC @ =gUnknown_08400CE0
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+_0802E4B6:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E4BC: .4byte gUnknown_020239F8
+_0802E4C0: .4byte gUnknown_030042A4
+_0802E4C4: .4byte gUnknown_030042A0
+_0802E4C8: .4byte gUnknown_03004210
+_0802E4CC: .4byte gUnknown_08400CE0
+ thumb_func_end b_link_standby_message
+
+ thumb_func_start dp01t_00_1_getattr
+dp01t_00_1_getattr: @ 802E4D0
+ push {r4-r6,lr}
+ sub sp, 0x100
+ movs r6, 0
+ ldr r1, _0802E4FC @ =gUnknown_02023A60
+ ldr r0, _0802E500 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0802E508
+ ldr r0, _0802E504 @ =gUnknown_02024A6A
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ mov r1, sp
+ bl dp01_getattr_by_ch1_for_player_pokemon_
+ adds r6, r0, 0
+ b _0802E52A
+ .align 2, 0
+_0802E4FC: .4byte gUnknown_02023A60
+_0802E500: .4byte gUnknown_02024A60
+_0802E504: .4byte gUnknown_02024A6A
+_0802E508:
+ ldrb r4, [r1]
+ movs r5, 0
+_0802E50C:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0802E522
+ lsls r0, r5, 24
+ lsrs r0, 24
+ mov r2, sp
+ adds r1, r2, r6
+ bl dp01_getattr_by_ch1_for_player_pokemon_
+ adds r6, r0
+_0802E522:
+ lsrs r4, 1
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _0802E50C
+_0802E52A:
+ lsls r1, r6, 16
+ lsrs r1, 16
+ movs r0, 0x1
+ mov r2, sp
+ bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl dp01_tbl1_exec_completed
+ add sp, 0x100
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_00_1_getattr
+
+ thumb_func_start dp01_getattr_by_ch1_for_player_pokemon_
+dp01_getattr_by_ch1_for_player_pokemon_: @ 802E544
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x90
+ adds r7, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0
+ ldr r2, _0802E578 @ =gUnknown_02023A60
+ ldr r3, _0802E57C @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r1, r2, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bls _0802E56E
+ bl _0802ECDA
+_0802E56E:
+ lsls r0, 2
+ ldr r1, _0802E580 @ =_0802E584
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0802E578: .4byte gUnknown_02023A60
+_0802E57C: .4byte gUnknown_02024A60
+_0802E580: .4byte _0802E584
+ .align 2, 0
+_0802E584:
+ .4byte _0802E674
+ .4byte _0802E898
+ .4byte _0802E8A8
+ .4byte _0802E8B8
+ .4byte _0802E920
+ .4byte _0802E920
+ .4byte _0802E920
+ .4byte _0802E920
+ .4byte _0802E93C
+ .4byte _0802E978
+ .4byte _0802E978
+ .4byte _0802E978
+ .4byte _0802E978
+ .4byte _0802ECDA
+ .4byte _0802ECDA
+ .4byte _0802ECDA
+ .4byte _0802ECDA
+ .4byte _0802E994
+ .4byte _0802E9A4
+ .4byte _0802E9D4
+ .4byte _0802E9E4
+ .4byte _0802E9F4
+ .4byte _0802EA04
+ .4byte _0802EA14
+ .4byte _0802EA24
+ .4byte _0802EA34
+ .4byte _0802EA44
+ .4byte _0802EA54
+ .4byte _0802EA64
+ .4byte _0802EA74
+ .4byte _0802EA84
+ .4byte _0802EA94
+ .4byte _0802EAE4
+ .4byte _0802EAF4
+ .4byte _0802EB04
+ .4byte _0802EB14
+ .4byte _0802EB24
+ .4byte _0802EB34
+ .4byte _0802EB44
+ .4byte _0802EB54
+ .4byte _0802EB64
+ .4byte _0802EB98
+ .4byte _0802EBA8
+ .4byte _0802EBB8
+ .4byte _0802EBC8
+ .4byte _0802EBD8
+ .4byte _0802EBE8
+ .4byte _0802EBF8
+ .4byte _0802EC08
+ .4byte _0802EC28
+ .4byte _0802EC38
+ .4byte _0802EC48
+ .4byte _0802EC58
+ .4byte _0802EC68
+ .4byte _0802EC78
+ .4byte _0802EC88
+ .4byte _0802EC98
+ .4byte _0802ECA8
+ .4byte _0802ECB8
+ .4byte _0802ECC8
+_0802E674:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0802E888 @ =gPlayerParty
+ adds 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 r9, r0
+ movs r1, 0x3B
+ add r1, sp
+ mov r10, 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, 0x5
+ str r2, [sp, 0x84]
+ adds r0, 0x12
+ str r0, [sp, 0x88]
+ mov r8, r4
+ add r4, sp, 0xC
+_0802E6C0:
+ 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, r9
+ adds r1, r2, r6
+ strb r0, [r1]
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802E6C0
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0802E888 @ =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r10
+ 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
+ negs r1, r1
+ 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, 5
+ ldrh r2, [r3, 0x14]
+ ldr r1, _0802E88C @ =0xfffffc1f
+ 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, 2
+ ldrb r2, [r3, 0x15]
+ movs r1, 0x7D
+ negs r1, r1
+ 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, 15
+ ldr r0, [sp, 0x14]
+ ldr r2, _0802E890 @ =0xfff07fff
+ 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, 4
+ ldrh r2, [r3, 0x16]
+ ldr r1, _0802E894 @ =0xfffffe0f
+ 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, 1
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x3F
+ negs r1, r1
+ 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, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x3C
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x3D
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x6]
+ adds r0, r4, 0
+ movs r1, 0x3E
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x8]
+ 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, 0x1
+ ands r0, r1
+ lsls r0, 6
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x41
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x17]
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl GetMonData
+ mov r3, sp
+ lsls 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, 0x1
+ bl GetMonData
+ str r0, [sp, 0x54]
+ adds r0, r4, 0
+ movs r1, 0x2
+ ldr r2, [sp, 0x8C]
+ bl GetMonData
+ ldr r0, [sp, 0x84]
+ ldr r1, [sp, 0x8C]
+ bl StringCopy10
+ adds r0, r4, 0
+ movs r1, 0x7
+ ldr r2, [sp, 0x88]
+ bl GetMonData
+ mov r2, sp
+ movs r6, 0
+_0802E878:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0x57
+ bls _0802E878
+ b _0802ECDA
+ .align 2, 0
+_0802E888: .4byte gPlayerParty
+_0802E88C: .4byte 0xfffffc1f
+_0802E890: .4byte 0xfff07fff
+_0802E894: .4byte 0xfffffe0f
+_0802E898:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802E8A4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ b _0802EC12
+ .align 2, 0
+_0802E8A4: .4byte gPlayerParty
+_0802E8A8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802E8B4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xC
+ b _0802EC12
+ .align 2, 0
+_0802E8B4: .4byte gPlayerParty
+_0802E8B8:
+ movs r6, 0
+ add r2, sp, 0x58
+ mov r9, r2
+ add r0, sp, 0x60
+ mov r10, r0
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0802E91C @ =gPlayerParty
+ adds r4, r1, r0
+ mov r8, r9
+_0802E8CE:
+ 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, r10
+ adds r1, r2, r6
+ strb r0, [r1]
+ movs r0, 0x2
+ add r8, r0
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802E8CE
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802E91C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r9
+ strb r0, [r1, 0xC]
+ mov r2, r9
+ movs r6, 0
+_0802E90C:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0xF
+ bls _0802E90C
+ b _0802ECDA
+ .align 2, 0
+_0802E91C: .4byte gPlayerParty
+_0802E920:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802E938 @ =gPlayerParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _0802EC12
+ .align 2, 0
+_0802E938: .4byte gPlayerParty
+_0802E93C:
+ movs r6, 0
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r2, _0802E974 @ =gPlayerParty
+ mov r8, r2
+_0802E948:
+ 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, 0x1
+ cmp r6, 0x3
+ ble _0802E948
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802E974 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ adds r1, r7, r6
+ strb r0, [r1]
+ adds r6, 0x1
+ b _0802ECDA
+ .align 2, 0
+_0802E974: .4byte gPlayerParty
+_0802E978:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802E990 @ =gPlayerParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x8
+ b _0802ECD2
+ .align 2, 0
+_0802E990: .4byte gPlayerParty
+_0802E994:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802E9A0 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1
+ b _0802E9AE
+ .align 2, 0
+_0802E9A0: .4byte gPlayerParty
+_0802E9A4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802E9D0 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x19
+_0802E9AE:
+ bl GetMonData
+ adds r1, r0, 0
+ strb r1, [r7]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r0, 16
+ strb r0, [r7, 0x2]
+ movs r6, 0x3
+ b _0802ECDA
+ .align 2, 0
+_0802E9D0: .4byte gPlayerParty
+_0802E9D4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802E9E0 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1A
+ b _0802ECD2
+ .align 2, 0
+_0802E9E0: .4byte gPlayerParty
+_0802E9E4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802E9F0 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1B
+ b _0802ECD2
+ .align 2, 0
+_0802E9F0: .4byte gPlayerParty
+_0802E9F4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EA00 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1C
+ b _0802ECD2
+ .align 2, 0
+_0802EA00: .4byte gPlayerParty
+_0802EA04:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EA10 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1D
+ b _0802ECD2
+ .align 2, 0
+_0802EA10: .4byte gPlayerParty
+_0802EA14:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EA20 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1E
+ b _0802ECD2
+ .align 2, 0
+_0802EA20: .4byte gPlayerParty
+_0802EA24:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EA30 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1F
+ b _0802ECD2
+ .align 2, 0
+_0802EA30: .4byte gPlayerParty
+_0802EA34:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EA40 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x20
+ b _0802ECD2
+ .align 2, 0
+_0802EA40: .4byte gPlayerParty
+_0802EA44:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EA50 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x22
+ b _0802ECD2
+ .align 2, 0
+_0802EA50: .4byte gPlayerParty
+_0802EA54:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EA60 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x23
+ b _0802ECD2
+ .align 2, 0
+_0802EA60: .4byte gPlayerParty
+_0802EA64:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EA70 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x24
+ b _0802ECD2
+ .align 2, 0
+_0802EA70: .4byte gPlayerParty
+_0802EA74:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EA80 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x25
+ b _0802ECD2
+ .align 2, 0
+_0802EA80: .4byte gPlayerParty
+_0802EA84:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EA90 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x26
+ b _0802ECD2
+ .align 2, 0
+_0802EA90: .4byte gPlayerParty
+_0802EA94:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0802EAE0 @ =gPlayerParty
+ adds 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, 0x1]
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl GetMonData
+ strb r0, [r7, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl GetMonData
+ strb r0, [r7, 0x3]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl GetMonData
+ strb r0, [r7, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ bl GetMonData
+ strb r0, [r7, 0x5]
+ movs r6, 0x6
+ b _0802ECDA
+ .align 2, 0
+_0802EAE0: .4byte gPlayerParty
+_0802EAE4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EAF0 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x27
+ b _0802ECD2
+ .align 2, 0
+_0802EAF0: .4byte gPlayerParty
+_0802EAF4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EB00 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x28
+ b _0802ECD2
+ .align 2, 0
+_0802EB00: .4byte gPlayerParty
+_0802EB04:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EB10 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x29
+ b _0802ECD2
+ .align 2, 0
+_0802EB10: .4byte gPlayerParty
+_0802EB14:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EB20 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2A
+ b _0802ECD2
+ .align 2, 0
+_0802EB20: .4byte gPlayerParty
+_0802EB24:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EB30 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2B
+ b _0802ECD2
+ .align 2, 0
+_0802EB30: .4byte gPlayerParty
+_0802EB34:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EB40 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2C
+ b _0802ECD2
+ .align 2, 0
+_0802EB40: .4byte gPlayerParty
+_0802EB44:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EB50 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0
+ b _0802EB6E
+ .align 2, 0
+_0802EB50: .4byte gPlayerParty
+_0802EB54:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EB60 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x9
+ b _0802EC12
+ .align 2, 0
+_0802EB60: .4byte gPlayerParty
+_0802EB64:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EB94 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x37
+_0802EB6E:
+ bl GetMonData
+ adds r1, r0, 0
+ strb r1, [r7]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r0, 16
+ strb r0, [r7, 0x2]
+ lsrs r0, r1, 24
+ strb r0, [r7, 0x3]
+ movs r6, 0x4
+ b _0802ECDA
+ .align 2, 0
+_0802EB94: .4byte gPlayerParty
+_0802EB98:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EBA4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x38
+ b _0802ECD2
+ .align 2, 0
+_0802EBA4: .4byte gPlayerParty
+_0802EBA8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EBB4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x39
+ b _0802EC12
+ .align 2, 0
+_0802EBB4: .4byte gPlayerParty
+_0802EBB8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EBC4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3A
+ b _0802EC12
+ .align 2, 0
+_0802EBC4: .4byte gPlayerParty
+_0802EBC8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EBD4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3B
+ b _0802EC12
+ .align 2, 0
+_0802EBD4: .4byte gPlayerParty
+_0802EBD8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EBE4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3C
+ b _0802EC12
+ .align 2, 0
+_0802EBE4: .4byte gPlayerParty
+_0802EBE8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EBF4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3D
+ b _0802EC12
+ .align 2, 0
+_0802EBF4: .4byte gPlayerParty
+_0802EBF8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EC04 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3E
+ b _0802EC12
+ .align 2, 0
+_0802EC04: .4byte gPlayerParty
+_0802EC08:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EC24 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3F
+_0802EC12:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ strb r0, [r7]
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r6, 0x2
+ b _0802ECDA
+ .align 2, 0
+_0802EC24: .4byte gPlayerParty
+_0802EC28:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EC34 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x16
+ b _0802ECD2
+ .align 2, 0
+_0802EC34: .4byte gPlayerParty
+_0802EC38:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EC44 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x17
+ b _0802ECD2
+ .align 2, 0
+_0802EC44: .4byte gPlayerParty
+_0802EC48:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EC54 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x18
+ b _0802ECD2
+ .align 2, 0
+_0802EC54: .4byte gPlayerParty
+_0802EC58:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EC64 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x21
+ b _0802ECD2
+ .align 2, 0
+_0802EC64: .4byte gPlayerParty
+_0802EC68:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EC74 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2F
+ b _0802ECD2
+ .align 2, 0
+_0802EC74: .4byte gPlayerParty
+_0802EC78:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EC84 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x30
+ b _0802ECD2
+ .align 2, 0
+_0802EC84: .4byte gPlayerParty
+_0802EC88:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EC94 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x32
+ b _0802ECD2
+ .align 2, 0
+_0802EC94: .4byte gPlayerParty
+_0802EC98:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802ECA4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x33
+ b _0802ECD2
+ .align 2, 0
+_0802ECA4: .4byte gPlayerParty
+_0802ECA8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802ECB4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x34
+ b _0802ECD2
+ .align 2, 0
+_0802ECB4: .4byte gPlayerParty
+_0802ECB8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802ECC4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x35
+ b _0802ECD2
+ .align 2, 0
+_0802ECC4: .4byte gPlayerParty
+_0802ECC8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802ECEC @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x36
+_0802ECD2:
+ bl GetMonData
+ strb r0, [r7]
+ movs r6, 0x1
+_0802ECDA:
+ adds r0, r6, 0
+ add sp, 0x90
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0802ECEC: .4byte gPlayerParty
+ thumb_func_end dp01_getattr_by_ch1_for_player_pokemon_
+
+ thumb_func_start sub_802ECF0
+sub_802ECF0: @ 802ECF0
+ push {r4-r7,lr}
+ sub sp, 0x58
+ ldr r2, _0802ED68 @ =gUnknown_02024A6A
+ ldr r5, _0802ED6C @ =gUnknown_02024A60
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ adds r4, r2, 0
+ muls r4, r0
+ ldr r3, _0802ED70 @ =gUnknown_02023A60
+ lsls r1, 9
+ adds r0, r3, 0x1
+ adds r0, r1, r0
+ ldrb r2, [r0]
+ ldr r0, _0802ED74 @ =gPlayerParty
+ adds r0, r2, r0
+ adds r6, r4, r0
+ mov r0, sp
+ adds r4, r0, r2
+ movs r2, 0
+ adds r0, r3, 0x2
+ adds r1, r0
+ adds r7, r5, 0
+ mov r12, r3
+ ldrb r1, [r1]
+ cmp r2, r1
+ bcs _0802ED46
+ adds r3, r0, 0
+_0802ED2C:
+ adds r1, r4, r2
+ adds r0, r6, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _0802ED2C
+_0802ED46:
+ ldrb r0, [r7]
+ lsls r0, 9
+ mov r1, r12
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ adds r2, r4, 0
+ bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl dp01_tbl1_exec_completed
+ add sp, 0x58
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802ED68: .4byte gUnknown_02024A6A
+_0802ED6C: .4byte gUnknown_02024A60
+_0802ED70: .4byte gUnknown_02023A60
+_0802ED74: .4byte gPlayerParty
+ thumb_func_end sub_802ECF0
+
+ thumb_func_start dp01t_02_1_setattr
+dp01t_02_1_setattr: @ 802ED78
+ push {r4,r5,lr}
+ ldr r1, _0802ED9C @ =gUnknown_02023A60
+ ldr r0, _0802EDA0 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0802EDA8
+ ldr r0, _0802EDA4 @ =gUnknown_02024A6A
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ bl dp01_setattr_by_ch1_for_player_pokemon
+ b _0802EDC6
+ .align 2, 0
+_0802ED9C: .4byte gUnknown_02023A60
+_0802EDA0: .4byte gUnknown_02024A60
+_0802EDA4: .4byte gUnknown_02024A6A
+_0802EDA8:
+ ldrb r4, [r1]
+ movs r5, 0
+_0802EDAC:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0802EDBA
+ adds r0, r5, 0
+ bl dp01_setattr_by_ch1_for_player_pokemon
+_0802EDBA:
+ lsrs r4, 1
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _0802EDAC
+_0802EDC6:
+ bl dp01_tbl1_exec_completed
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_02_1_setattr
+
+ thumb_func_start dp01_setattr_by_ch1_for_player_pokemon
+dp01_setattr_by_ch1_for_player_pokemon: @ 802EDD0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x34
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0802EE08 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ ldr r2, _0802EE0C @ =gUnknown_02023A63
+ adds r3, r0, r2
+ adds r6, r3, 0
+ subs r1, r2, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r7, r2, 0
+ cmp r0, 0x3B
+ bls _0802EDFC
+ bl _0802F796
+_0802EDFC:
+ lsls r0, 2
+ ldr r1, _0802EE10 @ =_0802EE14
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0802EE08: .4byte gUnknown_02024A60
+_0802EE0C: .4byte gUnknown_02023A63
+_0802EE10: .4byte _0802EE14
+ .align 2, 0
+_0802EE14:
+ .4byte _0802EF04
+ .4byte _0802F09C
+ .4byte _0802F0BC
+ .4byte _0802F0DC
+ .4byte _0802F134
+ .4byte _0802F134
+ .4byte _0802F134
+ .4byte _0802F134
+ .4byte _0802F15C
+ .4byte _0802F1C0
+ .4byte _0802F1C0
+ .4byte _0802F1C0
+ .4byte _0802F1C0
+ .4byte _0802F796
+ .4byte _0802F796
+ .4byte _0802F796
+ .4byte _0802F796
+ .4byte _0802F1F0
+ .4byte _0802F210
+ .4byte _0802F230
+ .4byte _0802F250
+ .4byte _0802F270
+ .4byte _0802F290
+ .4byte _0802F2B0
+ .4byte _0802F2D0
+ .4byte _0802F2F0
+ .4byte _0802F310
+ .4byte _0802F330
+ .4byte _0802F350
+ .4byte _0802F370
+ .4byte _0802F390
+ .4byte _0802F3B0
+ .4byte _0802F420
+ .4byte _0802F440
+ .4byte _0802F460
+ .4byte _0802F480
+ .4byte _0802F4A0
+ .4byte _0802F4C0
+ .4byte _0802F4E0
+ .4byte _0802F500
+ .4byte _0802F520
+ .4byte _0802F540
+ .4byte _0802F560
+ .4byte _0802F580
+ .4byte _0802F5A0
+ .4byte _0802F5C0
+ .4byte _0802F5E0
+ .4byte _0802F600
+ .4byte _0802F620
+ .4byte _0802F640
+ .4byte _0802F660
+ .4byte _0802F680
+ .4byte _0802F6A0
+ .4byte _0802F6C0
+ .4byte _0802F6E0
+ .4byte _0802F700
+ .4byte _0802F720
+ .4byte _0802F740
+ .4byte _0802F760
+ .4byte _0802F780
+_0802EF04:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0802F098 @ =gPlayerParty
+ adds 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, r6
+ mov r10, r0
+ adds r0, r6, 0
+ adds r0, 0x2B
+ str r0, [sp, 0x20]
+ adds r0, 0x19
+ str r0, [sp, 0x28]
+ adds r0, 0x4
+ str r0, [sp, 0x2C]
+ adds r0, 0x4
+ str r0, [sp, 0x30]
+ subs r0, 0x22
+ str r0, [sp, 0x1C]
+ subs r0, 0x2
+ str r0, [sp, 0x18]
+ adds r0, 0x4
+ str r0, [sp, 0x24]
+ adds r0, r6, 0x2
+ str r0, [sp, 0x4]
+ adds r0, r6, 0x4
+ str r0, [sp, 0x8]
+ adds r0, r6, 0x6
+ str r0, [sp, 0xC]
+ adds r0, 0x2
+ str r0, [sp, 0x10]
+ adds r0, 0x2
+ str r0, [sp, 0x14]
+ mov r9, r4
+ adds r7, r6, 0
+ adds r7, 0x24
+ adds r4, r6, 0
+ adds r4, 0xC
+_0802EF6A:
+ mov r1, r8
+ adds r1, 0xD
+ mov r0, r9
+ adds r2, r4, 0
+ bl SetMonData
+ mov r1, r8
+ adds r1, 0x11
+ mov r0, r9
+ adds r2, r7, 0
+ bl SetMonData
+ adds r7, 0x1
+ adds r4, 0x2
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0x3
+ ble _0802EF6A
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0802F098 @ =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ mov r2, r10
+ 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, 27
+ lsrs r0, 27
+ 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, 22
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x28
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrb r0, [r6, 0x15]
+ lsls r0, 25
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x29
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldr r0, [r6, 0x14]
+ lsls r0, 12
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrh r0, [r6, 0x16]
+ lsls r0, 23
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrb r0, [r6, 0x17]
+ lsls r0, 26
+ lsrs r0, 27
+ 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, 0x4]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3C
+ ldr r2, [sp, 0x8]
+ 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 _0802F796
+ .align 2, 0
+_0802F098: .4byte gPlayerParty
+_0802F09C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F0B4 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F0B8 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0xB
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F0B4: .4byte gPlayerParty
+_0802F0B8: .4byte gUnknown_02024A60
+_0802F0BC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F0D4 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F0D8 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0xC
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F0D4: .4byte gPlayerParty
+_0802F0D8: .4byte gUnknown_02024A60
+_0802F0DC:
+ movs r0, 0
+ mov r8, r0
+ movs r0, 0xC
+ adds r0, r3
+ mov r9, r0
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0802F130 @ =gPlayerParty
+ adds r7, r1, r0
+ adds r6, r3, 0
+ adds r6, 0x8
+ adds r4, r3, 0
+_0802F0F6:
+ 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, 0x1
+ adds r4, 0x2
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0x3
+ ble _0802F0F6
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F130 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x15
+ mov r2, r9
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F130: .4byte gPlayerParty
+_0802F134:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F150 @ =gPlayerParty
+ adds r0, r1
+ ldr r3, _0802F154 @ =gUnknown_02023A60
+ ldr r1, _0802F158 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _0802F1D8
+ .align 2, 0
+_0802F150: .4byte gPlayerParty
+_0802F154: .4byte gUnknown_02023A60
+_0802F158: .4byte gUnknown_02024A60
+_0802F15C:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0802F1B8 @ =gPlayerParty
+ adds r4, r0
+ ldr r5, _0802F1BC @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r2, r7
+ adds r0, r4, 0
+ movs r1, 0x11
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x12
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x2
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x13
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x3
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x14
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x4
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F1B8: .4byte gPlayerParty
+_0802F1BC: .4byte gUnknown_02024A60
+_0802F1C0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F1E4 @ =gPlayerParty
+ adds r0, r1
+ ldr r3, _0802F1E8 @ =gUnknown_02023A60
+ ldr r1, _0802F1EC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x8
+_0802F1D8:
+ adds r3, 0x3
+ adds r2, r3
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F1E4: .4byte gPlayerParty
+_0802F1E8: .4byte gUnknown_02023A60
+_0802F1EC: .4byte gUnknown_02024A60
+_0802F1F0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F208 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F20C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F208: .4byte gPlayerParty
+_0802F20C: .4byte gUnknown_02024A60
+_0802F210:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F228 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F22C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x19
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F228: .4byte gPlayerParty
+_0802F22C: .4byte gUnknown_02024A60
+_0802F230:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F248 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F24C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1A
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F248: .4byte gPlayerParty
+_0802F24C: .4byte gUnknown_02024A60
+_0802F250:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F268 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F26C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1B
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F268: .4byte gPlayerParty
+_0802F26C: .4byte gUnknown_02024A60
+_0802F270:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F288 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F28C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1C
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F288: .4byte gPlayerParty
+_0802F28C: .4byte gUnknown_02024A60
+_0802F290:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F2A8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F2AC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1D
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F2A8: .4byte gPlayerParty
+_0802F2AC: .4byte gUnknown_02024A60
+_0802F2B0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F2C8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F2CC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1E
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F2C8: .4byte gPlayerParty
+_0802F2CC: .4byte gUnknown_02024A60
+_0802F2D0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F2E8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F2EC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1F
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F2E8: .4byte gPlayerParty
+_0802F2EC: .4byte gUnknown_02024A60
+_0802F2F0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F308 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F30C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x20
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F308: .4byte gPlayerParty
+_0802F30C: .4byte gUnknown_02024A60
+_0802F310:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F328 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F32C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x22
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F328: .4byte gPlayerParty
+_0802F32C: .4byte gUnknown_02024A60
+_0802F330:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F348 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F34C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x23
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F348: .4byte gPlayerParty
+_0802F34C: .4byte gUnknown_02024A60
+_0802F350:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F368 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F36C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x24
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F368: .4byte gPlayerParty
+_0802F36C: .4byte gUnknown_02024A60
+_0802F370:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F388 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F38C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x25
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F388: .4byte gPlayerParty
+_0802F38C: .4byte gUnknown_02024A60
+_0802F390:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F3A8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F3AC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x26
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F3A8: .4byte gPlayerParty
+_0802F3AC: .4byte gUnknown_02024A60
+_0802F3B0:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0802F418 @ =gPlayerParty
+ adds r4, r0
+ ldr r5, _0802F41C @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r2, r7
+ adds r0, r4, 0
+ movs r1, 0x27
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x2
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x3
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x4
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x5
+ adds r2, r0
+ adds r0, r4, 0
+ b _0802F4D0
+ .align 2, 0
+_0802F418: .4byte gPlayerParty
+_0802F41C: .4byte gUnknown_02024A60
+_0802F420:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F438 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F43C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x27
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F438: .4byte gPlayerParty
+_0802F43C: .4byte gUnknown_02024A60
+_0802F440:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F458 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F45C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x28
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F458: .4byte gPlayerParty
+_0802F45C: .4byte gUnknown_02024A60
+_0802F460:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F478 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F47C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x29
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F478: .4byte gPlayerParty
+_0802F47C: .4byte gUnknown_02024A60
+_0802F480:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F498 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F49C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x2A
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F498: .4byte gPlayerParty
+_0802F49C: .4byte gUnknown_02024A60
+_0802F4A0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F4B8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F4BC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x2B
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F4B8: .4byte gPlayerParty
+_0802F4BC: .4byte gUnknown_02024A60
+_0802F4C0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F4D8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F4DC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+_0802F4D0:
+ movs r1, 0x2C
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F4D8: .4byte gPlayerParty
+_0802F4DC: .4byte gUnknown_02024A60
+_0802F4E0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F4F8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F4FC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F4F8: .4byte gPlayerParty
+_0802F4FC: .4byte gUnknown_02024A60
+_0802F500:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F518 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F51C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x9
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F518: .4byte gPlayerParty
+_0802F51C: .4byte gUnknown_02024A60
+_0802F520:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F538 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F53C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x37
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F538: .4byte gPlayerParty
+_0802F53C: .4byte gUnknown_02024A60
+_0802F540:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F558 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F55C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x38
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F558: .4byte gPlayerParty
+_0802F55C: .4byte gUnknown_02024A60
+_0802F560:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F578 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F57C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x39
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F578: .4byte gPlayerParty
+_0802F57C: .4byte gUnknown_02024A60
+_0802F580:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F598 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F59C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3A
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F598: .4byte gPlayerParty
+_0802F59C: .4byte gUnknown_02024A60
+_0802F5A0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F5B8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F5BC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3B
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F5B8: .4byte gPlayerParty
+_0802F5BC: .4byte gUnknown_02024A60
+_0802F5C0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F5D8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F5DC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3C
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F5D8: .4byte gPlayerParty
+_0802F5DC: .4byte gUnknown_02024A60
+_0802F5E0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F5F8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F5FC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3D
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F5F8: .4byte gPlayerParty
+_0802F5FC: .4byte gUnknown_02024A60
+_0802F600:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F618 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F61C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3E
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F618: .4byte gPlayerParty
+_0802F61C: .4byte gUnknown_02024A60
+_0802F620:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F638 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F63C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3F
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F638: .4byte gPlayerParty
+_0802F63C: .4byte gUnknown_02024A60
+_0802F640:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F658 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F65C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x16
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F658: .4byte gPlayerParty
+_0802F65C: .4byte gUnknown_02024A60
+_0802F660:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F678 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F67C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x17
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F678: .4byte gPlayerParty
+_0802F67C: .4byte gUnknown_02024A60
+_0802F680:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F698 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F69C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x18
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F698: .4byte gPlayerParty
+_0802F69C: .4byte gUnknown_02024A60
+_0802F6A0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F6B8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F6BC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x21
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F6B8: .4byte gPlayerParty
+_0802F6BC: .4byte gUnknown_02024A60
+_0802F6C0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F6D8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F6DC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x2F
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F6D8: .4byte gPlayerParty
+_0802F6DC: .4byte gUnknown_02024A60
+_0802F6E0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F6F8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F6FC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x30
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F6F8: .4byte gPlayerParty
+_0802F6FC: .4byte gUnknown_02024A60
+_0802F700:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F718 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F71C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x32
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F718: .4byte gPlayerParty
+_0802F71C: .4byte gUnknown_02024A60
+_0802F720:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F738 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F73C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x33
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F738: .4byte gPlayerParty
+_0802F73C: .4byte gUnknown_02024A60
+_0802F740:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F758 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F75C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x34
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F758: .4byte gPlayerParty
+_0802F75C: .4byte gUnknown_02024A60
+_0802F760:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F778 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F77C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x35
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F778: .4byte gPlayerParty
+_0802F77C: .4byte gUnknown_02024A60
+_0802F780:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F7C0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F7C4 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x36
+ bl SetMonData
+_0802F796:
+ ldr r2, _0802F7C8 @ =gUnknown_02024A6A
+ ldr r0, _0802F7C4 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0802F7C0 @ =gPlayerParty
+ adds r0, r2
+ bl sub_80324F8
+ add sp, 0x34
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802F7C0: .4byte gPlayerParty
+_0802F7C4: .4byte gUnknown_02024A60
+_0802F7C8: .4byte gUnknown_02024A6A
+ thumb_func_end dp01_setattr_by_ch1_for_player_pokemon
+
+ thumb_func_start sub_802F7CC
+sub_802F7CC: @ 802F7CC
+ push {r4-r7,lr}
+ ldr r1, _0802F830 @ =gUnknown_02024A6A
+ ldr r7, _0802F834 @ =gUnknown_02024A60
+ ldrb r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ adds r3, r1, 0
+ muls r3, r0
+ ldr r4, _0802F838 @ =gUnknown_02023A60
+ lsls r2, 9
+ adds r0, r4, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ ldr r1, _0802F83C @ =gPlayerParty
+ adds r0, r1
+ adds r5, r3, r0
+ movs r3, 0
+ adds r0, r4, 0x2
+ adds r2, r0
+ ldrb r2, [r2]
+ cmp r3, r2
+ bcs _0802F824
+ adds r6, r4, 0
+ adds r2, r7, 0
+ adds r4, r0, 0
+_0802F802:
+ adds r1, r5, r3
+ ldrb r0, [r2]
+ lsls r0, 9
+ adds r0, 0x3
+ adds r0, r3, r0
+ adds r0, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r2]
+ lsls r0, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcc _0802F802
+_0802F824:
+ bl dp01_tbl1_exec_completed
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802F830: .4byte gUnknown_02024A6A
+_0802F834: .4byte gUnknown_02024A60
+_0802F838: .4byte gUnknown_02023A60
+_0802F83C: .4byte gPlayerParty
+ thumb_func_end sub_802F7CC
+
+ thumb_func_start sub_802F840
+sub_802F840: @ 802F840
+ push {r4,lr}
+ ldr r2, _0802F88C @ =gUnknown_02024A6A
+ ldr r4, _0802F890 @ =gUnknown_02024A60
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0802F894 @ =gPlayerParty
+ adds r0, r2
+ bl sub_80318FC
+ ldr r2, _0802F898 @ =gSprites
+ ldr r0, _0802F89C @ =gUnknown_02024BE0
+ ldrb r3, [r4]
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldr r1, _0802F8A0 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802F8A4 @ =bx_0802E404
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802F88C: .4byte gUnknown_02024A6A
+_0802F890: .4byte gUnknown_02024A60
+_0802F894: .4byte gPlayerParty
+_0802F898: .4byte gSprites
+_0802F89C: .4byte gUnknown_02024BE0
+_0802F8A0: .4byte gUnknown_03004330
+_0802F8A4: .4byte bx_0802E404
+ thumb_func_end sub_802F840
+
+ thumb_func_start sub_802F8A8
+sub_802F8A8: @ 802F8A8
+ push {r4-r6,lr}
+ ldr r5, _0802F914 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ ldr r4, _0802F918 @ =gUnknown_02023A60
+ lsls r1, r0, 9
+ adds r6, r4, 0x2
+ adds r1, r6
+ ldrb r1, [r1]
+ bl sub_8032AA8
+ ldr r2, _0802F91C @ =gUnknown_02024A6A
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r2
+ lsls r0, 9
+ adds r4, 0x1
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r4, 0
+ strh r0, [r1]
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0802F920 @ =gPlayerParty
+ adds r0, r2
+ bl sub_80318FC
+ ldr r1, _0802F924 @ =gUnknown_02024E60
+ ldrb r0, [r5]
+ adds r0, r1
+ strb r4, [r0]
+ ldr r1, _0802F928 @ =gUnknown_02024E64
+ ldrb r0, [r5]
+ adds r0, r1
+ strb r4, [r0]
+ ldrb r0, [r5]
+ lsls r1, r0, 9
+ adds r1, r6
+ ldrb r1, [r1]
+ bl sub_802F934
+ ldr r1, _0802F92C @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802F930 @ =sub_802D798
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802F914: .4byte gUnknown_02024A60
+_0802F918: .4byte gUnknown_02023A60
+_0802F91C: .4byte gUnknown_02024A6A
+_0802F920: .4byte gPlayerParty
+_0802F924: .4byte gUnknown_02024E60
+_0802F928: .4byte gUnknown_02024E64
+_0802F92C: .4byte gUnknown_03004330
+_0802F930: .4byte sub_802D798
+ thumb_func_end sub_802F8A8
+
+ thumb_func_start sub_802F934
+sub_802F934: @ 802F934
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl sub_8032AA8
+ ldr r0, _0802FA78 @ =gUnknown_02024A6A
+ lsls r2, r6, 1
+ adds r2, r0
+ ldr r0, _0802FA7C @ =gUnknown_02023A60
+ lsls r1, r6, 9
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ strh r0, [r2]
+ ldrh r1, [r2]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802FA80 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ mov r8, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, _0802FA84 @ =sub_80312F0
+ bl object_new_hidden_with_callback
+ ldr r1, _0802FA88 @ =gUnknown_0300434C
+ mov r9, r1
+ add r9, r6
+ mov r1, r9
+ strb r0, [r1]
+ adds r0, r6, 0
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _0802FA8C @ =gUnknown_02024E8C
+ mov r10, r0
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ bl sub_8077F68
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r10
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r4, _0802FA90 @ =gUnknown_02024BE0
+ adds r4, r6, r4
+ strb r0, [r4]
+ ldr r5, _0802FA94 @ =gSprites
+ mov r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r4]
+ strh r1, [r0, 0x30]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x2E]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x32]
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, r6, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _0802FA98 @ =gUnknown_02024E84
+ adds r6, r1
+ ldrb r1, [r6]
+ bl StartSpriteAnim
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0802FA9C @ =SpriteCallbackDummy
+ str r1, [r0]
+ movs r0, 0
+ movs r1, 0xFF
+ bl sub_8046400
+ mov r1, r9
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x2E]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802FA78: .4byte gUnknown_02024A6A
+_0802FA7C: .4byte gUnknown_02023A60
+_0802FA80: .4byte gPlayerParty
+_0802FA84: .4byte sub_80312F0
+_0802FA88: .4byte gUnknown_0300434C
+_0802FA8C: .4byte gUnknown_02024E8C
+_0802FA90: .4byte gUnknown_02024BE0
+_0802FA94: .4byte gSprites
+_0802FA98: .4byte gUnknown_02024E84
+_0802FA9C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_802F934
+
+ thumb_func_start sub_802FAA0
+sub_802FAA0: @ 802FAA0
+ push {r4-r6,lr}
+ ldr r1, _0802FAD0 @ =gUnknown_02023A60
+ ldr r6, _0802FAD4 @ =gUnknown_02024A60
+ ldrb r2, [r6]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r3, [r0]
+ cmp r3, 0
+ bne _0802FAE4
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _0802FAD8 @ =0x02017810
+ adds r0, r1
+ strb r3, [r0, 0x4]
+ ldr r1, _0802FADC @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802FAE0 @ =sub_802FB2C
+ str r1, [r0]
+ b _0802FB1A
+ .align 2, 0
+_0802FAD0: .4byte gUnknown_02023A60
+_0802FAD4: .4byte gUnknown_02024A60
+_0802FAD8: .4byte 0x02017810
+_0802FADC: .4byte gUnknown_03004330
+_0802FAE0: .4byte sub_802FB2C
+_0802FAE4:
+ ldr r5, _0802FB20 @ =gUnknown_02024BE0
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0802FB24 @ =gSprites
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldr r1, _0802FB28 @ =gUnknown_03004340
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl1_exec_completed
+_0802FB1A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802FB20: .4byte gUnknown_02024BE0
+_0802FB24: .4byte gSprites
+_0802FB28: .4byte gUnknown_03004340
+ thumb_func_end sub_802FAA0
+
+ thumb_func_start sub_802FB2C
+sub_802FB2C: @ 802FB2C
+ push {r4,r5,lr}
+ ldr r5, _0802FB48 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r4, _0802FB4C @ =0x02017810
+ adds r3, r0, r4
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ beq _0802FB50
+ cmp r0, 0x1
+ beq _0802FB7C
+ b _0802FBA4
+ .align 2, 0
+_0802FB48: .4byte gUnknown_02024A60
+_0802FB4C: .4byte 0x02017810
+_0802FB50:
+ lsls r0, r2, 2
+ adds r1, r4, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0802FB6C
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_0802FB6C:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _0802FBA4
+_0802FB7C:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0802FBA4
+ strb r0, [r3, 0x4]
+ ldrb r2, [r5]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x1
+ bl move_anim_start_t4
+ ldr r1, _0802FBAC @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802FBB0 @ =sub_802DEAC
+ str r1, [r0]
+_0802FBA4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802FBAC: .4byte gUnknown_03004330
+_0802FBB0: .4byte sub_802DEAC
+ thumb_func_end sub_802FB2C
+
+ thumb_func_start sub_802FBB4
+sub_802FBB4: @ 802FBB4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _0802FBDC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0802FBE8
+ ldr r0, _0802FBE0 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ ands r1, r0
+ ldr r7, _0802FBE4 @ =0x0000fff0
+ cmp r1, 0
+ beq _0802FBEA
+ movs r7, 0x10
+ b _0802FBEA
+ .align 2, 0
+_0802FBDC: .4byte gUnknown_020239F8
+_0802FBE0: .4byte gUnknown_02024A60
+_0802FBE4: .4byte 0x0000fff0
+_0802FBE8:
+ movs r7, 0
+_0802FBEA:
+ ldr r4, _0802FCB8 @ =gSaveBlock2
+ ldrb r0, [r4, 0x8]
+ ldr r6, _0802FCBC @ =gUnknown_02024A60
+ ldrb r1, [r6]
+ bl sub_8031AF4
+ ldrb r5, [r4, 0x8]
+ ldrb r0, [r6]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r0, _0802FCC0 @ =gUnknown_02024E8C
+ mov r8, r0
+ lsls r5, r7, 16
+ movs r0, 0xA0
+ lsls r0, 15
+ adds r5, r0
+ asrs r5, 16
+ ldr r1, _0802FCC4 @ =gTrainerBackPicCoords
+ ldrb r0, [r4, 0x8]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r4, 0x8
+ subs r4, r0
+ lsls r4, 18
+ movs r0, 0xA0
+ lsls r0, 15
+ adds r4, r0
+ asrs r4, 16
+ ldrb r0, [r6]
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r5, _0802FCC8 @ =gUnknown_02024BE0
+ ldrb r1, [r6]
+ adds r1, r5
+ strb r0, [r1]
+ ldr r4, _0802FCCC @ =gSprites
+ ldrb r3, [r6]
+ adds r0, r3, r5
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xF0
+ strh r1, [r0, 0x24]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _0802FCD0 @ =0x0000fffe
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _0802FCD4 @ =sub_80313A0
+ str r1, [r0]
+ ldr r1, _0802FCD8 @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802FCDC @ =sub_802D204
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802FCB8: .4byte gSaveBlock2
+_0802FCBC: .4byte gUnknown_02024A60
+_0802FCC0: .4byte gUnknown_02024E8C
+_0802FCC4: .4byte gTrainerBackPicCoords
+_0802FCC8: .4byte gUnknown_02024BE0
+_0802FCCC: .4byte gSprites
+_0802FCD0: .4byte 0x0000fffe
+_0802FCD4: .4byte sub_80313A0
+_0802FCD8: .4byte gUnknown_03004330
+_0802FCDC: .4byte sub_802D204
+ thumb_func_end sub_802FBB4
+
+ thumb_func_start sub_802FCE0
+sub_802FCE0: @ 802FCE0
+ push {r4-r6,lr}
+ ldr r4, _0802FD94 @ =gSaveBlock2
+ ldrb r0, [r4, 0x8]
+ ldr r5, _0802FD98 @ =gUnknown_02024A60
+ ldrb r1, [r5]
+ bl sub_8031AF4
+ ldrb r6, [r4, 0x8]
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r0, _0802FD9C @ =gUnknown_02024E8C
+ ldr r2, _0802FDA0 @ =gTrainerBackPicCoords
+ ldrb r1, [r4, 0x8]
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1]
+ movs r2, 0x8
+ subs r2, r1
+ lsls r2, 18
+ movs r1, 0xA0
+ lsls r1, 15
+ adds r2, r1
+ asrs r2, 16
+ movs r1, 0x50
+ movs r3, 0x1E
+ bl CreateSprite
+ ldr r6, _0802FDA4 @ =gUnknown_02024BE0
+ ldrb r1, [r5]
+ adds r1, r6
+ strb r0, [r1]
+ ldr r4, _0802FDA8 @ =gSprites
+ ldrb r3, [r5]
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _0802FDAC @ =0x0000ffa0
+ strh r1, [r0, 0x24]
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x2
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _0802FDB0 @ =sub_80313A0
+ str r1, [r0]
+ ldr r1, _0802FDB4 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802FDB8 @ =sub_802D23C
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802FD94: .4byte gSaveBlock2
+_0802FD98: .4byte gUnknown_02024A60
+_0802FD9C: .4byte gUnknown_02024E8C
+_0802FDA0: .4byte gTrainerBackPicCoords
+_0802FDA4: .4byte gUnknown_02024BE0
+_0802FDA8: .4byte gSprites
+_0802FDAC: .4byte 0x0000ffa0
+_0802FDB0: .4byte sub_80313A0
+_0802FDB4: .4byte gUnknown_03004330
+_0802FDB8: .4byte sub_802D23C
+ thumb_func_end sub_802FCE0
+
+ thumb_func_start sub_802FDBC
+sub_802FDBC: @ 802FDBC
+ push {r4-r6,lr}
+ ldr r5, _0802FE5C @ =gUnknown_02024BE0
+ ldr r6, _0802FE60 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0802FE64 @ =gSprites
+ adds r0, r4
+ bl oamt_add_pos2_onto_pos1
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x32
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _0802FE68 @ =0x0000ffd8
+ strh r1, [r0, 0x32]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0802FE6C @ =sub_8078B34
+ str r1, [r0]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _0802FE70 @ =SpriteCallbackDummy
+ bl oamt_set_x3A_32
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r1, _0802FE74 @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802FE78 @ =sub_802D274
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802FE5C: .4byte gUnknown_02024BE0
+_0802FE60: .4byte gUnknown_02024A60
+_0802FE64: .4byte gSprites
+_0802FE68: .4byte 0x0000ffd8
+_0802FE6C: .4byte sub_8078B34
+_0802FE70: .4byte SpriteCallbackDummy
+_0802FE74: .4byte gUnknown_03004330
+_0802FE78: .4byte sub_802D274
+ thumb_func_end sub_802FDBC
+
+ thumb_func_start sub_802FE7C
+sub_802FE7C: @ 802FE7C
+ push {r4,r5,lr}
+ ldr r5, _0802FEC0 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r4, _0802FEC4 @ =0x02017810
+ adds r3, r0, r4
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ bne _0802FEC8
+ lsls r0, r2, 2
+ adds r1, r4, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0802FEAE
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_0802FEAE:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _0802FF3E
+ .align 2, 0
+_0802FEC0: .4byte gUnknown_02024A60
+_0802FEC4: .4byte 0x02017810
+_0802FEC8:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0802FF3E
+ strb r4, [r3, 0x4]
+ ldr r2, _0802FF44 @ =gUnknown_02024A6A
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0802FF48 @ =gPlayerParty
+ adds r0, r2
+ bl sub_80324F8
+ movs r1, 0x40
+ negs r1, r1
+ movs r0, 0x10
+ bl PlaySE12WithPanning
+ ldr r2, _0802FF4C @ =gSprites
+ ldr r3, _0802FF50 @ =gUnknown_02024BE0
+ ldrb r0, [r5]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r4, [r0, 0x30]
+ ldrb r0, [r5]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x5
+ strh r1, [r0, 0x32]
+ ldrb r0, [r5]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0802FF54 @ =sub_80105EC
+ str r1, [r0]
+ ldr r1, _0802FF58 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802FF5C @ =sub_802DE10
+ str r1, [r0]
+_0802FF3E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802FF44: .4byte gUnknown_02024A6A
+_0802FF48: .4byte gPlayerParty
+_0802FF4C: .4byte gSprites
+_0802FF50: .4byte gUnknown_02024BE0
+_0802FF54: .4byte sub_80105EC
+_0802FF58: .4byte gUnknown_03004330
+_0802FF5C: .4byte sub_802DE10
+ thumb_func_end sub_802FE7C
+
+ thumb_func_start sub_802FF60
+sub_802FF60: @ 802FF60
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ bl dp01_tbl1_exec_completed
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802FF60
+
+ thumb_func_start sub_802FF80
+sub_802FF80: @ 802FF80
+ push {r4,r5,lr}
+ ldr r1, _0802FFBC @ =0x02017840
+ movs r0, 0x4
+ strb r0, [r1, 0x8]
+ ldr r1, _0802FFC0 @ =gUnknown_02024E6D
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r5, _0802FFC4 @ =gUnknown_02024A60
+ ldrb r4, [r5]
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r3, 0x3
+ bl move_anim_start_t4
+ ldr r1, _0802FFC8 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802FFCC @ =bx_wait_t1
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802FFBC: .4byte 0x02017840
+_0802FFC0: .4byte gUnknown_02024E6D
+_0802FFC4: .4byte gUnknown_02024A60
+_0802FFC8: .4byte gUnknown_03004330
+_0802FFCC: .4byte bx_wait_t1
+ thumb_func_end sub_802FF80
+
+ thumb_func_start sub_802FFD0
+sub_802FFD0: @ 802FFD0
+ push {r4,r5,lr}
+ ldr r1, _08030014 @ =gUnknown_02023A60
+ ldr r5, _08030018 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r0, _0803001C @ =0x02017840
+ strb r1, [r0, 0x8]
+ ldr r1, _08030020 @ =gUnknown_02024E6D
+ movs r0, 0x1
+ strb r0, [r1]
+ ldrb r4, [r5]
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r3, 0x3
+ bl move_anim_start_t4
+ ldr r1, _08030024 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08030028 @ =bx_wait_t1
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030014: .4byte gUnknown_02023A60
+_08030018: .4byte gUnknown_02024A60
+_0803001C: .4byte 0x02017840
+_08030020: .4byte gUnknown_02024E6D
+_08030024: .4byte gUnknown_03004330
+_08030028: .4byte bx_wait_t1
+ thumb_func_end sub_802FFD0
+
+ thumb_func_start sub_803002C
+sub_803002C: @ 803002C
+ push {lr}
+ ldr r1, _08030054 @ =gUnknown_02023A60
+ ldr r0, _08030058 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0803004A
+_08030040:
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _08030040
+_0803004A:
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030054: .4byte gUnknown_02023A60
+_08030058: .4byte gUnknown_02024A60
+ thumb_func_end sub_803002C
+
+ thumb_func_start dp01t_0F_1_move_anim
+dp01t_0F_1_move_anim: @ 803005C
+ push {r4-r6,lr}
+ ldr r6, _08030140 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803006E
+ b _0803017E
+_0803006E:
+ ldr r0, _08030144 @ =gUnknown_02023A60
+ mov r12, r0
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r0, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ mov r1, r12
+ adds r1, 0x2
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ ldr r5, _08030148 @ =gUnknown_0202F7C4
+ mov r1, r12
+ adds r1, 0x3
+ adds r2, r1
+ ldrb r1, [r2]
+ strb r1, [r5]
+ ldr r4, _0803014C @ =gUnknown_0202F7BC
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x4
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0x5
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 8
+ orrs r3, r1
+ strh r3, [r4]
+ ldr r4, _08030150 @ =gUnknown_0202F7B8
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x6
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0x7
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r3, r1
+ mov r1, r12
+ adds r1, 0x8
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 16
+ orrs r3, r1
+ mov r1, r12
+ adds r1, 0x9
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 24
+ orrs r3, r1
+ str r3, [r4]
+ ldr r3, _08030154 @ =gUnknown_0202F7BE
+ ldrb r1, [r6]
+ lsls r1, 9
+ mov r2, r12
+ adds r2, 0xA
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r3]
+ ldr r4, _08030158 @ =gUnknown_0202F7C0
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0xC
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0xD
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 8
+ orrs r3, r1
+ strh r3, [r4]
+ ldr r3, _0803015C @ =gUnknown_0202F7B4
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x10
+ adds r2, r1
+ str r2, [r3]
+ ldr r3, _08030160 @ =gUnknown_02024E70
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r3
+ ldr r2, [r2]
+ str r2, [r1]
+ ldrb r1, [r5]
+ bl sub_8031720
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _08030164
+ bl dp01_tbl1_exec_completed
+ b _0803017E
+ .align 2, 0
+_08030140: .4byte gUnknown_02024A60
+_08030144: .4byte gUnknown_02023A60
+_08030148: .4byte gUnknown_0202F7C4
+_0803014C: .4byte gUnknown_0202F7BC
+_08030150: .4byte gUnknown_0202F7B8
+_08030154: .4byte gUnknown_0202F7BE
+_08030158: .4byte gUnknown_0202F7C0
+_0803015C: .4byte gUnknown_0202F7B4
+_08030160: .4byte gUnknown_02024E70
+_08030164:
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08030184 @ =0x02017810
+ adds r0, r1
+ strb r2, [r0, 0x4]
+ ldr r1, _08030188 @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803018C @ =sub_8030190
+ str r1, [r0]
+_0803017E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030184: .4byte 0x02017810
+_08030188: .4byte gUnknown_03004330
+_0803018C: .4byte sub_8030190
+ thumb_func_end dp01t_0F_1_move_anim
+
+ thumb_func_start sub_8030190
+sub_8030190: @ 8030190
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r2, _080301D4 @ =gUnknown_02023A60
+ ldr r5, _080301D8 @ =gUnknown_02024A60
+ ldrb r3, [r5]
+ lsls r1, r3, 9
+ adds r0, r2, 0x1
+ mov r9, r0
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r6, r2, 0x2
+ mov r8, r6
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r4, r0
+ adds r2, 0xB
+ adds r1, r2
+ ldrb r7, [r1]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r6, _080301DC @ =0x02017810
+ adds r0, r6
+ ldrb r2, [r0, 0x4]
+ cmp r2, 0x1
+ beq _0803021E
+ cmp r2, 0x1
+ bgt _080301E0
+ cmp r2, 0
+ beq _080301EA
+ b _080302E8
+ .align 2, 0
+_080301D4: .4byte gUnknown_02023A60
+_080301D8: .4byte gUnknown_02024A60
+_080301DC: .4byte 0x02017810
+_080301E0:
+ cmp r2, 0x2
+ beq _08030244
+ cmp r2, 0x3
+ beq _080302B0
+ b _080302E8
+_080301EA:
+ lsls r1, r3, 2
+ adds r0, r6, 0
+ subs r0, 0x10
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0xC
+ ands r0, r2
+ cmp r0, 0x4
+ bne _0803020E
+ movs r0, 0x8
+ orrs r0, r2
+ strb r0, [r1]
+ ldrb r2, [r5]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_0803020E:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _080302E8
+_0803021E:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080302E8
+ movs r0, 0
+ bl sub_80326EC
+ adds r0, r4, 0
+ bl move_anim_start_t1
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ b _080302E8
+_08030244:
+ ldr r0, _080302A0 @ =gUnknown_0202F7AC
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _080302A4 @ =gUnknown_0202F7B1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080302E8
+ movs r0, 0x1
+ bl sub_80326EC
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r4, r6, 0
+ subs r4, 0x10
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0803028C
+ cmp r7, 0x1
+ bhi _0803028C
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r2, [r0]
+ movs r1, 0x9
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_0803028C:
+ ldr r0, _080302A8 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080302AC @ =0x02017810
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0, 0x4]
+ b _080302E8
+ .align 2, 0
+_080302A0: .4byte gUnknown_0202F7AC
+_080302A4: .4byte gUnknown_0202F7B1
+_080302A8: .4byte gUnknown_02024A60
+_080302AC: .4byte 0x02017810
+_080302B0:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080302E8
+ bl sub_8031F24
+ ldrb r0, [r5]
+ lsls r2, r0, 9
+ mov r3, r9
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ add r2, r8
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ bl sub_80324BC
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strb r4, [r0, 0x4]
+ bl dp01_tbl1_exec_completed
+_080302E8:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8030190
+
+ thumb_func_start sub_80302F4
+sub_80302F4: @ 80302F4
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _08030338 @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0803033C @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r4, _08030340 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r0, 9
+ ldr r1, _08030344 @ =gUnknown_02023A62
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_8120AA8
+ ldr r0, _08030348 @ =gUnknown_03004210
+ ldr r1, _0803034C @ =gUnknown_020238CC
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08030350 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08030354 @ =sub_802DF18
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030338: .4byte gUnknown_030042A4
+_0803033C: .4byte gUnknown_030042A0
+_08030340: .4byte gUnknown_02024A60
+_08030344: .4byte gUnknown_02023A62
+_08030348: .4byte gUnknown_03004210
+_0803034C: .4byte gUnknown_020238CC
+_08030350: .4byte gUnknown_03004330
+_08030354: .4byte sub_802DF18
+ thumb_func_end sub_80302F4
+
+ thumb_func_start dp01t_11_1_message_for_player_only
+dp01t_11_1_message_for_player_only: @ 8030358
+ push {lr}
+ ldr r0, _08030370 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08030374
+ bl sub_80302F4
+ b _08030378
+ .align 2, 0
+_08030370: .4byte gUnknown_02024A60
+_08030374:
+ bl dp01_tbl1_exec_completed
+_08030378:
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_11_1_message_for_player_only
+
+ thumb_func_start sub_803037C
+sub_803037C: @ 803037C
+ push {r4,lr}
+ sub sp, 0x8
+ ldr r1, _08030434 @ =gUnknown_030042A4
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _08030438 @ =gUnknown_030042A0
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r4, _0803043C @ =gUnknown_03004210
+ movs r0, 0x1B
+ str r0, [sp]
+ movs r0, 0x12
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0x2
+ movs r3, 0xF
+ bl FillWindowRect
+ movs r0, 0x10
+ str r0, [sp]
+ movs r0, 0x26
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0x2
+ movs r3, 0x23
+ bl FillWindowRect
+ ldr r1, _08030440 @ =gUnknown_03004330
+ ldr r0, _08030444 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08030448 @ =sub_802C098
+ str r1, [r0]
+ ldr r1, _0803044C @ =gUnknown_08400CF3
+ movs r2, 0xC8
+ lsls r2, 1
+ movs r0, 0x23
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x12
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _08030450 @ =0x0000ffff
+ ldr r3, _08030454 @ =0x00002d9f
+ movs r0, 0
+ str r0, [sp]
+ movs r2, 0xC
+ bl sub_814A5C0
+ movs r4, 0
+_080303EC:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl nullsub_8
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080303EC
+ ldr r1, _08030458 @ =gUnknown_02024E60
+ ldr r0, _08030444 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3E4
+ ldr r0, _0803045C @ =gUnknown_08400CA8
+ bl get_battle_strings_
+ ldr r4, _0803043C @ =gUnknown_03004210
+ ldr r1, _08030460 @ =gUnknown_020238CC
+ movs r2, 0xDC
+ lsls r2, 1
+ movs r0, 0x23
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x2
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030434: .4byte gUnknown_030042A4
+_08030438: .4byte gUnknown_030042A0
+_0803043C: .4byte gUnknown_03004210
+_08030440: .4byte gUnknown_03004330
+_08030444: .4byte gUnknown_02024A60
+_08030448: .4byte sub_802C098
+_0803044C: .4byte gUnknown_08400CF3
+_08030450: .4byte 0x0000ffff
+_08030454: .4byte 0x00002d9f
+_08030458: .4byte gUnknown_02024E60
+_0803045C: .4byte gUnknown_08400CA8
+_08030460: .4byte gUnknown_020238CC
+ thumb_func_end sub_803037C
+
+ thumb_func_start nullsub_42
+nullsub_42: @ 8030464
+ bx lr
+ thumb_func_end nullsub_42
+
+ thumb_func_start sub_8030468
+sub_8030468: @ 8030468
+ push {lr}
+ sub sp, 0x4
+ ldr r1, _08030494 @ =0x0000ffff
+ ldr r3, _08030498 @ =0x00002d9f
+ movs r0, 0
+ str r0, [sp]
+ movs r2, 0xC
+ bl sub_814A5C0
+ bl sub_80304A8
+ ldr r1, _0803049C @ =gUnknown_03004330
+ ldr r0, _080304A0 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080304A4 @ =sub_802C68C
+ str r1, [r0]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030494: .4byte 0x0000ffff
+_08030498: .4byte 0x00002d9f
+_0803049C: .4byte gUnknown_03004330
+_080304A0: .4byte gUnknown_02024A60
+_080304A4: .4byte sub_802C68C
+ thumb_func_end sub_8030468
+
+ thumb_func_start sub_80304A8
+sub_80304A8: @ 80304A8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _08030510 @ =gUnknown_030042A4
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _08030514 @ =gUnknown_030042A0
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ bl sub_802E1B0
+ ldr r1, _08030518 @ =gUnknown_03004344
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, _0803051C @ =gUnknown_02024E64
+ ldr r4, _08030520 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3B4
+ ldr r1, _08030524 @ =gUnknown_02023A60
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08030500
+ ldr r4, _08030528 @ =gUnknown_03004210
+ ldr r1, _0803052C @ =gUnknown_08400D38
+ movs r2, 0xA4
+ lsls r2, 2
+ movs r0, 0x37
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x17
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+_08030500:
+ bl sub_802E220
+ bl sub_802E2D4
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030510: .4byte gUnknown_030042A4
+_08030514: .4byte gUnknown_030042A0
+_08030518: .4byte gUnknown_03004344
+_0803051C: .4byte gUnknown_02024E64
+_08030520: .4byte gUnknown_02024A60
+_08030524: .4byte gUnknown_02023A60
+_08030528: .4byte gUnknown_03004210
+_0803052C: .4byte gUnknown_08400D38
+ thumb_func_end sub_80304A8
+
+ thumb_func_start sub_8030530
+sub_8030530: @ 8030530
+ push {r4,r5,lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0803057C @ =gUnknown_03004330
+ ldr r2, _08030580 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08030584 @ =sub_802E004
+ str r1, [r0]
+ ldr r1, _08030588 @ =gUnknown_02024E6C
+ ldrb r0, [r2]
+ strb r0, [r1]
+ movs r3, 0
+ ldr r5, _0803058C @ =gUnknown_02038470
+ ldr r4, _08030590 @ =gUnknown_02023A60
+_0803055E:
+ adds r0, r3, r5
+ ldrb r1, [r2]
+ lsls r1, 9
+ adds r1, 0x1
+ adds r1, r3, r1
+ adds r1, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, 0x2
+ ble _0803055E
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803057C: .4byte gUnknown_03004330
+_08030580: .4byte gUnknown_02024A60
+_08030584: .4byte sub_802E004
+_08030588: .4byte gUnknown_02024E6C
+_0803058C: .4byte gUnknown_02038470
+_08030590: .4byte gUnknown_02023A60
+ thumb_func_end sub_8030530
+
+ thumb_func_start sub_8030594
+sub_8030594: @ 8030594
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, _08030644 @ =TaskDummy
+ movs r1, 0xFF
+ bl CreateTask
+ ldr r3, _08030648 @ =gUnknown_0300434C
+ ldr r5, _0803064C @ =gUnknown_02024A60
+ ldrb r1, [r5]
+ adds r1, r3
+ strb r0, [r1]
+ ldr r4, _08030650 @ =gTasks
+ ldrb r2, [r5]
+ adds r3, r2, r3
+ ldrb r0, [r3]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ ldr r4, _08030654 @ =gUnknown_02023A60
+ lsls r2, 9
+ adds r3, r4, 0x1
+ adds r2, r3
+ ldrb r2, [r2]
+ movs r0, 0xF
+ ands r0, r2
+ strh r0, [r1, 0x8]
+ ldr r2, _08030658 @ =0x02000000
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r0, r3
+ ldrb r0, [r0]
+ lsrs r0, 4
+ ldr r3, _0803065C @ =0x00016054
+ adds r1, r2, r3
+ strb r0, [r1]
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r1, r4, 0x2
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r3, 0x49
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r1, r4, 0x3
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r1, _08030660 @ =0x000160c0
+ adds r2, r1
+ strb r0, [r2]
+ movs r2, 0
+ ldr r3, _08030664 @ =gUnknown_02038470
+_08030600:
+ adds r0, r2, r3
+ ldrb r1, [r5]
+ lsls r1, 9
+ adds r1, 0x4
+ adds r1, r2, r1
+ adds r1, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x2
+ ble _08030600
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08030668 @ =gUnknown_03004330
+ ldr r2, _0803064C @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803066C @ =sub_802DF30
+ str r1, [r0]
+ ldr r1, _08030670 @ =gUnknown_02024E6C
+ ldrb r0, [r2]
+ strb r0, [r1]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030644: .4byte TaskDummy
+_08030648: .4byte gUnknown_0300434C
+_0803064C: .4byte gUnknown_02024A60
+_08030650: .4byte gTasks
+_08030654: .4byte gUnknown_02023A60
+_08030658: .4byte 0x02000000
+_0803065C: .4byte 0x00016054
+_08030660: .4byte 0x000160c0
+_08030664: .4byte gUnknown_02038470
+_08030668: .4byte gUnknown_03004330
+_0803066C: .4byte sub_802DF30
+_08030670: .4byte gUnknown_02024E6C
+ thumb_func_end sub_8030594
+
+ thumb_func_start sub_8030674
+sub_8030674: @ 8030674
+ push {lr}
+ sub sp, 0x4
+ bl sub_80325B8
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ bl dp01_tbl1_exec_completed
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8030674
+
+ thumb_func_start sub_8030698
+sub_8030698: @ 8030698
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ movs r0, 0
+ bl load_gfxc_health_bar
+ ldr r3, _08030710 @ =gUnknown_02023A60
+ ldr r0, _08030714 @ =gUnknown_02024A60
+ mov r9, r0
+ ldrb r4, [r0]
+ lsls r2, r4, 9
+ adds r0, r3, 0x2
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ adds r3, 0x3
+ adds r2, r3
+ ldrb r0, [r2]
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ asrs r7, r1, 16
+ ldr r0, _08030718 @ =0x00007fff
+ cmp r7, r0
+ beq _08030728
+ ldr r6, _0803071C @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _08030720 @ =gPlayerParty
+ adds r0, r4
+ movs r1, 0x3A
+ bl GetMonData
+ mov r8, r0
+ mov r1, r9
+ ldrb r0, [r1]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x39
+ bl GetMonData
+ adds r3, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r1, _08030724 @ =gUnknown_03004340
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ mov r2, r8
+ bl sub_8043D84
+ b _08030762
+ .align 2, 0
+_08030710: .4byte gUnknown_02023A60
+_08030714: .4byte gUnknown_02024A60
+_08030718: .4byte 0x00007fff
+_0803071C: .4byte gUnknown_02024A6A
+_08030720: .4byte gPlayerParty
+_08030724: .4byte gUnknown_03004340
+_08030728:
+ ldr r1, _08030780 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08030784 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3A
+ bl GetMonData
+ adds r2, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r4, _08030788 @ =gUnknown_03004340
+ adds r1, r0, r4
+ ldrb r1, [r1]
+ str r7, [sp]
+ movs r3, 0
+ bl sub_8043D84
+ mov r1, r9
+ ldrb r0, [r1]
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0
+ movs r2, 0
+ bl sub_80440EC
+_08030762:
+ ldr r1, _0803078C @ =gUnknown_03004330
+ ldr r0, _08030790 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08030794 @ =bx_t1_healthbar_update
+ str r1, [r0]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030780: .4byte gUnknown_02024A6A
+_08030784: .4byte gPlayerParty
+_08030788: .4byte gUnknown_03004340
+_0803078C: .4byte gUnknown_03004330
+_08030790: .4byte gUnknown_02024A60
+_08030794: .4byte bx_t1_healthbar_update
+ thumb_func_end sub_8030698
+
+ thumb_func_start sub_8030798
+sub_8030798: @ 8030798
+ push {r4-r7,lr}
+ ldr r5, _080307C4 @ =gUnknown_02023A60
+ ldr r6, _080307C8 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ lsls r0, 9
+ adds r1, r5, 0x1
+ adds r0, r1
+ ldrb r7, [r0]
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _080307CC @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ cmp r0, 0x63
+ bls _080307D0
+ bl dp01_tbl1_exec_completed
+ b _0803081C
+ .align 2, 0
+_080307C4: .4byte gUnknown_02023A60
+_080307C8: .4byte gUnknown_02024A60
+_080307CC: .4byte gPlayerParty
+_080307D0:
+ movs r0, 0x1
+ bl load_gfxc_health_bar
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ ldrb r1, [r6]
+ lsls r1, 9
+ adds r0, r5, 0x2
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r0, r5, 0x3
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r4, r0
+ ldr r0, _08030824 @ =sub_802D924
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08030828 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r7, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ ldrb r0, [r6]
+ strh r0, [r1, 0xC]
+ ldr r1, _0803082C @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08030830 @ =nullsub_91
+ str r1, [r0]
+_0803081C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030824: .4byte sub_802D924
+_08030828: .4byte gTasks
+_0803082C: .4byte gUnknown_03004330
+_08030830: .4byte nullsub_91
+ thumb_func_end sub_8030798
+
+ thumb_func_start sub_8030834
+sub_8030834: @ 8030834
+ push {r4,lr}
+ ldr r4, _0803088C @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08030884
+ ldr r0, _08030890 @ =gUnknown_03004340
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, _08030894 @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _08030898 @ =gPlayerParty
+ adds r1, r2
+ movs r2, 0x9
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0803089C @ =0x02017810
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, _080308A0 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080308A4 @ =sub_802E434
+ str r1, [r0]
+_08030884:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803088C: .4byte gUnknown_02024A60
+_08030890: .4byte gUnknown_03004340
+_08030894: .4byte gUnknown_02024A6A
+_08030898: .4byte gPlayerParty
+_0803089C: .4byte 0x02017810
+_080308A0: .4byte gUnknown_03004330
+_080308A4: .4byte sub_802E434
+ thumb_func_end sub_8030834
+
+ thumb_func_start sub_80308A8
+sub_80308A8: @ 80308A8
+ push {r4,r5,lr}
+ ldr r5, _08030900 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080308F8
+ ldr r4, _08030904 @ =gUnknown_02023A60
+ ldrb r3, [r5]
+ lsls r3, 9
+ adds r0, r4, 0x1
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ adds r1, r4, 0x2
+ adds r1, r3, r1
+ ldrb r1, [r1]
+ adds r2, r4, 0x3
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ adds r2, r4, 0x4
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ lsls r2, 16
+ orrs r1, r2
+ adds r4, 0x5
+ adds r3, r4
+ ldrb r2, [r3]
+ lsls r2, 24
+ orrs r1, r2
+ bl move_anim_start_t2_for_situation
+ ldr r1, _08030908 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803090C @ =sub_802E434
+ str r1, [r0]
+_080308F8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030900: .4byte gUnknown_02024A60
+_08030904: .4byte gUnknown_02023A60
+_08030908: .4byte gUnknown_03004330
+_0803090C: .4byte sub_802E434
+ thumb_func_end sub_80308A8
+
+ thumb_func_start sub_8030910
+sub_8030910: @ 8030910
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ ldr r0, _0803096C @ =gUnknown_02024A6A
+ mov r8, r0
+ ldr r4, _08030970 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r0, 1
+ add r0, r8
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _08030974 @ =gPlayerParty
+ adds r0, r5
+ movs r1, 0x37
+ bl GetMonData
+ ldr r2, _08030978 @ =gUnknown_02023A60
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ eors r0, r1
+ mov r1, sp
+ strb r0, [r1]
+ ldrb r0, [r4]
+ lsls r0, 1
+ add r0, r8
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x37
+ mov r2, sp
+ bl SetMonData
+ bl dp01_tbl1_exec_completed
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803096C: .4byte gUnknown_02024A6A
+_08030970: .4byte gUnknown_02024A60
+_08030974: .4byte gPlayerParty
+_08030978: .4byte gUnknown_02023A60
+ thumb_func_end sub_8030910
+
+ thumb_func_start sub_803097C
+sub_803097C: @ 803097C
+ push {lr}
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803097C
+
+ thumb_func_start sub_8030988
+sub_8030988: @ 8030988
+ push {r4,r5,lr}
+ ldr r3, _080309EC @ =gUnknown_02023A60
+ ldr r0, _080309F0 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r2, 9
+ adds r0, r3, 0x1
+ adds r0, r2, r0
+ ldrb r5, [r0]
+ adds r0, r3, 0x2
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r5, r0
+ adds r0, r3, 0x3
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ lsls r0, 16
+ orrs r5, r0
+ adds r0, r3, 0x4
+ adds r0, r2, r0
+ ldrb r4, [r0]
+ lsls r4, 24
+ adds r0, r3, 0x5
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ adds r0, r3, 0x6
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ adds r3, 0x7
+ adds r2, r3
+ orrs r5, r4
+ lsrs r4, r1, 16
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r4, r0
+ bhi _080309F8
+ ldr r0, _080309F4 @ =0x040000d4
+ str r2, [r0]
+ str r5, [r0, 0x4]
+ lsrs r1, 17
+ movs r2, 0x80
+ lsls r2, 24
+ orrs r1, r2
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _08030A24
+ .align 2, 0
+_080309EC: .4byte gUnknown_02023A60
+_080309F0: .4byte gUnknown_02024A60
+_080309F4: .4byte 0x040000d4
+_080309F8:
+ ldr r3, _08030A30 @ =0x040000d4
+ str r2, [r3]
+ str r5, [r3, 0x4]
+ ldr r0, _08030A34 @ =0x80000800
+ str r0, [r3, 0x8]
+ ldr r0, [r3, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ adds r2, r0
+ adds r5, r0
+ ldr r1, _08030A38 @ =0xfffff000
+ adds r4, r1
+ cmp r4, r0
+ bhi _080309F8
+ str r2, [r3]
+ str r5, [r3, 0x4]
+ lsrs r0, r4, 1
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r3, 0x8]
+ ldr r0, [r3, 0x8]
+_08030A24:
+ bl dp01_tbl1_exec_completed
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030A30: .4byte 0x040000d4
+_08030A34: .4byte 0x80000800
+_08030A38: .4byte 0xfffff000
+ thumb_func_end sub_8030988
+
+ thumb_func_start sub_8030A3C
+sub_8030A3C: @ 8030A3C
+ push {lr}
+ ldr r2, _08030A64 @ =gUnknown_02023A60
+ ldr r0, _08030A68 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl PlayBGM
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030A64: .4byte gUnknown_02023A60
+_08030A68: .4byte gUnknown_02024A60
+ thumb_func_end sub_8030A3C
+
+ thumb_func_start sub_8030A6C
+sub_8030A6C: @ 8030A6C
+ push {lr}
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8030A6C
+
+ thumb_func_start sub_8030A78
+sub_8030A78: @ 8030A78
+ push {lr}
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8030A78
+
+ thumb_func_start sub_8030A8C
+sub_8030A8C: @ 8030A8C
+ push {lr}
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl dp01_build_cmdbuf_x22_a_three_bytes
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8030A8C
+
+ thumb_func_start sub_8030AA0
+sub_8030AA0: @ 8030AA0
+ push {lr}
+ movs r0, 0x1
+ movs r1, 0
+ bl dp01_build_cmdbuf_x23_aa_0
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8030AA0
+
+ thumb_func_start sub_8030AB4
+sub_8030AB4: @ 8030AB4
+ push {lr}
+ movs r0, 0x1
+ movs r1, 0
+ bl dp01_build_cmdbuf_x24_aa_0
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8030AB4
+
+ thumb_func_start sub_8030AC8
+sub_8030AC8: @ 8030AC8
+ push {lr}
+ ldr r2, _08030AE0 @ =gUnknown_020238C8
+ ldrb r1, [r2]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030AE0: .4byte gUnknown_020238C8
+ thumb_func_end sub_8030AC8
+
+ thumb_func_start sub_8030AE4
+sub_8030AE4: @ 8030AE4
+ push {lr}
+ ldr r3, _08030B10 @ =gUnknown_020238C8
+ ldr r1, _08030B14 @ =gUnknown_02023A60
+ ldr r0, _08030B18 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x7F
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030B10: .4byte gUnknown_020238C8
+_08030B14: .4byte gUnknown_02023A60
+_08030B18: .4byte gUnknown_02024A60
+ thumb_func_end sub_8030AE4
+
+ thumb_func_start sub_8030B1C
+sub_8030B1C: @ 8030B1C
+ push {lr}
+ ldr r2, _08030B30 @ =gUnknown_020238C8
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030B30: .4byte gUnknown_020238C8
+ thumb_func_end sub_8030B1C
+
+ thumb_func_start sub_8030B34
+sub_8030B34: @ 8030B34
+ push {lr}
+ ldr r3, _08030B58 @ =gUnknown_020238C8
+ ldr r1, [r3]
+ lsls r1, 24
+ lsrs r1, 31
+ movs r0, 0x1
+ eors r1, r0
+ lsls r1, 7
+ ldrb r2, [r3]
+ movs r0, 0x7F
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030B58: .4byte gUnknown_020238C8
+ thumb_func_end sub_8030B34
+
+ thumb_func_start dp01t_29_1_blink
+dp01t_29_1_blink: @ 8030B5C
+ push {r4,lr}
+ ldr r3, _08030B84 @ =gSprites
+ ldr r2, _08030B88 @ =gUnknown_02024BE0
+ ldr r4, _08030B8C @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _08030B90
+ bl dp01_tbl1_exec_completed
+ b _08030BBA
+ .align 2, 0
+_08030B84: .4byte gSprites
+_08030B88: .4byte gUnknown_02024BE0
+_08030B8C: .4byte gUnknown_02024A60
+_08030B90:
+ ldr r1, _08030BC0 @ =gUnknown_02024E6D
+ movs r0, 0x1
+ strb r0, [r1]
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ ldrb r0, [r4]
+ bl sub_8047858
+ ldr r1, _08030BC4 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08030BC8 @ =bx_blink_t1
+ str r1, [r0]
+_08030BBA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030BC0: .4byte gUnknown_02024E6D
+_08030BC4: .4byte gUnknown_03004330
+_08030BC8: .4byte bx_blink_t1
+ thumb_func_end dp01t_29_1_blink
+
+ thumb_func_start sub_8030BCC
+sub_8030BCC: @ 8030BCC
+ push {lr}
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8030BCC
+
+ thumb_func_start sub_8030BD8
+sub_8030BD8: @ 8030BD8
+ push {r4,lr}
+ ldr r4, _08030C14 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r3, 0x3F
+ cmp r0, 0
+ bne _08030BEC
+ movs r3, 0xC0
+_08030BEC:
+ ldr r2, _08030C18 @ =gUnknown_02023A60
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ lsls r1, r3, 24
+ asrs r1, 24
+ bl PlaySE12WithPanning
+ bl dp01_tbl1_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030C14: .4byte gUnknown_02024A60
+_08030C18: .4byte gUnknown_02023A60
+ thumb_func_end sub_8030BD8
+
+ thumb_func_start sub_8030C1C
+sub_8030C1C: @ 8030C1C
+ push {lr}
+ ldr r2, _08030C44 @ =gUnknown_02023A60
+ ldr r0, _08030C48 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl PlayFanfare
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030C44: .4byte gUnknown_02023A60
+_08030C48: .4byte gUnknown_02024A60
+ thumb_func_end sub_8030C1C
+
+ thumb_func_start sub_8030C4C
+sub_8030C4C: @ 8030C4C
+ push {lr}
+ ldr r1, _08030C80 @ =gUnknown_02024A6A
+ ldr r0, _08030C84 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08030C88 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x19
+ negs r1, r1
+ movs r2, 0x5
+ bl PlayCry3
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030C80: .4byte gUnknown_02024A6A
+_08030C84: .4byte gUnknown_02024A60
+_08030C88: .4byte gPlayerParty
+ thumb_func_end sub_8030C4C
+
+ thumb_func_start dp01t_2E_1_battle_intro
+dp01t_2E_1_battle_intro: @ 8030C8C
+ push {lr}
+ ldr r1, _08030CB4 @ =gUnknown_02023A60
+ ldr r0, _08030CB8 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80E43C0
+ ldr r2, _08030CBC @ =gUnknown_02024DE8
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030CB4: .4byte gUnknown_02023A60
+_08030CB8: .4byte gUnknown_02024A60
+_08030CBC: .4byte gUnknown_02024DE8
+ thumb_func_end dp01t_2E_1_battle_intro
+
+ thumb_func_start sub_8030CC0
+sub_8030CC0: @ 8030CC0
+ push {r4-r7,lr}
+ ldr r6, _08030DF8 @ =gUnknown_02024BE0
+ ldr r7, _08030DFC @ =gUnknown_02024A60
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _08030E00 @ =gSprites
+ adds r0, r5
+ bl oamt_add_pos2_onto_pos1
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x32
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08030E04 @ =0x0000ffd8
+ strh r1, [r0, 0x32]
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _08030E08 @ =sub_8078B34
+ str r1, [r0]
+ ldrb r2, [r7]
+ adds r0, r2, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x38]
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08030E0C @ =sub_8030E38
+ bl oamt_set_x3A_32
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, _08030E10 @ =0x0000d6f8
+ bl AllocSpritePalette
+ adds r4, r0, 0
+ lsls r4, 24
+ ldr r1, _08030E14 @ =gTrainerBackPicPaletteTable
+ ldr r0, _08030E18 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0]
+ lsrs r4, 20
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r4, r2
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r4
+ strb r0, [r1, 0x5]
+ ldr r0, _08030E1C @ =task05_08033660
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08030E20 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ ldrb r0, [r7]
+ strh r0, [r1, 0x8]
+ ldrb r3, [r7]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r2, _08030E24 @ =0x02017810
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08030DDC
+ ldr r0, _08030E28 @ =gUnknown_02024E68
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ ldr r1, _08030E2C @ =sub_8044CA0
+ str r1, [r0]
+_08030DDC:
+ adds r2, 0x30
+ ldrb r0, [r2, 0x9]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _08030E30 @ =gUnknown_03004330
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08030E34 @ =nullsub_91
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030DF8: .4byte gUnknown_02024BE0
+_08030DFC: .4byte gUnknown_02024A60
+_08030E00: .4byte gSprites
+_08030E04: .4byte 0x0000ffd8
+_08030E08: .4byte sub_8078B34
+_08030E0C: .4byte sub_8030E38
+_08030E10: .4byte 0x0000d6f8
+_08030E14: .4byte gTrainerBackPicPaletteTable
+_08030E18: .4byte gSaveBlock2
+_08030E1C: .4byte task05_08033660
+_08030E20: .4byte gTasks
+_08030E24: .4byte 0x02017810
+_08030E28: .4byte gUnknown_02024E68
+_08030E2C: .4byte sub_8044CA0
+_08030E30: .4byte gUnknown_03004330
+_08030E34: .4byte nullsub_91
+ thumb_func_end sub_8030CC0
+
+ thumb_func_start sub_8030E38
+sub_8030E38: @ 8030E38
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r4, [r5, 0x38]
+ lsls r4, 24
+ lsrs r4, 24
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r5, 0x5]
+ lsrs r0, 4
+ bl GetSpritePaletteTagByPaletteNum
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpritePaletteByTag
+ adds r0, r5, 0
+ bl DestroySprite
+ ldr r1, _08030E90 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08030E94 @ =gPlayerParty
+ adds r0, r1
+ adds r1, r4, 0
+ bl sub_80318FC
+ ldr r0, _08030E98 @ =gUnknown_02024BE0
+ adds r4, r0
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08030E9C @ =gSprites
+ adds r0, r1
+ movs r1, 0
+ bl StartSpriteAnim
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030E90: .4byte gUnknown_02024A6A
+_08030E94: .4byte gPlayerParty
+_08030E98: .4byte gUnknown_02024BE0
+_08030E9C: .4byte gSprites
+ thumb_func_end sub_8030E38
+
+ thumb_func_start task05_08033660
+task05_08033660: @ 8030EA0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _08030EC8 @ =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x1E
+ bgt _08030ECC
+ adds r0, r2, 0x1
+ strh r0, [r1, 0xA]
+ b _08030F88
+ .align 2, 0
+_08030EC8: .4byte gTasks
+_08030ECC:
+ ldr r7, _08030F0C @ =gUnknown_02024A60
+ ldrb r0, [r7]
+ mov r9, r0
+ ldrh r0, [r1, 0x8]
+ strb r0, [r7]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08030EEC
+ ldr r0, _08030F10 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08030F1C
+_08030EEC:
+ ldr r0, _08030F14 @ =gUnknown_02023A60
+ ldrb r1, [r7]
+ lsls r2, r1, 9
+ adds r0, 0x1
+ adds r2, r0
+ ldr r0, _08030F18 @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ strb r0, [r2]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_802F934
+ b _08030F70
+ .align 2, 0
+_08030F0C: .4byte gUnknown_02024A60
+_08030F10: .4byte gUnknown_020239F8
+_08030F14: .4byte gUnknown_02023A60
+_08030F18: .4byte gUnknown_02024A6A
+_08030F1C:
+ ldr r4, _08030F94 @ =gUnknown_02023A60
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r4, 0x1
+ adds r1, r4
+ ldr r5, _08030F98 @ =gUnknown_02024A6A
+ lsls r0, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_802F934
+ ldrb r0, [r7]
+ movs r6, 0x2
+ eors r0, r6
+ strb r0, [r7]
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r1, r4
+ lsls r0, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r1, [r7]
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _08030F9C @ =gPlayerParty
+ adds r0, r2
+ bl sub_80318FC
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_802F934
+ ldrb r0, [r7]
+ eors r0, r6
+ strb r0, [r7]
+_08030F70:
+ ldr r1, _08030FA0 @ =gUnknown_03004330
+ ldr r2, _08030FA4 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08030FA8 @ =sub_802D500
+ str r1, [r0]
+ mov r3, r9
+ strb r3, [r2]
+ mov r0, r8
+ bl DestroyTask
+_08030F88:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030F94: .4byte gUnknown_02023A60
+_08030F98: .4byte gUnknown_02024A6A
+_08030F9C: .4byte gPlayerParty
+_08030FA0: .4byte gUnknown_03004330
+_08030FA4: .4byte gUnknown_02024A60
+_08030FA8: .4byte sub_802D500
+ thumb_func_end task05_08033660
+
+ thumb_func_start sub_8030FAC
+sub_8030FAC: @ 8030FAC
+ push {r4-r6,lr}
+ ldr r1, _08030FD4 @ =gUnknown_02023A60
+ ldr r0, _08030FD8 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08030FDC
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08030FDC
+ bl dp01_tbl1_exec_completed
+ b _08031044
+ .align 2, 0
+_08030FD4: .4byte gUnknown_02023A60
+_08030FD8: .4byte gUnknown_02024A60
+_08030FDC:
+ ldr r5, _0803104C @ =gUnknown_02024A60
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r6, _08031050 @ =0x02017810
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r0, [r5]
+ lsls r3, r0, 9
+ ldr r4, _08031054 @ =gUnknown_02023A64
+ adds r1, r3, r4
+ subs r2, r4, 0x3
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ subs r4, 0x2
+ adds r3, r4
+ ldrb r3, [r3]
+ bl sub_8044804
+ ldr r2, _08031058 @ =gUnknown_02024E68
+ ldrb r1, [r5]
+ adds r1, r2
+ movs r2, 0
+ strb r0, [r1]
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strb r2, [r0, 0x5]
+ ldrb r1, [r5]
+ lsls r0, r1, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08031038
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x5D
+ strb r1, [r0, 0x5]
+_08031038:
+ ldr r0, _0803105C @ =gUnknown_03004330
+ ldrb r1, [r5]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08031060 @ =sub_8031064
+ str r0, [r1]
+_08031044:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803104C: .4byte gUnknown_02024A60
+_08031050: .4byte 0x02017810
+_08031054: .4byte gUnknown_02023A64
+_08031058: .4byte gUnknown_02024E68
+_0803105C: .4byte gUnknown_03004330
+_08031060: .4byte sub_8031064
+ thumb_func_end sub_8030FAC
+
+ thumb_func_start sub_8031064
+sub_8031064: @ 8031064
+ push {r4,lr}
+ ldr r4, _0803109C @ =gUnknown_02024A60
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _080310A0 @ =0x02017810
+ adds r0, r3
+ ldrb r1, [r0, 0x5]
+ adds r2, r1, 0x1
+ strb r2, [r0, 0x5]
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x5C
+ bls _08031094
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ bl dp01_tbl1_exec_completed
+_08031094:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803109C: .4byte gUnknown_02024A60
+_080310A0: .4byte 0x02017810
+ thumb_func_end sub_8031064
+
+ thumb_func_start sub_80310A4
+sub_80310A4: @ 80310A4
+ push {lr}
+ ldr r0, _080310DC @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r1, _080310E0 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080310D2
+ ldr r2, _080310E4 @ =gTasks
+ ldr r0, _080310E8 @ =gUnknown_02024E68
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080310EC @ =sub_8044CA0
+ str r1, [r0]
+_080310D2:
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080310DC: .4byte gUnknown_02024A60
+_080310E0: .4byte 0x02017810
+_080310E4: .4byte gTasks
+_080310E8: .4byte gUnknown_02024E68
+_080310EC: .4byte sub_8044CA0
+ thumb_func_end sub_80310A4
+
+ thumb_func_start sub_80310F0
+sub_80310F0: @ 80310F0
+ push {r4,lr}
+ ldr r4, _08031110 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl dp11b_obj_free
+ ldrb r0, [r4]
+ movs r1, 0
+ bl dp11b_obj_free
+ bl dp01_tbl1_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031110: .4byte gUnknown_02024A60
+ thumb_func_end sub_80310F0
+
+ thumb_func_start dp01t_33_1_enemy_move
+dp01t_33_1_enemy_move: @ 8031114
+ push {r4,lr}
+ ldr r4, _08031164 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl sub_8078874
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803115A
+ ldr r3, _08031168 @ =gSprites
+ ldr r0, _0803116C @ =gUnknown_02024BE0
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldr r0, _08031170 @ =gUnknown_02023A60
+ lsls r1, 9
+ adds r0, 0x1
+ adds r1, r0
+ adds r2, 0x3E
+ movs r0, 0x1
+ ldrb r1, [r1]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4]
+ bl sub_8031F88
+_0803115A:
+ bl dp01_tbl1_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031164: .4byte gUnknown_02024A60
+_08031168: .4byte gSprites
+_0803116C: .4byte gUnknown_02024BE0
+_08031170: .4byte gUnknown_02023A60
+ thumb_func_end dp01t_33_1_enemy_move
+
+ thumb_func_start bx_exec_buffer_A_ch0_tbl1
+bx_exec_buffer_A_ch0_tbl1: @ 8031174
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r6, _080311B8 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080311CC
+ ldr r5, _080311BC @ =gUnknown_02023A60
+ ldrb r2, [r6]
+ lsls r1, r2, 9
+ adds r0, r5, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r0, r5, 0x2
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r5, 0x3
+ adds r1, r5
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r4, r0
+ str r4, [sp]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ bl move_anim_start_t3
+ lsls r0, 24
+ cmp r0, 0
+ beq _080311C0
+ bl dp01_tbl1_exec_completed
+ b _080311CC
+ .align 2, 0
+_080311B8: .4byte gUnknown_02024A60
+_080311BC: .4byte gUnknown_02023A60
+_080311C0:
+ ldr r0, _080311D4 @ =gUnknown_03004330
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _080311D8 @ =sub_802E460
+ str r0, [r1]
+_080311CC:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080311D4: .4byte gUnknown_03004330
+_080311D8: .4byte sub_802E460
+ thumb_func_end bx_exec_buffer_A_ch0_tbl1
+
+ thumb_func_start dp01t_35_1_link_standby_message_and_free_vram
+dp01t_35_1_link_standby_message_and_free_vram: @ 80311DC
+ push {r4,lr}
+ ldr r1, _080311FC @ =gUnknown_02023A60
+ ldr r0, _08031200 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0803120E
+ cmp r0, 0x1
+ bgt _08031204
+ cmp r0, 0
+ beq _0803120A
+ b _0803122C
+ .align 2, 0
+_080311FC: .4byte gUnknown_02023A60
+_08031200: .4byte gUnknown_02024A60
+_08031204:
+ cmp r0, 0x2
+ beq _08031228
+ b _0803122C
+_0803120A:
+ bl b_link_standby_message
+_0803120E:
+ ldr r4, _08031224 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl dp11b_obj_free
+ ldrb r0, [r4]
+ movs r1, 0
+ bl dp11b_obj_free
+ b _0803122C
+ .align 2, 0
+_08031224: .4byte gUnknown_02024A60
+_08031228:
+ bl b_link_standby_message
+_0803122C:
+ bl dp01_tbl1_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_35_1_link_standby_message_and_free_vram
+
+ thumb_func_start sub_8031238
+sub_8031238: @ 8031238
+ push {r4,lr}
+ ldr r1, _08031258 @ =gUnknown_02023A60
+ ldr r4, _0803125C @ =gUnknown_02024A60
+ ldrb r3, [r4]
+ lsls r0, r3, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r2, [r0]
+ cmp r2, 0x1
+ beq _08031280
+ cmp r2, 0x1
+ bgt _08031260
+ cmp r2, 0
+ beq _08031266
+ b _08031290
+ .align 2, 0
+_08031258: .4byte gUnknown_02023A60
+_0803125C: .4byte gUnknown_02024A60
+_08031260:
+ cmp r2, 0x2
+ beq _08031288
+ b _08031290
+_08031266:
+ ldr r0, _08031278 @ =gUnknown_02024E60
+ adds r0, r3, r0
+ strb r2, [r0]
+ ldr r1, _0803127C @ =gUnknown_02024E64
+ ldrb r0, [r4]
+ adds r0, r1
+ strb r2, [r0]
+ b _08031290
+ .align 2, 0
+_08031278: .4byte gUnknown_02024E60
+_0803127C: .4byte gUnknown_02024E64
+_08031280:
+ ldr r0, _08031284 @ =gUnknown_02024E60
+ b _0803128A
+ .align 2, 0
+_08031284: .4byte gUnknown_02024E60
+_08031288:
+ ldr r0, _0803129C @ =gUnknown_02024E64
+_0803128A:
+ adds r0, r3, r0
+ movs r1, 0
+ strb r1, [r0]
+_08031290:
+ bl dp01_tbl1_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803129C: .4byte gUnknown_02024E64
+ thumb_func_end sub_8031238
+
+ thumb_func_start sub_80312A0
+sub_80312A0: @ 80312A0
+ push {r4,lr}
+ ldr r2, _080312D8 @ =gUnknown_02024D26
+ ldr r1, _080312DC @ =gUnknown_02023A60
+ ldr r4, _080312E0 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ movs r0, 0x5
+ bl FadeOutMapMusic
+ movs r0, 0x3
+ bl BeginFastPaletteFade
+ bl dp01_tbl1_exec_completed
+ ldr r1, _080312E4 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080312E8 @ =sub_802D18C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080312D8: .4byte gUnknown_02024D26
+_080312DC: .4byte gUnknown_02023A60
+_080312E0: .4byte gUnknown_02024A60
+_080312E4: .4byte gUnknown_03004330
+_080312E8: .4byte sub_802D18C
+ thumb_func_end sub_80312A0
+
+ thumb_func_start nullsub_43
+nullsub_43: @ 80312EC
+ bx lr
+ thumb_func_end nullsub_43
+
+ thumb_func_start sub_80312F0
+sub_80312F0: @ 80312F0
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r7, _08031334 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ adds r3, r5, r7
+ adds r0, r3, 0
+ adds r0, 0x3F
+ ldrb r4, [r0]
+ lsls r0, r4, 26
+ cmp r0, 0
+ bge _08031354
+ adds r0, r3, 0
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _08031354
+ adds r1, r3, 0
+ adds r1, 0x2C
+ ldrb r2, [r1]
+ lsls r0, r2, 25
+ cmp r0, 0
+ bge _08031338
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ b _08031354
+ .align 2, 0
+_08031334: .4byte gSprites
+_08031338:
+ lsls r0, r4, 27
+ cmp r0, 0
+ bge _08031354
+ adds r0, r7, 0
+ adds r0, 0x1C
+ adds r0, r5, r0
+ ldr r1, _0803135C @ =sub_80105DC
+ str r1, [r0]
+ adds r0, r3, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ ldr r0, _08031360 @ =SpriteCallbackDummy
+ str r0, [r6, 0x1C]
+_08031354:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803135C: .4byte sub_80105DC
+_08031360: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80312F0
+
+ thumb_func_start unref_sub_8031364
+unref_sub_8031364: @ 8031364
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ adds r3, r4, 0
+ adds r3, 0x2C
+ ldrb r0, [r3]
+ movs r2, 0x40
+ orrs r0, r2
+ strb r0, [r3]
+ ldr r0, _08031388 @ =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+ cmp r1, 0
+ bne _0803138C
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _08031394
+ .align 2, 0
+_08031388: .4byte SpriteCallbackDummy
+_0803138C:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_08031394:
+ adds r0, r4, 0
+ bl AnimateSprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_8031364
+
+ thumb_func_start sub_80313A0
+sub_80313A0: @ 80313A0
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080313C8 @ =gUnknown_02024DE8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080313C2
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080313C2
+ ldr r0, _080313CC @ =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+_080313C2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080313C8: .4byte gUnknown_02024DE8
+_080313CC: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80313A0
+
+ thumb_func_start move_anim_start_t2_for_situation
+move_anim_start_t2_for_situation: @ 80313D0
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ ldr r5, _08031400 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ ldr r6, _08031404 @ =0x02017810
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r3, 0x10
+ orrs r2, r3
+ strb r2, [r1]
+ cmp r0, 0
+ bne _0803144C
+ cmp r4, 0x20
+ bne _08031408
+ ldrb r0, [r5]
+ movs r1, 0x6
+ bl move_anim_start_t2
+ b _080314C2
+ .align 2, 0
+_08031400: .4byte gUnknown_02024A60
+_08031404: .4byte 0x02017810
+_08031408:
+ cmp r4, 0x8
+ beq _08031414
+ movs r0, 0x80
+ ands r0, r4
+ cmp r0, 0
+ beq _0803141E
+_08031414:
+ ldrb r0, [r5]
+ movs r1, 0
+ bl move_anim_start_t2
+ b _080314C2
+_0803141E:
+ cmp r4, 0x10
+ bne _0803142C
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl move_anim_start_t2
+ b _080314C2
+_0803142C:
+ movs r0, 0x7
+ ands r0, r4
+ cmp r0, 0
+ beq _0803143E
+ ldrb r0, [r5]
+ movs r1, 0x4
+ bl move_anim_start_t2
+ b _080314C2
+_0803143E:
+ cmp r4, 0x40
+ bne _080314AE
+ ldrb r0, [r5]
+ movs r1, 0x5
+ bl move_anim_start_t2
+ b _080314C2
+_0803144C:
+ movs r0, 0xF0
+ lsls r0, 12
+ ands r0, r4
+ cmp r0, 0
+ beq _08031460
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl move_anim_start_t2
+ b _080314C2
+_08031460:
+ movs r0, 0x7
+ ands r0, r4
+ cmp r0, 0
+ beq _08031472
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl move_anim_start_t2
+ b _080314C2
+_08031472:
+ movs r0, 0x80
+ lsls r0, 21
+ ands r0, r4
+ cmp r0, 0
+ beq _08031486
+ ldrb r0, [r5]
+ movs r1, 0x7
+ bl move_anim_start_t2
+ b _080314C2
+_08031486:
+ movs r0, 0x80
+ lsls r0, 20
+ ands r0, r4
+ cmp r0, 0
+ beq _0803149A
+ ldrb r0, [r5]
+ movs r1, 0x8
+ bl move_anim_start_t2
+ b _080314C2
+_0803149A:
+ movs r0, 0xE0
+ lsls r0, 8
+ ands r0, r4
+ cmp r0, 0
+ beq _080314AE
+ ldrb r0, [r5]
+ movs r1, 0x9
+ bl move_anim_start_t2
+ b _080314C2
+_080314AE:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+_080314C2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end move_anim_start_t2_for_situation
+
+ thumb_func_start move_anim_start_t3
+move_anim_start_t3: @ 80314C8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, [sp, 0x20]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ lsls r3, 24
+ lsrs r5, r3, 24
+ lsls r4, 16
+ lsrs r7, r4, 16
+ cmp r5, 0
+ bne _0803150C
+ movs r0, 0x80
+ ands r0, r7
+ cmp r0, 0
+ beq _0803150C
+ ldr r0, _08031508 @ =gUnknown_02024E84
+ adds r0, r6, r0
+ movs r2, 0x7F
+ adds r1, r7, 0
+ ands r1, r2
+ strb r1, [r0]
+ movs r0, 0x1
+ b _080315C2
+ .align 2, 0
+_08031508: .4byte gUnknown_02024E84
+_0803150C:
+ lsls r1, r6, 2
+ ldr r0, _08031530 @ =0x02017800
+ adds r4, r1, r0
+ ldrb r1, [r4]
+ movs r0, 0x4
+ mov r8, r0
+ ands r0, r1
+ cmp r0, 0
+ beq _08031578
+ adds r0, r5, 0
+ bl sub_803163C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08031534
+ movs r0, 0x1
+ b _080315C2
+ .align 2, 0
+_08031530: .4byte 0x02017800
+_08031534:
+ ldrb r1, [r4]
+ mov r0, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _08031578
+ cmp r5, 0x2
+ bne _08031578
+ ldr r1, _08031570 @ =gSprites
+ ldr r0, _08031574 @ =gUnknown_02024BE0
+ adds r0, r6, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _08031578
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl refresh_graphics_maybe
+ adds r0, r6, 0
+ bl sub_80324E0
+ movs r0, 0x1
+ b _080315C2
+ .align 2, 0
+_08031570: .4byte gSprites
+_08031574: .4byte gUnknown_02024BE0
+_08031578:
+ ldr r0, _080315D0 @ =gUnknown_0202F7C8
+ mov r1, r9
+ strb r1, [r0]
+ ldr r0, _080315D4 @ =gUnknown_0202F7C9
+ mov r1, r10
+ strb r1, [r0]
+ ldr r4, _080315D8 @ =0x02017840
+ strh r7, [r4]
+ ldr r0, _080315DC @ =gBattleAnims_Unknown1
+ adds r1, r5, 0
+ movs r2, 0
+ bl move_something
+ ldr r0, _080315E0 @ =sub_80315E8
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080315E4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r6, [r1, 0x8]
+ movs r0, 0x8
+ ldrsh r1, [r1, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ subs r4, 0x30
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0
+_080315C2:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080315D0: .4byte gUnknown_0202F7C8
+_080315D4: .4byte gUnknown_0202F7C9
+_080315D8: .4byte 0x02017840
+_080315DC: .4byte gBattleAnims_Unknown1
+_080315E0: .4byte sub_80315E8
+_080315E4: .4byte gTasks
+ thumb_func_end move_anim_start_t3
+
+ thumb_func_start sub_80315E8
+sub_80315E8: @ 80315E8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0803162C @ =gUnknown_0202F7AC
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _08031630 @ =gUnknown_0202F7B1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08031626
+ ldr r1, _08031634 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08031638 @ =0x02017810
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+_08031626:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803162C: .4byte gUnknown_0202F7AC
+_08031630: .4byte gUnknown_0202F7B1
+_08031634: .4byte gTasks
+_08031638: .4byte 0x02017810
+ thumb_func_end sub_80315E8
+
+ thumb_func_start sub_803163C
+sub_803163C: @ 803163C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xD
+ bgt _08031650
+ cmp r0, 0xA
+ bge _08031654
+ cmp r0, 0x2
+ beq _08031654
+ b _08031658
+_08031650:
+ cmp r0, 0x11
+ bne _08031658
+_08031654:
+ movs r0, 0x1
+ b _0803165A
+_08031658:
+ movs r0, 0
+_0803165A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803163C
+
+ thumb_func_start move_anim_start_t4
+move_anim_start_t4: @ 8031660
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, _080316B4 @ =gUnknown_0202F7C8
+ strb r1, [r0]
+ ldr r0, _080316B8 @ =gUnknown_0202F7C9
+ strb r2, [r0]
+ ldr r0, _080316BC @ =gBattleAnims_Unknown2
+ adds r1, r3, 0
+ movs r2, 0
+ bl move_something
+ ldr r0, _080316C0 @ =sub_80316CC
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080316C4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ movs r0, 0x8
+ ldrsh r1, [r1, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080316C8 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080316B4: .4byte gUnknown_0202F7C8
+_080316B8: .4byte gUnknown_0202F7C9
+_080316BC: .4byte gBattleAnims_Unknown2
+_080316C0: .4byte sub_80316CC
+_080316C4: .4byte gTasks
+_080316C8: .4byte 0x02017810
+ thumb_func_end move_anim_start_t4
+
+ thumb_func_start sub_80316CC
+sub_80316CC: @ 80316CC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08031710 @ =gUnknown_0202F7AC
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _08031714 @ =gUnknown_0202F7B1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0803170A
+ ldr r1, _08031718 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0803171C @ =0x02017810
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+_0803170A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031710: .4byte gUnknown_0202F7AC
+_08031714: .4byte gUnknown_0202F7B1
+_08031718: .4byte gTasks
+_0803171C: .4byte 0x02017810
+ thumb_func_end sub_80316CC
+
+ thumb_func_start sub_8031720
+sub_8031720: @ 8031720
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_8031720
+
+ thumb_func_start mplay_80342A4
+mplay_80342A4: @ 8031724
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r5, 0
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08031764
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 2
+ ldr r2, _0803176C @ =0x02017810
+ adds r1, r2
+ ldrb r0, [r1, 0x8]
+ adds r0, 0x1
+ strb r0, [r1, 0x8]
+ ldr r0, _08031770 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x1D
+ bls _08031768
+ ldr r0, _08031774 @ =gMPlay_SE1
+ bl m4aMPlayStop
+ ldr r0, _08031778 @ =gMPlay_SE2
+ bl m4aMPlayStop
+_08031764:
+ cmp r5, 0
+ beq _0803177C
+_08031768:
+ movs r0, 0x1
+ b _0803178A
+ .align 2, 0
+_0803176C: .4byte 0x02017810
+_08031770: .4byte gUnknown_02024A60
+_08031774: .4byte gMPlay_SE1
+_08031778: .4byte gMPlay_SE2
+_0803177C:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _08031790 @ =0x02017810
+ adds r0, r1
+ strb r5, [r0, 0x8]
+ movs r0, 0
+_0803178A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08031790: .4byte 0x02017810
+ thumb_func_end mplay_80342A4
+
+ thumb_func_start sub_8031794
+sub_8031794: @ 8031794
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ movs r1, 0
+ bl GetMonData
+ str r0, [sp, 0xC]
+ mov r0, r9
+ lsls r1, r0, 2
+ ldr r0, _080317D0 @ =0x02017800
+ adds r2, r1, r0
+ ldrh r0, [r2, 0x2]
+ cmp r0, 0
+ bne _080317D4
+ mov r0, r8
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r7, [sp, 0xC]
+ b _080317DC
+ .align 2, 0
+_080317D0: .4byte 0x02017800
+_080317D4:
+ ldrh r6, [r2, 0x2]
+ ldr r0, _08031838 @ =gUnknown_02024E70
+ adds r0, r1, r0
+ ldr r7, [r0]
+_080317DC:
+ mov r0, r8
+ movs r1, 0x1
+ bl GetMonData
+ mov r10, r0
+ mov r0, r9
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsls r5, r6, 3
+ ldr r1, _0803183C @ =gMonFrontPicTable
+ adds r5, r1
+ ldr r1, _08031840 @ =gMonFrontPicCoords
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08031844 @ =gUnknown_081FAF4C
+ lsrs r0, 22
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ str r7, [sp, 0x8]
+ adds r0, r5, 0
+ bl sub_800D334
+ mov r1, r9
+ lsls r2, r1, 4
+ movs r0, 0x80
+ lsls r0, 1
+ adds r7, r2, r0
+ lsls r1, 2
+ ldr r0, _08031848 @ =0x02017800
+ adds r0, r1, r0
+ ldrh r0, [r0, 0x2]
+ str r1, [sp, 0x10]
+ adds r4, r2, 0
+ cmp r0, 0
+ bne _0803184C
+ mov r0, r8
+ bl pokemon_get_pal
+ b _08031856
+ .align 2, 0
+_08031838: .4byte gUnknown_02024E70
+_0803183C: .4byte gMonFrontPicTable
+_08031840: .4byte gMonFrontPicCoords
+_08031844: .4byte gUnknown_081FAF4C
+_08031848: .4byte 0x02017800
+_0803184C:
+ adds r0, r6, 0
+ mov r1, r10
+ ldr r2, [sp, 0xC]
+ bl species_and_otid_get_pal
+_08031856:
+ adds r5, r0, 0
+ ldr r1, _080318E0 @ =0x02000000
+ mov r8, r1
+ adds r0, r5, 0
+ bl sub_800D238
+ mov r0, r8
+ adds r1, r7, 0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r1, r4, 0
+ adds r1, 0x80
+ mov r0, r8
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080318E4 @ =SPECIES_CASTFORM
+ cmp r6, r0
+ bne _080318A2
+ subs r0, 0x81
+ adds r7, r4, r0
+ movs r4, 0xB2
+ lsls r4, 9
+ add r4, r8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_800D238
+ ldr r0, _080318E8 @ =gUnknown_02024E84
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r0, 5
+ adds r0, r4
+ adds r1, r7, 0
+ movs r2, 0x20
+ bl LoadPalette
+_080318A2:
+ movs r0, 0xBC
+ lsls r0, 9
+ add r0, r8
+ ldr r1, [sp, 0x10]
+ adds r0, r1, r0
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0
+ beq _080318CE
+ ldr r3, _080318EC @ =0x00007fff
+ adds r0, r7, 0
+ movs r1, 0x10
+ movs r2, 0x6
+ bl BlendPalette
+ lsls r1, r7, 1
+ ldr r0, _080318F0 @ =gPlttBufferFaded
+ adds r0, r1, r0
+ ldr r2, _080318F4 @ =gPlttBufferUnfaded
+ adds r1, r2
+ ldr r2, _080318F8 @ =REG_BG0CNT
+ bl CpuSet
+_080318CE:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080318E0: .4byte 0x02000000
+_080318E4: .4byte SPECIES_CASTFORM
+_080318E8: .4byte gUnknown_02024E84
+_080318EC: .4byte 0x00007fff
+_080318F0: .4byte gPlttBufferFaded
+_080318F4: .4byte gPlttBufferUnfaded
+_080318F8: .4byte REG_BG0CNT
+ thumb_func_end sub_8031794
+
+ thumb_func_start sub_80318FC
+sub_80318FC: @ 80318FC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ movs r1, 0
+ bl GetMonData
+ str r0, [sp, 0xC]
+ mov r0, r9
+ lsls r1, r0, 2
+ ldr r0, _08031938 @ =0x02017800
+ adds r2, r1, r0
+ ldrh r0, [r2, 0x2]
+ cmp r0, 0
+ bne _0803193C
+ mov r0, r8
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r7, [sp, 0xC]
+ b _08031944
+ .align 2, 0
+_08031938: .4byte 0x02017800
+_0803193C:
+ ldrh r6, [r2, 0x2]
+ ldr r0, _080319A0 @ =gUnknown_02024E70
+ adds r0, r1, r0
+ ldr r7, [r0]
+_08031944:
+ mov r0, r8
+ movs r1, 0x1
+ bl GetMonData
+ mov r10, r0
+ mov r0, r9
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsls r5, r6, 3
+ ldr r1, _080319A4 @ =gMonBackPicTable
+ adds r5, r1
+ ldr r1, _080319A8 @ =gMonBackPicCoords
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _080319AC @ =gUnknown_081FAF4C
+ lsrs r0, 22
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ str r7, [sp, 0x8]
+ adds r0, r5, 0
+ bl sub_800D334
+ mov r1, r9
+ lsls r2, r1, 4
+ movs r0, 0x80
+ lsls r0, 1
+ adds r7, r2, r0
+ lsls r1, 2
+ ldr r0, _080319B0 @ =0x02017800
+ adds r0, r1, r0
+ ldrh r0, [r0, 0x2]
+ str r1, [sp, 0x10]
+ adds r4, r2, 0
+ cmp r0, 0
+ bne _080319B4
+ mov r0, r8
+ bl pokemon_get_pal
+ b _080319BE
+ .align 2, 0
+_080319A0: .4byte gUnknown_02024E70
+_080319A4: .4byte gMonBackPicTable
+_080319A8: .4byte gMonBackPicCoords
+_080319AC: .4byte gUnknown_081FAF4C
+_080319B0: .4byte 0x02017800
+_080319B4:
+ adds r0, r6, 0
+ mov r1, r10
+ ldr r2, [sp, 0xC]
+ bl species_and_otid_get_pal
+_080319BE:
+ adds r5, r0, 0
+ ldr r1, _08031A48 @ =0x02000000
+ mov r8, r1
+ adds r0, r5, 0
+ bl sub_800D238
+ mov r0, r8
+ adds r1, r7, 0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r1, r4, 0
+ adds r1, 0x80
+ mov r0, r8
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08031A4C @ =SPECIES_CASTFORM
+ cmp r6, r0
+ bne _08031A0A
+ subs r0, 0x81
+ adds r7, r4, r0
+ movs r4, 0xB2
+ lsls r4, 9
+ add r4, r8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_800D238
+ ldr r0, _08031A50 @ =gUnknown_02024E84
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r0, 5
+ adds r0, r4
+ adds r1, r7, 0
+ movs r2, 0x20
+ bl LoadPalette
+_08031A0A:
+ movs r0, 0xBC
+ lsls r0, 9
+ add r0, r8
+ ldr r1, [sp, 0x10]
+ adds r0, r1, r0
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0
+ beq _08031A36
+ ldr r3, _08031A54 @ =0x00007fff
+ adds r0, r7, 0
+ movs r1, 0x10
+ movs r2, 0x6
+ bl BlendPalette
+ lsls r1, r7, 1
+ ldr r0, _08031A58 @ =gPlttBufferFaded
+ adds r0, r1, r0
+ ldr r2, _08031A5C @ =gPlttBufferUnfaded
+ adds r1, r2
+ ldr r2, _08031A60 @ =REG_BG0CNT
+ bl CpuSet
+_08031A36:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031A48: .4byte 0x02000000
+_08031A4C: .4byte SPECIES_CASTFORM
+_08031A50: .4byte gUnknown_02024E84
+_08031A54: .4byte 0x00007fff
+_08031A58: .4byte gPlttBufferFaded
+_08031A5C: .4byte gPlttBufferUnfaded
+_08031A60: .4byte REG_BG0CNT
+ thumb_func_end sub_80318FC
+
+ thumb_func_start unref_sub_8031A64
+unref_sub_8031A64: @ 8031A64
+ bx lr
+ thumb_func_end unref_sub_8031A64
+
+ thumb_func_start nullsub_9
+nullsub_9: @ 8031A68
+ bx lr
+ thumb_func_end nullsub_9
+
+ thumb_func_start sub_8031A6C
+sub_8031A6C: @ 8031A6C
+ push {r4-r6,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ adds r0, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsls r6, r4, 3
+ ldr r5, _08031ADC @ =gTrainerFrontPicTable
+ adds r5, r6, r5
+ ldr r1, _08031AE0 @ =gTrainerFrontPicCoords
+ lsls r4, 2
+ adds r4, r1
+ ldrb r1, [r4]
+ ldrb r2, [r4, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08031AE4 @ =gUnknown_081FAF4C
+ lsrs r0, 22
+ adds r0, r4
+ ldr r4, [r0]
+ str r4, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ bl DecompressPicFromTable_2
+ str r4, [sp, 0x8]
+ ldrh r2, [r5, 0x4]
+ ldr r0, _08031AE8 @ =0xffff0000
+ ldr r1, [sp, 0xC]
+ ands r1, r0
+ orrs r1, r2
+ str r1, [sp, 0xC]
+ ldrh r2, [r5, 0x6]
+ lsls r2, 16
+ ldr r0, _08031AEC @ =0x0000ffff
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp, 0xC]
+ add r0, sp, 0x8
+ bl LoadCompressedObjectPic
+ ldr r0, _08031AF0 @ =gTrainerFrontPicPaletteTable
+ adds r6, r0
+ adds r0, r6, 0
+ bl LoadCompressedObjectPalette
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031ADC: .4byte gTrainerFrontPicTable
+_08031AE0: .4byte gTrainerFrontPicCoords
+_08031AE4: .4byte gUnknown_081FAF4C
+_08031AE8: .4byte 0xffff0000
+_08031AEC: .4byte 0x0000ffff
+_08031AF0: .4byte gTrainerFrontPicPaletteTable
+ thumb_func_end sub_8031A6C
+
+ thumb_func_start sub_8031AF4
+sub_8031AF4: @ 8031AF4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsls r1, r4, 3
+ mov r8, r1
+ ldr r6, _08031B60 @ =gTrainerBackPicTable
+ add r6, r8
+ ldr r1, _08031B64 @ =gTrainerBackPicCoords
+ lsls r4, 2
+ adds r4, r1
+ ldrb r1, [r4]
+ ldrb r2, [r4, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08031B68 @ =gUnknown_081FAF4C
+ lsrs r0, 22
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ adds r0, r6, 0
+ bl DecompressPicFromTable_2
+ ldr r0, _08031B6C @ =gTrainerBackPicPaletteTable
+ add r8, r0
+ mov r1, r8
+ ldr r0, [r1]
+ lsls r5, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r5, r1
+ lsrs r5, 16
+ adds r1, r5, 0
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031B60: .4byte gTrainerBackPicTable
+_08031B64: .4byte gTrainerBackPicCoords
+_08031B68: .4byte gUnknown_081FAF4C
+_08031B6C: .4byte gTrainerBackPicPaletteTable
+ thumb_func_end sub_8031AF4
+
+ thumb_func_start nullsub_10
+nullsub_10: @ 8031B70
+ bx lr
+ thumb_func_end nullsub_10
+
+ thumb_func_start sub_8031B74
+sub_8031B74: @ 8031B74
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ ldr r0, _08031B98 @ =gTrainerFrontPicPaletteTable
+ lsrs r4, 13
+ adds r0, r4, r0
+ ldrh r0, [r0, 0x4]
+ bl FreeSpritePaletteByTag
+ ldr r0, _08031B9C @ =gTrainerFrontPicTable
+ adds r4, r0
+ ldrh r0, [r4, 0x6]
+ bl FreeSpriteTilesByTag
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031B98: .4byte gTrainerFrontPicPaletteTable
+_08031B9C: .4byte gTrainerFrontPicTable
+ thumb_func_end sub_8031B74
+
+ thumb_func_start unref_sub_8031BA0
+unref_sub_8031BA0: @ 8031BA0
+ push {r4-r7,lr}
+ ldr r4, _08031BCC @ =gUnknown_0820A4D4
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ adds r4, 0x8
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _08031BD8
+ ldr r0, _08031BD0 @ =gUnknown_0820A47C
+ bl LoadCompressedObjectPic
+ ldr r0, _08031BD4 @ =gUnknown_0820A484
+ bl LoadCompressedObjectPic
+ movs r5, 0x2
+ b _08031BFA
+ .align 2, 0
+_08031BCC: .4byte gUnknown_0820A4D4
+_08031BD0: .4byte gUnknown_0820A47C
+_08031BD4: .4byte gUnknown_0820A484
+_08031BD8:
+ ldr r4, _08031C20 @ =gUnknown_0820A48C
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ adds r4, 0x8
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ ldr r4, _08031C24 @ =gUnknown_0820A49C
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ adds r4, 0x8
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ movs r5, 0x4
+_08031BFA:
+ movs r4, 0
+ cmp r4, r5
+ bcs _08031C1A
+ ldr r7, _08031C28 @ =gUnknown_02024A72
+ ldr r6, _08031C2C @ =gUnknown_0820A4B4
+_08031C04:
+ adds r0, r4, r7
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r6
+ bl LoadCompressedObjectPic
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _08031C04
+_08031C1A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031C20: .4byte gUnknown_0820A48C
+_08031C24: .4byte gUnknown_0820A49C
+_08031C28: .4byte gUnknown_02024A72
+_08031C2C: .4byte gUnknown_0820A4B4
+ thumb_func_end unref_sub_8031BA0
+
+ thumb_func_start sub_8031C30
+sub_8031C30: @ 8031C30
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ movs r6, 0
+ cmp r4, 0
+ bne _08031C40
+ b _08031D52
+_08031C40:
+ cmp r4, 0x1
+ bne _08031C5C
+ ldr r4, _08031C58 @ =gUnknown_0820A4D4
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ adds r4, 0x8
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ b _08031D52
+ .align 2, 0
+_08031C58: .4byte gUnknown_0820A4D4
+_08031C5C:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _08031CC4
+ cmp r4, 0x2
+ bne _08031C94
+ ldr r0, _08031C80 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08031C88
+ ldr r0, _08031C84 @ =gUnknown_0820A4AC
+ bl LoadCompressedObjectPic
+ b _08031D52
+ .align 2, 0
+_08031C80: .4byte gUnknown_020239F8
+_08031C84: .4byte gUnknown_0820A4AC
+_08031C88:
+ ldr r0, _08031C90 @ =gUnknown_0820A47C
+ bl LoadCompressedObjectPic
+ b _08031D52
+ .align 2, 0
+_08031C90: .4byte gUnknown_0820A47C
+_08031C94:
+ cmp r4, 0x3
+ bne _08031CA4
+ ldr r0, _08031CA0 @ =gUnknown_0820A484
+ bl LoadCompressedObjectPic
+ b _08031D52
+ .align 2, 0
+_08031CA0: .4byte gUnknown_0820A484
+_08031CA4:
+ cmp r4, 0x4
+ bne _08031CB4
+ ldr r0, _08031CB0 @ =gUnknown_02024A72
+ ldrb r0, [r0]
+ b _08031D3C
+ .align 2, 0
+_08031CB0: .4byte gUnknown_02024A72
+_08031CB4:
+ cmp r4, 0x5
+ bne _08031D50
+ ldr r0, _08031CC0 @ =gUnknown_02024A72
+ ldrb r0, [r0, 0x1]
+ b _08031D3C
+ .align 2, 0
+_08031CC0: .4byte gUnknown_02024A72
+_08031CC4:
+ cmp r4, 0x2
+ bne _08031CD4
+ ldr r0, _08031CD0 @ =gUnknown_0820A48C
+ bl LoadCompressedObjectPic
+ b _08031D52
+ .align 2, 0
+_08031CD0: .4byte gUnknown_0820A48C
+_08031CD4:
+ cmp r4, 0x3
+ bne _08031CE4
+ ldr r0, _08031CE0 @ =gUnknown_0820A494
+ bl LoadCompressedObjectPic
+ b _08031D52
+ .align 2, 0
+_08031CE0: .4byte gUnknown_0820A494
+_08031CE4:
+ cmp r4, 0x4
+ bne _08031CF4
+ ldr r0, _08031CF0 @ =gUnknown_0820A49C
+ bl LoadCompressedObjectPic
+ b _08031D52
+ .align 2, 0
+_08031CF0: .4byte gUnknown_0820A49C
+_08031CF4:
+ cmp r4, 0x5
+ bne _08031D04
+ ldr r0, _08031D00 @ =gUnknown_0820A4A4
+ bl LoadCompressedObjectPic
+ b _08031D52
+ .align 2, 0
+_08031D00: .4byte gUnknown_0820A4A4
+_08031D04:
+ cmp r4, 0x6
+ bne _08031D14
+ ldr r0, _08031D10 @ =gUnknown_02024A72
+ ldrb r0, [r0]
+ b _08031D3C
+ .align 2, 0
+_08031D10: .4byte gUnknown_02024A72
+_08031D14:
+ cmp r4, 0x7
+ bne _08031D24
+ ldr r0, _08031D20 @ =gUnknown_02024A72
+ ldrb r0, [r0, 0x1]
+ b _08031D3C
+ .align 2, 0
+_08031D20: .4byte gUnknown_02024A72
+_08031D24:
+ cmp r4, 0x8
+ bne _08031D34
+ ldr r0, _08031D30 @ =gUnknown_02024A72
+ ldrb r0, [r0, 0x2]
+ b _08031D3C
+ .align 2, 0
+_08031D30: .4byte gUnknown_02024A72
+_08031D34:
+ cmp r5, 0x9
+ bne _08031D50
+ ldr r0, _08031D48 @ =gUnknown_02024A72
+ ldrb r0, [r0, 0x3]
+_08031D3C:
+ lsls r0, 3
+ ldr r1, _08031D4C @ =gUnknown_0820A4B4
+ adds r0, r1
+ bl LoadCompressedObjectPic
+ b _08031D52
+ .align 2, 0
+_08031D48: .4byte gUnknown_02024A72
+_08031D4C: .4byte gUnknown_0820A4B4
+_08031D50:
+ movs r6, 0x1
+_08031D52:
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8031C30
+
+ thumb_func_start load_gfxc_health_bar
+load_gfxc_health_bar: @ 8031D5C
+ push {lr}
+ ldr r0, _08031D6C @ =gUnknown_08D09C48
+ movs r1, 0x80
+ lsls r1, 18
+ bl sub_800D238
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031D6C: .4byte gUnknown_08D09C48
+ thumb_func_end load_gfxc_health_bar
+
+ thumb_func_start battle_load_something
+battle_load_something: @ 8031D70
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r6, 0
+ ldrb r0, [r5]
+ cmp r0, 0x6
+ bls _08031D80
+ b _08031EDE
+_08031D80:
+ lsls r0, 2
+ ldr r1, _08031D8C @ =_08031D90
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08031D8C: .4byte _08031D90
+ .align 2, 0
+_08031D90:
+ .4byte _08031DAC
+ .4byte _08031DB2
+ .4byte _08031EBC
+ .4byte _08031DC8
+ .4byte _08031DF8
+ .4byte _08031E34
+ .4byte _08031ED4
+_08031DAC:
+ bl sub_8031F0C
+ b _08031EBC
+_08031DB2:
+ ldrb r0, [r4]
+ bl sub_8031C30
+ lsls r0, 24
+ cmp r0, 0
+ beq _08031DC0
+ b _08031EB8
+_08031DC0:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _08031EDE
+_08031DC8:
+ ldr r0, _08031DE0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08031DE4
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08031DE4
+ bl battle_make_oam_safari_battle
+ b _08031DEA
+ .align 2, 0
+_08031DE0: .4byte gUnknown_020239F8
+_08031DE4:
+ ldrb r0, [r4]
+ bl battle_make_oam_normal_battle
+_08031DEA:
+ ldr r2, _08031DF4 @ =gUnknown_03004340
+ ldrb r1, [r4]
+ adds r1, r2
+ strb r0, [r1]
+ b _08031EA6
+ .align 2, 0
+_08031DF4: .4byte gUnknown_03004340
+_08031DF8:
+ ldrb r0, [r4]
+ bl sub_8043F44
+ ldr r0, _08031E18 @ =gUnknown_02024A72
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bhi _08031E20
+ ldr r0, _08031E1C @ =gUnknown_03004340
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ movs r1, 0
+ bl nullsub_11
+ b _08031EA6
+ .align 2, 0
+_08031E18: .4byte gUnknown_02024A72
+_08031E1C: .4byte gUnknown_03004340
+_08031E20:
+ ldr r0, _08031E30 @ =gUnknown_03004340
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl nullsub_11
+ b _08031EA6
+ .align 2, 0
+_08031E30: .4byte gUnknown_03004340
+_08031E34:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08031E7C
+ ldr r0, _08031E6C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08031E9A
+ ldr r0, _08031E70 @ =gUnknown_03004340
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, _08031E74 @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _08031E78 @ =gPlayerParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ b _08031E9A
+ .align 2, 0
+_08031E6C: .4byte gUnknown_020239F8
+_08031E70: .4byte gUnknown_03004340
+_08031E74: .4byte gUnknown_02024A6A
+_08031E78: .4byte gPlayerParty
+_08031E7C:
+ ldr r0, _08031EC4 @ =gUnknown_03004340
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, _08031EC8 @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _08031ECC @ =gEnemyParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+_08031E9A:
+ ldr r1, _08031EC4 @ =gUnknown_03004340
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+_08031EA6:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08031ED0 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08031EDE
+_08031EB8:
+ movs r0, 0
+ strb r0, [r4]
+_08031EBC:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _08031EDE
+ .align 2, 0
+_08031EC4: .4byte gUnknown_03004340
+_08031EC8: .4byte gUnknown_02024A6A
+_08031ECC: .4byte gEnemyParty
+_08031ED0: .4byte gUnknown_02024A68
+_08031ED4:
+ bl sub_80327CC
+ bl sub_8094958
+ movs r6, 0x1
+_08031EDE:
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end battle_load_something
+
+ thumb_func_start sub_8031EE8
+sub_8031EE8: @ 8031EE8
+ push {r4,lr}
+ ldr r4, _08031F08 @ =0x02017810
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x30
+ bl memset
+ adds r4, 0x30
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x10
+ bl memset
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031F08: .4byte 0x02017810
+ thumb_func_end sub_8031EE8
+
+ thumb_func_start sub_8031F0C
+sub_8031F0C: @ 8031F0C
+ push {lr}
+ bl sub_8031EE8
+ ldr r0, _08031F20 @ =0x02017800
+ movs r1, 0
+ movs r2, 0x10
+ bl memset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031F20: .4byte 0x02017800
+ thumb_func_end sub_8031F0C
+
+ thumb_func_start sub_8031F24
+sub_8031F24: @ 8031F24
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r4, 0
+ ldr r5, _08031F78 @ =gUnknown_02024A68
+ ldrb r0, [r5]
+ cmp r4, r0
+ bge _08031F6E
+ ldr r0, _08031F7C @ =gSprites
+ mov r8, r0
+ movs r7, 0x1
+ movs r0, 0x2
+ negs r0, r0
+ mov r12, r0
+ ldr r6, _08031F80 @ =gUnknown_02024BE0
+ ldr r3, _08031F84 @ =0x02017800
+_08031F44:
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ lsls r1, 29
+ lsrs r1, 31
+ ands r1, r7
+ ldrb r2, [r3]
+ mov r0, r12
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ adds r3, 0x4
+ adds r4, 0x1
+ ldrb r0, [r5]
+ cmp r4, r0
+ blt _08031F44
+_08031F6E:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031F78: .4byte gUnknown_02024A68
+_08031F7C: .4byte gSprites
+_08031F80: .4byte gUnknown_02024BE0
+_08031F84: .4byte 0x02017800
+ thumb_func_end sub_8031F24
+
+ thumb_func_start sub_8031F88
+sub_8031F88: @ 8031F88
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, r0, 2
+ ldr r1, _08031FB8 @ =0x02017800
+ adds r3, r1
+ ldr r2, _08031FBC @ =gSprites
+ ldr r1, _08031FC0 @ =gUnknown_02024BE0
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ lsls r1, 29
+ lsrs r1, 31
+ ldrb r2, [r3]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ bx lr
+ .align 2, 0
+_08031FB8: .4byte 0x02017800
+_08031FBC: .4byte gSprites
+_08031FC0: .4byte gUnknown_02024BE0
+ thumb_func_end sub_8031F88
+
+ thumb_func_start sub_8031FC4
+sub_8031FC4: @ 8031FC4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0xC]
+ lsls r2, 24
+ cmp r2, 0
+ beq _08032088
+ ldr r0, _08032064 @ =gUnknown_02024BE0
+ mov r1, r8
+ adds r6, r1, r0
+ ldrb r1, [r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r7, _08032068 @ =gSprites
+ adds r0, r7
+ ldr r4, _0803206C @ =0x02017840
+ ldrb r1, [r4]
+ bl StartSpriteAnim
+ mov r2, r8
+ lsls r0, r2, 20
+ movs r5, 0x80
+ lsls r5, 17
+ adds r0, r5
+ lsrs r5, r0, 16
+ ldrh r0, [r4]
+ lsls r0, 5
+ ldr r2, _08032070 @ =0xffffebc0
+ adds r1, r4, r2
+ adds r0, r1
+ adds r1, r5, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08032074 @ =gUnknown_02024E84
+ add r0, r8
+ ldrh r1, [r4]
+ strb r1, [r0]
+ mov r1, r8
+ lsls r0, r1, 2
+ subs r4, 0x40
+ adds r0, r4
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0
+ beq _0803204C
+ ldr r3, _08032078 @ =0x00007fff
+ adds r0, r5, 0
+ movs r1, 0x10
+ movs r2, 0x6
+ bl BlendPalette
+ lsls r1, r5, 1
+ ldr r0, _0803207C @ =gPlttBufferFaded
+ adds r0, r1, r0
+ ldr r2, _08032080 @ =gPlttBufferUnfaded
+ adds r1, r2
+ ldr r2, _08032084 @ =REG_BG0CNT
+ bl CpuSet
+_0803204C:
+ mov r0, r8
+ bl sub_8077F68
+ ldrb r2, [r6]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r7
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x22]
+ b _080322F6
+ .align 2, 0
+_08032064: .4byte gUnknown_02024BE0
+_08032068: .4byte gSprites
+_0803206C: .4byte 0x02017840
+_08032070: .4byte 0xffffebc0
+_08032074: .4byte gUnknown_02024E84
+_08032078: .4byte 0x00007fff
+_0803207C: .4byte gPlttBufferFaded
+_08032080: .4byte gPlttBufferUnfaded
+_08032084: .4byte REG_BG0CNT
+_08032088:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080320D0
+ movs r2, 0
+ mov r10, r2
+ ldr r5, _080320C0 @ =0x02019348
+ ldrh r7, [r5, 0x2]
+ ldr r4, [r5, 0x8]
+ mov r9, r4
+ ldr r6, [r5, 0xC]
+ lsls r0, r7, 3
+ ldr r1, _080320C4 @ =gMonBackPicTable
+ adds r0, r1
+ ldr r1, _080320C8 @ =gMonBackPicCoords
+ lsls r2, r7, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _080320CC @ =gUnknown_081FAF4C
+ ldr r4, [r4]
+ str r4, [sp]
+ str r7, [sp, 0x4]
+ ldr r4, [r5, 0x10]
+ b _08032184
+ .align 2, 0
+_080320C0: .4byte 0x02019348
+_080320C4: .4byte gMonBackPicTable
+_080320C8: .4byte gMonBackPicCoords
+_080320CC: .4byte gUnknown_081FAF4C
+_080320D0:
+ mov r0, r8
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, [sp, 0xC]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08032104
+ ldr r1, _080320FC @ =gUnknown_02024A6A
+ ldr r5, [sp, 0xC]
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08032100 @ =gEnemyParty
+ b _08032114
+ .align 2, 0
+_080320FC: .4byte gUnknown_02024A6A
+_08032100: .4byte gEnemyParty
+_08032104:
+ ldr r1, _0803218C @ =gUnknown_02024A6A
+ ldr r2, [sp, 0xC]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08032190 @ =gPlayerParty
+_08032114:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r0, r8
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080321A4
+ ldr r0, _0803218C @ =gUnknown_02024A6A
+ mov r5, r8
+ lsls r4, r5, 1
+ adds r4, r0
+ ldrh r0, [r4]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _08032190 @ =gPlayerParty
+ adds r0, r5
+ movs r1, 0
+ bl GetMonData
+ mov r9, r0
+ ldrh r0, [r4]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x1
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r0, r7, 3
+ ldr r1, _08032194 @ =gMonBackPicTable
+ adds r0, r1
+ ldr r1, _08032198 @ =gMonBackPicCoords
+ lsls r2, r7, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _0803219C @ =gUnknown_081FAF4C
+ mov r12, r4
+ mov r5, r10
+ lsls r4, r5, 2
+ add r4, r12
+ ldr r4, [r4]
+ str r4, [sp]
+ str r7, [sp, 0x4]
+ ldr r4, _080321A0 @ =gUnknown_02024E70
+ mov r12, r4
+ mov r5, r8
+ lsls r4, r5, 2
+ add r4, r12
+ ldr r4, [r4]
+_08032184:
+ str r4, [sp, 0x8]
+ bl sub_800D334
+ b _08032202
+ .align 2, 0
+_0803218C: .4byte gUnknown_02024A6A
+_08032190: .4byte gPlayerParty
+_08032194: .4byte gMonBackPicTable
+_08032198: .4byte gMonBackPicCoords
+_0803219C: .4byte gUnknown_081FAF4C
+_080321A0: .4byte gUnknown_02024E70
+_080321A4:
+ ldr r0, _08032308 @ =gUnknown_02024A6A
+ mov r1, r8
+ lsls r4, r1, 1
+ adds r4, r0
+ ldrh r0, [r4]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _0803230C @ =gEnemyParty
+ adds r0, r5
+ movs r1, 0
+ bl GetMonData
+ mov r9, r0
+ ldrh r0, [r4]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x1
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r0, r7, 3
+ ldr r1, _08032310 @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r1, _08032314 @ =gMonFrontPicCoords
+ lsls r2, r7, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08032318 @ =gUnknown_081FAF4C
+ mov r12, r4
+ mov r5, r10
+ lsls r4, r5, 2
+ add r4, r12
+ ldr r4, [r4]
+ str r4, [sp]
+ str r7, [sp, 0x4]
+ ldr r4, _0803231C @ =gUnknown_02024E70
+ mov r12, r4
+ mov r5, r8
+ lsls r4, r5, 2
+ add r4, r12
+ ldr r4, [r4]
+ str r4, [sp, 0x8]
+ bl sub_800D334
+_08032202:
+ ldr r1, _08032318 @ =gUnknown_081FAF4C
+ mov r2, r10
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r2, [r0]
+ ldr r0, _08032320 @ =gUnknown_02024BE0
+ add r0, r8
+ mov r10, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08032324 @ =gSprites
+ adds r0, r4
+ ldrh r0, [r0, 0x4]
+ lsls r0, 22
+ lsrs r0, 17
+ ldr r1, _08032328 @ =0x06010000
+ adds r0, r1
+ ldr r1, _0803232C @ =0x040000d4
+ str r2, [r1]
+ str r0, [r1, 0x4]
+ ldr r0, _08032330 @ =0x84000200
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r5, r8
+ lsls r0, r5, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r5, r0, 16
+ adds r0, r7, 0
+ adds r1, r6, 0
+ mov r2, r9
+ bl species_and_otid_get_pal
+ adds r6, r0, 0
+ ldr r2, _08032334 @ =0x02000000
+ mov r9, r2
+ mov r1, r9
+ bl sub_800D238
+ mov r0, r9
+ adds r1, r5, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08032338 @ =SPECIES_CASTFORM
+ cmp r7, r0
+ bne _08032288
+ movs r4, 0xB2
+ lsls r4, 9
+ add r4, r9
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_800D238
+ ldr r0, _0803233C @ =gUnknown_02024E84
+ ldr r1, [sp, 0xC]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r0, 5
+ adds r0, r4
+ adds r1, r5, 0
+ movs r2, 0x20
+ bl LoadPalette
+_08032288:
+ ldr r3, _08032340 @ =0x00007fff
+ adds r0, r5, 0
+ movs r1, 0x10
+ movs r2, 0x6
+ bl BlendPalette
+ lsls r1, r5, 1
+ ldr r0, _08032344 @ =gPlttBufferFaded
+ adds r0, r1, r0
+ ldr r2, _08032348 @ =gPlttBufferUnfaded
+ adds r1, r2
+ ldr r2, _0803234C @ =REG_BG0CNT
+ bl CpuSet
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080322C8
+ mov r2, r8
+ lsls r0, r2, 2
+ movs r1, 0xBC
+ lsls r1, 9
+ add r1, r9
+ adds r0, r1
+ strh r7, [r0, 0x2]
+ ldr r0, _0803233C @ =gUnknown_02024E84
+ adds r1, r2, r0
+ ldr r4, [sp, 0xC]
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ strb r0, [r1]
+_080322C8:
+ mov r0, r8
+ bl sub_8077F68
+ mov r5, r10
+ ldrb r2, [r5]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r2, _08032324 @ =gSprites
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x22]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _0803233C @ =gUnknown_02024E84
+ add r1, r8
+ ldrb r1, [r1]
+ bl StartSpriteAnim
+_080322F6:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032308: .4byte gUnknown_02024A6A
+_0803230C: .4byte gEnemyParty
+_08032310: .4byte gMonFrontPicTable
+_08032314: .4byte gMonFrontPicCoords
+_08032318: .4byte gUnknown_081FAF4C
+_0803231C: .4byte gUnknown_02024E70
+_08032320: .4byte gUnknown_02024BE0
+_08032324: .4byte gSprites
+_08032328: .4byte 0x06010000
+_0803232C: .4byte 0x040000d4
+_08032330: .4byte 0x84000200
+_08032334: .4byte 0x02000000
+_08032338: .4byte SPECIES_CASTFORM
+_0803233C: .4byte gUnknown_02024E84
+_08032340: .4byte 0x00007fff
+_08032344: .4byte gPlttBufferFaded
+_08032348: .4byte gPlttBufferUnfaded
+_0803234C: .4byte REG_BG0CNT
+ thumb_func_end sub_8031FC4
+
+ thumb_func_start sub_8032350
+sub_8032350: @ 8032350
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ lsls r1, 24
+ cmp r1, 0
+ bne _08032408
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803236C
+ movs r4, 0
+ b _08032376
+_0803236C:
+ adds r0, r4, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08032376:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08032388
+ ldr r0, _08032384 @ =gSubstituteDollTilemap
+ b _08032396
+ .align 2, 0
+_08032384: .4byte gSubstituteDollTilemap
+_08032388:
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080323AC
+ ldr r0, _080323A4 @ =gSubstituteDollGfx
+_08032396:
+ ldr r1, _080323A8 @ =gUnknown_081FAF4C
+ lsls r4, 2
+ adds r1, r4, r1
+ ldr r1, [r1]
+ bl LZDecompressVram
+ b _080323BA
+ .align 2, 0
+_080323A4: .4byte gSubstituteDollGfx
+_080323A8: .4byte gUnknown_081FAF4C
+_080323AC:
+ ldr r0, _080323F4 @ =gSubstituteDollTilemap
+ ldr r1, _080323F8 @ =gUnknown_081FAF4C
+ lsls r4, 2
+ adds r1, r4, r1
+ ldr r1, [r1]
+ bl LZDecompressVram
+_080323BA:
+ lsls r7, r5, 4
+ ldr r0, _080323FC @ =gSubstituteDollPal
+ mov r12, r0
+ ldr r0, _080323F8 @ =gUnknown_081FAF4C
+ adds r0, r4, r0
+ ldr r4, [r0]
+ ldr r3, _08032400 @ =0x040000d4
+ ldr r6, _08032404 @ =0x84000200
+ movs r0, 0x80
+ lsls r0, 4
+ adds r2, r4, r0
+ adds r5, r0, 0
+ movs r1, 0x2
+_080323D4:
+ str r4, [r3]
+ str r2, [r3, 0x4]
+ str r6, [r3, 0x8]
+ ldr r0, [r3, 0x8]
+ adds r2, r5
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080323D4
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r7, r0
+ mov r0, r12
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ b _08032456
+ .align 2, 0
+_080323F4: .4byte gSubstituteDollTilemap
+_080323F8: .4byte gUnknown_081FAF4C
+_080323FC: .4byte gSubstituteDollPal
+_08032400: .4byte 0x040000d4
+_08032404: .4byte 0x84000200
+_08032408:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08032456
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _08032440
+ ldr r1, _08032438 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0803243C @ =gEnemyParty
+ adds r0, r1
+ adds r1, r4, 0
+ bl sub_8031794
+ b _08032456
+ .align 2, 0
+_08032438: .4byte gUnknown_02024A6A
+_0803243C: .4byte gEnemyParty
+_08032440:
+ ldr r1, _0803245C @ =gUnknown_02024A6A
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08032460 @ =gPlayerParty
+ adds r0, r1
+ adds r1, r5, 0
+ bl sub_80318FC
+_08032456:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803245C: .4byte gUnknown_02024A6A
+_08032460: .4byte gPlayerParty
+ thumb_func_end sub_8032350
+
+ thumb_func_start refresh_graphics_maybe
+refresh_graphics_maybe: @ 8032464
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_8032350
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _080324A0 @ =gSprites
+ adds r4, r0, r1
+ ldr r0, _080324A4 @ =gUnknown_02024E84
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ cmp r5, 0
+ bne _080324A8
+ adds r0, r6, 0
+ bl sub_8077F7C
+ b _080324AE
+ .align 2, 0
+_080324A0: .4byte gSprites
+_080324A4: .4byte gUnknown_02024E84
+_080324A8:
+ adds r0, r6, 0
+ bl sub_8077F68
+_080324AE:
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end refresh_graphics_maybe
+
+ thumb_func_start sub_80324BC
+sub_80324BC: @ 80324BC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0xA4
+ bne _080324D8
+ lsls r2, r0, 2
+ ldr r0, _080324DC @ =0x02017800
+ adds r2, r0
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080324D8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080324DC: .4byte 0x02017800
+ thumb_func_end sub_80324BC
+
+ thumb_func_start sub_80324E0
+sub_80324E0: @ 80324E0
+ lsls r0, 24
+ lsrs r0, 22
+ ldr r1, _080324F4 @ =0x02017800
+ adds r0, r1
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080324F4: .4byte 0x02017800
+ thumb_func_end sub_80324E0
+
+ thumb_func_start sub_80324F8
+sub_80324F8: @ 80324F8
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ adds r7, r6, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_8046200
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08032568
+ lsls r0, r6, 2
+ ldr r3, _08032564 @ =0x02017800
+ adds r4, r0, r3
+ ldrb r1, [r4]
+ movs r5, 0x2
+ movs r2, 0x2
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080325B2
+ adds r0, r6, 0
+ eors r0, r5
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0803255A
+ movs r0, 0x5A
+ bl PlaySE
+_0803255A:
+ ldrb r0, [r4]
+ orrs r0, r5
+ strb r0, [r4]
+ b _080325B2
+ .align 2, 0
+_08032564: .4byte 0x02017800
+_08032568:
+ lsls r1, r6, 2
+ ldr r4, _0803258C @ =0x02017800
+ adds r1, r4
+ ldrb r2, [r1]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _08032590
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ b _080325B2
+ .align 2, 0
+_0803258C: .4byte 0x02017800
+_08032590:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080325B2
+ movs r0, 0x2
+ eors r7, r0
+ lsls r0, r7, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _080325B2
+ movs r0, 0x5A
+ bl m4aSongNumStop
+_080325B2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80324F8
+
+ thumb_func_start sub_80325B8
+sub_80325B8: @ 80325B8
+ push {r4-r6,lr}
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, r4, 2
+ ldr r6, _08032600 @ =0x02017800
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r5, 0x3
+ negs r5, r5
+ adds r0, r5, 0
+ ands r0, r2
+ strb r0, [r1]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080325F2
+ movs r0, 0x2
+ adds r1, r4, 0
+ eors r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1]
+ adds r0, r5, 0
+ ands r0, r2
+ strb r0, [r1]
+_080325F2:
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032600: .4byte 0x02017800
+ thumb_func_end sub_80325B8
+
+ thumb_func_start unref_sub_8032604
+unref_sub_8032604: @ 8032604
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_8046200
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8032604
+
+ thumb_func_start sub_8032638
+sub_8032638: @ 8032638
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _080326DC @ =gMain
+ ldr r1, _080326E0 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080326CE
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r0, 0x2
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r5, _080326E4 @ =gUnknown_02024A6A
+ mov r1, r8
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrb r0, [r0]
+ bl pokemon_order_func
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r1, r9
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrb r0, [r0]
+ bl pokemon_order_func
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r7, 0x64
+ adds r0, r4, 0
+ muls r0, r7
+ ldr r6, _080326E8 @ =gPlayerParty
+ adds r4, r0, r6
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080326AA
+ adds r0, r4, 0
+ mov r1, r8
+ bl sub_80324F8
+_080326AA:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080326CE
+ adds r0, r5, 0
+ muls r0, r7
+ adds r4, r0, r6
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080326CE
+ adds r0, r4, 0
+ mov r1, r9
+ bl sub_80324F8
+_080326CE:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080326DC: .4byte gMain
+_080326E0: .4byte 0x0000043d
+_080326E4: .4byte gUnknown_02024A6A
+_080326E8: .4byte gPlayerParty
+ thumb_func_end sub_8032638
+
+ thumb_func_start sub_80326EC
+sub_80326EC: @ 80326EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r5, 0
+ ldr r0, _08032778 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r5, r0
+ bge _080327B4
+ movs r0, 0x3
+ mov r10, r8
+ mov r1, r10
+ ands r1, r0
+ mov r10, r1
+ movs r6, 0
+ movs r2, 0x3F
+ negs r2, r2
+ mov r9, r2
+_08032718:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_8078874
+ lsls r0, 24
+ cmp r0, 0
+ beq _080327A8
+ ldr r4, _0803277C @ =gSprites
+ ldr r0, _08032780 @ =gUnknown_02024BE0
+ adds r3, r5, r0
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ movs r7, 0x4
+ negs r7, r7
+ adds r2, r7, 0
+ ands r1, r2
+ mov r2, r10
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ mov r7, r8
+ cmp r7, 0
+ bne _08032788
+ ldr r2, _08032784 @ =0x02017810
+ adds r2, r6, r2
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ strb r0, [r2, 0x6]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x3]
+ mov r2, r9
+ ands r1, r2
+ strb r1, [r0, 0x3]
+ b _080327A8
+ .align 2, 0
+_08032778: .4byte gUnknown_02024A68
+_0803277C: .4byte gSprites
+_08032780: .4byte gUnknown_02024BE0
+_08032784: .4byte 0x02017810
+_08032788:
+ ldrb r0, [r3]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ ldr r0, _080327C4 @ =0x02017810
+ adds r0, r6, r0
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x1F
+ ands r1, r0
+ lsls r1, 1
+ ldrb r0, [r2, 0x3]
+ mov r3, r9
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+_080327A8:
+ adds r6, 0xC
+ adds r5, 0x1
+ ldr r0, _080327C8 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _08032718
+_080327B4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080327C4: .4byte 0x02017810
+_080327C8: .4byte gUnknown_02024A68
+ thumb_func_end sub_80326EC
+
+ thumb_func_start sub_80327CC
+sub_80327CC: @ 80327CC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _08032894 @ =gUnknown_081FAF24
+ bl LoadCompressedObjectPic
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _08032898 @ =gSpriteTemplate_81FAF34
+ mov r8, r0
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8077ABC
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 8
+ movs r0, 0x80
+ lsls r0, 14
+ adds r2, r0
+ asrs r2, 16
+ mov r0, r8
+ adds r1, r4, 0
+ movs r3, 0xC8
+ bl CreateSprite
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 2
+ ldr r6, _0803289C @ =0x02017810
+ adds r1, r6
+ strb r0, [r1, 0x7]
+ ldr r7, _080328A0 @ =gSprites
+ ldrb r1, [r1, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ strh r5, [r0, 0x2E]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803288A
+ movs r0, 0x3
+ bl battle_get_side_with_given_state
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8077ABC
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 8
+ movs r0, 0x80
+ lsls r0, 14
+ adds r2, r0
+ asrs r2, 16
+ mov r0, r8
+ adds r1, r4, 0
+ movs r3, 0xC8
+ bl CreateSprite
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r6
+ strb r0, [r1, 0x7]
+ ldrb r1, [r1, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ strh r5, [r0, 0x2E]
+_0803288A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032894: .4byte gUnknown_081FAF24
+_08032898: .4byte gSpriteTemplate_81FAF34
+_0803289C: .4byte 0x02017810
+_080328A0: .4byte gSprites
+ thumb_func_end sub_80327CC
+
+ thumb_func_start sub_80328A4
+sub_80328A4: @ 80328A4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ movs r0, 0
+ mov r8, r0
+ ldrh r0, [r5, 0x2E]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080328E8 @ =gUnknown_02024BE0
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080328EC @ =gSprites
+ adds r7, r0, r1
+ adds r6, r7, 0
+ adds r6, 0x3E
+ ldrb r1, [r6]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080328E0
+ adds r0, r4, 0
+ bl sub_8078874
+ lsls r0, 24
+ cmp r0, 0
+ bne _080328F4
+_080328E0:
+ ldr r0, _080328F0 @ =sub_8032978
+ str r0, [r5, 0x1C]
+ b _08032964
+ .align 2, 0
+_080328E8: .4byte gUnknown_02024BE0
+_080328EC: .4byte gSprites
+_080328F0: .4byte sub_8032978
+_080328F4:
+ ldr r0, _08032910 @ =gUnknown_0202F7B1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08032906
+ ldrb r1, [r6]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08032918
+_08032906:
+ movs r0, 0x1
+ mov r8, r0
+ lsls r4, 2
+ ldr r6, _08032914 @ =0x02017800
+ b _08032938
+ .align 2, 0
+_08032910: .4byte gUnknown_0202F7B1
+_08032914: .4byte 0x02017800
+_08032918:
+ lsls r0, r4, 2
+ ldr r1, _08032970 @ =0x02017800
+ adds r3, r0, r1
+ ldrh r2, [r3, 0x2]
+ adds r4, r0, 0
+ adds r6, r1, 0
+ cmp r2, 0
+ beq _08032938
+ ldr r0, _08032974 @ =gEnemyMonElevation
+ adds r1, r2, 0
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08032938
+ movs r0, 0x1
+ mov r8, r0
+_08032938:
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08032948
+ movs r0, 0x1
+ mov r8, r0
+_08032948:
+ 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, 0x5
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+_08032964:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032970: .4byte 0x02017800
+_08032974: .4byte gEnemyMonElevation
+ thumb_func_end sub_80328A4
+
+ thumb_func_start sub_8032978
+sub_8032978: @ 8032978
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ bx lr
+ thumb_func_end sub_8032978
+
+ thumb_func_start sub_8032984
+sub_8032984: @ 8032984
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080329FA
+ lsls r0, r4, 2
+ ldr r3, _080329D0 @ =0x02017800
+ adds r1, r0, r3
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ beq _080329AA
+ adds r5, r0, 0
+_080329AA:
+ ldr r0, _080329D4 @ =gEnemyMonElevation
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080329E0
+ ldr r2, _080329D8 @ =gSprites
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r3, r0
+ ldrb r1, [r0, 0x17]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080329DC @ =sub_80328A4
+ b _080329F8
+ .align 2, 0
+_080329D0: .4byte 0x02017800
+_080329D4: .4byte gEnemyMonElevation
+_080329D8: .4byte gSprites
+_080329DC: .4byte sub_80328A4
+_080329E0:
+ ldr r2, _08032A00 @ =gSprites
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r3, r0
+ ldrb r1, [r0, 0x17]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _08032A04 @ =sub_8032978
+_080329F8:
+ str r1, [r0]
+_080329FA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032A00: .4byte gSprites
+_08032A04: .4byte sub_8032978
+ thumb_func_end sub_8032984
+
+ thumb_func_start sub_8032A08
+sub_8032A08: @ 8032A08
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08032A2C @ =gSprites
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08032A30 @ =0x02017810
+ adds r1, r0
+ ldrb r1, [r1, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _08032A34 @ =sub_8032978
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_08032A2C: .4byte gSprites
+_08032A30: .4byte 0x02017810
+_08032A34: .4byte sub_8032978
+ thumb_func_end sub_8032A08
+
+ thumb_func_start sub_8032A38
+sub_8032A38: @ 8032A38
+ push {r4-r6,lr}
+ ldr r3, _08032AA4 @ =0x06000240
+ movs r0, 0
+ movs r6, 0xF0
+ lsls r6, 8
+_08032A42:
+ adds r5, r0, 0x1
+ movs r4, 0xF
+_08032A46:
+ ldrh r1, [r3]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08032A56
+ adds r0, r6, 0
+ orrs r0, r1
+ strh r0, [r3]
+_08032A56:
+ ldrh r1, [r3]
+ movs r2, 0xF0
+ lsls r2, 4
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08032A6A
+ adds r0, r2, 0
+ orrs r0, r1
+ strh r0, [r3]
+_08032A6A:
+ ldrh r1, [r3]
+ movs r2, 0xF0
+ movs r0, 0xF0
+ ands r0, r1
+ cmp r0, 0
+ bne _08032A7C
+ adds r0, r1, 0
+ orrs r0, r2
+ strh r0, [r3]
+_08032A7C:
+ ldrh r1, [r3]
+ movs r2, 0xF
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ bne _08032A8E
+ adds r0, r1, 0
+ orrs r0, r2
+ strh r0, [r3]
+_08032A8E:
+ adds r3, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08032A46
+ adds r0, r5, 0
+ cmp r0, 0x8
+ ble _08032A42
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032AA4: .4byte 0x06000240
+ thumb_func_end sub_8032A38
+
+ thumb_func_start sub_8032AA8
+sub_8032AA8: @ 8032AA8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsls r2, r4, 2
+ ldr r0, _08032AD4 @ =0x02017800
+ adds r2, r0
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r2, 0x2]
+ ldr r0, _08032AD8 @ =gUnknown_02024E84
+ adds r0, r4, r0
+ strb r3, [r0]
+ cmp r1, 0
+ bne _08032ACC
+ adds r0, r4, 0
+ bl sub_80324E0
+_08032ACC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032AD4: .4byte 0x02017800
+_08032AD8: .4byte gUnknown_02024E84
+ thumb_func_end sub_8032AA8
+
+ thumb_func_start nullsub_45
+nullsub_45: @ 8032ADC
+ bx lr
+ thumb_func_end nullsub_45
+
+ thumb_func_start sub_8032AE0
+sub_8032AE0: @ 8032AE0
+ ldr r1, _08032AF0 @ =gUnknown_03004330
+ ldr r0, _08032AF4 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08032AF8 @ =sub_8032AFC
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_08032AF0: .4byte gUnknown_03004330
+_08032AF4: .4byte gUnknown_02024A60
+_08032AF8: .4byte sub_8032AFC
+ thumb_func_end sub_8032AE0
+
+ thumb_func_start sub_8032AFC
+sub_8032AFC: @ 8032AFC
+ push {lr}
+ ldr r2, _08032B30 @ =gUnknown_02024A64
+ ldr r1, _08032B34 @ =gBitTable
+ ldr r0, _08032B38 @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08032B48
+ ldr r0, _08032B3C @ =gUnknown_02023A60
+ lsls r1, r3, 9
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x38
+ bhi _08032B44
+ ldr r0, _08032B40 @ =gUnknown_081FAF5C
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+ b _08032B48
+ .align 2, 0
+_08032B30: .4byte gUnknown_02024A64
+_08032B34: .4byte gBitTable
+_08032B38: .4byte gUnknown_02024A60
+_08032B3C: .4byte gUnknown_02023A60
+_08032B40: .4byte gUnknown_081FAF5C
+_08032B44:
+ bl sub_80334EC
+_08032B48:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8032AFC
+
+ thumb_func_start sub_8032B4C
+sub_8032B4C: @ 8032B4C
+ push {lr}
+ ldr r2, _08032B74 @ =gSprites
+ ldr r1, _08032B78 @ =gUnknown_02024BE0
+ ldr r0, _08032B7C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _08032B80 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08032B70
+ bl sub_80334EC
+_08032B70:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032B74: .4byte gSprites
+_08032B78: .4byte gUnknown_02024BE0
+_08032B7C: .4byte gUnknown_02024A60
+_08032B80: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8032B4C
+
+ thumb_func_start sub_8032B84
+sub_8032B84: @ 8032B84
+ push {lr}
+ ldr r2, _08032BAC @ =gSprites
+ ldr r1, _08032BB0 @ =gUnknown_02024BE0
+ ldr r0, _08032BB4 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _08032BB8 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08032BA8
+ bl sub_80334EC
+_08032BA8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032BAC: .4byte gSprites
+_08032BB0: .4byte gUnknown_02024BE0
+_08032BB4: .4byte gUnknown_02024A60
+_08032BB8: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8032B84
+
+ thumb_func_start sub_8032BBC
+sub_8032BBC: @ 8032BBC
+ push {r4-r6,lr}
+ ldr r4, _08032C34 @ =gSprites
+ ldr r6, _08032C38 @ =gUnknown_02024BE0
+ ldr r5, _08032C3C @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r2, r0, 2
+ adds r0, r4, 0
+ adds r0, 0x1C
+ adds r0, r2, r0
+ ldr r1, [r0]
+ ldr r0, _08032C40 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08032C2C
+ adds r0, r2, r4
+ ldrh r0, [r0, 0x6]
+ bl sub_8031B74
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r1, 0x38]
+ ldr r2, _08032C44 @ =0x000003ff
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _08032C48 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ bl sub_80334EC
+_08032C2C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032C34: .4byte gSprites
+_08032C38: .4byte gUnknown_02024BE0
+_08032C3C: .4byte gUnknown_02024A60
+_08032C40: .4byte SpriteCallbackDummy
+_08032C44: .4byte 0x000003ff
+_08032C48: .4byte 0xfffffc00
+ thumb_func_end sub_8032BBC
+
+ thumb_func_start sub_8032C4C
+sub_8032C4C: @ 8032C4C
+ push {lr}
+ ldr r3, _08032C80 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _08032C84 @ =0x02017810
+ adds r1, r2
+ ldrb r0, [r1, 0x9]
+ subs r0, 0x1
+ strb r0, [r1, 0x9]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _08032C7C
+ ldrb r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0
+ strb r0, [r1, 0x9]
+ bl sub_80334EC
+_08032C7C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032C80: .4byte gUnknown_02024A60
+_08032C84: .4byte 0x02017810
+ thumb_func_end sub_8032C4C
+
+ thumb_func_start sub_8032C88
+sub_8032C88: @ 8032C88
+ push {r4-r7,lr}
+ movs r6, 0
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08032CAC
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08032CE0
+ ldr r0, _08032CCC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08032CE0
+_08032CAC:
+ ldr r2, _08032CD0 @ =gSprites
+ ldr r1, _08032CD4 @ =gUnknown_03004340
+ ldr r0, _08032CD8 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _08032CDC @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08032D16
+ b _08032D14
+ .align 2, 0
+_08032CCC: .4byte gUnknown_020239F8
+_08032CD0: .4byte gSprites
+_08032CD4: .4byte gUnknown_03004340
+_08032CD8: .4byte gUnknown_02024A60
+_08032CDC: .4byte SpriteCallbackDummy
+_08032CE0:
+ ldr r2, _08032DC4 @ =gSprites
+ ldr r5, _08032DC8 @ =gUnknown_03004340
+ ldr r0, _08032DCC @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r4, [r0]
+ ldr r0, _08032DD0 @ =SpriteCallbackDummy
+ cmp r4, r0
+ bne _08032D16
+ movs r0, 0x2
+ eors r3, r0
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, r4
+ bne _08032D16
+_08032D14:
+ movs r6, 0x1
+_08032D16:
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ beq _08032D22
+ movs r6, 0
+_08032D22:
+ cmp r6, 0
+ beq _08032E0E
+ ldr r7, _08032DCC @ =gUnknown_02024A60
+ ldrb r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r5, _08032DD4 @ =0x02017810
+ adds r4, r0, r5
+ ldrb r1, [r4, 0x1]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08032E0E
+ movs r6, 0x2
+ adds r1, r6, 0
+ eors r1, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08032E0E
+ ldrb r1, [r4]
+ movs r3, 0x7F
+ adds r0, r3, 0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x1]
+ movs r4, 0x2
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r7]
+ adds r1, r6, 0
+ eors r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0]
+ ands r3, r1
+ strb r3, [r0]
+ ldrb r0, [r7]
+ adds r1, r6, 0
+ eors r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ ands r4, r1
+ strb r4, [r0, 0x1]
+ ldr r4, _08032DD8 @ =0x000027f9
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ ldr r0, _08032DDC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08032DE4
+ ldr r0, _08032DE0 @ =gMPlay_BGM
+ bl m4aMPlayContinue
+ b _08032DF0
+ .align 2, 0
+_08032DC4: .4byte gSprites
+_08032DC8: .4byte gUnknown_03004340
+_08032DCC: .4byte gUnknown_02024A60
+_08032DD0: .4byte SpriteCallbackDummy
+_08032DD4: .4byte 0x02017810
+_08032DD8: .4byte 0x000027f9
+_08032DDC: .4byte gUnknown_020239F8
+_08032DE0: .4byte gMPlay_BGM
+_08032DE4:
+ ldr r0, _08032E14 @ =gMPlay_BGM
+ ldr r1, _08032E18 @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+_08032DF0:
+ ldr r2, _08032E1C @ =gUnknown_02024A60
+ ldrb r1, [r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08032E20 @ =0x02017810
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0, 0x9]
+ ldr r1, _08032E24 @ =gUnknown_03004330
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08032E28 @ =sub_8032C4C
+ str r1, [r0]
+_08032E0E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032E14: .4byte gMPlay_BGM
+_08032E18: .4byte 0x0000ffff
+_08032E1C: .4byte gUnknown_02024A60
+_08032E20: .4byte 0x02017810
+_08032E24: .4byte gUnknown_03004330
+_08032E28: .4byte sub_8032C4C
+ thumb_func_end sub_8032C88
+
+ thumb_func_start sub_8032E2C
+sub_8032E2C: @ 8032E2C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _08032FEC @ =gUnknown_02024A60
+ mov r9, r0
+ ldrb r2, [r0]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ ldr r4, _08032FF0 @ =0x02017810
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r5, 0x88
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08032E64
+ ldr r0, _08032FF4 @ =gUnknown_02024A6A
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08032FF8 @ =gEnemyParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_08032E64:
+ mov r1, r9
+ ldrb r0, [r1]
+ movs r7, 0x2
+ adds r2, r7, 0
+ eors r2, r0
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08032E94
+ ldr r0, _08032FF4 @ =gUnknown_02024A6A
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08032FF8 @ =gEnemyParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_08032E94:
+ mov r0, r9
+ ldrb r2, [r0]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r3, 0x8
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08032EAE
+ b _08032FE0
+_08032EAE:
+ adds r1, r7, 0
+ eors r1, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08032EC6
+ b _08032FE0
+_08032EC6:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08032F58
+ ldr r0, _08032FFC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08032F58
+ ldr r1, _08033000 @ =gUnknown_0300434C
+ mov r2, r9
+ ldrb r0, [r2]
+ eors r0, r7
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08033004 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldr r4, _08033008 @ =gUnknown_03004340
+ mov r1, r9
+ ldrb r0, [r1]
+ adds r1, r7, 0
+ eors r1, r0
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, _08032FF4 @ =gUnknown_02024A6A
+ mov r8, r2
+ lsls r1, 1
+ add r1, r8
+ ldrh r1, [r1]
+ movs r6, 0x64
+ muls r1, r6
+ ldr r5, _08032FF8 @ =gEnemyParty
+ adds r1, r5
+ movs r2, 0
+ bl sub_8045A5C
+ mov r1, r9
+ ldrb r0, [r1]
+ eors r0, r7
+ bl sub_804777C
+ mov r2, r9
+ ldrb r0, [r2]
+ eors r0, r7
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ mov r1, r9
+ ldrb r0, [r1]
+ adds r4, r7, 0
+ eors r4, r0
+ lsls r0, r4, 1
+ add r0, r8
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8032984
+_08032F58:
+ ldr r1, _08033000 @ =gUnknown_0300434C
+ ldr r4, _08032FEC @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08033004 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldr r5, _08033008 @ =gUnknown_03004340
+ ldrb r1, [r4]
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, _08032FF4 @ =gUnknown_02024A6A
+ mov r9, r2
+ lsls r1, 1
+ add r1, r9
+ ldrh r1, [r1]
+ movs r2, 0x64
+ mov r8, r2
+ mov r2, r8
+ muls r2, r1
+ adds r1, r2, 0
+ ldr r6, _08032FF8 @ =gEnemyParty
+ adds r1, r6
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ bl sub_804777C
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldrb r5, [r4]
+ lsls r0, r5, 1
+ add r0, r9
+ ldrh r0, [r0]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r5, 0
+ bl sub_8032984
+ ldr r2, _0803300C @ =0x02017840
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _08033010 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08033014 @ =sub_8032C88
+ str r1, [r0]
+_08032FE0:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032FEC: .4byte gUnknown_02024A60
+_08032FF0: .4byte 0x02017810
+_08032FF4: .4byte gUnknown_02024A6A
+_08032FF8: .4byte gEnemyParty
+_08032FFC: .4byte gUnknown_020239F8
+_08033000: .4byte gUnknown_0300434C
+_08033004: .4byte gSprites
+_08033008: .4byte gUnknown_03004340
+_0803300C: .4byte 0x02017840
+_08033010: .4byte gUnknown_03004330
+_08033014: .4byte sub_8032C88
+ thumb_func_end sub_8032E2C
+
+ thumb_func_start sub_8033018
+sub_8033018: @ 8033018
+ push {r4-r7,lr}
+ ldr r2, _08033070 @ =gSprites
+ ldr r0, _08033074 @ =gUnknown_02024BE0
+ ldr r7, _08033078 @ =gUnknown_02024A60
+ ldrb r3, [r7]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r2, r0, 31
+ cmp r2, 0x1
+ bne _080330BC
+ movs r4, 0x24
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ bne _080330BC
+ lsls r4, r3, 1
+ adds r0, r4, r3
+ lsls r0, 2
+ ldr r6, _0803307C @ =0x02017810
+ adds r1, r0, r6
+ ldrb r5, [r1]
+ movs r0, 0x80
+ ands r0, r5
+ cmp r0, 0
+ bne _08033088
+ ldr r0, _08033080 @ =gUnknown_02024A6A
+ adds r0, r4, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08033084 @ =gEnemyParty
+ adds r1, r0
+ adds r0, r3, 0
+ bl sub_8141828
+ b _080330BC
+ .align 2, 0
+_08033070: .4byte gSprites
+_08033074: .4byte gUnknown_02024BE0
+_08033078: .4byte gUnknown_02024A60
+_0803307C: .4byte 0x02017810
+_08033080: .4byte gUnknown_02024A6A
+_08033084: .4byte gEnemyParty
+_08033088:
+ ldrb r0, [r1, 0x1]
+ ands r2, r0
+ cmp r2, 0
+ beq _080330BC
+ movs r0, 0x7F
+ ands r0, r5
+ strb r0, [r1]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r4, _080330C4 @ =0x000027f9
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ bl sub_80334EC
+_080330BC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080330C4: .4byte 0x000027f9
+ thumb_func_end sub_8033018
+
+ thumb_func_start sub_80330C8
+sub_80330C8: @ 80330C8
+ push {r4-r6,lr}
+ ldr r6, _08033108 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ ldr r5, _0803310C @ =gUnknown_03004340
+ adds r1, r0, r5
+ ldrb r1, [r1]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8045C78
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ lsls r4, 16
+ asrs r1, r4, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08033110
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r2, 0
+ bl sub_80440EC
+ b _08033114
+ .align 2, 0
+_08033108: .4byte gUnknown_02024A60
+_0803310C: .4byte gUnknown_03004340
+_08033110:
+ bl sub_80334EC
+_08033114:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80330C8
+
+ thumb_func_start sub_803311C
+sub_803311C: @ 803311C
+ push {lr}
+ ldr r2, _08033150 @ =gSprites
+ ldr r0, _08033154 @ =gUnknown_02024BE0
+ ldr r1, _08033158 @ =gUnknown_02024A60
+ ldrb r3, [r1]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 31
+ cmp r0, 0
+ bne _0803314A
+ ldr r0, _0803315C @ =gUnknown_03004340
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl sub_80334EC
+_0803314A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08033150: .4byte gSprites
+_08033154: .4byte gUnknown_02024BE0
+_08033158: .4byte gUnknown_02024A60
+_0803315C: .4byte gUnknown_03004340
+ thumb_func_end sub_803311C
+
+ thumb_func_start sub_8033160
+sub_8033160: @ 8033160
+ push {r4-r6,lr}
+ ldr r6, _080331BC @ =gUnknown_02024A60
+ ldrb r2, [r6]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _080331C0 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080331B6
+ ldr r5, _080331C4 @ =gUnknown_02024BE0
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080331C8 @ =gSprites
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldrb r0, [r6]
+ bl sub_8032A08
+ ldr r1, _080331CC @ =gUnknown_03004340
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl sub_80334EC
+_080331B6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080331BC: .4byte gUnknown_02024A60
+_080331C0: .4byte 0x02017810
+_080331C4: .4byte gUnknown_02024BE0
+_080331C8: .4byte gSprites
+_080331CC: .4byte gUnknown_03004340
+ thumb_func_end sub_8033160
+
+ thumb_func_start sub_80331D0
+sub_80331D0: @ 80331D0
+ push {lr}
+ ldr r0, _080331E4 @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ bne _080331DE
+ bl sub_80334EC
+_080331DE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080331E4: .4byte gUnknown_03004210
+ thumb_func_end sub_80331D0
+
+ thumb_func_start bx_blink_t7
+bx_blink_t7: @ 80331E8
+ push {r4,lr}
+ ldr r1, _08033224 @ =gUnknown_02024BE0
+ ldr r0, _08033228 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r2, _0803322C @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r0, r2
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x20
+ bne _08033234
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ subs r0, 0x5
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _08033230 @ =gUnknown_02024E6D
+ strb r3, [r0]
+ bl sub_80334EC
+ b _0803325E
+ .align 2, 0
+_08033224: .4byte gUnknown_02024BE0
+_08033228: .4byte gUnknown_02024A60
+_0803322C: .4byte gSprites
+_08033230: .4byte gUnknown_02024E6D
+_08033234:
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08033258
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_08033258:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_0803325E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end bx_blink_t7
+
+ thumb_func_start sub_8033264
+sub_8033264: @ 8033264
+ push {r4,lr}
+ ldr r2, _080332B4 @ =gSprites
+ ldr r0, _080332B8 @ =gUnknown_03004340
+ ldr r4, _080332BC @ =gUnknown_02024A60
+ ldrb r3, [r4]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _080332C0 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _080332AC
+ lsls r0, r3, 2
+ ldr r1, _080332C4 @ =0x02017800
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080332A0
+ adds r0, r3, 0
+ adds r1, r3, 0
+ adds r2, r3, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+_080332A0:
+ ldr r0, _080332C8 @ =gUnknown_03004330
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _080332CC @ =sub_80332D0
+ str r0, [r1]
+_080332AC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080332B4: .4byte gSprites
+_080332B8: .4byte gUnknown_03004340
+_080332BC: .4byte gUnknown_02024A60
+_080332C0: .4byte SpriteCallbackDummy
+_080332C4: .4byte 0x02017800
+_080332C8: .4byte gUnknown_03004330
+_080332CC: .4byte sub_80332D0
+ thumb_func_end sub_8033264
+
+ thumb_func_start sub_80332D0
+sub_80332D0: @ 80332D0
+ push {lr}
+ ldr r0, _080332FC @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08033300 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080332F6
+ ldr r0, _08033304 @ =c3_0802FDF4
+ movs r1, 0xA
+ bl CreateTask
+ bl sub_80334EC
+_080332F6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080332FC: .4byte gUnknown_02024A60
+_08033300: .4byte 0x02017810
+_08033304: .4byte c3_0802FDF4
+ thumb_func_end sub_80332D0
+
+ thumb_func_start sub_8033308
+sub_8033308: @ 8033308
+ push {r4,r5,lr}
+ ldr r5, _080333AC @ =gUnknown_02024A60
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _080333B0 @ =0x02017810
+ adds r2, r0, r3
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080333A4
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r4, _080333B4 @ =0x000027f9
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ ldr r1, _080333B8 @ =gUnknown_02024BE0
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080333BC @ =gSprites
+ adds r0, r1
+ movs r1, 0
+ bl StartSpriteAnim
+ ldr r4, _080333C0 @ =gUnknown_03004340
+ ldrb r1, [r5]
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, _080333C4 @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _080333C8 @ =gEnemyParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r5]
+ bl sub_804777C
+ ldrb r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldrb r0, [r5]
+ bl sub_8031F88
+ ldr r1, _080333CC @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080333D0 @ =sub_8033264
+ str r1, [r0]
+_080333A4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080333AC: .4byte gUnknown_02024A60
+_080333B0: .4byte 0x02017810
+_080333B4: .4byte 0x000027f9
+_080333B8: .4byte gUnknown_02024BE0
+_080333BC: .4byte gSprites
+_080333C0: .4byte gUnknown_03004340
+_080333C4: .4byte gUnknown_02024A6A
+_080333C8: .4byte gEnemyParty
+_080333CC: .4byte gUnknown_03004330
+_080333D0: .4byte sub_8033264
+ thumb_func_end sub_8033308
+
+ thumb_func_start sub_80333D4
+sub_80333D4: @ 80333D4
+ push {r4-r6,lr}
+ ldr r5, _08033470 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ ldr r6, _08033474 @ =0x02017810
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ bne _08033402
+ ldr r0, _08033478 @ =gUnknown_02024A6A
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0803347C @ =gEnemyParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_08033402:
+ ldr r4, _08033480 @ =gSprites
+ ldr r0, _08033484 @ =gUnknown_0300434C
+ ldrb r2, [r5]
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r3, r0, 2
+ adds r0, r4, 0
+ adds r0, 0x1C
+ adds r0, r3, r0
+ ldr r1, [r0]
+ ldr r0, _08033488 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08033468
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08033468
+ adds r0, r3, r4
+ bl DestroySprite
+ ldrb r4, [r5]
+ ldr r1, _08033478 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0803347C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8032984
+ ldr r1, _0803348C @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08033490 @ =sub_8033308
+ str r1, [r0]
+_08033468:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08033470: .4byte gUnknown_02024A60
+_08033474: .4byte 0x02017810
+_08033478: .4byte gUnknown_02024A6A
+_0803347C: .4byte gEnemyParty
+_08033480: .4byte gSprites
+_08033484: .4byte gUnknown_0300434C
+_08033488: .4byte SpriteCallbackDummy
+_0803348C: .4byte gUnknown_03004330
+_08033490: .4byte sub_8033308
+ thumb_func_end sub_80333D4
+
+ thumb_func_start sub_8033494
+sub_8033494: @ 8033494
+ push {lr}
+ ldr r0, _080334B8 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080334BC @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _080334B2
+ bl sub_80334EC
+_080334B2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080334B8: .4byte gUnknown_02024A60
+_080334BC: .4byte 0x02017810
+ thumb_func_end sub_8033494
+
+ thumb_func_start sub_80334C0
+sub_80334C0: @ 80334C0
+ push {lr}
+ ldr r0, _080334E4 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080334E8 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _080334DE
+ bl sub_80334EC
+_080334DE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080334E4: .4byte gUnknown_02024A60
+_080334E8: .4byte 0x02017810
+ thumb_func_end sub_80334C0
+
+ thumb_func_start sub_80334EC
+sub_80334EC: @ 80334EC
+ ldr r1, _08033510 @ =gUnknown_03004330
+ ldr r2, _08033514 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08033518 @ =sub_8032AFC
+ str r1, [r0]
+ ldr r3, _0803351C @ =gUnknown_02024A64
+ ldr r1, _08033520 @ =gBitTable
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r3]
+ bics r0, r1
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_08033510: .4byte gUnknown_03004330
+_08033514: .4byte gUnknown_02024A60
+_08033518: .4byte sub_8032AFC
+_0803351C: .4byte gUnknown_02024A64
+_08033520: .4byte gBitTable
+ thumb_func_end sub_80334EC
+
+ thumb_func_start dp01t_00_7_getattr
+dp01t_00_7_getattr: @ 8033524
+ push {r4-r6,lr}
+ sub sp, 0x100
+ movs r6, 0
+ ldr r1, _08033550 @ =gUnknown_02023A60
+ ldr r0, _08033554 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0803355C
+ ldr r0, _08033558 @ =gUnknown_02024A6A
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ mov r1, sp
+ bl sub_8033598
+ adds r6, r0, 0
+ b _0803357E
+ .align 2, 0
+_08033550: .4byte gUnknown_02023A60
+_08033554: .4byte gUnknown_02024A60
+_08033558: .4byte gUnknown_02024A6A
+_0803355C:
+ ldrb r4, [r1]
+ movs r5, 0
+_08033560:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _08033576
+ lsls r0, r5, 24
+ lsrs r0, 24
+ mov r2, sp
+ adds r1, r2, r6
+ bl sub_8033598
+ adds r6, r0
+_08033576:
+ lsrs r4, 1
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08033560
+_0803357E:
+ lsls r1, r6, 16
+ lsrs r1, 16
+ movs r0, 0x1
+ mov r2, sp
+ bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl sub_80334EC
+ add sp, 0x100
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_00_7_getattr
+
+ thumb_func_start sub_8033598
+sub_8033598: @ 8033598
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x90
+ adds r7, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0
+ ldr r2, _080335CC @ =gUnknown_02023A60
+ ldr r3, _080335D0 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r1, r2, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bls _080335C2
+ bl _08033D2E
+_080335C2:
+ lsls r0, 2
+ ldr r1, _080335D4 @ =_080335D8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080335CC: .4byte gUnknown_02023A60
+_080335D0: .4byte gUnknown_02024A60
+_080335D4: .4byte _080335D8
+ .align 2, 0
+_080335D8:
+ .4byte _080336C8
+ .4byte _080338EC
+ .4byte _080338FC
+ .4byte _0803390C
+ .4byte _08033974
+ .4byte _08033974
+ .4byte _08033974
+ .4byte _08033974
+ .4byte _08033990
+ .4byte _080339CC
+ .4byte _080339CC
+ .4byte _080339CC
+ .4byte _080339CC
+ .4byte _08033D2E
+ .4byte _08033D2E
+ .4byte _08033D2E
+ .4byte _08033D2E
+ .4byte _080339E8
+ .4byte _080339F8
+ .4byte _08033A28
+ .4byte _08033A38
+ .4byte _08033A48
+ .4byte _08033A58
+ .4byte _08033A68
+ .4byte _08033A78
+ .4byte _08033A88
+ .4byte _08033A98
+ .4byte _08033AA8
+ .4byte _08033AB8
+ .4byte _08033AC8
+ .4byte _08033AD8
+ .4byte _08033AE8
+ .4byte _08033B38
+ .4byte _08033B48
+ .4byte _08033B58
+ .4byte _08033B68
+ .4byte _08033B78
+ .4byte _08033B88
+ .4byte _08033B98
+ .4byte _08033BA8
+ .4byte _08033BB8
+ .4byte _08033BEC
+ .4byte _08033BFC
+ .4byte _08033C0C
+ .4byte _08033C1C
+ .4byte _08033C2C
+ .4byte _08033C3C
+ .4byte _08033C4C
+ .4byte _08033C5C
+ .4byte _08033C7C
+ .4byte _08033C8C
+ .4byte _08033C9C
+ .4byte _08033CAC
+ .4byte _08033CBC
+ .4byte _08033CCC
+ .4byte _08033CDC
+ .4byte _08033CEC
+ .4byte _08033CFC
+ .4byte _08033D0C
+ .4byte _08033D1C
+_080336C8:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _080338DC @ =gEnemyParty
+ adds 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 r9, r0
+ movs r1, 0x3B
+ add r1, sp
+ mov r10, 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, 0x5
+ str r2, [sp, 0x84]
+ adds r0, 0x12
+ str r0, [sp, 0x88]
+ mov r8, r4
+ add r4, sp, 0xC
+_08033714:
+ 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, r9
+ adds r1, r2, r6
+ strb r0, [r1]
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08033714
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _080338DC @ =gEnemyParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r10
+ 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
+ negs r1, r1
+ 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, 5
+ ldrh r2, [r3, 0x14]
+ ldr r1, _080338E0 @ =0xfffffc1f
+ 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, 2
+ ldrb r2, [r3, 0x15]
+ movs r1, 0x7D
+ negs r1, r1
+ 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, 15
+ ldr r0, [sp, 0x14]
+ ldr r2, _080338E4 @ =0xfff07fff
+ 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, 4
+ ldrh r2, [r3, 0x16]
+ ldr r1, _080338E8 @ =0xfffffe0f
+ 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, 1
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x3F
+ negs r1, r1
+ 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, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x3C
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x3D
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x6]
+ adds r0, r4, 0
+ movs r1, 0x3E
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x8]
+ 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, 0x1
+ ands r0, r1
+ lsls r0, 6
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x41
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x17]
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl GetMonData
+ mov r3, sp
+ lsls 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, 0x1
+ bl GetMonData
+ str r0, [sp, 0x54]
+ adds r0, r4, 0
+ movs r1, 0x2
+ ldr r2, [sp, 0x8C]
+ bl GetMonData
+ ldr r0, [sp, 0x84]
+ ldr r1, [sp, 0x8C]
+ bl StringCopy10
+ adds r0, r4, 0
+ movs r1, 0x7
+ ldr r2, [sp, 0x88]
+ bl GetMonData
+ mov r2, sp
+ movs r6, 0
+_080338CC:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0x57
+ bls _080338CC
+ b _08033D2E
+ .align 2, 0
+_080338DC: .4byte gEnemyParty
+_080338E0: .4byte 0xfffffc1f
+_080338E4: .4byte 0xfff07fff
+_080338E8: .4byte 0xfffffe0f
+_080338EC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080338F8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ b _08033C66
+ .align 2, 0
+_080338F8: .4byte gEnemyParty
+_080338FC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033908 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xC
+ b _08033C66
+ .align 2, 0
+_08033908: .4byte gEnemyParty
+_0803390C:
+ movs r6, 0
+ add r2, sp, 0x58
+ mov r9, r2
+ add r0, sp, 0x60
+ mov r10, r0
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08033970 @ =gEnemyParty
+ adds r4, r1, r0
+ mov r8, r9
+_08033922:
+ 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, r10
+ adds r1, r2, r6
+ strb r0, [r1]
+ movs r0, 0x2
+ add r8, r0
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08033922
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033970 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r9
+ strb r0, [r1, 0xC]
+ mov r2, r9
+ movs r6, 0
+_08033960:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0xF
+ bls _08033960
+ b _08033D2E
+ .align 2, 0
+_08033970: .4byte gEnemyParty
+_08033974:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803398C @ =gEnemyParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _08033C66
+ .align 2, 0
+_0803398C: .4byte gEnemyParty
+_08033990:
+ movs r6, 0
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r2, _080339C8 @ =gEnemyParty
+ mov r8, r2
+_0803399C:
+ 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, 0x1
+ cmp r6, 0x3
+ ble _0803399C
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080339C8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ adds r1, r7, r6
+ strb r0, [r1]
+ adds r6, 0x1
+ b _08033D2E
+ .align 2, 0
+_080339C8: .4byte gEnemyParty
+_080339CC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080339E4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x8
+ b _08033D26
+ .align 2, 0
+_080339E4: .4byte gEnemyParty
+_080339E8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080339F4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1
+ b _08033A02
+ .align 2, 0
+_080339F4: .4byte gEnemyParty
+_080339F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A24 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x19
+_08033A02:
+ bl GetMonData
+ adds r1, r0, 0
+ strb r1, [r7]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r0, 16
+ strb r0, [r7, 0x2]
+ movs r6, 0x3
+ b _08033D2E
+ .align 2, 0
+_08033A24: .4byte gEnemyParty
+_08033A28:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A34 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1A
+ b _08033D26
+ .align 2, 0
+_08033A34: .4byte gEnemyParty
+_08033A38:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A44 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1B
+ b _08033D26
+ .align 2, 0
+_08033A44: .4byte gEnemyParty
+_08033A48:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A54 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1C
+ b _08033D26
+ .align 2, 0
+_08033A54: .4byte gEnemyParty
+_08033A58:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A64 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1D
+ b _08033D26
+ .align 2, 0
+_08033A64: .4byte gEnemyParty
+_08033A68:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A74 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1E
+ b _08033D26
+ .align 2, 0
+_08033A74: .4byte gEnemyParty
+_08033A78:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A84 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1F
+ b _08033D26
+ .align 2, 0
+_08033A84: .4byte gEnemyParty
+_08033A88:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A94 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x20
+ b _08033D26
+ .align 2, 0
+_08033A94: .4byte gEnemyParty
+_08033A98:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033AA4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x22
+ b _08033D26
+ .align 2, 0
+_08033AA4: .4byte gEnemyParty
+_08033AA8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033AB4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x23
+ b _08033D26
+ .align 2, 0
+_08033AB4: .4byte gEnemyParty
+_08033AB8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033AC4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x24
+ b _08033D26
+ .align 2, 0
+_08033AC4: .4byte gEnemyParty
+_08033AC8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033AD4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x25
+ b _08033D26
+ .align 2, 0
+_08033AD4: .4byte gEnemyParty
+_08033AD8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033AE4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x26
+ b _08033D26
+ .align 2, 0
+_08033AE4: .4byte gEnemyParty
+_08033AE8:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08033B34 @ =gEnemyParty
+ adds 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, 0x1]
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl GetMonData
+ strb r0, [r7, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl GetMonData
+ strb r0, [r7, 0x3]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl GetMonData
+ strb r0, [r7, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ bl GetMonData
+ strb r0, [r7, 0x5]
+ movs r6, 0x6
+ b _08033D2E
+ .align 2, 0
+_08033B34: .4byte gEnemyParty
+_08033B38:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033B44 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x27
+ b _08033D26
+ .align 2, 0
+_08033B44: .4byte gEnemyParty
+_08033B48:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033B54 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x28
+ b _08033D26
+ .align 2, 0
+_08033B54: .4byte gEnemyParty
+_08033B58:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033B64 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x29
+ b _08033D26
+ .align 2, 0
+_08033B64: .4byte gEnemyParty
+_08033B68:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033B74 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2A
+ b _08033D26
+ .align 2, 0
+_08033B74: .4byte gEnemyParty
+_08033B78:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033B84 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2B
+ b _08033D26
+ .align 2, 0
+_08033B84: .4byte gEnemyParty
+_08033B88:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033B94 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2C
+ b _08033D26
+ .align 2, 0
+_08033B94: .4byte gEnemyParty
+_08033B98:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033BA4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0
+ b _08033BC2
+ .align 2, 0
+_08033BA4: .4byte gEnemyParty
+_08033BA8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033BB4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x9
+ b _08033C66
+ .align 2, 0
+_08033BB4: .4byte gEnemyParty
+_08033BB8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033BE8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x37
+_08033BC2:
+ bl GetMonData
+ adds r1, r0, 0
+ strb r1, [r7]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r0, 16
+ strb r0, [r7, 0x2]
+ lsrs r0, r1, 24
+ strb r0, [r7, 0x3]
+ movs r6, 0x4
+ b _08033D2E
+ .align 2, 0
+_08033BE8: .4byte gEnemyParty
+_08033BEC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033BF8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x38
+ b _08033D26
+ .align 2, 0
+_08033BF8: .4byte gEnemyParty
+_08033BFC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C08 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x39
+ b _08033C66
+ .align 2, 0
+_08033C08: .4byte gEnemyParty
+_08033C0C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C18 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3A
+ b _08033C66
+ .align 2, 0
+_08033C18: .4byte gEnemyParty
+_08033C1C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C28 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3B
+ b _08033C66
+ .align 2, 0
+_08033C28: .4byte gEnemyParty
+_08033C2C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C38 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3C
+ b _08033C66
+ .align 2, 0
+_08033C38: .4byte gEnemyParty
+_08033C3C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C48 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3D
+ b _08033C66
+ .align 2, 0
+_08033C48: .4byte gEnemyParty
+_08033C4C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C58 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3E
+ b _08033C66
+ .align 2, 0
+_08033C58: .4byte gEnemyParty
+_08033C5C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C78 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3F
+_08033C66:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ strb r0, [r7]
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r6, 0x2
+ b _08033D2E
+ .align 2, 0
+_08033C78: .4byte gEnemyParty
+_08033C7C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C88 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x16
+ b _08033D26
+ .align 2, 0
+_08033C88: .4byte gEnemyParty
+_08033C8C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C98 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x17
+ b _08033D26
+ .align 2, 0
+_08033C98: .4byte gEnemyParty
+_08033C9C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033CA8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x18
+ b _08033D26
+ .align 2, 0
+_08033CA8: .4byte gEnemyParty
+_08033CAC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033CB8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x21
+ b _08033D26
+ .align 2, 0
+_08033CB8: .4byte gEnemyParty
+_08033CBC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033CC8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2F
+ b _08033D26
+ .align 2, 0
+_08033CC8: .4byte gEnemyParty
+_08033CCC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033CD8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x30
+ b _08033D26
+ .align 2, 0
+_08033CD8: .4byte gEnemyParty
+_08033CDC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033CE8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x32
+ b _08033D26
+ .align 2, 0
+_08033CE8: .4byte gEnemyParty
+_08033CEC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033CF8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x33
+ b _08033D26
+ .align 2, 0
+_08033CF8: .4byte gEnemyParty
+_08033CFC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033D08 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x34
+ b _08033D26
+ .align 2, 0
+_08033D08: .4byte gEnemyParty
+_08033D0C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033D18 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x35
+ b _08033D26
+ .align 2, 0
+_08033D18: .4byte gEnemyParty
+_08033D1C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033D40 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x36
+_08033D26:
+ bl GetMonData
+ strb r0, [r7]
+ movs r6, 0x1
+_08033D2E:
+ adds r0, r6, 0
+ add sp, 0x90
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08033D40: .4byte gEnemyParty
+ thumb_func_end sub_8033598
+
+ thumb_func_start dp01t_01_2_read_pokmon_data_slice
+dp01t_01_2_read_pokmon_data_slice: @ 8033D44
+ push {r4-r7,lr}
+ sub sp, 0x58
+ ldr r2, _08033DBC @ =gUnknown_02024A6A
+ ldr r5, _08033DC0 @ =gUnknown_02024A60
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ adds r4, r2, 0
+ muls r4, r0
+ ldr r3, _08033DC4 @ =gUnknown_02023A60
+ lsls r1, 9
+ adds r0, r3, 0x1
+ adds r0, r1, r0
+ ldrb r2, [r0]
+ ldr r0, _08033DC8 @ =gEnemyParty
+ adds r0, r2, r0
+ adds r6, r4, r0
+ mov r0, sp
+ adds r4, r0, r2
+ movs r2, 0
+ adds r0, r3, 0x2
+ adds r1, r0
+ adds r7, r5, 0
+ mov r12, r3
+ ldrb r1, [r1]
+ cmp r2, r1
+ bcs _08033D9A
+ adds r3, r0, 0
+_08033D80:
+ adds r1, r4, r2
+ adds r0, r6, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _08033D80
+_08033D9A:
+ ldrb r0, [r7]
+ lsls r0, 9
+ mov r1, r12
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ adds r2, r4, 0
+ bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl sub_80334EC
+ add sp, 0x58
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08033DBC: .4byte gUnknown_02024A6A
+_08033DC0: .4byte gUnknown_02024A60
+_08033DC4: .4byte gUnknown_02023A60
+_08033DC8: .4byte gEnemyParty
+ thumb_func_end dp01t_01_2_read_pokmon_data_slice
+
+ thumb_func_start dp01t_02_7_setattr
+dp01t_02_7_setattr: @ 8033DCC
+ push {r4,r5,lr}
+ ldr r1, _08033DF0 @ =gUnknown_02023A60
+ ldr r0, _08033DF4 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08033DFC
+ ldr r0, _08033DF8 @ =gUnknown_02024A6A
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ bl sub_8033E24
+ b _08033E1A
+ .align 2, 0
+_08033DF0: .4byte gUnknown_02023A60
+_08033DF4: .4byte gUnknown_02024A60
+_08033DF8: .4byte gUnknown_02024A6A
+_08033DFC:
+ ldrb r4, [r1]
+ movs r5, 0
+_08033E00:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _08033E0E
+ adds r0, r5, 0
+ bl sub_8033E24
+_08033E0E:
+ lsrs r4, 1
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _08033E00
+_08033E1A:
+ bl sub_80334EC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_02_7_setattr
+
+ thumb_func_start sub_8033E24
+sub_8033E24: @ 8033E24
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x38
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r3, _08033E5C @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsls r0, 9
+ ldr r2, _08033E60 @ =gUnknown_02023A63
+ adds r4, r0, r2
+ adds r7, r4, 0
+ subs r1, r2, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r6, r3, 0
+ adds r3, r2, 0
+ cmp r0, 0x3B
+ bls _08033E52
+ bl _08034730
+_08033E52:
+ lsls r0, 2
+ ldr r1, _08033E64 @ =_08033E68
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08033E5C: .4byte gUnknown_02024A60
+_08033E60: .4byte gUnknown_02023A63
+_08033E64: .4byte _08033E68
+ .align 2, 0
+_08033E68:
+ .4byte _08033F58
+ .4byte _080340F0
+ .4byte _0803410C
+ .4byte _08034128
+ .4byte _0803417C
+ .4byte _0803417C
+ .4byte _0803417C
+ .4byte _0803417C
+ .4byte _0803419C
+ .4byte _08034204
+ .4byte _08034204
+ .4byte _08034204
+ .4byte _08034204
+ .4byte _08034730
+ .4byte _08034730
+ .4byte _08034730
+ .4byte _08034730
+ .4byte _0803422C
+ .4byte _08034248
+ .4byte _08034264
+ .4byte _08034280
+ .4byte _0803429C
+ .4byte _080342B8
+ .4byte _080342D4
+ .4byte _080342F0
+ .4byte _0803430C
+ .4byte _08034328
+ .4byte _08034344
+ .4byte _08034360
+ .4byte _0803437C
+ .4byte _08034398
+ .4byte _080343B4
+ .4byte _08034428
+ .4byte _08034444
+ .4byte _08034460
+ .4byte _0803447C
+ .4byte _08034498
+ .4byte _080344B4
+ .4byte _080344D0
+ .4byte _080344EC
+ .4byte _08034508
+ .4byte _08034524
+ .4byte _08034540
+ .4byte _0803455C
+ .4byte _08034578
+ .4byte _08034594
+ .4byte _080345B0
+ .4byte _080345CC
+ .4byte _080345E8
+ .4byte _08034604
+ .4byte _08034620
+ .4byte _0803463C
+ .4byte _08034658
+ .4byte _08034674
+ .4byte _08034690
+ .4byte _080346AC
+ .4byte _080346C8
+ .4byte _080346E4
+ .4byte _08034700
+ .4byte _0803471C
+_08033F58:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _080340EC @ =gEnemyParty
+ adds 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, r7
+ mov r10, r0
+ adds r0, r7, 0
+ adds r0, 0x2B
+ str r0, [sp, 0x20]
+ adds r0, 0x19
+ str r0, [sp, 0x28]
+ adds r0, 0x4
+ str r0, [sp, 0x2C]
+ adds r0, 0x4
+ str r0, [sp, 0x30]
+ subs r0, 0x22
+ str r0, [sp, 0x1C]
+ subs r0, 0x2
+ str r0, [sp, 0x18]
+ adds r0, 0x4
+ str r0, [sp, 0x24]
+ adds r0, r7, 0x2
+ str r0, [sp, 0x4]
+ adds r0, r7, 0x4
+ str r0, [sp, 0x8]
+ adds r0, r7, 0x6
+ str r0, [sp, 0xC]
+ adds r0, 0x2
+ str r0, [sp, 0x10]
+ adds r0, 0x2
+ str r0, [sp, 0x14]
+ mov r9, r4
+ adds r6, r7, 0
+ adds r6, 0x24
+ adds r4, r7, 0
+ adds r4, 0xC
+_08033FBE:
+ mov r1, r8
+ adds r1, 0xD
+ mov r0, r9
+ adds r2, r4, 0
+ bl SetMonData
+ mov r1, r8
+ adds r1, 0x11
+ mov r0, r9
+ adds r2, r6, 0
+ bl SetMonData
+ adds r6, 0x1
+ adds r4, 0x2
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0x3
+ ble _08033FBE
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _080340EC @ =gEnemyParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ mov r2, r10
+ 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, 27
+ lsrs r0, 27
+ 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, 22
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x28
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrb r0, [r7, 0x15]
+ lsls r0, 25
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x29
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldr r0, [r7, 0x14]
+ lsls r0, 12
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrh r0, [r7, 0x16]
+ lsls r0, 23
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrb r0, [r7, 0x17]
+ lsls r0, 26
+ lsrs r0, 27
+ 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, 0x4]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3C
+ ldr r2, [sp, 0x8]
+ 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 _08034730
+ .align 2, 0
+_080340EC: .4byte gEnemyParty
+_080340F0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034108 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0xB
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034108: .4byte gEnemyParty
+_0803410C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034124 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0xC
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034124: .4byte gEnemyParty
+_08034128:
+ movs r0, 0
+ mov r8, r0
+ movs r0, 0xC
+ adds r0, r4
+ mov r9, r0
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08034178 @ =gEnemyParty
+ adds r7, r1, r0
+ adds r6, r4, 0
+ adds r6, 0x8
+_08034140:
+ 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, 0x1
+ adds r4, 0x2
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0x3
+ ble _08034140
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034178 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ mov r2, r9
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034178: .4byte gEnemyParty
+_0803417C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034194 @ =gEnemyParty
+ adds r0, r1
+ ldr r3, _08034198 @ =gUnknown_02023A60
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _0803421A
+ .align 2, 0
+_08034194: .4byte gEnemyParty
+_08034198: .4byte gUnknown_02023A60
+_0803419C:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08034200 @ =gEnemyParty
+ adds r4, r0
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ adds r0, r4, 0
+ movs r1, 0x11
+ str r3, [sp, 0x34]
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x12
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x2
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x13
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x3
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x14
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x4
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034200: .4byte gEnemyParty
+_08034204:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034224 @ =gEnemyParty
+ adds r0, r1
+ ldr r3, _08034228 @ =gUnknown_02023A60
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x8
+_0803421A:
+ adds r3, 0x3
+ adds r2, r3
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034224: .4byte gEnemyParty
+_08034228: .4byte gUnknown_02023A60
+_0803422C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034244 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034244: .4byte gEnemyParty
+_08034248:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034260 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x19
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034260: .4byte gEnemyParty
+_08034264:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803427C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1A
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_0803427C: .4byte gEnemyParty
+_08034280:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034298 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1B
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034298: .4byte gEnemyParty
+_0803429C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080342B4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1C
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080342B4: .4byte gEnemyParty
+_080342B8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080342D0 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1D
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080342D0: .4byte gEnemyParty
+_080342D4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080342EC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1E
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080342EC: .4byte gEnemyParty
+_080342F0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034308 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1F
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034308: .4byte gEnemyParty
+_0803430C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034324 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x20
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034324: .4byte gEnemyParty
+_08034328:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034340 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x22
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034340: .4byte gEnemyParty
+_08034344:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803435C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x23
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_0803435C: .4byte gEnemyParty
+_08034360:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034378 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x24
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034378: .4byte gEnemyParty
+_0803437C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034394 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x25
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034394: .4byte gEnemyParty
+_08034398:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080343B0 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x26
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080343B0: .4byte gEnemyParty
+_080343B4:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08034424 @ =gEnemyParty
+ adds r4, r0
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ adds r0, r4, 0
+ movs r1, 0x27
+ str r3, [sp, 0x34]
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x2
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x3
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x4
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x5
+ adds r2, r0
+ adds r0, r4, 0
+ b _080344C2
+ .align 2, 0
+_08034424: .4byte gEnemyParty
+_08034428:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034440 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x27
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034440: .4byte gEnemyParty
+_08034444:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803445C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x28
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_0803445C: .4byte gEnemyParty
+_08034460:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034478 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x29
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034478: .4byte gEnemyParty
+_0803447C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034494 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2A
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034494: .4byte gEnemyParty
+_08034498:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080344B0 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2B
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080344B0: .4byte gEnemyParty
+_080344B4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080344CC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+_080344C2:
+ movs r1, 0x2C
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080344CC: .4byte gEnemyParty
+_080344D0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080344E8 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080344E8: .4byte gEnemyParty
+_080344EC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034504 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x9
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034504: .4byte gEnemyParty
+_08034508:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034520 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x37
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034520: .4byte gEnemyParty
+_08034524:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803453C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x38
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_0803453C: .4byte gEnemyParty
+_08034540:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034558 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x39
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034558: .4byte gEnemyParty
+_0803455C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034574 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3A
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034574: .4byte gEnemyParty
+_08034578:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034590 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3B
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034590: .4byte gEnemyParty
+_08034594:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080345AC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3C
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080345AC: .4byte gEnemyParty
+_080345B0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080345C8 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3D
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080345C8: .4byte gEnemyParty
+_080345CC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080345E4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3E
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080345E4: .4byte gEnemyParty
+_080345E8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034600 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3F
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034600: .4byte gEnemyParty
+_08034604:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803461C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x16
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_0803461C: .4byte gEnemyParty
+_08034620:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034638 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x17
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034638: .4byte gEnemyParty
+_0803463C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034654 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x18
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034654: .4byte gEnemyParty
+_08034658:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034670 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x21
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034670: .4byte gEnemyParty
+_08034674:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803468C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2F
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_0803468C: .4byte gEnemyParty
+_08034690:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080346A8 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x30
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080346A8: .4byte gEnemyParty
+_080346AC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080346C4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x32
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080346C4: .4byte gEnemyParty
+_080346C8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080346E0 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x33
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080346E0: .4byte gEnemyParty
+_080346E4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080346FC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x34
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080346FC: .4byte gEnemyParty
+_08034700:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034718 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x35
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034718: .4byte gEnemyParty
+_0803471C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034740 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x36
+ bl SetMonData
+_08034730:
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08034740: .4byte gEnemyParty
+ thumb_func_end sub_8033E24
+
+ thumb_func_start sub_8034744
+sub_8034744: @ 8034744
+ push {r4-r7,lr}
+ ldr r1, _080347A8 @ =gUnknown_02024A6A
+ ldr r7, _080347AC @ =gUnknown_02024A60
+ ldrb r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ adds r3, r1, 0
+ muls r3, r0
+ ldr r4, _080347B0 @ =gUnknown_02023A60
+ lsls r2, 9
+ adds r0, r4, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ ldr r1, _080347B4 @ =gEnemyParty
+ adds r0, r1
+ adds r5, r3, r0
+ movs r3, 0
+ adds r0, r4, 0x2
+ adds r2, r0
+ ldrb r2, [r2]
+ cmp r3, r2
+ bcs _0803479C
+ adds r6, r4, 0
+ adds r2, r7, 0
+ adds r4, r0, 0
+_0803477A:
+ adds r1, r5, r3
+ ldrb r0, [r2]
+ lsls r0, 9
+ adds r0, 0x3
+ adds r0, r3, r0
+ adds r0, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r2]
+ lsls r0, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcc _0803477A
+_0803479C:
+ bl sub_80334EC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080347A8: .4byte gUnknown_02024A6A
+_080347AC: .4byte gUnknown_02024A60
+_080347B0: .4byte gUnknown_02023A60
+_080347B4: .4byte gEnemyParty
+ thumb_func_end sub_8034744
+
+ thumb_func_start sub_80347B8
+sub_80347B8: @ 80347B8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r6, _080348E8 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ lsls r0, 1
+ ldr r1, _080348EC @ =gUnknown_02024A6A
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r7, 0x64
+ muls r0, r7
+ ldr r2, _080348F0 @ =gEnemyParty
+ mov r10, r2
+ add r0, r10
+ movs r1, 0xB
+ bl GetMonData
+ mov r8, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ ldr r2, _080348EC @ =gUnknown_02024A6A
+ adds r0, r2
+ ldrh r0, [r0]
+ muls r0, r7
+ add r0, r10
+ bl sub_8031794
+ ldrb r0, [r6]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _080348F4 @ =gUnknown_02024E8C
+ mov r9, r0
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldrb r0, [r6]
+ bl sub_8077F68
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r6]
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r9
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r4, _080348F8 @ =gUnknown_02024BE0
+ ldrb r1, [r6]
+ adds r1, r4
+ strb r0, [r1]
+ ldr r5, _080348FC @ =gSprites
+ ldrb r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08034900 @ =0x0000ff10
+ strh r1, [r0, 0x24]
+ ldrb r2, [r6]
+ adds r0, r2, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x2E]
+ ldrb r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds 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, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r2, [r6]
+ adds r4, r2, r4
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08034904 @ =gUnknown_02024E84
+ adds r2, r1
+ ldrb r1, [r2]
+ bl StartSpriteAnim
+ ldrb r4, [r6]
+ lsls r0, r4, 1
+ ldr r2, _080348EC @ =gUnknown_02024A6A
+ adds r0, r2
+ ldrh r0, [r0]
+ muls r0, r7
+ add r0, r10
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8032984
+ ldr r1, _08034908 @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803490C @ =sub_8033018
+ str r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080348E8: .4byte gUnknown_02024A60
+_080348EC: .4byte gUnknown_02024A6A
+_080348F0: .4byte gEnemyParty
+_080348F4: .4byte gUnknown_02024E8C
+_080348F8: .4byte gUnknown_02024BE0
+_080348FC: .4byte gSprites
+_08034900: .4byte 0x0000ff10
+_08034904: .4byte gUnknown_02024E84
+_08034908: .4byte gUnknown_03004330
+_0803490C: .4byte sub_8033018
+ thumb_func_end sub_80347B8
+
+ thumb_func_start sub_8034910
+sub_8034910: @ 8034910
+ push {r4,lr}
+ ldr r1, _08034948 @ =gUnknown_02024A6A
+ ldr r4, _0803494C @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r2, r0, 1
+ adds r2, r1
+ ldr r3, _08034950 @ =gUnknown_02023A60
+ lsls r0, 9
+ adds r1, r3, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r2]
+ ldrb r0, [r4]
+ lsls r1, r0, 9
+ adds r3, 0x2
+ adds r1, r3
+ ldrb r1, [r1]
+ bl sub_803495C
+ ldr r1, _08034954 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08034958 @ =sub_80333D4
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08034948: .4byte gUnknown_02024A6A
+_0803494C: .4byte gUnknown_02024A60
+_08034950: .4byte gUnknown_02023A60
+_08034954: .4byte gUnknown_03004330
+_08034958: .4byte sub_80333D4
+ thumb_func_end sub_8034910
+
+ thumb_func_start sub_803495C
+sub_803495C: @ 803495C
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl sub_8032AA8
+ ldr r0, _08034AB8 @ =gUnknown_02024A6A
+ lsls r4, r6, 1
+ adds r4, r0
+ ldr r0, _08034ABC @ =gUnknown_02023A60
+ lsls r1, r6, 9
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ strh r0, [r4]
+ ldrh r0, [r4]
+ movs r1, 0x64
+ mov r9, r1
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r5, _08034AC0 @ =gEnemyParty
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ mov r8, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, _08034AC4 @ =sub_80312F0
+ bl object_new_hidden_with_callback
+ ldr r1, _08034AC8 @ =gUnknown_0300434C
+ mov r10, r1
+ add r10, r6
+ mov r1, r10
+ strb r0, [r1]
+ ldrh r0, [r4]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r5
+ adds r1, r6, 0
+ bl sub_8031794
+ adds r0, r6, 0
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _08034ACC @ =gUnknown_02024E8C
+ mov r9, r0
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ bl sub_8077F68
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r9
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r4, _08034AD0 @ =gUnknown_02024BE0
+ adds r4, r6, r4
+ strb r0, [r4]
+ ldr r5, _08034AD4 @ =gSprites
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x2E]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x32]
+ mov r0, r10
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r4]
+ strh r1, [r0, 0x30]
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, r6, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08034AD8 @ =gUnknown_02024E84
+ adds r6, r1
+ ldrb r1, [r6]
+ bl StartSpriteAnim
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _08034ADC @ =SpriteCallbackDummy
+ str r1, [r0]
+ movs r0, 0
+ movs r1, 0xFE
+ bl sub_8046400
+ mov r1, r10
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x2E]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08034AB8: .4byte gUnknown_02024A6A
+_08034ABC: .4byte gUnknown_02023A60
+_08034AC0: .4byte gEnemyParty
+_08034AC4: .4byte sub_80312F0
+_08034AC8: .4byte gUnknown_0300434C
+_08034ACC: .4byte gUnknown_02024E8C
+_08034AD0: .4byte gUnknown_02024BE0
+_08034AD4: .4byte gSprites
+_08034AD8: .4byte gUnknown_02024E84
+_08034ADC: .4byte SpriteCallbackDummy
+ thumb_func_end sub_803495C
+
+ thumb_func_start sub_8034AE0
+sub_8034AE0: @ 8034AE0
+ push {r4-r6,lr}
+ ldr r1, _08034B10 @ =gUnknown_02023A60
+ ldr r6, _08034B14 @ =gUnknown_02024A60
+ ldrb r2, [r6]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r3, [r0]
+ cmp r3, 0
+ bne _08034B24
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _08034B18 @ =0x02017810
+ adds r0, r1
+ strb r3, [r0, 0x4]
+ ldr r1, _08034B1C @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08034B20 @ =sub_8034B74
+ str r1, [r0]
+ b _08034B60
+ .align 2, 0
+_08034B10: .4byte gUnknown_02023A60
+_08034B14: .4byte gUnknown_02024A60
+_08034B18: .4byte 0x02017810
+_08034B1C: .4byte gUnknown_03004330
+_08034B20: .4byte sub_8034B74
+_08034B24:
+ ldr r5, _08034B68 @ =gUnknown_02024BE0
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08034B6C @ =gSprites
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldrb r0, [r6]
+ bl sub_8032A08
+ ldr r1, _08034B70 @ =gUnknown_03004340
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl sub_80334EC
+_08034B60:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08034B68: .4byte gUnknown_02024BE0
+_08034B6C: .4byte gSprites
+_08034B70: .4byte gUnknown_03004340
+ thumb_func_end sub_8034AE0
+
+ thumb_func_start sub_8034B74
+sub_8034B74: @ 8034B74
+ push {r4,r5,lr}
+ ldr r5, _08034B90 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r4, _08034B94 @ =0x02017810
+ adds r3, r0, r4
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ beq _08034B98
+ cmp r0, 0x1
+ beq _08034BC4
+ b _08034BEC
+ .align 2, 0
+_08034B90: .4byte gUnknown_02024A60
+_08034B94: .4byte 0x02017810
+_08034B98:
+ lsls r0, r2, 2
+ adds r1, r4, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08034BB4
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_08034BB4:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08034BEC
+_08034BC4:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _08034BEC
+ strb r0, [r3, 0x4]
+ ldrb r2, [r5]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x2
+ bl move_anim_start_t4
+ ldr r1, _08034BF4 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08034BF8 @ =sub_8033160
+ str r1, [r0]
+_08034BEC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08034BF4: .4byte gUnknown_03004330
+_08034BF8: .4byte sub_8033160
+ thumb_func_end sub_8034B74
+
+ thumb_func_start sub_8034BFC
+sub_8034BFC: @ 8034BFC
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ ldr r3, _08034C18 @ =gTrainerBattleOpponent
+ ldrh r1, [r3]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ bne _08034C1C
+ bl GetSecretBaseTrainerPicIndex
+ b _08034C42
+ .align 2, 0
+_08034C18: .4byte gTrainerBattleOpponent
+_08034C1C:
+ ldr r0, _08034C30 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08034C34
+ bl get_trainer_class_pic_index
+ b _08034C42
+ .align 2, 0
+_08034C30: .4byte gUnknown_020239F8
+_08034C34:
+ movs r0, 0x80
+ lsls r0, 4
+ ands r0, r1
+ cmp r0, 0
+ beq _08034C48
+ bl sub_8135FBC
+_08034C42:
+ lsls r0, 24
+ lsrs r0, 24
+ b _08034C56
+_08034C48:
+ ldr r2, _08034D88 @ =gTrainers
+ ldrh r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x3]
+_08034C56:
+ mov r9, r0
+ ldr r0, _08034D8C @ =gUnknown_02024A60
+ mov r8, r0
+ ldrb r1, [r0]
+ mov r0, r9
+ bl sub_8031A6C
+ mov r1, r8
+ ldrb r0, [r1]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r9
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r5, _08034D90 @ =gUnknown_02024E8C
+ ldr r1, _08034D94 @ =gTrainerFrontPicCoords
+ mov r2, r9
+ lsls r0, r2, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r4, 0x8
+ subs r4, r0
+ lsls r4, 18
+ movs r0, 0xA0
+ lsls r0, 14
+ adds r4, r0
+ asrs r4, 16
+ mov r1, r8
+ ldrb r0, [r1]
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r5, 0
+ movs r1, 0xB0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r5, _08034D98 @ =gUnknown_02024BE0
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ strb r0, [r1]
+ ldr r4, _08034D9C @ =gSprites
+ ldrb r0, [r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _08034DA0 @ =0x0000ff10
+ strh r1, [r0, 0x24]
+ ldrb r0, [r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x2
+ strh r1, [r0, 0x2E]
+ ldr r0, _08034DA4 @ =gTrainerFrontPicPaletteTable
+ mov r1, r9
+ lsls r6, r1, 3
+ adds r0, r6, r0
+ ldrh r0, [r0, 0x4]
+ bl IndexOfSpritePaletteTag
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ ldrb r1, [r1]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r4
+ lsls r0, 4
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xF
+ ands r1, r3
+ orrs r1, r0
+ strb r1, [r2, 0x5]
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r1, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r1, 0x38]
+ ldr r0, _08034DA8 @ =gTrainerFrontPicTable
+ adds r6, r0
+ ldrh r0, [r6, 0x6]
+ bl GetSpriteTileStartByTag
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldr r2, _08034DAC @ =0x000003ff
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _08034DB0 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r2, r9
+ strh r2, [r0, 0x6]
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _08034DB4 @ =sub_80313A0
+ str r1, [r0]
+ ldr r1, _08034DB8 @ =gUnknown_03004330
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08034DBC @ =sub_8032B4C
+ str r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08034D88: .4byte gTrainers
+_08034D8C: .4byte gUnknown_02024A60
+_08034D90: .4byte gUnknown_02024E8C
+_08034D94: .4byte gTrainerFrontPicCoords
+_08034D98: .4byte gUnknown_02024BE0
+_08034D9C: .4byte gSprites
+_08034DA0: .4byte 0x0000ff10
+_08034DA4: .4byte gTrainerFrontPicPaletteTable
+_08034DA8: .4byte gTrainerFrontPicTable
+_08034DAC: .4byte 0x000003ff
+_08034DB0: .4byte 0xfffffc00
+_08034DB4: .4byte sub_80313A0
+_08034DB8: .4byte gUnknown_03004330
+_08034DBC: .4byte sub_8032B4C
+ thumb_func_end sub_8034BFC
+
+ thumb_func_start sub_8034DC0
+sub_8034DC0: @ 8034DC0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ ldr r3, _08034DDC @ =gTrainerBattleOpponent
+ ldrh r1, [r3]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ bne _08034DE0
+ bl GetSecretBaseTrainerPicIndex
+ b _08034E06
+ .align 2, 0
+_08034DDC: .4byte gTrainerBattleOpponent
+_08034DE0:
+ ldr r0, _08034DF4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08034DF8
+ bl get_trainer_class_pic_index
+ b _08034E06
+ .align 2, 0
+_08034DF4: .4byte gUnknown_020239F8
+_08034DF8:
+ movs r0, 0x80
+ lsls r0, 4
+ ands r0, r1
+ cmp r0, 0
+ beq _08034E0C
+ bl sub_8135FBC
+_08034E06:
+ lsls r0, 24
+ lsrs r0, 24
+ b _08034E1A
+_08034E0C:
+ ldr r2, _08034F4C @ =gTrainers
+ ldrh r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x3]
+_08034E1A:
+ mov r9, r0
+ ldr r0, _08034F50 @ =gUnknown_02024A60
+ mov r8, r0
+ ldrb r1, [r0]
+ mov r0, r9
+ bl sub_8031A6C
+ mov r1, r8
+ ldrb r0, [r1]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r9
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r0, _08034F54 @ =gUnknown_02024E8C
+ ldr r2, _08034F58 @ =gTrainerFrontPicCoords
+ mov r3, r9
+ lsls r1, r3, 2
+ adds r1, r2
+ ldrb r1, [r1]
+ movs r2, 0x8
+ subs r2, r1
+ lsls r2, 18
+ movs r1, 0xA0
+ lsls r1, 14
+ adds r2, r1
+ asrs r2, 16
+ movs r1, 0xB0
+ movs r3, 0x1E
+ bl CreateSprite
+ ldr r5, _08034F5C @ =gUnknown_02024BE0
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ strb r0, [r1]
+ ldr r4, _08034F60 @ =gSprites
+ ldrb r0, [r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x60
+ strh r1, [r0, 0x24]
+ ldrb r0, [r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x20]
+ adds r1, 0x20
+ strh r1, [r0, 0x20]
+ ldrb r0, [r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _08034F64 @ =0x0000fffe
+ strh r1, [r0, 0x2E]
+ ldr r0, _08034F68 @ =gTrainerFrontPicPaletteTable
+ mov r3, r9
+ lsls r6, r3, 3
+ adds r0, r6, r0
+ ldrh r0, [r0, 0x4]
+ bl IndexOfSpritePaletteTag
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ ldrb r1, [r1]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r4
+ lsls r0, 4
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xF
+ ands r1, r3
+ orrs r1, r0
+ strb r1, [r2, 0x5]
+ mov r3, r8
+ ldrb r0, [r3]
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r1, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r1, 0x38]
+ ldr r0, _08034F6C @ =gTrainerFrontPicTable
+ adds r6, r0
+ ldrh r0, [r6, 0x6]
+ bl GetSpriteTileStartByTag
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldr r2, _08034F70 @ =0x000003ff
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _08034F74 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ mov r3, r8
+ ldrb r0, [r3]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r1, r9
+ strh r1, [r0, 0x6]
+ ldrb r0, [r3]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _08034F78 @ =sub_80313A0
+ str r1, [r0]
+ ldr r1, _08034F7C @ =gUnknown_03004330
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08034F80 @ =sub_8032B84
+ str r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08034F4C: .4byte gTrainers
+_08034F50: .4byte gUnknown_02024A60
+_08034F54: .4byte gUnknown_02024E8C
+_08034F58: .4byte gTrainerFrontPicCoords
+_08034F5C: .4byte gUnknown_02024BE0
+_08034F60: .4byte gSprites
+_08034F64: .4byte 0x0000fffe
+_08034F68: .4byte gTrainerFrontPicPaletteTable
+_08034F6C: .4byte gTrainerFrontPicTable
+_08034F70: .4byte 0x000003ff
+_08034F74: .4byte 0xfffffc00
+_08034F78: .4byte sub_80313A0
+_08034F7C: .4byte gUnknown_03004330
+_08034F80: .4byte sub_8032B84
+ thumb_func_end sub_8034DC0
+
+ thumb_func_start sub_8034F84
+sub_8034F84: @ 8034F84
+ push {r4-r6,lr}
+ ldr r6, _08035014 @ =gUnknown_02024BE0
+ ldr r4, _08035018 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _0803501C @ =gSprites
+ adds r0, r5
+ bl oamt_add_pos2_onto_pos1
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x23
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x8C
+ lsls r1, 1
+ strh r1, [r0, 0x32]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _08035020 @ =sub_8078B34
+ str r1, [r0]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08035024 @ =SpriteCallbackDummy
+ bl oamt_set_x3A_32
+ ldr r1, _08035028 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803502C @ =sub_8032BBC
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035014: .4byte gUnknown_02024BE0
+_08035018: .4byte gUnknown_02024A60
+_0803501C: .4byte gSprites
+_08035020: .4byte sub_8078B34
+_08035024: .4byte SpriteCallbackDummy
+_08035028: .4byte gUnknown_03004330
+_0803502C: .4byte sub_8032BBC
+ thumb_func_end sub_8034F84
+
+ thumb_func_start sub_8035030
+sub_8035030: @ 8035030
+ push {r4,r5,lr}
+ ldr r5, _08035074 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r4, _08035078 @ =0x02017810
+ adds r3, r0, r4
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ bne _0803507C
+ lsls r0, r2, 2
+ adds r1, r4, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08035062
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_08035062:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _080350B8
+ .align 2, 0
+_08035074: .4byte gUnknown_02024A60
+_08035078: .4byte 0x02017810
+_0803507C:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080350B8
+ strb r0, [r3, 0x4]
+ movs r0, 0x10
+ movs r1, 0x3F
+ bl PlaySE12WithPanning
+ ldr r2, _080350C0 @ =gSprites
+ ldr r1, _080350C4 @ =gUnknown_02024BE0
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080350C8 @ =sub_8010384
+ str r1, [r0]
+ ldr r1, _080350CC @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080350D0 @ =sub_803311C
+ str r1, [r0]
+_080350B8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080350C0: .4byte gSprites
+_080350C4: .4byte gUnknown_02024BE0
+_080350C8: .4byte sub_8010384
+_080350CC: .4byte gUnknown_03004330
+_080350D0: .4byte sub_803311C
+ thumb_func_end sub_8035030
+
+ thumb_func_start sub_80350D4
+sub_80350D4: @ 80350D4
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80350D4
+
+ thumb_func_start sub_80350E0
+sub_80350E0: @ 80350E0
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80350E0
+
+ thumb_func_start sub_80350EC
+sub_80350EC: @ 80350EC
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80350EC
+
+ thumb_func_start sub_80350F8
+sub_80350F8: @ 80350F8
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80350F8
+
+ thumb_func_start sub_8035104
+sub_8035104: @ 8035104
+ push {r4-r6,lr}
+ ldr r6, _080351E8 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08035116
+ b _08035226
+_08035116:
+ ldr r0, _080351EC @ =gUnknown_02023A60
+ mov r12, r0
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r0, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ mov r1, r12
+ adds r1, 0x2
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ ldr r5, _080351F0 @ =gUnknown_0202F7C4
+ mov r1, r12
+ adds r1, 0x3
+ adds r2, r1
+ ldrb r1, [r2]
+ strb r1, [r5]
+ ldr r4, _080351F4 @ =gUnknown_0202F7BC
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x4
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0x5
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 8
+ orrs r3, r1
+ strh r3, [r4]
+ ldr r4, _080351F8 @ =gUnknown_0202F7B8
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x6
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0x7
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r3, r1
+ mov r1, r12
+ adds r1, 0x8
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 16
+ orrs r3, r1
+ mov r1, r12
+ adds r1, 0x9
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 24
+ orrs r3, r1
+ str r3, [r4]
+ ldr r3, _080351FC @ =gUnknown_0202F7BE
+ ldrb r1, [r6]
+ lsls r1, 9
+ mov r2, r12
+ adds r2, 0xA
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r3]
+ ldr r4, _08035200 @ =gUnknown_0202F7C0
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0xC
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0xD
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 8
+ orrs r3, r1
+ strh r3, [r4]
+ ldr r3, _08035204 @ =gUnknown_0202F7B4
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x10
+ adds r2, r1
+ str r2, [r3]
+ ldr r3, _08035208 @ =gUnknown_02024E70
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r3
+ ldr r2, [r2]
+ str r2, [r1]
+ ldrb r1, [r5]
+ bl sub_8031720
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _0803520C
+ bl sub_80334EC
+ b _08035226
+ .align 2, 0
+_080351E8: .4byte gUnknown_02024A60
+_080351EC: .4byte gUnknown_02023A60
+_080351F0: .4byte gUnknown_0202F7C4
+_080351F4: .4byte gUnknown_0202F7BC
+_080351F8: .4byte gUnknown_0202F7B8
+_080351FC: .4byte gUnknown_0202F7BE
+_08035200: .4byte gUnknown_0202F7C0
+_08035204: .4byte gUnknown_0202F7B4
+_08035208: .4byte gUnknown_02024E70
+_0803520C:
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0803522C @ =0x02017810
+ adds r0, r1
+ strb r2, [r0, 0x4]
+ ldr r1, _08035230 @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08035234 @ =sub_8035238
+ str r1, [r0]
+_08035226:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803522C: .4byte 0x02017810
+_08035230: .4byte gUnknown_03004330
+_08035234: .4byte sub_8035238
+ thumb_func_end sub_8035104
+
+ thumb_func_start sub_8035238
+sub_8035238: @ 8035238
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r2, _0803527C @ =gUnknown_02023A60
+ ldr r5, _08035280 @ =gUnknown_02024A60
+ ldrb r3, [r5]
+ lsls r1, r3, 9
+ adds r0, r2, 0x1
+ mov r9, r0
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r6, r2, 0x2
+ mov r8, r6
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r4, r0
+ adds r2, 0xB
+ adds r1, r2
+ ldrb r7, [r1]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r6, _08035284 @ =0x02017810
+ adds r0, r6
+ ldrb r2, [r0, 0x4]
+ cmp r2, 0x1
+ beq _080352C6
+ cmp r2, 0x1
+ bgt _08035288
+ cmp r2, 0
+ beq _08035292
+ b _08035390
+ .align 2, 0
+_0803527C: .4byte gUnknown_02023A60
+_08035280: .4byte gUnknown_02024A60
+_08035284: .4byte 0x02017810
+_08035288:
+ cmp r2, 0x2
+ beq _080352EC
+ cmp r2, 0x3
+ beq _08035358
+ b _08035390
+_08035292:
+ lsls r1, r3, 2
+ adds r0, r6, 0
+ subs r0, 0x10
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0xC
+ ands r0, r2
+ cmp r0, 0x4
+ bne _080352B6
+ movs r0, 0x8
+ orrs r0, r2
+ strb r0, [r1]
+ ldrb r2, [r5]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_080352B6:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08035390
+_080352C6:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08035390
+ movs r0, 0
+ bl sub_80326EC
+ adds r0, r4, 0
+ bl move_anim_start_t1
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ b _08035390
+_080352EC:
+ ldr r0, _08035348 @ =gUnknown_0202F7AC
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _0803534C @ =gUnknown_0202F7B1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08035390
+ movs r0, 0x1
+ bl sub_80326EC
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r4, r6, 0
+ subs r4, 0x10
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08035334
+ cmp r7, 0x1
+ bhi _08035334
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r2, [r0]
+ movs r1, 0x9
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_08035334:
+ ldr r0, _08035350 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08035354 @ =0x02017810
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0, 0x4]
+ b _08035390
+ .align 2, 0
+_08035348: .4byte gUnknown_0202F7AC
+_0803534C: .4byte gUnknown_0202F7B1
+_08035350: .4byte gUnknown_02024A60
+_08035354: .4byte 0x02017810
+_08035358:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08035390
+ bl sub_8031F24
+ ldrb r0, [r5]
+ lsls r2, r0, 9
+ mov r3, r9
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ add r2, r8
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ bl sub_80324BC
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strb r4, [r0, 0x4]
+ bl sub_80334EC
+_08035390:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035238
+
+ thumb_func_start sub_803539C
+sub_803539C: @ 803539C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080353E0 @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080353E4 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r4, _080353E8 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r0, 9
+ ldr r1, _080353EC @ =gUnknown_02023A62
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_8120AA8
+ ldr r0, _080353F0 @ =gUnknown_03004210
+ ldr r1, _080353F4 @ =gUnknown_020238CC
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _080353F8 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080353FC @ =sub_80331D0
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080353E0: .4byte gUnknown_030042A4
+_080353E4: .4byte gUnknown_030042A0
+_080353E8: .4byte gUnknown_02024A60
+_080353EC: .4byte gUnknown_02023A62
+_080353F0: .4byte gUnknown_03004210
+_080353F4: .4byte gUnknown_020238CC
+_080353F8: .4byte gUnknown_03004330
+_080353FC: .4byte sub_80331D0
+ thumb_func_end sub_803539C
+
+ thumb_func_start sub_8035400
+sub_8035400: @ 8035400
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035400
+
+ thumb_func_start sub_803540C
+sub_803540C: @ 803540C
+ push {lr}
+ bl sub_8036B0C
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803540C
+
+ thumb_func_start sub_803541C
+sub_803541C: @ 803541C
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803541C
+
+ thumb_func_start sub_8035428
+sub_8035428: @ 8035428
+ push {r4-r6,lr}
+ ldr r6, _0803545C @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ lsls r0, 9
+ ldr r1, _08035460 @ =gUnknown_02023A64
+ adds r5, r0, r1
+ ldr r0, _08035464 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x93
+ lsls r0, 3
+ ands r0, r1
+ cmp r0, 0
+ beq _080354F8
+ bl sub_810715C
+ bl sub_81072A8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ beq _08035468
+ cmp r4, 0x5
+ bne _08035474
+ movs r0, 0x1
+ movs r1, 0x4
+ b _0803546C
+ .align 2, 0
+_0803545C: .4byte gUnknown_02024A60
+_08035460: .4byte gUnknown_02023A64
+_08035464: .4byte gUnknown_020239F8
+_08035468:
+ movs r0, 0x1
+ movs r1, 0x3
+_0803546C:
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ b _080354E0
+_08035474:
+ ldr r3, _080354E8 @ =gBattleMoves
+ lsls r0, r4, 1
+ adds r2, r5, r0
+ ldrh r1, [r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x12
+ ands r0, r1
+ cmp r0, 0
+ beq _08035494
+ ldr r1, _080354EC @ =gUnknown_02024C08
+ ldrb r0, [r6]
+ strb r0, [r1]
+_08035494:
+ ldrh r1, [r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080354CE
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r5, _080354EC @ =gUnknown_02024C08
+ strb r0, [r5]
+ ldr r0, _080354F0 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _080354F4 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080354CE
+ movs r0, 0x2
+ bl battle_get_side_with_given_state
+ strb r0, [r5]
+_080354CE:
+ ldr r0, _080354EC @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r4, r0
+ movs r0, 0x1
+ movs r1, 0xA
+ adds r2, r4, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+_080354E0:
+ bl sub_80334EC
+ b _0803558A
+ .align 2, 0
+_080354E8: .4byte gBattleMoves
+_080354EC: .4byte gUnknown_02024C08
+_080354F0: .4byte gUnknown_02024C0C
+_080354F4: .4byte gBitTable
+_080354F8:
+ movs r6, 0x3
+_080354FA:
+ bl Random
+ adds r4, r0, 0
+ ands r4, r6
+ lsls r0, r4, 1
+ adds r0, r5, r0
+ ldrh r2, [r0]
+ cmp r2, 0
+ beq _080354FA
+ ldr r1, _08035534 @ =gBattleMoves
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x12
+ ands r0, r1
+ cmp r0, 0
+ beq _0803553C
+ ldr r0, _08035538 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r4, r0
+ movs r0, 0x1
+ movs r1, 0xA
+ adds r2, r4, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ b _08035586
+ .align 2, 0
+_08035534: .4byte gBattleMoves
+_08035538: .4byte gUnknown_02024A60
+_0803553C:
+ ldr r0, _0803556C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08035570
+ bl Random
+ movs r1, 0x2
+ ands r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r1, 0
+ bl battle_get_side_with_given_state
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 16
+ orrs r2, r4
+ movs r0, 0x1
+ movs r1, 0xA
+ bl dp01_build_cmdbuf_x21_a_bb
+ b _08035586
+ .align 2, 0
+_0803556C: .4byte gUnknown_020239F8
+_08035570:
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 16
+ orrs r2, r4
+ movs r0, 0x1
+ movs r1, 0xA
+ bl dp01_build_cmdbuf_x21_a_bb
+_08035586:
+ bl sub_80334EC
+_0803558A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035428
+
+ thumb_func_start sub_8035590
+sub_8035590: @ 8035590
+ push {lr}
+ ldr r1, _080355B4 @ =0x02000000
+ ldr r0, _080355B8 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsrs r0, 1
+ lsls r0, 1
+ ldr r2, _080355BC @ =0x000160d4
+ adds r0, r2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ bl dp01_build_cmdbuf_x23_aa_0
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080355B4: .4byte 0x02000000
+_080355B8: .4byte gUnknown_02024A60
+_080355BC: .4byte 0x000160d4
+ thumb_func_end sub_8035590
+
+ thumb_func_start sub_80355C0
+sub_80355C0: @ 80355C0
+ push {r4-r6,lr}
+ ldr r6, _08035604 @ =0x02000000
+ ldr r5, _08035608 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r1, _0803560C @ =0x000160c8
+ adds r0, r1
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bne _08035664
+ bl sub_8036CD4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x6
+ bne _0803568A
+ ldr r0, _08035610 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08035614
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ b _08035628
+ .align 2, 0
+_08035604: .4byte 0x02000000
+_08035608: .4byte gUnknown_02024A60
+_0803560C: .4byte 0x000160c8
+_08035610: .4byte gUnknown_020239F8
+_08035614:
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0x3
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08035628:
+ movs r4, 0
+ b _0803562E
+_0803562C:
+ adds r4, 0x1
+_0803562E:
+ cmp r4, 0x5
+ bgt _0803568A
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _0803565C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0803562C
+ ldr r1, _08035660 @ =gUnknown_02024A6A
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ beq _0803562C
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ beq _0803562C
+ b _0803568A
+ .align 2, 0
+_0803565C: .4byte gEnemyParty
+_08035660: .4byte gUnknown_02024A6A
+_08035664:
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r2, _080356B0 @ =0x000160c8
+ adds r0, r2
+ adds r0, r6
+ ldrb r4, [r0]
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r1, _080356B0 @ =0x000160c8
+ adds r0, r1
+ adds r0, r6
+ movs r1, 0x6
+ strb r1, [r0]
+_0803568A:
+ ldr r1, _080356B4 @ =0x02000000
+ ldr r0, _080356B8 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ ldr r2, _080356BC @ =0x00016068
+ adds r0, r2
+ adds r0, r1
+ strb r4, [r0]
+ lsls r1, r4, 24
+ lsrs r1, 24
+ movs r0, 0x1
+ movs r2, 0
+ bl dp01_build_cmdbuf_x22_a_three_bytes
+ bl sub_80334EC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080356B0: .4byte 0x000160c8
+_080356B4: .4byte 0x02000000
+_080356B8: .4byte gUnknown_02024A60
+_080356BC: .4byte 0x00016068
+ thumb_func_end sub_80355C0
+
+ thumb_func_start sub_80356C0
+sub_80356C0: @ 80356C0
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80356C0
+
+ thumb_func_start sub_80356CC
+sub_80356CC: @ 80356CC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ movs r0, 0
+ bl load_gfxc_health_bar
+ ldr r3, _08035744 @ =gUnknown_02023A60
+ ldr r0, _08035748 @ =gUnknown_02024A60
+ mov r9, r0
+ ldrb r4, [r0]
+ lsls r2, r4, 9
+ adds r0, r3, 0x3
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ lsls r1, 8
+ adds r3, 0x2
+ adds r2, r3
+ ldrb r0, [r2]
+ orrs r0, r1
+ lsls r0, 16
+ asrs r7, r0, 16
+ ldr r0, _0803574C @ =0x00007fff
+ cmp r7, r0
+ beq _0803575C
+ ldr r6, _08035750 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _08035754 @ =gEnemyParty
+ adds r0, r4
+ movs r1, 0x3A
+ bl GetMonData
+ mov r8, r0
+ mov r1, r9
+ ldrb r0, [r1]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x39
+ bl GetMonData
+ adds r3, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r1, _08035758 @ =gUnknown_03004340
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ mov r2, r8
+ bl sub_8043D84
+ b _08035786
+ .align 2, 0
+_08035744: .4byte gUnknown_02023A60
+_08035748: .4byte gUnknown_02024A60
+_0803574C: .4byte 0x00007fff
+_08035750: .4byte gUnknown_02024A6A
+_08035754: .4byte gEnemyParty
+_08035758: .4byte gUnknown_03004340
+_0803575C:
+ ldr r1, _080357A4 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080357A8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3A
+ bl GetMonData
+ adds r2, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r1, _080357AC @ =gUnknown_03004340
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ movs r3, 0
+ bl sub_8043D84
+_08035786:
+ ldr r1, _080357B0 @ =gUnknown_03004330
+ ldr r0, _080357B4 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080357B8 @ =sub_80330C8
+ str r1, [r0]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080357A4: .4byte gUnknown_02024A6A
+_080357A8: .4byte gEnemyParty
+_080357AC: .4byte gUnknown_03004340
+_080357B0: .4byte gUnknown_03004330
+_080357B4: .4byte gUnknown_02024A60
+_080357B8: .4byte sub_80330C8
+ thumb_func_end sub_80356CC
+
+ thumb_func_start sub_80357BC
+sub_80357BC: @ 80357BC
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80357BC
+
+ thumb_func_start sub_80357C8
+sub_80357C8: @ 80357C8
+ push {r4,lr}
+ ldr r4, _08035820 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08035818
+ ldr r0, _08035824 @ =gUnknown_03004340
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, _08035828 @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0803582C @ =gEnemyParty
+ adds r1, r2
+ movs r2, 0x9
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08035830 @ =0x02017810
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, _08035834 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08035838 @ =sub_8033494
+ str r1, [r0]
+_08035818:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035820: .4byte gUnknown_02024A60
+_08035824: .4byte gUnknown_03004340
+_08035828: .4byte gUnknown_02024A6A
+_0803582C: .4byte gEnemyParty
+_08035830: .4byte 0x02017810
+_08035834: .4byte gUnknown_03004330
+_08035838: .4byte sub_8033494
+ thumb_func_end sub_80357C8
+
+ thumb_func_start sub_803583C
+sub_803583C: @ 803583C
+ push {r4,r5,lr}
+ ldr r5, _08035894 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803588C
+ ldr r4, _08035898 @ =gUnknown_02023A60
+ ldrb r3, [r5]
+ lsls r3, 9
+ adds r0, r4, 0x1
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ adds r1, r4, 0x2
+ adds r1, r3, r1
+ ldrb r1, [r1]
+ adds r2, r4, 0x3
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ adds r2, r4, 0x4
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ lsls r2, 16
+ orrs r1, r2
+ adds r4, 0x5
+ adds r3, r4
+ ldrb r2, [r3]
+ lsls r2, 24
+ orrs r1, r2
+ bl move_anim_start_t2_for_situation
+ ldr r1, _0803589C @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080358A0 @ =sub_8033494
+ str r1, [r0]
+_0803588C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035894: .4byte gUnknown_02024A60
+_08035898: .4byte gUnknown_02023A60
+_0803589C: .4byte gUnknown_03004330
+_080358A0: .4byte sub_8033494
+ thumb_func_end sub_803583C
+
+ thumb_func_start sub_80358A4
+sub_80358A4: @ 80358A4
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358A4
+
+ thumb_func_start sub_80358B0
+sub_80358B0: @ 80358B0
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358B0
+
+ thumb_func_start sub_80358BC
+sub_80358BC: @ 80358BC
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358BC
+
+ thumb_func_start sub_80358C8
+sub_80358C8: @ 80358C8
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358C8
+
+ thumb_func_start sub_80358D4
+sub_80358D4: @ 80358D4
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358D4
+
+ thumb_func_start sub_80358E0
+sub_80358E0: @ 80358E0
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358E0
+
+ thumb_func_start sub_80358EC
+sub_80358EC: @ 80358EC
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358EC
+
+ thumb_func_start sub_80358F8
+sub_80358F8: @ 80358F8
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358F8
+
+ thumb_func_start sub_8035904
+sub_8035904: @ 8035904
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035904
+
+ thumb_func_start sub_8035910
+sub_8035910: @ 8035910
+ push {lr}
+ ldr r2, _08035928 @ =gUnknown_020238C8
+ ldrb r1, [r2]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035928: .4byte gUnknown_020238C8
+ thumb_func_end sub_8035910
+
+ thumb_func_start sub_803592C
+sub_803592C: @ 803592C
+ push {lr}
+ ldr r3, _08035958 @ =gUnknown_020238C8
+ ldr r1, _0803595C @ =gUnknown_02023A60
+ ldr r0, _08035960 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x7F
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035958: .4byte gUnknown_020238C8
+_0803595C: .4byte gUnknown_02023A60
+_08035960: .4byte gUnknown_02024A60
+ thumb_func_end sub_803592C
+
+ thumb_func_start sub_8035964
+sub_8035964: @ 8035964
+ push {lr}
+ ldr r2, _08035978 @ =gUnknown_020238C8
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035978: .4byte gUnknown_020238C8
+ thumb_func_end sub_8035964
+
+ thumb_func_start sub_803597C
+sub_803597C: @ 803597C
+ push {lr}
+ ldr r3, _080359A0 @ =gUnknown_020238C8
+ ldr r1, [r3]
+ lsls r1, 24
+ lsrs r1, 31
+ movs r0, 0x1
+ eors r1, r0
+ lsls r1, 7
+ ldrb r2, [r3]
+ movs r0, 0x7F
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080359A0: .4byte gUnknown_020238C8
+ thumb_func_end sub_803597C
+
+ thumb_func_start dp01t_29_7_blink
+dp01t_29_7_blink: @ 80359A4
+ push {r4,lr}
+ ldr r3, _080359CC @ =gSprites
+ ldr r2, _080359D0 @ =gUnknown_02024BE0
+ ldr r4, _080359D4 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _080359D8
+ bl sub_80334EC
+ b _08035A02
+ .align 2, 0
+_080359CC: .4byte gSprites
+_080359D0: .4byte gUnknown_02024BE0
+_080359D4: .4byte gUnknown_02024A60
+_080359D8:
+ ldr r1, _08035A08 @ =gUnknown_02024E6D
+ movs r0, 0x1
+ strb r0, [r1]
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ ldrb r0, [r4]
+ bl sub_8047858
+ ldr r1, _08035A0C @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08035A10 @ =bx_blink_t7
+ str r1, [r0]
+_08035A02:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035A08: .4byte gUnknown_02024E6D
+_08035A0C: .4byte gUnknown_03004330
+_08035A10: .4byte bx_blink_t7
+ thumb_func_end dp01t_29_7_blink
+
+ thumb_func_start sub_8035A14
+sub_8035A14: @ 8035A14
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035A14
+
+ thumb_func_start sub_8035A20
+sub_8035A20: @ 8035A20
+ push {r4,lr}
+ ldr r4, _08035A5C @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r3, 0x3F
+ cmp r0, 0
+ bne _08035A34
+ movs r3, 0xC0
+_08035A34:
+ ldr r2, _08035A60 @ =gUnknown_02023A60
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ lsls r1, r3, 24
+ asrs r1, 24
+ bl PlaySE12WithPanning
+ bl sub_80334EC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035A5C: .4byte gUnknown_02024A60
+_08035A60: .4byte gUnknown_02023A60
+ thumb_func_end sub_8035A20
+
+ thumb_func_start sub_8035A64
+sub_8035A64: @ 8035A64
+ push {lr}
+ ldr r2, _08035A8C @ =gUnknown_02023A60
+ ldr r0, _08035A90 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl PlayFanfare
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035A8C: .4byte gUnknown_02023A60
+_08035A90: .4byte gUnknown_02024A60
+ thumb_func_end sub_8035A64
+
+ thumb_func_start sub_8035A94
+sub_8035A94: @ 8035A94
+ push {lr}
+ ldr r1, _08035AC4 @ =gUnknown_02024A6A
+ ldr r0, _08035AC8 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08035ACC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x19
+ movs r2, 0x5
+ bl PlayCry3
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035AC4: .4byte gUnknown_02024A6A
+_08035AC8: .4byte gUnknown_02024A60
+_08035ACC: .4byte gEnemyParty
+ thumb_func_end sub_8035A94
+
+ thumb_func_start dp01t_2E_7_battle_intro
+dp01t_2E_7_battle_intro: @ 8035AD0
+ push {lr}
+ ldr r1, _08035AF8 @ =gUnknown_02023A60
+ ldr r0, _08035AFC @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80E43C0
+ ldr r2, _08035B00 @ =gUnknown_02024DE8
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035AF8: .4byte gUnknown_02023A60
+_08035AFC: .4byte gUnknown_02024A60
+_08035B00: .4byte gUnknown_02024DE8
+ thumb_func_end dp01t_2E_7_battle_intro
+
+ thumb_func_start sub_8035B04
+sub_8035B04: @ 8035B04
+ push {r4-r6,lr}
+ ldr r5, _08035BE0 @ =gUnknown_02024BE0
+ ldr r6, _08035BE4 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08035BE8 @ =gSprites
+ adds r0, r4
+ bl oamt_add_pos2_onto_pos1
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x23
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x8C
+ lsls r1, 1
+ strh r1, [r0, 0x32]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _08035BEC @ =sub_8078B34
+ str r1, [r0]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _08035BF0 @ =sub_8035C10
+ bl oamt_set_x3A_32
+ ldr r0, _08035BF4 @ =sub_8035C44
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08035BF8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ ldrb r0, [r6]
+ strh r0, [r1, 0x8]
+ ldrb r3, [r6]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r2, _08035BFC @ =0x02017810
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08035BC2
+ ldr r0, _08035C00 @ =gUnknown_02024E68
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ ldr r1, _08035C04 @ =sub_8044CA0
+ str r1, [r0]
+_08035BC2:
+ adds r2, 0x30
+ ldrb r0, [r2, 0x9]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _08035C08 @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08035C0C @ =nullsub_45
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035BE0: .4byte gUnknown_02024BE0
+_08035BE4: .4byte gUnknown_02024A60
+_08035BE8: .4byte gSprites
+_08035BEC: .4byte sub_8078B34
+_08035BF0: .4byte sub_8035C10
+_08035BF4: .4byte sub_8035C44
+_08035BF8: .4byte gTasks
+_08035BFC: .4byte 0x02017810
+_08035C00: .4byte gUnknown_02024E68
+_08035C04: .4byte sub_8044CA0
+_08035C08: .4byte gUnknown_03004330
+_08035C0C: .4byte nullsub_45
+ thumb_func_end sub_8035B04
+
+ thumb_func_start sub_8035C10
+sub_8035C10: @ 8035C10
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x6]
+ bl sub_8031B74
+ ldrh r0, [r4, 0x38]
+ ldr r1, _08035C3C @ =0x000003ff
+ ands r1, r0
+ ldrh r2, [r4, 0x4]
+ ldr r0, _08035C40 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035C3C: .4byte 0x000003ff
+_08035C40: .4byte 0xfffffc00
+ thumb_func_end sub_8035C10
+
+ thumb_func_start sub_8035C44
+sub_8035C44: @ 8035C44
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r7, _08035C9C @ =gUnknown_02024A60
+ ldrb r0, [r7]
+ mov r9, r0
+ ldr r1, _08035CA0 @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ strb r0, [r7]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08035C7E
+ ldr r0, _08035CA4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08035CB0
+_08035C7E:
+ ldr r0, _08035CA8 @ =gUnknown_02023A60
+ ldrb r1, [r7]
+ lsls r2, r1, 9
+ adds r0, 0x1
+ adds r2, r0
+ ldr r0, _08035CAC @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ strb r0, [r2]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_803495C
+ b _08035CF0
+ .align 2, 0
+_08035C9C: .4byte gUnknown_02024A60
+_08035CA0: .4byte gTasks
+_08035CA4: .4byte gUnknown_020239F8
+_08035CA8: .4byte gUnknown_02023A60
+_08035CAC: .4byte gUnknown_02024A6A
+_08035CB0:
+ ldr r4, _08035D14 @ =gUnknown_02023A60
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r4, 0x1
+ adds r1, r4
+ ldr r6, _08035D18 @ =gUnknown_02024A6A
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_803495C
+ ldrb r0, [r7]
+ movs r5, 0x2
+ eors r0, r5
+ strb r0, [r7]
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r1, r4
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_803495C
+ ldrb r0, [r7]
+ eors r0, r5
+ strb r0, [r7]
+_08035CF0:
+ ldr r1, _08035D1C @ =gUnknown_03004330
+ ldr r2, _08035D20 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08035D24 @ =sub_8032E2C
+ str r1, [r0]
+ mov r0, r9
+ strb r0, [r2]
+ mov r0, r8
+ bl DestroyTask
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035D14: .4byte gUnknown_02023A60
+_08035D18: .4byte gUnknown_02024A6A
+_08035D1C: .4byte gUnknown_03004330
+_08035D20: .4byte gUnknown_02024A60
+_08035D24: .4byte sub_8032E2C
+ thumb_func_end sub_8035C44
+
+ thumb_func_start dp01t_30_7_0803D67C
+dp01t_30_7_0803D67C: @ 8035D28
+ push {r4-r6,lr}
+ ldr r1, _08035D50 @ =gUnknown_02023A60
+ ldr r0, _08035D54 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08035D58
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08035D58
+ bl sub_80334EC
+ b _08035E12
+ .align 2, 0
+_08035D50: .4byte gUnknown_02023A60
+_08035D54: .4byte gUnknown_02024A60
+_08035D58:
+ ldr r3, _08035DA8 @ =gUnknown_02024A60
+ ldrb r1, [r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08035DAC @ =0x02017810
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r1, _08035DB0 @ =gUnknown_02023A60
+ ldrb r2, [r3]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r6, r3, 0
+ cmp r0, 0
+ beq _08035DBC
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r4
+ ldrb r2, [r3, 0x1]
+ lsls r1, r2, 26
+ lsrs r0, r1, 27
+ cmp r0, 0x1
+ bhi _08035DB4
+ adds r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ lsls r0, 1
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x1]
+ b _08035E12
+ .align 2, 0
+_08035DA8: .4byte gUnknown_02024A60
+_08035DAC: .4byte 0x02017810
+_08035DB0: .4byte gUnknown_02023A60
+_08035DB4:
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r3, 0x1]
+_08035DBC:
+ adds r5, r6, 0
+ ldrb r0, [r5]
+ lsls r3, r0, 9
+ ldr r4, _08035E18 @ =gUnknown_02023A64
+ adds r1, r3, r4
+ subs r2, r4, 0x3
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ subs r4, 0x2
+ adds r3, r4
+ ldrb r3, [r3]
+ bl sub_8044804
+ ldr r2, _08035E1C @ =gUnknown_02024E68
+ ldrb r1, [r5]
+ adds r1, r2
+ movs r2, 0
+ strb r0, [r1]
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _08035E20 @ =0x02017810
+ adds r0, r3
+ strb r2, [r0, 0x5]
+ ldrb r1, [r5]
+ lsls r0, r1, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08035E06
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x5D
+ strb r1, [r0, 0x5]
+_08035E06:
+ ldr r0, _08035E24 @ =gUnknown_03004330
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08035E28 @ =sub_8035E2C
+ str r0, [r1]
+_08035E12:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035E18: .4byte gUnknown_02023A64
+_08035E1C: .4byte gUnknown_02024E68
+_08035E20: .4byte 0x02017810
+_08035E24: .4byte gUnknown_03004330
+_08035E28: .4byte sub_8035E2C
+ thumb_func_end dp01t_30_7_0803D67C
+
+ thumb_func_start sub_8035E2C
+sub_8035E2C: @ 8035E2C
+ push {r4,lr}
+ ldr r4, _08035E64 @ =gUnknown_02024A60
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _08035E68 @ =0x02017810
+ adds r0, r3
+ ldrb r1, [r0, 0x5]
+ adds r2, r1, 0x1
+ strb r2, [r0, 0x5]
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x5C
+ bls _08035E5C
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ bl sub_80334EC
+_08035E5C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035E64: .4byte gUnknown_02024A60
+_08035E68: .4byte 0x02017810
+ thumb_func_end sub_8035E2C
+
+ thumb_func_start sub_8035E6C
+sub_8035E6C: @ 8035E6C
+ push {lr}
+ ldr r0, _08035EA4 @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r1, _08035EA8 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08035E9A
+ ldr r2, _08035EAC @ =gTasks
+ ldr r0, _08035EB0 @ =gUnknown_02024E68
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _08035EB4 @ =sub_8044CA0
+ str r1, [r0]
+_08035E9A:
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035EA4: .4byte gUnknown_02024A60
+_08035EA8: .4byte 0x02017810
+_08035EAC: .4byte gTasks
+_08035EB0: .4byte gUnknown_02024E68
+_08035EB4: .4byte sub_8044CA0
+ thumb_func_end sub_8035E6C
+
+ thumb_func_start sub_8035EB8
+sub_8035EB8: @ 8035EB8
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035EB8
+
+ thumb_func_start sub_8035EC4
+sub_8035EC4: @ 8035EC4
+ push {r4,lr}
+ ldr r4, _08035F14 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl sub_8078874
+ lsls r0, 24
+ cmp r0, 0
+ beq _08035F0A
+ ldr r3, _08035F18 @ =gSprites
+ ldr r0, _08035F1C @ =gUnknown_02024BE0
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldr r0, _08035F20 @ =gUnknown_02023A60
+ lsls r1, 9
+ adds r0, 0x1
+ adds r1, r0
+ adds r2, 0x3E
+ movs r0, 0x1
+ ldrb r1, [r1]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4]
+ bl sub_8031F88
+_08035F0A:
+ bl sub_80334EC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035F14: .4byte gUnknown_02024A60
+_08035F18: .4byte gSprites
+_08035F1C: .4byte gUnknown_02024BE0
+_08035F20: .4byte gUnknown_02023A60
+ thumb_func_end sub_8035EC4
+
+ thumb_func_start dp01t_34_7_move_anim_start_t3
+dp01t_34_7_move_anim_start_t3: @ 8035F24
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r6, _08035F68 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08035F7C
+ ldr r5, _08035F6C @ =gUnknown_02023A60
+ ldrb r2, [r6]
+ lsls r1, r2, 9
+ adds r0, r5, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r0, r5, 0x2
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r5, 0x3
+ adds r1, r5
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r4, r0
+ str r4, [sp]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ bl move_anim_start_t3
+ lsls r0, 24
+ cmp r0, 0
+ beq _08035F70
+ bl sub_80334EC
+ b _08035F7C
+ .align 2, 0
+_08035F68: .4byte gUnknown_02024A60
+_08035F6C: .4byte gUnknown_02023A60
+_08035F70:
+ ldr r0, _08035F84 @ =gUnknown_03004330
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08035F88 @ =sub_80334C0
+ str r0, [r1]
+_08035F7C:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035F84: .4byte gUnknown_03004330
+_08035F88: .4byte sub_80334C0
+ thumb_func_end dp01t_34_7_move_anim_start_t3
+
+ thumb_func_start sub_8035F8C
+sub_8035F8C: @ 8035F8C
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035F8C
+
+ thumb_func_start sub_8035F98
+sub_8035F98: @ 8035F98
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035F98
+
+ thumb_func_start sub_8035FA4
+sub_8035FA4: @ 8035FA4
+ push {lr}
+ ldr r0, _08035FD8 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0x2
+ bne _08035FCE
+ ldr r2, _08035FDC @ =gMain
+ ldr r0, _08035FE0 @ =0x0000043d
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, _08035FE4 @ =gUnknown_030042D0
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, [r2, 0x8]
+ bl SetMainCallback2
+_08035FCE:
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035FD8: .4byte gUnknown_020239F8
+_08035FDC: .4byte gMain
+_08035FE0: .4byte 0x0000043d
+_08035FE4: .4byte gUnknown_030042D0
+ thumb_func_end sub_8035FA4
+
+ thumb_func_start nullsub_46
+nullsub_46: @ 8035FE8
+ bx lr
+ thumb_func_end nullsub_46
+
+ thumb_func_start ai_switch_perish_song
+ai_switch_perish_song: @ 8035FEC
+ push {lr}
+ ldr r1, _08036038 @ =gUnknown_02024C98
+ ldr r0, _0803603C @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0803604C
+ ldr r0, _08036040 @ =gUnknown_02024CA8
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xF]
+ lsls r0, 28
+ cmp r0, 0
+ bne _0803604C
+ adds r0, r2, 0
+ bl battle_get_per_side_status
+ ldr r1, _08036044 @ =0x02000000
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r2, _08036048 @ =0x000160c8
+ adds r0, r2
+ adds r0, r1
+ movs r1, 0x6
+ strb r1, [r0]
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ movs r0, 0x1
+ b _0803604E
+ .align 2, 0
+_08036038: .4byte gUnknown_02024C98
+_0803603C: .4byte gUnknown_02024A60
+_08036040: .4byte gUnknown_02024CA8
+_08036044: .4byte 0x02000000
+_08036048: .4byte 0x000160c8
+_0803604C:
+ movs r0, 0
+_0803604E:
+ pop {r1}
+ bx r1
+ thumb_func_end ai_switch_perish_song
+
+ thumb_func_start sub_8036054
+sub_8036054: @ 8036054
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _0803606C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080360A0
+ b _080361C8
+ .align 2, 0
+_0803606C: .4byte gUnknown_020239F8
+_08036070:
+ ldr r0, _08036094 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ ldr r1, _08036098 @ =0x02000000
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r2, _0803609C @ =0x000160c8
+ adds r0, r2
+ adds r0, r1
+ strb r6, [r0]
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ movs r0, 0x1
+ b _080361CA
+ .align 2, 0
+_08036094: .4byte gUnknown_02024A60
+_08036098: .4byte 0x02000000
+_0803609C: .4byte 0x000160c8
+_080360A0:
+ ldr r4, _080361D8 @ =gBattleMons
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x58
+ muls r0, r1
+ adds r0, r4
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x19
+ beq _080360BC
+ b _080361C8
+_080360BC:
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r6, 0
+ adds r7, r4, 0
+ movs r5, 0x58
+ adds r0, r2, 0
+ muls r0, r5
+ adds r4, r0, r7
+ movs r3, 0x20
+ adds r3, r4
+ mov r8, r3
+_080360D8:
+ lsls r1, r6, 1
+ ldr r0, _080361DC @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ muls r0, r5
+ adds r1, r0
+ adds r0, r7, 0
+ adds r0, 0xC
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08036104
+ ldrh r1, [r4]
+ mov r3, r8
+ ldrb r2, [r3]
+ bl ai_rate_move
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r0, 0x2
+ ands r1, r0
+ cmp r1, 0
+ bne _080361C8
+_08036104:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080360D8
+ movs r6, 0
+ ldr r0, _080361E0 @ =gEnemyParty
+ mov r9, r0
+_08036110:
+ movs r0, 0x64
+ adds r5, r6, 0
+ muls r5, r0
+ mov r2, r9
+ adds r4, r5, r2
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080361C2
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _080361C2
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _080361C2
+ ldr r1, _080361E4 @ =gUnknown_02024A6A
+ ldr r0, _080361DC @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ beq _080361C2
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl GetMonData
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r4, 0
+ mov r8, r5
+ ldr r1, _080361D8 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r5, r0, r1
+ adds r7, r5, 0
+ adds r7, 0x20
+_0803617C:
+ adds r1, r4, 0
+ adds r1, 0xD
+ mov r0, r8
+ add r0, r9
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _080361BC
+ ldrh r1, [r5]
+ ldrb r2, [r7]
+ bl ai_rate_move
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r0, 0x2
+ ands r1, r0
+ cmp r1, 0
+ beq _080361BC
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080361BC
+ b _08036070
+_080361BC:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0803617C
+_080361C2:
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _08036110
+_080361C8:
+ movs r0, 0
+_080361CA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080361D8: .4byte gBattleMons
+_080361DC: .4byte gUnknown_02024A60
+_080361E0: .4byte gEnemyParty
+_080361E4: .4byte gUnknown_02024A6A
+ thumb_func_end sub_8036054
+
+ thumb_func_start sub_80361E8
+sub_80361E8: @ 80361E8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0x1
+ bl ai_has_super_effective_move_on_field
+ lsls r0, 24
+ cmp r0, 0
+ beq _08036214
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _08036214
+ b _08036400
+_08036214:
+ ldr r1, _0803627C @ =gUnknown_02024C3C
+ ldr r5, _08036280 @ =gUnknown_02024A60
+ ldrb r3, [r5]
+ lsls r0, r3, 1
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ cmp r1, 0
+ bne _08036226
+ b _08036400
+_08036226:
+ ldr r0, _08036284 @ =0x0000ffff
+ cmp r1, r0
+ bne _0803622E
+ b _08036400
+_0803622E:
+ ldr r2, _08036288 @ =gBattleMoves
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _08036242
+ b _08036400
+_08036242:
+ ldr r0, _0803628C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080362AE
+ mov r8, r3
+ mov r0, r8
+ bl battle_get_per_side_status
+ movs r4, 0x2
+ eors r0, r4
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ ldr r1, _08036290 @ =gUnknown_02024C0C
+ ldrb r1, [r1]
+ ldr r2, _08036294 @ =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08036298
+ ldrb r7, [r5]
+ b _080362B2
+ .align 2, 0
+_0803627C: .4byte gUnknown_02024C3C
+_08036280: .4byte gUnknown_02024A60
+_08036284: .4byte 0x0000ffff
+_08036288: .4byte gBattleMoves
+_0803628C: .4byte gUnknown_020239F8
+_08036290: .4byte gUnknown_02024C0C
+_08036294: .4byte gBitTable
+_08036298:
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ eors r0, r4
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r7, r0, 24
+ b _080362B2
+_080362AE:
+ adds r7, r3, 0
+ mov r8, r7
+_080362B2:
+ ldr r3, _080362D4 @ =gBattleMoves
+ ldr r1, _080362D8 @ =gUnknown_02024C3C
+ ldr r2, _080362DC @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x2]
+ adds r1, r2, 0
+ cmp r0, 0xA
+ bne _080362E0
+ movs r0, 0x12
+ b _080362F2
+ .align 2, 0
+_080362D4: .4byte gBattleMoves
+_080362D8: .4byte gUnknown_02024C3C
+_080362DC: .4byte gUnknown_02024A60
+_080362E0:
+ cmp r0, 0xB
+ bne _080362EA
+ movs r2, 0xB
+ mov r10, r2
+ b _080362F4
+_080362EA:
+ cmp r0, 0xD
+ beq _080362F0
+ b _08036400
+_080362F0:
+ movs r0, 0xA
+_080362F2:
+ mov r10, r0
+_080362F4:
+ ldr r2, _08036308 @ =gBattleMons
+ ldrb r1, [r1]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, r10
+ bne _0803633C
+ b _08036400
+ .align 2, 0
+_08036308: .4byte gBattleMons
+_0803630C:
+ ldr r0, _08036330 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ ldr r1, _08036334 @ =0x02000000
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r2, _08036338 @ =0x000160c8
+ adds r0, r2
+ adds r0, r1
+ strb r6, [r0]
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ movs r0, 0x1
+ b _08036402
+ .align 2, 0
+_08036330: .4byte gUnknown_02024A60
+_08036334: .4byte 0x02000000
+_08036338: .4byte 0x000160c8
+_0803633C:
+ movs r6, 0
+ ldr r0, _080363CC @ =gBaseStats
+ mov r9, r0
+_08036342:
+ movs r0, 0x64
+ adds r1, r6, 0
+ muls r1, r0
+ ldr r0, _080363D0 @ =gEnemyParty
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080363FA
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _080363FA
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _080363FA
+ ldr r1, _080363D4 @ =gUnknown_02024A6A
+ mov r2, r8
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ beq _080363FA
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ beq _080363FA
+ ldr r1, _080363D8 @ =0x02000000
+ ldr r0, _080363DC @ =0x00016068
+ add r0, r8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r6, r0
+ beq _080363FA
+ ldr r2, _080363DC @ =0x00016068
+ adds r0, r7, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r6, r0
+ beq _080363FA
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r5, 0
+ movs r1, 0x2E
+ bl GetMonData
+ cmp r0, 0
+ beq _080363E0
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0, 0x17]
+ b _080363EA
+ .align 2, 0
+_080363CC: .4byte gBaseStats
+_080363D0: .4byte gEnemyParty
+_080363D4: .4byte gUnknown_02024A6A
+_080363D8: .4byte 0x02000000
+_080363DC: .4byte 0x00016068
+_080363E0:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0, 0x16]
+_080363EA:
+ cmp r10, r0
+ bne _080363FA
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ bne _0803630C
+_080363FA:
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _08036342
+_08036400:
+ movs r0, 0
+_08036402:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80361E8
+
+ thumb_func_start ai_switchout_natural_cure
+ai_switchout_natural_cure: @ 8036410
+ push {r4,r5,lr}
+ ldr r3, _08036468 @ =gBattleMons
+ ldr r5, _0803646C @ =gUnknown_02024A60
+ ldrb r4, [r5]
+ movs r0, 0x58
+ adds r2, r4, 0
+ muls r2, r0
+ adds r0, r3, 0
+ adds r0, 0x4C
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _080364D8
+ adds r1, r2, r3
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1E
+ bne _080364D8
+ ldrh r0, [r1, 0x2C]
+ ldrh r1, [r1, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bcc _080364D8
+ ldr r1, _08036470 @ =gUnknown_02024C3C
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ cmp r1, 0
+ beq _08036456
+ ldr r0, _08036474 @ =0x0000ffff
+ cmp r1, r0
+ bne _08036478
+_08036456:
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08036478
+ ldrb r0, [r5]
+ b _080364E0
+ .align 2, 0
+_08036468: .4byte gBattleMons
+_0803646C: .4byte gUnknown_02024A60
+_08036470: .4byte gUnknown_02024C3C
+_08036474: .4byte 0x0000ffff
+_08036478:
+ ldr r2, _080364A4 @ =gBattleMoves
+ ldr r1, _080364A8 @ =gUnknown_02024C3C
+ ldr r4, _080364AC @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _080364B0
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080364B0
+ ldrb r0, [r4]
+ b _080364E0
+ .align 2, 0
+_080364A4: .4byte gBattleMoves
+_080364A8: .4byte gUnknown_02024C3C
+_080364AC: .4byte gUnknown_02024A60
+_080364B0:
+ movs r0, 0x8
+ movs r1, 0x1
+ bl sub_80366A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080364FE
+ movs r0, 0x4
+ movs r1, 0x1
+ bl sub_80366A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080364FE
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ bne _080364DC
+_080364D8:
+ movs r0, 0
+ b _08036500
+_080364DC:
+ ldr r0, _08036508 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+_080364E0:
+ bl battle_get_per_side_status
+ ldr r1, _0803650C @ =0x02000000
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r2, _08036510 @ =0x000160c8
+ adds r0, r2
+ adds r0, r1
+ movs r1, 0x6
+ strb r1, [r0]
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+_080364FE:
+ movs r0, 0x1
+_08036500:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08036508: .4byte gUnknown_02024A60
+_0803650C: .4byte 0x02000000
+_08036510: .4byte 0x000160c8
+ thumb_func_end ai_switchout_natural_cure
+
+ thumb_func_start ai_has_super_effective_move_on_field
+ai_has_super_effective_move_on_field: @ 8036514
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _080365AC @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _080365B0 @ =gBitTable
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0803659C
+ movs r4, 0
+ ldr r6, _080365B4 @ =gBattleMons
+ movs r7, 0x58
+ adds r0, r3, 0
+ muls r0, r7
+ adds r5, r0, r6
+ movs r0, 0x20
+ adds r0, r5
+ mov r9, r0
+_08036550:
+ lsls r1, r4, 1
+ ldr r0, _080365B8 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ muls r0, r7
+ adds r1, r0
+ adds r0, r6, 0
+ adds r0, 0xC
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08036596
+ ldrh r1, [r5]
+ mov r3, r9
+ ldrb r2, [r3]
+ bl ai_rate_move
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r0, 0x2
+ ands r1, r0
+ cmp r1, 0
+ beq _08036596
+ mov r0, r8
+ cmp r0, 0
+ bne _080365C0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080365C0
+_08036596:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08036550
+_0803659C:
+ ldr r0, _080365BC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080365C4
+ b _0803663E
+ .align 2, 0
+_080365AC: .4byte gUnknown_02024C0C
+_080365B0: .4byte gBitTable
+_080365B4: .4byte gBattleMons
+_080365B8: .4byte gUnknown_02024A60
+_080365BC: .4byte gUnknown_020239F8
+_080365C0:
+ movs r0, 0x1
+ b _08036640
+_080365C4:
+ movs r0, 0x2
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0803664C @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _08036650 @ =gBitTable
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0803663E
+ movs r4, 0
+ ldr r6, _08036654 @ =gBattleMons
+ movs r7, 0x58
+ adds r0, r3, 0
+ muls r0, r7
+ adds r5, r0, r6
+ movs r3, 0x20
+ adds r3, r5
+ mov r9, r3
+_080365F2:
+ lsls r1, r4, 1
+ ldr r0, _08036658 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ muls r0, r7
+ adds r1, r0
+ adds r0, r6, 0
+ adds r0, 0xC
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08036638
+ ldrh r1, [r5]
+ mov r3, r9
+ ldrb r2, [r3]
+ bl ai_rate_move
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r0, 0x2
+ ands r1, r0
+ cmp r1, 0
+ beq _08036638
+ mov r0, r8
+ cmp r0, 0
+ bne _080365C0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080365C0
+_08036638:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080365F2
+_0803663E:
+ movs r0, 0
+_08036640:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803664C: .4byte gUnknown_02024C0C
+_08036650: .4byte gBitTable
+_08036654: .4byte gBattleMons
+_08036658: .4byte gUnknown_02024A60
+ thumb_func_end ai_has_super_effective_move_on_field
+
+ thumb_func_start ai_is_too_invested_in_stat_buffs
+ai_is_too_invested_in_stat_buffs: @ 803665C
+ push {r4,lr}
+ movs r4, 0
+ ldr r1, _0803669C @ =gBattleMons
+ ldr r0, _080366A0 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x18
+ adds r2, r0, r1
+ movs r3, 0x7
+_08036670:
+ ldrb r1, [r2]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0x6
+ ble _08036686
+ subs r1, 0x6
+ lsls r0, r4, 24
+ asrs r0, 24
+ adds r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08036686:
+ adds r2, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08036670
+ movs r0, 0
+ cmp r4, 0x3
+ bls _08036696
+ movs r0, 0x1
+_08036696:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803669C: .4byte gBattleMons
+_080366A0: .4byte gUnknown_02024A60
+ thumb_func_end ai_is_too_invested_in_stat_buffs
+
+ thumb_func_start sub_80366A4
+sub_80366A4: @ 80366A4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x4]
+ ldr r1, _08036730 @ =gUnknown_02024C3C
+ ldr r5, _08036734 @ =gUnknown_02024A60
+ ldrb r3, [r5]
+ lsls r0, r3, 1
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ cmp r1, 0
+ bne _080366CE
+ b _080368D8
+_080366CE:
+ ldr r0, _08036738 @ =0x0000ffff
+ cmp r1, r0
+ bne _080366D6
+ b _080368D8
+_080366D6:
+ ldr r0, _0803673C @ =gUnknown_02024C5C
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080366E2
+ b _080368D8
+_080366E2:
+ ldr r2, _08036740 @ =gBattleMoves
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _080366F6
+ b _080368D8
+_080366F6:
+ ldr r0, _08036744 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08036798
+ mov r9, r3
+ mov r0, r9
+ bl battle_get_per_side_status
+ movs r4, 0x2
+ eors r0, r4
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ ldr r1, _08036748 @ =gUnknown_02024C0C
+ ldrb r1, [r1]
+ ldr r2, _0803674C @ =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08036750
+ ldrb r5, [r5]
+ mov r10, r5
+ b _0803679C
+ .align 2, 0
+_08036730: .4byte gUnknown_02024C3C
+_08036734: .4byte gUnknown_02024A60
+_08036738: .4byte 0x0000ffff
+_0803673C: .4byte gUnknown_02024C5C
+_08036740: .4byte gBattleMoves
+_08036744: .4byte gUnknown_020239F8
+_08036748: .4byte gUnknown_02024C0C
+_0803674C: .4byte gBitTable
+_08036750:
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ eors r0, r4
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ b _0803679C
+_08036768:
+ ldr r0, _0803678C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ ldr r1, _08036790 @ =0x02000000
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r2, _08036794 @ =0x000160c8
+ adds r0, r2
+ adds r0, r1
+ strb r6, [r0]
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ movs r0, 0x1
+ b _080368DA
+ .align 2, 0
+_0803678C: .4byte gUnknown_02024A60
+_08036790: .4byte 0x02000000
+_08036794: .4byte 0x000160c8
+_08036798:
+ mov r9, r3
+ mov r10, r9
+_0803679C:
+ movs r6, 0
+_0803679E:
+ movs r0, 0x64
+ adds r1, r6, 0
+ muls r1, r0
+ ldr r0, _08036830 @ =gEnemyParty
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _080367B6
+ b _080368D0
+_080367B6:
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ bne _080367C4
+ b _080368D0
+_080367C4:
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _080368D0
+ ldr r1, _08036834 @ =gUnknown_02024A6A
+ mov r2, r9
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ beq _080368D0
+ mov r2, r10
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ beq _080368D0
+ ldr r1, _08036838 @ =0x02000000
+ ldr r0, _0803683C @ =0x00016068
+ add r0, r9
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r6, r0
+ beq _080368D0
+ ldr r0, _0803683C @ =0x00016068
+ add r0, r10
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r6, r0
+ beq _080368D0
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r5, 0
+ movs r1, 0x2E
+ bl GetMonData
+ cmp r0, 0
+ beq _08036844
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r1, _08036840 @ =gBaseStats
+ adds r0, r1
+ ldrb r2, [r0, 0x17]
+ b _08036850
+ .align 2, 0
+_08036830: .4byte gEnemyParty
+_08036834: .4byte gUnknown_02024A6A
+_08036838: .4byte 0x02000000
+_0803683C: .4byte 0x00016068
+_08036840: .4byte gBaseStats
+_08036844:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r2, _080368EC @ =gBaseStats
+ adds r0, r2
+ ldrb r2, [r0, 0x16]
+_08036850:
+ ldr r1, _080368F0 @ =gUnknown_02024C3C
+ ldr r5, _080368F4 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r1, r4, 0
+ bl ai_rate_move
+ ldr r1, [sp]
+ ands r1, r0
+ cmp r1, 0
+ beq _080368D0
+ ldr r1, _080368F8 @ =gUnknown_02024C5C
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r9, r0
+ movs r4, 0
+ movs r0, 0x64
+ adds r1, r6, 0
+ muls r1, r0
+ mov r8, r1
+ ldr r1, _080368FC @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r9
+ muls r2, r0
+ adds r0, r2, 0
+ adds r5, r0, r1
+ adds r7, r5, 0
+ adds r7, 0x20
+_0803688E:
+ ldr r0, _08036900 @ =gEnemyParty
+ adds r1, r4, 0
+ adds r1, 0xD
+ add r0, r8
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _080368CA
+ ldrh r1, [r5]
+ ldrb r2, [r7]
+ bl ai_rate_move
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r0, 0x2
+ ands r1, r0
+ cmp r1, 0
+ beq _080368CA
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, [sp, 0x4]
+ bl __modsi3
+ cmp r0, 0
+ bne _080368CA
+ b _08036768
+_080368CA:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0803688E
+_080368D0:
+ adds r6, 0x1
+ cmp r6, 0x5
+ bgt _080368D8
+ b _0803679E
+_080368D8:
+ movs r0, 0
+_080368DA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080368EC: .4byte gBaseStats
+_080368F0: .4byte gUnknown_02024C3C
+_080368F4: .4byte gUnknown_02024A60
+_080368F8: .4byte gUnknown_02024C5C
+_080368FC: .4byte gBattleMons
+_08036900: .4byte gEnemyParty
+ thumb_func_end sub_80366A4
+
+ thumb_func_start sub_8036904
+sub_8036904: @ 8036904
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r6, _080369E0 @ =gBattleMons
+ ldr r4, _080369E4 @ =gUnknown_02024A60
+ ldrb r2, [r4]
+ movs r5, 0x58
+ adds r0, r2, 0
+ muls r0, r5
+ adds r1, r6, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080369E8 @ =0x0400e000
+ ands r0, r1
+ cmp r0, 0
+ beq _0803692A
+ b _08036AFC
+_0803692A:
+ ldr r0, _080369EC @ =gUnknown_02024C98
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r1, [r1]
+ movs r0, 0x80
+ lsls r0, 3
+ ands r1, r0
+ cmp r1, 0
+ beq _0803693E
+ b _08036AFC
+_0803693E:
+ str r1, [sp]
+ movs r0, 0xC
+ adds r1, r2, 0
+ movs r2, 0x17
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08036956
+ b _08036AFC
+_08036956:
+ ldrb r1, [r4]
+ str r0, [sp]
+ movs r0, 0xC
+ movs r2, 0x47
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0803696E
+ b _08036AFC
+_0803696E:
+ str r0, [sp]
+ movs r0, 0xE
+ movs r1, 0
+ movs r2, 0x2A
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _080369A0
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r1, r0, r6
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _08036994
+ b _08036AFC
+_08036994:
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _080369A0
+ b _08036AFC
+_080369A0:
+ movs r0, 0
+ mov r8, r0
+ ldr r0, _080369F0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08036A12
+ ldr r4, _080369E4 @ =gUnknown_02024A60
+ ldrb r7, [r4]
+ adds r0, r7, 0
+ bl battle_get_per_side_status
+ movs r5, 0x2
+ eors r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ ldr r1, _080369F4 @ =gUnknown_02024C0C
+ ldrb r1, [r1]
+ ldr r2, _080369F8 @ =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080369FC
+ ldrb r6, [r4]
+ b _08036A18
+ .align 2, 0
+_080369E0: .4byte gBattleMons
+_080369E4: .4byte gUnknown_02024A60
+_080369E8: .4byte 0x0400e000
+_080369EC: .4byte gUnknown_02024C98
+_080369F0: .4byte gUnknown_020239F8
+_080369F4: .4byte gUnknown_02024C0C
+_080369F8: .4byte gBitTable
+_080369FC:
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ eors r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r6, r0, 24
+ b _08036A18
+_08036A12:
+ ldr r0, _08036AE8 @ =gUnknown_02024A60
+ ldrb r6, [r0]
+ adds r7, r6, 0
+_08036A18:
+ movs r5, 0
+_08036A1A:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08036AEC @ =gEnemyParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08036A7E
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _08036A7E
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _08036A7E
+ ldr r1, _08036AF0 @ =gUnknown_02024A6A
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _08036A7E
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _08036A7E
+ ldr r1, _08036AF4 @ =0x02000000
+ ldr r2, _08036AF8 @ =0x00016068
+ adds r0, r7, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r5, r0
+ beq _08036A7E
+ adds r0, r6, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r5, r0
+ beq _08036A7E
+ movs r0, 0x1
+ add r8, r0
+_08036A7E:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08036A1A
+ mov r2, r8
+ cmp r2, 0
+ beq _08036AFC
+ bl ai_switch_perish_song
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AE4
+ bl sub_8036054
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AE4
+ bl sub_80361E8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AE4
+ bl ai_switchout_natural_cure
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AE4
+ movs r0, 0
+ bl ai_has_super_effective_move_on_field
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AFC
+ bl ai_is_too_invested_in_stat_buffs
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AFC
+ movs r0, 0x8
+ movs r1, 0x2
+ bl sub_80366A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AE4
+ movs r0, 0x4
+ movs r1, 0x3
+ bl sub_80366A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08036AFC
+_08036AE4:
+ movs r0, 0x1
+ b _08036AFE
+ .align 2, 0
+_08036AE8: .4byte gUnknown_02024A60
+_08036AEC: .4byte gEnemyParty
+_08036AF0: .4byte gUnknown_02024A6A
+_08036AF4: .4byte 0x02000000
+_08036AF8: .4byte 0x00016068
+_08036AFC:
+ movs r0, 0
+_08036AFE:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8036904
+
+ thumb_func_start sub_8036B0C
+sub_8036B0C: @ 8036B0C
+ push {r4-r6,lr}
+ ldr r5, _08036B68 @ =gUnknown_020239F8
+ ldrh r1, [r5]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08036B1C
+ b _08036C2E
+_08036B1C:
+ bl sub_8036904
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036B28
+ b _08036C24
+_08036B28:
+ ldr r4, _08036B6C @ =0x02000000
+ ldr r0, _08036B70 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r1, _08036B74 @ =0x000160c8
+ adds r0, r1
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bne _08036BEA
+ bl sub_8036CD4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x6
+ bne _08036BD4
+ ldrh r1, [r5]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08036B78
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ b _08036B8C
+ .align 2, 0
+_08036B68: .4byte gUnknown_020239F8
+_08036B6C: .4byte 0x02000000
+_08036B70: .4byte gUnknown_02024A60
+_08036B74: .4byte 0x000160c8
+_08036B78:
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0x3
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08036B8C:
+ movs r4, 0
+_08036B8E:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _08036C0C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08036BCE
+ ldr r1, _08036C10 @ =gUnknown_02024A6A
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ beq _08036BCE
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ beq _08036BCE
+ ldr r1, _08036C14 @ =0x02000000
+ ldr r2, _08036C18 @ =0x00016068
+ adds r0, r6, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _08036BCE
+ adds r0, r5, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r4, r0
+ bne _08036BD4
+_08036BCE:
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _08036B8E
+_08036BD4:
+ ldr r0, _08036C1C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ ldr r1, _08036C14 @ =0x02000000
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r3, _08036C20 @ =0x000160c8
+ adds r0, r3
+ adds r0, r1
+ strb r4, [r0]
+_08036BEA:
+ ldr r4, _08036C1C @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ ldr r2, _08036C14 @ =0x02000000
+ ldrb r1, [r4]
+ ldr r3, _08036C18 @ =0x00016068
+ adds r1, r3
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 25
+ adds r3, 0x60
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ b _08036C40
+ .align 2, 0
+_08036C0C: .4byte gEnemyParty
+_08036C10: .4byte gUnknown_02024A6A
+_08036C14: .4byte 0x02000000
+_08036C18: .4byte 0x00016068
+_08036C1C: .4byte gUnknown_02024A60
+_08036C20: .4byte 0x000160c8
+_08036C24:
+ bl sub_803708C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036C40
+_08036C2E:
+ ldr r0, _08036C48 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ movs r2, 0x1
+ eors r2, r0
+ lsls r2, 8
+ movs r0, 0x1
+ movs r1, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+_08036C40:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08036C48: .4byte gUnknown_02024A60
+ thumb_func_end sub_8036B0C
+
+ thumb_func_start sub_8036C4C
+sub_8036C4C: @ 8036C4C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r6, r3, 0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ movs r7, 0
+ ldr r0, _08036CD0 @ =gTypeEffectiveness
+ mov r10, r0
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _08036CBE
+ mov r5, r10
+_08036C7A:
+ ldrb r0, [r5]
+ cmp r0, 0xFE
+ beq _08036CB0
+ ldr r1, [sp]
+ cmp r0, r1
+ bne _08036CB0
+ ldrb r4, [r5, 0x1]
+ cmp r4, r9
+ bne _08036C9A
+ ldrb r1, [r6]
+ ldrb r0, [r5, 0x2]
+ muls r0, r1
+ movs r1, 0xA
+ bl __divsi3
+ strb r0, [r6]
+_08036C9A:
+ cmp r4, r8
+ bne _08036CB0
+ cmp r9, r8
+ beq _08036CB0
+ ldrb r1, [r6]
+ ldrb r0, [r5, 0x2]
+ muls r0, r1
+ movs r1, 0xA
+ bl __divsi3
+ strb r0, [r6]
+_08036CB0:
+ adds r5, 0x3
+ adds r7, 0x3
+ mov r1, r10
+ adds r0, r7, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08036C7A
+_08036CBE:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08036CD0: .4byte gTypeEffectiveness
+ thumb_func_end sub_8036C4C
+
+ thumb_func_start sub_8036CD4
+sub_8036CD4: @ 8036CD4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ ldr r0, _08036D1C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08036D78
+ ldr r4, _08036D20 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ str r0, [sp, 0xC]
+ bl battle_get_per_side_status
+ movs r5, 0x2
+ eors r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ ldr r1, _08036D24 @ =gUnknown_02024C0C
+ ldrb r1, [r1]
+ ldr r2, _08036D28 @ =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08036D2C
+ ldrb r4, [r4]
+ str r4, [sp, 0x10]
+ b _08036D42
+ .align 2, 0
+_08036D1C: .4byte gUnknown_020239F8
+_08036D20: .4byte gUnknown_02024A60
+_08036D24: .4byte gUnknown_02024C0C
+_08036D28: .4byte gBitTable
+_08036D2C:
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ eors r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+_08036D42:
+ bl Random
+ movs r3, 0x2
+ ands r0, r3
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, _08036D70 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _08036D74 @ =gBitTable
+ mov r4, r10
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08036D8C
+ eors r4, r3
+ lsls r0, r4, 24
+ lsrs r0, 24
+ mov r10, r0
+ b _08036D8C
+ .align 2, 0
+_08036D70: .4byte gUnknown_02024C0C
+_08036D74: .4byte gBitTable
+_08036D78:
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, _08036E5C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ str r0, [sp, 0x10]
+ str r0, [sp, 0xC]
+_08036D8C:
+ movs r0, 0
+ mov r9, r0
+ mov r1, sp
+ str r1, [sp, 0x14]
+_08036D94:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ movs r3, 0x6
+ str r3, [sp, 0x8]
+ movs r7, 0
+ ldr r4, _08036E60 @ =gBitTable
+ mov r8, r4
+_08036DA2:
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _08036E64 @ =gEnemyParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _08036E7C
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08036E7C
+ mov r1, r8
+ ldr r0, [r1]
+ mov r2, r9
+ ands r0, r2
+ cmp r0, 0
+ bne _08036E7C
+ ldr r1, _08036E68 @ =gUnknown_02024A6A
+ ldr r3, [sp, 0xC]
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r7
+ beq _08036E7C
+ ldr r4, [sp, 0x10]
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r7
+ beq _08036E7C
+ ldr r1, _08036E6C @ =0x02000000
+ ldr r2, _08036E70 @ =0x00016068
+ adds r0, r3, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r7, r0
+ beq _08036E7C
+ adds r0, r4, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r7, r0
+ beq _08036E7C
+ ldr r1, _08036E74 @ =gBaseStats
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r5, [r0, 0x6]
+ ldrb r6, [r0, 0x7]
+ movs r0, 0xA
+ ldr r3, [sp, 0x14]
+ strb r0, [r3]
+ movs r0, 0x58
+ mov r4, r10
+ muls r4, r0
+ ldr r0, _08036E78 @ =gBattleMons
+ adds r4, r0
+ adds r0, r4, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ adds r1, r5, 0
+ adds r2, r6, 0
+ mov r3, sp
+ bl sub_8036C4C
+ adds r4, 0x22
+ ldrb r0, [r4]
+ adds r1, r5, 0
+ adds r2, r6, 0
+ mov r3, sp
+ bl sub_8036C4C
+ ldr r2, [sp, 0x4]
+ ldr r1, [sp, 0x14]
+ ldrb r1, [r1]
+ cmp r2, r1
+ bcs _08036E8A
+ ldr r2, [sp, 0x14]
+ ldrb r2, [r2]
+ str r2, [sp, 0x4]
+ lsls r0, r7, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ b _08036E8A
+ .align 2, 0
+_08036E5C: .4byte gUnknown_02024A60
+_08036E60: .4byte gBitTable
+_08036E64: .4byte gEnemyParty
+_08036E68: .4byte gUnknown_02024A6A
+_08036E6C: .4byte 0x02000000
+_08036E70: .4byte 0x00016068
+_08036E74: .4byte gBaseStats
+_08036E78: .4byte gBattleMons
+_08036E7C:
+ mov r3, r8
+ ldr r0, [r3]
+ mov r4, r9
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r0, 24
+ mov r9, r0
+_08036E8A:
+ movs r0, 0x4
+ add r8, r0
+ adds r7, 0x1
+ cmp r7, 0x5
+ ble _08036DA2
+ ldr r1, [sp, 0x8]
+ cmp r1, 0x6
+ beq _08036EF8
+ movs r7, 0
+ movs r0, 0x64
+ adds r5, r1, 0
+ muls r5, r0
+ ldr r6, _08036EEC @ =gEnemyParty
+_08036EA4:
+ adds r1, r7, 0
+ adds r1, 0xD
+ adds r0, r5, r6
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _08036ECA
+ ldr r0, _08036EF0 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ mov r2, r10
+ bl move_effectiveness_something
+ movs r1, 0x2
+ ands r1, r0
+ cmp r1, 0
+ bne _08036ED0
+_08036ECA:
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _08036EA4
+_08036ED0:
+ cmp r7, 0x4
+ beq _08036ED6
+ b _08036FEE
+_08036ED6:
+ ldr r2, [sp, 0x8]
+ lsls r0, r2, 2
+ ldr r3, _08036EF4 @ =gBitTable
+ adds r0, r3
+ ldr r0, [r0]
+ mov r4, r9
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r0, 24
+ b _08036EFA
+ .align 2, 0
+_08036EEC: .4byte gEnemyParty
+_08036EF0: .4byte gUnknown_02024A60
+_08036EF4: .4byte gBitTable
+_08036EF8:
+ movs r0, 0x3F
+_08036EFA:
+ mov r9, r0
+ mov r1, r9
+ cmp r1, 0x3F
+ beq _08036F04
+ b _08036D94
+_08036F04:
+ ldr r0, _08037000 @ =gUnknown_02024DEC
+ movs r2, 0
+ strh r2, [r0]
+ ldr r0, _08037004 @ =0x02000000
+ ldr r3, _08037008 @ =0x0001601c
+ adds r1, r0, r3
+ strb r2, [r1]
+ ldr r4, _0803700C @ =0x0001601f
+ adds r0, r4
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08037010 @ =gUnknown_02024C68
+ strb r2, [r0]
+ ldr r0, _08037014 @ =gCritMultiplier
+ strb r1, [r0]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ movs r1, 0x6
+ str r1, [sp, 0x8]
+ movs r7, 0
+_08036F2C:
+ movs r0, 0x64
+ adds r6, r7, 0
+ muls r6, r0
+ ldr r2, _08037018 @ =gEnemyParty
+ adds r4, r6, r2
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ adds r3, r7, 0x1
+ str r3, [sp, 0x18]
+ cmp r0, 0
+ beq _08036FE8
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08036FE8
+ ldr r1, _0803701C @ =gUnknown_02024A6A
+ ldr r4, [sp, 0xC]
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r7
+ beq _08036FE8
+ ldr r2, [sp, 0x10]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r7
+ beq _08036FE8
+ ldr r1, _08037004 @ =0x02000000
+ ldr r3, _08037020 @ =0x00016068
+ adds r0, r4, r3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r7, r0
+ beq _08036FE8
+ adds r0, r2, r3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r7, r0
+ beq _08036FE8
+ movs r5, 0
+ mov r9, r6
+ ldr r4, _08037024 @ =gUnknown_02024BEC
+ mov r8, r4
+ ldr r6, _08037028 @ =gUnknown_02024A60
+_08036F90:
+ adds r1, r5, 0
+ adds r1, 0xD
+ ldr r0, _08037018 @ =gEnemyParty
+ add r0, r9
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0
+ mov r1, r8
+ str r0, [r1]
+ cmp r4, 0
+ beq _08036FCC
+ ldr r0, _0803702C @ =gBattleMoves
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x1
+ beq _08036FCC
+ ldrb r0, [r6]
+ mov r1, r10
+ bl sub_801CAF8
+ ldrb r1, [r6]
+ adds r0, r4, 0
+ mov r2, r10
+ bl move_effectiveness_something
+_08036FCC:
+ mov r2, r8
+ ldr r0, [r2]
+ ldr r3, [sp, 0x4]
+ cmp r3, r0
+ bge _08036FE2
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ lsls r0, r7, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+_08036FE2:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08036F90
+_08036FE8:
+ ldr r7, [sp, 0x18]
+ cmp r7, 0x5
+ ble _08036F2C
+_08036FEE:
+ ldr r0, [sp, 0x8]
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08037000: .4byte gUnknown_02024DEC
+_08037004: .4byte 0x02000000
+_08037008: .4byte 0x0001601c
+_0803700C: .4byte 0x0001601f
+_08037010: .4byte gUnknown_02024C68
+_08037014: .4byte gCritMultiplier
+_08037018: .4byte gEnemyParty
+_0803701C: .4byte gUnknown_02024A6A
+_08037020: .4byte 0x00016068
+_08037024: .4byte gUnknown_02024BEC
+_08037028: .4byte gUnknown_02024A60
+_0803702C: .4byte gBattleMoves
+ thumb_func_end sub_8036CD4
+
+ thumb_func_start ai_identify_item_effect
+ai_identify_item_effect: @ 8037030
+ push {r4,lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bne _08037040
+ movs r0, 0x1
+ b _08037086
+_08037040:
+ ldrb r1, [r2, 0x4]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0803704E
+ movs r0, 0x2
+ b _08037086
+_0803704E:
+ ldrb r4, [r2, 0x3]
+ movs r3, 0x3F
+ adds r0, r3, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _0803705E
+ movs r0, 0x3
+ b _08037086
+_0803705E:
+ ldrb r1, [r2]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08037074
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0
+ bne _08037074
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0
+ beq _08037078
+_08037074:
+ movs r0, 0x4
+ b _08037086
+_08037078:
+ movs r0, 0x80
+ ands r0, r4
+ cmp r0, 0
+ bne _08037084
+ movs r0, 0x6
+ b _08037086
+_08037084:
+ movs r0, 0x5
+_08037086:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end ai_identify_item_effect
+
+ thumb_func_start sub_803708C
+sub_803708C: @ 803708C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0
+ str r0, [sp]
+ mov r8, r0
+ mov r9, r0
+_080370A0:
+ movs r0, 0x64
+ mov r1, r9
+ muls r1, r0
+ ldr r0, _08037170 @ =gEnemyParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080370DC
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _080370DC
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _080370DC
+ ldr r0, [sp]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+_080370DC:
+ movs r1, 0x1
+ add r9, r1
+ mov r2, r9
+ cmp r2, 0x5
+ ble _080370A0
+ movs r3, 0
+ mov r9, r3
+_080370EA:
+ ldr r4, _08037174 @ =0x02016a00
+ mov r0, r9
+ cmp r0, 0
+ beq _08037106
+ adds r0, r4, 0
+ adds r0, 0x2C
+ ldrb r0, [r0]
+ mov r1, r9
+ subs r0, r1
+ adds r0, 0x1
+ ldr r2, [sp]
+ cmp r2, r0
+ ble _08037106
+ b _080374EC
+_08037106:
+ mov r3, r9
+ lsls r1, r3, 1
+ adds r0, r4, 0
+ adds r0, 0x24
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ mov r10, r0
+ str r1, [sp, 0x4]
+ cmp r0, 0
+ bne _0803711C
+ b _080374EC
+_0803711C:
+ ldr r1, _08037178 @ =gItemEffectTable
+ subs r0, 0xD
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ cmp r1, 0
+ bne _0803712C
+ b _080374EC
+_0803712C:
+ adds r5, r1, 0
+ mov r0, r10
+ cmp r0, 0xAF
+ bne _08037136
+ ldr r5, _0803717C @ =gSaveBlock1 + 0x3676
+_08037136:
+ mov r1, r10
+ lsls r0, r1, 24
+ lsrs r0, 24
+ adds r1, r5, 0
+ bl ai_identify_item_effect
+ ldr r2, _08037180 @ =0xfffe9600
+ adds r4, r2
+ ldr r3, _08037184 @ =gUnknown_02024A60
+ ldrb r1, [r3]
+ lsrs r1, 1
+ ldr r2, _08037188 @ =0x000160d8
+ adds r1, r2
+ adds r1, r4
+ strb r0, [r1]
+ ldrb r0, [r3]
+ lsrs r0, 1
+ adds r0, r2
+ adds r0, r4
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x5
+ bls _08037166
+ b _080374A8
+_08037166:
+ lsls r0, 2
+ ldr r1, _0803718C @ =_08037190
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08037170: .4byte gEnemyParty
+_08037174: .4byte 0x02016a00
+_08037178: .4byte gItemEffectTable
+_0803717C: .4byte gSaveBlock1 + 0x3676
+_08037180: .4byte 0xfffe9600
+_08037184: .4byte gUnknown_02024A60
+_08037188: .4byte 0x000160d8
+_0803718C: .4byte _08037190
+ .align 2, 0
+_08037190:
+ .4byte _080371A8
+ .4byte _080371D0
+ .4byte _0803721C
+ .4byte _08037388
+ .4byte _08037468
+ .4byte _080374F8
+_080371A8:
+ ldr r2, _080371C8 @ =gBattleMons
+ ldr r0, _080371CC @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r1, [r0, 0x2C]
+ ldrh r0, [r0, 0x28]
+ lsrs r1, 2
+ cmp r0, r1
+ bcc _080371C0
+ b _080374A8
+_080371C0:
+ cmp r0, 0
+ bne _080371C6
+ b _080374A8
+_080371C6:
+ b _08037450
+ .align 2, 0
+_080371C8: .4byte gBattleMons
+_080371CC: .4byte gUnknown_02024A60
+_080371D0:
+ mov r0, r10
+ movs r1, 0x4
+ movs r2, 0x4
+ bl sub_803F1DC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080371E4
+ b _080374A8
+_080371E4:
+ ldr r2, _08037214 @ =gBattleMons
+ ldr r0, _08037218 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x28]
+ cmp r2, 0
+ bne _080371F8
+ b _080374A8
+_080371F8:
+ ldrh r3, [r1, 0x2C]
+ lsrs r0, r3, 2
+ cmp r2, r0
+ bcs _08037202
+ b _08037496
+_08037202:
+ adds r0, r2, 0
+ subs r0, r3, r0
+ adds r1, r5, r4
+ ldrb r1, [r1]
+ cmp r0, r1
+ bgt _08037210
+ b _080374A8
+_08037210:
+ b _08037496
+ .align 2, 0
+_08037214: .4byte gBattleMons
+_08037218: .4byte gUnknown_02024A60
+_0803721C:
+ ldr r2, _08037378 @ =0x02000000
+ ldr r3, _0803737C @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsrs r0, 1
+ ldr r6, _08037380 @ =0x000160da
+ adds r0, r6
+ adds r0, r2
+ movs r1, 0
+ mov r12, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldrb r1, [r5, 0x3]
+ movs r7, 0x20
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08037264
+ ldr r1, _08037384 @ =gBattleMons
+ ldrb r4, [r3]
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _08037264
+ lsrs r1, r4, 1
+ adds r1, r6
+ adds r1, r2
+ ldrb r0, [r1]
+ orrs r0, r7
+ strb r0, [r1]
+ movs r0, 0x1
+ mov r8, r0
+_08037264:
+ ldrb r1, [r5, 0x3]
+ movs r6, 0x10
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080372A0
+ ldr r1, _08037384 @ =gBattleMons
+ ldrb r4, [r3]
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _0803728E
+ movs r0, 0x80
+ ands r1, r0
+ cmp r1, 0
+ beq _080372A0
+_0803728E:
+ lsrs r1, r4, 1
+ ldr r0, _08037380 @ =0x000160da
+ adds r1, r0
+ adds r1, r2
+ ldrb r0, [r1]
+ orrs r0, r6
+ strb r0, [r1]
+ movs r1, 0x1
+ mov r8, r1
+_080372A0:
+ ldrb r1, [r5, 0x3]
+ movs r6, 0x8
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080372D4
+ ldr r1, _08037384 @ =gBattleMons
+ ldrb r4, [r3]
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080372D4
+ lsrs r0, r4, 1
+ ldr r1, _08037380 @ =0x000160da
+ adds r0, r1
+ adds r0, r2
+ ldrb r1, [r0]
+ orrs r1, r6
+ strb r1, [r0]
+ movs r0, 0x1
+ mov r8, r0
+_080372D4:
+ ldrb r1, [r5, 0x3]
+ movs r6, 0x4
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08037308
+ ldr r1, _08037384 @ =gBattleMons
+ ldrb r4, [r3]
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08037308
+ lsrs r0, r4, 1
+ ldr r1, _08037380 @ =0x000160da
+ adds r0, r1
+ adds r0, r2
+ ldrb r1, [r0]
+ orrs r1, r6
+ strb r1, [r0]
+ movs r0, 0x1
+ mov r8, r0
+_08037308:
+ ldrb r1, [r5, 0x3]
+ movs r6, 0x2
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803733C
+ ldr r1, _08037384 @ =gBattleMons
+ ldrb r4, [r3]
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0803733C
+ lsrs r0, r4, 1
+ ldr r1, _08037380 @ =0x000160da
+ adds r0, r1
+ adds r0, r2
+ ldrb r1, [r0]
+ orrs r1, r6
+ strb r1, [r0]
+ movs r0, 0x1
+ mov r8, r0
+_0803733C:
+ ldrb r1, [r5, 0x3]
+ movs r4, 0x1
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0803734A
+ b _080374A8
+_0803734A:
+ ldr r1, _08037384 @ =gBattleMons
+ ldrb r3, [r3]
+ movs r0, 0x58
+ muls r0, r3
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _08037362
+ b _080374A8
+_08037362:
+ lsrs r0, r3, 1
+ ldr r1, _08037380 @ =0x000160da
+ adds r0, r1
+ adds r0, r2
+ ldrb r1, [r0]
+ orrs r1, r4
+ strb r1, [r0]
+ movs r2, 0x1
+ mov r8, r2
+ b _080374AE
+ .align 2, 0
+_08037378: .4byte 0x02000000
+_0803737C: .4byte gUnknown_02024A60
+_08037380: .4byte 0x000160da
+_08037384: .4byte gBattleMons
+_08037388:
+ ldr r6, _08037458 @ =0x02000000
+ ldr r4, _0803745C @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsrs r0, 1
+ ldr r3, _08037460 @ =0x000160da
+ adds r0, r3
+ adds r0, r6
+ movs r1, 0
+ mov r12, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, _08037464 @ =gUnknown_02024CA8
+ ldrb r2, [r4]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x16]
+ cmp r0, 0
+ beq _080374A8
+ ldrb r1, [r5]
+ movs r7, 0xF
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080373CA
+ lsrs r0, r2, 1
+ adds r0, r3
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+_080373CA:
+ ldrb r1, [r5, 0x1]
+ movs r2, 0xF0
+ mov r8, r2
+ mov r0, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _080373E8
+ ldrb r0, [r4]
+ lsrs r0, 1
+ adds r0, r3
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+_080373E8:
+ ldrb r1, [r5, 0x1]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08037402
+ ldrb r0, [r4]
+ lsrs r0, 1
+ adds r0, r3
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_08037402:
+ ldrb r1, [r5, 0x2]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0803741C
+ ldrb r0, [r4]
+ lsrs r0, 1
+ adds r0, r3
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+_0803741C:
+ ldrb r1, [r5, 0x2]
+ mov r0, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _08037436
+ ldrb r0, [r4]
+ lsrs r0, 1
+ adds r0, r3
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+_08037436:
+ ldrb r1, [r5]
+ movs r0, 0x30
+ ands r0, r1
+ cmp r0, 0
+ beq _08037450
+ ldrb r0, [r4]
+ lsrs r0, 1
+ adds r0, r3
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+_08037450:
+ movs r3, 0x1
+ mov r8, r3
+ b _080374AE
+ .align 2, 0
+_08037458: .4byte 0x02000000
+_0803745C: .4byte gUnknown_02024A60
+_08037460: .4byte 0x000160da
+_08037464: .4byte gUnknown_02024CA8
+_08037468:
+ ldr r4, _0803749C @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080374A0 @ =gUnknown_02024CA8
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x16]
+ cmp r0, 0
+ beq _080374A8
+ ldr r0, _080374A4 @ =gUnknown_02024C80
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ bne _080374A8
+_08037496:
+ movs r0, 0x1
+ mov r8, r0
+ b _080374AE
+ .align 2, 0
+_0803749C: .4byte gUnknown_02024A60
+_080374A0: .4byte gUnknown_02024CA8
+_080374A4: .4byte gUnknown_02024C80
+_080374A8:
+ mov r1, r8
+ cmp r1, 0
+ beq _080374EC
+_080374AE:
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ ldr r1, _080374DC @ =0x02000000
+ ldr r0, _080374E0 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsrs r0, 1
+ lsls r0, 1
+ ldr r2, _080374E4 @ =0x000160d4
+ adds r0, r2
+ adds r0, r1
+ movs r2, 0
+ mov r3, r10
+ strb r3, [r0]
+ ldr r0, _080374E8 @ =0x00016a24
+ adds r1, r0
+ ldr r3, [sp, 0x4]
+ adds r1, r3, r1
+ strh r2, [r1]
+ mov r0, r8
+ b _080374FA
+ .align 2, 0
+_080374DC: .4byte 0x02000000
+_080374E0: .4byte gUnknown_02024A60
+_080374E4: .4byte 0x000160d4
+_080374E8: .4byte 0x00016a24
+_080374EC:
+ movs r0, 0x1
+ add r9, r0
+ mov r1, r9
+ cmp r1, 0x3
+ bgt _080374F8
+ b _080370EA
+_080374F8:
+ movs r0, 0
+_080374FA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803708C
+
+ thumb_func_start nullsub_47
+nullsub_47: @ 803750C
+ bx lr
+ thumb_func_end nullsub_47
+
+ thumb_func_start sub_8037510
+sub_8037510: @ 8037510
+ ldr r1, _08037520 @ =gUnknown_03004330
+ ldr r0, _08037524 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08037528 @ =sub_803752C
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_08037520: .4byte gUnknown_03004330
+_08037524: .4byte gUnknown_02024A60
+_08037528: .4byte sub_803752C
+ thumb_func_end sub_8037510
+
+ thumb_func_start sub_803752C
+sub_803752C: @ 803752C
+ push {lr}
+ ldr r2, _08037560 @ =gUnknown_02024A64
+ ldr r1, _08037564 @ =gBitTable
+ ldr r0, _08037568 @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08037578
+ ldr r0, _0803756C @ =gUnknown_02023A60
+ lsls r1, r3, 9
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x38
+ bhi _08037574
+ ldr r0, _08037570 @ =gUnknown_081FB048
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+ b _08037578
+ .align 2, 0
+_08037560: .4byte gUnknown_02024A64
+_08037564: .4byte gBitTable
+_08037568: .4byte gUnknown_02024A60
+_0803756C: .4byte gUnknown_02023A60
+_08037570: .4byte gUnknown_081FB048
+_08037574:
+ bl dp01_tbl4_exec_completed
+_08037578:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803752C
+
+ thumb_func_start sub_803757C
+sub_803757C: @ 803757C
+ push {lr}
+ ldr r2, _080375A4 @ =gSprites
+ ldr r1, _080375A8 @ =gUnknown_02024BE0
+ ldr r0, _080375AC @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _080375B0 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _080375A0
+ bl dp01_tbl4_exec_completed
+_080375A0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080375A4: .4byte gSprites
+_080375A8: .4byte gUnknown_02024BE0
+_080375AC: .4byte gUnknown_02024A60
+_080375B0: .4byte SpriteCallbackDummy
+ thumb_func_end sub_803757C
+
+ thumb_func_start sub_80375B4
+sub_80375B4: @ 80375B4
+ push {r4-r6,lr}
+ ldr r4, _0803762C @ =gSprites
+ ldr r6, _08037630 @ =gUnknown_02024BE0
+ ldr r5, _08037634 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r2, r0, 2
+ adds r0, r4, 0
+ adds r0, 0x1C
+ adds r0, r2, r0
+ ldr r1, [r0]
+ ldr r0, _08037638 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08037624
+ adds r0, r2, r4
+ ldrh r0, [r0, 0x6]
+ bl sub_8031B74
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r1, 0x38]
+ ldr r2, _0803763C @ =0x000003ff
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _08037640 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ bl dp01_tbl4_exec_completed
+_08037624:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803762C: .4byte gSprites
+_08037630: .4byte gUnknown_02024BE0
+_08037634: .4byte gUnknown_02024A60
+_08037638: .4byte SpriteCallbackDummy
+_0803763C: .4byte 0x000003ff
+_08037640: .4byte 0xfffffc00
+ thumb_func_end sub_80375B4
+
+ thumb_func_start sub_8037644
+sub_8037644: @ 8037644
+ push {lr}
+ ldr r3, _08037678 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _0803767C @ =0x02017810
+ adds r1, r2
+ ldrb r0, [r1, 0x9]
+ subs r0, 0x1
+ strb r0, [r1, 0x9]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _08037674
+ ldrb r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0
+ strb r0, [r1, 0x9]
+ bl dp01_tbl4_exec_completed
+_08037674:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037678: .4byte gUnknown_02024A60
+_0803767C: .4byte 0x02017810
+ thumb_func_end sub_8037644
+
+ thumb_func_start sub_8037680
+sub_8037680: @ 8037680
+ push {r4-r7,lr}
+ movs r6, 0
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080376A4
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080376D8
+ ldr r0, _080376C4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080376D8
+_080376A4:
+ ldr r2, _080376C8 @ =gSprites
+ ldr r1, _080376CC @ =gUnknown_03004340
+ ldr r0, _080376D0 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _080376D4 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0803770E
+ b _0803770C
+ .align 2, 0
+_080376C4: .4byte gUnknown_020239F8
+_080376C8: .4byte gSprites
+_080376CC: .4byte gUnknown_03004340
+_080376D0: .4byte gUnknown_02024A60
+_080376D4: .4byte SpriteCallbackDummy
+_080376D8:
+ ldr r2, _080377D8 @ =gSprites
+ ldr r5, _080377DC @ =gUnknown_03004340
+ ldr r0, _080377E0 @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r4, [r0]
+ ldr r0, _080377E4 @ =SpriteCallbackDummy
+ cmp r4, r0
+ bne _0803770E
+ movs r0, 0x2
+ eors r3, r0
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, r4
+ bne _0803770E
+_0803770C:
+ movs r6, 0x1
+_0803770E:
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803771A
+ movs r6, 0
+_0803771A:
+ cmp r6, 0
+ bne _08037720
+ b _08037822
+_08037720:
+ ldr r7, _080377E0 @ =gUnknown_02024A60
+ ldrb r0, [r7]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1
+ bne _080377B4
+ ldrb r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r5, _080377E8 @ =0x02017810
+ adds r4, r0, r5
+ ldrb r1, [r4, 0x1]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08037822
+ movs r6, 0x2
+ adds r1, r6, 0
+ eors r1, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08037822
+ ldrb r1, [r4]
+ movs r3, 0x7F
+ adds r0, r3, 0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x1]
+ movs r4, 0x2
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r7]
+ adds r1, r6, 0
+ eors r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0]
+ ands r3, r1
+ strb r3, [r0]
+ ldrb r0, [r7]
+ adds r1, r6, 0
+ eors r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ ands r4, r1
+ strb r4, [r0, 0x1]
+ ldr r4, _080377EC @ =0x000027f9
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+_080377B4:
+ ldr r0, _080377F0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080377F8
+ ldrb r0, [r7]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08037804
+ ldr r0, _080377F4 @ =gMPlay_BGM
+ bl m4aMPlayContinue
+ b _08037804
+ .align 2, 0
+_080377D8: .4byte gSprites
+_080377DC: .4byte gUnknown_03004340
+_080377E0: .4byte gUnknown_02024A60
+_080377E4: .4byte SpriteCallbackDummy
+_080377E8: .4byte 0x02017810
+_080377EC: .4byte 0x000027f9
+_080377F0: .4byte gUnknown_020239F8
+_080377F4: .4byte gMPlay_BGM
+_080377F8:
+ ldr r0, _08037828 @ =gMPlay_BGM
+ ldr r1, _0803782C @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+_08037804:
+ ldr r2, _08037830 @ =gUnknown_02024A60
+ ldrb r1, [r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08037834 @ =0x02017810
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0, 0x9]
+ ldr r1, _08037838 @ =gUnknown_03004330
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803783C @ =sub_8037644
+ str r1, [r0]
+_08037822:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037828: .4byte gMPlay_BGM
+_0803782C: .4byte 0x0000ffff
+_08037830: .4byte gUnknown_02024A60
+_08037834: .4byte 0x02017810
+_08037838: .4byte gUnknown_03004330
+_0803783C: .4byte sub_8037644
+ thumb_func_end sub_8037680
+
+ thumb_func_start sub_8037840
+sub_8037840: @ 8037840
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r6, _08037A48 @ =gUnknown_02024A60
+ ldrb r2, [r6]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ ldr r5, _08037A4C @ =0x02017810
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r4, 0x88
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08037878
+ ldr r0, _08037A50 @ =gUnknown_02024A6A
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08037A54 @ =gEnemyParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_08037878:
+ ldrb r0, [r6]
+ movs r7, 0x2
+ adds r2, r7, 0
+ eors r2, r0
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080378A6
+ ldr r0, _08037A50 @ =gUnknown_02024A6A
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08037A54 @ =gEnemyParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_080378A6:
+ ldrb r2, [r6]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r3, 0x8
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080378BE
+ b _08037A3A
+_080378BE:
+ adds r1, r2, 0
+ eors r1, r7
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080378DA
+ b _08037A3A
+_080378DA:
+ ldr r0, _08037A58 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0803791A
+ adds r0, r2, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _0803791A
+ ldrb r0, [r6]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1, 0x9]
+ adds r0, 0x1
+ strb r0, [r1, 0x9]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0803790E
+ b _08037A3A
+_0803790E:
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strb r4, [r0, 0x9]
+_0803791A:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080379B2
+ ldr r0, _08037A58 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080379B2
+ ldr r1, _08037A5C @ =gUnknown_0300434C
+ ldr r5, _08037A48 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ movs r4, 0x2
+ eors r0, r4
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08037A60 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldr r0, _08037A64 @ =gUnknown_03004340
+ mov r8, r0
+ ldrb r0, [r5]
+ adds r1, r4, 0
+ eors r1, r0
+ mov r2, r8
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ ldr r2, _08037A50 @ =gUnknown_02024A6A
+ mov r10, r2
+ lsls r1, 1
+ add r1, r10
+ ldrh r1, [r1]
+ movs r2, 0x64
+ mov r9, r2
+ mov r2, r9
+ muls r2, r1
+ adds r1, r2, 0
+ ldr r6, _08037A54 @ =gEnemyParty
+ adds r1, r6
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r5]
+ eors r0, r4
+ bl sub_804777C
+ ldrb r0, [r5]
+ eors r0, r4
+ add r0, r8
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldrb r0, [r5]
+ eors r4, r0
+ lsls r0, r4, 1
+ add r0, r10
+ ldrh r0, [r0]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8032984
+_080379B2:
+ ldr r1, _08037A5C @ =gUnknown_0300434C
+ ldr r4, _08037A48 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08037A60 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldr r5, _08037A64 @ =gUnknown_03004340
+ ldrb r1, [r4]
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, _08037A50 @ =gUnknown_02024A6A
+ mov r9, r2
+ lsls r1, 1
+ add r1, r9
+ ldrh r1, [r1]
+ movs r2, 0x64
+ mov r8, r2
+ mov r2, r8
+ muls r2, r1
+ adds r1, r2, 0
+ ldr r6, _08037A54 @ =gEnemyParty
+ adds r1, r6
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ bl sub_804777C
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldrb r5, [r4]
+ lsls r0, r5, 1
+ add r0, r9
+ ldrh r0, [r0]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r5, 0
+ bl sub_8032984
+ ldr r2, _08037A68 @ =0x02017840
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _08037A6C @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08037A70 @ =sub_8037680
+ str r1, [r0]
+_08037A3A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037A48: .4byte gUnknown_02024A60
+_08037A4C: .4byte 0x02017810
+_08037A50: .4byte gUnknown_02024A6A
+_08037A54: .4byte gEnemyParty
+_08037A58: .4byte gUnknown_020239F8
+_08037A5C: .4byte gUnknown_0300434C
+_08037A60: .4byte gSprites
+_08037A64: .4byte gUnknown_03004340
+_08037A68: .4byte 0x02017840
+_08037A6C: .4byte gUnknown_03004330
+_08037A70: .4byte sub_8037680
+ thumb_func_end sub_8037840
+
+ thumb_func_start sub_8037A74
+sub_8037A74: @ 8037A74
+ push {r4-r7,lr}
+ ldr r2, _08037ACC @ =gSprites
+ ldr r0, _08037AD0 @ =gUnknown_02024BE0
+ ldr r7, _08037AD4 @ =gUnknown_02024A60
+ ldrb r3, [r7]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r2, r0, 31
+ cmp r2, 0x1
+ bne _08037B18
+ movs r4, 0x24
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ bne _08037B18
+ lsls r4, r3, 1
+ adds r0, r4, r3
+ lsls r0, 2
+ ldr r6, _08037AD8 @ =0x02017810
+ adds r1, r0, r6
+ ldrb r5, [r1]
+ movs r0, 0x80
+ ands r0, r5
+ cmp r0, 0
+ bne _08037AE4
+ ldr r0, _08037ADC @ =gUnknown_02024A6A
+ adds r0, r4, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08037AE0 @ =gEnemyParty
+ adds r1, r0
+ adds r0, r3, 0
+ bl sub_8141828
+ b _08037B18
+ .align 2, 0
+_08037ACC: .4byte gSprites
+_08037AD0: .4byte gUnknown_02024BE0
+_08037AD4: .4byte gUnknown_02024A60
+_08037AD8: .4byte 0x02017810
+_08037ADC: .4byte gUnknown_02024A6A
+_08037AE0: .4byte gEnemyParty
+_08037AE4:
+ ldrb r0, [r1, 0x1]
+ ands r2, r0
+ cmp r2, 0
+ beq _08037B18
+ movs r0, 0x7F
+ ands r0, r5
+ strb r0, [r1]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r4, _08037B20 @ =0x000027f9
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ bl dp01_tbl4_exec_completed
+_08037B18:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037B20: .4byte 0x000027f9
+ thumb_func_end sub_8037A74
+
+ thumb_func_start sub_8037B24
+sub_8037B24: @ 8037B24
+ push {r4-r6,lr}
+ ldr r6, _08037B64 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ ldr r5, _08037B68 @ =gUnknown_03004340
+ adds r1, r0, r5
+ ldrb r1, [r1]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8045C78
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ lsls r4, 16
+ asrs r1, r4, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08037B6C
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r2, 0
+ bl sub_80440EC
+ b _08037B70
+ .align 2, 0
+_08037B64: .4byte gUnknown_02024A60
+_08037B68: .4byte gUnknown_03004340
+_08037B6C:
+ bl dp01_tbl4_exec_completed
+_08037B70:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8037B24
+
+ thumb_func_start sub_8037B78
+sub_8037B78: @ 8037B78
+ push {lr}
+ ldr r2, _08037BAC @ =gSprites
+ ldr r0, _08037BB0 @ =gUnknown_02024BE0
+ ldr r1, _08037BB4 @ =gUnknown_02024A60
+ ldrb r3, [r1]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 31
+ cmp r0, 0
+ bne _08037BA6
+ ldr r0, _08037BB8 @ =gUnknown_03004340
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl4_exec_completed
+_08037BA6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037BAC: .4byte gSprites
+_08037BB0: .4byte gUnknown_02024BE0
+_08037BB4: .4byte gUnknown_02024A60
+_08037BB8: .4byte gUnknown_03004340
+ thumb_func_end sub_8037B78
+
+ thumb_func_start sub_8037BBC
+sub_8037BBC: @ 8037BBC
+ push {r4-r6,lr}
+ ldr r6, _08037C18 @ =gUnknown_02024A60
+ ldrb r2, [r6]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _08037C1C @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08037C12
+ ldr r5, _08037C20 @ =gUnknown_02024BE0
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08037C24 @ =gSprites
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldrb r0, [r6]
+ bl sub_8032A08
+ ldr r1, _08037C28 @ =gUnknown_03004340
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl4_exec_completed
+_08037C12:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037C18: .4byte gUnknown_02024A60
+_08037C1C: .4byte 0x02017810
+_08037C20: .4byte gUnknown_02024BE0
+_08037C24: .4byte gSprites
+_08037C28: .4byte gUnknown_03004340
+ thumb_func_end sub_8037BBC
+
+ thumb_func_start sub_8037C2C
+sub_8037C2C: @ 8037C2C
+ push {lr}
+ ldr r0, _08037C40 @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ bne _08037C3A
+ bl dp01_tbl4_exec_completed
+_08037C3A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037C40: .4byte gUnknown_03004210
+ thumb_func_end sub_8037C2C
+
+ thumb_func_start dp01t_0F_4_move_anim
+dp01t_0F_4_move_anim: @ 8037C44
+ push {r4,lr}
+ ldr r1, _08037C80 @ =gUnknown_02024BE0
+ ldr r0, _08037C84 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r2, _08037C88 @ =gSprites
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r0, r2
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x20
+ bne _08037C90
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ subs r0, 0x5
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _08037C8C @ =gUnknown_02024E6D
+ strb r3, [r0]
+ bl dp01_tbl4_exec_completed
+ b _08037CBA
+ .align 2, 0
+_08037C80: .4byte gUnknown_02024BE0
+_08037C84: .4byte gUnknown_02024A60
+_08037C88: .4byte gSprites
+_08037C8C: .4byte gUnknown_02024E6D
+_08037C90:
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08037CB4
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_08037CB4:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_08037CBA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_0F_4_move_anim
+
+ thumb_func_start sub_8037CC0
+sub_8037CC0: @ 8037CC0
+ push {r4,lr}
+ ldr r2, _08037D10 @ =gSprites
+ ldr r0, _08037D14 @ =gUnknown_03004340
+ ldr r4, _08037D18 @ =gUnknown_02024A60
+ ldrb r3, [r4]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _08037D1C @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08037D08
+ lsls r0, r3, 2
+ ldr r1, _08037D20 @ =0x02017800
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08037CFC
+ adds r0, r3, 0
+ adds r1, r3, 0
+ adds r2, r3, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+_08037CFC:
+ ldr r0, _08037D24 @ =gUnknown_03004330
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08037D28 @ =sub_8037D2C
+ str r0, [r1]
+_08037D08:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037D10: .4byte gSprites
+_08037D14: .4byte gUnknown_03004340
+_08037D18: .4byte gUnknown_02024A60
+_08037D1C: .4byte SpriteCallbackDummy
+_08037D20: .4byte 0x02017800
+_08037D24: .4byte gUnknown_03004330
+_08037D28: .4byte sub_8037D2C
+ thumb_func_end sub_8037CC0
+
+ thumb_func_start sub_8037D2C
+sub_8037D2C: @ 8037D2C
+ push {lr}
+ ldr r0, _08037D58 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08037D5C @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08037D52
+ ldr r0, _08037D60 @ =c3_0802FDF4
+ movs r1, 0xA
+ bl CreateTask
+ bl dp01_tbl4_exec_completed
+_08037D52:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037D58: .4byte gUnknown_02024A60
+_08037D5C: .4byte 0x02017810
+_08037D60: .4byte c3_0802FDF4
+ thumb_func_end sub_8037D2C
+
+ thumb_func_start sub_8037D64
+sub_8037D64: @ 8037D64
+ push {r4,r5,lr}
+ ldr r5, _08037E08 @ =gUnknown_02024A60
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _08037E0C @ =0x02017810
+ adds r2, r0, r3
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08037E00
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r4, _08037E10 @ =0x000027f9
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ ldr r1, _08037E14 @ =gUnknown_02024BE0
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08037E18 @ =gSprites
+ adds r0, r1
+ movs r1, 0
+ bl StartSpriteAnim
+ ldr r4, _08037E1C @ =gUnknown_03004340
+ ldrb r1, [r5]
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, _08037E20 @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _08037E24 @ =gEnemyParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r5]
+ bl sub_804777C
+ ldrb r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldrb r0, [r5]
+ bl sub_8031F88
+ ldr r1, _08037E28 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08037E2C @ =sub_8037CC0
+ str r1, [r0]
+_08037E00:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037E08: .4byte gUnknown_02024A60
+_08037E0C: .4byte 0x02017810
+_08037E10: .4byte 0x000027f9
+_08037E14: .4byte gUnknown_02024BE0
+_08037E18: .4byte gSprites
+_08037E1C: .4byte gUnknown_03004340
+_08037E20: .4byte gUnknown_02024A6A
+_08037E24: .4byte gEnemyParty
+_08037E28: .4byte gUnknown_03004330
+_08037E2C: .4byte sub_8037CC0
+ thumb_func_end sub_8037D64
+
+ thumb_func_start sub_8037E30
+sub_8037E30: @ 8037E30
+ push {r4-r6,lr}
+ ldr r5, _08037ECC @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ ldr r6, _08037ED0 @ =0x02017810
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ bne _08037E5E
+ ldr r0, _08037ED4 @ =gUnknown_02024A6A
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08037ED8 @ =gEnemyParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_08037E5E:
+ ldr r4, _08037EDC @ =gSprites
+ ldr r0, _08037EE0 @ =gUnknown_0300434C
+ ldrb r2, [r5]
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r3, r0, 2
+ adds r0, r4, 0
+ adds r0, 0x1C
+ adds r0, r3, r0
+ ldr r1, [r0]
+ ldr r0, _08037EE4 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08037EC4
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08037EC4
+ adds r0, r3, r4
+ bl DestroySprite
+ ldrb r4, [r5]
+ ldr r1, _08037ED4 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08037ED8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8032984
+ ldr r1, _08037EE8 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08037EEC @ =sub_8037D64
+ str r1, [r0]
+_08037EC4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037ECC: .4byte gUnknown_02024A60
+_08037ED0: .4byte 0x02017810
+_08037ED4: .4byte gUnknown_02024A6A
+_08037ED8: .4byte gEnemyParty
+_08037EDC: .4byte gSprites
+_08037EE0: .4byte gUnknown_0300434C
+_08037EE4: .4byte SpriteCallbackDummy
+_08037EE8: .4byte gUnknown_03004330
+_08037EEC: .4byte sub_8037D64
+ thumb_func_end sub_8037E30
+
+ thumb_func_start sub_8037EF0
+sub_8037EF0: @ 8037EF0
+ push {lr}
+ ldr r0, _08037F20 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08037F1C
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ ldr r3, _08037F24 @ =gMain
+ ldr r0, _08037F28 @ =0x0000043d
+ adds r2, r3, r0
+ ldrb r1, [r2]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _08037F2C @ =gUnknown_030042D0
+ ldr r0, [r0]
+ str r0, [r3]
+ ldr r0, _08037F30 @ =c2_8011A1C
+ bl SetMainCallback2
+_08037F1C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037F20: .4byte gReceivedRemoteLinkPlayers
+_08037F24: .4byte gMain
+_08037F28: .4byte 0x0000043d
+_08037F2C: .4byte gUnknown_030042D0
+_08037F30: .4byte c2_8011A1C
+ thumb_func_end sub_8037EF0
+
+ thumb_func_start sub_8037F34
+sub_8037F34: @ 8037F34
+ push {lr}
+ ldr r0, _08037F64 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08037F9A
+ ldr r0, _08037F68 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08037F78
+ bl sub_800832C
+ ldr r1, _08037F6C @ =gUnknown_03004330
+ ldr r0, _08037F70 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08037F74 @ =sub_8037EF0
+ str r1, [r0]
+ b _08037F9A
+ .align 2, 0
+_08037F64: .4byte gPaletteFade
+_08037F68: .4byte gUnknown_020239F8
+_08037F6C: .4byte gUnknown_03004330
+_08037F70: .4byte gUnknown_02024A60
+_08037F74: .4byte sub_8037EF0
+_08037F78:
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ ldr r2, _08037FA0 @ =gMain
+ ldr r0, _08037FA4 @ =0x0000043d
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, _08037FA8 @ =gUnknown_030042D0
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, [r2, 0x8]
+ bl SetMainCallback2
+_08037F9A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037FA0: .4byte gMain
+_08037FA4: .4byte 0x0000043d
+_08037FA8: .4byte gUnknown_030042D0
+ thumb_func_end sub_8037F34
+
+ thumb_func_start sub_8037FAC
+sub_8037FAC: @ 8037FAC
+ push {lr}
+ ldr r0, _08037FD0 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08037FD4 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _08037FCA
+ bl dp01_tbl4_exec_completed
+_08037FCA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037FD0: .4byte gUnknown_02024A60
+_08037FD4: .4byte 0x02017810
+ thumb_func_end sub_8037FAC
+
+ thumb_func_start sub_8037FD8
+sub_8037FD8: @ 8037FD8
+ push {lr}
+ ldr r0, _08037FFC @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08038000 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _08037FF6
+ bl dp01_tbl4_exec_completed
+_08037FF6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037FFC: .4byte gUnknown_02024A60
+_08038000: .4byte 0x02017810
+ thumb_func_end sub_8037FD8
+
+ thumb_func_start dp01_tbl4_exec_completed
+dp01_tbl4_exec_completed: @ 8038004
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _08038044 @ =gUnknown_03004330
+ ldr r4, _08038048 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803804C @ =sub_803752C
+ str r1, [r0]
+ ldr r0, _08038050 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08038058
+ bl GetMultiplayerId
+ mov r1, sp
+ strb r0, [r1]
+ movs r0, 0x2
+ movs r1, 0x4
+ mov r2, sp
+ bl dp01_prepare_buffer_wireless_probably
+ ldr r1, _08038054 @ =gUnknown_02023A60
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r0, r1
+ movs r1, 0x38
+ strb r1, [r0]
+ b _0803806A
+ .align 2, 0
+_08038044: .4byte gUnknown_03004330
+_08038048: .4byte gUnknown_02024A60
+_0803804C: .4byte sub_803752C
+_08038050: .4byte gUnknown_020239F8
+_08038054: .4byte gUnknown_02023A60
+_08038058:
+ ldr r2, _08038074 @ =gUnknown_02024A64
+ ldr r1, _08038078 @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+_0803806A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08038074: .4byte gUnknown_02024A64
+_08038078: .4byte gBitTable
+ thumb_func_end dp01_tbl4_exec_completed
+
+ thumb_func_start dp01t_00_4_getattr
+dp01t_00_4_getattr: @ 803807C
+ push {r4-r6,lr}
+ sub sp, 0x100
+ movs r6, 0
+ ldr r1, _080380A8 @ =gUnknown_02023A60
+ ldr r0, _080380AC @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080380B4
+ ldr r0, _080380B0 @ =gUnknown_02024A6A
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ mov r1, sp
+ bl dp01_getattr_by_ch1_for_player_pokemon__
+ adds r6, r0, 0
+ b _080380D6
+ .align 2, 0
+_080380A8: .4byte gUnknown_02023A60
+_080380AC: .4byte gUnknown_02024A60
+_080380B0: .4byte gUnknown_02024A6A
+_080380B4:
+ ldrb r4, [r1]
+ movs r5, 0
+_080380B8:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080380CE
+ lsls r0, r5, 24
+ lsrs r0, 24
+ mov r2, sp
+ adds r1, r2, r6
+ bl dp01_getattr_by_ch1_for_player_pokemon__
+ adds r6, r0
+_080380CE:
+ lsrs r4, 1
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _080380B8
+_080380D6:
+ lsls r1, r6, 16
+ lsrs r1, 16
+ movs r0, 0x1
+ mov r2, sp
+ bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl dp01_tbl4_exec_completed
+ add sp, 0x100
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_00_4_getattr
+
+ thumb_func_start dp01_getattr_by_ch1_for_player_pokemon__
+dp01_getattr_by_ch1_for_player_pokemon__: @ 80380F0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x90
+ adds r7, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0
+ ldr r2, _08038124 @ =gUnknown_02023A60
+ ldr r3, _08038128 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r1, r2, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bls _0803811A
+ bl _08038886
+_0803811A:
+ lsls r0, 2
+ ldr r1, _0803812C @ =_08038130
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08038124: .4byte gUnknown_02023A60
+_08038128: .4byte gUnknown_02024A60
+_0803812C: .4byte _08038130
+ .align 2, 0
+_08038130:
+ .4byte _08038220
+ .4byte _08038444
+ .4byte _08038454
+ .4byte _08038464
+ .4byte _080384CC
+ .4byte _080384CC
+ .4byte _080384CC
+ .4byte _080384CC
+ .4byte _080384E8
+ .4byte _08038524
+ .4byte _08038524
+ .4byte _08038524
+ .4byte _08038524
+ .4byte _08038886
+ .4byte _08038886
+ .4byte _08038886
+ .4byte _08038886
+ .4byte _08038540
+ .4byte _08038550
+ .4byte _08038580
+ .4byte _08038590
+ .4byte _080385A0
+ .4byte _080385B0
+ .4byte _080385C0
+ .4byte _080385D0
+ .4byte _080385E0
+ .4byte _080385F0
+ .4byte _08038600
+ .4byte _08038610
+ .4byte _08038620
+ .4byte _08038630
+ .4byte _08038640
+ .4byte _08038690
+ .4byte _080386A0
+ .4byte _080386B0
+ .4byte _080386C0
+ .4byte _080386D0
+ .4byte _080386E0
+ .4byte _080386F0
+ .4byte _08038700
+ .4byte _08038710
+ .4byte _08038744
+ .4byte _08038754
+ .4byte _08038764
+ .4byte _08038774
+ .4byte _08038784
+ .4byte _08038794
+ .4byte _080387A4
+ .4byte _080387B4
+ .4byte _080387D4
+ .4byte _080387E4
+ .4byte _080387F4
+ .4byte _08038804
+ .4byte _08038814
+ .4byte _08038824
+ .4byte _08038834
+ .4byte _08038844
+ .4byte _08038854
+ .4byte _08038864
+ .4byte _08038874
+_08038220:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08038434 @ =gEnemyParty
+ adds 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 r9, r0
+ movs r1, 0x3B
+ add r1, sp
+ mov r10, 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, 0x5
+ str r2, [sp, 0x84]
+ adds r0, 0x12
+ str r0, [sp, 0x88]
+ mov r8, r4
+ add r4, sp, 0xC
+_0803826C:
+ 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, r9
+ adds r1, r2, r6
+ strb r0, [r1]
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0803826C
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08038434 @ =gEnemyParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r10
+ 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
+ negs r1, r1
+ 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, 5
+ ldrh r2, [r3, 0x14]
+ ldr r1, _08038438 @ =0xfffffc1f
+ 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, 2
+ ldrb r2, [r3, 0x15]
+ movs r1, 0x7D
+ negs r1, r1
+ 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, 15
+ ldr r0, [sp, 0x14]
+ ldr r2, _0803843C @ =0xfff07fff
+ 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, 4
+ ldrh r2, [r3, 0x16]
+ ldr r1, _08038440 @ =0xfffffe0f
+ 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, 1
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x3F
+ negs r1, r1
+ 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, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x3C
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x3D
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x6]
+ adds r0, r4, 0
+ movs r1, 0x3E
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x8]
+ 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, 0x1
+ ands r0, r1
+ lsls r0, 6
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x41
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x17]
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl GetMonData
+ mov r3, sp
+ lsls 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, 0x1
+ bl GetMonData
+ str r0, [sp, 0x54]
+ adds r0, r4, 0
+ movs r1, 0x2
+ ldr r2, [sp, 0x8C]
+ bl GetMonData
+ ldr r0, [sp, 0x84]
+ ldr r1, [sp, 0x8C]
+ bl StringCopy10
+ adds r0, r4, 0
+ movs r1, 0x7
+ ldr r2, [sp, 0x88]
+ bl GetMonData
+ mov r2, sp
+ movs r6, 0
+_08038424:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0x57
+ bls _08038424
+ b _08038886
+ .align 2, 0
+_08038434: .4byte gEnemyParty
+_08038438: .4byte 0xfffffc1f
+_0803843C: .4byte 0xfff07fff
+_08038440: .4byte 0xfffffe0f
+_08038444:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038450 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ b _080387BE
+ .align 2, 0
+_08038450: .4byte gEnemyParty
+_08038454:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038460 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xC
+ b _080387BE
+ .align 2, 0
+_08038460: .4byte gEnemyParty
+_08038464:
+ movs r6, 0
+ add r2, sp, 0x58
+ mov r9, r2
+ add r0, sp, 0x60
+ mov r10, r0
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _080384C8 @ =gEnemyParty
+ adds r4, r1, r0
+ mov r8, r9
+_0803847A:
+ 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, r10
+ adds r1, r2, r6
+ strb r0, [r1]
+ movs r0, 0x2
+ add r8, r0
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0803847A
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080384C8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r9
+ strb r0, [r1, 0xC]
+ mov r2, r9
+ movs r6, 0
+_080384B8:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0xF
+ bls _080384B8
+ b _08038886
+ .align 2, 0
+_080384C8: .4byte gEnemyParty
+_080384CC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080384E4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _080387BE
+ .align 2, 0
+_080384E4: .4byte gEnemyParty
+_080384E8:
+ movs r6, 0
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r2, _08038520 @ =gEnemyParty
+ mov r8, r2
+_080384F4:
+ 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, 0x1
+ cmp r6, 0x3
+ ble _080384F4
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038520 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ adds r1, r7, r6
+ strb r0, [r1]
+ adds r6, 0x1
+ b _08038886
+ .align 2, 0
+_08038520: .4byte gEnemyParty
+_08038524:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803853C @ =gEnemyParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x8
+ b _0803887E
+ .align 2, 0
+_0803853C: .4byte gEnemyParty
+_08038540:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803854C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1
+ b _0803855A
+ .align 2, 0
+_0803854C: .4byte gEnemyParty
+_08038550:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803857C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x19
+_0803855A:
+ bl GetMonData
+ adds r1, r0, 0
+ strb r1, [r7]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r0, 16
+ strb r0, [r7, 0x2]
+ movs r6, 0x3
+ b _08038886
+ .align 2, 0
+_0803857C: .4byte gEnemyParty
+_08038580:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803858C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1A
+ b _0803887E
+ .align 2, 0
+_0803858C: .4byte gEnemyParty
+_08038590:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803859C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1B
+ b _0803887E
+ .align 2, 0
+_0803859C: .4byte gEnemyParty
+_080385A0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080385AC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1C
+ b _0803887E
+ .align 2, 0
+_080385AC: .4byte gEnemyParty
+_080385B0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080385BC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1D
+ b _0803887E
+ .align 2, 0
+_080385BC: .4byte gEnemyParty
+_080385C0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080385CC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1E
+ b _0803887E
+ .align 2, 0
+_080385CC: .4byte gEnemyParty
+_080385D0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080385DC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1F
+ b _0803887E
+ .align 2, 0
+_080385DC: .4byte gEnemyParty
+_080385E0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080385EC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x20
+ b _0803887E
+ .align 2, 0
+_080385EC: .4byte gEnemyParty
+_080385F0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080385FC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x22
+ b _0803887E
+ .align 2, 0
+_080385FC: .4byte gEnemyParty
+_08038600:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803860C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x23
+ b _0803887E
+ .align 2, 0
+_0803860C: .4byte gEnemyParty
+_08038610:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803861C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x24
+ b _0803887E
+ .align 2, 0
+_0803861C: .4byte gEnemyParty
+_08038620:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803862C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x25
+ b _0803887E
+ .align 2, 0
+_0803862C: .4byte gEnemyParty
+_08038630:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803863C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x26
+ b _0803887E
+ .align 2, 0
+_0803863C: .4byte gEnemyParty
+_08038640:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0803868C @ =gEnemyParty
+ adds 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, 0x1]
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl GetMonData
+ strb r0, [r7, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl GetMonData
+ strb r0, [r7, 0x3]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl GetMonData
+ strb r0, [r7, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ bl GetMonData
+ strb r0, [r7, 0x5]
+ movs r6, 0x6
+ b _08038886
+ .align 2, 0
+_0803868C: .4byte gEnemyParty
+_08038690:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803869C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x27
+ b _0803887E
+ .align 2, 0
+_0803869C: .4byte gEnemyParty
+_080386A0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080386AC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x28
+ b _0803887E
+ .align 2, 0
+_080386AC: .4byte gEnemyParty
+_080386B0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080386BC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x29
+ b _0803887E
+ .align 2, 0
+_080386BC: .4byte gEnemyParty
+_080386C0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080386CC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2A
+ b _0803887E
+ .align 2, 0
+_080386CC: .4byte gEnemyParty
+_080386D0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080386DC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2B
+ b _0803887E
+ .align 2, 0
+_080386DC: .4byte gEnemyParty
+_080386E0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080386EC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2C
+ b _0803887E
+ .align 2, 0
+_080386EC: .4byte gEnemyParty
+_080386F0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080386FC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0
+ b _0803871A
+ .align 2, 0
+_080386FC: .4byte gEnemyParty
+_08038700:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803870C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x9
+ b _080387BE
+ .align 2, 0
+_0803870C: .4byte gEnemyParty
+_08038710:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038740 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x37
+_0803871A:
+ bl GetMonData
+ adds r1, r0, 0
+ strb r1, [r7]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r0, 16
+ strb r0, [r7, 0x2]
+ lsrs r0, r1, 24
+ strb r0, [r7, 0x3]
+ movs r6, 0x4
+ b _08038886
+ .align 2, 0
+_08038740: .4byte gEnemyParty
+_08038744:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038750 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x38
+ b _0803887E
+ .align 2, 0
+_08038750: .4byte gEnemyParty
+_08038754:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038760 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x39
+ b _080387BE
+ .align 2, 0
+_08038760: .4byte gEnemyParty
+_08038764:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038770 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3A
+ b _080387BE
+ .align 2, 0
+_08038770: .4byte gEnemyParty
+_08038774:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038780 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3B
+ b _080387BE
+ .align 2, 0
+_08038780: .4byte gEnemyParty
+_08038784:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038790 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3C
+ b _080387BE
+ .align 2, 0
+_08038790: .4byte gEnemyParty
+_08038794:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080387A0 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3D
+ b _080387BE
+ .align 2, 0
+_080387A0: .4byte gEnemyParty
+_080387A4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080387B0 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3E
+ b _080387BE
+ .align 2, 0
+_080387B0: .4byte gEnemyParty
+_080387B4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080387D0 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3F
+_080387BE:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ strb r0, [r7]
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r6, 0x2
+ b _08038886
+ .align 2, 0
+_080387D0: .4byte gEnemyParty
+_080387D4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080387E0 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x16
+ b _0803887E
+ .align 2, 0
+_080387E0: .4byte gEnemyParty
+_080387E4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080387F0 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x17
+ b _0803887E
+ .align 2, 0
+_080387F0: .4byte gEnemyParty
+_080387F4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038800 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x18
+ b _0803887E
+ .align 2, 0
+_08038800: .4byte gEnemyParty
+_08038804:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038810 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x21
+ b _0803887E
+ .align 2, 0
+_08038810: .4byte gEnemyParty
+_08038814:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038820 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2F
+ b _0803887E
+ .align 2, 0
+_08038820: .4byte gEnemyParty
+_08038824:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038830 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x30
+ b _0803887E
+ .align 2, 0
+_08038830: .4byte gEnemyParty
+_08038834:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038840 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x32
+ b _0803887E
+ .align 2, 0
+_08038840: .4byte gEnemyParty
+_08038844:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038850 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x33
+ b _0803887E
+ .align 2, 0
+_08038850: .4byte gEnemyParty
+_08038854:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038860 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x34
+ b _0803887E
+ .align 2, 0
+_08038860: .4byte gEnemyParty
+_08038864:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038870 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x35
+ b _0803887E
+ .align 2, 0
+_08038870: .4byte gEnemyParty
+_08038874:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038898 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x36
+_0803887E:
+ bl GetMonData
+ strb r0, [r7]
+ movs r6, 0x1
+_08038886:
+ adds r0, r6, 0
+ add sp, 0x90
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08038898: .4byte gEnemyParty
+ thumb_func_end dp01_getattr_by_ch1_for_player_pokemon__
+
+ thumb_func_start sub_803889C
+sub_803889C: @ 803889C
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803889C
+
+ thumb_func_start sub_80388A8
+sub_80388A8: @ 80388A8
+ push {r4,r5,lr}
+ ldr r1, _080388CC @ =gUnknown_02023A60
+ ldr r0, _080388D0 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080388D8
+ ldr r0, _080388D4 @ =gUnknown_02024A6A
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ bl sub_8038900
+ b _080388F6
+ .align 2, 0
+_080388CC: .4byte gUnknown_02023A60
+_080388D0: .4byte gUnknown_02024A60
+_080388D4: .4byte gUnknown_02024A6A
+_080388D8:
+ ldrb r4, [r1]
+ movs r5, 0
+_080388DC:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080388EA
+ adds r0, r5, 0
+ bl sub_8038900
+_080388EA:
+ lsrs r4, 1
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _080388DC
+_080388F6:
+ bl dp01_tbl4_exec_completed
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80388A8
+
+ thumb_func_start sub_8038900
+sub_8038900: @ 8038900
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x38
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r3, _08038938 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsls r0, 9
+ ldr r2, _0803893C @ =gUnknown_02023A63
+ adds r4, r0, r2
+ adds r7, r4, 0
+ subs r1, r2, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r6, r3, 0
+ adds r3, r2, 0
+ cmp r0, 0x3B
+ bls _0803892E
+ bl _0803920C
+_0803892E:
+ lsls r0, 2
+ ldr r1, _08038940 @ =_08038944
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08038938: .4byte gUnknown_02024A60
+_0803893C: .4byte gUnknown_02023A63
+_08038940: .4byte _08038944
+ .align 2, 0
+_08038944:
+ .4byte _08038A34
+ .4byte _08038BCC
+ .4byte _08038BE8
+ .4byte _08038C04
+ .4byte _08038C58
+ .4byte _08038C58
+ .4byte _08038C58
+ .4byte _08038C58
+ .4byte _08038C78
+ .4byte _08038CE0
+ .4byte _08038CE0
+ .4byte _08038CE0
+ .4byte _08038CE0
+ .4byte _0803920C
+ .4byte _0803920C
+ .4byte _0803920C
+ .4byte _0803920C
+ .4byte _08038D08
+ .4byte _08038D24
+ .4byte _08038D40
+ .4byte _08038D5C
+ .4byte _08038D78
+ .4byte _08038D94
+ .4byte _08038DB0
+ .4byte _08038DCC
+ .4byte _08038DE8
+ .4byte _08038E04
+ .4byte _08038E20
+ .4byte _08038E3C
+ .4byte _08038E58
+ .4byte _08038E74
+ .4byte _08038E90
+ .4byte _08038F04
+ .4byte _08038F20
+ .4byte _08038F3C
+ .4byte _08038F58
+ .4byte _08038F74
+ .4byte _08038F90
+ .4byte _08038FAC
+ .4byte _08038FC8
+ .4byte _08038FE4
+ .4byte _08039000
+ .4byte _0803901C
+ .4byte _08039038
+ .4byte _08039054
+ .4byte _08039070
+ .4byte _0803908C
+ .4byte _080390A8
+ .4byte _080390C4
+ .4byte _080390E0
+ .4byte _080390FC
+ .4byte _08039118
+ .4byte _08039134
+ .4byte _08039150
+ .4byte _0803916C
+ .4byte _08039188
+ .4byte _080391A4
+ .4byte _080391C0
+ .4byte _080391DC
+ .4byte _080391F8
+_08038A34:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08038BC8 @ =gEnemyParty
+ adds 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, r7
+ mov r10, r0
+ adds r0, r7, 0
+ adds r0, 0x2B
+ str r0, [sp, 0x20]
+ adds r0, 0x19
+ str r0, [sp, 0x28]
+ adds r0, 0x4
+ str r0, [sp, 0x2C]
+ adds r0, 0x4
+ str r0, [sp, 0x30]
+ subs r0, 0x22
+ str r0, [sp, 0x1C]
+ subs r0, 0x2
+ str r0, [sp, 0x18]
+ adds r0, 0x4
+ str r0, [sp, 0x24]
+ adds r0, r7, 0x2
+ str r0, [sp, 0x4]
+ adds r0, r7, 0x4
+ str r0, [sp, 0x8]
+ adds r0, r7, 0x6
+ str r0, [sp, 0xC]
+ adds r0, 0x2
+ str r0, [sp, 0x10]
+ adds r0, 0x2
+ str r0, [sp, 0x14]
+ mov r9, r4
+ adds r6, r7, 0
+ adds r6, 0x24
+ adds r4, r7, 0
+ adds r4, 0xC
+_08038A9A:
+ mov r1, r8
+ adds r1, 0xD
+ mov r0, r9
+ adds r2, r4, 0
+ bl SetMonData
+ mov r1, r8
+ adds r1, 0x11
+ mov r0, r9
+ adds r2, r6, 0
+ bl SetMonData
+ adds r6, 0x1
+ adds r4, 0x2
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0x3
+ ble _08038A9A
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08038BC8 @ =gEnemyParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ mov r2, r10
+ 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, 27
+ lsrs r0, 27
+ 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, 22
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x28
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrb r0, [r7, 0x15]
+ lsls r0, 25
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x29
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldr r0, [r7, 0x14]
+ lsls r0, 12
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrh r0, [r7, 0x16]
+ lsls r0, 23
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrb r0, [r7, 0x17]
+ lsls r0, 26
+ lsrs r0, 27
+ 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, 0x4]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3C
+ ldr r2, [sp, 0x8]
+ 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 _0803920C
+ .align 2, 0
+_08038BC8: .4byte gEnemyParty
+_08038BCC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038BE4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0xB
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038BE4: .4byte gEnemyParty
+_08038BE8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038C00 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0xC
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038C00: .4byte gEnemyParty
+_08038C04:
+ movs r0, 0
+ mov r8, r0
+ movs r0, 0xC
+ adds r0, r4
+ mov r9, r0
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08038C54 @ =gEnemyParty
+ adds r7, r1, r0
+ adds r6, r4, 0
+ adds r6, 0x8
+_08038C1C:
+ 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, 0x1
+ adds r4, 0x2
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0x3
+ ble _08038C1C
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038C54 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ mov r2, r9
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038C54: .4byte gEnemyParty
+_08038C58:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038C70 @ =gEnemyParty
+ adds r0, r1
+ ldr r3, _08038C74 @ =gUnknown_02023A60
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _08038CF6
+ .align 2, 0
+_08038C70: .4byte gEnemyParty
+_08038C74: .4byte gUnknown_02023A60
+_08038C78:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08038CDC @ =gEnemyParty
+ adds r4, r0
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ adds r0, r4, 0
+ movs r1, 0x11
+ str r3, [sp, 0x34]
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x12
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x2
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x13
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x3
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x14
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x4
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038CDC: .4byte gEnemyParty
+_08038CE0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038D00 @ =gEnemyParty
+ adds r0, r1
+ ldr r3, _08038D04 @ =gUnknown_02023A60
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x8
+_08038CF6:
+ adds r3, 0x3
+ adds r2, r3
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038D00: .4byte gEnemyParty
+_08038D04: .4byte gUnknown_02023A60
+_08038D08:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038D20 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038D20: .4byte gEnemyParty
+_08038D24:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038D3C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x19
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038D3C: .4byte gEnemyParty
+_08038D40:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038D58 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1A
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038D58: .4byte gEnemyParty
+_08038D5C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038D74 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1B
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038D74: .4byte gEnemyParty
+_08038D78:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038D90 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1C
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038D90: .4byte gEnemyParty
+_08038D94:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038DAC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1D
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038DAC: .4byte gEnemyParty
+_08038DB0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038DC8 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1E
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038DC8: .4byte gEnemyParty
+_08038DCC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038DE4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1F
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038DE4: .4byte gEnemyParty
+_08038DE8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038E00 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x20
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038E00: .4byte gEnemyParty
+_08038E04:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038E1C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x22
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038E1C: .4byte gEnemyParty
+_08038E20:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038E38 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x23
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038E38: .4byte gEnemyParty
+_08038E3C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038E54 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x24
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038E54: .4byte gEnemyParty
+_08038E58:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038E70 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x25
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038E70: .4byte gEnemyParty
+_08038E74:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038E8C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x26
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038E8C: .4byte gEnemyParty
+_08038E90:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08038F00 @ =gEnemyParty
+ adds r4, r0
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ adds r0, r4, 0
+ movs r1, 0x27
+ str r3, [sp, 0x34]
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x2
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x3
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x4
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x5
+ adds r2, r0
+ adds r0, r4, 0
+ b _08038F9E
+ .align 2, 0
+_08038F00: .4byte gEnemyParty
+_08038F04:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038F1C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x27
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038F1C: .4byte gEnemyParty
+_08038F20:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038F38 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x28
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038F38: .4byte gEnemyParty
+_08038F3C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038F54 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x29
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038F54: .4byte gEnemyParty
+_08038F58:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038F70 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2A
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038F70: .4byte gEnemyParty
+_08038F74:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038F8C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2B
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038F8C: .4byte gEnemyParty
+_08038F90:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038FA8 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+_08038F9E:
+ movs r1, 0x2C
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038FA8: .4byte gEnemyParty
+_08038FAC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038FC4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038FC4: .4byte gEnemyParty
+_08038FC8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038FE0 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x9
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038FE0: .4byte gEnemyParty
+_08038FE4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038FFC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x37
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038FFC: .4byte gEnemyParty
+_08039000:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039018 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x38
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039018: .4byte gEnemyParty
+_0803901C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039034 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x39
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039034: .4byte gEnemyParty
+_08039038:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039050 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3A
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039050: .4byte gEnemyParty
+_08039054:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803906C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3B
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_0803906C: .4byte gEnemyParty
+_08039070:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039088 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3C
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039088: .4byte gEnemyParty
+_0803908C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080390A4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3D
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080390A4: .4byte gEnemyParty
+_080390A8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080390C0 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3E
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080390C0: .4byte gEnemyParty
+_080390C4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080390DC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3F
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080390DC: .4byte gEnemyParty
+_080390E0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080390F8 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x16
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080390F8: .4byte gEnemyParty
+_080390FC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039114 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x17
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039114: .4byte gEnemyParty
+_08039118:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039130 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x18
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039130: .4byte gEnemyParty
+_08039134:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803914C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x21
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_0803914C: .4byte gEnemyParty
+_08039150:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039168 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2F
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039168: .4byte gEnemyParty
+_0803916C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039184 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x30
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039184: .4byte gEnemyParty
+_08039188:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080391A0 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x32
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080391A0: .4byte gEnemyParty
+_080391A4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080391BC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x33
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080391BC: .4byte gEnemyParty
+_080391C0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080391D8 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x34
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080391D8: .4byte gEnemyParty
+_080391DC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080391F4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x35
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080391F4: .4byte gEnemyParty
+_080391F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803921C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x36
+ bl SetMonData
+_0803920C:
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803921C: .4byte gEnemyParty
+ thumb_func_end sub_8038900
+
+ thumb_func_start sub_8039220
+sub_8039220: @ 8039220
+ push {r4-r7,lr}
+ ldr r1, _08039284 @ =gUnknown_02024A6A
+ ldr r7, _08039288 @ =gUnknown_02024A60
+ ldrb r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ adds r3, r1, 0
+ muls r3, r0
+ ldr r4, _0803928C @ =gUnknown_02023A60
+ lsls r2, 9
+ adds r0, r4, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ ldr r1, _08039290 @ =gEnemyParty
+ adds r0, r1
+ adds r5, r3, r0
+ movs r3, 0
+ adds r0, r4, 0x2
+ adds r2, r0
+ ldrb r2, [r2]
+ cmp r3, r2
+ bcs _08039278
+ adds r6, r4, 0
+ adds r2, r7, 0
+ adds r4, r0, 0
+_08039256:
+ adds r1, r5, r3
+ ldrb r0, [r2]
+ lsls r0, 9
+ adds r0, 0x3
+ adds r0, r3, r0
+ adds r0, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r2]
+ lsls r0, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcc _08039256
+_08039278:
+ bl dp01_tbl4_exec_completed
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039284: .4byte gUnknown_02024A6A
+_08039288: .4byte gUnknown_02024A60
+_0803928C: .4byte gUnknown_02023A60
+_08039290: .4byte gEnemyParty
+ thumb_func_end sub_8039220
+
+ thumb_func_start sub_8039294
+sub_8039294: @ 8039294
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r7, _080393BC @ =gUnknown_02024A6A
+ ldr r6, _080393C0 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r1, 0x64
+ mov r10, r1
+ mov r2, r10
+ muls r2, r0
+ adds r0, r2, 0
+ ldr r1, _080393C4 @ =gEnemyParty
+ mov r9, r1
+ add r0, r9
+ movs r1, 0xB
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ mov r2, r10
+ muls r2, r0
+ adds r0, r2, 0
+ add r0, r9
+ bl sub_8031794
+ ldrb r0, [r6]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _080393C8 @ =gUnknown_02024E8C
+ mov r8, r0
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldrb r0, [r6]
+ bl sub_8077F68
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r6]
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r4, _080393CC @ =gUnknown_02024BE0
+ ldrb r1, [r6]
+ adds r1, r4
+ strb r0, [r1]
+ ldr r5, _080393D0 @ =gSprites
+ ldrb r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _080393D4 @ =0x0000ff10
+ strh r1, [r0, 0x24]
+ ldrb r2, [r6]
+ adds r0, r2, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x2E]
+ ldrb r3, [r6]
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r2, [r6]
+ adds r4, r2, r4
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _080393D8 @ =gUnknown_02024E84
+ adds r2, r1
+ ldrb r1, [r2]
+ bl StartSpriteAnim
+ ldrb r4, [r6]
+ lsls r0, r4, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r9
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8032984
+ ldr r1, _080393DC @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080393E0 @ =sub_8037A74
+ str r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080393BC: .4byte gUnknown_02024A6A
+_080393C0: .4byte gUnknown_02024A60
+_080393C4: .4byte gEnemyParty
+_080393C8: .4byte gUnknown_02024E8C
+_080393CC: .4byte gUnknown_02024BE0
+_080393D0: .4byte gSprites
+_080393D4: .4byte 0x0000ff10
+_080393D8: .4byte gUnknown_02024E84
+_080393DC: .4byte gUnknown_03004330
+_080393E0: .4byte sub_8037A74
+ thumb_func_end sub_8039294
+
+ thumb_func_start sub_80393E4
+sub_80393E4: @ 80393E4
+ push {r4,lr}
+ ldr r1, _0803941C @ =gUnknown_02024A6A
+ ldr r4, _08039420 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r2, r0, 1
+ adds r2, r1
+ ldr r3, _08039424 @ =gUnknown_02023A60
+ lsls r0, 9
+ adds r1, r3, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r2]
+ ldrb r0, [r4]
+ lsls r1, r0, 9
+ adds r3, 0x2
+ adds r1, r3
+ ldrb r1, [r1]
+ bl sub_8039430
+ ldr r1, _08039428 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803942C @ =sub_8037E30
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803941C: .4byte gUnknown_02024A6A
+_08039420: .4byte gUnknown_02024A60
+_08039424: .4byte gUnknown_02023A60
+_08039428: .4byte gUnknown_03004330
+_0803942C: .4byte sub_8037E30
+ thumb_func_end sub_80393E4
+
+ thumb_func_start sub_8039430
+sub_8039430: @ 8039430
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl sub_8032AA8
+ ldr r0, _0803958C @ =gUnknown_02024A6A
+ lsls r4, r6, 1
+ adds r4, r0
+ ldr r0, _08039590 @ =gUnknown_02023A60
+ lsls r1, r6, 9
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ strh r0, [r4]
+ ldrh r0, [r4]
+ movs r1, 0x64
+ mov r9, r1
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r5, _08039594 @ =gEnemyParty
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ mov r8, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, _08039598 @ =sub_80312F0
+ bl object_new_hidden_with_callback
+ ldr r1, _0803959C @ =gUnknown_0300434C
+ mov r10, r1
+ add r10, r6
+ mov r1, r10
+ strb r0, [r1]
+ ldrh r0, [r4]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r5
+ adds r1, r6, 0
+ bl sub_8031794
+ adds r0, r6, 0
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _080395A0 @ =gUnknown_02024E8C
+ mov r9, r0
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ bl sub_8077F68
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r9
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r4, _080395A4 @ =gUnknown_02024BE0
+ adds r4, r6, r4
+ strb r0, [r4]
+ ldr r5, _080395A8 @ =gSprites
+ mov r0, r10
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r4]
+ strh r1, [r0, 0x30]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x2E]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x32]
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, r6, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _080395AC @ =gUnknown_02024E84
+ adds r6, r1
+ ldrb r1, [r6]
+ bl StartSpriteAnim
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _080395B0 @ =SpriteCallbackDummy
+ str r1, [r0]
+ movs r0, 0
+ movs r1, 0xFE
+ bl sub_8046400
+ mov r1, r10
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x2E]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803958C: .4byte gUnknown_02024A6A
+_08039590: .4byte gUnknown_02023A60
+_08039594: .4byte gEnemyParty
+_08039598: .4byte sub_80312F0
+_0803959C: .4byte gUnknown_0300434C
+_080395A0: .4byte gUnknown_02024E8C
+_080395A4: .4byte gUnknown_02024BE0
+_080395A8: .4byte gSprites
+_080395AC: .4byte gUnknown_02024E84
+_080395B0: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8039430
+
+ thumb_func_start sub_80395B4
+sub_80395B4: @ 80395B4
+ push {r4-r6,lr}
+ ldr r1, _080395E4 @ =gUnknown_02023A60
+ ldr r6, _080395E8 @ =gUnknown_02024A60
+ ldrb r2, [r6]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r3, [r0]
+ cmp r3, 0
+ bne _080395F8
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _080395EC @ =0x02017810
+ adds r0, r1
+ strb r3, [r0, 0x4]
+ ldr r1, _080395F0 @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080395F4 @ =sub_8039648
+ str r1, [r0]
+ b _08039634
+ .align 2, 0
+_080395E4: .4byte gUnknown_02023A60
+_080395E8: .4byte gUnknown_02024A60
+_080395EC: .4byte 0x02017810
+_080395F0: .4byte gUnknown_03004330
+_080395F4: .4byte sub_8039648
+_080395F8:
+ ldr r5, _0803963C @ =gUnknown_02024BE0
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08039640 @ =gSprites
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldrb r0, [r6]
+ bl sub_8032A08
+ ldr r1, _08039644 @ =gUnknown_03004340
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl4_exec_completed
+_08039634:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803963C: .4byte gUnknown_02024BE0
+_08039640: .4byte gSprites
+_08039644: .4byte gUnknown_03004340
+ thumb_func_end sub_80395B4
+
+ thumb_func_start sub_8039648
+sub_8039648: @ 8039648
+ push {r4,r5,lr}
+ ldr r5, _08039664 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r4, _08039668 @ =0x02017810
+ adds r3, r0, r4
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ beq _0803966C
+ cmp r0, 0x1
+ beq _08039698
+ b _080396C0
+ .align 2, 0
+_08039664: .4byte gUnknown_02024A60
+_08039668: .4byte 0x02017810
+_0803966C:
+ lsls r0, r2, 2
+ adds r1, r4, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08039688
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_08039688:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _080396C0
+_08039698:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080396C0
+ strb r0, [r3, 0x4]
+ ldrb r2, [r5]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x2
+ bl move_anim_start_t4
+ ldr r1, _080396C8 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080396CC @ =sub_8037BBC
+ str r1, [r0]
+_080396C0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080396C8: .4byte gUnknown_03004330
+_080396CC: .4byte sub_8037BBC
+ thumb_func_end sub_8039648
+
+ thumb_func_start sub_80396D0
+sub_80396D0: @ 80396D0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ ldr r0, _08039704 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08039714
+ ldr r6, _08039708 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ ands r1, r0
+ movs r5, 0x10
+ cmp r1, 0
+ beq _080396F8
+ ldr r5, _0803970C @ =0x0000fff0
+_080396F8:
+ ldr r4, _08039710 @ =gLinkPlayers
+ ldrb r0, [r6]
+ bl sub_803FC34
+ b _08039724
+ .align 2, 0
+_08039704: .4byte gUnknown_020239F8
+_08039708: .4byte gUnknown_02024A60
+_0803970C: .4byte 0x0000fff0
+_08039710: .4byte gLinkPlayers
+_08039714:
+ movs r5, 0
+ ldr r4, _0803986C @ =gLinkPlayers
+ bl GetMultiplayerId
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+_08039724:
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1, 0x13]
+ mov r9, r0
+ ldr r0, _08039870 @ =gUnknown_02024A60
+ mov r8, r0
+ ldrb r1, [r0]
+ mov r0, r9
+ bl sub_8031A6C
+ mov r1, r8
+ ldrb r0, [r1]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r9
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r6, _08039874 @ =gUnknown_02024E8C
+ lsls r5, 16
+ movs r2, 0xB0
+ lsls r2, 16
+ adds r5, r2
+ asrs r5, 16
+ ldr r1, _08039878 @ =gTrainerFrontPicCoords
+ mov r2, r9
+ lsls r0, r2, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r4, 0x8
+ subs r4, r0
+ lsls r4, 18
+ movs r0, 0xA0
+ lsls r0, 14
+ adds r4, r0
+ asrs r4, 16
+ mov r1, r8
+ ldrb r0, [r1]
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r5, _0803987C @ =gUnknown_02024BE0
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ strb r0, [r1]
+ ldr r4, _08039880 @ =gSprites
+ ldrb r0, [r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _08039884 @ =0x0000ff10
+ strh r1, [r0, 0x24]
+ ldrb r0, [r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x2
+ strh r1, [r0, 0x2E]
+ ldr r0, _08039888 @ =gTrainerFrontPicPaletteTable
+ mov r1, r9
+ lsls r6, r1, 3
+ adds r0, r6, r0
+ ldrh r0, [r0, 0x4]
+ bl IndexOfSpritePaletteTag
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ ldrb r1, [r1]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r4
+ lsls r0, 4
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xF
+ ands r1, r3
+ orrs r1, r0
+ strb r1, [r2, 0x5]
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r1, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r1, 0x38]
+ ldr r0, _0803988C @ =gTrainerFrontPicTable
+ adds r6, r0
+ ldrh r0, [r6, 0x6]
+ bl GetSpriteTileStartByTag
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldr r2, _08039890 @ =0x000003ff
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _08039894 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r2, r9
+ strh r2, [r0, 0x6]
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _08039898 @ =sub_80313A0
+ str r1, [r0]
+ ldr r1, _0803989C @ =gUnknown_03004330
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080398A0 @ =sub_803757C
+ str r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803986C: .4byte gLinkPlayers
+_08039870: .4byte gUnknown_02024A60
+_08039874: .4byte gUnknown_02024E8C
+_08039878: .4byte gTrainerFrontPicCoords
+_0803987C: .4byte gUnknown_02024BE0
+_08039880: .4byte gSprites
+_08039884: .4byte 0x0000ff10
+_08039888: .4byte gTrainerFrontPicPaletteTable
+_0803988C: .4byte gTrainerFrontPicTable
+_08039890: .4byte 0x000003ff
+_08039894: .4byte 0xfffffc00
+_08039898: .4byte sub_80313A0
+_0803989C: .4byte gUnknown_03004330
+_080398A0: .4byte sub_803757C
+ thumb_func_end sub_80396D0
+
+ thumb_func_start sub_80398A4
+sub_80398A4: @ 80398A4
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80398A4
+
+ thumb_func_start sub_80398B0
+sub_80398B0: @ 80398B0
+ push {r4-r6,lr}
+ ldr r6, _08039940 @ =gUnknown_02024BE0
+ ldr r4, _08039944 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _08039948 @ =gSprites
+ adds r0, r5
+ bl oamt_add_pos2_onto_pos1
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x23
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x8C
+ lsls r1, 1
+ strh r1, [r0, 0x32]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0803994C @ =sub_8078B34
+ str r1, [r0]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08039950 @ =SpriteCallbackDummy
+ bl oamt_set_x3A_32
+ ldr r1, _08039954 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08039958 @ =sub_80375B4
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039940: .4byte gUnknown_02024BE0
+_08039944: .4byte gUnknown_02024A60
+_08039948: .4byte gSprites
+_0803994C: .4byte sub_8078B34
+_08039950: .4byte SpriteCallbackDummy
+_08039954: .4byte gUnknown_03004330
+_08039958: .4byte sub_80375B4
+ thumb_func_end sub_80398B0
+
+ thumb_func_start sub_803995C
+sub_803995C: @ 803995C
+ push {r4,r5,lr}
+ ldr r5, _080399A0 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r4, _080399A4 @ =0x02017810
+ adds r3, r0, r4
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ bne _080399A8
+ lsls r0, r2, 2
+ adds r1, r4, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0803998E
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_0803998E:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _080399E4
+ .align 2, 0
+_080399A0: .4byte gUnknown_02024A60
+_080399A4: .4byte 0x02017810
+_080399A8:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080399E4
+ strb r0, [r3, 0x4]
+ movs r0, 0x10
+ movs r1, 0x3F
+ bl PlaySE12WithPanning
+ ldr r2, _080399EC @ =gSprites
+ ldr r1, _080399F0 @ =gUnknown_02024BE0
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080399F4 @ =sub_8010384
+ str r1, [r0]
+ ldr r1, _080399F8 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080399FC @ =sub_8037B78
+ str r1, [r0]
+_080399E4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080399EC: .4byte gSprites
+_080399F0: .4byte gUnknown_02024BE0
+_080399F4: .4byte sub_8010384
+_080399F8: .4byte gUnknown_03004330
+_080399FC: .4byte sub_8037B78
+ thumb_func_end sub_803995C
+
+ thumb_func_start sub_8039A00
+sub_8039A00: @ 8039A00
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039A00
+
+ thumb_func_start sub_8039A0C
+sub_8039A0C: @ 8039A0C
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039A0C
+
+ thumb_func_start sub_8039A18
+sub_8039A18: @ 8039A18
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039A18
+
+ thumb_func_start sub_8039A24
+sub_8039A24: @ 8039A24
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039A24
+
+ thumb_func_start sub_8039A30
+sub_8039A30: @ 8039A30
+ push {r4-r6,lr}
+ ldr r6, _08039B14 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08039A42
+ b _08039B52
+_08039A42:
+ ldr r0, _08039B18 @ =gUnknown_02023A60
+ mov r12, r0
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r0, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ mov r1, r12
+ adds r1, 0x2
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ ldr r5, _08039B1C @ =gUnknown_0202F7C4
+ mov r1, r12
+ adds r1, 0x3
+ adds r2, r1
+ ldrb r1, [r2]
+ strb r1, [r5]
+ ldr r4, _08039B20 @ =gUnknown_0202F7BC
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x4
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0x5
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 8
+ orrs r3, r1
+ strh r3, [r4]
+ ldr r4, _08039B24 @ =gUnknown_0202F7B8
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x6
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0x7
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r3, r1
+ mov r1, r12
+ adds r1, 0x8
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 16
+ orrs r3, r1
+ mov r1, r12
+ adds r1, 0x9
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 24
+ orrs r3, r1
+ str r3, [r4]
+ ldr r3, _08039B28 @ =gUnknown_0202F7BE
+ ldrb r1, [r6]
+ lsls r1, 9
+ mov r2, r12
+ adds r2, 0xA
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r3]
+ ldr r4, _08039B2C @ =gUnknown_0202F7C0
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0xC
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0xD
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 8
+ orrs r3, r1
+ strh r3, [r4]
+ ldr r3, _08039B30 @ =gUnknown_0202F7B4
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x10
+ adds r2, r1
+ str r2, [r3]
+ ldr r3, _08039B34 @ =gUnknown_02024E70
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r3
+ ldr r2, [r2]
+ str r2, [r1]
+ ldrb r1, [r5]
+ bl sub_8031720
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _08039B38
+ bl dp01_tbl4_exec_completed
+ b _08039B52
+ .align 2, 0
+_08039B14: .4byte gUnknown_02024A60
+_08039B18: .4byte gUnknown_02023A60
+_08039B1C: .4byte gUnknown_0202F7C4
+_08039B20: .4byte gUnknown_0202F7BC
+_08039B24: .4byte gUnknown_0202F7B8
+_08039B28: .4byte gUnknown_0202F7BE
+_08039B2C: .4byte gUnknown_0202F7C0
+_08039B30: .4byte gUnknown_0202F7B4
+_08039B34: .4byte gUnknown_02024E70
+_08039B38:
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08039B58 @ =0x02017810
+ adds r0, r1
+ strb r2, [r0, 0x4]
+ ldr r1, _08039B5C @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08039B60 @ =sub_8039B64
+ str r1, [r0]
+_08039B52:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039B58: .4byte 0x02017810
+_08039B5C: .4byte gUnknown_03004330
+_08039B60: .4byte sub_8039B64
+ thumb_func_end sub_8039A30
+
+ thumb_func_start sub_8039B64
+sub_8039B64: @ 8039B64
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r2, _08039BA8 @ =gUnknown_02023A60
+ ldr r5, _08039BAC @ =gUnknown_02024A60
+ ldrb r3, [r5]
+ lsls r1, r3, 9
+ adds r0, r2, 0x1
+ mov r9, r0
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r6, r2, 0x2
+ mov r8, r6
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r4, r0
+ adds r2, 0xB
+ adds r1, r2
+ ldrb r7, [r1]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r6, _08039BB0 @ =0x02017810
+ adds r0, r6
+ ldrb r2, [r0, 0x4]
+ cmp r2, 0x1
+ beq _08039BF2
+ cmp r2, 0x1
+ bgt _08039BB4
+ cmp r2, 0
+ beq _08039BBE
+ b _08039CBC
+ .align 2, 0
+_08039BA8: .4byte gUnknown_02023A60
+_08039BAC: .4byte gUnknown_02024A60
+_08039BB0: .4byte 0x02017810
+_08039BB4:
+ cmp r2, 0x2
+ beq _08039C18
+ cmp r2, 0x3
+ beq _08039C84
+ b _08039CBC
+_08039BBE:
+ lsls r1, r3, 2
+ adds r0, r6, 0
+ subs r0, 0x10
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0xC
+ ands r0, r2
+ cmp r0, 0x4
+ bne _08039BE2
+ movs r0, 0x8
+ orrs r0, r2
+ strb r0, [r1]
+ ldrb r2, [r5]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_08039BE2:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08039CBC
+_08039BF2:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08039CBC
+ movs r0, 0
+ bl sub_80326EC
+ adds r0, r4, 0
+ bl move_anim_start_t1
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ b _08039CBC
+_08039C18:
+ ldr r0, _08039C74 @ =gUnknown_0202F7AC
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _08039C78 @ =gUnknown_0202F7B1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08039CBC
+ movs r0, 0x1
+ bl sub_80326EC
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r4, r6, 0
+ subs r4, 0x10
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08039C60
+ cmp r7, 0x1
+ bhi _08039C60
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r2, [r0]
+ movs r1, 0x9
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_08039C60:
+ ldr r0, _08039C7C @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08039C80 @ =0x02017810
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0, 0x4]
+ b _08039CBC
+ .align 2, 0
+_08039C74: .4byte gUnknown_0202F7AC
+_08039C78: .4byte gUnknown_0202F7B1
+_08039C7C: .4byte gUnknown_02024A60
+_08039C80: .4byte 0x02017810
+_08039C84:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08039CBC
+ bl sub_8031F24
+ ldrb r0, [r5]
+ lsls r2, r0, 9
+ mov r3, r9
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ add r2, r8
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ bl sub_80324BC
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strb r4, [r0, 0x4]
+ bl dp01_tbl4_exec_completed
+_08039CBC:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039B64
+
+ thumb_func_start sub_8039CC8
+sub_8039CC8: @ 8039CC8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _08039D0C @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _08039D10 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r4, _08039D14 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r0, 9
+ ldr r1, _08039D18 @ =gUnknown_02023A62
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_8120AA8
+ ldr r0, _08039D1C @ =gUnknown_03004210
+ ldr r1, _08039D20 @ =gUnknown_020238CC
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08039D24 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08039D28 @ =sub_8037C2C
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039D0C: .4byte gUnknown_030042A4
+_08039D10: .4byte gUnknown_030042A0
+_08039D14: .4byte gUnknown_02024A60
+_08039D18: .4byte gUnknown_02023A62
+_08039D1C: .4byte gUnknown_03004210
+_08039D20: .4byte gUnknown_020238CC
+_08039D24: .4byte gUnknown_03004330
+_08039D28: .4byte sub_8037C2C
+ thumb_func_end sub_8039CC8
+
+ thumb_func_start sub_8039D2C
+sub_8039D2C: @ 8039D2C
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D2C
+
+ thumb_func_start sub_8039D38
+sub_8039D38: @ 8039D38
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D38
+
+ thumb_func_start sub_8039D44
+sub_8039D44: @ 8039D44
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D44
+
+ thumb_func_start sub_8039D50
+sub_8039D50: @ 8039D50
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D50
+
+ thumb_func_start sub_8039D5C
+sub_8039D5C: @ 8039D5C
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D5C
+
+ thumb_func_start sub_8039D68
+sub_8039D68: @ 8039D68
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D68
+
+ thumb_func_start sub_8039D74
+sub_8039D74: @ 8039D74
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D74
+
+ thumb_func_start sub_8039D80
+sub_8039D80: @ 8039D80
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ movs r0, 0
+ bl load_gfxc_health_bar
+ ldr r3, _08039DF8 @ =gUnknown_02023A60
+ ldr r0, _08039DFC @ =gUnknown_02024A60
+ mov r9, r0
+ ldrb r4, [r0]
+ lsls r2, r4, 9
+ adds r0, r3, 0x2
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ adds r3, 0x3
+ adds r2, r3
+ ldrb r0, [r2]
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ asrs r7, r1, 16
+ ldr r0, _08039E00 @ =0x00007fff
+ cmp r7, r0
+ beq _08039E10
+ ldr r6, _08039E04 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _08039E08 @ =gEnemyParty
+ adds r0, r4
+ movs r1, 0x3A
+ bl GetMonData
+ mov r8, r0
+ mov r1, r9
+ ldrb r0, [r1]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x39
+ bl GetMonData
+ adds r3, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r1, _08039E0C @ =gUnknown_03004340
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ mov r2, r8
+ bl sub_8043D84
+ b _08039E3A
+ .align 2, 0
+_08039DF8: .4byte gUnknown_02023A60
+_08039DFC: .4byte gUnknown_02024A60
+_08039E00: .4byte 0x00007fff
+_08039E04: .4byte gUnknown_02024A6A
+_08039E08: .4byte gEnemyParty
+_08039E0C: .4byte gUnknown_03004340
+_08039E10:
+ ldr r1, _08039E58 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08039E5C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3A
+ bl GetMonData
+ adds r2, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r1, _08039E60 @ =gUnknown_03004340
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ movs r3, 0
+ bl sub_8043D84
+_08039E3A:
+ ldr r1, _08039E64 @ =gUnknown_03004330
+ ldr r0, _08039E68 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08039E6C @ =sub_8037B24
+ str r1, [r0]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039E58: .4byte gUnknown_02024A6A
+_08039E5C: .4byte gEnemyParty
+_08039E60: .4byte gUnknown_03004340
+_08039E64: .4byte gUnknown_03004330
+_08039E68: .4byte gUnknown_02024A60
+_08039E6C: .4byte sub_8037B24
+ thumb_func_end sub_8039D80
+
+ thumb_func_start sub_8039E70
+sub_8039E70: @ 8039E70
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039E70
+
+ thumb_func_start sub_8039E7C
+sub_8039E7C: @ 8039E7C
+ push {r4,lr}
+ ldr r4, _08039ED4 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08039ECC
+ ldr r0, _08039ED8 @ =gUnknown_03004340
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, _08039EDC @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _08039EE0 @ =gEnemyParty
+ adds r1, r2
+ movs r2, 0x9
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08039EE4 @ =0x02017810
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, _08039EE8 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08039EEC @ =sub_8037FAC
+ str r1, [r0]
+_08039ECC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039ED4: .4byte gUnknown_02024A60
+_08039ED8: .4byte gUnknown_03004340
+_08039EDC: .4byte gUnknown_02024A6A
+_08039EE0: .4byte gEnemyParty
+_08039EE4: .4byte 0x02017810
+_08039EE8: .4byte gUnknown_03004330
+_08039EEC: .4byte sub_8037FAC
+ thumb_func_end sub_8039E7C
+
+ thumb_func_start sub_8039EF0
+sub_8039EF0: @ 8039EF0
+ push {r4,r5,lr}
+ ldr r5, _08039F48 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08039F40
+ ldr r4, _08039F4C @ =gUnknown_02023A60
+ ldrb r3, [r5]
+ lsls r3, 9
+ adds r0, r4, 0x1
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ adds r1, r4, 0x2
+ adds r1, r3, r1
+ ldrb r1, [r1]
+ adds r2, r4, 0x3
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ adds r2, r4, 0x4
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ lsls r2, 16
+ orrs r1, r2
+ adds r4, 0x5
+ adds r3, r4
+ ldrb r2, [r3]
+ lsls r2, 24
+ orrs r1, r2
+ bl move_anim_start_t2_for_situation
+ ldr r1, _08039F50 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08039F54 @ =sub_8037FAC
+ str r1, [r0]
+_08039F40:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039F48: .4byte gUnknown_02024A60
+_08039F4C: .4byte gUnknown_02023A60
+_08039F50: .4byte gUnknown_03004330
+_08039F54: .4byte sub_8037FAC
+ thumb_func_end sub_8039EF0
+
+ thumb_func_start sub_8039F58
+sub_8039F58: @ 8039F58
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039F58
+
+ thumb_func_start sub_8039F64
+sub_8039F64: @ 8039F64
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039F64
+
+ thumb_func_start sub_8039F70
+sub_8039F70: @ 8039F70
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039F70
+
+ thumb_func_start sub_8039F7C
+sub_8039F7C: @ 8039F7C
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039F7C
+
+ thumb_func_start sub_8039F88
+sub_8039F88: @ 8039F88
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039F88
+
+ thumb_func_start sub_8039F94
+sub_8039F94: @ 8039F94
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039F94
+
+ thumb_func_start sub_8039FA0
+sub_8039FA0: @ 8039FA0
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039FA0
+
+ thumb_func_start sub_8039FAC
+sub_8039FAC: @ 8039FAC
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039FAC
+
+ thumb_func_start sub_8039FB8
+sub_8039FB8: @ 8039FB8
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039FB8
+
+ thumb_func_start sub_8039FC4
+sub_8039FC4: @ 8039FC4
+ push {lr}
+ ldr r2, _08039FDC @ =gUnknown_020238C8
+ ldrb r1, [r2]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039FDC: .4byte gUnknown_020238C8
+ thumb_func_end sub_8039FC4
+
+ thumb_func_start sub_8039FE0
+sub_8039FE0: @ 8039FE0
+ push {lr}
+ ldr r3, _0803A00C @ =gUnknown_020238C8
+ ldr r1, _0803A010 @ =gUnknown_02023A60
+ ldr r0, _0803A014 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x7F
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A00C: .4byte gUnknown_020238C8
+_0803A010: .4byte gUnknown_02023A60
+_0803A014: .4byte gUnknown_02024A60
+ thumb_func_end sub_8039FE0
+
+ thumb_func_start sub_803A018
+sub_803A018: @ 803A018
+ push {lr}
+ ldr r2, _0803A02C @ =gUnknown_020238C8
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A02C: .4byte gUnknown_020238C8
+ thumb_func_end sub_803A018
+
+ thumb_func_start sub_803A030
+sub_803A030: @ 803A030
+ push {lr}
+ ldr r3, _0803A054 @ =gUnknown_020238C8
+ ldr r1, [r3]
+ lsls r1, 24
+ lsrs r1, 31
+ movs r0, 0x1
+ eors r1, r0
+ lsls r1, 7
+ ldrb r2, [r3]
+ movs r0, 0x7F
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A054: .4byte gUnknown_020238C8
+ thumb_func_end sub_803A030
+
+ thumb_func_start dp01t_29_4_blink
+dp01t_29_4_blink: @ 803A058
+ push {r4,lr}
+ ldr r3, _0803A080 @ =gSprites
+ ldr r2, _0803A084 @ =gUnknown_02024BE0
+ ldr r4, _0803A088 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _0803A08C
+ bl dp01_tbl4_exec_completed
+ b _0803A0B6
+ .align 2, 0
+_0803A080: .4byte gSprites
+_0803A084: .4byte gUnknown_02024BE0
+_0803A088: .4byte gUnknown_02024A60
+_0803A08C:
+ ldr r1, _0803A0BC @ =gUnknown_02024E6D
+ movs r0, 0x1
+ strb r0, [r1]
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ ldrb r0, [r4]
+ bl sub_8047858
+ ldr r1, _0803A0C0 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803A0C4 @ =dp01t_0F_4_move_anim
+ str r1, [r0]
+_0803A0B6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A0BC: .4byte gUnknown_02024E6D
+_0803A0C0: .4byte gUnknown_03004330
+_0803A0C4: .4byte dp01t_0F_4_move_anim
+ thumb_func_end dp01t_29_4_blink
+
+ thumb_func_start sub_803A0C8
+sub_803A0C8: @ 803A0C8
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803A0C8
+
+ thumb_func_start sub_803A0D4
+sub_803A0D4: @ 803A0D4
+ push {r4,lr}
+ ldr r4, _0803A110 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r3, 0x3F
+ cmp r0, 0
+ bne _0803A0E8
+ movs r3, 0xC0
+_0803A0E8:
+ ldr r2, _0803A114 @ =gUnknown_02023A60
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ lsls r1, r3, 24
+ asrs r1, 24
+ bl PlaySE12WithPanning
+ bl dp01_tbl4_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A110: .4byte gUnknown_02024A60
+_0803A114: .4byte gUnknown_02023A60
+ thumb_func_end sub_803A0D4
+
+ thumb_func_start sub_803A118
+sub_803A118: @ 803A118
+ push {lr}
+ ldr r2, _0803A140 @ =gUnknown_02023A60
+ ldr r0, _0803A144 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl PlayFanfare
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A140: .4byte gUnknown_02023A60
+_0803A144: .4byte gUnknown_02024A60
+ thumb_func_end sub_803A118
+
+ thumb_func_start sub_803A148
+sub_803A148: @ 803A148
+ push {lr}
+ ldr r1, _0803A178 @ =gUnknown_02024A6A
+ ldr r0, _0803A17C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0803A180 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x19
+ movs r2, 0x5
+ bl PlayCry3
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A178: .4byte gUnknown_02024A6A
+_0803A17C: .4byte gUnknown_02024A60
+_0803A180: .4byte gEnemyParty
+ thumb_func_end sub_803A148
+
+ thumb_func_start dp01t_2E_4_battle_intro
+dp01t_2E_4_battle_intro: @ 803A184
+ push {lr}
+ ldr r1, _0803A1AC @ =gUnknown_02023A60
+ ldr r0, _0803A1B0 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80E43C0
+ ldr r2, _0803A1B4 @ =gUnknown_02024DE8
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A1AC: .4byte gUnknown_02023A60
+_0803A1B0: .4byte gUnknown_02024A60
+_0803A1B4: .4byte gUnknown_02024DE8
+ thumb_func_end dp01t_2E_4_battle_intro
+
+ thumb_func_start sub_803A1B8
+sub_803A1B8: @ 803A1B8
+ push {r4-r6,lr}
+ ldr r5, _0803A294 @ =gUnknown_02024BE0
+ ldr r6, _0803A298 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0803A29C @ =gSprites
+ adds r0, r4
+ bl oamt_add_pos2_onto_pos1
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x23
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x8C
+ lsls r1, 1
+ strh r1, [r0, 0x32]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0803A2A0 @ =sub_8078B34
+ str r1, [r0]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _0803A2A4 @ =sub_803A3A8
+ bl oamt_set_x3A_32
+ ldr r0, _0803A2A8 @ =sub_803A2C4
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _0803A2AC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ ldrb r0, [r6]
+ strh r0, [r1, 0x8]
+ ldrb r3, [r6]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r2, _0803A2B0 @ =0x02017810
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0803A276
+ ldr r0, _0803A2B4 @ =gUnknown_02024E68
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ ldr r1, _0803A2B8 @ =sub_8044CA0
+ str r1, [r0]
+_0803A276:
+ adds r2, 0x30
+ ldrb r0, [r2, 0x9]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _0803A2BC @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803A2C0 @ =nullsub_47
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A294: .4byte gUnknown_02024BE0
+_0803A298: .4byte gUnknown_02024A60
+_0803A29C: .4byte gSprites
+_0803A2A0: .4byte sub_8078B34
+_0803A2A4: .4byte sub_803A3A8
+_0803A2A8: .4byte sub_803A2C4
+_0803A2AC: .4byte gTasks
+_0803A2B0: .4byte 0x02017810
+_0803A2B4: .4byte gUnknown_02024E68
+_0803A2B8: .4byte sub_8044CA0
+_0803A2BC: .4byte gUnknown_03004330
+_0803A2C0: .4byte nullsub_47
+ thumb_func_end sub_803A1B8
+
+ thumb_func_start sub_803A2C4
+sub_803A2C4: @ 803A2C4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r7, _0803A31C @ =gUnknown_02024A60
+ ldrb r0, [r7]
+ mov r9, r0
+ ldr r1, _0803A320 @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ strb r0, [r7]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803A2FE
+ ldr r0, _0803A324 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0803A330
+_0803A2FE:
+ ldr r0, _0803A328 @ =gUnknown_02023A60
+ ldrb r1, [r7]
+ lsls r2, r1, 9
+ adds r0, 0x1
+ adds r2, r0
+ ldr r0, _0803A32C @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ strb r0, [r2]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_8039430
+ b _0803A370
+ .align 2, 0
+_0803A31C: .4byte gUnknown_02024A60
+_0803A320: .4byte gTasks
+_0803A324: .4byte gUnknown_020239F8
+_0803A328: .4byte gUnknown_02023A60
+_0803A32C: .4byte gUnknown_02024A6A
+_0803A330:
+ ldr r4, _0803A394 @ =gUnknown_02023A60
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r4, 0x1
+ adds r1, r4
+ ldr r6, _0803A398 @ =gUnknown_02024A6A
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_8039430
+ ldrb r0, [r7]
+ movs r5, 0x2
+ eors r0, r5
+ strb r0, [r7]
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r1, r4
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_8039430
+ ldrb r0, [r7]
+ eors r0, r5
+ strb r0, [r7]
+_0803A370:
+ ldr r1, _0803A39C @ =gUnknown_03004330
+ ldr r2, _0803A3A0 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803A3A4 @ =sub_8037840
+ str r1, [r0]
+ mov r0, r9
+ strb r0, [r2]
+ mov r0, r8
+ bl DestroyTask
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A394: .4byte gUnknown_02023A60
+_0803A398: .4byte gUnknown_02024A6A
+_0803A39C: .4byte gUnknown_03004330
+_0803A3A0: .4byte gUnknown_02024A60
+_0803A3A4: .4byte sub_8037840
+ thumb_func_end sub_803A2C4
+
+ thumb_func_start sub_803A3A8
+sub_803A3A8: @ 803A3A8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x6]
+ bl sub_8031B74
+ ldrh r0, [r4, 0x38]
+ ldr r1, _0803A3D4 @ =0x000003ff
+ ands r1, r0
+ ldrh r2, [r4, 0x4]
+ ldr r0, _0803A3D8 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A3D4: .4byte 0x000003ff
+_0803A3D8: .4byte 0xfffffc00
+ thumb_func_end sub_803A3A8
+
+ thumb_func_start sub_803A3DC
+sub_803A3DC: @ 803A3DC
+ push {r4-r6,lr}
+ ldr r1, _0803A404 @ =gUnknown_02023A60
+ ldr r0, _0803A408 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0803A40C
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803A40C
+ bl dp01_tbl4_exec_completed
+ b _0803A4C6
+ .align 2, 0
+_0803A404: .4byte gUnknown_02023A60
+_0803A408: .4byte gUnknown_02024A60
+_0803A40C:
+ ldr r3, _0803A45C @ =gUnknown_02024A60
+ ldrb r1, [r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0803A460 @ =0x02017810
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r1, _0803A464 @ =gUnknown_02023A60
+ ldrb r2, [r3]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r6, r3, 0
+ cmp r0, 0
+ beq _0803A470
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r4
+ ldrb r2, [r3, 0x1]
+ lsls r1, r2, 26
+ lsrs r0, r1, 27
+ cmp r0, 0x1
+ bhi _0803A468
+ adds r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ lsls r0, 1
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x1]
+ b _0803A4C6
+ .align 2, 0
+_0803A45C: .4byte gUnknown_02024A60
+_0803A460: .4byte 0x02017810
+_0803A464: .4byte gUnknown_02023A60
+_0803A468:
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r3, 0x1]
+_0803A470:
+ adds r5, r6, 0
+ ldrb r0, [r5]
+ lsls r3, r0, 9
+ ldr r4, _0803A4CC @ =gUnknown_02023A64
+ adds r1, r3, r4
+ subs r2, r4, 0x3
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ subs r4, 0x2
+ adds r3, r4
+ ldrb r3, [r3]
+ bl sub_8044804
+ ldr r2, _0803A4D0 @ =gUnknown_02024E68
+ ldrb r1, [r5]
+ adds r1, r2
+ movs r2, 0
+ strb r0, [r1]
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _0803A4D4 @ =0x02017810
+ adds r0, r3
+ strb r2, [r0, 0x5]
+ ldrb r1, [r5]
+ lsls r0, r1, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0803A4BA
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x5D
+ strb r1, [r0, 0x5]
+_0803A4BA:
+ ldr r0, _0803A4D8 @ =gUnknown_03004330
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _0803A4DC @ =sub_803A4E0
+ str r0, [r1]
+_0803A4C6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A4CC: .4byte gUnknown_02023A64
+_0803A4D0: .4byte gUnknown_02024E68
+_0803A4D4: .4byte 0x02017810
+_0803A4D8: .4byte gUnknown_03004330
+_0803A4DC: .4byte sub_803A4E0
+ thumb_func_end sub_803A3DC
+
+ thumb_func_start sub_803A4E0
+sub_803A4E0: @ 803A4E0
+ push {r4,lr}
+ ldr r4, _0803A518 @ =gUnknown_02024A60
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _0803A51C @ =0x02017810
+ adds r0, r3
+ ldrb r1, [r0, 0x5]
+ adds r2, r1, 0x1
+ strb r2, [r0, 0x5]
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x5C
+ bls _0803A510
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ bl dp01_tbl4_exec_completed
+_0803A510:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A518: .4byte gUnknown_02024A60
+_0803A51C: .4byte 0x02017810
+ thumb_func_end sub_803A4E0
+
+ thumb_func_start sub_803A520
+sub_803A520: @ 803A520
+ push {lr}
+ ldr r0, _0803A558 @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r1, _0803A55C @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0803A54E
+ ldr r2, _0803A560 @ =gTasks
+ ldr r0, _0803A564 @ =gUnknown_02024E68
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _0803A568 @ =sub_8044CA0
+ str r1, [r0]
+_0803A54E:
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A558: .4byte gUnknown_02024A60
+_0803A55C: .4byte 0x02017810
+_0803A560: .4byte gTasks
+_0803A564: .4byte gUnknown_02024E68
+_0803A568: .4byte sub_8044CA0
+ thumb_func_end sub_803A520
+
+ thumb_func_start sub_803A56C
+sub_803A56C: @ 803A56C
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803A56C
+
+ thumb_func_start sub_803A578
+sub_803A578: @ 803A578
+ push {r4,lr}
+ ldr r4, _0803A5C8 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl sub_8078874
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803A5BE
+ ldr r3, _0803A5CC @ =gSprites
+ ldr r0, _0803A5D0 @ =gUnknown_02024BE0
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldr r0, _0803A5D4 @ =gUnknown_02023A60
+ lsls r1, 9
+ adds r0, 0x1
+ adds r1, r0
+ adds r2, 0x3E
+ movs r0, 0x1
+ ldrb r1, [r1]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4]
+ bl sub_8031F88
+_0803A5BE:
+ bl dp01_tbl4_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A5C8: .4byte gUnknown_02024A60
+_0803A5CC: .4byte gSprites
+_0803A5D0: .4byte gUnknown_02024BE0
+_0803A5D4: .4byte gUnknown_02023A60
+ thumb_func_end sub_803A578
+
+ thumb_func_start bx_exec_buffer_A_ch0_tbl4
+bx_exec_buffer_A_ch0_tbl4: @ 803A5D8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r6, _0803A61C @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803A630
+ ldr r5, _0803A620 @ =gUnknown_02023A60
+ ldrb r2, [r6]
+ lsls r1, r2, 9
+ adds r0, r5, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r0, r5, 0x2
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r5, 0x3
+ adds r1, r5
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r4, r0
+ str r4, [sp]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ bl move_anim_start_t3
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803A624
+ bl dp01_tbl4_exec_completed
+ b _0803A630
+ .align 2, 0
+_0803A61C: .4byte gUnknown_02024A60
+_0803A620: .4byte gUnknown_02023A60
+_0803A624:
+ ldr r0, _0803A638 @ =gUnknown_03004330
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _0803A63C @ =sub_8037FD8
+ str r0, [r1]
+_0803A630:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A638: .4byte gUnknown_03004330
+_0803A63C: .4byte sub_8037FD8
+ thumb_func_end bx_exec_buffer_A_ch0_tbl4
+
+ thumb_func_start sub_803A640
+sub_803A640: @ 803A640
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803A640
+
+ thumb_func_start sub_803A64C
+sub_803A64C: @ 803A64C
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803A64C
+
+ thumb_func_start sub_803A658
+sub_803A658: @ 803A658
+ push {lr}
+ ldr r1, _0803A674 @ =gUnknown_02023A60
+ ldr r0, _0803A678 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r2, [r0]
+ cmp r2, 0x3
+ bne _0803A680
+ ldr r0, _0803A67C @ =gUnknown_02024D26
+ strb r2, [r0]
+ b _0803A688
+ .align 2, 0
+_0803A674: .4byte gUnknown_02023A60
+_0803A678: .4byte gUnknown_02024A60
+_0803A67C: .4byte gUnknown_02024D26
+_0803A680:
+ ldr r0, _0803A6AC @ =gUnknown_02024D26
+ movs r1, 0x3
+ eors r1, r2
+ strb r1, [r0]
+_0803A688:
+ movs r0, 0x5
+ bl FadeOutMapMusic
+ movs r0, 0x3
+ bl BeginFastPaletteFade
+ bl dp01_tbl4_exec_completed
+ ldr r1, _0803A6B0 @ =gUnknown_03004330
+ ldr r0, _0803A6B4 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803A6B8 @ =sub_8037F34
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A6AC: .4byte gUnknown_02024D26
+_0803A6B0: .4byte gUnknown_03004330
+_0803A6B4: .4byte gUnknown_02024A60
+_0803A6B8: .4byte sub_8037F34
+ thumb_func_end sub_803A658
+
+ thumb_func_start nullsub_48
+nullsub_48: @ 803A6BC
+ bx lr
+ thumb_func_end nullsub_48
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_803D1FC.s b/asm/rom_803D1FC.s
index 91ab01a6a..e011d3c43 100644
--- a/asm/rom_803D1FC.s
+++ b/asm/rom_803D1FC.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/rom_8040EB4.s b/asm/rom_8040EB4.s
index e5ba5758d..cf7780f78 100644
--- a/asm/rom_8040EB4.s
+++ b/asm/rom_8040EB4.s
@@ -1,5 +1,5 @@
- .include "constants/gba_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/rom_804373C.s b/asm/rom_804373C.s
index bae258fee..a134237f1 100644
--- a/asm/rom_804373C.s
+++ b/asm/rom_804373C.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -4383,7 +4383,7 @@ sub_8045998: @ 8045998
ldr r1, _08045A3C @ =gUnknown_08400DE6
bl StringCopy
adds r7, r0, 0
- ldr r0, _08045A40 @ =gUnknown_02038808
+ ldr r0, _08045A40 @ =gNumSafariBalls
ldrb r1, [r0]
adds r0, r7, 0
movs r2, 0xA
@@ -4450,7 +4450,7 @@ _08045A06:
.align 2, 0
_08045A38: .4byte gUnknown_020238CC
_08045A3C: .4byte gUnknown_08400DE6
-_08045A40: .4byte gUnknown_02038808
+_08045A40: .4byte gNumSafariBalls
_08045A44: .4byte gUnknown_08400DF0
_08045A48: .4byte gSprites
_08045A4C: .4byte 0x02000520
diff --git a/asm/rom_8065394.s b/asm/rom_8065394.s
index 37e33d029..fd88d6ece 100644
--- a/asm/rom_8065394.s
+++ b/asm/rom_8065394.s
@@ -1,5 +1,5 @@
- .include "constants/gba_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -573,13 +573,13 @@ _0806832C:
ble _08068320
ldr r0, _08068358 @ =gSelectedMapObject
strb r3, [r0]
- ldr r1, _0806835C @ =gUnknown_0202E8DE
+ ldr r1, _0806835C @ =gScriptLastTalked
adds r0, r2, r3
lsls r0, 2
adds r0, r5
ldrb r0, [r0, 0x8]
strh r0, [r1]
- ldr r0, _08068360 @ =gUnknown_0202E8E0
+ ldr r0, _08068360 @ =gScriptFacing
strh r6, [r0]
adds r0, r3, 0
bl GetFieldObjectScriptPointerByFieldObjectId
@@ -590,8 +590,8 @@ _0806834E:
.align 2, 0
_08068354: .4byte gLinkPlayerMapObjects
_08068358: .4byte gSelectedMapObject
-_0806835C: .4byte gUnknown_0202E8DE
-_08068360: .4byte gUnknown_0202E8E0
+_0806835C: .4byte gScriptLastTalked
+_08068360: .4byte gScriptFacing
thumb_func_end sub_80682A8
thumb_func_start sub_8068364
@@ -663,13 +663,13 @@ _080683E4: .4byte gUnknown_0821664C
_080683E8:
ldr r0, _08068414 @ =gSelectedMapObject
strb r3, [r0]
- ldr r4, _08068418 @ =gUnknown_0202E8DE
+ ldr r4, _08068418 @ =gScriptLastTalked
adds r0, r2, r3
lsls r0, 2
adds r0, r1
ldrb r0, [r0, 0x8]
strh r0, [r4]
- ldr r0, _0806841C @ =gUnknown_0202E8E0
+ ldr r0, _0806841C @ =gScriptFacing
strh r6, [r0]
adds r0, r3, 0
bl GetFieldObjectScriptPointerByFieldObjectId
@@ -683,8 +683,8 @@ _0806840C:
bx r1
.align 2, 0
_08068414: .4byte gSelectedMapObject
-_08068418: .4byte gUnknown_0202E8DE
-_0806841C: .4byte gUnknown_0202E8E0
+_08068418: .4byte gScriptLastTalked
+_0806841C: .4byte gScriptFacing
thumb_func_end sub_8068364
thumb_func_start TryGetInvisibleMapObjectScript
@@ -755,13 +755,13 @@ _080684A4:
beq _080684F8
b _08068494
_080684AA:
- ldr r1, _080684CC @ =gUnknown_0202E8CC
+ ldr r1, _080684CC @ =gSpecialVar_0x8004
lsrs r0, r2, 16
movs r3, 0x96
lsls r3, 2
adds r0, r3
strh r0, [r1]
- ldr r0, _080684D0 @ =gUnknown_0202E8CE
+ ldr r0, _080684D0 @ =gSpecialVar_0x8005
strh r2, [r0]
ldrh r0, [r1]
bl FlagGet
@@ -772,13 +772,13 @@ _080684AA:
ldr r0, _080684D4 @ =HiddenItemScript
b _080684FA
.align 2, 0
-_080684CC: .4byte gUnknown_0202E8CC
-_080684D0: .4byte gUnknown_0202E8CE
+_080684CC: .4byte gSpecialVar_0x8004
+_080684D0: .4byte gSpecialVar_0x8005
_080684D4: .4byte HiddenItemScript
_080684D8:
cmp r5, 0x2
bne _08068494
- ldr r0, _080684F0 @ =gUnknown_0202E8CC
+ ldr r0, _080684F0 @ =gSpecialVar_0x8004
strh r2, [r0]
bl sub_80BC050
lsls r0, 24
@@ -787,7 +787,7 @@ _080684D8:
ldr r0, _080684F4 @ =gUnknown_081A2C51
b _080684FA
.align 2, 0
-_080684F0: .4byte gUnknown_0202E8CC
+_080684F0: .4byte gSpecialVar_0x8004
_080684F4: .4byte gUnknown_081A2C51
_080684F8:
adds r0, r2, 0
@@ -1277,7 +1277,7 @@ _080688B4:
.align 2, 0
_080688C8: .4byte Event_EggHatch
_080688CC:
- bl safari_step
+ bl SafariZoneTakeStep
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
diff --git a/asm/rom_806936C.s b/asm/rom_806936C.s
index 117143f19..47a91f0a4 100644
--- a/asm/rom_806936C.s
+++ b/asm/rom_806936C.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -2285,1295 +2285,4 @@ _0806A478: .4byte gMain
_0806A47C: .4byte sub_806A44C
thumb_func_end sub_806A460
- thumb_func_start sub_806A480
-sub_806A480: @ 806A480
- push {lr}
- adds r3, r0, 0
- ldr r2, _0806A4B0 @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0xC
- ldrsh r1, [r0, r2]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r1, r0
- beq _0806A596
- strh r1, [r3, 0x30]
- subs r0, r1, 0x1
- cmp r0, 0x5
- bhi _0806A596
- lsls r0, 2
- ldr r1, _0806A4B4 @ =_0806A4B8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806A4B0: .4byte gTasks
-_0806A4B4: .4byte _0806A4B8
- .align 2, 0
-_0806A4B8:
- .4byte _0806A4D0
- .4byte _0806A4F4
- .4byte _0806A518
- .4byte _0806A53C
- .4byte _0806A566
- .4byte _0806A590
-_0806A4D0:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0x1
- strb r0, [r1]
- subs r2, 0x12
- ldrb r1, [r2]
- subs r0, 0x41
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x35
- b _0806A55E
-_0806A4F4:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0x1
- strb r0, [r1]
- subs r2, 0x12
- ldrb r1, [r2]
- subs r0, 0x41
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x56
- b _0806A55E
-_0806A518:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0x1
- strb r0, [r1]
- subs r2, 0x12
- ldrb r1, [r2]
- subs r0, 0x41
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x6B
- b _0806A55E
-_0806A53C:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0x1
- strb r0, [r1]
- subs r2, 0x12
- ldrb r1, [r2]
- subs r0, 0x41
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x80
-_0806A55E:
- strh r0, [r3, 0x20]
- movs r0, 0x44
- strh r0, [r3, 0x22]
- b _0806A596
-_0806A566:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0x2
- 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 _0806A596
-_0806A590:
- adds r0, r3, 0
- bl DestroySprite
-_0806A596:
- pop {r0}
- bx r0
- thumb_func_end sub_806A480
-
- thumb_func_start sub_806A59C
-sub_806A59C: @ 806A59C
- push {lr}
- adds r3, r0, 0
- ldr r2, _0806A5CC @ =gTasks
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0xC
- ldrsh r1, [r0, r2]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r1, r0
- beq _0806A696
- strh r1, [r3, 0x30]
- subs r0, r1, 0x1
- cmp r0, 0x5
- bhi _0806A696
- lsls r0, 2
- ldr r1, _0806A5D0 @ =_0806A5D4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806A5CC: .4byte gTasks
-_0806A5D0: .4byte _0806A5D4
- .align 2, 0
-_0806A5D4:
- .4byte _0806A5EC
- .4byte _0806A610
- .4byte _0806A634
- .4byte _0806A658
- .4byte _0806A682
- .4byte _0806A690
-_0806A5EC:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- 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, 0x35
- b _0806A67A
-_0806A610:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- 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, 0x56
- b _0806A67A
-_0806A634:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- 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, 0x6B
- b _0806A67A
-_0806A658:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- 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, 0x80
-_0806A67A:
- strh r0, [r3, 0x20]
- movs r0, 0x5C
- strh r0, [r3, 0x22]
- b _0806A696
-_0806A682:
- adds r0, r3, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0806A696
-_0806A690:
- adds r0, r3, 0
- bl DestroySprite
-_0806A696:
- pop {r0}
- bx r0
- thumb_func_end sub_806A59C
-
- thumb_func_start sub_806A69C
-sub_806A69C: @ 806A69C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0806A70C @ =gUnknown_083764BC
- bl LoadSpritePalette
- ldr r0, _0806A710 @ =gSpriteTemplate_83764E8
- mov r8, r0
- movs r1, 0x35
- movs r2, 0x44
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r6, _0806A714 @ =gSprites
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r6, 0
- adds r4, 0x1C
- adds r2, r0, r4
- ldr r1, _0806A718 @ =sub_806A480
- str r1, [r2]
- adds r0, r6
- strh r5, [r0, 0x2E]
- ldr r1, _0806A71C @ =0x0000ffff
- strh r1, [r0, 0x30]
- mov r0, r8
- movs r1, 0x35
- movs r2, 0x44
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r4
- ldr r1, _0806A720 @ =sub_806A59C
- str r1, [r4]
- adds r0, r6
- strh r5, [r0, 0x2E]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x30]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A70C: .4byte gUnknown_083764BC
-_0806A710: .4byte gSpriteTemplate_83764E8
-_0806A714: .4byte gSprites
-_0806A718: .4byte sub_806A480
-_0806A71C: .4byte 0x0000ffff
-_0806A720: .4byte sub_806A59C
- thumb_func_end sub_806A69C
-
- thumb_func_start sub_806A724
-sub_806A724: @ 806A724
- push {lr}
- ldr r0, _0806A734 @ =gUnknown_083764BC
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- .align 2, 0
-_0806A734: .4byte gUnknown_083764BC
- thumb_func_end sub_806A724
-
- thumb_func_start sub_806A738
-sub_806A738: @ 806A738
- push {lr}
- movs r0, 0x3
- movs r1, 0x8
- movs r2, 0x19
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- pop {r0}
- bx r0
- thumb_func_end sub_806A738
-
- thumb_func_start sub_806A74C
-sub_806A74C: @ 806A74C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- adds r0, r2, 0
- adds r4, r3, 0
- ldr r6, [sp, 0x24]
- ldr r2, [sp, 0x28]
- mov r9, r2
- mov r2, r10
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- mov r1, r9
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- ldr r7, _0806A83C @ =gStringVar4
- ldr r1, _0806A840 @ =0x00002710
- bl __umodsi3
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0x18
- bl __umodsi3
- mov r8, r0
- mov r2, r8
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- adds r0, r6, 0
- movs r1, 0x3C
- bl __umodsi3
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- mov r0, r9
- movs r1, 0x3C
- bl __umodsi3
- mov r9, r0
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r4, _0806A844 @ =gStringVar1
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x18
- movs r3, 0x1
- bl sub_8072C44
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringCopy
- adds r7, r0, 0
- ldr r1, _0806A848 @ =gOtherText_Day
- bl StringCopy
- adds r7, r0, 0
- adds r0, r4, 0
- mov r1, r8
- movs r2, 0x12
- movs r3, 0x1
- bl sub_8072C44
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringCopy
- adds r7, r0, 0
- ldr r4, _0806A84C @ =gUnknown_08376500
- adds r1, r4, 0
- bl StringCopy
- adds r7, r0, 0
- adds r1, r6, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r7, r0, 0
- adds r1, r4, 0
- bl StringCopy
- adds r7, r0, 0
- mov r1, r9
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _0806A83C @ =gStringVar4
- mov r1, r10
- ldr r2, [sp]
- bl MenuPrint
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A83C: .4byte gStringVar4
-_0806A840: .4byte 0x00002710
-_0806A844: .4byte gStringVar1
-_0806A848: .4byte gOtherText_Day
-_0806A84C: .4byte gUnknown_08376500
- thumb_func_end sub_806A74C
-
- thumb_func_start sub_806A850
-sub_806A850: @ 806A850
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- adds r6, r0, 0
- mov r8, r1
- adds r4, r2, 0
- adds r5, r3, 0
- lsls r6, 16
- lsrs r6, 16
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x3
- movs r1, 0x8
- movs r2, 0x19
- movs r3, 0xB
- bl MenuDrawTextWindow
- ldr r0, _0806A8A8 @ =gOtherText_OK
- movs r1, 0x14
- movs r2, 0x9
- bl MenuPrint
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r0, 0x4
- movs r1, 0x9
- adds r2, r6, 0
- mov r3, r8
- bl sub_806A74C
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A8A8: .4byte gOtherText_OK
- thumb_func_end sub_806A850
-
- thumb_func_start sub_806A8AC
-sub_806A8AC: @ 806A8AC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r3, 16
- lsrs r3, 16
- adds r1, r3, 0
- movs r0, 0x80
- ands r0, r3
- cmp r0, 0
- beq _0806A8C6
- ldrh r0, [r4]
- subs r0, 0x1
- b _0806A8E0
-_0806A8C6:
- movs r0, 0x40
- ands r0, r3
- cmp r0, 0
- beq _0806A8D4
- ldrh r0, [r4]
- adds r0, 0x1
- b _0806A8FE
-_0806A8D4:
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _0806A8EE
- ldrh r0, [r4]
- subs r0, 0xA
-_0806A8E0:
- strh r0, [r4]
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, r5
- bge _0806A90A
- strh r2, [r4]
- b _0806A90A
-_0806A8EE:
- movs r0, 0x10
- ands r1, r0
- cmp r1, 0
- bne _0806A8FA
- movs r0, 0
- b _0806A90C
-_0806A8FA:
- ldrh r0, [r4]
- adds r0, 0xA
-_0806A8FE:
- strh r0, [r4]
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, r2
- ble _0806A90A
- strh r5, [r4]
-_0806A90A:
- movs r0, 0x1
-_0806A90C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806A8AC
-
- thumb_func_start sub_806A914
-sub_806A914: @ 806A914
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806A928 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x1
- strh r0, [r1, 0x8]
- bx lr
- .align 2, 0
-_0806A928: .4byte gTasks
- thumb_func_end sub_806A914
-
- thumb_func_start sub_806A92C
-sub_806A92C: @ 806A92C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_806A738
- bl sub_806A724
- ldr r1, _0806A950 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806A954 @ =sub_806A914
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A950: .4byte gTasks
-_0806A954: .4byte sub_806A914
- thumb_func_end sub_806A92C
-
- thumb_func_start sub_806A958
-sub_806A958: @ 806A958
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r7, r0, 3
- ldr r0, _0806A99C @ =gTasks + 0x8
- mov r8, r0
- adds r5, r7, r0
- ldrb r4, [r5, 0x4]
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- ldr r1, _0806A9A0 @ =gUnknown_08376414
- adds r2, r0, r1
- ldr r1, _0806A9A4 @ =gMain
- ldrh r3, [r1, 0x2E]
- movs r0, 0x2
- ands r0, r3
- mov r12, r1
- cmp r0, 0
- beq _0806A9AC
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _0806A9A8 @ =sub_806A92C
- str r1, [r0]
- movs r0, 0
- strh r0, [r5, 0x2]
- movs r0, 0x6
- b _0806A9CC
- .align 2, 0
-_0806A99C: .4byte gTasks + 0x8
-_0806A9A0: .4byte gUnknown_08376414
-_0806A9A4: .4byte gMain
-_0806A9A8: .4byte sub_806A92C
-_0806A9AC:
- movs r0, 0x10
- ands r0, r3
- cmp r0, 0
- beq _0806A9BA
- ldrb r0, [r2, 0x7]
- cmp r0, 0
- bne _0806A9CC
-_0806A9BA:
- mov r3, r12
- ldrh r1, [r3, 0x2E]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0806A9D6
- ldrb r0, [r2, 0x6]
- cmp r0, 0
- beq _0806A9D6
-_0806A9CC:
- strh r0, [r5, 0x4]
- movs r0, 0x5
- bl PlaySE
- b _0806AA58
-_0806A9D6:
- cmp r4, 0x5
- bne _0806AA24
- mov r0, r12
- ldrh r1, [r0, 0x2E]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0806AA58
- ldr r1, _0806AA18 @ =gLocalTime
- ldrh r0, [r5, 0x6]
- strh r0, [r1]
- ldrh r0, [r5, 0x8]
- strb r0, [r1, 0x2]
- ldrh r0, [r5, 0xA]
- strb r0, [r1, 0x3]
- ldrh r0, [r5, 0xC]
- strb r0, [r1, 0x4]
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0806AA1C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806AA20 @ =sub_806A92C
- str r1, [r0]
- strh r4, [r5, 0x2]
- movs r0, 0x6
- strh r0, [r5, 0x4]
- b _0806AA58
- .align 2, 0
-_0806AA18: .4byte gLocalTime
-_0806AA1C: .4byte gTasks
-_0806AA20: .4byte sub_806A92C
-_0806AA24:
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r5, r0
- ldrh r1, [r2, 0x2]
- ldrh r2, [r2, 0x4]
- mov r3, r12
- ldrh r4, [r3, 0x30]
- movs r3, 0xC0
- ands r3, r4
- bl sub_806A8AC
- cmp r0, 0
- beq _0806AA58
- movs r0, 0x5
- bl PlaySE
- ldrh r2, [r5, 0x6]
- ldrb r3, [r5, 0x8]
- ldrb r0, [r5, 0xA]
- str r0, [sp]
- ldrb r0, [r5, 0xC]
- str r0, [sp, 0x4]
- movs r0, 0x4
- movs r1, 0x9
- bl sub_806A74C
-_0806AA58:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806A958
-
- thumb_func_start sub_806AA64
-sub_806AA64: @ 806AA64
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r6, r5, 2
- adds r6, r5
- lsls r6, 3
- ldr r0, _0806AACC @ =gTasks + 0x8
- mov r8, r0
- adds r4, r6, r0
- movs r0, 0
- strh r0, [r4]
- ldr r3, _0806AAD0 @ =gLocalTime
- ldrh r0, [r3]
- strh r0, [r4, 0x6]
- movs r1, 0x2
- ldrsb r1, [r3, r1]
- strh r1, [r4, 0x8]
- movs r2, 0x3
- ldrsb r2, [r3, r2]
- strh r2, [r4, 0xA]
- ldrb r3, [r3, 0x4]
- lsls r3, 24
- asrs r3, 24
- strh r3, [r4, 0xC]
- ldrh r0, [r4, 0x6]
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- bl sub_806A850
- adds r0, r5, 0
- bl sub_806A69C
- movs r0, 0x2
- strh r0, [r4, 0x4]
- movs r0, 0x8
- negs r0, r0
- add r8, r0
- add r6, r8
- ldr r0, _0806AAD4 @ =sub_806A958
- str r0, [r6]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806AACC: .4byte gTasks + 0x8
-_0806AAD0: .4byte gLocalTime
-_0806AAD4: .4byte sub_806A958
- thumb_func_end sub_806AA64
-
- thumb_func_start sub_806AAD8
-sub_806AAD8: @ 806AAD8
- push {r4-r7,lr}
- sub sp, 0x4
- movs r0, 0x80
- lsls r0, 19
- movs r4, 0
- strh r4, [r0]
- movs r0, 0
- bl SetVBlankCallback
- movs r2, 0xA0
- lsls r2, 19
- mov r0, sp
- strh r4, [r0]
- ldr r1, _0806AB94 @ =0x040000d4
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _0806AB98 @ =0x81000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0xC0
- lsls r3, 9
- mov r4, sp
- movs r6, 0
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _0806AB9C @ =0x81000800
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_0806AB16:
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r5
- subs r3, r5
- cmp r3, r5
- bhi _0806AB16
- strh r6, [r4]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 1
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0
- movs r1, 0x80
- bl ResetOamRange
- bl LoadOam
- bl remove_some_task
- bl dp12_8087EA4
- bl ResetSpriteData
- bl ResetTasks
- bl ResetPaletteFade
- ldr r4, _0806ABA0 @ =gWindowConfig_81E6CE4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x88
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0806ABA4 @ =sub_806ABC8
- bl SetVBlankCallback
- ldr r0, _0806ABA8 @ =sub_806ABB0
- bl SetMainCallback2
- ldr r0, _0806ABAC @ =sub_806ACCC
- movs r1, 0x50
- bl CreateTask
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806AB94: .4byte 0x040000d4
-_0806AB98: .4byte 0x81000200
-_0806AB9C: .4byte 0x81000800
-_0806ABA0: .4byte gWindowConfig_81E6CE4
-_0806ABA4: .4byte sub_806ABC8
-_0806ABA8: .4byte sub_806ABB0
-_0806ABAC: .4byte sub_806ACCC
- thumb_func_end sub_806AAD8
-
- thumb_func_start sub_806ABB0
-sub_806ABB0: @ 806ABB0
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_806ABB0
-
- thumb_func_start sub_806ABC8
-sub_806ABC8: @ 806ABC8
- push {lr}
- bl ProcessSpriteCopyRequests
- bl LoadOam
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_806ABC8
-
- thumb_func_start sub_806ABDC
-sub_806ABDC: @ 806ABDC
- push {r4,lr}
- adds r4, r0, 0
- bl MenuDisplayMessageBox
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806ABDC
-
- thumb_func_start sub_806ABF4
-sub_806ABF4: @ 806ABF4
- push {r4,r5,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0806AC14 @ =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0806AC18
- cmp r0, 0x1
- beq _0806AC80
- b _0806ACC4
- .align 2, 0
-_0806AC14: .4byte gTasks + 0x8
-_0806AC18:
- bl MenuZeroFillScreen
- movs r0, 0
- movs r1, 0
- movs r2, 0x14
- movs r3, 0xA
- bl MenuDrawTextWindow
- ldr r0, _0806AC98 @ =gSystemText_PresentTime
- movs r1, 0x1
- movs r2, 0x1
- bl MenuPrint
- ldr r0, _0806AC9C @ =gLocalTime
- ldrh r2, [r0]
- ldrb r3, [r0, 0x2]
- ldrb r1, [r0, 0x3]
- str r1, [sp]
- ldrb r0, [r0, 0x4]
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0x3
- bl sub_806A74C
- ldr r0, _0806ACA0 @ =gSystemText_PreviousTime
- movs r1, 0x1
- movs r2, 0x5
- bl MenuPrint
- ldr r1, _0806ACA4 @ =gSaveBlock2
- adds r0, r1, 0
- adds r0, 0xA0
- ldrh r2, [r0]
- adds r0, 0x2
- ldrb r3, [r0]
- adds r0, 0x1
- ldrb r0, [r0]
- str r0, [sp]
- adds r0, r1, 0
- adds r0, 0xA4
- ldrb r0, [r0]
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0x7
- bl sub_806A74C
- ldr r0, _0806ACA8 @ =gSystemText_ResetRTCPrompt
- bl sub_806ABDC
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0806AC80:
- ldr r0, _0806ACAC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0806ACB0
- adds r0, r5, 0
- bl DestroyTask
- bl DoSoftReset
- b _0806ACC4
- .align 2, 0
-_0806AC98: .4byte gSystemText_PresentTime
-_0806AC9C: .4byte gLocalTime
-_0806ACA0: .4byte gSystemText_PreviousTime
-_0806ACA4: .4byte gSaveBlock2
-_0806ACA8: .4byte gSystemText_ResetRTCPrompt
-_0806ACAC: .4byte gMain
-_0806ACB0:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806ACC4
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- bl DestroyTask
-_0806ACC4:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806ABF4
-
- thumb_func_start sub_806ACCC
-sub_806ACCC: @ 806ACCC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0806ACF4 @ =gTasks + 0x8
- adds r5, r0, r1
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0x6
- bls _0806ACE8
- b _0806AEC4
-_0806ACE8:
- lsls r0, 2
- ldr r1, _0806ACF8 @ =_0806ACFC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806ACF4: .4byte gTasks + 0x8
-_0806ACF8: .4byte _0806ACFC
- .align 2, 0
-_0806ACFC:
- .4byte _0806AD18
- .4byte _0806AD34
- .4byte _0806AD80
- .4byte _0806ADD8
- .4byte _0806AE5C
- .4byte _0806AE8C
- .4byte _0806AEAE
-_0806AD18:
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0806AD30 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r0, 0x1
- strh r0, [r5]
- b _0806AEC4
- .align 2, 0
-_0806AD30: .4byte 0x0000ffff
-_0806AD34:
- ldr r0, _0806AD5C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0806AD42
- b _0806AEC4
-_0806AD42:
- ldr r0, _0806AD60 @ =gSaveFileStatus
- ldrh r0, [r0]
- cmp r0, 0
- beq _0806AD4E
- cmp r0, 0x2
- bne _0806AD68
-_0806AD4E:
- ldr r0, _0806AD64 @ =gSystemText_NoSaveFileNoTime
- bl sub_806ABDC
- movs r0, 0x5
- strh r0, [r5]
- b _0806AEC4
- .align 2, 0
-_0806AD5C: .4byte gPaletteFade
-_0806AD60: .4byte gSaveFileStatus
-_0806AD64: .4byte gSystemText_NoSaveFileNoTime
-_0806AD68:
- bl RtcCalcLocalTime
- ldr r0, _0806AD7C @ =sub_806ABF4
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x2]
- b _0806ADFC
- .align 2, 0
-_0806AD7C: .4byte sub_806ABF4
-_0806AD80:
- ldr r2, _0806ADC4 @ =gTasks
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x4]
- cmp r0, 0x1
- bne _0806AD96
- b _0806AEC4
-_0806AD96:
- bl MenuZeroFillScreen
- ldr r0, _0806ADC8 @ =gSystemText_PleaseResetTime
- bl sub_806ABDC
- ldr r2, _0806ADCC @ =gLocalTime
- ldr r0, _0806ADD0 @ =gSaveBlock2
- adds r0, 0xA0
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _0806ADD4 @ =sub_806AA64
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x2]
- movs r0, 0x3
- strh r0, [r5]
- b _0806AEC4
- .align 2, 0
-_0806ADC4: .4byte gTasks
-_0806ADC8: .4byte gSystemText_PleaseResetTime
-_0806ADCC: .4byte gLocalTime
-_0806ADD0: .4byte gSaveBlock2
-_0806ADD4: .4byte sub_806AA64
-_0806ADD8:
- ldr r2, _0806AE04 @ =gTasks
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r1, r0, r2
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0806AEC4
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0806AE08
- ldrb r0, [r5, 0x2]
- bl DestroyTask
-_0806ADFC:
- movs r0, 0x2
- strh r0, [r5]
- b _0806AEC4
- .align 2, 0
-_0806AE04: .4byte gTasks
-_0806AE08:
- ldrb r0, [r5, 0x2]
- bl DestroyTask
- bl RtcReset
- ldr r4, _0806AE4C @ =gLocalTime
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x2
- ldrsb r1, [r4, r1]
- movs r2, 0x3
- ldrsb r2, [r4, r2]
- movs r3, 0x4
- ldrsb r3, [r4, r3]
- bl RtcCalcLocalTimeOffset
- ldr r2, _0806AE50 @ =gSaveBlock2
- adds r2, 0xA0
- ldr r0, [r4]
- ldr r1, [r4, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _0806AE54 @ =0x00004040
- ldrh r1, [r4]
- bl VarSet
- bl sub_80691A0
- ldr r0, _0806AE58 @ =gSystemText_ClockResetDataSave
- bl sub_806ABDC
- movs r0, 0x4
- strh r0, [r5]
- b _0806AEC4
- .align 2, 0
-_0806AE4C: .4byte gLocalTime
-_0806AE50: .4byte gSaveBlock2
-_0806AE54: .4byte 0x00004040
-_0806AE58: .4byte gSystemText_ClockResetDataSave
-_0806AE5C:
- movs r0, 0
- bl sub_8125D44
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806AE7C
- ldr r0, _0806AE78 @ =gSystemText_SaveCompleted
- bl sub_806ABDC
- movs r0, 0x49
- bl PlaySE
- b _0806AE88
- .align 2, 0
-_0806AE78: .4byte gSystemText_SaveCompleted
-_0806AE7C:
- ldr r0, _0806AECC @ =gSystemText_SaveFailed
- bl sub_806ABDC
- movs r0, 0x16
- bl PlaySE
-_0806AE88:
- movs r0, 0x5
- strh r0, [r5]
-_0806AE8C:
- ldr r0, _0806AED0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806AEC4
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0806AED4 @ =0x0000ffff
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0x6
- strh r0, [r5]
-_0806AEAE:
- ldr r0, _0806AED8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0806AEC4
- adds r0, r4, 0
- bl DestroyTask
- bl DoSoftReset
-_0806AEC4:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806AECC: .4byte gSystemText_SaveFailed
-_0806AED0: .4byte gMain
-_0806AED4: .4byte 0x0000ffff
-_0806AED8: .4byte gPaletteFade
- thumb_func_end sub_806ACCC
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_806D7F8.s b/asm/rom_806D7F8.s
index 6b8ae47cb..8f95428c3 100644
--- a/asm/rom_806D7F8.s
+++ b/asm/rom_806D7F8.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -3683,7 +3683,7 @@ sub_806F490: @ 806F490
adds r0, r1
ldr r1, _0806F514 @ =TaskDummy
str r1, [r0]
- ldr r0, _0806F518 @ =word_203855E
+ ldr r0, _0806F518 @ =gScriptItemId
ldrh r1, [r0]
ldr r2, _0806F51C @ =sub_808B508
adds r0, r3, 0
@@ -3726,7 +3726,7 @@ _0806F506:
_0806F50C: .4byte gPaletteFade
_0806F510: .4byte gTasks
_0806F514: .4byte TaskDummy
-_0806F518: .4byte word_203855E
+_0806F518: .4byte gScriptItemId
_0806F51C: .4byte sub_808B508
_0806F520: .4byte 0x0201c000
_0806F524: .4byte gStringVar1
@@ -3792,7 +3792,7 @@ sub_806F588: @ 806F588
adds r0, r1
ldr r1, _0806F5F0 @ =TaskDummy
str r1, [r0]
- ldr r0, _0806F5F4 @ =word_203855E
+ ldr r0, _0806F5F4 @ =gScriptItemId
ldrh r1, [r0]
ldr r2, _0806F5F8 @ =sub_808B508
adds r0, r3, 0
@@ -3823,7 +3823,7 @@ _0806F5E0:
_0806F5E8: .4byte gPaletteFade
_0806F5EC: .4byte gTasks
_0806F5F0: .4byte TaskDummy
-_0806F5F4: .4byte word_203855E
+_0806F5F4: .4byte gScriptItemId
_0806F5F8: .4byte sub_808B508
_0806F5FC: .4byte gStringVar2
_0806F600: .4byte 0x0201c000
diff --git a/asm/rom_8074BAC.s b/asm/rom_8074BAC.s
index e3b0fe07a..27f89abde 100644
--- a/asm/rom_8074BAC.s
+++ b/asm/rom_8074BAC.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/rom_8080874.s b/asm/rom_8080874.s
index 309bd3ba9..d4a6414fb 100644
--- a/asm/rom_8080874.s
+++ b/asm/rom_8080874.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -346,7 +346,7 @@ sub_8080AE4: @ 8080AE4
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
- bl sub_8056EAC
+ bl MetatileBehavior_IsDoor
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@@ -461,7 +461,7 @@ _08080BE4:
ldrsh r0, [r6, r1]
movs r2, 0
ldrsh r1, [r7, r2]
- bl sub_80586B4
+ bl FieldSetDoorOpened
movs r0, 0x1
strh r0, [r5, 0x8]
b _08080CAE
@@ -499,7 +499,7 @@ _08080C40:
ldrsh r0, [r6, r1]
movs r2, 0
ldrsh r1, [r7, r2]
- bl sub_805870C
+ bl FieldAnimateDoorClose
lsls r0, 24
asrs r0, 24
strh r0, [r5, 0xA]
@@ -1201,7 +1201,7 @@ _080811A8:
movs r2, 0
ldrsh r1, [r6, r2]
subs r1, 0x1
- bl task_overworld_door_add_if_role_69_for_opening_door_at
+ bl FieldAnimateDoorOpen
lsls r0, 24
asrs r0, 24
strh r0, [r5, 0xA]
@@ -1262,7 +1262,7 @@ _08081240:
movs r2, 0
ldrsh r1, [r6, r2]
subs r1, 0x1
- bl sub_805870C
+ bl FieldAnimateDoorClose
lsls r0, 24
asrs r0, 24
strh r0, [r5, 0xA]
diff --git a/asm/rom_80859BC.s b/asm/rom_80859BC.s
index 6685b3084..3a67bbf81 100644
--- a/asm/rom_80859BC.s
+++ b/asm/rom_80859BC.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -2994,7 +2994,7 @@ _080870AA:
thumb_func_start FldEff_UseDive
FldEff_UseDive: @ 80870B0
push {r4,lr}
- ldr r4, _080870E0 @ =sub_80870EC
+ ldr r4, _080870E0 @ =Task_Dive
adds r0, r4, 0
movs r1, 0xFF
bl CreateTask
@@ -3016,13 +3016,13 @@ FldEff_UseDive: @ 80870B0
pop {r1}
bx r1
.align 2, 0
-_080870E0: .4byte sub_80870EC
+_080870E0: .4byte Task_Dive
_080870E4: .4byte gTasks
_080870E8: .4byte gUnknown_0202FF84
thumb_func_end FldEff_UseDive
- thumb_func_start sub_80870EC
-sub_80870EC: @ 80870EC
+ thumb_func_start Task_Dive
+Task_Dive: @ 80870EC
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
@@ -3049,7 +3049,7 @@ _080870FE:
.align 2, 0
_0808711C: .4byte gUnknown_0839F330
_08087120: .4byte gTasks
- thumb_func_end sub_80870EC
+ thumb_func_end Task_Dive
thumb_func_start sub_8087124
sub_8087124: @ 8087124
@@ -3110,7 +3110,7 @@ dive_3_unknown: @ 8087160
ldrb r1, [r0, 0x1E]
mov r0, sp
bl dive_warp
- ldr r0, _080871B4 @ =sub_80870EC
+ ldr r0, _080871B4 @ =Task_Dive
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
@@ -3125,7 +3125,7 @@ _080871A4:
.align 2, 0
_080871AC: .4byte gMapObjects
_080871B0: .4byte gPlayerAvatar
-_080871B4: .4byte sub_80870EC
+_080871B4: .4byte Task_Dive
thumb_func_end dive_3_unknown
thumb_func_start sub_80871B8
@@ -8486,7 +8486,7 @@ _08089B48:
adds r1, r5, 0
movs r2, 0
bl AppendToList
- ldr r6, _08089BAC @ =gUnknown_030043C4
+ ldr r6, _08089BAC @ =gPlayerParty + 1 * 0x64
adds r0, r6, 0
movs r1, 0xB
bl GetMonData
@@ -8520,7 +8520,7 @@ _08089B76:
.align 2, 0
_08089BA4: .4byte gUnknown_0202FFAA
_08089BA8: .4byte gUnknown_0202FFA9
-_08089BAC: .4byte gUnknown_030043C4
+_08089BAC: .4byte gPlayerParty + 1 * 0x64
_08089BB0: .4byte gUnknown_03005CE0
_08089BB4:
adds r0, r4, 0
@@ -9327,7 +9327,7 @@ sub_808A228: @ 808A228
sub sp, 0x4
lsls r0, 24
lsrs r4, r0, 24
- ldr r0, _0808A268 @ =word_203855E
+ ldr r0, _0808A268 @ =gScriptItemId
ldrh r0, [r0]
bl itemid_is_mail
lsls r0, 24
@@ -9353,7 +9353,7 @@ sub_808A228: @ 808A228
str r1, [r0]
b _0808A29A
.align 2, 0
-_0808A268: .4byte word_203855E
+_0808A268: .4byte gScriptItemId
_0808A26C: .4byte gUnknown_0202E8F4
_0808A270: .4byte gTasks
_0808A274: .4byte sub_808A180
@@ -9394,7 +9394,7 @@ sub_808A2AC: @ 808A2AC
ands r0, r1
cmp r0, 0
bne _0808A2CA
- ldr r0, _0808A2D4 @ =word_203855E
+ ldr r0, _0808A2D4 @ =gScriptItemId
ldrh r1, [r0]
ldr r2, _0808A2D8 @ =sub_808A228
adds r0, r3, 0
@@ -9404,7 +9404,7 @@ _0808A2CA:
bx r0
.align 2, 0
_0808A2D0: .4byte gPaletteFade
-_0808A2D4: .4byte word_203855E
+_0808A2D4: .4byte gScriptItemId
_0808A2D8: .4byte sub_808A228
thumb_func_end sub_808A2AC
@@ -9452,14 +9452,14 @@ sub_808A330: @ 808A330
push {lr}
lsls r0, 24
lsrs r0, 24
- ldr r1, _0808A344 @ =word_203855E
+ ldr r1, _0808A344 @ =gScriptItemId
ldrh r1, [r1]
ldr r2, _0808A348 @ =sub_808A2DC
bl sub_806E964
pop {r0}
bx r0
.align 2, 0
-_0808A344: .4byte word_203855E
+_0808A344: .4byte gScriptItemId
_0808A348: .4byte sub_808A2DC
thumb_func_end sub_808A330
@@ -9551,7 +9551,7 @@ _0808A3F0:
thumb_func_start sub_808A3F8
sub_808A3F8: @ 808A3F8
push {r4,lr}
- ldr r0, _0808A460 @ =word_203855E
+ ldr r0, _0808A460 @ =gScriptItemId
ldrh r0, [r0]
bl itemid_is_mail
lsls r0, 24
@@ -9594,7 +9594,7 @@ sub_808A3F8: @ 808A3F8
bl SetMainCallback2
b _0808A4C6
.align 2, 0
-_0808A460: .4byte word_203855E
+_0808A460: .4byte gScriptItemId
_0808A464: .4byte sub_808A330
_0808A468: .4byte gPaletteFade
_0808A46C: .4byte gUnknown_03005CE0
@@ -9609,7 +9609,7 @@ _0808A47E:
movs r1, 0x80
orrs r0, r1
strb r0, [r2, 0x8]
- ldr r0, _0808A4A8 @ =word_203855E
+ ldr r0, _0808A4A8 @ =gScriptItemId
ldrh r0, [r0]
cmp r0, 0
beq _0808A4B4
@@ -9623,7 +9623,7 @@ _0808A47E:
b _0808A4C6
.align 2, 0
_0808A4A4: .4byte gPaletteFade
-_0808A4A8: .4byte word_203855E
+_0808A4A8: .4byte gScriptItemId
_0808A4AC: .4byte sub_808A2AC
_0808A4B0: .4byte sub_808A358
_0808A4B4:
@@ -9764,7 +9764,7 @@ sub_808A5BC: @ 808A5BC
bne _0808A5EA
ldr r0, _0808A5F4 @ =gUnknown_03005CE0
ldrb r0, [r0]
- ldr r1, _0808A5F8 @ =word_203855E
+ ldr r1, _0808A5F8 @ =gScriptItemId
ldrh r1, [r1]
movs r2, 0
bl sub_806EBF0
@@ -9782,7 +9782,7 @@ _0808A5EA:
.align 2, 0
_0808A5F0: .4byte gPaletteFade
_0808A5F4: .4byte gUnknown_03005CE0
-_0808A5F8: .4byte word_203855E
+_0808A5F8: .4byte gScriptItemId
_0808A5FC: .4byte gTasks
_0808A600: .4byte sub_808A1E0
thumb_func_end sub_808A5BC
@@ -10861,7 +10861,7 @@ _0808AE82:
thumb_func_start sub_808AE8C
sub_808AE8C: @ 808AE8C
push {r4-r6,lr}
- ldr r0, _0808AED8 @ =word_203855E
+ ldr r0, _0808AED8 @ =gScriptItemId
ldrb r0, [r0]
subs r0, 0x21
lsls r0, 24
@@ -10896,10 +10896,10 @@ _0808AECE:
bl sub_806BC3C
b _0808AF10
.align 2, 0
-_0808AED8: .4byte word_203855E
+_0808AED8: .4byte gScriptItemId
_0808AEDC: .4byte gPlayerParty
_0808AEE0:
- ldr r0, _0808AF04 @ =word_203855E
+ ldr r0, _0808AF04 @ =gScriptItemId
ldrh r0, [r0]
bl ItemIdToBattleMoveId
adds r1, r0, 0
@@ -10915,7 +10915,7 @@ _0808AEE0:
bl sub_806BC3C
b _0808AF10
.align 2, 0
-_0808AF04: .4byte word_203855E
+_0808AF04: .4byte gScriptItemId
_0808AF08:
adds r0, r5, 0
movs r1, 0x8C
@@ -10951,7 +10951,7 @@ _0808AF24:
bl GetMonData
cmp r0, 0
bne _0808AF58
- ldr r0, _0808AF7C @ =word_203855E
+ ldr r0, _0808AF7C @ =gScriptItemId
ldrh r2, [r0]
adds r0, r4, 0
movs r1, 0x3
@@ -10976,7 +10976,7 @@ _0808AF66:
bx r0
.align 2, 0
_0808AF78: .4byte gPlayerParty
-_0808AF7C: .4byte word_203855E
+_0808AF7C: .4byte gScriptItemId
thumb_func_end sub_808AF20
thumb_func_start sub_808AF80
@@ -10993,7 +10993,7 @@ _0808AF84:
ldrb r0, [r0]
cmp r0, 0
bne _0808AFC6
- ldr r0, _0808AFB8 @ =word_203855E
+ ldr r0, _0808AFB8 @ =gScriptItemId
ldrh r0, [r0]
bl CheckIfItemIsTMHMOrEvolutionStone
lsls r0, 24
@@ -11006,7 +11006,7 @@ _0808AF84:
.align 2, 0
_0808AFB0: .4byte 0x0201b260
_0808AFB4: .4byte gUnknown_02038561
-_0808AFB8: .4byte word_203855E
+_0808AFB8: .4byte gScriptItemId
_0808AFBC:
bl sub_808AE8C
b _0808AFC6
@@ -11083,7 +11083,7 @@ _0808B048:
beq _0808B08C
b _0808B0AC
_0808B052:
- ldr r0, _0808B070 @ =word_203855E
+ ldr r0, _0808B070 @ =gScriptItemId
ldrh r0, [r0]
bl CheckIfItemIsTMHMOrEvolutionStone
lsls r0, 24
@@ -11097,7 +11097,7 @@ _0808B052:
bl sub_806AF4C
b _0808B0AC
.align 2, 0
-_0808B070: .4byte word_203855E
+_0808B070: .4byte gScriptItemId
_0808B074: .4byte sub_808B0C0
_0808B078:
ldr r2, _0808B088 @ =sub_808B0C0
@@ -11185,7 +11185,7 @@ _0808B120:
cmp r0, 0
bne _0808B13C
ldr r3, _0808B170 @ =gUnknown_03004AE4
- ldr r0, _0808B174 @ =word_203855E
+ ldr r0, _0808B174 @ =gScriptItemId
ldrh r1, [r0]
ldr r2, _0808B178 @ =sub_808B224
ldr r3, [r3]
@@ -11197,7 +11197,7 @@ _0808B13C:
bne _0808B154
movs r0, 0x5
bl PlaySE
- ldr r0, _0808B174 @ =word_203855E
+ ldr r0, _0808B174 @ =gScriptItemId
ldrh r1, [r0]
ldr r2, _0808B17C @ =sub_808B2EC
adds r0, r4, 0
@@ -11215,7 +11215,7 @@ _0808B154:
.align 2, 0
_0808B16C: .4byte gUnknown_02038561
_0808B170: .4byte gUnknown_03004AE4
-_0808B174: .4byte word_203855E
+_0808B174: .4byte gScriptItemId
_0808B178: .4byte sub_808B224
_0808B17C: .4byte sub_808B2EC
_0808B180: .4byte sub_808B2B4
@@ -11280,7 +11280,7 @@ sub_808B1EC: @ 808B1EC
cmp r0, 0
bne _0808B20E
ldr r3, _0808B218 @ =gUnknown_03004AE4
- ldr r0, _0808B21C @ =word_203855E
+ ldr r0, _0808B21C @ =gScriptItemId
ldrh r1, [r0]
ldr r2, _0808B220 @ =sub_808B224
ldr r3, [r3]
@@ -11293,7 +11293,7 @@ _0808B20E:
.align 2, 0
_0808B214: .4byte gPaletteFade
_0808B218: .4byte gUnknown_03004AE4
-_0808B21C: .4byte word_203855E
+_0808B21C: .4byte gScriptItemId
_0808B220: .4byte sub_808B224
thumb_func_end sub_808B1EC
@@ -11625,7 +11625,7 @@ sub_808B4A4: @ 808B4A4
bne _0808B4D2
ldr r0, _0808B4DC @ =gUnknown_03005CE0
ldrb r0, [r0]
- ldr r1, _0808B4E0 @ =word_203855E
+ ldr r1, _0808B4E0 @ =gScriptItemId
ldrh r1, [r1]
movs r2, 0x1
bl sub_806EBF0
@@ -11643,7 +11643,7 @@ _0808B4D2:
.align 2, 0
_0808B4D8: .4byte gPaletteFade
_0808B4DC: .4byte gUnknown_03005CE0
-_0808B4E0: .4byte word_203855E
+_0808B4E0: .4byte gScriptItemId
_0808B4E4: .4byte gTasks
_0808B4E8: .4byte sub_808B4EC
thumb_func_end sub_808B4A4
diff --git a/asm/rom_8094928.s b/asm/rom_8094928.s
index fab0f2531..231f13e9c 100644
--- a/asm/rom_8094928.s
+++ b/asm/rom_8094928.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -928,7 +928,7 @@ _08095000:
ldrb r4, [r0]
cmp r4, 0x3
bne _0809503C
- ldr r0, _08095028 @ =word_203855E
+ ldr r0, _08095028 @ =gScriptItemId
ldrh r0, [r0]
bl sub_8070E48
lsls r0, 24
@@ -943,7 +943,7 @@ _08095000:
b _0809503C
.align 2, 0
_08095024: .4byte gUnknown_02038473
-_08095028: .4byte word_203855E
+_08095028: .4byte gScriptItemId
_0809502C: .4byte 0x0201b000
_08095030: .4byte 0x00000259
_08095034:
@@ -1080,7 +1080,7 @@ _0809512C:
ldrb r0, [r0]
cmp r0, 0x3
bne _08095164
- ldr r5, _08095158 @ =word_203855E
+ ldr r5, _08095158 @ =gScriptItemId
ldrh r0, [r5]
bl sub_8070E48
lsls r0, 24
@@ -1095,7 +1095,7 @@ _0809512C:
.align 2, 0
_08095150: .4byte gPaletteFade
_08095154: .4byte gUnknown_02038473
-_08095158: .4byte word_203855E
+_08095158: .4byte gScriptItemId
_0809515C: .4byte gUnknown_03004AE4
_08095160: .4byte sub_80952E4
_08095164:
@@ -1127,7 +1127,7 @@ _08095178:
bne _0809521C
bl sub_806D5A4
ldr r3, _080951BC @ =gUnknown_03004AE4
- ldr r0, _080951C0 @ =word_203855E
+ ldr r0, _080951C0 @ =gScriptItemId
ldrh r1, [r0]
ldr r2, _080951C4 @ =sub_80952E4
ldr r3, [r3]
@@ -1139,7 +1139,7 @@ _080951AA:
_080951B4: .4byte gUnknown_02038473
_080951B8: .4byte gPlayerParty
_080951BC: .4byte gUnknown_03004AE4
-_080951C0: .4byte word_203855E
+_080951C0: .4byte gScriptItemId
_080951C4: .4byte sub_80952E4
_080951C8:
movs r0, 0x5
@@ -2396,7 +2396,7 @@ _08095C0C: .4byte gPlayerParty
thumb_func_start sub_8095C10
sub_8095C10: @ 8095C10
push {lr}
- ldr r0, _08095C24 @ =gUnknown_0202E8CC
+ ldr r0, _08095C24 @ =gSpecialVar_0x8004
ldrb r0, [r0]
bl sub_8095BB4
lsls r0, 24
@@ -2404,7 +2404,7 @@ sub_8095C10: @ 8095C10
pop {r1}
bx r1
.align 2, 0
-_08095C24: .4byte gUnknown_0202E8CC
+_08095C24: .4byte gSpecialVar_0x8004
thumb_func_end sub_8095C10
thumb_func_start sub_8095C28
@@ -19532,7 +19532,7 @@ _0809E3A0:
ldrb r1, [r1]
adds r0, 0x7A
strb r1, [r0]
- ldr r1, _0809E3C0 @ =gUnknown_0202E8CE
+ ldr r1, _0809E3C0 @ =gSpecialVar_0x8005
ldrb r0, [r0]
strh r0, [r1]
adds r0, r4, 0
@@ -19540,7 +19540,7 @@ _0809E3A0:
b _0809E3EE
.align 2, 0
_0809E3BC: .4byte 0x02018000
-_0809E3C0: .4byte gUnknown_0202E8CE
+_0809E3C0: .4byte gSpecialVar_0x8005
_0809E3C4:
movs r0, 0x20
bl PlaySE
@@ -19557,7 +19557,7 @@ _0809E3D4:
adds r0, 0x7A
movs r1, 0x4
strb r1, [r0]
- ldr r0, _0809E3F8 @ =gUnknown_0202E8CE
+ ldr r0, _0809E3F8 @ =gSpecialVar_0x8005
strh r1, [r0]
adds r0, r4, 0
bl sub_809E0FC
@@ -19567,7 +19567,7 @@ _0809E3EE:
bx r0
.align 2, 0
_0809E3F4: .4byte 0x02018000
-_0809E3F8: .4byte gUnknown_0202E8CE
+_0809E3F8: .4byte gSpecialVar_0x8005
thumb_func_end sub_809E260
thumb_func_start sub_809E3FC
diff --git a/asm/rom_81258BC.s b/asm/rom_81258BC.s
index 0c8e021ab..cbc5697a6 100644
--- a/asm/rom_81258BC.s
+++ b/asm/rom_81258BC.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -1127,7 +1127,7 @@ sub_812B758: @ 812B758
ands r0, r1
cmp r0, 0
bne _0812B77E
- ldr r0, _0812B790 @ =word_203855E
+ ldr r0, _0812B790 @ =gScriptItemId
ldrh r1, [r0]
movs r0, 0x1
bl dp01_build_cmdbuf_x23_aa_0
@@ -1139,7 +1139,7 @@ _0812B77E:
_0812B784: .4byte gMain
_0812B788: .4byte sub_800F808
_0812B78C: .4byte gPaletteFade
-_0812B790: .4byte word_203855E
+_0812B790: .4byte gScriptItemId
thumb_func_end sub_812B758
thumb_func_start sub_812B794
@@ -15587,7 +15587,7 @@ sub_81326D8: @ 81326D8
str r0, [r4]
bl sub_81332A0
ldr r1, [r4]
- ldr r0, _08132780 @ =gUnknown_0202E8CC
+ ldr r0, _08132780 @ =gSpecialVar_0x8004
ldrh r0, [r0]
ldr r2, _08132784 @ =0x000002c5
adds r1, r2
@@ -15635,7 +15635,7 @@ sub_81326D8: @ 81326D8
.align 2, 0
_08132778: .4byte gUnknown_030007B0
_0813277C: .4byte 0x02017000
-_08132780: .4byte gUnknown_0202E8CC
+_08132780: .4byte gSpecialVar_0x8004
_08132784: .4byte 0x000002c5
_08132788: .4byte sub_813265C
_0813278C: .4byte gWindowConfig_81E7240
@@ -15657,7 +15657,7 @@ sub_81327A4: @ 81327A4
str r0, [r4]
bl sub_8133558
ldr r1, [r4]
- ldr r0, _0813284C @ =gUnknown_0202E8CE
+ ldr r0, _0813284C @ =gSpecialVar_0x8005
ldrh r0, [r0]
ldr r2, _08132850 @ =0x000002c6
adds r1, r2
@@ -15711,7 +15711,7 @@ sub_81327A4: @ 81327A4
.align 2, 0
_08132844: .4byte gUnknown_030007B0
_08132848: .4byte 0x02017000
-_0813284C: .4byte gUnknown_0202E8CE
+_0813284C: .4byte gSpecialVar_0x8005
_08132850: .4byte 0x000002c6
_08132854: .4byte sub_813265C
_08132858: .4byte gWindowConfig_81E7240
@@ -16015,7 +16015,7 @@ _08132AD0:
beq _08132B34
ldr r0, _08132B2C @ =gOtherText_PokeLearnedMove
bl sub_81328E8
- ldr r1, _08132B30 @ =gUnknown_0202E8CC
+ ldr r1, _08132B30 @ =gSpecialVar_0x8004
movs r0, 0x1
strh r0, [r1]
ldr r1, [r4]
@@ -16027,7 +16027,7 @@ _08132B20: .4byte 0x000002c5
_08132B24: .4byte gPlayerParty
_08132B28: .4byte 0xffff0000
_08132B2C: .4byte gOtherText_PokeLearnedMove
-_08132B30: .4byte gUnknown_0202E8CC
+_08132B30: .4byte gSpecialVar_0x8004
_08132B34:
ldr r1, [r4]
movs r0, 0x10
@@ -16089,11 +16089,11 @@ _08132B98:
cmp r4, 0
bne _08132BB4
bl sub_8133CA4
- ldr r0, _08132BB0 @ =gUnknown_0202E8CC
+ ldr r0, _08132BB0 @ =gSpecialVar_0x8004
strh r4, [r0]
b _08132FCE
.align 2, 0
-_08132BB0: .4byte gUnknown_0202E8CC
+_08132BB0: .4byte gSpecialVar_0x8004
_08132BB4:
movs r0, 0x1
negs r0, r0
@@ -16524,7 +16524,7 @@ _08132EA4:
ldr r1, [r7]
movs r0, 0x1E
strb r0, [r1]
- ldr r1, _08132F54 @ =gUnknown_0202E8CC
+ ldr r1, _08132F54 @ =gSpecialVar_0x8004
movs r0, 0x1
strh r0, [r1]
b _08132FD6
@@ -16536,7 +16536,7 @@ _08132F44: .4byte gMoveNames
_08132F48: .4byte 0x000002c6
_08132F4C: .4byte gStringVar2
_08132F50: .4byte gOtherText_ForgotMove123
-_08132F54: .4byte gUnknown_0202E8CC
+_08132F54: .4byte gSpecialVar_0x8004
_08132F58:
bl MenuUpdateWindowText
lsls r0, 24
@@ -19581,7 +19581,7 @@ _0813469C:
str r7, [sp, 0xC]
movs r2, 0x1
adds r3, r5, 0
- bl sub_8135200
+ bl CheckMonBattleTowerBanlist
adds r4, 0x1
cmp r4, 0x2
ble _0813469C
@@ -20882,8 +20882,8 @@ _08135094: .4byte gEnemyParty
_08135098: .4byte gBattleTowerHeldItems
thumb_func_end sub_8134DD4
- thumb_func_start sub_813509C
-sub_813509C: @ 813509C
+ thumb_func_start CalcBattleTowerBanlistSeenCount
+CalcBattleTowerBanlistSeenCount: @ 813509C
push {r4-r6,lr}
movs r5, 0
ldr r2, _081350D8 @ =gBattleTowerBanlist
@@ -20917,10 +20917,10 @@ _081350CE:
.align 2, 0
_081350D8: .4byte gBattleTowerBanlist
_081350DC: .4byte 0x0000ffff
- thumb_func_end sub_813509C
+ thumb_func_end CalcBattleTowerBanlistSeenCount
- thumb_func_start sub_81350E0
-sub_81350E0: @ 81350E0
+ thumb_func_start AppendBattleTowerBannedSpeciesName
+AppendBattleTowerBannedSpeciesName: @ 81350E0
push {r4-r6,lr}
adds r5, r2, 0
lsls r0, 16
@@ -21040,10 +21040,10 @@ _081351F0: .4byte gStringVar1
_081351F4: .4byte gUnknown_08400E29
_081351F8: .4byte gUnknown_08400E2E
_081351FC: .4byte gSpeciesNames
- thumb_func_end sub_81350E0
+ thumb_func_end AppendBattleTowerBannedSpeciesName
- thumb_func_start sub_8135200
-sub_8135200: @ 8135200
+ thumb_func_start CheckMonBattleTowerBanlist
+CheckMonBattleTowerBanlist: @ 8135200
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -21167,10 +21167,10 @@ _081352CE:
.align 2, 0
_081352DC: .4byte gBattleTowerBanlist
_081352E0: .4byte 0x0000ffff
- thumb_func_end sub_8135200
+ thumb_func_end CheckMonBattleTowerBanlist
- thumb_func_start sub_81352E4
-sub_81352E4: @ 81352E4
+ thumb_func_start CheckPartyBattleTowerBanlist
+CheckPartyBattleTowerBanlist: @ 81352E4
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -21227,7 +21227,7 @@ _081352FE:
str r0, [sp, 0xC]
mov r0, r8
adds r1, r6, 0
- bl sub_8135200
+ bl CheckMonBattleTowerBanlist
adds r7, 0x1
cmp r7, 0x5
ble _081352FE
@@ -21238,13 +21238,13 @@ _081352FE:
ldr r1, _081353CC @ =gStringVar1
movs r0, 0xFF
strb r0, [r1]
- ldr r1, _081353D0 @ =gUnknown_0202E8CC
+ ldr r1, _081353D0 @ =gSpecialVar_0x8004
movs r0, 0x1
strh r0, [r1]
movs r0, 0
mov r1, r9
strb r0, [r1]
- bl sub_813509C
+ bl CalcBattleTowerBanlistSeenCount
adds r6, r0, 0
ldr r2, _081353D4 @ =gBattleTowerBanlist
ldrh r0, [r2]
@@ -21258,7 +21258,7 @@ _08135394:
ldrh r0, [r4]
ldrb r1, [r5]
adds r2, r6, 0
- bl sub_81350E0
+ bl AppendBattleTowerBannedSpeciesName
strb r0, [r5]
adds r4, 0x2
ldrh r0, [r4]
@@ -21281,7 +21281,7 @@ _081353A8:
_081353C4: .4byte gPlayerParty
_081353C8: .4byte gScriptResult
_081353CC: .4byte gStringVar1
-_081353D0: .4byte gUnknown_0202E8CC
+_081353D0: .4byte gSpecialVar_0x8004
_081353D4: .4byte gBattleTowerBanlist
_081353D8: .4byte 0x0000ffff
_081353DC: .4byte gUnknown_08400E2C
@@ -21312,7 +21312,7 @@ _08135414: .4byte gStringVar1
_08135418: .4byte gUnknown_08400E2C
_0813541C: .4byte gUnknown_08400E36
_08135420:
- ldr r1, _08135450 @ =gUnknown_0202E8CC
+ ldr r1, _08135450 @ =gSpecialVar_0x8004
movs r0, 0
strh r0, [r1]
ldr r2, _08135454 @ =gSaveBlock2
@@ -21337,10 +21337,10 @@ _0813543E:
pop {r0}
bx r0
.align 2, 0
-_08135450: .4byte gUnknown_0202E8CC
+_08135450: .4byte gSpecialVar_0x8004
_08135454: .4byte gSaveBlock2
_08135458: .4byte 0x00000554
- thumb_func_end sub_81352E4
+ thumb_func_end CheckPartyBattleTowerBanlist
thumb_func_start sub_813545C
sub_813545C: @ 813545C
@@ -21405,7 +21405,7 @@ _081354C8: .4byte 0xffffc14c
sub_81354CC: @ 81354CC
push {r4,r5,lr}
sub sp, 0x4
- ldr r0, _081354E4 @ =gUnknown_0202E8CC
+ ldr r0, _081354E4 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0x1
beq _081354E8
@@ -21415,7 +21415,7 @@ sub_81354CC: @ 81354CC
beq _0813551C
b _08135520
.align 2, 0
-_081354E4: .4byte gUnknown_0202E8CC
+_081354E4: .4byte gSpecialVar_0x8004
_081354E8:
movs r5, 0
_081354EA:
@@ -21485,7 +21485,7 @@ _08135568: .4byte sub_800E7C4
sub_813556C: @ 813556C
push {r4,r5,lr}
sub sp, 0x4
- ldr r0, _08135584 @ =gUnknown_0202E8CC
+ ldr r0, _08135584 @ =gSpecialVar_0x8004
ldrh r2, [r0]
cmp r2, 0x1
beq _081355AC
@@ -21495,7 +21495,7 @@ sub_813556C: @ 813556C
beq _0813558E
b _08135648
.align 2, 0
-_08135584: .4byte gUnknown_0202E8CC
+_08135584: .4byte gSpecialVar_0x8004
_08135588:
cmp r2, 0x2
beq _08135600
@@ -21540,7 +21540,7 @@ _081355D6:
bl CreateTask
movs r0, 0
bl current_map_music_set__default_for_battle
- bl sub_8082138
+ bl GetBattleTowerBattleTransition
lsls r0, 24
lsrs r0, 24
bl sub_811AABC
@@ -21577,7 +21577,7 @@ _08135606:
bl CreateTask
movs r0, 0
bl current_map_music_set__default_for_battle
- bl sub_8082138
+ bl GetBattleTowerBattleTransition
lsls r0, 24
lsrs r0, 24
bl sub_811AABC
@@ -21604,7 +21604,7 @@ sub_8135668: @ 8135668
ldrb r0, [r0]
lsls r0, 31
lsrs r4, r0, 31
- ldr r0, _08135694 @ =gUnknown_0202E8CC
+ ldr r0, _08135694 @ =gSpecialVar_0x8004
ldrh r0, [r0]
adds r5, r1, 0
cmp r0, 0xE
@@ -21619,7 +21619,7 @@ _08135682:
.align 2, 0
_0813568C: .4byte gSaveBlock2
_08135690: .4byte 0x00000554
-_08135694: .4byte gUnknown_0202E8CC
+_08135694: .4byte gSpecialVar_0x8004
_08135698: .4byte _0813569C
.align 2, 0
_0813569C:
@@ -21647,16 +21647,16 @@ _081356D8:
ldr r3, _081356F8 @ =0x000160fb
adds r0, r3
strb r2, [r0]
- ldr r0, _081356FC @ =gUnknown_0202E8CE
+ ldr r0, _081356FC @ =gSpecialVar_0x8005
ldrh r0, [r0]
b _08135898
.align 2, 0
_081356F0: .4byte 0x02000000
_081356F4: .4byte 0x00000556
_081356F8: .4byte 0x000160fb
-_081356FC: .4byte gUnknown_0202E8CE
+_081356FC: .4byte gSpecialVar_0x8005
_08135700:
- ldr r0, _08135714 @ =gUnknown_0202E8CE
+ ldr r0, _08135714 @ =gSpecialVar_0x8005
ldrb r0, [r0]
ldr r1, _08135718 @ =0x00000554
adds r3, r5, r1
@@ -21667,7 +21667,7 @@ _08135700:
negs r0, r0
b _08135810
.align 2, 0
-_08135714: .4byte gUnknown_0202E8CE
+_08135714: .4byte gSpecialVar_0x8005
_08135718: .4byte 0x00000554
_0813571C:
lsls r1, r4, 1
@@ -21681,22 +21681,22 @@ _08135726:
adds r0, r5, r3
_0813572C:
adds r1, r0
- ldr r0, _0813573C @ =gUnknown_0202E8CE
+ ldr r0, _0813573C @ =gSpecialVar_0x8005
ldrh r0, [r0]
strh r0, [r1]
b _0813589A
.align 2, 0
_08135738: .4byte 0x0000055c
-_0813573C: .4byte gUnknown_0202E8CE
+_0813573C: .4byte gSpecialVar_0x8005
_08135740:
- ldr r0, _0813574C @ =gUnknown_0202E8CE
+ ldr r0, _0813574C @ =gSpecialVar_0x8005
ldrh r1, [r0]
ldr r2, _08135750 @ =0x00000564
adds r0, r5, r2
strb r1, [r0]
b _0813589A
.align 2, 0
-_0813574C: .4byte gUnknown_0202E8CE
+_0813574C: .4byte gSpecialVar_0x8005
_08135750: .4byte 0x00000564
_08135754:
movs r2, 0
@@ -21780,7 +21780,7 @@ _081357F0: .4byte 0x0000055c
_081357F4: .4byte 0x00000595
_081357F8: .4byte gScriptResult
_081357FC:
- ldr r0, _08135818 @ =gUnknown_0202E8CE
+ ldr r0, _08135818 @ =gSpecialVar_0x8005
ldrb r0, [r0]
ldr r1, _0813581C @ =0x00000554
adds r3, r5, r1
@@ -21796,7 +21796,7 @@ _08135810:
strb r0, [r3]
b _0813589A
.align 2, 0
-_08135818: .4byte gUnknown_0202E8CE
+_08135818: .4byte gSpecialVar_0x8005
_0813581C: .4byte 0x00000554
_08135820:
ldr r2, _08135830 @ =0x00000572
@@ -21874,7 +21874,7 @@ sub_81358A4: @ 81358A4
ldrb r0, [r0]
lsls r0, 31
lsrs r4, r0, 31
- ldr r0, _081358D0 @ =gUnknown_0202E8CC
+ ldr r0, _081358D0 @ =gSpecialVar_0x8004
ldrh r0, [r0]
adds r3, r1, 0
cmp r0, 0xE
@@ -21889,7 +21889,7 @@ _081358BE:
.align 2, 0
_081358C8: .4byte gSaveBlock2
_081358CC: .4byte 0x00000554
-_081358D0: .4byte gUnknown_0202E8CC
+_081358D0: .4byte gSpecialVar_0x8004
_081358D4: .4byte _081358D8
.align 2, 0
_081358D8:
@@ -22243,7 +22243,7 @@ sub_8135BA0: @ 8135BA0
ldrb r0, [r0]
lsls r0, 31
lsrs r5, r0, 31
- ldr r0, _08135C24 @ =gUnknown_0202E8CC
+ ldr r0, _08135C24 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0x3
beq _08135BBA
@@ -22273,7 +22273,7 @@ _08135BD8:
ldr r2, _08135C30 @ =0x00000555
adds r0, r4, r2
strb r1, [r0]
- ldr r0, _08135C24 @ =gUnknown_0202E8CC
+ ldr r0, _08135C24 @ =gSpecialVar_0x8004
ldrh r1, [r0]
cmp r1, 0x3
beq _08135BF8
@@ -22300,7 +22300,7 @@ _08135BF8:
.align 2, 0
_08135C1C: .4byte gSaveBlock2
_08135C20: .4byte 0x00000554
-_08135C24: .4byte gUnknown_0202E8CC
+_08135C24: .4byte gSpecialVar_0x8004
_08135C28: .4byte 0x0000055c
_08135C2C: .4byte gUnknown_02024D26
_08135C30: .4byte 0x00000555
@@ -24160,7 +24160,7 @@ _08136B0E:
lsls r0, 24
cmp r0, 0
bne _08136B32
- ldr r0, _08136B3C @ =word_203855E
+ ldr r0, _08136B3C @ =gScriptItemId
ldrb r0, [r0]
bl sub_810CA6C
ldr r0, _08136B40 @ =sub_8136B44
@@ -24171,7 +24171,7 @@ _08136B32:
bx r0
.align 2, 0
_08136B38: .4byte gMain
-_08136B3C: .4byte word_203855E
+_08136B3C: .4byte gScriptItemId
_08136B40: .4byte sub_8136B44
thumb_func_end sub_81369CC
@@ -25460,7 +25460,7 @@ sub_81374FC: @ 81374FC
ands r0, r1
cmp r0, 0
bne _08137522
- ldr r0, _08137534 @ =word_203855E
+ ldr r0, _08137534 @ =gScriptItemId
ldrh r1, [r0]
movs r0, 0x1
bl dp01_build_cmdbuf_x23_aa_0
@@ -25472,7 +25472,7 @@ _08137522:
_08137528: .4byte gMain
_0813752C: .4byte sub_800F808
_08137530: .4byte gPaletteFade
-_08137534: .4byte word_203855E
+_08137534: .4byte gScriptItemId
thumb_func_end sub_81374FC
thumb_func_start sub_8137538
diff --git a/asm/rom_813BA94.s b/asm/rom_813BA94.s
index 79a52f971..e11d5fad9 100644
--- a/asm/rom_813BA94.s
+++ b/asm/rom_813BA94.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -6706,7 +6706,7 @@ FieldInitRegionMap: @ 813EEB4
movs r0, 0
strh r0, [r1]
str r4, [r2]
- ldr r0, _0813EEE0 @ =sub_813EEE4
+ ldr r0, _0813EEE0 @ =CB2_FieldInitRegionMap
bl SetMainCallback2
pop {r4}
pop {r0}
@@ -6779,9 +6779,9 @@ CB2_FieldInitRegionMap: @ 813EEE4
movs r3, 0x13
bl MenuDrawTextWindow
bl sub_813F0C8
- ldr r0, _0813EFA8 @ =sub_813EFC4
+ ldr r0, _0813EFA8 @ =CB2_FieldRegionMap
bl SetMainCallback2
- ldr r0, _0813EFAC @ =sub_813EFB0
+ ldr r0, _0813EFAC @ =VBlankCB_FieldRegionMap
bl SetVBlankCallback
movs r0, 0x1
negs r0, r0
diff --git a/asm/rom_81473B8.s b/asm/rom_81473B8.s
index 01af93d76..6c26c034a 100644
--- a/asm/rom_81473B8.s
+++ b/asm/rom_81473B8.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -1010,14 +1010,14 @@ _08147C08:
.align 2, 0
_08147C10: .4byte gUnknown_084121DC
_08147C14:
- ldr r0, _08147C24 @ =word_203855E
+ ldr r0, _08147C24 @ =gScriptItemId
ldrb r0, [r0]
bl sub_8147C90
ldr r0, _08147C28 @ =gUnknown_02039350
bl LoadCompressedObjectPalette
b _08147C40
.align 2, 0
-_08147C24: .4byte word_203855E
+_08147C24: .4byte gScriptItemId
_08147C28: .4byte gUnknown_02039350
_08147C2C:
ldr r0, _08147C34 @ =gBattleTerrainTiles_Building
@@ -1296,7 +1296,7 @@ sub_8147E40: @ 8147E40
muls r5, r0
ldr r0, _08147E98 @ =gPlayerParty
adds r5, r0
- ldr r0, _08147E9C @ =word_203855E
+ ldr r0, _08147E9C @ =gScriptItemId
ldrh r4, [r0]
lsls r4, 3
ldr r0, _08147EA0 @ =gSaveBlock1 + 0x7F8
@@ -1326,7 +1326,7 @@ sub_8147E40: @ 8147E40
.align 2, 0
_08147E94: .4byte gUnknown_02039310
_08147E98: .4byte gPlayerParty
-_08147E9C: .4byte word_203855E
+_08147E9C: .4byte gScriptItemId
_08147EA0: .4byte gSaveBlock1 + 0x7F8
_08147EA4: .4byte gUnknown_02039312
_08147EA8: .4byte gStringVar1
diff --git a/asm/rom_8148B8C.s b/asm/rom_8148B8C.s
index 366ac74d7..6ed24195f 100644
--- a/asm/rom_8148B8C.s
+++ b/asm/rom_8148B8C.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/rom_header.s b/asm/rom_header.inc
index a7348ad1f..a7348ad1f 100644
--- a/asm/rom_header.s
+++ b/asm/rom_header.inc
diff --git a/asm/rotating_gate.s b/asm/rotating_gate.s
index 3737d9ffc..9c7b3847b 100644
--- a/asm/rotating_gate.s
+++ b/asm/rotating_gate.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/roulette.s b/asm/roulette.s
index b7b97558a..01ff3ac8f 100644
--- a/asm/roulette.s
+++ b/asm/roulette.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -55,7 +55,7 @@ _08115154:
cmp r0, 0
beq _08115170
ldr r1, _08115194 @ =0x040000d4
- ldr r0, _08115198 @ =gBG1TilemapBuffer + 0x1C0
+ ldr r0, _08115198 @ =gBGTilemapBuffers + 0x800 + 0x1C0
str r0, [r1]
ldr r0, _0811519C @ =0x060021c0
str r0, [r1, 0x4]
@@ -81,7 +81,7 @@ _08115188: .4byte REG_BG1HOFS
_0811518C: .4byte 0x02019000
_08115190: .4byte REG_BLDALPHA
_08115194: .4byte 0x040000d4
-_08115198: .4byte gBG1TilemapBuffer + 0x1C0
+_08115198: .4byte gBGTilemapBuffers + 0x800 + 0x1C0
_0811519C: .4byte 0x060021c0
_081151A0: .4byte 0x800001a0
_081151A4:
@@ -91,7 +91,7 @@ _081151A4:
adds r0, r4, 0
strh r0, [r1]
adds r1, 0xCC
- ldr r0, _081151C8 @ =gBG2TilemapBuffer + 0x1C0
+ ldr r0, _081151C8 @ =gBGTilemapBuffers + 0x1000 + 0x1C0
str r0, [r1]
ldr r0, _081151CC @ =0x0600f9c0
str r0, [r1, 0x4]
@@ -102,12 +102,12 @@ _081151A4:
b _08115218
.align 2, 0
_081151C4: .4byte REG_BG0CNT
-_081151C8: .4byte gBG2TilemapBuffer + 0x1C0
+_081151C8: .4byte gBGTilemapBuffers + 0x1000 + 0x1C0
_081151CC: .4byte 0x0600f9c0
_081151D0: .4byte 0x800001a0
_081151D4:
ldr r1, _081151E8 @ =0x040000d4
- ldr r0, _081151EC @ =gBG2TilemapBuffer + 0x1C0
+ ldr r0, _081151EC @ =gBGTilemapBuffers + 0x1000 + 0x1C0
str r0, [r1]
ldr r0, _081151F0 @ =0x0600f9c0
str r0, [r1, 0x4]
@@ -117,7 +117,7 @@ _081151D4:
b _0811521A
.align 2, 0
_081151E8: .4byte 0x040000d4
-_081151EC: .4byte gBG2TilemapBuffer + 0x1C0
+_081151EC: .4byte gBGTilemapBuffers + 0x1000 + 0x1C0
_081151F0: .4byte 0x0600f9c0
_081151F4: .4byte 0x800001a0
_081151F8:
@@ -166,7 +166,7 @@ sub_8115238: @ 8115238
adds r0, r5, 0
movs r1, 0
bl memset
- ldr r0, _081152C8 @ =gUnknown_0202E8CC
+ ldr r0, _081152C8 @ =gSpecialVar_0x8004
ldrh r2, [r0]
movs r0, 0x1
ands r0, r2
@@ -224,7 +224,7 @@ _08115276:
.align 2, 0
_081152C0: .4byte gUnknown_083F8EC4
_081152C4: .4byte 0x02019000
-_081152C8: .4byte gUnknown_0202E8CC
+_081152C8: .4byte gSpecialVar_0x8004
_081152CC: .4byte gUnknown_083F8DF4
_081152D0: .4byte gUnknown_083F8DF0
_081152D4: .4byte gPlttBufferUnfaded
@@ -822,7 +822,7 @@ _081157EC:
.4byte _081158C8
.4byte _08115884
_0811582C:
- ldr r0, _08115844 @ =gBG2TilemapBuffer
+ ldr r0, _08115844 @ =gBGTilemapBuffers + 0x1000
movs r1, 0x10
str r1, [sp]
movs r1, 0xD
@@ -833,14 +833,14 @@ _0811582C:
bl sub_8124DDC
b _08115918
.align 2, 0
-_08115844: .4byte gBG2TilemapBuffer
+_08115844: .4byte gBGTilemapBuffers + 0x1000
_08115848:
lsls r0, r4, 1
adds r0, r4
adds r0, 0xE
lsls r0, 24
lsrs r7, r0, 24
- ldr r5, _0811587C @ =gBG2TilemapBuffer
+ ldr r5, _0811587C @ =gBGTilemapBuffers + 0x1000
movs r0, 0x10
str r0, [sp]
movs r4, 0xD
@@ -860,7 +860,7 @@ _08115848:
bl sub_8124E2C
b _08115918
.align 2, 0
-_0811587C: .4byte gBG2TilemapBuffer
+_0811587C: .4byte gBGTilemapBuffers + 0x1000
_08115880: .4byte 0x02018a32
_08115884:
subs r0, r4, 0x1
@@ -871,7 +871,7 @@ _08115884:
adds r1, 0xA
lsls r1, 24
lsrs r6, r1, 24
- ldr r5, _081158C0 @ =gBG2TilemapBuffer
+ ldr r5, _081158C0 @ =gBGTilemapBuffers + 0x1000
movs r4, 0x10
str r4, [sp]
movs r0, 0xD
@@ -891,7 +891,7 @@ _08115884:
bl sub_8124E2C
b _08115918
.align 2, 0
-_081158C0: .4byte gBG2TilemapBuffer
+_081158C0: .4byte gBGTilemapBuffers + 0x1000
_081158C4: .4byte 0x02018a80
_081158C8:
adds r0, r4, 0
@@ -912,7 +912,7 @@ _081158C8:
adds r1, 0x7
lsls r1, 24
lsrs r6, r1, 24
- ldr r4, _08115920 @ =gBG2TilemapBuffer
+ ldr r4, _08115920 @ =gBGTilemapBuffers + 0x1000
movs r0, 0x10
str r0, [sp]
movs r0, 0xD
@@ -936,7 +936,7 @@ _08115918:
pop {r0}
bx r0
.align 2, 0
-_08115920: .4byte gBG2TilemapBuffer
+_08115920: .4byte gBGTilemapBuffers + 0x1000
_08115924: .4byte 0x02018a20
thumb_func_end sub_81157D0
@@ -3174,7 +3174,7 @@ sub_8116AB0: @ 8116AB0
ldrb r4, [r4, 0x19]
cmp r0, r4
bcs _08116B08
- ldr r1, _08116B04 @ =gUnknown_0202E8CC
+ ldr r1, _08116B04 @ =gSpecialVar_0x8004
movs r0, 0x1
b _08116B0C
.align 2, 0
@@ -3183,9 +3183,9 @@ _08116AF4: .4byte 0x0000ffff
_08116AF8: .4byte gSaveBlock1
_08116AFC: .4byte gTasks
_08116B00: .4byte 0x00000494
-_08116B04: .4byte gUnknown_0202E8CC
+_08116B04: .4byte gSpecialVar_0x8004
_08116B08:
- ldr r1, _08116B34 @ =gUnknown_0202E8CC
+ ldr r1, _08116B34 @ =gSpecialVar_0x8004
movs r0, 0
_08116B0C:
strh r0, [r1]
@@ -3208,7 +3208,7 @@ _08116B0C:
pop {r0}
bx r0
.align 2, 0
-_08116B34: .4byte gUnknown_0202E8CC
+_08116B34: .4byte gSpecialVar_0x8004
_08116B38: .4byte gTasks
_08116B3C: .4byte sub_8116B40
thumb_func_end sub_8116AB0
@@ -4016,7 +4016,7 @@ sub_8117158: @ 8117158
movs r0, 0
movs r1, 0
bl sub_8117AA8
- ldr r0, _081171A0 @ =gBG1TilemapBuffer
+ ldr r0, _081171A0 @ =gBGTilemapBuffers + 0x800
ldr r1, _081171A4 @ =0xfffff800
adds r4, r1
movs r1, 0x10
@@ -4036,7 +4036,7 @@ sub_8117158: @ 8117158
mov pc, r0
.align 2, 0
_0811719C: .4byte 0x02019000
-_081171A0: .4byte gBG1TilemapBuffer
+_081171A0: .4byte gBGTilemapBuffers + 0x800
_081171A4: .4byte 0xfffff800
_081171A8: .4byte _081171AC
.align 2, 0
@@ -4169,7 +4169,7 @@ _0811727C:
bhi _08117350
add r5, sp, 0xC
ldr r7, [sp, 0x20]
- ldr r0, _08117374 @ =gBG1TilemapBuffer
+ ldr r0, _08117374 @ =gBGTilemapBuffers + 0x800
mov r8, r0
ldr r6, [sp, 0x1C]
ldr r1, _08117378 @ =0x020189a0
@@ -4263,7 +4263,7 @@ _08117360:
bx r0
.align 2, 0
_08117370: .4byte gUnknown_083F8C00
-_08117374: .4byte gBG1TilemapBuffer
+_08117374: .4byte gBGTilemapBuffers + 0x800
_08117378: .4byte 0x020189a0
_0811737C: .4byte 0x020189a4
thumb_func_end sub_8117158
@@ -4606,7 +4606,7 @@ sub_81175DC: @ 81175DC
cmp r0, 0x3C
ble _0811761C
_08117608:
- ldr r1, _0811762C @ =gUnknown_0202E8CC
+ ldr r1, _0811762C @ =gSpecialVar_0x8004
movs r0, 0x1
strh r0, [r1]
bl MenuZeroFillScreen
@@ -4620,7 +4620,7 @@ _0811761C:
.align 2, 0
_08117624: .4byte gTasks
_08117628: .4byte gMain
-_0811762C: .4byte gUnknown_0202E8CC
+_0811762C: .4byte gSpecialVar_0x8004
thumb_func_end sub_81175DC
thumb_func_start sub_8117630
@@ -4630,7 +4630,7 @@ sub_8117630: @ 8117630
lsls r4, 24
lsrs r4, 24
ldr r2, _0811768C @ =gUnknown_083F8DF0
- ldr r0, _08117690 @ =gUnknown_0202E8CC
+ ldr r0, _08117690 @ =gSpecialVar_0x8004
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
@@ -4668,7 +4668,7 @@ sub_8117630: @ 8117630
bx r0
.align 2, 0
_0811768C: .4byte gUnknown_083F8DF0
-_08117690: .4byte gUnknown_0202E8CC
+_08117690: .4byte gSpecialVar_0x8004
_08117694: .4byte gStringVar1
_08117698: .4byte gStringVar4
_0811769C: .4byte gUnknown_081C40DF
@@ -4712,7 +4712,7 @@ Task_Roulette_0: @ 81176A8
movs r2, 0x1
bl MenuPrint_RightAligned
ldr r2, _08117768 @ =gUnknown_083F8DF0
- ldr r1, _0811776C @ =gUnknown_0202E8CC
+ ldr r1, _0811776C @ =gSpecialVar_0x8004
mov r8, r1
ldrh r1, [r1]
movs r0, 0x1
@@ -4763,7 +4763,7 @@ _0811775C: .4byte gTasks
_08117760: .4byte gStringVar4
_08117764: .4byte gOtherText_Coins
_08117768: .4byte gUnknown_083F8DF0
-_0811776C: .4byte gUnknown_0202E8CC
+_0811776C: .4byte gSpecialVar_0x8004
_08117770: .4byte gUnknown_081C4139
_08117774: .4byte sub_8117630
_08117778: .4byte 0x0000ffff
@@ -4829,7 +4829,7 @@ _081177F8: .4byte sub_81175DC
PlayRoulette: @ 81177FC
push {lr}
bl ScriptContext2_Enable
- ldr r0, _08117828 @ =sub_81176A8
+ ldr r0, _08117828 @ =Task_Roulette_0
movs r1, 0
bl CreateTask
lsls r0, 24
@@ -7796,7 +7796,7 @@ _08118F64:
adds r1, 0x98
ldr r0, _08118F84 @ =0x3dae147b
str r0, [r1]
- ldr r0, _08118F88 @ =prev_quest_read_x24_hm_usage
+ ldr r0, _08118F88 @ =sub_8118D2C
str r0, [r7, 0x1C]
movs r0, 0x5
strh r0, [r7, 0x30]
diff --git a/asm/roulette_util.s b/asm/roulette_util.s
index 569a42712..191c9592f 100644
--- a/asm/roulette_util.s
+++ b/asm/roulette_util.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/safari_zone.s b/asm/safari_zone.s
deleted file mode 100644
index 75fc532e3..000000000
--- a/asm/safari_zone.s
+++ /dev/null
@@ -1,544 +0,0 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
-
- .syntax unified
-
- .text
-
- thumb_func_start GetSafariZoneFlag
-GetSafariZoneFlag: @ 80C8184
- push {lr}
- ldr r0, _080C8194 @ =0x0000082c
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080C8194: .4byte 0x0000082c
- thumb_func_end GetSafariZoneFlag
-
- thumb_func_start SetSafariZoneFlag
-SetSafariZoneFlag: @ 80C8198
- push {lr}
- ldr r0, _080C81A4 @ =0x0000082c
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_080C81A4: .4byte 0x0000082c
- thumb_func_end SetSafariZoneFlag
-
- thumb_func_start ResetSafariZoneFlag
-ResetSafariZoneFlag: @ 80C81A8
- push {lr}
- ldr r0, _080C81B4 @ =0x0000082c
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_080C81B4: .4byte 0x0000082c
- thumb_func_end ResetSafariZoneFlag
-
- thumb_func_start sub_80C81B8
-sub_80C81B8: @ 80C81B8
- push {lr}
- movs r0, 0x11
- bl sav12_xor_increment
- bl SetSafariZoneFlag
- bl sub_80C82D8
- ldr r1, _080C81DC @ =gUnknown_02038808
- movs r0, 0x1E
- strb r0, [r1]
- ldr r1, _080C81E0 @ =gUnknown_0203880A
- movs r2, 0xFA
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080C81DC: .4byte gUnknown_02038808
-_080C81E0: .4byte gUnknown_0203880A
- thumb_func_end sub_80C81B8
-
- thumb_func_start sub_80C81E4
-sub_80C81E4: @ 80C81E4
- push {lr}
- bl ResetSafariZoneFlag
- bl sub_80C82D8
- ldr r1, _080C8200 @ =gUnknown_02038808
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080C8204 @ =gUnknown_0203880A
- movs r0, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080C8200: .4byte gUnknown_02038808
-_080C8204: .4byte gUnknown_0203880A
- thumb_func_end sub_80C81E4
-
- thumb_func_start safari_step
-safari_step: @ 80C8208
- push {lr}
- bl GetSafariZoneFlag
- cmp r0, 0
- beq _080C8224
- bl sub_80C8508
- ldr r1, _080C8228 @ =gUnknown_0203880A
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _080C822C
-_080C8224:
- movs r0, 0
- b _080C8234
- .align 2, 0
-_080C8228: .4byte gUnknown_0203880A
-_080C822C:
- ldr r0, _080C8238 @ =gUnknown_081C3448
- bl ScriptContext1_SetupScript
- movs r0, 0x1
-_080C8234:
- pop {r1}
- bx r1
- .align 2, 0
-_080C8238: .4byte gUnknown_081C3448
- thumb_func_end safari_step
-
- thumb_func_start sub_80C823C
-sub_80C823C: @ 80C823C
- push {lr}
- ldr r0, _080C8248 @ =gUnknown_081C342D
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_080C8248: .4byte gUnknown_081C342D
- thumb_func_end sub_80C823C
-
- thumb_func_start sub_80C824C
-sub_80C824C: @ 80C824C
- push {lr}
- ldr r0, _080C8260 @ =gUnknown_02038808
- ldrb r0, [r0]
- cmp r0, 0
- beq _080C8268
- ldr r0, _080C8264 @ =c2_exit_to_overworld_2_switch
- bl SetMainCallback2
- b _080C82B0
- .align 2, 0
-_080C8260: .4byte gUnknown_02038808
-_080C8264: .4byte c2_exit_to_overworld_2_switch
-_080C8268:
- ldr r0, _080C8288 @ =gUnknown_02024D26
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _080C829C
- ldr r0, _080C828C @ =gUnknown_081C340A
- bl ScriptContext2_RunNewScript
- bl warp_in
- ldr r1, _080C8290 @ =gUnknown_0300485C
- ldr r0, _080C8294 @ =sub_8080E44
- str r0, [r1]
- ldr r0, _080C8298 @ =CB2_LoadMap
- bl SetMainCallback2
- b _080C82B0
- .align 2, 0
-_080C8288: .4byte gUnknown_02024D26
-_080C828C: .4byte gUnknown_081C340A
-_080C8290: .4byte gUnknown_0300485C
-_080C8294: .4byte sub_8080E44
-_080C8298: .4byte CB2_LoadMap
-_080C829C:
- cmp r0, 0x7
- bne _080C82B0
- ldr r0, _080C82B4 @ =gUnknown_081C3459
- bl ScriptContext1_SetupScript
- bl ScriptContext1_Stop
- ldr r0, _080C82B8 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
- bl SetMainCallback2
-_080C82B0:
- pop {r0}
- bx r0
- .align 2, 0
-_080C82B4: .4byte gUnknown_081C3459
-_080C82B8: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_80C824C
-
- thumb_func_start sub_80C82BC
-sub_80C82BC: @ 80C82BC
- push {lr}
- lsls r0, 24
- lsrs r0, 20
- ldr r1, _080C82D4 @ =gUnknown_0203880C
- adds r0, r1
- movs r1, 0
- movs r2, 0x10
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_080C82D4: .4byte gUnknown_0203880C
- thumb_func_end sub_80C82BC
-
- thumb_func_start sub_80C82D8
-sub_80C82D8: @ 80C82D8
- push {lr}
- ldr r0, _080C82E8 @ =gUnknown_0203880C
- movs r1, 0
- movs r2, 0xA0
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_080C82E8: .4byte gUnknown_0203880C
- thumb_func_end sub_80C82D8
-
- thumb_func_start sub_80C82EC
-sub_80C82EC: @ 80C82EC
- push {r4-r6,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- movs r3, 0
- adds r5, r4, 0
- ldr r4, _080C8344 @ =gSaveBlock1
-_080C8302:
- ldr r1, _080C8348 @ =gUnknown_0203880C
- lsls r0, r3, 4
- adds r2, r0, r1
- movs r1, 0x5
- ldrsb r1, [r4, r1]
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bne _080C8358
- mov r0, sp
- movs r6, 0
- ldrsh r1, [r2, r6]
- movs r6, 0
- ldrsh r0, [r0, r6]
- cmp r1, r0
- bne _080C8358
- movs r0, 0x2
- ldrsh r1, [r2, r0]
- movs r6, 0
- ldrsh r0, [r5, r6]
- cmp r1, r0
- bne _080C8358
- ldr r0, _080C834C @ =gScriptResult
- strh r3, [r0]
- ldr r1, _080C8350 @ =gUnknown_083F7EB8
- ldrb r0, [r2, 0x8]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _080C8354 @ =gStringVar1
- bl StringCopy
- b _080C836A
- .align 2, 0
-_080C8344: .4byte gSaveBlock1
-_080C8348: .4byte gUnknown_0203880C
-_080C834C: .4byte gScriptResult
-_080C8350: .4byte gUnknown_083F7EB8
-_080C8354: .4byte gStringVar1
-_080C8358:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x9
- bls _080C8302
- ldr r1, _080C8374 @ =gScriptResult
- ldr r2, _080C8378 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
-_080C836A:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8374: .4byte gScriptResult
-_080C8378: .4byte 0x0000ffff
- thumb_func_end sub_80C82EC
-
- thumb_func_start sub_80C837C
-sub_80C837C: @ 80C837C
- push {r4-r7,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- movs r5, 0
- adds r6, r4, 0
- ldr r0, _080C83E8 @ =gSaveBlock1
- movs r7, 0x5
- ldrsb r7, [r0, r7]
- mov r4, sp
- ldr r0, _080C83EC @ =gUnknown_0203880C
- mov r12, r0
-_080C839C:
- lsls r0, r5, 4
- mov r1, r12
- adds r2, r0, r1
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r7, r0
- bne _080C83F4
- ldrh r0, [r4]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4]
- adds r3, r6, 0
- ldrh r0, [r3]
- ldrh r1, [r2, 0x2]
- subs r0, r1
- strh r0, [r3]
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _080C83C8
- negs r0, r0
- strh r0, [r4]
-_080C83C8:
- movs r2, 0
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bge _080C83D4
- negs r0, r0
- strh r0, [r3]
-_080C83D4:
- movs r2, 0
- ldrsh r0, [r4, r2]
- movs r2, 0
- ldrsh r1, [r6, r2]
- adds r0, r1
- cmp r0, 0x5
- bgt _080C83F4
- ldr r0, _080C83F0 @ =gScriptResult
- strh r5, [r0]
- b _080C8406
- .align 2, 0
-_080C83E8: .4byte gSaveBlock1
-_080C83EC: .4byte gUnknown_0203880C
-_080C83F0: .4byte gScriptResult
-_080C83F4:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x9
- bls _080C839C
- ldr r1, _080C8410 @ =gScriptResult
- ldr r2, _080C8414 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
-_080C8406:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8410: .4byte gScriptResult
-_080C8414: .4byte 0x0000ffff
- thumb_func_end sub_80C837C
-
- thumb_func_start unref_sub_80C8418
-unref_sub_80C8418: @ 80C8418
- push {lr}
- bl sub_80C82EC
- ldr r2, _080C8434 @ =gScriptResult
- ldrh r1, [r2]
- ldr r0, _080C8438 @ =0x0000ffff
- cmp r1, r0
- beq _080C8440
- adds r0, r1, 0
- lsls r0, 4
- ldr r1, _080C843C @ =gUnknown_02038814
- adds r0, r1
- b _080C8442
- .align 2, 0
-_080C8434: .4byte gScriptResult
-_080C8438: .4byte 0x0000ffff
-_080C843C: .4byte gUnknown_02038814
-_080C8440:
- movs r0, 0
-_080C8442:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80C8418
-
- thumb_func_start sub_80C8448
-sub_80C8448: @ 80C8448
- push {lr}
- bl sub_80C837C
- ldr r2, _080C8464 @ =gScriptResult
- ldrh r1, [r2]
- ldr r0, _080C8468 @ =0x0000ffff
- cmp r1, r0
- beq _080C8470
- adds r0, r1, 0
- lsls r0, 4
- ldr r1, _080C846C @ =gUnknown_02038814
- adds r0, r1
- b _080C8472
- .align 2, 0
-_080C8464: .4byte gScriptResult
-_080C8468: .4byte 0x0000ffff
-_080C846C: .4byte gUnknown_02038814
-_080C8470:
- movs r0, 0
-_080C8472:
- pop {r1}
- bx r1
- thumb_func_end sub_80C8448
-
- thumb_func_start sub_80C8478
-sub_80C8478: @ 80C8478
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- movs r2, 0
- ldr r3, _080C84E8 @ =gUnknown_0203880C
- mov r6, sp
- adds r6, 0x2
- ldr r7, _080C84EC @ =gSaveBlock1
- movs r1, 0x8
- adds r1, r3
- mov r9, r1
- movs r4, 0xFF
- lsls r4, 3
- adds r1, r7, r4
- lsrs r0, 21
- adds r0, r1
- mov r8, r0
-_080C84A0:
- lsls r5, r2, 4
- adds r4, r5, r3
- movs r0, 0x4
- ldrsb r0, [r4, r0]
- cmp r0, 0
- bne _080C84F0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C84F0
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C84F0
- mov r0, sp
- adds r1, r6, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- ldrb r0, [r7, 0x5]
- strb r0, [r4, 0x4]
- mov r3, r9
- adds r2, r5, r3
- mov r3, r8
- ldr r0, [r3]
- ldr r1, [r3, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- movs r0, 0x64
- strb r0, [r4, 0x5]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4]
- ldrh r0, [r6]
- strh r0, [r4, 0x2]
- b _080C84FA
- .align 2, 0
-_080C84E8: .4byte gUnknown_0203880C
-_080C84EC: .4byte gSaveBlock1
-_080C84F0:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x9
- bls _080C84A0
-_080C84FA:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C8478
-
- thumb_func_start sub_80C8508
-sub_80C8508: @ 80C8508
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _080C8538 @ =gUnknown_0203880C
-_080C850E:
- lsls r0, r4, 4
- adds r1, r0, r5
- ldrb r0, [r1, 0x5]
- cmp r0, 0
- beq _080C8528
- subs r0, 0x1
- strb r0, [r1, 0x5]
- lsls r0, 24
- cmp r0, 0
- bne _080C8528
- adds r0, r4, 0
- bl sub_80C82BC
-_080C8528:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _080C850E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C8538: .4byte gUnknown_0203880C
- thumb_func_end sub_80C8508
-
- thumb_func_start unref_sub_80C853C
-unref_sub_80C853C: @ 80C853C
- push {lr}
- bl sub_80C82EC
- ldr r3, _080C8564 @ =gScriptResult
- ldrh r1, [r3]
- ldr r0, _080C8568 @ =0x0000ffff
- cmp r1, r0
- beq _080C8574
- ldr r0, _080C856C @ =gStringVar2
- ldr r2, _080C8570 @ =gUnknown_0203880C
- lsls r1, 4
- adds r1, r2
- ldrb r1, [r1, 0x5]
- movs r2, 0x2
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- movs r0, 0x1
- b _080C8576
- .align 2, 0
-_080C8564: .4byte gScriptResult
-_080C8568: .4byte 0x0000ffff
-_080C856C: .4byte gStringVar2
-_080C8570: .4byte gUnknown_0203880C
-_080C8574:
- movs r0, 0
-_080C8576:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_80C853C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/save_failed_screen.s b/asm/save_failed_screen.s
index 35e0cb359..a114bbea3 100644
--- a/asm/save_failed_screen.s
+++ b/asm/save_failed_screen.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/script_menu.s b/asm/script_menu.s
index 6d6c68244..bd6180940 100644
--- a/asm/script_menu.s
+++ b/asm/script_menu.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/script_pokemon_util_80C4BF0.s b/asm/script_pokemon_util_80C4BF0.s
index 883adfe5d..dd4c18d96 100644
--- a/asm/script_pokemon_util_80C4BF0.s
+++ b/asm/script_pokemon_util_80C4BF0.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -39,7 +39,7 @@ _080C4C24: .4byte 0x00001364
thumb_func_start sub_80C4C28
sub_80C4C28: @ 80C4C28
push {lr}
- ldr r0, _080C4C40 @ =gUnknown_0202E8CE
+ ldr r0, _080C4C40 @ =gSpecialVar_0x8005
ldrb r0, [r0]
adds r1, r0, 0
cmp r0, 0x1
@@ -50,7 +50,7 @@ sub_80C4C28: @ 80C4C28
beq _080C4C4A
b _080C4C56
.align 2, 0
-_080C4C40: .4byte gUnknown_0202E8CE
+_080C4C40: .4byte gSpecialVar_0x8005
_080C4C44:
cmp r1, 0x2
beq _080C4C52
@@ -67,12 +67,12 @@ _080C4C52:
_080C4C56:
movs r1, 0x64
_080C4C58:
- ldr r0, _080C4C60 @ =gUnknown_0202E8CC
+ ldr r0, _080C4C60 @ =gSpecialVar_0x8004
strh r1, [r0]
pop {r0}
bx r0
.align 2, 0
-_080C4C60: .4byte gUnknown_0202E8CC
+_080C4C60: .4byte gSpecialVar_0x8004
thumb_func_end sub_80C4C28
thumb_func_start sub_80C4C64
@@ -88,7 +88,7 @@ sub_80C4C64: @ 80C4C64
thumb_func_start sub_80C4C78
sub_80C4C78: @ 80C4C78
push {lr}
- ldr r0, _080C4C8C @ =gUnknown_0203869C
+ ldr r0, _080C4C8C @ =gScriptContestCategory
ldrh r0, [r0]
cmp r0, 0x4
bhi _080C4CB8
@@ -98,7 +98,7 @@ sub_80C4C78: @ 80C4C78
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080C4C8C: .4byte gUnknown_0203869C
+_080C4C8C: .4byte gScriptContestCategory
_080C4C90: .4byte _080C4C94
.align 2, 0
_080C4C94:
@@ -130,22 +130,22 @@ _080C4CBA:
ldrh r1, [r0]
cmp r1, 0
bne _080C4CDC
- ldr r0, _080C4CD8 @ =gUnknown_0202E8CC
+ ldr r0, _080C4CD8 @ =gSpecialVar_0x8004
strh r1, [r0]
b _080C4CE2
.align 2, 0
_080C4CD0: .4byte gSaveBlock1
_080C4CD4: .4byte 0x00002e04
-_080C4CD8: .4byte gUnknown_0202E8CC
+_080C4CD8: .4byte gSpecialVar_0x8004
_080C4CDC:
- ldr r1, _080C4CE8 @ =gUnknown_0202E8CC
+ ldr r1, _080C4CE8 @ =gSpecialVar_0x8004
movs r0, 0x1
strh r0, [r1]
_080C4CE2:
pop {r0}
bx r0
.align 2, 0
-_080C4CE8: .4byte gUnknown_0202E8CC
+_080C4CE8: .4byte gSpecialVar_0x8004
thumb_func_end sub_80C4C78
thumb_func_start sub_80C4CEC
@@ -167,7 +167,7 @@ sub_80C4CF8: @ 80C4CF8
ldrb r0, [r0]
cmp r0, 0
bne _080C4D40
- ldr r0, _080C4D30 @ =gUnknown_0203869E
+ ldr r0, _080C4D30 @ =gScriptContestRank
ldrh r0, [r0]
cmp r0, 0x3
bne _080C4D40
@@ -179,25 +179,25 @@ sub_80C4CF8: @ 80C4CF8
ldr r0, _080C4D38 @ =0x0000031f
cmp r1, r0
ble _080C4D40
- ldr r1, _080C4D3C @ =gUnknown_0202E8CC
+ ldr r1, _080C4D3C @ =gSpecialVar_0x8004
movs r0, 0x1
b _080C4D44
.align 2, 0
_080C4D28: .4byte gUnknown_02038690
_080C4D2C: .4byte gUnknown_02038695
-_080C4D30: .4byte gUnknown_0203869E
+_080C4D30: .4byte gScriptContestRank
_080C4D34: .4byte gUnknown_02038678
_080C4D38: .4byte 0x0000031f
-_080C4D3C: .4byte gUnknown_0202E8CC
+_080C4D3C: .4byte gSpecialVar_0x8004
_080C4D40:
- ldr r1, _080C4D4C @ =gUnknown_0202E8CC
+ ldr r1, _080C4D4C @ =gSpecialVar_0x8004
movs r0, 0
_080C4D44:
strh r0, [r1]
pop {r0}
bx r0
.align 2, 0
-_080C4D4C: .4byte gUnknown_0202E8CC
+_080C4D4C: .4byte gSpecialVar_0x8004
thumb_func_end sub_80C4CF8
thumb_func_start sub_80C4D50
@@ -238,7 +238,7 @@ sub_80C4D80: @ 80C4D80
sub sp, 0x8
ldr r0, _080C4EA0 @ =gUnknown_02038670
mov r12, r0
- ldr r1, _080C4EA4 @ =gUnknown_0202E8D0
+ ldr r1, _080C4EA4 @ =gSpecialVar_0x8006
mov r8, r1
ldr r2, _080C4EA8 @ =gStringVar1
mov r9, r2
@@ -386,7 +386,7 @@ _080C4E78:
b _080C4EC4
.align 2, 0
_080C4EA0: .4byte gUnknown_02038670
-_080C4EA4: .4byte gUnknown_0202E8D0
+_080C4EA4: .4byte gSpecialVar_0x8006
_080C4EA8: .4byte gStringVar1
_080C4EAC: .4byte gUnknown_0203869A
_080C4EB0: .4byte gStringVar2
@@ -405,15 +405,15 @@ _080C4EC4:
cmp r7, r0
bne _080C4EE4
_080C4ED0:
- ldr r0, _080C4EE0 @ =gUnknown_0202E8D0
+ ldr r0, _080C4EE0 @ =gSpecialVar_0x8006
strh r4, [r0]
b _080C4EEA
.align 2, 0
_080C4ED8: .4byte gStringVar2
_080C4EDC: .4byte gUnknown_0203857D
-_080C4EE0: .4byte gUnknown_0202E8D0
+_080C4EE0: .4byte gSpecialVar_0x8006
_080C4EE4:
- ldr r1, _080C4EFC @ =gUnknown_0202E8D0
+ ldr r1, _080C4EFC @ =gSpecialVar_0x8006
adds r0, r4, 0x4
strh r0, [r1]
_080C4EEA:
@@ -426,7 +426,7 @@ _080C4EEA:
pop {r0}
bx r0
.align 2, 0
-_080C4EFC: .4byte gUnknown_0202E8D0
+_080C4EFC: .4byte gSpecialVar_0x8006
thumb_func_end sub_80C4D80
thumb_func_start ShowContestWinnerCleanup
@@ -464,10 +464,10 @@ ShowContestWinner: @ 80C4F10
bl sub_80B2A7C
strb r5, [r6]
_080C4F40:
- ldr r0, _080C4F64 @ =sub_8106668
+ ldr r0, _080C4F64 @ =CB2_ContestPainting
bl SetMainCallback2
ldr r1, _080C4F68 @ =gMain
- ldr r0, _080C4F6C @ =sub_80C4F00
+ ldr r0, _080C4F6C @ =ShowContestWinnerCleanup
str r0, [r1, 0x8]
pop {r4-r6}
pop {r0}
@@ -540,7 +540,7 @@ GiveMonArtistRibbon: @ 80C4FBC
ldrb r0, [r0]
cmp r0, 0
bne _080C5038
- ldr r0, _080C502C @ =gUnknown_0203869E
+ ldr r0, _080C502C @ =gScriptContestRank
ldrh r0, [r0]
cmp r0, 0x3
bne _080C5038
@@ -568,7 +568,7 @@ _080C501C: .4byte gUnknown_02038694
_080C5020: .4byte gPlayerParty
_080C5024: .4byte gUnknown_02038690
_080C5028: .4byte gUnknown_02038695
-_080C502C: .4byte gUnknown_0203869E
+_080C502C: .4byte gScriptContestRank
_080C5030: .4byte gUnknown_02038678
_080C5034: .4byte 0x0000031f
_080C5038:
@@ -612,7 +612,7 @@ ShowContestEntryMonPic: @ 80C5050
movs r3, 0xD
bl MenuDrawTextWindow
ldr r2, _080C5140 @ =gUnknown_02038570
- ldr r0, _080C5144 @ =gUnknown_0202E8D0
+ ldr r0, _080C5144 @ =gSpecialVar_0x8006
ldrh r1, [r0]
lsls r1, 6
adds r0, r1, r2
@@ -704,7 +704,7 @@ _080C512A:
.align 2, 0
_080C513C: .4byte sub_80C5190
_080C5140: .4byte gUnknown_02038570
-_080C5144: .4byte gUnknown_0202E8D0
+_080C5144: .4byte gSpecialVar_0x8006
_080C5148: .4byte gTasks
_080C514C: .4byte gMonFrontPicTable
_080C5150: .4byte gMonFrontPicCoords
@@ -1294,7 +1294,7 @@ _080C55AC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
ChooseBattleTowerPlayerParty: @ 80C55B0
push {lr}
ldr r1, _080C55C0 @ =gMain
- ldr r0, _080C55C4 @ =sub_80C55C8
+ ldr r0, _080C55C4 @ =SetBattleTowerPlayerParty
str r0, [r1, 0x8]
bl sub_8121E34
pop {r0}
diff --git a/asm/script_pokemon_util_80F99CC.s b/asm/script_pokemon_util_80F99CC.s
index 24d690d1a..af550f47e 100644
--- a/asm/script_pokemon_util_80F99CC.s
+++ b/asm/script_pokemon_util_80F99CC.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -371,7 +371,7 @@ _080F9C98:
bl sub_806CA38
ldr r1, _080F9CB8 @ =gUnknown_02038694
strb r0, [r1]
- ldr r2, _080F9CBC @ =gUnknown_0202E8CC
+ ldr r2, _080F9CBC @ =gSpecialVar_0x8004
ldrb r0, [r1]
strh r0, [r2]
adds r0, r4, 0
@@ -379,14 +379,14 @@ _080F9C98:
b _080F9CD8
.align 2, 0
_080F9CB8: .4byte gUnknown_02038694
-_080F9CBC: .4byte gUnknown_0202E8CC
+_080F9CBC: .4byte gSpecialVar_0x8004
_080F9CC0:
movs r0, 0x5
bl PlaySE
ldr r1, _080F9CE0 @ =gUnknown_02038694
movs r0, 0xFF
strb r0, [r1]
- ldr r1, _080F9CE4 @ =gUnknown_0202E8CC
+ ldr r1, _080F9CE4 @ =gSpecialVar_0x8004
movs r0, 0xFF
strh r0, [r1]
adds r0, r4, 0
@@ -397,7 +397,7 @@ _080F9CD8:
bx r0
.align 2, 0
_080F9CE0: .4byte gUnknown_02038694
-_080F9CE4: .4byte gUnknown_0202E8CC
+_080F9CE4: .4byte gSpecialVar_0x8004
thumb_func_end sub_80F9C6C
thumb_func_start sub_80F9CE8
@@ -619,13 +619,13 @@ _080F9E8C: .4byte gPaletteFade
_080F9E90:
movs r0, 0x5
bl PlaySE
- ldr r4, _080F9EC4 @ =gUnknown_0202E8CC
+ ldr r4, _080F9EC4 @ =gSpecialVar_0x8004
adds r0, r6, 0
bl sub_806CA38
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
- ldr r5, _080F9EC8 @ =gUnknown_0202E8CE
+ ldr r5, _080F9EC8 @ =gSpecialVar_0x8005
ldrh r1, [r4]
movs r0, 0x64
muls r0, r1
@@ -639,13 +639,13 @@ _080F9E90:
bl sub_8123138
b _080F9EE2
.align 2, 0
-_080F9EC4: .4byte gUnknown_0202E8CC
-_080F9EC8: .4byte gUnknown_0202E8CE
+_080F9EC4: .4byte gSpecialVar_0x8004
+_080F9EC8: .4byte gSpecialVar_0x8005
_080F9ECC: .4byte gPlayerParty
_080F9ED0:
movs r0, 0x5
bl PlaySE
- ldr r1, _080F9EE8 @ =gUnknown_0202E8CC
+ ldr r1, _080F9EE8 @ =gSpecialVar_0x8004
movs r0, 0xFF
strh r0, [r1]
adds r0, r6, 0
@@ -655,7 +655,7 @@ _080F9EE2:
pop {r0}
bx r0
.align 2, 0
-_080F9EE8: .4byte gUnknown_0202E8CC
+_080F9EE8: .4byte gSpecialVar_0x8004
thumb_func_end sub_80F9E64
thumb_func_start sub_80F9EEC
@@ -663,7 +663,7 @@ sub_80F9EEC: @ 80F9EEC
push {r4,lr}
sub sp, 0x4
ldr r0, _080F9F20 @ =gPlayerParty
- ldr r1, _080F9F24 @ =gUnknown_0202E8CC
+ ldr r1, _080F9F24 @ =gSpecialVar_0x8004
ldrb r1, [r1]
ldr r2, _080F9F28 @ =gPlayerPartyCount
ldrb r2, [r2]
@@ -686,7 +686,7 @@ sub_80F9EEC: @ 80F9EEC
bx r0
.align 2, 0
_080F9F20: .4byte gPlayerParty
-_080F9F24: .4byte gUnknown_0202E8CC
+_080F9F24: .4byte gSpecialVar_0x8004
_080F9F28: .4byte gPlayerPartyCount
_080F9F2C: .4byte c2_exit_to_overworld_2_switch
_080F9F30: .4byte 0x02018000
@@ -703,7 +703,7 @@ sub_80F9F3C: @ 80F9F3C
movs r4, 0
adds r5, r1, 0
_080F9F48:
- ldr r0, _080F9F7C @ =gUnknown_0202E8CC
+ ldr r0, _080F9F7C @ =gSpecialVar_0x8004
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
@@ -728,21 +728,21 @@ _080F9F66:
bx r0
.align 2, 0
_080F9F78: .4byte gScriptResult
-_080F9F7C: .4byte gUnknown_0202E8CC
+_080F9F7C: .4byte gSpecialVar_0x8004
_080F9F80: .4byte gPlayerParty
thumb_func_end sub_80F9F3C
thumb_func_start sub_80F9F84
sub_80F9F84: @ 80F9F84
push {r4,r5,lr}
- ldr r0, _080F9FC4 @ =gUnknown_0202E8CC
+ ldr r0, _080F9FC4 @ =gSpecialVar_0x8004
ldrh r1, [r0]
movs r0, 0x64
adds r5, r1, 0
muls r5, r0
ldr r0, _080F9FC8 @ =gPlayerParty
adds r5, r0
- ldr r0, _080F9FCC @ =gUnknown_0202E8CE
+ ldr r0, _080F9FCC @ =gSpecialVar_0x8005
ldrh r1, [r0]
adds r1, 0xD
adds r0, r5, 0
@@ -763,9 +763,9 @@ sub_80F9F84: @ 80F9F84
pop {r0}
bx r0
.align 2, 0
-_080F9FC4: .4byte gUnknown_0202E8CC
+_080F9FC4: .4byte gSpecialVar_0x8004
_080F9FC8: .4byte gPlayerParty
-_080F9FCC: .4byte gUnknown_0202E8CE
+_080F9FCC: .4byte gSpecialVar_0x8005
_080F9FD0: .4byte gStringVar1
_080F9FD4: .4byte gStringVar2
_080F9FD8: .4byte gMoveNames
@@ -898,14 +898,14 @@ sub_80FA0DC: @ 80FA0DC
push {r4-r6,lr}
mov r6, r8
push {r6}
- ldr r0, _080FA13C @ =gUnknown_0202E8CC
+ ldr r0, _080FA13C @ =gSpecialVar_0x8004
mov r8, r0
ldrh r0, [r0]
movs r6, 0x64
muls r0, r6
ldr r5, _080FA140 @ =gPlayerParty
adds r0, r5
- ldr r4, _080FA144 @ =gUnknown_0202E8CE
+ ldr r4, _080FA144 @ =gSpecialVar_0x8005
ldrb r2, [r4]
movs r1, 0
bl SetMonMoveSlot
@@ -919,7 +919,7 @@ sub_80FA0DC: @ 80FA0DC
cmp r4, 0x2
bhi _080FA130
_080FA10E:
- ldr r0, _080FA13C @ =gUnknown_0202E8CC
+ ldr r0, _080FA13C @ =gSpecialVar_0x8004
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
@@ -942,15 +942,15 @@ _080FA130:
pop {r0}
bx r0
.align 2, 0
-_080FA13C: .4byte gUnknown_0202E8CC
+_080FA13C: .4byte gSpecialVar_0x8004
_080FA140: .4byte gPlayerParty
-_080FA144: .4byte gUnknown_0202E8CE
+_080FA144: .4byte gSpecialVar_0x8005
thumb_func_end sub_80FA0DC
thumb_func_start sub_80FA148
sub_80FA148: @ 80FA148
push {r4,lr}
- ldr r0, _080FA170 @ =gUnknown_0202E8CC
+ ldr r0, _080FA170 @ =gSpecialVar_0x8004
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
@@ -970,7 +970,7 @@ _080FA16A:
pop {r0}
bx r0
.align 2, 0
-_080FA170: .4byte gUnknown_0202E8CC
+_080FA170: .4byte gSpecialVar_0x8004
_080FA174: .4byte gPlayerParty
_080FA178: .4byte gScriptResult
thumb_func_end sub_80FA148
diff --git a/asm/secret_base.s b/asm/secret_base.s
index 9a41a2dd8..72c467e70 100644
--- a/asm/secret_base.s
+++ b/asm/secret_base.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -170,13 +170,13 @@ _080BB5B8:
thumb_func_start sub_80BB5D0
sub_80BB5D0: @ 80BB5D0
ldr r0, _080BB5DC @ =gUnknown_020387DC
- ldr r1, _080BB5E0 @ =gUnknown_0202E8CC
+ ldr r1, _080BB5E0 @ =gSpecialVar_0x8004
ldrh r1, [r1]
strb r1, [r0]
bx lr
.align 2, 0
_080BB5DC: .4byte gUnknown_020387DC
-_080BB5E0: .4byte gUnknown_0202E8CC
+_080BB5E0: .4byte gSpecialVar_0x8004
thumb_func_end sub_80BB5D0
thumb_func_start sub_80BB5E4
@@ -343,7 +343,7 @@ _080BB702:
thumb_func_start sub_80BB70C
sub_80BB70C: @ 80BB70C
push {r4,lr}
- ldr r4, _080BB720 @ =gUnknown_0202E8D2
+ ldr r4, _080BB720 @ =gSpecialVar_0x8007
bl sub_80BB66C
lsls r0, 24
lsrs r0, 24
@@ -352,7 +352,7 @@ sub_80BB70C: @ 80BB70C
pop {r0}
bx r0
.align 2, 0
-_080BB720: .4byte gUnknown_0202E8D2
+_080BB720: .4byte gSpecialVar_0x8007
thumb_func_end sub_80BB70C
thumb_func_start unref_sub_80BB724
@@ -1290,7 +1290,7 @@ _080BBE4E:
bcs _080BBE8E
ldr r0, [r2, 0x4]
ldrh r1, [r0, 0x14]
- ldr r4, _080BBF8C @ =gUnknown_0202E8CC
+ ldr r4, _080BBF8C @ =gSpecialVar_0x8004
ldrh r0, [r4]
adds r0, 0xAE
adds r7, r4, 0
@@ -1320,13 +1320,13 @@ _080BBE8E:
ldrb r0, [r0]
cmp r5, r0
beq _080BBF5E
- ldr r7, _080BBF90 @ =gUnknown_0202E8D0
+ ldr r7, _080BBF90 @ =gSpecialVar_0x8006
ldr r2, [sp, 0x8]
adds r1, r2, r6
ldrb r0, [r1]
lsrs r0, 4
strh r0, [r7]
- ldr r6, _080BBF94 @ =gUnknown_0202E8D2
+ ldr r6, _080BBF94 @ =gSpecialVar_0x8007
ldrb r1, [r1]
movs r0, 0xF
ands r0, r1
@@ -1380,7 +1380,7 @@ _080BBEDA:
ldrb r0, [r4]
ldr r1, _080BBF9C @ =gScriptResult
strh r0, [r1]
- ldr r2, _080BBF8C @ =gUnknown_0202E8CC
+ ldr r2, _080BBF8C @ =gSpecialVar_0x8004
ldrh r0, [r2]
adds r0, 0xAE
lsls r0, 16
@@ -1408,7 +1408,7 @@ _080BBEDA:
ldrb r1, [r2, 0x5]
ldrb r2, [r2, 0x4]
bl sub_805C78C
- ldr r3, _080BBF8C @ =gUnknown_0202E8CC
+ ldr r3, _080BBF8C @ =gSpecialVar_0x8004
ldrh r0, [r3]
adds r0, 0x1
strh r0, [r3]
@@ -1434,9 +1434,9 @@ _080BBF7C: .4byte gSaveBlock1 + 0x1A1A
_080BBF80: .4byte gSaveBlock1
_080BBF84: .4byte gDecorations
_080BBF88: .4byte gMapHeader
-_080BBF8C: .4byte gUnknown_0202E8CC
-_080BBF90: .4byte gUnknown_0202E8D0
-_080BBF94: .4byte gUnknown_0202E8D2
+_080BBF8C: .4byte gSpecialVar_0x8004
+_080BBF90: .4byte gSpecialVar_0x8006
+_080BBF94: .4byte gSpecialVar_0x8007
_080BBF98: .4byte 0x00003f20
_080BBF9C: .4byte gScriptResult
_080BBFA0: .4byte gDecorations + 0x1C
@@ -2276,7 +2276,7 @@ _080BC600: .4byte 0x00001a09
thumb_func_start SecretBasePC_Decoration
SecretBasePC_Decoration: @ 80BC604
push {lr}
- ldr r0, _080BC614 @ =sub_80FE264
+ ldr r0, _080BC614 @ =Task_SecretBasePC_Decoration
movs r1, 0
bl CreateTask
pop {r0}
@@ -2288,7 +2288,7 @@ _080BC614: .4byte Task_SecretBasePC_Decoration
thumb_func_start SecretBasePC_Registry
SecretBasePC_Registry: @ 80BC618
push {lr}
- ldr r0, _080BC628 @ =sub_80BC62C
+ ldr r0, _080BC628 @ =Task_SecretBasePC_Registry
movs r1, 0
bl CreateTask
pop {r0}
@@ -3392,7 +3392,7 @@ _080BCEB2:
ldr r0, _080BCF08 @ =0x000008c2
bl FlagSet
_080BCED4:
- ldr r4, _080BCF14 @ =gUnknown_0202E8CC
+ ldr r4, _080BCF14 @ =gSpecialVar_0x8004
lsls r0, r5, 24
lsrs r0, 24
bl sub_80BCCA4
@@ -3419,7 +3419,7 @@ _080BCF04: .4byte 0x00004054
_080BCF08: .4byte 0x000008c2
_080BCF0C: .4byte gSaveBlock1
_080BCF10: .4byte 0x00001a09
-_080BCF14: .4byte gUnknown_0202E8CC
+_080BCF14: .4byte gSpecialVar_0x8004
_080BCF18: .4byte gScriptResult
thumb_func_end sub_80BCE90
diff --git a/asm/shop.s b/asm/shop.s
index 760586c18..94ee3c867 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -446,7 +446,7 @@ sub_80B30AC: @ 80B30AC
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
- ldr r3, _080B30F0 @ =gBG1TilemapBuffer
+ ldr r3, _080B30F0 @ =gBGTilemapBuffers + 0x800
ldr r1, _080B30F4 @ =0x0600e800
ldr r0, _080B30F8 @ =0x040000d4
str r3, [r0]
@@ -474,7 +474,7 @@ sub_80B30AC: @ 80B30AC
pop {r0}
bx r0
.align 2, 0
-_080B30F0: .4byte gBG1TilemapBuffer
+_080B30F0: .4byte gBGTilemapBuffers + 0x800
_080B30F4: .4byte 0x0600e800
_080B30F8: .4byte 0x040000d4
_080B30FC: .4byte 0x80000400
@@ -762,12 +762,12 @@ _080B3356:
beq _080B3398
b _080B33C0
_080B335C:
- ldr r5, _080B3360 @ =gBG2TilemapBuffer
+ ldr r5, _080B3360 @ =gBGTilemapBuffers + 0x1000
b _080B3366
.align 2, 0
-_080B3360: .4byte gBG2TilemapBuffer
+_080B3360: .4byte gBGTilemapBuffers + 0x1000
_080B3364:
- ldr r5, _080B3390 @ =gBG3TilemapBuffer
+ ldr r5, _080B3390 @ =gBGTilemapBuffers + 0x1800
_080B3366:
lsls r6, r0, 16
asrs r6, 16
@@ -788,10 +788,10 @@ _080B3366:
bl BuyMenuDrawMapMetatileLayer
b _080B33C0
.align 2, 0
-_080B3390: .4byte gBG3TilemapBuffer
+_080B3390: .4byte gBGTilemapBuffers + 0x1800
_080B3394: .4byte 0xfffff800
_080B3398:
- ldr r5, _080B33C8 @ =gBG3TilemapBuffer
+ ldr r5, _080B33C8 @ =gBGTilemapBuffers + 0x1800
lsls r6, r0, 16
asrs r6, 16
lsls r4, r1, 16
@@ -814,7 +814,7 @@ _080B33C0:
pop {r0}
bx r0
.align 2, 0
-_080B33C8: .4byte gBG3TilemapBuffer
+_080B33C8: .4byte gBGTilemapBuffers + 0x1800
_080B33CC: .4byte 0xfffff000
thumb_func_end BuyMenuDrawMapMetatile
@@ -827,7 +827,7 @@ sub_80B33D0: @ 80B33D0
adds r4, r1, 0
mov r8, r2
lsls r4, 22
- ldr r5, _080B3418 @ =gBG3TilemapBuffer
+ ldr r5, _080B3418 @ =gBGTilemapBuffers + 0x1800
lsls r6, 17
asrs r6, 16
movs r0, 0x80
@@ -854,7 +854,7 @@ sub_80B33D0: @ 80B33D0
pop {r0}
bx r0
.align 2, 0
-_080B3418: .4byte gBG3TilemapBuffer
+_080B3418: .4byte gBGTilemapBuffers + 0x1800
_080B341C: .4byte 0xfffff800
thumb_func_end sub_80B33D0
@@ -983,7 +983,7 @@ _080B3506:
beq _080B3520
lsls r1, 17
asrs r1, 16
- ldr r0, _080B3550 @ =gBG1TilemapBuffer
+ ldr r0, _080B3550 @ =gBGTilemapBuffers + 0x800
movs r2, 0x40
bl sub_80B32EC
_080B3520:
@@ -1010,7 +1010,7 @@ _080B3520:
bx r0
.align 2, 0
_080B354C: .4byte 0xfffffe00
-_080B3550: .4byte gBG1TilemapBuffer
+_080B3550: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80B3420
thumb_func_start BuyMenuDrawMapGraphics
@@ -1250,7 +1250,7 @@ _080B371C: .4byte gSprites
sub_80B3720: @ 80B3720
push {r4-r6,lr}
movs r1, 0
- ldr r6, _080B3754 @ =gBG1TilemapBuffer
+ ldr r6, _080B3754 @ =gBGTilemapBuffers + 0x800
ldr r5, _080B3758 @ =0x000003ff
ldr r4, _080B375C @ =0x02018000
ldr r0, _080B3760 @ =0x0000c3e0
@@ -1277,7 +1277,7 @@ _080B3742:
pop {r0}
bx r0
.align 2, 0
-_080B3754: .4byte gBG1TilemapBuffer
+_080B3754: .4byte gBGTilemapBuffers + 0x800
_080B3758: .4byte 0x000003ff
_080B375C: .4byte 0x02018000
_080B3760: .4byte 0x0000c3e0
@@ -1316,7 +1316,7 @@ _080B3798: .4byte gUnknown_03000708
sub_80B379C: @ 80B379C
push {r4-r7,lr}
movs r1, 0
- ldr r0, _080B37E0 @ =gBG1TilemapBuffer
+ ldr r0, _080B37E0 @ =gBGTilemapBuffers + 0x800
mov r12, r0
ldr r7, _080B37E4 @ =0x02018300
ldr r0, _080B37E8 @ =0x0000c3e0
@@ -1351,7 +1351,7 @@ _080B37B6:
pop {r0}
bx r0
.align 2, 0
-_080B37E0: .4byte gBG1TilemapBuffer
+_080B37E0: .4byte gBGTilemapBuffers + 0x800
_080B37E4: .4byte 0x02018300
_080B37E8: .4byte 0x0000c3e0
thumb_func_end sub_80B379C
@@ -1417,7 +1417,7 @@ sub_80B37F8: @ 80B37F8
movs r1, 0x1
movs r2, 0xB
bl MenuPrint
- ldr r0, _080B3894 @ =gBG1TilemapBuffer
+ ldr r0, _080B3894 @ =gBGTilemapBuffers + 0x800
movs r1, 0x2
str r1, [sp]
ldr r1, _080B3898 @ =0x0000c3e1
@@ -1435,7 +1435,7 @@ _080B3884: .4byte gUnknown_03000708
_080B3888: .4byte gTasks
_080B388C: .4byte gStringVar1
_080B3890: .4byte gOtherText_xString1
-_080B3894: .4byte gBG1TilemapBuffer
+_080B3894: .4byte gBGTilemapBuffers + 0x800
_080B3898: .4byte 0x0000c3e1
thumb_func_end sub_80B37F8
@@ -1880,7 +1880,7 @@ sub_80B3BF4: @ 80B3BF4
movs r2, 0xD
movs r3, 0xD
bl MenuZeroFillWindowRect
- ldr r0, _080B3C7C @ =gBG1TilemapBuffer
+ ldr r0, _080B3C7C @ =gBGTilemapBuffers + 0x800
movs r1, 0x4
str r1, [sp]
movs r1, 0
@@ -1932,7 +1932,7 @@ sub_80B3BF4: @ 80B3BF4
bl sub_80B4470
b _080B3D24
.align 2, 0
-_080B3C7C: .4byte gBG1TilemapBuffer
+_080B3C7C: .4byte gBGTilemapBuffers + 0x800
_080B3C80: .4byte gSaveBlock1
_080B3C84: .4byte gUnknown_020386A0
_080B3C88: .4byte gUnknown_03000708
@@ -2023,7 +2023,7 @@ sub_80B3D38: @ 80B3D38
movs r1, 0x8
movs r2, 0x1
bl DisplayYesNoMenu
- ldr r0, _080B3D70 @ =gBG1TilemapBuffer
+ ldr r0, _080B3D70 @ =gBGTilemapBuffers + 0x800
movs r1, 0x4
str r1, [sp]
ldr r1, _080B3D74 @ =0x0000c3e1
@@ -2040,7 +2040,7 @@ sub_80B3D38: @ 80B3D38
pop {r0}
bx r0
.align 2, 0
-_080B3D70: .4byte gBG1TilemapBuffer
+_080B3D70: .4byte gBGTilemapBuffers + 0x800
_080B3D74: .4byte 0x0000c3e1
_080B3D78: .4byte gUnknown_083CC708
thumb_func_end sub_80B3D38
@@ -2062,7 +2062,7 @@ sub_80B3D7C: @ 80B3D7C
movs r2, 0xD
movs r3, 0xD
bl MenuZeroFillWindowRect
- ldr r0, _080B3DC4 @ =gBG1TilemapBuffer
+ ldr r0, _080B3DC4 @ =gBGTilemapBuffers + 0x800
movs r1, 0x4
str r1, [sp]
movs r1, 0
@@ -2079,7 +2079,7 @@ sub_80B3D7C: @ 80B3D7C
bx r0
.align 2, 0
_080B3DC0: .4byte gUnknown_03000708
-_080B3DC4: .4byte gBG1TilemapBuffer
+_080B3DC4: .4byte gBGTilemapBuffers + 0x800
thumb_func_end sub_80B3D7C
thumb_func_start sub_80B3DC8
@@ -2141,7 +2141,7 @@ _080B3DEE:
movs r2, 0xD
movs r3, 0xD
bl MenuZeroFillWindowRect
- ldr r0, _080B3EB8 @ =gBG1TilemapBuffer
+ ldr r0, _080B3EB8 @ =gBGTilemapBuffers + 0x800
movs r1, 0x2
str r1, [sp]
movs r1, 0
@@ -2188,7 +2188,7 @@ _080B3EA8: .4byte gUnknown_03000708
_080B3EAC: .4byte gMain
_080B3EB0: .4byte gUnknown_020386A0
_080B3EB4: .4byte gTasks
-_080B3EB8: .4byte gBG1TilemapBuffer
+_080B3EB8: .4byte gBGTilemapBuffers + 0x800
_080B3EBC: .4byte gStringVar1
_080B3EC0: .4byte gStringVar2
_080B3EC4: .4byte gStringVar3
@@ -2775,7 +2775,7 @@ sub_80B4378: @ 80B4378
movs r2, 0xD
movs r3, 0xD
bl MenuZeroFillWindowRect
- ldr r0, _080B43E4 @ =gBG1TilemapBuffer
+ ldr r0, _080B43E4 @ =gBGTilemapBuffers + 0x800
movs r1, 0x2
str r1, [sp]
movs r1, 0
@@ -2806,7 +2806,7 @@ sub_80B4378: @ 80B4378
pop {r0}
bx r0
.align 2, 0
-_080B43E4: .4byte gBG1TilemapBuffer
+_080B43E4: .4byte gBGTilemapBuffers + 0x800
_080B43E8: .4byte gTasks
_080B43EC: .4byte sub_80B40E8
thumb_func_end sub_80B4378
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index e4c4e7220..ee176211f 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/sound_check_menu.s b/asm/sound_check_menu.s
index 25a524258..b47229d2b 100644
--- a/asm/sound_check_menu.s
+++ b/asm/sound_check_menu.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -363,7 +363,7 @@ sub_80BA384: @ 80BA384
movs r1, 0xB
movs r2, 0xF
bl sub_80BA79C
- ldr r0, _080BA3FC @ =Task_HandleMainMenuInput
+ ldr r0, _080BA3FC @ =sub_80BA65C
str r0, [r4]
pop {r4}
pop {r0}
diff --git a/asm/tileset.s b/asm/tileset.s
deleted file mode 100644
index e64355432..000000000
--- a/asm/tileset.s
+++ /dev/null
@@ -1,1625 +0,0 @@
- .include "constants/gba_constants.s"
- .include "asm/macros.s"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8072DF8
-sub_8072DF8: @ 8072DF8
- push {lr}
- sub sp, 0x4
- ldr r1, _08072E18 @ =gUnknown_030006C0
- movs r0, 0
- strb r0, [r1]
- movs r0, 0
- str r0, [sp]
- ldr r1, _08072E1C @ =gUnknown_0202E9D8
- ldr r2, _08072E20 @ =0x0500003c
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08072E18: .4byte gUnknown_030006C0
-_08072E1C: .4byte gUnknown_0202E9D8
-_08072E20: .4byte 0x0500003c
- thumb_func_end sub_8072DF8
-
- thumb_func_start sub_8072E24
-sub_8072E24: @ 8072E24
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 16
- lsrs r6, r2, 16
- ldr r3, _08072E6C @ =gUnknown_030006C0
- ldrb r0, [r3]
- cmp r0, 0x13
- bhi _08072E64
- ldr r2, _08072E70 @ =gUnknown_0202E9D8
- adds r1, r0, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- str r4, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r1, r2, 0x4
- adds r0, r1
- str r5, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r6, [r0, 0x8]
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
-_08072E64:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08072E6C: .4byte gUnknown_030006C0
-_08072E70: .4byte gUnknown_0202E9D8
- thumb_func_end sub_8072E24
-
- thumb_func_start sub_8072E74
-sub_8072E74: @ 8072E74
- push {r4-r6,lr}
- movs r3, 0
- ldr r4, _08072EB0 @ =gUnknown_030006C0
- adds r6, r4, 0
- ldrb r0, [r4]
- cmp r3, r0
- bge _08072EA6
- ldr r2, _08072EB4 @ =0x040000d4
- ldr r1, _08072EB8 @ =gUnknown_0202E9D8
- movs r5, 0x80
- lsls r5, 24
-_08072E8A:
- ldr r0, [r1]
- str r0, [r2]
- ldr r0, [r1, 0x4]
- str r0, [r2, 0x4]
- ldrh r0, [r1, 0x8]
- lsrs r0, 1
- orrs r0, r5
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r1, 0xC
- adds r3, 0x1
- ldrb r0, [r4]
- cmp r3, r0
- blt _08072E8A
-_08072EA6:
- movs r0, 0
- strb r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08072EB0: .4byte gUnknown_030006C0
-_08072EB4: .4byte 0x040000d4
-_08072EB8: .4byte gUnknown_0202E9D8
- thumb_func_end sub_8072E74
-
- thumb_func_start cur_mapheader_run_tileset_funcs_after_some_cpuset
-cur_mapheader_run_tileset_funcs_after_some_cpuset: @ 8072EBC
- push {lr}
- bl sub_8072DF8
- bl cur_mapheader_run_tileset1_func
- bl cur_mapheader_run_tileset2_func
- pop {r0}
- bx r0
- thumb_func_end cur_mapheader_run_tileset_funcs_after_some_cpuset
-
- thumb_func_start sub_8072ED0
-sub_8072ED0: @ 8072ED0
- push {lr}
- bl cur_mapheader_run_tileset2_func
- pop {r0}
- bx r0
- thumb_func_end sub_8072ED0
-
- thumb_func_start sub_8072EDC
-sub_8072EDC: @ 8072EDC
- push {r4,lr}
- bl sub_8072DF8
- ldr r2, _08072F34 @ =gUnknown_030006C2
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- ldr r1, _08072F38 @ =gUnknown_030006C4
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r1]
- cmp r0, r1
- bcc _08072EFA
- movs r0, 0
- strh r0, [r2]
-_08072EFA:
- ldr r4, _08072F3C @ =gUnknown_030006C6
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- ldr r1, _08072F40 @ =gUnknown_030006C8
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r1]
- cmp r0, r1
- bcc _08072F12
- movs r0, 0
- strh r0, [r4]
-_08072F12:
- ldr r0, _08072F44 @ =gUnknown_030006CC
- ldr r1, [r0]
- cmp r1, 0
- beq _08072F20
- ldrh r0, [r2]
- bl _call_via_r1
-_08072F20:
- ldr r0, _08072F48 @ =gUnknown_030006D0
- ldr r1, [r0]
- cmp r1, 0
- beq _08072F2E
- ldrh r0, [r4]
- bl _call_via_r1
-_08072F2E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08072F34: .4byte gUnknown_030006C2
-_08072F38: .4byte gUnknown_030006C4
-_08072F3C: .4byte gUnknown_030006C6
-_08072F40: .4byte gUnknown_030006C8
-_08072F44: .4byte gUnknown_030006CC
-_08072F48: .4byte gUnknown_030006D0
- thumb_func_end sub_8072EDC
-
- thumb_func_start cur_mapheader_run_tileset1_func
-cur_mapheader_run_tileset1_func: @ 8072F4C
- push {lr}
- ldr r0, _08072F78 @ =gUnknown_030006C2
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08072F7C @ =gUnknown_030006C4
- strh r1, [r0]
- ldr r1, _08072F80 @ =gUnknown_030006CC
- movs r0, 0
- str r0, [r1]
- ldr r0, _08072F84 @ =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0, 0x10]
- cmp r0, 0
- beq _08072F72
- ldr r0, [r0, 0x14]
- cmp r0, 0
- beq _08072F72
- bl _call_via_r0
-_08072F72:
- pop {r0}
- bx r0
- .align 2, 0
-_08072F78: .4byte gUnknown_030006C2
-_08072F7C: .4byte gUnknown_030006C4
-_08072F80: .4byte gUnknown_030006CC
-_08072F84: .4byte gMapHeader
- thumb_func_end cur_mapheader_run_tileset1_func
-
- thumb_func_start cur_mapheader_run_tileset2_func
-cur_mapheader_run_tileset2_func: @ 8072F88
- push {lr}
- ldr r0, _08072FB4 @ =gUnknown_030006C6
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08072FB8 @ =gUnknown_030006C8
- strh r1, [r0]
- ldr r1, _08072FBC @ =gUnknown_030006D0
- movs r0, 0
- str r0, [r1]
- ldr r0, _08072FC0 @ =gMapHeader
- ldr r0, [r0]
- ldr r0, [r0, 0x14]
- cmp r0, 0
- beq _08072FAE
- ldr r0, [r0, 0x14]
- cmp r0, 0
- beq _08072FAE
- bl _call_via_r0
-_08072FAE:
- pop {r0}
- bx r0
- .align 2, 0
-_08072FB4: .4byte gUnknown_030006C6
-_08072FB8: .4byte gUnknown_030006C8
-_08072FBC: .4byte gUnknown_030006D0
-_08072FC0: .4byte gMapHeader
- thumb_func_end cur_mapheader_run_tileset2_func
-
- thumb_func_start TilesetCB_General
-TilesetCB_General: @ 8072FC4
- ldr r1, _08072FDC @ =gUnknown_030006C2
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08072FE0 @ =gUnknown_030006C4
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08072FE4 @ =gUnknown_030006CC
- ldr r0, _08072FE8 @ =sub_8073014
- str r0, [r1]
- bx lr
- .align 2, 0
-_08072FDC: .4byte gUnknown_030006C2
-_08072FE0: .4byte gUnknown_030006C4
-_08072FE4: .4byte gUnknown_030006CC
-_08072FE8: .4byte sub_8073014
- thumb_func_end TilesetCB_General
-
- thumb_func_start TilesetCB_Building
-TilesetCB_Building: @ 8072FEC
- ldr r1, _08073004 @ =gUnknown_030006C2
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08073008 @ =gUnknown_030006C4
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0807300C @ =gUnknown_030006CC
- ldr r0, _08073010 @ =sub_8073058
- str r0, [r1]
- bx lr
- .align 2, 0
-_08073004: .4byte gUnknown_030006C2
-_08073008: .4byte gUnknown_030006C4
-_0807300C: .4byte gUnknown_030006CC
-_08073010: .4byte sub_8073058
- thumb_func_end TilesetCB_Building
-
- thumb_func_start sub_8073014
-sub_8073014: @ 8073014
- push {r4,r5,lr}
- lsls r5, r0, 16
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r5
- lsrs r4, r0, 16
- cmp r4, 0
- bne _0807302A
- lsrs r0, r5, 20
- bl sub_8073070
-_0807302A:
- cmp r4, 0x1
- bne _08073034
- lsrs r0, r5, 20
- bl sub_8073098
-_08073034:
- cmp r4, 0x2
- bne _0807303E
- lsrs r0, r5, 20
- bl sub_80730C0
-_0807303E:
- cmp r4, 0x3
- bne _08073048
- lsrs r0, r5, 20
- bl sub_80730E8
-_08073048:
- cmp r4, 0x4
- bne _08073052
- lsrs r0, r5, 20
- bl sub_807361C
-_08073052:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8073014
-
- thumb_func_start sub_8073058
-sub_8073058: @ 8073058
- push {lr}
- lsls r1, r0, 16
- movs r0, 0xE0
- lsls r0, 11
- ands r0, r1
- cmp r0, 0
- bne _0807306C
- lsrs r0, r1, 19
- bl sub_8073904
-_0807306C:
- pop {r0}
- bx r0
- thumb_func_end sub_8073058
-
- thumb_func_start sub_8073070
-sub_8073070: @ 8073070
- push {lr}
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- ldr r0, _08073090 @ =gTilesetAnimTable_General_0
- lsrs r1, 14
- adds r1, r0
- ldr r0, [r1]
- ldr r1, _08073094 @ =0x06003f80
- movs r2, 0x80
- bl sub_8072E24
- pop {r0}
- bx r0
- .align 2, 0
-_08073090: .4byte gTilesetAnimTable_General_0
-_08073094: .4byte 0x06003f80
- thumb_func_end sub_8073070
-
- thumb_func_start sub_8073098
-sub_8073098: @ 8073098
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x7
- ands r0, r1
- ldr r1, _080730B8 @ =gTilesetAnimTable_General_1
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080730BC @ =0x06003600
- movs r2, 0xF0
- lsls r2, 2
- bl sub_8072E24
- pop {r0}
- bx r0
- .align 2, 0
-_080730B8: .4byte gTilesetAnimTable_General_1
-_080730BC: .4byte 0x06003600
- thumb_func_end sub_8073098
-
- thumb_func_start sub_80730C0
-sub_80730C0: @ 80730C0
- push {lr}
- lsls r0, 16
- movs r1, 0xE0
- lsls r1, 11
- ands r1, r0
- ldr r0, _080730E0 @ =gTilesetAnimTable_General_2
- lsrs r1, 14
- adds r1, r0
- ldr r0, [r1]
- ldr r1, _080730E4 @ =0x06003a00
- movs r2, 0xA0
- lsls r2, 1
- bl sub_8072E24
- pop {r0}
- bx r0
- .align 2, 0
-_080730E0: .4byte gTilesetAnimTable_General_2
-_080730E4: .4byte 0x06003a00
- thumb_func_end sub_80730C0
-
- thumb_func_start sub_80730E8
-sub_80730E8: @ 80730E8
- push {lr}
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- ldr r0, _08073108 @ =gTilesetAnimTable_General_3
- lsrs r1, 14
- adds r1, r0
- ldr r0, [r1]
- ldr r1, _0807310C @ =0x06003e00
- movs r2, 0xC0
- bl sub_8072E24
- pop {r0}
- bx r0
- .align 2, 0
-_08073108: .4byte gTilesetAnimTable_General_3
-_0807310C: .4byte 0x06003e00
- thumb_func_end sub_80730E8
-
- thumb_func_start TilesetCB_Petalburg
-TilesetCB_Petalburg: @ 8073110
- ldr r1, _08073128 @ =gUnknown_030006C6
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0807312C @ =gUnknown_030006C8
- ldr r0, _08073130 @ =gUnknown_030006C4
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _08073134 @ =gUnknown_030006D0
- movs r0, 0
- str r0, [r1]
- bx lr
- .align 2, 0
-_08073128: .4byte gUnknown_030006C6
-_0807312C: .4byte gUnknown_030006C8
-_08073130: .4byte gUnknown_030006C4
-_08073134: .4byte gUnknown_030006D0
- thumb_func_end TilesetCB_Petalburg
-
- thumb_func_start TilesetCB_Rustboro
-TilesetCB_Rustboro: @ 8073138
- ldr r1, _08073150 @ =gUnknown_030006C6
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08073154 @ =gUnknown_030006C8
- ldr r0, _08073158 @ =gUnknown_030006C4
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _0807315C @ =gUnknown_030006D0
- ldr r0, _08073160 @ =sub_8073424
- str r0, [r1]
- bx lr
- .align 2, 0
-_08073150: .4byte gUnknown_030006C6
-_08073154: .4byte gUnknown_030006C8
-_08073158: .4byte gUnknown_030006C4
-_0807315C: .4byte gUnknown_030006D0
-_08073160: .4byte sub_8073424
- thumb_func_end TilesetCB_Rustboro
-
- thumb_func_start TilesetCB_Dewford
-TilesetCB_Dewford: @ 8073164
- ldr r1, _0807317C @ =gUnknown_030006C6
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08073180 @ =gUnknown_030006C8
- ldr r0, _08073184 @ =gUnknown_030006C4
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _08073188 @ =gUnknown_030006D0
- movs r0, 0
- str r0, [r1]
- bx lr
- .align 2, 0
-_0807317C: .4byte gUnknown_030006C6
-_08073180: .4byte gUnknown_030006C8
-_08073184: .4byte gUnknown_030006C4
-_08073188: .4byte gUnknown_030006D0
- thumb_func_end TilesetCB_Dewford
-
- thumb_func_start TilesetCB_Slateport
-TilesetCB_Slateport: @ 807318C
- ldr r1, _080731A4 @ =gUnknown_030006C6
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080731A8 @ =gUnknown_030006C8
- ldr r0, _080731AC @ =gUnknown_030006C4
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _080731B0 @ =gUnknown_030006D0
- movs r0, 0
- str r0, [r1]
- bx lr
- .align 2, 0
-_080731A4: .4byte gUnknown_030006C6
-_080731A8: .4byte gUnknown_030006C8
-_080731AC: .4byte gUnknown_030006C4
-_080731B0: .4byte gUnknown_030006D0
- thumb_func_end TilesetCB_Slateport
-
- thumb_func_start TilesetCB_Mauville
-TilesetCB_Mauville: @ 80731B4
- ldr r1, _080731CC @ =gUnknown_030006C6
- ldr r0, _080731D0 @ =gUnknown_030006C2
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _080731D4 @ =gUnknown_030006C8
- ldr r0, _080731D8 @ =gUnknown_030006C4
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _080731DC @ =gUnknown_030006D0
- ldr r0, _080731E0 @ =sub_80734A0
- str r0, [r1]
- bx lr
- .align 2, 0
-_080731CC: .4byte gUnknown_030006C6
-_080731D0: .4byte gUnknown_030006C2
-_080731D4: .4byte gUnknown_030006C8
-_080731D8: .4byte gUnknown_030006C4
-_080731DC: .4byte gUnknown_030006D0
-_080731E0: .4byte sub_80734A0
- thumb_func_end TilesetCB_Mauville
-
- thumb_func_start TilesetCB_Lavaridge
-TilesetCB_Lavaridge: @ 80731E4
- ldr r1, _080731FC @ =gUnknown_030006C6
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08073200 @ =gUnknown_030006C8
- ldr r0, _08073204 @ =gUnknown_030006C4
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _08073208 @ =gUnknown_030006D0
- ldr r0, _0807320C @ =sub_8073514
- str r0, [r1]
- bx lr
- .align 2, 0
-_080731FC: .4byte gUnknown_030006C6
-_08073200: .4byte gUnknown_030006C8
-_08073204: .4byte gUnknown_030006C4
-_08073208: .4byte gUnknown_030006D0
-_0807320C: .4byte sub_8073514
- thumb_func_end TilesetCB_Lavaridge
-
- thumb_func_start TilesetCB_Fallarbor
-TilesetCB_Fallarbor: @ 8073210
- ldr r1, _08073228 @ =gUnknown_030006C6
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0807322C @ =gUnknown_030006C8
- ldr r0, _08073230 @ =gUnknown_030006C4
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _08073234 @ =gUnknown_030006D0
- movs r0, 0
- str r0, [r1]
- bx lr
- .align 2, 0
-_08073228: .4byte gUnknown_030006C6
-_0807322C: .4byte gUnknown_030006C8
-_08073230: .4byte gUnknown_030006C4
-_08073234: .4byte gUnknown_030006D0
- thumb_func_end TilesetCB_Fallarbor
-
- thumb_func_start TilesetCB_Fortree
-TilesetCB_Fortree: @ 8073238
- ldr r1, _08073250 @ =gUnknown_030006C6
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08073254 @ =gUnknown_030006C8
- ldr r0, _08073258 @ =gUnknown_030006C4
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _0807325C @ =gUnknown_030006D0
- movs r0, 0
- str r0, [r1]
- bx lr
- .align 2, 0
-_08073250: .4byte gUnknown_030006C6
-_08073254: .4byte gUnknown_030006C8
-_08073258: .4byte gUnknown_030006C4
-_0807325C: .4byte gUnknown_030006D0
- thumb_func_end TilesetCB_Fortree
-
- thumb_func_start TilesetCB_Lilycove
-TilesetCB_Lilycove: @ 8073260
- ldr r1, _08073278 @ =gUnknown_030006C6
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0807327C @ =gUnknown_030006C8
- ldr r0, _08073280 @ =gUnknown_030006C4
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _08073284 @ =gUnknown_030006D0
- movs r0, 0
- str r0, [r1]
- bx lr
- .align 2, 0
-_08073278: .4byte gUnknown_030006C6
-_0807327C: .4byte gUnknown_030006C8
-_08073280: .4byte gUnknown_030006C4
-_08073284: .4byte gUnknown_030006D0
- thumb_func_end TilesetCB_Lilycove
-
- thumb_func_start TilesetCB_Mossdeep
-TilesetCB_Mossdeep: @ 8073288
- ldr r1, _080732A0 @ =gUnknown_030006C6
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080732A4 @ =gUnknown_030006C8
- ldr r0, _080732A8 @ =gUnknown_030006C4
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _080732AC @ =gUnknown_030006D0
- movs r0, 0
- str r0, [r1]
- bx lr
- .align 2, 0
-_080732A0: .4byte gUnknown_030006C6
-_080732A4: .4byte gUnknown_030006C8
-_080732A8: .4byte gUnknown_030006C4
-_080732AC: .4byte gUnknown_030006D0
- thumb_func_end TilesetCB_Mossdeep
-
- thumb_func_start TilesetCB_EverGrande
-TilesetCB_EverGrande: @ 80732B0
- ldr r1, _080732C8 @ =gUnknown_030006C6
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080732CC @ =gUnknown_030006C8
- ldr r0, _080732D0 @ =gUnknown_030006C4
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _080732D4 @ =gUnknown_030006D0
- ldr r0, _080732D8 @ =sub_8073540
- str r0, [r1]
- bx lr
- .align 2, 0
-_080732C8: .4byte gUnknown_030006C6
-_080732CC: .4byte gUnknown_030006C8
-_080732D0: .4byte gUnknown_030006C4
-_080732D4: .4byte gUnknown_030006D0
-_080732D8: .4byte sub_8073540
- thumb_func_end TilesetCB_EverGrande
-
- thumb_func_start TilesetCB_Pacifidlog
-TilesetCB_Pacifidlog: @ 80732DC
- ldr r1, _080732F4 @ =gUnknown_030006C6
- ldr r0, _080732F8 @ =gUnknown_030006C2
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _080732FC @ =gUnknown_030006C8
- ldr r0, _08073300 @ =gUnknown_030006C4
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _08073304 @ =gUnknown_030006D0
- ldr r0, _08073308 @ =sub_80735B4
- str r0, [r1]
- bx lr
- .align 2, 0
-_080732F4: .4byte gUnknown_030006C6
-_080732F8: .4byte gUnknown_030006C2
-_080732FC: .4byte gUnknown_030006C8
-_08073300: .4byte gUnknown_030006C4
-_08073304: .4byte gUnknown_030006D0
-_08073308: .4byte sub_80735B4
- thumb_func_end TilesetCB_Pacifidlog
-
- thumb_func_start TilesetCB_Sootopolis
-TilesetCB_Sootopolis: @ 807330C
- ldr r1, _08073324 @ =gUnknown_030006C6
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08073328 @ =gUnknown_030006C8
- ldr r0, _0807332C @ =gUnknown_030006C4
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _08073330 @ =gUnknown_030006D0
- movs r0, 0
- str r0, [r1]
- bx lr
- .align 2, 0
-_08073324: .4byte gUnknown_030006C6
-_08073328: .4byte gUnknown_030006C8
-_0807332C: .4byte gUnknown_030006C4
-_08073330: .4byte gUnknown_030006D0
- thumb_func_end TilesetCB_Sootopolis
-
- thumb_func_start TilesetCB_Underwater
-TilesetCB_Underwater: @ 8073334
- ldr r1, _08073348 @ =gUnknown_030006C6
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0807334C @ =gUnknown_030006C8
- movs r0, 0x80
- strh r0, [r1]
- ldr r1, _08073350 @ =gUnknown_030006D0
- ldr r0, _08073354 @ =sub_80735E4
- str r0, [r1]
- bx lr
- .align 2, 0
-_08073348: .4byte gUnknown_030006C6
-_0807334C: .4byte gUnknown_030006C8
-_08073350: .4byte gUnknown_030006D0
-_08073354: .4byte sub_80735E4
- thumb_func_end TilesetCB_Underwater
-
- thumb_func_start TilesetCB_SootopolisGym
-TilesetCB_SootopolisGym: @ 8073358
- ldr r1, _0807336C @ =gUnknown_030006C6
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08073370 @ =gUnknown_030006C8
- movs r0, 0xF0
- strh r0, [r1]
- ldr r1, _08073374 @ =gUnknown_030006D0
- ldr r0, _08073378 @ =sub_80738A8
- str r0, [r1]
- bx lr
- .align 2, 0
-_0807336C: .4byte gUnknown_030006C6
-_08073370: .4byte gUnknown_030006C8
-_08073374: .4byte gUnknown_030006D0
-_08073378: .4byte sub_80738A8
- thumb_func_end TilesetCB_SootopolisGym
-
- thumb_func_start TilesetCB_Cave
-TilesetCB_Cave: @ 807337C
- ldr r1, _08073394 @ =gUnknown_030006C6
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08073398 @ =gUnknown_030006C8
- ldr r0, _0807339C @ =gUnknown_030006C4
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _080733A0 @ =gUnknown_030006D0
- ldr r0, _080733A4 @ =sub_8073600
- str r0, [r1]
- bx lr
- .align 2, 0
-_08073394: .4byte gUnknown_030006C6
-_08073398: .4byte gUnknown_030006C8
-_0807339C: .4byte gUnknown_030006C4
-_080733A0: .4byte gUnknown_030006D0
-_080733A4: .4byte sub_8073600
- thumb_func_end TilesetCB_Cave
-
- thumb_func_start TilesetCB_EliteFour
-TilesetCB_EliteFour: @ 80733A8
- ldr r1, _080733BC @ =gUnknown_030006C6
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080733C0 @ =gUnknown_030006C8
- movs r0, 0x80
- strh r0, [r1]
- ldr r1, _080733C4 @ =gUnknown_030006D0
- ldr r0, _080733C8 @ =sub_80738C0
- str r0, [r1]
- bx lr
- .align 2, 0
-_080733BC: .4byte gUnknown_030006C6
-_080733C0: .4byte gUnknown_030006C8
-_080733C4: .4byte gUnknown_030006D0
-_080733C8: .4byte sub_80738C0
- thumb_func_end TilesetCB_EliteFour
-
- thumb_func_start TilesetCB_MauvilleGym
-TilesetCB_MauvilleGym: @ 80733CC
- ldr r1, _080733E4 @ =gUnknown_030006C6
- movs r0, 0
- strh r0, [r1]
- ldr r1, _080733E8 @ =gUnknown_030006C8
- ldr r0, _080733EC @ =gUnknown_030006C4
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _080733F0 @ =gUnknown_030006D0
- ldr r0, _080733F4 @ =sub_8073890
- str r0, [r1]
- bx lr
- .align 2, 0
-_080733E4: .4byte gUnknown_030006C6
-_080733E8: .4byte gUnknown_030006C8
-_080733EC: .4byte gUnknown_030006C4
-_080733F0: .4byte gUnknown_030006D0
-_080733F4: .4byte sub_8073890
- thumb_func_end TilesetCB_MauvilleGym
-
- thumb_func_start TilesetCB_BikeShop
-TilesetCB_BikeShop: @ 80733F8
- ldr r1, _08073410 @ =gUnknown_030006C6
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08073414 @ =gUnknown_030006C8
- ldr r0, _08073418 @ =gUnknown_030006C4
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _0807341C @ =gUnknown_030006D0
- ldr r0, _08073420 @ =sub_80738EC
- str r0, [r1]
- bx lr
- .align 2, 0
-_08073410: .4byte gUnknown_030006C6
-_08073414: .4byte gUnknown_030006C8
-_08073418: .4byte gUnknown_030006C4
-_0807341C: .4byte gUnknown_030006D0
-_08073420: .4byte sub_80738EC
- thumb_func_end TilesetCB_BikeShop
-
- thumb_func_start sub_8073424
-sub_8073424: @ 8073424
- push {r4-r6,lr}
- lsls r5, r0, 16
- movs r0, 0xE0
- lsls r0, 11
- ands r0, r5
- lsrs r6, r0, 16
- cmp r6, 0
- bne _08073444
- lsrs r4, r5, 19
- adds r0, r4, 0
- movs r1, 0
- bl sub_80737A4
- adds r0, r4, 0
- bl sub_80737E0
-_08073444:
- cmp r6, 0x1
- bne _08073450
- lsrs r0, r5, 19
- movs r1, 0x1
- bl sub_80737A4
-_08073450:
- cmp r6, 0x2
- bne _0807345C
- lsrs r0, r5, 19
- movs r1, 0x2
- bl sub_80737A4
-_0807345C:
- cmp r6, 0x3
- bne _08073468
- lsrs r0, r5, 19
- movs r1, 0x3
- bl sub_80737A4
-_08073468:
- cmp r6, 0x4
- bne _08073474
- lsrs r0, r5, 19
- movs r1, 0x4
- bl sub_80737A4
-_08073474:
- cmp r6, 0x5
- bne _08073480
- lsrs r0, r5, 19
- movs r1, 0x5
- bl sub_80737A4
-_08073480:
- cmp r6, 0x6
- bne _0807348C
- lsrs r0, r5, 19
- movs r1, 0x6
- bl sub_80737A4
-_0807348C:
- cmp r6, 0x7
- bne _08073498
- lsrs r0, r5, 19
- movs r1, 0x7
- bl sub_80737A4
-_08073498:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8073424
-
- thumb_func_start sub_80734A0
-sub_80734A0: @ 80734A0
- push {r4,r5,lr}
- lsls r4, r0, 16
- movs r0, 0xE0
- lsls r0, 11
- ands r0, r4
- lsrs r5, r0, 16
- cmp r5, 0
- bne _080734B8
- lsrs r0, r4, 19
- movs r1, 0
- bl sub_8073704
-_080734B8:
- cmp r5, 0x1
- bne _080734C4
- lsrs r0, r4, 19
- movs r1, 0x1
- bl sub_8073704
-_080734C4:
- cmp r5, 0x2
- bne _080734D0
- lsrs r0, r4, 19
- movs r1, 0x2
- bl sub_8073704
-_080734D0:
- cmp r5, 0x3
- bne _080734DC
- lsrs r0, r4, 19
- movs r1, 0x3
- bl sub_8073704
-_080734DC:
- cmp r5, 0x4
- bne _080734E8
- lsrs r0, r4, 19
- movs r1, 0x4
- bl sub_8073704
-_080734E8:
- cmp r5, 0x5
- bne _080734F4
- lsrs r0, r4, 19
- movs r1, 0x5
- bl sub_8073704
-_080734F4:
- cmp r5, 0x6
- bne _08073500
- lsrs r0, r4, 19
- movs r1, 0x6
- bl sub_8073704
-_08073500:
- cmp r5, 0x7
- bne _0807350C
- lsrs r0, r4, 19
- movs r1, 0x7
- bl sub_8073704
-_0807350C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80734A0
-
- thumb_func_start sub_8073514
-sub_8073514: @ 8073514
- push {r4,r5,lr}
- lsls r4, r0, 16
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r4
- lsrs r5, r0, 16
- cmp r5, 0
- bne _0807352E
- lsrs r0, r4, 20
- lsls r0, 24
- lsrs r0, 24
- bl sub_8073644
-_0807352E:
- cmp r5, 0x1
- bne _08073538
- lsrs r0, r4, 20
- bl sub_8073808
-_08073538:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8073514
-
- thumb_func_start sub_8073540
-sub_8073540: @ 8073540
- push {r4,r5,lr}
- lsls r4, r0, 16
- movs r0, 0xE0
- lsls r0, 11
- ands r0, r4
- lsrs r5, r0, 16
- cmp r5, 0
- bne _08073558
- lsrs r0, r4, 19
- movs r1, 0
- bl sub_8073830
-_08073558:
- cmp r5, 0x1
- bne _08073564
- lsrs r0, r4, 19
- movs r1, 0x1
- bl sub_8073830
-_08073564:
- cmp r5, 0x2
- bne _08073570
- lsrs r0, r4, 19
- movs r1, 0x2
- bl sub_8073830
-_08073570:
- cmp r5, 0x3
- bne _0807357C
- lsrs r0, r4, 19
- movs r1, 0x3
- bl sub_8073830
-_0807357C:
- cmp r5, 0x4
- bne _08073588
- lsrs r0, r4, 19
- movs r1, 0x4
- bl sub_8073830
-_08073588:
- cmp r5, 0x5
- bne _08073594
- lsrs r0, r4, 19
- movs r1, 0x5
- bl sub_8073830
-_08073594:
- cmp r5, 0x6
- bne _080735A0
- lsrs r0, r4, 19
- movs r1, 0x6
- bl sub_8073830
-_080735A0:
- cmp r5, 0x7
- bne _080735AC
- lsrs r0, r4, 19
- movs r1, 0x7
- bl sub_8073830
-_080735AC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8073540
-
- thumb_func_start sub_80735B4
-sub_80735B4: @ 80735B4
- push {r4,r5,lr}
- lsls r4, r0, 16
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r4
- lsrs r5, r0, 16
- cmp r5, 0
- bne _080735CE
- lsrs r0, r4, 20
- lsls r0, 24
- lsrs r0, 24
- bl sub_807368C
-_080735CE:
- cmp r5, 0x1
- bne _080735DC
- lsrs r0, r4, 20
- lsls r0, 24
- lsrs r0, 24
- bl sub_80736DC
-_080735DC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80735B4
-
- thumb_func_start sub_80735E4
-sub_80735E4: @ 80735E4
- push {lr}
- lsls r1, r0, 16
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r1
- cmp r0, 0
- bne _080735FC
- lsrs r0, r1, 20
- lsls r0, 24
- lsrs r0, 24
- bl sub_80736B4
-_080735FC:
- pop {r0}
- bx r0
- thumb_func_end sub_80735E4
-
- thumb_func_start sub_8073600
-sub_8073600: @ 8073600
- push {lr}
- lsls r1, r0, 16
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r1
- lsrs r0, 16
- cmp r0, 0x1
- bne _08073616
- lsrs r0, r1, 20
- bl sub_8073868
-_08073616:
- pop {r0}
- bx r0
- thumb_func_end sub_8073600
-
- thumb_func_start sub_807361C
-sub_807361C: @ 807361C
- push {lr}
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- ldr r0, _0807363C @ =gTilesetAnimTable_General_4
- lsrs r1, 14
- adds r1, r0
- ldr r0, [r1]
- ldr r1, _08073640 @ =0x06003c00
- movs r2, 0xA0
- lsls r2, 1
- bl sub_8072E24
- pop {r0}
- bx r0
- .align 2, 0
-_0807363C: .4byte gTilesetAnimTable_General_4
-_08073640: .4byte 0x06003c00
- thumb_func_end sub_807361C
-
- thumb_func_start sub_8073644
-sub_8073644: @ 8073644
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x3
- ands r0, r4
- ldr r5, _08073680 @ =gTilesetAnimTable_Lavaridge
- lsls r0, 2
- adds r0, r5
- ldr r0, [r0]
- ldr r1, _08073684 @ =0x06006400
- movs r2, 0x80
- bl sub_8072E24
- adds r1, r4, 0x2
- adds r0, r1, 0
- asrs r0, 2
- lsls r0, 2
- subs r0, r1, r0
- lsls r0, 24
- lsrs r0, 22
- adds r0, r5
- ldr r0, [r0]
- ldr r1, _08073688 @ =0x06006480
- movs r2, 0x80
- bl sub_8072E24
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08073680: .4byte gTilesetAnimTable_Lavaridge
-_08073684: .4byte 0x06006400
-_08073688: .4byte 0x06006480
- thumb_func_end sub_8073644
-
- thumb_func_start sub_807368C
-sub_807368C: @ 807368C
- push {lr}
- lsls r0, 24
- movs r1, 0xC0
- lsls r1, 18
- ands r1, r0
- ldr r0, _080736AC @ =gTilesetAnimTable_Pacifidlog_0
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- ldr r1, _080736B0 @ =0x06007a00
- movs r2, 0xF0
- lsls r2, 2
- bl sub_8072E24
- pop {r0}
- bx r0
- .align 2, 0
-_080736AC: .4byte gTilesetAnimTable_Pacifidlog_0
-_080736B0: .4byte 0x06007a00
- thumb_func_end sub_807368C
-
- thumb_func_start sub_80736B4
-sub_80736B4: @ 80736B4
- push {lr}
- lsls r0, 24
- movs r1, 0xC0
- lsls r1, 18
- ands r1, r0
- ldr r0, _080736D4 @ =gTilesetAnimTable_Underwater
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- ldr r1, _080736D8 @ =0x06007e00
- movs r2, 0x80
- bl sub_8072E24
- pop {r0}
- bx r0
- .align 2, 0
-_080736D4: .4byte gTilesetAnimTable_Underwater
-_080736D8: .4byte 0x06007e00
- thumb_func_end sub_80736B4
-
- thumb_func_start sub_80736DC
-sub_80736DC: @ 80736DC
- push {lr}
- lsls r0, 24
- movs r1, 0xE0
- lsls r1, 19
- ands r1, r0
- ldr r0, _080736FC @ =gTilesetAnimTable_Pacifidlog_1
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- ldr r1, _08073700 @ =0x06007e00
- movs r2, 0x80
- lsls r2, 1
- bl sub_8072E24
- pop {r0}
- bx r0
- .align 2, 0
-_080736FC: .4byte gTilesetAnimTable_Pacifidlog_1
-_08073700: .4byte 0x06007e00
- thumb_func_end sub_80736DC
-
- thumb_func_start sub_8073704
-sub_8073704: @ 8073704
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 24
- lsrs r6, r1, 24
- subs r0, r5, r6
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xB
- bhi _08073760
- adds r0, r5, 0
- movs r1, 0xC
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 16
- ldr r0, _08073750 @ =gTilesetAnimTable_Mauville_0A
- lsrs r4, 14
- adds r0, r4, r0
- ldr r0, [r0]
- ldr r1, _08073754 @ =gUnknown_0837BAE4
- lsls r5, r6, 2
- adds r1, r5, r1
- ldr r1, [r1]
- movs r2, 0x80
- bl sub_8072E24
- ldr r0, _08073758 @ =gTilesetAnimTable_Mauville_1A
- adds r4, r0
- ldr r0, [r4]
- ldr r1, _0807375C @ =gUnknown_0837BB04
- adds r5, r1
- ldr r1, [r5]
- movs r2, 0x80
- bl sub_8072E24
- b _0807378C
- .align 2, 0
-_08073750: .4byte gTilesetAnimTable_Mauville_0A
-_08073754: .4byte gUnknown_0837BAE4
-_08073758: .4byte gTilesetAnimTable_Mauville_1A
-_0807375C: .4byte gUnknown_0837BB04
-_08073760:
- movs r0, 0x3
- ands r5, r0
- ldr r0, _08073794 @ =gTilesetAnimTable_Mauville_0B
- lsls r5, 2
- adds r0, r5, r0
- ldr r0, [r0]
- ldr r1, _08073798 @ =gUnknown_0837BAE4
- lsls r4, r6, 2
- adds r1, r4, r1
- ldr r1, [r1]
- movs r2, 0x80
- bl sub_8072E24
- ldr r0, _0807379C @ =gTilesetAnimTable_Mauville_1B
- adds r5, r0
- ldr r0, [r5]
- ldr r1, _080737A0 @ =gUnknown_0837BB04
- adds r4, r1
- ldr r1, [r4]
- movs r2, 0x80
- bl sub_8072E24
-_0807378C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08073794: .4byte gTilesetAnimTable_Mauville_0B
-_08073798: .4byte gUnknown_0837BAE4
-_0807379C: .4byte gTilesetAnimTable_Mauville_1B
-_080737A0: .4byte gUnknown_0837BB04
- thumb_func_end sub_8073704
-
- thumb_func_start sub_80737A4
-sub_80737A4: @ 80737A4
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r3, r1, 24
- subs r0, r3
- lsls r0, 16
- movs r1, 0xE0
- lsls r1, 11
- ands r1, r0
- ldr r0, _080737D8 @ =gTilesetAnimTable_Rustboro_0
- lsrs r1, 14
- adds r1, r0
- ldr r2, [r1]
- cmp r2, 0
- beq _080737D4
- ldr r0, _080737DC @ =gUnknown_0837BFA4
- lsls r1, r3, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r2, 0
- movs r2, 0x80
- bl sub_8072E24
-_080737D4:
- pop {r0}
- bx r0
- .align 2, 0
-_080737D8: .4byte gTilesetAnimTable_Rustboro_0
-_080737DC: .4byte gUnknown_0837BFA4
- thumb_func_end sub_80737A4
-
- thumb_func_start sub_80737E0
-sub_80737E0: @ 80737E0
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- ldr r1, _08073800 @ =gTilesetAnimTable_Rustboro_1
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08073804 @ =0x06007800
- movs r2, 0x80
- bl sub_8072E24
- pop {r0}
- bx r0
- .align 2, 0
-_08073800: .4byte gTilesetAnimTable_Rustboro_1
-_08073804: .4byte 0x06007800
- thumb_func_end sub_80737E0
-
- thumb_func_start sub_8073808
-sub_8073808: @ 8073808
- push {lr}
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- ldr r0, _08073828 @ =gTilesetAnimTable_Cave
- lsrs r1, 14
- adds r1, r0
- ldr r0, [r1]
- ldr r1, _0807382C @ =0x06005400
- movs r2, 0x80
- bl sub_8072E24
- pop {r0}
- bx r0
- .align 2, 0
-_08073828: .4byte gTilesetAnimTable_Cave
-_0807382C: .4byte 0x06005400
- thumb_func_end sub_8073808
-
- thumb_func_start sub_8073830
-sub_8073830: @ 8073830
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r1, 24
- subs r0, r1
- lsls r0, 16
- movs r2, 0xE0
- lsls r2, 11
- ands r2, r0
- ldr r0, _08073860 @ =gTilesetAnimTable_EverGrande
- lsrs r2, 14
- adds r2, r0
- ldr r0, [r2]
- ldr r2, _08073864 @ =gUnknown_0837C93C
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- movs r2, 0x80
- bl sub_8072E24
- pop {r0}
- bx r0
- .align 2, 0
-_08073860: .4byte gTilesetAnimTable_EverGrande
-_08073864: .4byte gUnknown_0837C93C
- thumb_func_end sub_8073830
-
- thumb_func_start sub_8073868
-sub_8073868: @ 8073868
- push {lr}
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- ldr r0, _08073888 @ =gTilesetAnimTable_Cave
- lsrs r1, 14
- adds r1, r0
- ldr r0, [r1]
- ldr r1, _0807388C @ =0x06007400
- movs r2, 0x80
- bl sub_8072E24
- pop {r0}
- bx r0
- .align 2, 0
-_08073888: .4byte gTilesetAnimTable_Cave
-_0807388C: .4byte 0x06007400
- thumb_func_end sub_8073868
-
- thumb_func_start sub_8073890
-sub_8073890: @ 8073890
- push {lr}
- lsls r2, r0, 16
- lsrs r0, r2, 16
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080738A4
- lsrs r0, r2, 17
- bl sub_80739C4
-_080738A4:
- pop {r0}
- bx r0
- thumb_func_end sub_8073890
-
- thumb_func_start sub_80738A8
-sub_80738A8: @ 80738A8
- push {lr}
- lsls r1, r0, 16
- movs r0, 0xE0
- lsls r0, 11
- ands r0, r1
- cmp r0, 0
- bne _080738BC
- lsrs r0, r1, 19
- bl sub_807392C
-_080738BC:
- pop {r0}
- bx r0
- thumb_func_end sub_80738A8
-
- thumb_func_start sub_80738C0
-sub_80738C0: @ 80738C0
- push {r4,r5,lr}
- lsls r4, r0, 16
- lsrs r0, r4, 16
- adds r5, r0, 0
- movs r0, 0x3F
- ands r0, r5
- cmp r0, 0
- bne _080738D6
- lsrs r0, r4, 22
- bl sub_807399C
-_080738D6:
- movs r0, 0x7
- ands r0, r5
- cmp r0, 0x1
- bne _080738E4
- lsrs r0, r4, 19
- bl sub_8073974
-_080738E4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80738C0
-
- thumb_func_start sub_80738EC
-sub_80738EC: @ 80738EC
- push {lr}
- lsls r1, r0, 16
- movs r0, 0xC0
- lsls r0, 10
- ands r0, r1
- cmp r0, 0
- bne _08073900
- lsrs r0, r1, 18
- bl sub_80739EC
-_08073900:
- pop {r0}
- bx r0
- thumb_func_end sub_80738EC
-
- thumb_func_start sub_8073904
-sub_8073904: @ 8073904
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- ldr r1, _08073924 @ =gTilesetAnimTable_Building
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08073928 @ =0x06003e00
- movs r2, 0x80
- bl sub_8072E24
- pop {r0}
- bx r0
- .align 2, 0
-_08073924: .4byte gTilesetAnimTable_Building
-_08073928: .4byte 0x06003e00
- thumb_func_end sub_8073904
-
- thumb_func_start sub_807392C
-sub_807392C: @ 807392C
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 16
- ldr r0, _08073964 @ =gTilesetAnimTable_SootopolisGym_0
- lsrs r4, 14
- adds r0, r4, r0
- ldr r0, [r0]
- ldr r1, _08073968 @ =0x06007e00
- movs r2, 0xC0
- lsls r2, 1
- bl sub_8072E24
- ldr r0, _0807396C @ =gTilesetAnimTable_SootopolisGym_1
- adds r4, r0
- ldr r0, [r4]
- ldr r1, _08073970 @ =0x06007a00
- movs r2, 0xA0
- lsls r2, 2
- bl sub_8072E24
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08073964: .4byte gTilesetAnimTable_SootopolisGym_0
-_08073968: .4byte 0x06007e00
-_0807396C: .4byte gTilesetAnimTable_SootopolisGym_1
-_08073970: .4byte 0x06007a00
- thumb_func_end sub_807392C
-
- thumb_func_start sub_8073974
-sub_8073974: @ 8073974
- push {lr}
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- ldr r0, _08073994 @ =gTilesetAnimTable_EliteFour_0
- lsrs r1, 14
- adds r1, r0
- ldr r0, [r1]
- ldr r1, _08073998 @ =0x06007f00
- movs r2, 0x20
- bl sub_8072E24
- pop {r0}
- bx r0
- .align 2, 0
-_08073994: .4byte gTilesetAnimTable_EliteFour_0
-_08073998: .4byte 0x06007f00
- thumb_func_end sub_8073974
-
- thumb_func_start sub_807399C
-sub_807399C: @ 807399C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- ldr r1, _080739BC @ =gTilesetAnimTable_EliteFour_1
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080739C0 @ =0x06007c00
- movs r2, 0x80
- bl sub_8072E24
- pop {r0}
- bx r0
- .align 2, 0
-_080739BC: .4byte gTilesetAnimTable_EliteFour_1
-_080739C0: .4byte 0x06007c00
- thumb_func_end sub_807399C
-
- thumb_func_start sub_80739C4
-sub_80739C4: @ 80739C4
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- ldr r1, _080739E4 @ =gTilesetAnimTable_MauvilleGym
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080739E8 @ =0x06005200
- movs r2, 0x80
- lsls r2, 2
- bl sub_8072E24
- pop {r0}
- bx r0
- .align 2, 0
-_080739E4: .4byte gTilesetAnimTable_MauvilleGym
-_080739E8: .4byte 0x06005200
- thumb_func_end sub_80739C4
-
- thumb_func_start sub_80739EC
-sub_80739EC: @ 80739EC
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- ldr r1, _08073A0C @ =gTilesetAnimTable_BikeShop
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08073A10 @ =0x06007e00
- movs r2, 0x90
- lsls r2, 1
- bl sub_8072E24
- pop {r0}
- bx r0
- .align 2, 0
-_08073A0C: .4byte gTilesetAnimTable_BikeShop
-_08073A10: .4byte 0x06007e00
- thumb_func_end sub_80739EC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/title_screen.s b/asm/title_screen.s
deleted file mode 100644
index cf3960429..000000000
--- a/asm/title_screen.s
+++ /dev/null
@@ -1,1270 +0,0 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
-
- .syntax unified
-
- .text
-
- thumb_func_start item_menu_type_2
-item_menu_type_2: @ 807BE00
- push {r4,lr}
- adds r2, r0, 0
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _0807BE34 @ =gTasks
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0807BE38
- ldrb r1, [r2, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1]
- movs r0, 0x42
- strh r0, [r2, 0x22]
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x47
- ands r0, r1
- strb r0, [r2]
- b _0807BE80
- .align 2, 0
-_0807BE34: .4byte gTasks
-_0807BE38:
- ldrh r1, [r4, 0x12]
- movs r3, 0x12
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0807BE46
- subs r0, r1, 0x1
- strh r0, [r4, 0x12]
-_0807BE46:
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x3F
- bgt _0807BE80
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r3]
- ldrh r1, [r2, 0x22]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- cmp r0, 0x42
- beq _0807BE6A
- adds r0, r1, 0x1
- strh r0, [r2, 0x22]
-_0807BE6A:
- ldr r3, _0807BE88 @ =REG_BLDALPHA
- ldr r2, _0807BE8C @ =gUnknown_08393E64
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r3]
-_0807BE80:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BE88: .4byte REG_BLDALPHA
-_0807BE8C: .4byte gUnknown_08393E64
- thumb_func_end item_menu_type_2
-
- thumb_func_start sub_807BE90
-sub_807BE90: @ 807BE90
- push {lr}
- adds r2, r0, 0
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _0807BEC4 @ =gTasks
- adds r1, r0, r1
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0807BEC8
- ldrb r1, [r2, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1]
- movs r0, 0x42
- strh r0, [r2, 0x22]
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x47
- ands r0, r1
- strb r0, [r2]
- b _0807BEEC
- .align 2, 0
-_0807BEC4: .4byte gTasks
-_0807BEC8:
- movs r3, 0x12
- ldrsh r0, [r1, r3]
- cmp r0, 0x3F
- bgt _0807BEEC
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r3]
- ldrh r1, [r2, 0x22]
- movs r3, 0x22
- ldrsh r0, [r2, r3]
- cmp r0, 0x42
- beq _0807BEEC
- adds r0, r1, 0x1
- strh r0, [r2, 0x22]
-_0807BEEC:
- pop {r0}
- bx r0
- thumb_func_end sub_807BE90
-
- thumb_func_start sub_807BEF0
-sub_807BEF0: @ 807BEF0
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _0807BF18
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0807BF18
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0807BF24
-_0807BF18:
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0807BF24:
- pop {r0}
- bx r0
- thumb_func_end sub_807BEF0
-
- thumb_func_start sub_807BF28
-sub_807BF28: @ 807BF28
- push {r4-r7,lr}
- lsls r0, 16
- ldr r2, _0807BF78 @ =0xffe00000
- adds r0, r2
- lsrs r0, 16
- movs r6, 0
- lsls r7, r1, 16
-_0807BF36:
- lsls r5, r0, 16
- asrs r5, 16
- ldr r0, _0807BF7C @ =gSpriteTemplate_8393F74
- adds r1, r5, 0
- asrs r2, r7, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0807BF80 @ =gSprites
- adds r4, r0
- adds r0, r4, 0
- adds r1, r6, 0
- bl StartSpriteAnim
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r5, 0x20
- lsls r5, 16
- lsrs r0, r5, 16
- cmp r6, 0x2
- bls _0807BF36
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BF78: .4byte 0xffe00000
-_0807BF7C: .4byte gSpriteTemplate_8393F74
-_0807BF80: .4byte gSprites
- thumb_func_end sub_807BF28
-
- thumb_func_start sub_807BF84
-sub_807BF84: @ 807BF84
- push {r4-r6,lr}
- lsls r0, 16
- ldr r2, _0807BFD4 @ =0xffc00000
- adds r0, r2
- lsrs r0, 16
- movs r5, 0
- lsls r6, r1, 16
-_0807BF92:
- lsls r4, r0, 16
- asrs r4, 16
- ldr r0, _0807BFD8 @ =gSpriteTemplate_8393F74
- adds r1, r4, 0
- asrs r2, r6, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _0807BFDC @ =gSprites
- adds r2, r0
- adds r1, r5, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl StartSpriteAnim
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, 0x20
- lsls r4, 16
- lsrs r0, r4, 16
- cmp r5, 0x4
- bls _0807BF92
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807BFD4: .4byte 0xffc00000
-_0807BFD8: .4byte gSpriteTemplate_8393F74
-_0807BFDC: .4byte gSprites
- thumb_func_end sub_807BF84
-
- thumb_func_start sub_807BFE0
-sub_807BFE0: @ 807BFE0
- push {r4,lr}
- adds r3, r0, 0
- ldr r2, _0807C02C @ =gTasks
- ldr r0, _0807C030 @ =gUnknown_0202F7E4
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0807C070
- movs r2, 0x20
- ldrsh r1, [r3, r2]
- ldr r0, _0807C034 @ =0x0000010f
- ldrh r4, [r3, 0x20]
- cmp r1, r0
- bgt _0807C070
- movs r2, 0x2E
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _0807C064
- cmp r1, 0x77
- bgt _0807C038
- ldrh r1, [r3, 0x30]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0x1E
- bgt _0807C050
- adds r1, 0x1
- strh r1, [r3, 0x30]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x1E
- bgt _0807C050
- adds r0, r1, 0x1
- b _0807C04E
- .align 2, 0
-_0807C02C: .4byte gTasks
-_0807C030: .4byte gUnknown_0202F7E4
-_0807C034: .4byte 0x0000010f
-_0807C038:
- ldrh r1, [r3, 0x30]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _0807C050
- subs r0, r1, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- cmp r0, 0
- beq _0807C050
- subs r0, r1, 0x2
-_0807C04E:
- strh r0, [r3, 0x30]
-_0807C050:
- ldrh r1, [r3, 0x30]
- movs r0, 0x1F
- ands r0, r1
- lsls r1, r0, 10
- lsls r2, r0, 5
- adds r1, r2
- orrs r1, r0
- ldr r0, _0807C06C @ =gPlttBufferFaded
- strh r1, [r0]
- .ifdef SAPPHIRE
- strh r1, [r0, 0x34]
- .else
- strh r1, [r0, 0x2A]
- .endif
-_0807C064:
- adds r0, r4, 0x4
- strh r0, [r3, 0x20]
- b _0807C07E
- .align 2, 0
-_0807C06C: .4byte gPlttBufferFaded
-_0807C070:
- ldr r1, _0807C084 @ =gPlttBufferFaded
- movs r0, 0
- strh r0, [r1]
- .ifdef SAPPHIRE
- strh r0, [r1, 0x34]
- .else
- strh r0, [r1, 0x2A]
- .endif
- adds r0, r3, 0
- bl DestroySprite
-_0807C07E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C084: .4byte gPlttBufferFaded
- thumb_func_end sub_807BFE0
-
- thumb_func_start sub_807C088
-sub_807C088: @ 807C088
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0807C0C0 @ =gSpriteTemplate_8393FC0
- movs r1, 0
- movs r2, 0x44
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807C0C4 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x8
- orrs r0, r2
- strb r0, [r1, 0x1]
- strh r4, [r1, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C0C0: .4byte gSpriteTemplate_8393FC0
-_0807C0C4: .4byte gSprites
- thumb_func_end sub_807C088
-
- thumb_func_start sub_807C0C8
-sub_807C0C8: @ 807C0C8
- push {lr}
- bl sub_8089668
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r0, _0807C0E8 @ =REG_BG1VOFS
- ldr r1, _0807C0EC @ =gUnknown_030041B4
- ldrh r1, [r1]
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0807C0E8: .4byte REG_BG1VOFS
-_0807C0EC: .4byte gUnknown_030041B4
- thumb_func_end sub_807C0C8
-
- thumb_func_start CB2_InitTitleScreen
-CB2_InitTitleScreen: @ 807C0F0
- push {r4,r5,lr}
- sub sp, 0x14
- ldr r0, _0807C10C @ =gMain
- ldr r1, _0807C110 @ =0x0000043c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _0807C130
- lsls r0, 2
- ldr r1, _0807C114 @ =_0807C118
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0807C10C: .4byte gMain
-_0807C110: .4byte 0x0000043c
-_0807C114: .4byte _0807C118
- .align 2, 0
-_0807C118:
- .4byte _0807C130
- .4byte _0807C1E4
- .4byte _0807C2B8
- .4byte _0807C308
- .4byte _0807C33C
- .4byte _0807C418
-_0807C130:
- movs r0, 0
- bl SetVBlankCallback
- ldr r0, _0807C1C0 @ =REG_BLDCNT
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- movs r2, 0xA0
- lsls r2, 19
- ldr r3, _0807C1C4 @ =0x00007fff
- adds r0, r3, 0
- strh r0, [r2]
- movs r0, 0x80
- lsls r0, 19
- strh r1, [r0]
- adds r0, 0xC
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x10
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x6
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- add r0, sp, 0xC
- strh r1, [r0]
- ldr r1, _0807C1C8 @ =0x040000d4
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _0807C1CC @ =0x8100c000
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0
- str r2, [sp, 0x10]
- add r0, sp, 0x10
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _0807C1D0 @ =0x85000100
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0xC
- strh r2, [r0]
- str r0, [r1]
- ldr r0, _0807C1D4 @ =0x05000002
- str r0, [r1, 0x4]
- ldr r0, _0807C1D8 @ =0x810001ff
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- ldr r0, _0807C1DC @ =gMain
- ldr r1, _0807C1E0 @ =0x0000043c
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- b _0807C446
- .align 2, 0
-_0807C1C0: .4byte REG_BLDCNT
-_0807C1C4: .4byte 0x00007fff
-_0807C1C8: .4byte 0x040000d4
-_0807C1CC: .4byte 0x8100c000
-_0807C1D0: .4byte 0x85000100
-_0807C1D4: .4byte 0x05000002
-_0807C1D8: .4byte 0x810001ff
-_0807C1DC: .4byte gMain
-_0807C1E0: .4byte 0x0000043c
-_0807C1E4:
- ldr r0, _0807C270 @ =gUnknown_08E9D8CC
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _0807C274 @ =gUnknown_08E9F7E4
- ldr r1, _0807C278 @ =0x06004800
- bl LZ77UnCompVram
- ldr r4, _0807C27C @ =gUnknown_08E9F624
- movs r5, 0xE0
- lsls r5, 1
- adds r0, r4, 0
- movs r1, 0
- adds r2, r5, 0
- bl LoadPalette
- ldr r0, _0807C280 @ =gUnknown_08393250
- ldr r1, _0807C284 @ =0x06008000
- bl LZ77UnCompVram
- ldr r0, _0807C288 @ =gUnknown_083939EC
- ldr r1, _0807C28C @ =0x0600c000
- bl LZ77UnCompVram
- ldr r0, _0807C290 @ =gUnknown_08393BF8
- ldr r1, _0807C294 @ =0x0600c800
- bl LZ77UnCompVram
- ldr r0, _0807C298 @ =gUnknown_08393210
- movs r1, 0xE0
- movs r2, 0x40
- bl LoadPalette
- bl remove_some_task
- bl ResetTasks
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _0807C29C @ =gReservedSpritePaletteCount
- movs r0, 0xE
- strb r0, [r1]
- ldr r0, _0807C2A0 @ =gUnknown_08393EFC
- bl LoadCompressedObjectPic
- ldr r0, _0807C2A4 @ =gUnknown_08393F8C
- bl LoadCompressedObjectPic
- ldr r0, _0807C2A8 @ =gUnknown_08393FD8
- bl LoadCompressedObjectPic
- movs r1, 0x80
- lsls r1, 1
- adds r0, r4, 0
- adds r2, r5, 0
- bl LoadPalette
- ldr r0, _0807C2AC @ =gUnknown_08393F9C
- bl LoadSpritePalette
- ldr r0, _0807C2B0 @ =gMain
- ldr r2, _0807C2B4 @ =0x0000043c
- adds r0, r2
- movs r1, 0x2
- strb r1, [r0]
- b _0807C446
- .align 2, 0
-_0807C270: .4byte gUnknown_08E9D8CC
-_0807C274: .4byte gUnknown_08E9F7E4
-_0807C278: .4byte 0x06004800
-_0807C27C: .4byte gUnknown_08E9F624
-_0807C280: .4byte gUnknown_08393250
-_0807C284: .4byte 0x06008000
-_0807C288: .4byte gUnknown_083939EC
-_0807C28C: .4byte 0x0600c000
-_0807C290: .4byte gUnknown_08393BF8
-_0807C294: .4byte 0x0600c800
-_0807C298: .4byte gUnknown_08393210
-_0807C29C: .4byte gReservedSpritePaletteCount
-_0807C2A0: .4byte gUnknown_08393EFC
-_0807C2A4: .4byte gUnknown_08393F8C
-_0807C2A8: .4byte gUnknown_08393FD8
-_0807C2AC: .4byte gUnknown_08393F9C
-_0807C2B0: .4byte gMain
-_0807C2B4: .4byte 0x0000043c
-_0807C2B8:
- ldr r0, _0807C2F0 @ =sub_807C46C
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0807C2F4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r3, 0
- movs r2, 0x80
- lsls r2, 1
- strh r2, [r1, 0x8]
- strh r3, [r1, 0xA]
- ldr r2, _0807C2F8 @ =0x0000fff0
- strh r2, [r1, 0xC]
- subs r2, 0x10
- strh r2, [r1, 0xE]
- ldr r1, _0807C2FC @ =gUnknown_0202F7E4
- strb r0, [r1]
- ldr r0, _0807C300 @ =gMain
- ldr r3, _0807C304 @ =0x0000043c
- adds r0, r3
- movs r1, 0x3
- strb r1, [r0]
- b _0807C446
- .align 2, 0
-_0807C2F0: .4byte sub_807C46C
-_0807C2F4: .4byte gTasks
-_0807C2F8: .4byte 0x0000fff0
-_0807C2FC: .4byte gUnknown_0202F7E4
-_0807C300: .4byte gMain
-_0807C304: .4byte 0x0000043c
-_0807C308:
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0807C32C @ =0x0000ffff
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _0807C330 @ =sub_807C0C8
- bl SetVBlankCallback
- ldr r0, _0807C334 @ =gMain
- ldr r1, _0807C338 @ =0x0000043c
- adds r0, r1
- movs r1, 0x4
- strb r1, [r0]
- b _0807C446
- .align 2, 0
-_0807C32C: .4byte 0x0000ffff
-_0807C330: .4byte sub_807C0C8
-_0807C334: .4byte gMain
-_0807C338: .4byte 0x0000043c
-_0807C33C:
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x78
- movs r1, 0x50
- movs r3, 0
- bl sub_813CE30
- ldr r1, _0807C3D4 @ =REG_BG2X_L
- ldr r0, _0807C3D8 @ =0xffffe300
- str r0, [r1]
- adds r1, 0x4
- ldr r0, _0807C3DC @ =0xffffdf00
- str r0, [r1]
- ldr r0, _0807C3E0 @ =REG_WIN0H
- movs r4, 0
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- subs r0, 0x2
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- adds r1, 0x1C
- ldr r2, _0807C3E4 @ =0x00001f1f
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _0807C3E8 @ =0x00003f1f
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x6
- movs r0, 0x84
- strh r0, [r1]
- ldr r0, _0807C3EC @ =REG_BLDALPHA
- strh r4, [r0]
- adds r0, 0x2
- movs r5, 0x8
- strh r5, [r0]
- subs r1, 0x48
- ldr r2, _0807C3F0 @ =0x0000180b
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _0807C3F4 @ =0x0000190a
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0807C3F8 @ =0x00004981
- adds r0, r2, 0
- strh r0, [r1]
- ldr r3, _0807C3FC @ =0x04000208
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _0807C400 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r1, _0807C404 @ =REG_DISPSTAT
- ldrh r0, [r1]
- orrs r0, r5
- strh r0, [r1]
- subs r1, 0x4
- ldr r3, _0807C408 @ =0x0000b441
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _0807C40C @ =0x0000019d
- bl m4aSongNumStart
- ldr r0, _0807C410 @ =gMain
- ldr r1, _0807C414 @ =0x0000043c
- adds r0, r1
- movs r1, 0x5
- strb r1, [r0]
- b _0807C446
- .align 2, 0
-_0807C3D4: .4byte REG_BG2X_L
-_0807C3D8: .4byte 0xffffe300
-_0807C3DC: .4byte 0xffffdf00
-_0807C3E0: .4byte REG_WIN0H
-_0807C3E4: .4byte 0x00001f1f
-_0807C3E8: .4byte 0x00003f1f
-_0807C3EC: .4byte REG_BLDALPHA
-_0807C3F0: .4byte 0x0000180b
-_0807C3F4: .4byte 0x0000190a
-_0807C3F8: .4byte 0x00004981
-_0807C3FC: .4byte 0x04000208
-_0807C400: .4byte 0x04000200
-_0807C404: .4byte REG_DISPSTAT
-_0807C408: .4byte 0x0000b441
-_0807C40C: .4byte 0x0000019d
-_0807C410: .4byte gMain
-_0807C414: .4byte 0x0000043c
-_0807C418:
- bl UpdatePaletteFade
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0807C446
- movs r0, 0
- bl sub_807C088
- str r4, [sp]
- movs r0, 0x4
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0
- movs r1, 0xA0
- movs r2, 0x4
- movs r3, 0x4
- bl sub_8089944
- ldr r0, _0807C450 @ =sub_807C454
- bl SetMainCallback2
-_0807C446:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C450: .4byte sub_807C454
- thumb_func_end CB2_InitTitleScreen
-
- thumb_func_start sub_807C454
-sub_807C454: @ 807C454
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_807C454
-
- thumb_func_start sub_807C46C
-sub_807C46C: @ 807C46C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0807C4D4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF
- ands r0, r1
- ldr r5, _0807C4D8 @ =gTasks
- cmp r0, 0
- bne _0807C492
- lsls r0, r6, 2
- adds r1, r0, r6
- lsls r1, 3
- adds r1, r5
- movs r2, 0xA
- ldrsh r1, [r1, r2]
- adds r4, r0, 0
- cmp r1, 0
- beq _0807C4A4
-_0807C492:
- lsls r3, r6, 2
- adds r0, r3, r6
- lsls r0, 3
- adds r0, r5
- movs r2, 0
- movs r1, 0x1
- strh r1, [r0, 0xA]
- strh r2, [r0, 0x8]
- adds r4, r3, 0
-_0807C4A4:
- adds r0, r4, r6
- lsls r0, 3
- adds r7, r0, r5
- movs r3, 0x8
- ldrsh r2, [r7, r3]
- cmp r2, 0
- beq _0807C4DC
- ldrh r0, [r7, 0x8]
- cmp r0, 0xA0
- beq _0807C4BC
- cmp r0, 0x40
- bne _0807C4C2
-_0807C4BC:
- movs r0, 0x1
- bl sub_807C088
-_0807C4C2:
- ldr r0, _0807C4D8 @ =gTasks
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- subs r0, 0x1
- strh r0, [r1, 0x8]
- b _0807C558
- .align 2, 0
-_0807C4D4: .4byte gMain
-_0807C4D8: .4byte gTasks
-_0807C4DC:
- movs r1, 0x80
- lsls r1, 19
- ldr r3, _0807C560 @ =0x00001441
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _0807C564 @ =REG_WININ
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r1, 0x50
- ldr r3, _0807C568 @ =0x00003f50
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1F
- strh r0, [r1]
- ldr r0, _0807C56C @ =REG_BLDY
- strh r2, [r0]
- ldr r0, _0807C570 @ =gSpriteTemplate_8393ECC
- movs r1, 0x62
- movs r2, 0x1A
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0807C574 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r2, r1, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r4, 0x4
- orrs r0, r4
- strb r0, [r2]
- strh r6, [r1, 0x30]
- ldr r0, _0807C578 @ =gSpriteTemplate_8393EE4
- movs r1, 0xA2
- movs r2, 0x1A
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r2, r1, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- orrs r0, r4
- strb r0, [r2]
- strh r6, [r1, 0x30]
- movs r0, 0x58
- strh r0, [r7, 0x12]
- movs r0, 0x90
- strh r0, [r7, 0x8]
- ldr r0, _0807C57C @ =sub_807C580
- str r0, [r7]
-_0807C558:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C560: .4byte 0x00001441
-_0807C564: .4byte REG_WININ
-_0807C568: .4byte 0x00003f50
-_0807C56C: .4byte REG_BLDY
-_0807C570: .4byte gSpriteTemplate_8393ECC
-_0807C574: .4byte gSprites
-_0807C578: .4byte gSpriteTemplate_8393EE4
-_0807C57C: .4byte sub_807C580
- thumb_func_end sub_807C46C
-
- thumb_func_start sub_807C580
-sub_807C580: @ 807C580
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0807C5D0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF
- ands r0, r1
- ldr r2, _0807C5D4 @ =gTasks
- cmp r0, 0
- bne _0807C5A6
- lsls r0, r5, 2
- adds r1, r0, r5
- lsls r1, 3
- adds r1, r2
- movs r3, 0xA
- ldrsh r1, [r1, r3]
- adds r7, r0, 0
- cmp r1, 0
- beq _0807C5B8
-_0807C5A6:
- lsls r3, r5, 2
- adds r0, r3, r5
- lsls r0, 3
- adds r0, r2
- movs r2, 0
- movs r1, 0x1
- strh r1, [r0, 0xA]
- strh r2, [r0, 0x8]
- adds r7, r3, 0
-_0807C5B8:
- ldr r1, _0807C5D4 @ =gTasks
- adds r0, r7, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x8]
- movs r1, 0x8
- ldrsh r6, [r4, r1]
- cmp r6, 0
- beq _0807C5D8
- subs r0, 0x1
- strh r0, [r4, 0x8]
- b _0807C5FC
- .align 2, 0
-_0807C5D0: .4byte gMain
-_0807C5D4: .4byte gTasks
-_0807C5D8:
- movs r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _0807C634 @ =0x00001741
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0x78
- movs r1, 0x6C
- bl sub_807BF28
- movs r0, 0x78
- movs r1, 0x94
- bl sub_807BF84
- strh r6, [r4, 0x10]
- ldr r0, _0807C638 @ =sub_807C644
- str r0, [r4]
-_0807C5FC:
- ldr r2, _0807C63C @ =gTasks
- adds r0, r7, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r1, [r3, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0807C61C
- ldrh r1, [r3, 0xE]
- movs r4, 0xE
- ldrsh r0, [r3, r4]
- cmp r0, 0
- beq _0807C61C
- adds r0, r1, 0x1
- strh r0, [r3, 0xE]
-_0807C61C:
- ldr r0, _0807C640 @ =REG_BG2Y_L
- adds r1, r7, r5
- lsls r1, 3
- adds r1, r2
- movs r2, 0xE
- ldrsh r1, [r1, r2]
- lsls r1, 8
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C634: .4byte 0x00001741
-_0807C638: .4byte sub_807C644
-_0807C63C: .4byte gTasks
-_0807C640: .4byte REG_BG2Y_L
- thumb_func_end sub_807C580
-
- thumb_func_start sub_807C644
-sub_807C644: @ 807C644
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0807C69C @ =REG_BLDCNT
- ldr r2, _0807C6A0 @ =0x00002142
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0807C6A4 @ =0x00001f0f
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0
- strh r0, [r1]
- ldr r4, _0807C6A8 @ =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0807C67A
- movs r0, 0x8
- ands r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _0807C6B4
-_0807C67A:
- movs r0, 0x4
- bl FadeOutBGM
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0807C6AC @ =0x0000ffff
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0807C6B0 @ =sub_807C774
- bl SetMainCallback2
- b _0807C74E
- .align 2, 0
-_0807C69C: .4byte REG_BLDCNT
-_0807C6A0: .4byte 0x00002142
-_0807C6A4: .4byte 0x00001f0f
-_0807C6A8: .4byte gMain
-_0807C6AC: .4byte 0x0000ffff
-_0807C6B0: .4byte CB2_GoToMainMenu
-_0807C6B4:
- ldrh r1, [r4, 0x2C]
- movs r0, 0x46
- ands r0, r1
- cmp r0, 0x46
- bne _0807C6C4
- ldr r0, _0807C6F4 @ =sub_807C7AC
- bl SetMainCallback2
-_0807C6C4:
- ldrh r1, [r4, 0x2C]
- movs r0, 0x26
- ands r0, r1
- cmp r0, 0x26
- bne _0807C6FC
- bl sub_80691DC
- cmp r0, 0x1
- bne _0807C6FC
- movs r0, 0x4
- bl FadeOutBGM
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0807C6F8 @ =sub_807C7C8
- bl SetMainCallback2
- b _0807C74E
- .align 2, 0
-_0807C6F4: .4byte CB2_GoToClearSaveDataScreen
-_0807C6F8: .4byte sub_807C7C8
-_0807C6FC:
- ldr r0, _0807C758 @ =REG_BG2Y_L
- movs r3, 0
- str r3, [r0]
- ldr r1, _0807C75C @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r2, r0, r1
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0807C728
- ldrh r0, [r2, 0x10]
- adds r0, 0x1
- strh r0, [r2, 0x10]
- ldr r1, _0807C760 @ =gUnknown_030041B4
- strh r0, [r1]
- ldr r0, _0807C764 @ =gUnknown_030042C0
- strh r3, [r0]
-_0807C728:
- ldrb r0, [r2, 0x8]
- bl sub_807C7E4
- ldr r0, _0807C768 @ =gMPlay_BGM
- ldr r1, _0807C76C @ =0x0000ffff
- ldrh r0, [r0, 0x4]
- cmp r0, 0
- bne _0807C74E
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0807C770 @ =sub_807C790
- bl SetMainCallback2
-_0807C74E:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0807C758: .4byte REG_BG2Y_L
-_0807C75C: .4byte gTasks
-_0807C760: .4byte gUnknown_030041B4
-_0807C764: .4byte gUnknown_030042C0
-_0807C768: .4byte gMPlay_BGM
-_0807C76C: .4byte 0x0000ffff
-_0807C770: .4byte sub_807C790
- thumb_func_end sub_807C644
-
- thumb_func_start CB2_GoToMainMenu
-CB2_GoToMainMenu: @ 807C774
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _0807C786
- ldr r0, _0807C78C @ =CB2_InitMainMenu
- bl SetMainCallback2
-_0807C786:
- pop {r0}
- bx r0
- .align 2, 0
-_0807C78C: .4byte CB2_InitMainMenu
- thumb_func_end CB2_GoToMainMenu
-
- thumb_func_start sub_807C790
-sub_807C790: @ 807C790
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _0807C7A2
- ldr r0, _0807C7A8 @ =sub_813BA88
- bl SetMainCallback2
-_0807C7A2:
- pop {r0}
- bx r0
- .align 2, 0
-_0807C7A8: .4byte sub_813BA88
- thumb_func_end sub_807C790
-
- thumb_func_start CB2_GoToClearSaveDataScreen
-CB2_GoToClearSaveDataScreen: @ 807C7AC
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _0807C7BE
- ldr r0, _0807C7C4 @ =c2_clear_save_data_screen_2
- bl SetMainCallback2
-_0807C7BE:
- pop {r0}
- bx r0
- .align 2, 0
-_0807C7C4: .4byte CB2_InitClearSaveDataScreen
- thumb_func_end CB2_GoToClearSaveDataScreen
-
- thumb_func_start sub_807C7C8
-sub_807C7C8: @ 807C7C8
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _0807C7DA
- ldr r0, _0807C7E0 @ =sub_806AAD8
- bl SetMainCallback2
-_0807C7DA:
- pop {r0}
- bx r0
- .align 2, 0
-_0807C7E0: .4byte sub_806AAD8
- thumb_func_end sub_807C7C8
-
- thumb_func_start sub_807C7E4
-sub_807C7E4: @ 807C7E4
- push {lr}
- sub sp, 0x4
- lsls r1, r0, 24
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r1
- cmp r0, 0
- bne _0807C820
- lsrs r0, r1, 26
- movs r1, 0x1F
- adds r2, r0, 0
- ands r2, r1
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0807C80C
- .ifdef SAPPHIRE
- mov r0, sp
- strh r2, [r0]
- .else
- lsls r1, r2, 10
- mov r0, sp
- strh r1, [r0]
- .endif
- b _0807C816
-_0807C80C:
- movs r0, 0x1F
- subs r0, r2
- .ifndef SAPPHIRE
- lsls r0, 10
- .endif
- mov r1, sp
- strh r0, [r1]
-_0807C816:
- mov r0, sp
- movs r1, 0xEF
- movs r2, 0x2
- bl LoadPalette
-_0807C820:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_807C7E4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/trade.s b/asm/trade.s
index 7896289d7..ae857d1c3 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -2009,7 +2009,7 @@ _08048DF8:
bne _08048E04
b _0804907C
_08048E04:
- bl GetBlockRecievedStatus
+ bl GetBlockReceivedStatus
lsls r0, 24
cmp r0, 0
bne _08048E18
@@ -2037,7 +2037,7 @@ _08048E32:
.align 2, 0
_08048E38: .4byte gUnknown_03004824
_08048E3C:
- bl GetBlockRecievedStatus
+ bl GetBlockReceivedStatus
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
@@ -2063,7 +2063,7 @@ _08048E6C: .4byte gBlockRecvBuffer
_08048E70: .4byte gUnknown_03004824
_08048E74:
ldr r0, _08048E84 @ =gBlockSendBuffer
- ldr r1, _08048E88 @ =gUnknown_03004428
+ ldr r1, _08048E88 @ =gPlayerParty + 2 * 0x64
movs r2, 0xC8
bl sub_8048D24
ldr r0, _08048E8C @ =gUnknown_03004824
@@ -2071,7 +2071,7 @@ _08048E74:
b _08049006
.align 2, 0
_08048E84: .4byte gBlockSendBuffer
-_08048E88: .4byte gUnknown_03004428
+_08048E88: .4byte gPlayerParty + 2 * 0x64
_08048E8C: .4byte gUnknown_03004824
_08048E90:
cmp r7, 0
@@ -2085,14 +2085,14 @@ _08048E9A:
.align 2, 0
_08048EA0: .4byte gUnknown_03004824
_08048EA4:
- bl GetBlockRecievedStatus
+ bl GetBlockReceivedStatus
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _08048EB2
b _0804907C
_08048EB2:
- ldr r0, _08048ED0 @ =gUnknown_03004688
+ ldr r0, _08048ED0 @ =gEnemyParty + 2 * 0x64
movs r2, 0x1
adds r1, r7, 0
eors r1, r2
@@ -2106,12 +2106,12 @@ _08048EB2:
ldr r1, [r0]
b _08049006
.align 2, 0
-_08048ED0: .4byte gUnknown_03004688
+_08048ED0: .4byte gEnemyParty + 2 * 0x64
_08048ED4: .4byte gBlockRecvBuffer
_08048ED8: .4byte gUnknown_03004824
_08048EDC:
ldr r0, _08048EEC @ =gBlockSendBuffer
- ldr r1, _08048EF0 @ =gUnknown_030044F0
+ ldr r1, _08048EF0 @ =gPlayerParty + 4 * 0x64
movs r2, 0xC8
bl sub_8048D24
ldr r0, _08048EF4 @ =gUnknown_03004824
@@ -2119,7 +2119,7 @@ _08048EDC:
b _08049006
.align 2, 0
_08048EEC: .4byte gBlockSendBuffer
-_08048EF0: .4byte gUnknown_030044F0
+_08048EF0: .4byte gPlayerParty + 4 * 0x64
_08048EF4: .4byte gUnknown_03004824
_08048EF8:
cmp r7, 0
@@ -2133,14 +2133,14 @@ _08048F02:
.align 2, 0
_08048F08: .4byte gUnknown_03004824
_08048F0C:
- bl GetBlockRecievedStatus
+ bl GetBlockReceivedStatus
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
beq _08048F1A
b _0804907C
_08048F1A:
- ldr r0, _08048F38 @ =gUnknown_03004750
+ ldr r0, _08048F38 @ =gEnemyParty + 4 * 0x64
movs r2, 0x1
adds r1, r7, 0
eors r1, r2
@@ -2154,7 +2154,7 @@ _08048F1A:
ldr r1, [r0]
b _08049006
.align 2, 0
-_08048F38: .4byte gUnknown_03004750
+_08048F38: .4byte gEnemyParty + 4 * 0x64
_08048F3C: .4byte gBlockRecvBuffer
_08048F40: .4byte gUnknown_03004824
_08048F44:
@@ -2181,7 +2181,7 @@ _08048F6A:
.align 2, 0
_08048F70: .4byte gUnknown_03004824
_08048F74:
- bl GetBlockRecievedStatus
+ bl GetBlockReceivedStatus
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
@@ -2229,7 +2229,7 @@ _08048FD2:
.align 2, 0
_08048FD8: .4byte gUnknown_03004824
_08048FDC:
- bl GetBlockRecievedStatus
+ bl GetBlockReceivedStatus
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
@@ -2868,7 +2868,7 @@ sub_80494D8: @ 80494D8
bl GetMultiplayerId
lsls r0, 24
lsrs r4, r0, 24
- bl GetBlockRecievedStatus
+ bl GetBlockReceivedStatus
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
@@ -7302,7 +7302,7 @@ _0804B7C0:
.4byte _0804B9E0
_0804B7F4:
ldr r1, _0804B8E0 @ =gUnknown_020297D8
- ldr r0, _0804B8E4 @ =gUnknown_0202E8CE
+ ldr r0, _0804B8E4 @ =gSpecialVar_0x8005
ldrh r0, [r0]
movs r6, 0
strb r0, [r1]
@@ -7407,7 +7407,7 @@ _0804B7F4:
b _0804B9F2
.align 2, 0
_0804B8E0: .4byte gUnknown_020297D8
-_0804B8E4: .4byte gUnknown_0202E8CE
+_0804B8E4: .4byte gSpecialVar_0x8005
_0804B8E8: .4byte gLinkPlayers + 0x8
_0804B8EC: .4byte gSaveBlock2
_0804B8F0: .4byte gEnemyParty
@@ -8495,7 +8495,7 @@ _0804C230: .4byte gStringVar3
_0804C234: .4byte gPlayerParty
_0804C238: .4byte gStringVar2
_0804C23C:
- ldr r0, _0804C280 @ =gUnknown_0202E8CC
+ ldr r0, _0804C280 @ =gSpecialVar_0x8004
ldrh r0, [r0]
lsls r4, r0, 4
subs r4, r0
@@ -8509,7 +8509,7 @@ _0804C23C:
ldr r0, _0804C28C @ =gStringVar3
adds r1, r4, 0
bl StringCopy10
- ldr r0, _0804C290 @ =gUnknown_0202E8CE
+ ldr r0, _0804C290 @ =gSpecialVar_0x8005
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
@@ -8527,11 +8527,11 @@ _0804C278:
pop {r0}
bx r0
.align 2, 0
-_0804C280: .4byte gUnknown_0202E8CC
+_0804C280: .4byte gSpecialVar_0x8004
_0804C284: .4byte gIngameTrades
_0804C288: .4byte gStringVar1
_0804C28C: .4byte gStringVar3
-_0804C290: .4byte gUnknown_0202E8CE
+_0804C290: .4byte gSpecialVar_0x8005
_0804C294: .4byte gPlayerParty
_0804C298: .4byte gStringVar2
thumb_func_end sub_804C1A8
@@ -10567,7 +10567,7 @@ _0804D4B8:
.align 2, 0
_0804D4C8: .4byte gMain
_0804D4CC:
- ldr r0, _0804D510 @ =gUnknown_0202E8CE
+ ldr r0, _0804D510 @ =gSpecialVar_0x8005
ldrb r0, [r0]
movs r1, 0
bl sub_804BA94
@@ -10599,7 +10599,7 @@ _0804D4CC:
bl TradeEvolutionScene
b _0804D538
.align 2, 0
-_0804D510: .4byte gUnknown_0202E8CE
+_0804D510: .4byte gSpecialVar_0x8005
_0804D514: .4byte gUnknown_03005E94
_0804D518: .4byte sub_804BBCC
_0804D51C: .4byte gUnknown_020297D8
@@ -10747,7 +10747,7 @@ _0804D638: .4byte gUnknown_020297D8
sub_804D63C: @ 804D63C
push {r4-r6,lr}
bl sub_804B2B0
- bl GetBlockRecievedStatus
+ bl GetBlockReceivedStatus
lsls r0, 24
lsrs r5, r0, 24
movs r6, 0x1
@@ -11060,7 +11060,7 @@ _0804D898: .4byte SpriteCallbackDummy
thumb_func_start sub_804D89C
sub_804D89C: @ 804D89C
push {r4-r6,lr}
- ldr r0, _0804D8D0 @ =gUnknown_0202E8CC
+ ldr r0, _0804D8D0 @ =gSpecialVar_0x8004
ldrh r0, [r0]
lsls r4, r0, 4
subs r4, r0
@@ -11084,7 +11084,7 @@ sub_804D89C: @ 804D89C
pop {r1}
bx r1
.align 2, 0
-_0804D8D0: .4byte gUnknown_0202E8CC
+_0804D8D0: .4byte gSpecialVar_0x8004
_0804D8D4: .4byte gIngameTrades
_0804D8D8: .4byte gStringVar1
_0804D8DC: .4byte gSpeciesNames
@@ -11095,14 +11095,14 @@ _0804D8E0: .4byte gStringVar2
sub_804D8E4: @ 804D8E4
push {r4,lr}
sub sp, 0x20
- ldr r0, _0804D92C @ =gUnknown_0202E8CC
+ ldr r0, _0804D92C @ =gSpecialVar_0x8004
ldrh r0, [r0]
lsls r4, r0, 4
subs r4, r0
lsls r4, 2
ldr r0, _0804D930 @ =gIngameTrades
adds r4, r0
- ldr r0, _0804D934 @ =gUnknown_0202E8CE
+ ldr r0, _0804D934 @ =gSpecialVar_0x8005
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
@@ -11126,9 +11126,9 @@ sub_804D8E4: @ 804D8E4
pop {r0}
bx r0
.align 2, 0
-_0804D92C: .4byte gUnknown_0202E8CC
+_0804D92C: .4byte gSpecialVar_0x8004
_0804D930: .4byte gIngameTrades
-_0804D934: .4byte gUnknown_0202E8CE
+_0804D934: .4byte gSpecialVar_0x8005
_0804D938: .4byte gPlayerParty
_0804D93C: .4byte gStringVar1
_0804D940: .4byte gStringVar2
@@ -11359,7 +11359,7 @@ _0804DB28: .4byte gIngameTradeMail
thumb_func_start sub_804DB2C
sub_804DB2C: @ 804DB2C
push {r4-r6,lr}
- ldr r6, _0804DB58 @ =gUnknown_0202E8CE
+ ldr r6, _0804DB58 @ =gSpecialVar_0x8005
ldrh r0, [r6]
movs r5, 0x64
muls r0, r5
@@ -11378,7 +11378,7 @@ sub_804DB2C: @ 804DB2C
lsrs r0, 16
b _0804DB62
.align 2, 0
-_0804DB58: .4byte gUnknown_0202E8CE
+_0804DB58: .4byte gSpecialVar_0x8005
_0804DB5C: .4byte gPlayerParty
_0804DB60:
movs r0, 0
@@ -11391,16 +11391,16 @@ _0804DB62:
thumb_func_start sub_804DB68
sub_804DB68: @ 804DB68
push {lr}
- ldr r0, _0804DB7C @ =gUnknown_0202E8CE
+ ldr r0, _0804DB7C @ =gSpecialVar_0x8005
ldrb r0, [r0]
- ldr r1, _0804DB80 @ =gUnknown_0202E8CC
+ ldr r1, _0804DB80 @ =gSpecialVar_0x8004
ldrb r1, [r1]
bl sub_804D948
pop {r0}
bx r0
.align 2, 0
-_0804DB7C: .4byte gUnknown_0202E8CE
-_0804DB80: .4byte gUnknown_0202E8CC
+_0804DB7C: .4byte gSpecialVar_0x8005
+_0804DB80: .4byte gSpecialVar_0x8004
thumb_func_end sub_804DB68
thumb_func_start sub_804DB84
diff --git a/asm/trader.s b/asm/trader.s
index 3800588e3..be3627e90 100644
--- a/asm/trader.s
+++ b/asm/trader.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -278,16 +278,16 @@ sub_8109B34: @ 8109B34
lsrs r1, 24
cmp r1, 0x78
bls _08109B54
- ldr r1, _08109B4C @ =gUnknown_0202E8CC
+ ldr r1, _08109B4C @ =gSpecialVar_0x8004
ldr r2, _08109B50 @ =0x0000ffff
adds r0, r2, 0
strh r0, [r1]
b _08109B58
.align 2, 0
-_08109B4C: .4byte gUnknown_0202E8CC
+_08109B4C: .4byte gSpecialVar_0x8004
_08109B50: .4byte 0x0000ffff
_08109B54:
- ldr r0, _08109B78 @ =gUnknown_0202E8CC
+ ldr r0, _08109B78 @ =gSpecialVar_0x8004
strh r1, [r0]
_08109B58:
bl sub_8072DEC
@@ -303,7 +303,7 @@ _08109B58:
pop {r0}
bx r0
.align 2, 0
-_08109B78: .4byte gUnknown_0202E8CC
+_08109B78: .4byte gSpecialVar_0x8004
thumb_func_end sub_8109B34
thumb_func_start sub_8109B7C
@@ -345,7 +345,7 @@ _08109BC2:
beq _08109C28
movs r0, 0x5
bl PlaySE
- ldr r5, _08109BFC @ =gUnknown_0202E8CE
+ ldr r5, _08109BFC @ =gSpecialVar_0x8005
bl GetMenuCursorPos
lsls r0, 24
lsrs r0, 24
@@ -365,7 +365,7 @@ _08109BC2:
bl sub_8109B34
b _08109C3E
.align 2, 0
-_08109BFC: .4byte gUnknown_0202E8CE
+_08109BFC: .4byte gSpecialVar_0x8005
_08109C00: .4byte gTasks
_08109C04:
ldr r0, _08109C24 @ =gStringVar1
@@ -452,11 +452,11 @@ sub_8109C90: @ 8109C90
movs r0, 0
strh r0, [r6]
ldr r4, _08109CE0 @ =gDecorations
- ldr r5, _08109CE4 @ =gUnknown_0202E8CC
+ ldr r5, _08109CE4 @ =gSpecialVar_0x8004
ldrh r0, [r5]
lsls r0, 5
adds r2, r0, r4
- ldr r0, _08109CE8 @ =gUnknown_0202E8D0
+ ldr r0, _08109CE8 @ =gSpecialVar_0x8006
ldrh r0, [r0]
lsls r0, 5
adds r0, r4
@@ -487,8 +487,8 @@ _08109CD6:
.align 2, 0
_08109CDC: .4byte gScriptResult
_08109CE0: .4byte gDecorations
-_08109CE4: .4byte gUnknown_0202E8CC
-_08109CE8: .4byte gUnknown_0202E8D0
+_08109CE4: .4byte gSpecialVar_0x8004
+_08109CE8: .4byte gSpecialVar_0x8006
_08109CEC: .4byte gStringVar2
thumb_func_end sub_8109C90
@@ -528,7 +528,7 @@ sub_8109D04: @ 8109D04
lsrs r0, 24
cmp r0, 0x1
bne _08109D8C
- ldr r5, _08109D70 @ =gUnknown_0202E8D0
+ ldr r5, _08109D70 @ =gSpecialVar_0x8006
ldr r0, _08109D74 @ =gUnknown_020388F5
ldrb r1, [r0]
ldr r0, _08109D78 @ =gUnknown_020388D0
@@ -537,7 +537,7 @@ sub_8109D04: @ 8109D04
ldrb r0, [r0]
strh r0, [r5]
ldr r0, _08109D7C @ =gStringVar3
- ldr r1, _08109D80 @ =gUnknown_0202E8CC
+ ldr r1, _08109D80 @ =gSpecialVar_0x8004
ldrh r1, [r1]
lsls r1, 5
ldr r4, _08109D84 @ =gDecorations + 0x1
@@ -551,15 +551,15 @@ sub_8109D04: @ 8109D04
b _08109D94
.align 2, 0
_08109D6C: .4byte gUnknown_020388F7
-_08109D70: .4byte gUnknown_0202E8D0
+_08109D70: .4byte gSpecialVar_0x8006
_08109D74: .4byte gUnknown_020388F5
_08109D78: .4byte gUnknown_020388D0
_08109D7C: .4byte gStringVar3
-_08109D80: .4byte gUnknown_0202E8CC
+_08109D80: .4byte gSpecialVar_0x8004
_08109D84: .4byte gDecorations + 0x1
_08109D88: .4byte gStringVar2
_08109D8C:
- ldr r1, _08109DA4 @ =gUnknown_0202E8D0
+ ldr r1, _08109DA4 @ =gSpecialVar_0x8006
ldr r2, _08109DA8 @ =0x0000ffff
adds r0, r2, 0
strh r0, [r1]
@@ -571,7 +571,7 @@ _08109D94:
pop {r0}
bx r0
.align 2, 0
-_08109DA4: .4byte gUnknown_0202E8D0
+_08109DA4: .4byte gSpecialVar_0x8006
_08109DA8: .4byte 0x0000ffff
thumb_func_end sub_8109D04
@@ -587,7 +587,7 @@ sub_8109DAC: @ 8109DAC
movs r2, 0x1D
movs r3, 0x13
bl MenuZeroFillWindowRect
- ldr r1, _08109DDC @ =gUnknown_0202E8D0
+ ldr r1, _08109DDC @ =gSpecialVar_0x8006
movs r0, 0
strh r0, [r1]
adds r0, r4, 0
@@ -597,20 +597,20 @@ sub_8109DAC: @ 8109DAC
pop {r0}
bx r0
.align 2, 0
-_08109DDC: .4byte gUnknown_0202E8D0
+_08109DDC: .4byte gSpecialVar_0x8006
thumb_func_end sub_8109DAC
thumb_func_start sub_8109DE0
sub_8109DE0: @ 8109DE0
push {r4-r6,lr}
ldr r4, _08109E20 @ =gSaveBlock1 + 0x2D94
- ldr r6, _08109E24 @ =gUnknown_0202E8D0
+ ldr r6, _08109E24 @ =gSpecialVar_0x8006
ldrb r0, [r6]
bl sub_81340A8
- ldr r0, _08109E28 @ =gUnknown_0202E8CC
+ ldr r0, _08109E28 @ =gSpecialVar_0x8004
ldrb r0, [r0]
bl IsThereStorageSpaceForDecoration
- ldr r5, _08109E2C @ =gUnknown_0202E8CE
+ ldr r5, _08109E2C @ =gSpecialVar_0x8005
ldrh r1, [r5]
movs r0, 0xB
muls r0, r1
@@ -632,9 +632,9 @@ sub_8109DE0: @ 8109DE0
bx r0
.align 2, 0
_08109E20: .4byte gSaveBlock1 + 0x2D94
-_08109E24: .4byte gUnknown_0202E8D0
-_08109E28: .4byte gUnknown_0202E8CC
-_08109E2C: .4byte gUnknown_0202E8CE
+_08109E24: .4byte gSpecialVar_0x8006
+_08109E28: .4byte gSpecialVar_0x8004
+_08109E2C: .4byte gSpecialVar_0x8005
_08109E30: .4byte gSaveBlock2
thumb_func_end sub_8109DE0
diff --git a/asm/trainer_card.s b/asm/trainer_card.s
index 927cb17c2..e46113132 100644
--- a/asm/trainer_card.s
+++ b/asm/trainer_card.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/trainer_see.s b/asm/trainer_see.s
deleted file mode 100644
index 98a775bb6..000000000
--- a/asm/trainer_see.s
+++ /dev/null
@@ -1,1119 +0,0 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
-
- .syntax unified
-
- .text
-
- thumb_func_start CheckTrainers
-CheckTrainers: @ 8083FBC
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _08083FEC @ =gMapObjects
-_08083FC2:
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- beq _08083FF0
- ldrb r0, [r1, 0x7]
- cmp r0, 0x1
- beq _08083FDC
- cmp r0, 0x3
- bne _08083FF0
-_08083FDC:
- adds r0, r4, 0
- bl CheckTrainer
- lsls r0, 24
- cmp r0, 0
- beq _08083FF0
- movs r0, 0x1
- b _08083FFC
- .align 2, 0
-_08083FEC: .4byte gMapObjects
-_08083FF0:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _08083FC2
- movs r0, 0
-_08083FFC:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end CheckTrainers
-
- thumb_func_start CheckTrainer
-CheckTrainer: @ 8084004
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- adds r0, r4, 0
- bl GetFieldObjectScriptPointerByFieldObjectId
- adds r6, r0, 0
- bl GetTrainerFlagFromScriptPointer
- cmp r0, 0
- bne _08084034
- lsls r0, r4, 3
- adds r0, r4
- lsls r0, 2
- ldr r1, _08084038 @ =gMapObjects
- adds r5, r0, r1
- adds r0, r5, 0
- bl TrainerCanApproachPlayer
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0808403C
-_08084034:
- movs r0, 0
- b _08084052
- .align 2, 0
-_08084038: .4byte gMapObjects
-_0808403C:
- adds r0, r7, 0
- adds r1, r6, 0
- bl TrainerWantsBattle
- subs r1, r4, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_80842C8
- movs r0, 0x1
-_08084052:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckTrainer
-
- thumb_func_start TrainerCanApproachPlayer
-TrainerCanApproachPlayer: @ 8084058
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r7, r0, 0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- ldrb r0, [r7, 0x7]
- mov r8, r4
- cmp r0, 0x1
- bne _080840B8
- ldr r1, _080840B0 @ =gUnknown_0839B488
- ldrb r0, [r7, 0x18]
- lsls r0, 28
- lsrs r0, 26
- subs r0, 0x4
- adds 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, 24
- lsrs r6, r0, 24
- ldrb r2, [r7, 0x18]
- lsls r2, 28
- lsrs r2, 28
- adds r0, r7, 0
- adds r1, r6, 0
- bl CheckPathBetweenTrainerAndPlayer
- lsls r0, 24
- lsrs r0, 24
- b _080840F8
- .align 2, 0
-_080840B0: .4byte gUnknown_0839B488
-_080840B4:
- adds r0, r6, 0
- b _080840F8
-_080840B8:
- movs r5, 0
-_080840BA:
- ldr r0, _08084104 @ =gUnknown_0839B488
- lsls r4, r5, 2
- adds 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, 24
- lsrs r6, r0, 24
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl CheckPathBetweenTrainerAndPlayer
- lsls r0, 24
- cmp r0, 0
- bne _080840B4
- adds r5, r4, 0
- cmp r5, 0x3
- bls _080840BA
- movs r0, 0
-_080840F8:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08084104: .4byte gUnknown_0839B488
- thumb_func_end TrainerCanApproachPlayer
-
- thumb_func_start IsTrainerInRangeSouth
-IsTrainerInRangeSouth: @ 8084108
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r3, 16
- lsrs r5, r3, 16
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- lsls r2, 16
- asrs r2, 16
- cmp r0, r2
- bne _08084142
- lsls r0, r5, 16
- asrs r2, r0, 16
- ldrh r3, [r4, 0x12]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r2, r0
- ble _08084142
- adds r1, r0, 0
- lsls r0, r6, 16
- asrs r0, 16
- adds r1, r0
- cmp r2, r1
- bgt _08084142
- subs r0, r5, r3
- lsls r0, 24
- lsrs r0, 24
- b _08084144
-_08084142:
- movs r0, 0
-_08084144:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end IsTrainerInRangeSouth
-
- thumb_func_start IsTrainerInRangeNorth
-IsTrainerInRangeNorth: @ 808414C
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r3, 16
- lsrs r5, r3, 16
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- lsls r2, 16
- asrs r2, 16
- cmp r0, r2
- bne _08084186
- lsls r0, r5, 16
- asrs r2, r0, 16
- ldrh r3, [r4, 0x12]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r2, r0
- bge _08084186
- adds r1, r0, 0
- lsls r0, r6, 16
- asrs r0, 16
- subs r1, r0
- cmp r2, r1
- blt _08084186
- subs r0, r3, r5
- lsls r0, 24
- lsrs r0, 24
- b _08084188
-_08084186:
- movs r0, 0
-_08084188:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end IsTrainerInRangeNorth
-
- thumb_func_start IsTrainerInRangeWest
-IsTrainerInRangeWest: @ 8084190
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r3, 16
- asrs r3, 16
- cmp r0, r3
- bne _080841CA
- lsls r0, r5, 16
- asrs r3, r0, 16
- ldrh r2, [r4, 0x10]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- bge _080841CA
- adds r1, r0, 0
- lsls r0, r6, 16
- asrs r0, 16
- subs r1, r0
- cmp r3, r1
- blt _080841CA
- subs r0, r2, r5
- lsls r0, 24
- lsrs r0, 24
- b _080841CC
-_080841CA:
- movs r0, 0
-_080841CC:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end IsTrainerInRangeWest
-
- thumb_func_start IsTrainerInRangeEast
-IsTrainerInRangeEast: @ 80841D4
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r3, 16
- asrs r3, 16
- cmp r0, r3
- bne _0808420E
- lsls r0, r5, 16
- asrs r3, r0, 16
- ldrh r2, [r4, 0x10]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r3, r0
- ble _0808420E
- adds r1, r0, 0
- lsls r0, r6, 16
- asrs r0, 16
- adds r1, r0
- cmp r3, r1
- bgt _0808420E
- subs r0, r5, r2
- lsls r0, 24
- lsrs r0, 24
- b _08084210
-_0808420E:
- movs r0, 0
-_08084210:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end IsTrainerInRangeEast
-
- thumb_func_start CheckPathBetweenTrainerAndPlayer
-CheckPathBetweenTrainerAndPlayer: @ 8084218
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r6, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r7, r2, 24
- cmp r1, 0
- beq _080842B2
- ldrh r1, [r6, 0x10]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r6, 0x12]
- mov r1, sp
- adds r1, 0x2
- strh r0, [r1]
- movs r4, 0
- mov r8, r1
- mov r5, r9
- subs r5, 0x1
- cmp r4, r5
- bgt _08084284
-_0808424C:
- 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 sub_8060024
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08084270
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- bne _080842B2
-_08084270:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r7, 0
- mov r1, sp
- mov r2, r8
- bl MoveCoords
- cmp r4, r5
- ble _0808424C
-_08084284:
- ldrb r4, [r6, 0x19]
- lsls r5, r4, 28
- lsrs r5, 28
- lsrs 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 npc_block_way
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r4, 4
- orrs r5, r4
- strb r5, [r6, 0x19]
- cmp r1, 0x4
- beq _080842B6
-_080842B2:
- movs r0, 0
- b _080842B8
-_080842B6:
- mov r0, r9
-_080842B8:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CheckPathBetweenTrainerAndPlayer
-
- thumb_func_start sub_80842C8
-sub_80842C8: @ 80842C8
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r0, _080842F4 @ =sub_808433C
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080842F8 @ =gTasks
- adds r1, r0
- lsrs r0, r5, 16
- strh r0, [r1, 0xA]
- strh r5, [r1, 0xC]
- strh r4, [r1, 0xE]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080842F4: .4byte sub_808433C
-_080842F8: .4byte gTasks
- thumb_func_end sub_80842C8
-
- thumb_func_start sub_80842FC
-sub_80842FC: @ 80842FC
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r5, _08084334 @ =sub_808433C
- adds r0, r5, 0
- bl FindTaskIdByFunc
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl SetTaskFuncWithFollowupFunc
- ldr r1, _08084338 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x8]
- adds r0, r4, 0
- bl _call_via_r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08084334: .4byte sub_808433C
-_08084338: .4byte gTasks
- thumb_func_end sub_80842FC
-
- thumb_func_start sub_808433C
-sub_808433C: @ 808433C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _08084368 @ =gTasks
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- lsls r5, r0, 16
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- orrs r5, r0
- ldrb r0, [r5]
- lsls r0, 31
- cmp r0, 0
- bne _0808436C
- adds r0, r6, 0
- bl SwitchTaskToFollowupFunc
- b _08084388
- .align 2, 0
-_08084368: .4byte gTasks
-_0808436C:
- ldr r7, _08084390 @ =gUnknown_0839B498
-_0808436E:
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- lsls r0, 2
- adds r0, r7
- ldr r3, [r0]
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl _call_via_r3
- lsls r0, 24
- cmp r0, 0
- bne _0808436E
-_08084388:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08084390: .4byte gUnknown_0839B498
- thumb_func_end sub_808433C
-
- thumb_func_start sub_8084394
-sub_8084394: @ 8084394
- movs r0, 0
- bx lr
- thumb_func_end sub_8084394
-
- thumb_func_start sub_8084398
-sub_8084398: @ 8084398
- push {r4,r5,lr}
- adds r5, r1, 0
- adds r4, r2, 0
- ldr r1, _080843D8 @ =gUnknown_0202FF84
- adds r2, r1, 0x4
- adds r3, r1, 0
- adds r3, 0x8
- adds r0, r4, 0
- bl FieldObjectGetLocalIdAndMap
- movs r0, 0
- bl FieldEffectStart
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080843D8: .4byte gUnknown_0202FF84
- thumb_func_end sub_8084398
-
- thumb_func_start sub_80843DC
-sub_80843DC: @ 80843DC
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- movs r0, 0
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- beq _080843F2
- movs r0, 0
- b _08084414
-_080843F2:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldrb r0, [r5, 0x6]
- subs r0, 0x39
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08084408
- movs r0, 0x6
- strh r0, [r4, 0x8]
-_08084408:
- ldrb r0, [r5, 0x6]
- cmp r0, 0x3F
- bne _08084412
- movs r0, 0x8
- strh r0, [r4, 0x8]
-_08084412:
- movs r0, 0x1
-_08084414:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80843DC
-
- thumb_func_start sub_808441C
-sub_808441C: @ 808441C
- push {r4,r5,lr}
- adds r5, r1, 0
- adds r4, r2, 0
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _0808443A
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0808446E
-_0808443A:
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08084460
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetGoSpeed0AnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0xE]
- subs r0, 0x1
- strh r0, [r5, 0xE]
- b _0808446E
-_08084460:
- adds r0, r4, 0
- movs r1, 0x3E
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_0808446E:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_808441C
-
- thumb_func_start sub_8084478
-sub_8084478: @ 8084478
- push {r4-r6,lr}
- adds r6, r1, 0
- adds r5, r2, 0
- adds r0, r5, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _08084496
- adds r0, r5, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08084524
-_08084496:
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl npc_running_behaviour_by_direction
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl npc_set_running_behaviour_etc
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl npc_running_behaviour_by_direction
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_805C774
- adds r0, r5, 0
- bl sub_805C754
- ldr r0, _0808452C @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08084530 @ =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080844EE
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08084524
-_080844EE:
- bl sub_80597E8
- ldr r0, _0808452C @ =gPlayerAvatar
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08084530 @ =gMapObjects
- adds r4, r0
- ldrb r0, [r5, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl GetOppositeDirection
- lsls r0, 24
- lsrs r0, 24
- bl GetFaceDirectionAnimId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_08084524:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0808452C: .4byte gPlayerAvatar
-_08084530: .4byte gMapObjects
- thumb_func_end sub_8084478
-
- thumb_func_start sub_8084534
-sub_8084534: @ 8084534
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08084570 @ =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08084574 @ =gMapObjects
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _08084560
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _08084566
-_08084560:
- adds r0, r5, 0
- bl SwitchTaskToFollowupFunc
-_08084566:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08084570: .4byte gPlayerAvatar
-_08084574: .4byte gMapObjects
- thumb_func_end sub_8084534
-
- thumb_func_start sub_8084578
-sub_8084578: @ 8084578
- push {r4,r5,lr}
- adds r5, r1, 0
- adds r4, r2, 0
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _08084596
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080845A4
-_08084596:
- adds r0, r4, 0
- movs r1, 0x59
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_080845A4:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8084578
-
- thumb_func_start sub_80845AC
-sub_80845AC: @ 80845AC
- push {r4,lr}
- adds r4, r1, 0
- adds r0, r2, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080845C0
- movs r0, 0x3
- strh r0, [r4, 0x8]
-_080845C0:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80845AC
-
- thumb_func_start sub_80845C8
-sub_80845C8: @ 80845C8
- push {r4,r5,lr}
- adds r5, r1, 0
- adds r4, r2, 0
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _080845E6
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _080845F4
-_080845E6:
- adds r0, r4, 0
- movs r1, 0x3E
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_080845F4:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80845C8
-
- thumb_func_start sub_80845FC
-sub_80845FC: @ 80845FC
- push {r4,r5,lr}
- adds r5, r1, 0
- adds r4, r2, 0
- adds r0, r4, 0
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- cmp r0, 0
- beq _08084642
- ldr r2, _0808464C @ =gUnknown_0202FF84
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- str r0, [r2]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- str r0, [r2, 0x4]
- ldr r3, _08084650 @ =gSprites
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- str r0, [r2, 0x8]
- movs r0, 0x2
- str r0, [r2, 0xC]
- movs r0, 0x31
- bl FieldEffectStart
- strh r0, [r5, 0x10]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_08084642:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0808464C: .4byte gUnknown_0202FF84
-_08084650: .4byte gSprites
- thumb_func_end sub_80845FC
-
- thumb_func_start sub_8084654
-sub_8084654: @ 8084654
- push {r4,r5,lr}
- adds r5, r1, 0
- adds r4, r2, 0
- ldr r2, _080846C4 @ =gSprites
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x2B
- ldrb r0, [r1]
- cmp r0, 0x2
- bne _080846BC
- ldrb r1, [r4, 0x3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x3]
- ldrb r0, [r4]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x5]
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl sub_806084C
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectSetSpecialAnim
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_080846BC:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080846C4: .4byte gSprites
- thumb_func_end sub_8084654
-
- thumb_func_start sub_80846C8
-sub_80846C8: @ 80846C8
- push {r4,lr}
- adds r4, r1, 0
- movs r0, 0x31
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _080846DC
- movs r0, 0x3
- strh r0, [r4, 0x8]
-_080846DC:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80846C8
-
- thumb_func_start sub_80846E4
-sub_80846E4: @ 80846E4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08084778 @ =gTasks
- 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 _08084716
- ldr r0, [sp]
- bl FieldObjectClearAnim
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- strh r0, [r4, 0x16]
-_08084716:
- ldr r1, _0808477C @ =gUnknown_0839B4C8
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r2, [sp]
- ldr r3, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl _call_via_r3
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x3
- bne _08084780
- movs r0, 0x31
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _08084780
- ldr r4, [sp]
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl npc_running_behaviour_by_direction
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl npc_set_running_behaviour_etc
- ldr r4, [sp]
- ldrb r0, [r4, 0x18]
- lsls r0, 28
- lsrs r0, 28
- bl npc_running_behaviour_by_direction
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805C774
- adds r0, r5, 0
- bl DestroyTask
- b _0808478A
- .align 2, 0
-_08084778: .4byte gTasks
-_0808477C: .4byte gUnknown_0839B4C8
-_08084780:
- ldr r2, [sp]
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
-_0808478A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80846E4
-
- thumb_func_start sub_8084794
-sub_8084794: @ 8084794
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _080847C0 @ =sub_80846E4
- movs r1, 0
- bl CreateTask
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _080847C4 @ =gTasks + 0x8
- adds r0, r1
- adds r0, 0x2
- adds r1, r4, 0
- bl StoreWordInTwoHalfwords
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080847C0: .4byte sub_80846E4
-_080847C4: .4byte gTasks + 0x8
- thumb_func_end sub_8084794
-
- thumb_func_start sub_80847C8
-sub_80847C8: @ 80847C8
- push {lr}
- ldr r0, _080847D4 @ =sub_80847D8
- bl sub_80842FC
- pop {r0}
- bx r0
- .align 2, 0
-_080847D4: .4byte sub_80847D8
- thumb_func_end sub_80847C8
-
- thumb_func_start sub_80847D8
-sub_80847D8: @ 80847D8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80847D8
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/truck_scene.s b/asm/truck_scene.s
deleted file mode 100644
index 399c3010b..000000000
--- a/asm/truck_scene.s
+++ /dev/null
@@ -1,604 +0,0 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80C727C
-sub_80C727C: @ 80C727C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x78
- bl __modsi3
- cmp r0, 0
- bne _080C7290
- movs r0, 0x1
- negs r0, r0
- b _080C72A2
-_080C7290:
- adds r0, r4, 0
- movs r1, 0xA
- bl __modsi3
- cmp r0, 0x4
- ble _080C72A0
- movs r0, 0
- b _080C72A2
-_080C72A0:
- movs r0, 0x1
-_080C72A2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80C727C
-
- thumb_func_start sub_80C72A8
-sub_80C72A8: @ 80C72A8
- push {lr}
- adds r0, 0x78
- movs r1, 0xB4
- bl __modsi3
- cmp r0, 0
- beq _080C72BA
- movs r0, 0
- b _080C72BE
-_080C72BA:
- movs r0, 0x1
- negs r0, r0
-_080C72BE:
- pop {r1}
- bx r1
- thumb_func_end sub_80C72A8
-
- thumb_func_start sub_80C72C4
-sub_80C72C4: @ 80C72C4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080C7364 @ =gTasks + 0x8
- adds r5, r1, r0
- movs r1, 0
- ldrsh r0, [r5, r1]
- adds r0, 0x1E
- bl sub_80C72A8
- ldr r4, _080C7368 @ =gSaveBlock1
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- lsls r0, 18
- movs r3, 0xC0
- lsls r3, 10
- orrs r0, r3
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x1
- movs r3, 0x3
- bl sub_805BD90
- movs r3, 0
- ldrsh r0, [r5, r3]
- bl sub_80C72A8
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- lsls r0, 17
- ldr r3, _080C736C @ =0xfffd0000
- adds r0, r3
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x2
- movs r3, 0
- bl sub_805BD90
- movs r1, 0
- ldrsh r0, [r5, r1]
- bl sub_80C72A8
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- movs r4, 0
- movs r3, 0x3
- negs r3, r3
- lsls r0, 18
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x3
- bl sub_805BD90
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- lsls r0, 16
- ldr r1, _080C7370 @ =0x75300000
- cmp r0, r1
- bne _080C7346
- strh r4, [r5]
-_080C7346:
- movs r3, 0
- ldrsh r0, [r5, r3]
- bl sub_80C727C
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- movs r0, 0
- bl SetCameraPanning
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7364: .4byte gTasks + 0x8
-_080C7368: .4byte gSaveBlock1
-_080C736C: .4byte 0xfffd0000
-_080C7370: .4byte 0x75300000
- thumb_func_end sub_80C72C4
-
- thumb_func_start sub_80C7374
-sub_80C7374: @ 80C7374
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r3, r0, 3
- ldr r4, _080C73B4 @ =gTasks + 0x8
- adds r7, r3, r4
- ldrh r1, [r7]
- adds r1, 0x1
- strh r1, [r7]
- ldrh r0, [r7, 0x4]
- adds r0, 0x1
- strh r0, [r7, 0x4]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x5
- ble _080C73A4
- movs r0, 0
- strh r0, [r7]
- ldrh r0, [r7, 0x2]
- adds r0, 0x1
- strh r0, [r7, 0x2]
-_080C73A4:
- ldrh r0, [r7, 0x2]
- cmp r0, 0x13
- bne _080C73B8
- adds r0, r2, 0
- bl DestroyTask
- b _080C746A
- .align 2, 0
-_080C73B4: .4byte gTasks + 0x8
-_080C73B8:
- ldr r2, _080C7474 @ =gUnknown_083D294C
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x2
- bne _080C73D4
- adds r0, r4, 0
- subs r0, 0x8
- adds r0, r3, r0
- ldr r1, _080C7478 @ =sub_80C7484
- str r1, [r0]
-_080C73D4:
- movs r4, 0x2
- ldrsh r0, [r7, r4]
- adds r0, r2
- movs r5, 0
- ldrsb r5, [r0, r5]
- lsls r5, 16
- lsrs r5, 16
- movs r1, 0x4
- ldrsh r0, [r7, r1]
- bl sub_80C727C
- adds r1, r0, 0
- lsls r5, 16
- asrs r5, 16
- lsls r1, 16
- asrs r1, 16
- adds r0, r5, 0
- bl SetCameraPanning
- movs r4, 0x4
- ldrsh r0, [r7, r4]
- adds r0, 0x1E
- bl sub_80C72A8
- ldr r6, _080C747C @ =gSaveBlock1
- ldrb r1, [r6, 0x5]
- ldrb r2, [r6, 0x4]
- movs r3, 0x3
- subs r3, r5
- lsls r3, 16
- asrs r3, 16
- lsls r0, 18
- movs r4, 0xC0
- lsls r4, 10
- orrs r0, r4
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x1
- bl sub_805BD90
- movs r1, 0x4
- ldrsh r0, [r7, r1]
- bl sub_80C72A8
- ldrb r1, [r6, 0x5]
- ldrb r2, [r6, 0x4]
- negs r3, r5
- lsls r3, 16
- asrs r3, 16
- lsls r0, 17
- ldr r4, _080C7480 @ =0xfffd0000
- adds r0, r4
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x2
- bl sub_805BD90
- movs r1, 0x4
- ldrsh r0, [r7, r1]
- bl sub_80C72A8
- ldrb r1, [r6, 0x5]
- ldrb r2, [r6, 0x4]
- movs r4, 0x3
- negs r4, r4
- adds r3, r4, 0
- subs r3, r5
- lsls r3, 16
- asrs r3, 16
- lsls r0, 18
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x3
- bl sub_805BD90
-_080C746A:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7474: .4byte gUnknown_083D294C
-_080C7478: .4byte sub_80C7484
-_080C747C: .4byte gSaveBlock1
-_080C7480: .4byte 0xfffd0000
- thumb_func_end sub_80C7374
-
- thumb_func_start sub_80C7484
-sub_80C7484: @ 80C7484
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- ldr r1, _080C74C4 @ =gTasks + 0x8
- adds r2, r0, r1
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- ble _080C74B4
- movs r0, 0
- strh r0, [r2]
- ldrh r0, [r2, 0x2]
- adds r0, 0x1
- strh r0, [r2, 0x2]
-_080C74B4:
- ldrh r0, [r2, 0x2]
- cmp r0, 0x13
- bne _080C74C8
- adds r0, r3, 0
- bl DestroyTask
- b _080C7516
- .align 2, 0
-_080C74C4: .4byte gTasks + 0x8
-_080C74C8:
- ldr r1, _080C7524 @ =gUnknown_083D294C
- movs r3, 0x2
- ldrsh r0, [r2, r3]
- adds r0, r1
- movs r1, 0
- mov r8, r1
- movs r6, 0
- ldrsb r6, [r0, r6]
- adds r0, r6, 0
- bl SetCameraPanning
- ldr r5, _080C7528 @ =gSaveBlock1
- ldrb r1, [r5, 0x5]
- ldrb r2, [r5, 0x4]
- movs r3, 0x3
- subs r3, r6
- movs r0, 0x3
- str r0, [sp]
- movs r0, 0x1
- bl sub_805BD90
- ldrb r1, [r5, 0x5]
- ldrb r2, [r5, 0x4]
- negs r3, r6
- mov r4, r8
- subs r4, 0x3
- str r4, [sp]
- movs r0, 0x2
- bl sub_805BD90
- ldrb r1, [r5, 0x5]
- ldrb r2, [r5, 0x4]
- subs r4, r6
- mov r3, r8
- str r3, [sp]
- movs r0, 0x3
- adds r3, r4, 0
- bl sub_805BD90
-_080C7516:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C7524: .4byte gUnknown_083D294C
-_080C7528: .4byte gSaveBlock1
- thumb_func_end sub_80C7484
-
- thumb_func_start sub_80C752C
-sub_80C752C: @ 80C752C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _080C7550 @ =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bls _080C7546
- b _080C7698
-_080C7546:
- lsls r0, 2
- ldr r1, _080C7554 @ =_080C7558
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080C7550: .4byte gTasks + 0x8
-_080C7554: .4byte _080C7558
- .align 2, 0
-_080C7558:
- .4byte _080C7570
- .4byte _080C75A8
- .4byte _080C75C4
- .4byte _080C7610
- .4byte _080C7634
- .4byte _080C7652
-_080C7570:
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5A
- beq _080C7580
- b _080C7698
-_080C7580:
- movs r0, 0
- bl SetCameraPanningCallback
- movs r0, 0
- strh r0, [r4, 0x2]
- ldr r0, _080C75A4 @ =sub_80C72C4
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x4]
- movs r0, 0x1
- strh r0, [r4]
- movs r0, 0x31
- bl PlaySE
- b _080C7698
- .align 2, 0
-_080C75A4: .4byte sub_80C72C4
-_080C75A8:
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x96
- bne _080C7698
- bl pal_fill_black
- movs r0, 0
- strh r0, [r4, 0x2]
- movs r0, 0x2
- strh r0, [r4]
- b _080C7698
-_080C75C4:
- ldrh r0, [r4, 0x2]
- adds r3, r0, 0x1
- strh r3, [r4, 0x2]
- ldr r0, _080C7608 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080C7698
- lsls r1, r3, 16
- movs r0, 0x96
- lsls r0, 17
- cmp r1, r0
- ble _080C7698
- strh r2, [r4, 0x2]
- ldrb r0, [r4, 0x4]
- bl DestroyTask
- ldr r0, _080C760C @ =sub_80C7374
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x6]
- movs r0, 0x3
- strh r0, [r4]
- movs r0, 0x32
- bl PlaySE
- b _080C7698
- .align 2, 0
-_080C7608: .4byte gPaletteFade
-_080C760C: .4byte sub_80C7374
-_080C7610:
- ldr r2, _080C7630 @ =gTasks
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r5, [r0, 0x4]
- cmp r5, 0
- bne _080C7698
- bl InstallCameraPanAheadCallback
- strh r5, [r4, 0x2]
- movs r0, 0x4
- strh r0, [r4]
- b _080C7698
- .align 2, 0
-_080C7630: .4byte gTasks
-_080C7634:
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5A
- bne _080C7698
- movs r0, 0x33
- bl PlaySE
- movs r0, 0
- strh r0, [r4, 0x2]
- movs r0, 0x5
- strh r0, [r4]
- b _080C7698
-_080C7652:
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x78
- bne _080C7698
- movs r2, 0x82
- lsls r2, 2
- movs r0, 0xB
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- movs r2, 0x84
- lsls r2, 2
- movs r0, 0xB
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- movs r2, 0x86
- lsls r2, 2
- movs r0, 0xB
- movs r1, 0xA
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- movs r0, 0x34
- bl PlaySE
- adds r0, r5, 0
- bl DestroyTask
- bl ScriptContext2_Disable
-_080C7698:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80C752C
-
- thumb_func_start sub_80C76A0
-sub_80C76A0: @ 80C76A0
- push {lr}
- sub sp, 0x4
- ldr r2, _080C76E8 @ =0x0000020d
- movs r0, 0xB
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _080C76EC @ =0x00000215
- movs r0, 0xB
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- ldr r2, _080C76F0 @ =0x0000021d
- movs r0, 0xB
- movs r1, 0xA
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- bl ScriptContext2_Enable
- movs r0, 0
- str r0, [sp]
- ldr r1, _080C76F4 @ =gPlttBufferFaded
- ldr r2, _080C76F8 @ =0x01000100
- mov r0, sp
- bl CpuFastSet
- ldr r0, _080C76FC @ =sub_80C752C
- movs r1, 0xA
- bl CreateTask
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080C76E8: .4byte 0x0000020d
-_080C76EC: .4byte 0x00000215
-_080C76F0: .4byte 0x0000021d
-_080C76F4: .4byte gPlttBufferFaded
-_080C76F8: .4byte 0x01000100
-_080C76FC: .4byte sub_80C752C
- thumb_func_end sub_80C76A0
-
- thumb_func_start sub_80C7700
-sub_80C7700: @ 80C7700
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r0, _080C774C @ =sub_80C752C
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- bne _080C7744
- ldr r4, _080C7750 @ =gSaveBlock1
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- movs r0, 0x3
- str r0, [sp]
- movs r0, 0x1
- movs r3, 0x3
- bl sub_805BD90
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- movs r5, 0x3
- negs r5, r5
- str r5, [sp]
- movs r0, 0x2
- movs r3, 0
- bl sub_805BD90
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- str r6, [sp]
- movs r0, 0x3
- adds r3, r5, 0
- bl sub_805BD90
-_080C7744:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C774C: .4byte sub_80C752C
-_080C7750: .4byte gSaveBlock1
- thumb_func_end sub_80C7700
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/tv.s b/asm/tv.s
index 227710573..f30663f93 100644
--- a/asm/tv.s
+++ b/asm/tv.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
@@ -327,7 +327,7 @@ _080BDA08: .4byte gUnknown_03004870
thumb_func_start sub_80BDA0C
sub_80BDA0C: @ 80BDA0C
ldr r2, _080BDA24 @ =gSaveBlock1
- ldr r0, _080BDA28 @ =gUnknown_0202E8CC
+ ldr r0, _080BDA28 @ =gSpecialVar_0x8004
ldrh r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -339,7 +339,7 @@ sub_80BDA0C: @ 80BDA0C
bx lr
.align 2, 0
_080BDA24: .4byte gSaveBlock1
-_080BDA28: .4byte gUnknown_0202E8CC
+_080BDA28: .4byte gSpecialVar_0x8004
_080BDA2C: .4byte 0x00002738
thumb_func_end sub_80BDA0C
@@ -386,7 +386,7 @@ _080BDA70:
thumb_func_start special_0x4a
special_0x4a: @ 80BDA78
push {lr}
- ldr r2, _080BDAA4 @ =gUnknown_0202E8CC
+ ldr r2, _080BDAA4 @ =gSpecialVar_0x8004
ldrh r1, [r2]
lsls r0, r1, 3
adds r0, r1
@@ -407,7 +407,7 @@ special_0x4a: @ 80BDA78
lsrs r0, 24
b _080BDAAE
.align 2, 0
-_080BDAA4: .4byte gUnknown_0202E8CC
+_080BDAA4: .4byte gSpecialVar_0x8004
_080BDAA8: .4byte gSaveBlock1 + 0x2738
_080BDAAC:
ldrb r0, [r2]
@@ -804,80 +804,80 @@ _080BDD84:
.4byte _080BDE1C
.4byte _080BDE30
_080BDDA4:
- ldr r1, _080BDDB0 @ =gUnknown_0202E8CC
+ ldr r1, _080BDDB0 @ =gSpecialVar_0x8004
movs r0, 0xE
strh r0, [r1]
- ldr r1, _080BDDB4 @ =gUnknown_0202E8CE
+ ldr r1, _080BDDB4 @ =gSpecialVar_0x8005
movs r0, 0xD
b _080BDE3A
.align 2, 0
-_080BDDB0: .4byte gUnknown_0202E8CC
-_080BDDB4: .4byte gUnknown_0202E8CE
+_080BDDB0: .4byte gSpecialVar_0x8004
+_080BDDB4: .4byte gSpecialVar_0x8005
_080BDDB8:
- ldr r1, _080BDDC4 @ =gUnknown_0202E8CC
+ ldr r1, _080BDDC4 @ =gSpecialVar_0x8004
movs r0, 0x5
strh r0, [r1]
- ldr r1, _080BDDC8 @ =gUnknown_0202E8CE
+ ldr r1, _080BDDC8 @ =gSpecialVar_0x8005
movs r0, 0x6
b _080BDE3A
.align 2, 0
-_080BDDC4: .4byte gUnknown_0202E8CC
-_080BDDC8: .4byte gUnknown_0202E8CE
+_080BDDC4: .4byte gSpecialVar_0x8004
+_080BDDC8: .4byte gSpecialVar_0x8005
_080BDDCC:
- ldr r1, _080BDDD8 @ =gUnknown_0202E8CC
+ ldr r1, _080BDDD8 @ =gSpecialVar_0x8004
movs r0, 0x12
strh r0, [r1]
- ldr r1, _080BDDDC @ =gUnknown_0202E8CE
+ ldr r1, _080BDDDC @ =gSpecialVar_0x8005
movs r0, 0x11
b _080BDE3A
.align 2, 0
-_080BDDD8: .4byte gUnknown_0202E8CC
-_080BDDDC: .4byte gUnknown_0202E8CE
+_080BDDD8: .4byte gSpecialVar_0x8004
+_080BDDDC: .4byte gSpecialVar_0x8005
_080BDDE0:
- ldr r1, _080BDDEC @ =gUnknown_0202E8CC
+ ldr r1, _080BDDEC @ =gSpecialVar_0x8004
movs r0, 0x15
strh r0, [r1]
- ldr r1, _080BDDF0 @ =gUnknown_0202E8CE
+ ldr r1, _080BDDF0 @ =gSpecialVar_0x8005
movs r0, 0x16
b _080BDE3A
.align 2, 0
-_080BDDEC: .4byte gUnknown_0202E8CC
-_080BDDF0: .4byte gUnknown_0202E8CE
+_080BDDEC: .4byte gSpecialVar_0x8004
+_080BDDF0: .4byte gSpecialVar_0x8005
_080BDDF4:
- ldr r1, _080BDE00 @ =gUnknown_0202E8CC
+ ldr r1, _080BDE00 @ =gSpecialVar_0x8004
movs r0, 0x8
strh r0, [r1]
- ldr r1, _080BDE04 @ =gUnknown_0202E8CE
+ ldr r1, _080BDE04 @ =gSpecialVar_0x8005
movs r0, 0x9
b _080BDE3A
.align 2, 0
-_080BDE00: .4byte gUnknown_0202E8CC
-_080BDE04: .4byte gUnknown_0202E8CE
+_080BDE00: .4byte gSpecialVar_0x8004
+_080BDE04: .4byte gSpecialVar_0x8005
_080BDE08:
- ldr r1, _080BDE14 @ =gUnknown_0202E8CC
+ ldr r1, _080BDE14 @ =gSpecialVar_0x8004
movs r0, 0x13
strh r0, [r1]
- ldr r1, _080BDE18 @ =gUnknown_0202E8CE
+ ldr r1, _080BDE18 @ =gSpecialVar_0x8005
movs r0, 0x14
b _080BDE3A
.align 2, 0
-_080BDE14: .4byte gUnknown_0202E8CC
-_080BDE18: .4byte gUnknown_0202E8CE
+_080BDE14: .4byte gSpecialVar_0x8004
+_080BDE18: .4byte gSpecialVar_0x8005
_080BDE1C:
- ldr r1, _080BDE28 @ =gUnknown_0202E8CC
+ ldr r1, _080BDE28 @ =gSpecialVar_0x8004
movs r0, 0x17
strh r0, [r1]
- ldr r1, _080BDE2C @ =gUnknown_0202E8CE
+ ldr r1, _080BDE2C @ =gSpecialVar_0x8005
movs r0, 0x18
b _080BDE3A
.align 2, 0
-_080BDE28: .4byte gUnknown_0202E8CC
-_080BDE2C: .4byte gUnknown_0202E8CE
+_080BDE28: .4byte gSpecialVar_0x8004
+_080BDE2C: .4byte gSpecialVar_0x8005
_080BDE30:
- ldr r1, _080BDE40 @ =gUnknown_0202E8CC
+ ldr r1, _080BDE40 @ =gSpecialVar_0x8004
movs r0, 0xA
strh r0, [r1]
- ldr r1, _080BDE44 @ =gUnknown_0202E8CE
+ ldr r1, _080BDE44 @ =gSpecialVar_0x8005
movs r0, 0xB
_080BDE3A:
strh r0, [r1]
@@ -885,14 +885,14 @@ _080BDE3C:
pop {r0}
bx r0
.align 2, 0
-_080BDE40: .4byte gUnknown_0202E8CC
-_080BDE44: .4byte gUnknown_0202E8CE
+_080BDE40: .4byte gSpecialVar_0x8004
+_080BDE44: .4byte gSpecialVar_0x8005
thumb_func_end GabbyAndTySetScriptVarsToFieldObjectLocalIds
thumb_func_start sub_80BDE48
sub_80BDE48: @ 80BDE48
push {lr}
- ldr r0, _080BDE60 @ =gUnknown_0202E8CE
+ ldr r0, _080BDE60 @ =gSpecialVar_0x8005
ldrh r0, [r0]
subs r0, 0x1
cmp r0, 0x6
@@ -903,7 +903,7 @@ sub_80BDE48: @ 80BDE48
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080BDE60: .4byte gUnknown_0202E8CE
+_080BDE60: .4byte gSpecialVar_0x8005
_080BDE64: .4byte _080BDE68
.align 2, 0
_080BDE68:
@@ -1446,7 +1446,7 @@ sub_80BE284: @ 80BE284
negs r0, r0
ands r0, r2
orrs r0, r1
- ldr r1, _080BE310 @ =gUnknown_0203869C
+ ldr r1, _080BE310 @ =gScriptContestCategory
ldrb r2, [r1]
movs r1, 0x7
ands r1, r2
@@ -1454,7 +1454,7 @@ sub_80BE284: @ 80BE284
negs r2, r2
ands r0, r2
orrs r0, r1
- ldr r1, _080BE314 @ =gUnknown_0203869E
+ ldr r1, _080BE314 @ =gScriptContestRank
ldrb r1, [r1]
ands r3, r1
lsls r3, 3
@@ -1488,8 +1488,8 @@ _080BE2FE:
_080BE304: .4byte gSaveBlock1 + 0x2A98
_080BE308: .4byte 0xfffffca0
_080BE30C: .4byte gUnknown_03005D38
-_080BE310: .4byte gUnknown_0203869C
-_080BE314: .4byte gUnknown_0203869E
+_080BE310: .4byte gScriptContestCategory
+_080BE314: .4byte gScriptContestRank
_080BE318: .4byte gUnknown_02038694
_080BE31C: .4byte gPlayerParty
thumb_func_end sub_80BE284
@@ -1553,7 +1553,7 @@ _080BE39C:
movs r0, 0x64
_080BE39E:
strb r0, [r6, 0x1A]
- ldr r0, _080BE3B8 @ =gUnknown_0202E8CC
+ ldr r0, _080BE3B8 @ =gSpecialVar_0x8004
ldrh r0, [r0]
strb r0, [r6, 0x1B]
adds r0, r6, 0
@@ -1564,7 +1564,7 @@ _080BE39E:
pop {r0}
bx r0
.align 2, 0
-_080BE3B8: .4byte gUnknown_0202E8CC
+_080BE3B8: .4byte gSpecialVar_0x8004
thumb_func_end sub_80BE320
thumb_func_start sub_80BE3BC
@@ -1665,7 +1665,7 @@ sub_80BE478: @ 80BE478
ldrh r0, [r0]
cmp r0, 0x1
beq _080BE548
- ldr r0, _080BE558 @ =gUnknown_0202E8CC
+ ldr r0, _080BE558 @ =gSpecialVar_0x8004
mov r8, r0
ldrh r0, [r0]
movs r7, 0x64
@@ -1755,7 +1755,7 @@ _080BE548:
bx r0
.align 2, 0
_080BE554: .4byte gScriptResult
-_080BE558: .4byte gUnknown_0202E8CC
+_080BE558: .4byte gSpecialVar_0x8004
_080BE55C: .4byte gPlayerParty
_080BE560: .4byte gStringVar1
_080BE564: .4byte gSaveBlock2
@@ -1766,7 +1766,7 @@ _080BE56C: .4byte gSaveBlock1 + 0x2738
thumb_func_start StartMassOutbreak
StartMassOutbreak: @ 80BE570
push {r4,lr}
- ldr r0, _080BE5F0 @ =gUnknown_0202E8CC
+ ldr r0, _080BE5F0 @ =gSpecialVar_0x8004
ldrh r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -1830,7 +1830,7 @@ StartMassOutbreak: @ 80BE570
pop {r0}
bx r0
.align 2, 0
-_080BE5F0: .4byte gUnknown_0202E8CC
+_080BE5F0: .4byte gSpecialVar_0x8004
_080BE5F4: .4byte gSaveBlock1 + 0x2738
_080BE5F8: .4byte 0x000003d5
thumb_func_end StartMassOutbreak
@@ -1953,7 +1953,7 @@ sub_80BE6A0: @ 80BE6A0
ands r1, r2
orrs r1, r0
strb r1, [r4, 0x4]
- ldr r0, _080BE76C @ =gUnknown_0202E8D2
+ ldr r0, _080BE76C @ =gSpecialVar_0x8007
ldrb r0, [r0]
lsls r0, 4
movs r2, 0xF
@@ -2004,7 +2004,7 @@ sub_80BE6A0: @ 80BE6A0
_080BE760: .4byte gUnknown_03005D38
_080BE764: .4byte gSaveBlock1 + 0x2738
_080BE768: .4byte gPlayerParty
-_080BE76C: .4byte gUnknown_0202E8D2
+_080BE76C: .4byte gSpecialVar_0x8007
_080BE770: .4byte gSaveBlock2
thumb_func_end sub_80BE6A0
@@ -2887,14 +2887,14 @@ _080BEE12:
lsls r0, 1
cmp r1, r0
bne _080BEE3A
- ldr r0, _080BEE2C @ =gUnknown_0202E8DE
+ ldr r0, _080BEE2C @ =gScriptLastTalked
ldrh r0, [r0]
cmp r0, 0x1A
beq _080BEE0E
b _080BEE3A
.align 2, 0
_080BEE28: .4byte gSaveBlock1
-_080BEE2C: .4byte gUnknown_0202E8DE
+_080BEE2C: .4byte gScriptLastTalked
_080BEE30:
ldr r0, _080BEE40 @ =gSaveBlock1
ldrh r1, [r0, 0x4]
@@ -3181,7 +3181,7 @@ _080BF05C: .4byte gUnknown_083CE048
thumb_func_start SetContestCategoryStringVarForInterview
SetContestCategoryStringVarForInterview: @ 80BF060
push {lr}
- ldr r0, _080BF080 @ =gUnknown_0202E8CC
+ ldr r0, _080BF080 @ =gSpecialVar_0x8004
ldrh r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -3196,7 +3196,7 @@ SetContestCategoryStringVarForInterview: @ 80BF060
pop {r0}
bx r0
.align 2, 0
-_080BF080: .4byte gUnknown_0202E8CC
+_080BF080: .4byte gSpecialVar_0x8004
_080BF084: .4byte gSaveBlock1 + 0x2738
thumb_func_end SetContestCategoryStringVarForInterview
@@ -3514,7 +3514,7 @@ sub_80BF2C4: @ 80BF2C4
ldr r1, _080BF2E0 @ =gScriptResult
movs r0, 0
strh r0, [r1]
- ldr r0, _080BF2E4 @ =gUnknown_0202E8CE
+ ldr r0, _080BF2E4 @ =gSpecialVar_0x8005
ldrh r0, [r0]
subs r0, 0x1
cmp r0, 0x6
@@ -3526,7 +3526,7 @@ sub_80BF2C4: @ 80BF2C4
mov pc, r0
.align 2, 0
_080BF2E0: .4byte gScriptResult
-_080BF2E4: .4byte gUnknown_0202E8CE
+_080BF2E4: .4byte gSpecialVar_0x8005
_080BF2E8: .4byte _080BF2EC
.align 2, 0
_080BF2EC:
@@ -4051,7 +4051,7 @@ sub_80BF6D8: @ 80BF6D8
bl sub_80BF720
ldr r1, _080BF704 @ =gUnknown_03005D38
strb r0, [r1]
- ldr r2, _080BF708 @ =gUnknown_0202E8D0
+ ldr r2, _080BF708 @ =gSpecialVar_0x8006
ldrb r1, [r1]
lsls r1, 24
asrs r1, 24
@@ -4068,7 +4068,7 @@ sub_80BF6D8: @ 80BF6D8
.align 2, 0
_080BF700: .4byte gSaveBlock1 + 0x2738
_080BF704: .4byte gUnknown_03005D38
-_080BF708: .4byte gUnknown_0202E8D0
+_080BF708: .4byte gSpecialVar_0x8006
_080BF70C: .4byte gScriptResult
_080BF710:
ldr r1, _080BF71C @ =gScriptResult
@@ -4428,7 +4428,7 @@ sub_80BF974: @ 80BF974
push {r4,lr}
movs r1, 0
ldr r4, _080BF994 @ =gSaveBlock1
- ldr r0, _080BF998 @ =gUnknown_0202E8CC
+ ldr r0, _080BF998 @ =gSpecialVar_0x8004
ldrh r2, [r0]
ldr r3, _080BF99C @ =0x00002738
_080BF980:
@@ -4444,7 +4444,7 @@ _080BF980:
b _080BF9AC
.align 2, 0
_080BF994: .4byte gSaveBlock1
-_080BF998: .4byte gUnknown_0202E8CC
+_080BF998: .4byte gSpecialVar_0x8004
_080BF99C: .4byte 0x00002738
_080BF9A0:
adds r0, r1, 0x1
@@ -4462,7 +4462,7 @@ _080BF9AC:
thumb_func_start sub_80BF9B4
sub_80BF9B4: @ 80BF9B4
push {r4,lr}
- ldr r0, _080BF9E0 @ =gUnknown_0202E8CC
+ ldr r0, _080BF9E0 @ =gSpecialVar_0x8004
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
@@ -4481,7 +4481,7 @@ sub_80BF9B4: @ 80BF9B4
movs r0, 0x1
b _080BF9F2
.align 2, 0
-_080BF9E0: .4byte gUnknown_0202E8CC
+_080BF9E0: .4byte gSpecialVar_0x8004
_080BF9E4: .4byte gPlayerParty
_080BF9E8: .4byte gStringVar1
_080BF9EC: .4byte gStringVar3
@@ -4501,7 +4501,7 @@ sub_80BF9F8: @ 80BF9F8
mov r4, r8
push {r4-r6}
sub sp, 0x8
- ldr r0, _080BFAA0 @ =gUnknown_0202E8CC
+ ldr r0, _080BFAA0 @ =gSpecialVar_0x8004
mov r9, r0
ldrh r0, [r0]
movs r1, 0x64
@@ -4573,7 +4573,7 @@ sub_80BF9F8: @ 80BF9F8
pop {r0}
bx r0
.align 2, 0
-_080BFAA0: .4byte gUnknown_0202E8CC
+_080BFAA0: .4byte gSpecialVar_0x8004
_080BFAA4: .4byte gPlayerParty
_080BFAA8: .4byte gStringVar3
_080BFAAC: .4byte gStringVar2
@@ -4583,7 +4583,7 @@ _080BFAB0: .4byte c2_080CC144
thumb_func_start c2_080CC144
c2_080CC144: @ 80BFAB4
push {lr}
- ldr r0, _080BFAD4 @ =gUnknown_0202E8CC
+ ldr r0, _080BFAD4 @ =gSpecialVar_0x8004
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
@@ -4596,7 +4596,7 @@ c2_080CC144: @ 80BFAB4
pop {r0}
bx r0
.align 2, 0
-_080BFAD4: .4byte gUnknown_0202E8CC
+_080BFAD4: .4byte gSpecialVar_0x8004
_080BFAD8: .4byte gPlayerParty
_080BFADC: .4byte gStringVar2
thumb_func_end c2_080CC144
@@ -4604,7 +4604,7 @@ _080BFADC: .4byte gStringVar2
thumb_func_start sub_80BFAE0
sub_80BFAE0: @ 80BFAE0
push {r4,lr}
- ldr r0, _080BFB04 @ =gUnknown_0202E8CC
+ ldr r0, _080BFB04 @ =gSpecialVar_0x8004
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
@@ -4620,7 +4620,7 @@ sub_80BFAE0: @ 80BFAE0
pop {r0}
bx r0
.align 2, 0
-_080BFB04: .4byte gUnknown_0202E8CC
+_080BFB04: .4byte gSpecialVar_0x8004
_080BFB08: .4byte gPlayerParty
_080BFB0C: .4byte gStringVar1
thumb_func_end sub_80BFAE0
@@ -4630,7 +4630,7 @@ sub_80BFB10: @ 80BFB10
push {r4,lr}
bl sub_80BFB94
adds r4, r0, 0
- ldr r0, _080BFB38 @ =gUnknown_0202E8CC
+ ldr r0, _080BFB38 @ =gSpecialVar_0x8004
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
@@ -4645,7 +4645,7 @@ sub_80BFB10: @ 80BFB10
movs r0, 0
b _080BFB48
.align 2, 0
-_080BFB38: .4byte gUnknown_0202E8CC
+_080BFB38: .4byte gSpecialVar_0x8004
_080BFB3C: .4byte gPlayerParty
_080BFB40: .4byte gScriptResult
_080BFB44:
@@ -6290,7 +6290,7 @@ _080C07C0: .4byte 0x00002abd
DoTVShow: @ 80C07C4
push {lr}
ldr r2, _080C07F8 @ =gSaveBlock1
- ldr r0, _080C07FC @ =gUnknown_0202E8CC
+ ldr r0, _080C07FC @ =gSpecialVar_0x8004
ldrh r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -6318,7 +6318,7 @@ _080C07EE:
mov pc, r0
.align 2, 0
_080C07F8: .4byte gSaveBlock1
-_080C07FC: .4byte gUnknown_0202E8CC
+_080C07FC: .4byte gSpecialVar_0x8004
_080C0800: .4byte 0x00002739
_080C0804: .4byte _080C0808
.align 2, 0
@@ -6428,7 +6428,7 @@ _080C0914:
thumb_func_start DoTVShowBravoTrainerPokemonProfile
DoTVShowBravoTrainerPokemonProfile: @ 80C091C
push {r4,r5,lr}
- ldr r0, _080C0948 @ =gUnknown_0202E8CC
+ ldr r0, _080C0948 @ =gSpecialVar_0x8004
ldrh r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -6450,7 +6450,7 @@ _080C093C:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080C0948: .4byte gUnknown_0202E8CC
+_080C0948: .4byte gSpecialVar_0x8004
_080C094C: .4byte gSaveBlock1 + 0x2738
_080C0950: .4byte gScriptResult
_080C0954: .4byte gUnknown_020387E8
@@ -6704,7 +6704,7 @@ _080C0B98: .4byte gUnknown_083D1524
thumb_func_start DoTVShowBravoTrainerBattleTowerProfile
DoTVShowBravoTrainerBattleTowerProfile: @ 80C0B9C
push {r4,r5,lr}
- ldr r0, _080C0BC8 @ =gUnknown_0202E8CC
+ ldr r0, _080C0BC8 @ =gSpecialVar_0x8004
ldrh r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -6727,7 +6727,7 @@ _080C0BBE:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080C0BC8: .4byte gUnknown_0202E8CC
+_080C0BC8: .4byte gSpecialVar_0x8004
_080C0BCC: .4byte gSaveBlock1 + 0x2738
_080C0BD0: .4byte gScriptResult
_080C0BD4: .4byte gUnknown_020387E8
@@ -6977,7 +6977,7 @@ _080C0DFC: .4byte gUnknown_083D1548
thumb_func_start DoTVShowTodaysSmartShopper
DoTVShowTodaysSmartShopper: @ 80C0E00
push {r4-r6,lr}
- ldr r0, _080C0E2C @ =gUnknown_0202E8CC
+ ldr r0, _080C0E2C @ =gSpecialVar_0x8004
ldrh r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -7000,7 +7000,7 @@ _080C0E22:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080C0E2C: .4byte gUnknown_0202E8CC
+_080C0E2C: .4byte gSpecialVar_0x8004
_080C0E30: .4byte gSaveBlock1 + 0x2738
_080C0E34: .4byte gScriptResult
_080C0E38: .4byte gUnknown_020387E8
@@ -7231,7 +7231,7 @@ _080C102C: .4byte gUnknown_083D14F0
DoTVShowTheNameRaterShow: @ 80C1030
push {r4-r7,lr}
sub sp, 0x8
- ldr r0, _080C1060 @ =gUnknown_0202E8CC
+ ldr r0, _080C1060 @ =gSpecialVar_0x8004
ldrh r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -7254,7 +7254,7 @@ _080C1054:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080C1060: .4byte gUnknown_0202E8CC
+_080C1060: .4byte gSpecialVar_0x8004
_080C1064: .4byte gSaveBlock1 + 0x2738
_080C1068: .4byte gScriptResult
_080C106C: .4byte gUnknown_020387E8
@@ -7616,7 +7616,7 @@ _080C13A8: .4byte gUnknown_083D1584
thumb_func_start DoTVShowPokemonTodaySuccessfulCapture
DoTVShowPokemonTodaySuccessfulCapture: @ 80C13AC
push {r4-r6,lr}
- ldr r0, _080C13D8 @ =gUnknown_0202E8CC
+ ldr r0, _080C13D8 @ =gSpecialVar_0x8004
ldrh r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -7639,7 +7639,7 @@ _080C13CE:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080C13D8: .4byte gUnknown_0202E8CC
+_080C13D8: .4byte gSpecialVar_0x8004
_080C13DC: .4byte gSaveBlock1 + 0x2738
_080C13E0: .4byte gScriptResult
_080C13E4: .4byte gUnknown_020387E8
@@ -7869,7 +7869,7 @@ _080C15F0: .4byte gUnknown_083D14C0
thumb_func_start DoTVShowPokemonTodayFailedCapture
DoTVShowPokemonTodayFailedCapture: @ 80C15F4
push {r4,r5,lr}
- ldr r0, _080C1620 @ =gUnknown_0202E8CC
+ ldr r0, _080C1620 @ =gSpecialVar_0x8004
ldrh r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -7891,7 +7891,7 @@ _080C1614:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080C1620: .4byte gUnknown_0202E8CC
+_080C1620: .4byte gSpecialVar_0x8004
_080C1624: .4byte gSaveBlock1 + 0x2738
_080C1628: .4byte gScriptResult
_080C162C: .4byte gUnknown_020387E8
@@ -8026,7 +8026,7 @@ _080C1750: .4byte gUnknown_083D15D0
thumb_func_start DoTVShowPokemonFanClubLetter
DoTVShowPokemonFanClubLetter: @ 80C1754
push {r4-r7,lr}
- ldr r0, _080C1780 @ =gUnknown_0202E8CC
+ ldr r0, _080C1780 @ =gSpecialVar_0x8004
ldrh r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -8049,7 +8049,7 @@ _080C1776:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080C1780: .4byte gUnknown_0202E8CC
+_080C1780: .4byte gSpecialVar_0x8004
_080C1784: .4byte gSaveBlock1 + 0x2738
_080C1788: .4byte gScriptResult
_080C178C: .4byte gUnknown_020387E8
@@ -8239,7 +8239,7 @@ _080C1974: .4byte gUnknown_083D1470
thumb_func_start DoTVShowRecentHappenings
DoTVShowRecentHappenings: @ 80C1978
push {r4-r7,lr}
- ldr r0, _080C19A4 @ =gUnknown_0202E8CC
+ ldr r0, _080C19A4 @ =gSpecialVar_0x8004
ldrh r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -8262,7 +8262,7 @@ _080C199A:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_080C19A4: .4byte gUnknown_0202E8CC
+_080C19A4: .4byte gSpecialVar_0x8004
_080C19A8: .4byte gSaveBlock1 + 0x2738
_080C19AC: .4byte gScriptResult
_080C19B0: .4byte gUnknown_020387E8
@@ -8386,7 +8386,7 @@ _080C1B04: .4byte gUnknown_083D1490
thumb_func_start DoTVShowPokemonFanClubOpinions
DoTVShowPokemonFanClubOpinions: @ 80C1B08
push {r4-r6,lr}
- ldr r0, _080C1B30 @ =gUnknown_0202E8CC
+ ldr r0, _080C1B30 @ =gSpecialVar_0x8004
ldrh r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -8406,7 +8406,7 @@ DoTVShowPokemonFanClubOpinions: @ 80C1B08
beq _080C1B46
b _080C1BD6
.align 2, 0
-_080C1B30: .4byte gUnknown_0202E8CC
+_080C1B30: .4byte gSpecialVar_0x8004
_080C1B34: .4byte gSaveBlock1 + 0x2738
_080C1B38: .4byte gScriptResult
_080C1B3C: .4byte gUnknown_020387E8
@@ -8496,7 +8496,7 @@ nullsub_22: @ 80C1BF4
thumb_func_start DoTVShowPokemonNewsMassOutbreak
DoTVShowPokemonNewsMassOutbreak: @ 80C1BF8
push {r4,lr}
- ldr r0, _080C1C40 @ =gUnknown_0202E8CC
+ ldr r0, _080C1C40 @ =gSpecialVar_0x8004
ldrh r0, [r0]
lsls r4, r0, 3
adds r4, r0
@@ -8527,7 +8527,7 @@ DoTVShowPokemonNewsMassOutbreak: @ 80C1BF8
pop {r0}
bx r0
.align 2, 0
-_080C1C40: .4byte gUnknown_0202E8CC
+_080C1C40: .4byte gSpecialVar_0x8004
_080C1C44: .4byte gSaveBlock1 + 0x2738
_080C1C48: .4byte gStringVar1
_080C1C4C: .4byte gStringVar2
@@ -8748,7 +8748,7 @@ _080C1E34: .4byte gUnknown_083D1600
thumb_func_start DoTVShowPokemonAngler
DoTVShowPokemonAngler: @ 80C1E38
push {r4,r5,lr}
- ldr r0, _080C1E5C @ =gUnknown_0202E8CC
+ ldr r0, _080C1E5C @ =gSpecialVar_0x8004
ldrh r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -8766,7 +8766,7 @@ DoTVShowPokemonAngler: @ 80C1E38
strb r1, [r0]
b _080C1E74
.align 2, 0
-_080C1E5C: .4byte gUnknown_0202E8CC
+_080C1E5C: .4byte gSpecialVar_0x8004
_080C1E60: .4byte gSaveBlock1 + 0x2738
_080C1E64: .4byte gScriptResult
_080C1E68: .4byte gUnknown_020387E8
@@ -8842,7 +8842,7 @@ _080C1F04: .4byte gUnknown_083D15EC
thumb_func_start DoTVShowTheWorldOfMasters
DoTVShowTheWorldOfMasters: @ 80C1F08
push {r4-r6,lr}
- ldr r0, _080C1F30 @ =gUnknown_0202E8CC
+ ldr r0, _080C1F30 @ =gSpecialVar_0x8004
ldrh r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -8862,7 +8862,7 @@ DoTVShowTheWorldOfMasters: @ 80C1F08
beq _080C1F46
b _080C1FB6
.align 2, 0
-_080C1F30: .4byte gUnknown_0202E8CC
+_080C1F30: .4byte gSpecialVar_0x8004
_080C1F34: .4byte gSaveBlock1 + 0x2738
_080C1F38: .4byte gScriptResult
_080C1F3C: .4byte gUnknown_020387E8
@@ -8945,7 +8945,7 @@ TVShowDone: @ 80C1FDC
movs r0, 0
strb r0, [r1]
ldr r2, _080C2008 @ =gSaveBlock1
- ldr r0, _080C200C @ =gUnknown_0202E8CC
+ ldr r0, _080C200C @ =gSpecialVar_0x8004
ldrh r1, [r0]
lsls r0, r1, 3
adds r0, r1
@@ -8960,7 +8960,7 @@ TVShowDone: @ 80C1FDC
_080C2000: .4byte gScriptResult
_080C2004: .4byte gUnknown_020387E8
_080C2008: .4byte gSaveBlock1
-_080C200C: .4byte gUnknown_0202E8CC
+_080C200C: .4byte gSpecialVar_0x8004
_080C2010: .4byte 0x00002739
thumb_func_end TVShowDone
diff --git a/asm/unused_8124F94.s b/asm/unused_8124F94.s
index 56b90ca23..335cf4453 100644
--- a/asm/unused_8124F94.s
+++ b/asm/unused_8124F94.s
@@ -1,6 +1,6 @@
- .include "constants/gba_constants.s"
- .include "constants/species_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
diff --git a/asm/weather.s b/asm/weather.s
index 7128440a9..cd0a646a7 100644
--- a/asm/weather.s
+++ b/asm/weather.s
@@ -1,857 +1,10 @@
- .include "constants/gba_constants.s"
- .include "asm/macros.s"
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
.syntax unified
.text
-@ thumb_func_start sub_807C828
-@sub_807C828: @ 807C828
-@ push {r4-r6,lr}
-@ ldr r0, _0807C8EC @ =sub_807CA34
-@ bl FuncIsActiveTask
-@ lsls r0, 24
-@ lsrs r6, r0, 24
-@ cmp r6, 0
-@ bne _0807C8E4
-@ movs r0, 0x90
-@ lsls r0, 5
-@ bl AllocSpritePalette
-@ adds r5, r0, 0
-@ lsls r5, 24
-@ lsrs r5, 24
-@ ldr r0, _0807C8F0 @ =gUnknown_083970E8
-@ lsls r1, r5, 5
-@ ldr r2, _0807C8F4 @ =gPlttBufferUnfaded + 0x200
-@ adds r1, r2
-@ ldr r2, _0807C8F8 @ =REG_BG0CNT
-@ bl CpuSet
-@ bl sub_807CB10
-@ ldr r4, _0807C8FC @ =gUnknown_0202F7E8
-@ ldr r1, _0807C900 @ =0x000006d5
-@ adds r0, r4, r1
-@ strb r5, [r0]
-@ ldr r0, _0807C904 @ =0x00001201
-@ bl AllocSpritePalette
-@ ldr r2, _0807C908 @ =0x000006d4
-@ adds r1, r4, r2
-@ strb r0, [r1]
-@ ldr r1, _0807C90C @ =0x000006da
-@ adds r0, r4, r1
-@ strb r6, [r0]
-@ adds r2, 0x4
-@ adds r0, r4, r2
-@ strb r6, [r0]
-@ adds r1, 0x4
-@ 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 sub_807DB64
-@ movs r2, 0xDA
-@ lsls r2, 3
-@ adds r0, r4, r2
-@ strb r6, [r0]
-@ ldr r0, _0807C910 @ =0x000006c6
-@ adds r1, r4, r0
-@ movs r0, 0x3
-@ strb r0, [r1]
-@ movs r1, 0xD9
-@ lsls r1, 3
-@ adds r0, r4, r1
-@ strb r6, [r0]
-@ adds r2, 0x3
-@ adds r1, r4, r2
-@ movs r0, 0x1
-@ strb r0, [r1]
-@ ldr r0, _0807C914 @ =sub_807C9E4
-@ movs r1, 0x50
-@ bl CreateTask
-@ ldr r1, _0807C918 @ =0x000006c9
-@ adds r4, r1
-@ strb r0, [r4]
-@_0807C8E4:
-@ pop {r4-r6}
-@ pop {r0}
-@ bx r0
-@ .align 2, 0
-@_0807C8EC: .4byte sub_807CA34
-@_0807C8F0: .4byte gUnknown_083970E8
-@_0807C8F4: .4byte gPlttBufferUnfaded + 0x200
-@_0807C8F8: .4byte REG_BG0CNT
-@_0807C8FC: .4byte gUnknown_0202F7E8
-@_0807C900: .4byte 0x000006d5
-@_0807C904: .4byte 0x00001201
-@_0807C908: .4byte 0x000006d4
-@_0807C90C: .4byte 0x000006da
-@_0807C910: .4byte 0x000006c6
-@_0807C914: .4byte sub_807C9E4
-@_0807C918: .4byte 0x000006c9
-@ thumb_func_end sub_807C828
-
-@ thumb_func_start DoWeatherEffect
-@DoWeatherEffect: @ 807C91C
-@ push {r4,lr}
-@ lsls r0, 24
-@ lsrs r4, r0, 24
-@ cmp r4, 0x3
-@ beq _0807C932
-@ cmp r4, 0x5
-@ beq _0807C932
-@ cmp r4, 0xD
-@ beq _0807C932
-@ bl PlayRainSoundEffect
-@_0807C932:
-@ ldr r1, _0807C974 @ =gUnknown_0202F7E8
-@ ldr r2, _0807C978 @ =0x000006d1
-@ adds r0, r1, r2
-@ ldrb r0, [r0]
-@ cmp r0, r4
-@ beq _0807C956
-@ movs r3, 0xDA
-@ lsls r3, 3
-@ adds r0, r1, r3
-@ ldrb r0, [r0]
-@ cmp r0, r4
-@ bne _0807C956
-@ ldr r0, _0807C97C @ =gUnknown_08396FC8
-@ lsls r1, r4, 4
-@ adds r1, r0
-@ ldr r0, [r1]
-@ bl _call_via_r0
-@_0807C956:
-@ ldr r1, _0807C974 @ =gUnknown_0202F7E8
-@ ldr r2, _0807C980 @ =0x000006d3
-@ adds r0, r1, r2
-@ movs r2, 0
-@ strb r2, [r0]
-@ ldr r3, _0807C978 @ =0x000006d1
-@ adds r0, r1, r3
-@ strb r4, [r0]
-@ ldr r0, _0807C984 @ =0x000006ce
-@ adds r1, r0
-@ strh r2, [r1]
-@ pop {r4}
-@ pop {r0}
-@ bx r0
-@ .align 2, 0
-@_0807C974: .4byte gUnknown_0202F7E8
-@_0807C978: .4byte 0x000006d1
-@_0807C97C: .4byte gUnknown_08396FC8
-@_0807C980: .4byte 0x000006d3
-@_0807C984: .4byte 0x000006ce
-@ thumb_func_end DoWeatherEffect
-
-@ thumb_func_start sub_807C988
-@sub_807C988: @ 807C988
-@ push {r4,lr}
-@ adds r4, r0, 0
-@ lsls r4, 24
-@ lsrs r4, 24
-@ bl PlayRainSoundEffect
-@ ldr r0, _0807C9AC @ =gUnknown_0202F7E8
-@ movs r2, 0xDA
-@ lsls r2, 3
-@ adds r1, r0, r2
-@ strb r4, [r1]
-@ ldr r1, _0807C9B0 @ =0x000006d1
-@ adds r0, r1
-@ strb r4, [r0]
-@ pop {r4}
-@ pop {r0}
-@ bx r0
-@ .align 2, 0
-@_0807C9AC: .4byte gUnknown_0202F7E8
-@_0807C9B0: .4byte 0x000006d1
-@ thumb_func_end sub_807C988
-
-@ thumb_func_start sub_807C9B4
-@sub_807C9B4: @ 807C9B4
-@ push {r4,lr}
-@ adds r4, r0, 0
-@ lsls r4, 24
-@ lsrs r4, 24
-@ bl PlayRainSoundEffect
-@ ldr r1, _0807C9E0 @ =gUnknown_0202F7E8
-@ movs r2, 0xDA
-@ lsls r2, 3
-@ adds r0, r1, r2
-@ strb r4, [r0]
-@ adds r2, 0x1
-@ adds r0, r1, r2
-@ strb r4, [r0]
-@ movs r0, 0xD9
-@ lsls r0, 3
-@ adds r1, r0
-@ movs r0, 0x1
-@ strb r0, [r1]
-@ pop {r4}
-@ pop {r0}
-@ bx r0
-@ .align 2, 0
-@_0807C9E0: .4byte gUnknown_0202F7E8
-@ thumb_func_end sub_807C9B4
-
-@ thumb_func_start sub_807C9E4
-@sub_807C9E4: @ 807C9E4
-@ push {r4,lr}
-@ lsls r0, 24
-@ lsrs r4, r0, 24
-@ ldr r2, _0807CA24 @ =gUnknown_0202F7E8
-@ movs r1, 0xD9
-@ lsls r1, 3
-@ adds r0, r2, r1
-@ ldrb r0, [r0]
-@ cmp r0, 0
-@ beq _0807CA1C
-@ ldr r1, _0807CA28 @ =gUnknown_08396FC8
-@ movs r3, 0xDA
-@ lsls r3, 3
-@ adds r0, r2, r3
-@ ldrb r0, [r0]
-@ lsls r0, 4
-@ adds r1, 0x8
-@ adds r0, r1
-@ ldr r0, [r0]
-@ bl _call_via_r0
-@ ldr r1, _0807CA2C @ =gTasks
-@ lsls r0, r4, 2
-@ adds r0, r4
-@ lsls r0, 3
-@ adds r0, r1
-@ ldr r1, _0807CA30 @ =sub_807CA34
-@ str r1, [r0]
-@_0807CA1C:
-@ pop {r4}
-@ pop {r0}
-@ bx r0
-@ .align 2, 0
-@_0807CA24: .4byte gUnknown_0202F7E8
-@_0807CA28: .4byte gUnknown_08396FC8
-@_0807CA2C: .4byte gTasks
-@_0807CA30: .4byte sub_807CA34
-@ thumb_func_end sub_807C9E4
-
-@ thumb_func_start sub_807CA34
-@sub_807CA34: @ 807CA34
-@ push {r4-r7,lr}
-@ mov r7, r8
-@ push {r7}
-@ ldr r5, _0807CA90 @ =gUnknown_0202F7E8
-@ movs r0, 0xDA
-@ lsls r0, 3
-@ adds r6, r5, r0
-@ ldr r1, _0807CA94 @ =0x000006d1
-@ adds r7, r5, r1
-@ ldrb r0, [r6]
-@ ldrb r2, [r7]
-@ cmp r0, r2
-@ beq _0807CAA8
-@ ldr r0, _0807CA98 @ =gUnknown_08396FC8
-@ mov r8, r0
-@ ldrb r0, [r6]
-@ lsls r0, 4
-@ mov r1, r8
-@ adds r1, 0xC
-@ adds r0, r1
-@ ldr r0, [r0]
-@ bl _call_via_r0
-@ lsls r0, 24
-@ lsrs r4, r0, 24
-@ cmp r4, 0
-@ bne _0807CAB8
-@ ldrb r0, [r7]
-@ lsls r0, 4
-@ add r0, r8
-@ ldr r0, [r0]
-@ bl _call_via_r0
-@ ldr r1, _0807CA9C @ =0x000006c3
-@ adds r0, r5, r1
-@ strb r4, [r0]
-@ ldr r2, _0807CAA0 @ =0x000006c6
-@ adds r0, r5, r2
-@ strb r4, [r0]
-@ ldrb r0, [r7]
-@ strb r0, [r6]
-@ ldr r0, _0807CAA4 @ =0x000006d3
-@ adds r1, r5, r0
-@ movs r0, 0x1
-@ strb r0, [r1]
-@ b _0807CAB8
-@ .align 2, 0
-@_0807CA90: .4byte gUnknown_0202F7E8
-@_0807CA94: .4byte 0x000006d1
-@_0807CA98: .4byte gUnknown_08396FC8
-@_0807CA9C: .4byte 0x000006c3
-@_0807CAA0: .4byte 0x000006c6
-@_0807CAA4: .4byte 0x000006d3
-@_0807CAA8:
-@ ldr r0, _0807CAD8 @ =gUnknown_08396FC8
-@ ldrb r1, [r6]
-@ lsls r1, 4
-@ adds r0, 0x4
-@ adds r1, r0
-@ ldr r0, [r1]
-@ bl _call_via_r0
-@_0807CAB8:
-@ ldr r1, _0807CADC @ =gUnknown_083970B8
-@ ldr r0, _0807CAE0 @ =gUnknown_0202F7E8
-@ ldr r2, _0807CAE4 @ =0x000006c6
-@ adds r0, r2
-@ ldrb r0, [r0]
-@ lsls r0, 2
-@ adds r0, r1
-@ ldr r0, [r0]
-@ bl _call_via_r0
-@ pop {r3}
-@ mov r8, r3
-@ pop {r4-r7}
-@ pop {r0}
-@ bx r0
-@ .align 2, 0
-@_0807CAD8: .4byte gUnknown_08396FC8
-@_0807CADC: .4byte gUnknown_083970B8
-@_0807CAE0: .4byte gUnknown_0202F7E8
-@_0807CAE4: .4byte 0x000006c6
-@ thumb_func_end sub_807CA34
-
-@ thumb_func_start sub_807CAE8
-@sub_807CAE8: @ 807CAE8
-@ ldr r0, _0807CAFC @ =gUnknown_0202F7E8
-@ ldr r2, _0807CB00 @ =0x000006c1
-@ adds r1, r0, r2
-@ movs r2, 0
-@ strb r2, [r1]
-@ ldr r1, _0807CB04 @ =0x000006c2
-@ adds r0, r1
-@ strb r2, [r0]
-@ bx lr
-@ .align 2, 0
-@_0807CAFC: .4byte gUnknown_0202F7E8
-@_0807CB00: .4byte 0x000006c1
-@_0807CB04: .4byte 0x000006c2
-@ thumb_func_end sub_807CAE8
-
-@ thumb_func_start nullsub_38
-@nullsub_38: @ 807CB08
-@ bx lr
-@ thumb_func_end nullsub_38
-
-@ thumb_func_start sub_807CB0C
-@sub_807CB0C: @ 807CB0C
-@ movs r0, 0
-@ bx lr
-@ thumb_func_end sub_807CB0C
-
-@ thumb_func_start sub_807CB10
-@sub_807CB10: @ 807CB10
-@ push {r4-r7,lr}
-@ mov r7, r10
-@ mov r6, r9
-@ mov r5, r8
-@ push {r5-r7}
-@ ldr r1, _0807CB50 @ =gUnknown_030006DC
-@ ldr r0, _0807CB54 @ =gUnknown_083970C8
-@ str r0, [r1]
-@ movs r0, 0
-@ mov r12, r0
-@ ldr r1, _0807CB58 @ =gUnknown_0202FC48
-@ mov r10, r1
-@_0807CB28:
-@ mov r7, r10
-@ mov r0, r12
-@ cmp r0, 0
-@ bne _0807CB34
-@ ldr r1, _0807CB5C @ =0xfffffda0
-@ adds r7, r1
-@_0807CB34:
-@ movs r5, 0
-@ movs r0, 0x1
-@ add r0, r12
-@ mov r9, r0
-@_0807CB3C:
-@ lsls r1, r5, 8
-@ lsls r0, r5, 24
-@ lsrs r2, r0, 16
-@ mov r0, r12
-@ cmp r0, 0
-@ bne _0807CB60
-@ adds r0, r1, 0
-@ lsls r0, 12
-@ lsrs r4, r0, 16
-@ b _0807CB62
-@ .align 2, 0
-@_0807CB50: .4byte gUnknown_030006DC
-@_0807CB54: .4byte gUnknown_083970C8
-@_0807CB58: .4byte gUnknown_0202FC48
-@_0807CB5C: .4byte 0xfffffda0
-@_0807CB60:
-@ movs r4, 0
-@_0807CB62:
-@ movs r3, 0
-@ adds r1, r5, 0x1
-@ mov r8, r1
-@_0807CB68:
-@ subs r1, r2, r4
-@ lsls r1, 16
-@ lsrs r2, r1, 16
-@ lsls r0, r3, 5
-@ adds r0, r7
-@ adds r0, r5
-@ lsrs r1, 24
-@ strb r1, [r0]
-@ adds r0, r3, 0x1
-@ lsls r0, 16
-@ lsrs r3, r0, 16
-@ cmp r3, 0x2
-@ bls _0807CB68
-@ adds r6, r2, 0
-@ movs r0, 0xF8
-@ lsls r0, 5
-@ subs r0, r2
-@ cmp r0, 0
-@ bge _0807CB90
-@ adds r0, 0xF
-@_0807CB90:
-@ lsls r0, 12
-@ lsrs r4, r0, 16
-@ cmp r5, 0xB
-@ bhi _0807CBDA
-@ cmp r3, 0x12
-@ bhi _0807CC00
-@_0807CB9C:
-@ adds r0, r2, r4
-@ lsls r0, 16
-@ lsrs r2, r0, 16
-@ subs r0, r2, r6
-@ lsls r0, 16
-@ asrs r1, r0, 16
-@ cmp r1, 0
-@ ble _0807CBB8
-@ lsrs r0, 31
-@ adds r0, r1, r0
-@ asrs r0, 1
-@ subs r0, r2, r0
-@ lsls r0, 16
-@ lsrs r2, r0, 16
-@_0807CBB8:
-@ lsls r0, r3, 5
-@ adds r0, r7
-@ adds r1, r0, r5
-@ lsrs r0, r2, 8
-@ strb r0, [r1]
-@ lsls r0, 24
-@ lsrs r0, 24
-@ cmp r0, 0x1F
-@ bls _0807CBCE
-@ movs r0, 0x1F
-@ strb r0, [r1]
-@_0807CBCE:
-@ adds r0, r3, 0x1
-@ lsls r0, 16
-@ lsrs r3, r0, 16
-@ cmp r3, 0x12
-@ bls _0807CB9C
-@ b _0807CC00
-@_0807CBDA:
-@ cmp r3, 0x12
-@ bhi _0807CC00
-@ movs r6, 0x1F
-@_0807CBE0:
-@ adds r1, r2, r4
-@ lsls r1, 16
-@ lsrs r2, r1, 16
-@ lsls r0, r3, 5
-@ adds r0, r7
-@ adds r0, r5
-@ lsrs r1, 24
-@ strb r1, [r0]
-@ cmp r1, 0x1F
-@ bls _0807CBF6
-@ strb r6, [r0]
-@_0807CBF6:
-@ adds r0, r3, 0x1
-@ lsls r0, 16
-@ lsrs r3, r0, 16
-@ cmp r3, 0x12
-@ bls _0807CBE0
-@_0807CC00:
-@ mov r1, r8
-@ lsls r0, r1, 16
-@ lsrs r5, r0, 16
-@ cmp r5, 0x1F
-@ bls _0807CB3C
-@ mov r1, r9
-@ lsls r0, r1, 16
-@ lsrs r0, 16
-@ mov r12, r0
-@ cmp r0, 0x1
-@ bls _0807CB28
-@ pop {r3-r5}
-@ mov r8, r3
-@ mov r9, r4
-@ mov r10, r5
-@ pop {r4-r7}
-@ pop {r0}
-@ bx r0
-@ thumb_func_end sub_807CB10
-
-@ thumb_func_start sub_807CC24
-@sub_807CC24: @ 807CC24
-@ push {r4-r7,lr}
-@ ldr r0, _0807CC50 @ =gUnknown_0202F7E8
-@ movs r1, 0xD8
-@ lsls r1, 3
-@ adds r4, r0, r1
-@ ldr r2, _0807CC54 @ =0x000006c1
-@ adds r1, r0, r2
-@ ldrb r7, [r4]
-@ mov r12, r7
-@ movs r6, 0
-@ ldrsb r6, [r4, r6]
-@ movs r5, 0
-@ ldrsb r5, [r1, r5]
-@ adds r3, r0, 0
-@ cmp r6, r5
-@ bne _0807CC5C
-@ ldr r0, _0807CC58 @ =0x000006c6
-@ adds r1, r3, r0
-@ movs r0, 0x3
-@ strb r0, [r1]
-@ b _0807CCA4
-@ .align 2, 0
-@_0807CC50: .4byte gUnknown_0202F7E8
-@_0807CC54: .4byte 0x000006c1
-@_0807CC58: .4byte 0x000006c6
-@_0807CC5C:
-@ ldr r1, _0807CC84 @ =0x000006c3
-@ adds r2, r3, r1
-@ ldrb r0, [r2]
-@ adds r0, 0x1
-@ strb r0, [r2]
-@ ldr r7, _0807CC88 @ =0x000006c2
-@ adds r1, r3, r7
-@ lsls r0, 24
-@ lsrs r0, 24
-@ ldrb r1, [r1]
-@ cmp r0, r1
-@ bcc _0807CCA4
-@ movs r0, 0
-@ strb r0, [r2]
-@ mov r0, r12
-@ cmp r6, r5
-@ bge _0807CC8C
-@ adds r0, 0x1
-@ b _0807CC90
-@ .align 2, 0
-@_0807CC84: .4byte 0x000006c3
-@_0807CC88: .4byte 0x000006c2
-@_0807CC8C:
-@ mov r0, r12
-@ subs r0, 0x1
-@_0807CC90:
-@ strb r0, [r4]
-@ movs r1, 0xD8
-@ lsls r1, 3
-@ adds r0, r3, r1
-@ movs r2, 0
-@ ldrsb r2, [r0, r2]
-@ movs r0, 0
-@ movs r1, 0x20
-@ bl sub_807CEBC
-@_0807CCA4:
-@ pop {r4-r7}
-@ pop {r0}
-@ bx r0
-@ thumb_func_end sub_807CC24
-
-@ thumb_func_start sub_807CCAC
-@sub_807CCAC: @ 807CCAC
-@ push {lr}
-@ ldr r2, _0807CCE4 @ =gUnknown_0202F7E8
-@ ldr r0, _0807CCE8 @ =0x000006cb
-@ adds r1, r2, r0
-@ ldrb r0, [r1]
-@ adds r0, 0x1
-@ strb r0, [r1]
-@ lsls r0, 24
-@ lsrs r0, 24
-@ cmp r0, 0x1
-@ bls _0807CCCA
-@ ldr r3, _0807CCEC @ =0x000006ca
-@ adds r1, r2, r3
-@ movs r0, 0
-@ strb r0, [r1]
-@_0807CCCA:
-@ movs r1, 0xDA
-@ lsls r1, 3
-@ adds r0, r2, r1
-@ ldrb r0, [r0]
-@ subs r0, 0x3
-@ cmp r0, 0xA
-@ bhi _0807CD94
-@ lsls r0, 2
-@ ldr r1, _0807CCF0 @ =_0807CCF4
-@ adds r0, r1
-@ ldr r0, [r0]
-@ mov pc, r0
-@ .align 2, 0
-@_0807CCE4: .4byte gUnknown_0202F7E8
-@_0807CCE8: .4byte 0x000006cb
-@_0807CCEC: .4byte 0x000006ca
-@_0807CCF0: .4byte _0807CCF4
-@ .align 2, 0
-@_0807CCF4:
-@ .4byte _0807CD20
-@ .4byte _0807CD20
-@ .4byte _0807CD20
-@ .4byte _0807CD6C
-@ .4byte _0807CD94
-@ .4byte _0807CD94
-@ .4byte _0807CD94
-@ .4byte _0807CD94
-@ .4byte _0807CD20
-@ .4byte _0807CD48
-@ .4byte _0807CD20
-@_0807CD20:
-@ bl sub_807CDC4
-@ lsls r0, 24
-@ cmp r0, 0
-@ bne _0807CDB4
-@ ldr r0, _0807CD40 @ =gUnknown_0202F7E8
-@ movs r2, 0xD8
-@ lsls r2, 3
-@ adds r1, r0, r2
-@ movs r2, 0x3
-@ strb r2, [r1]
-@ ldr r3, _0807CD44 @ =0x000006c6
-@ adds r0, r3
-@ strb r2, [r0]
-@ b _0807CDB4
-@ .align 2, 0
-@_0807CD40: .4byte gUnknown_0202F7E8
-@_0807CD44: .4byte 0x000006c6
-@_0807CD48:
-@ bl sub_807CE24
-@ lsls r0, 24
-@ cmp r0, 0
-@ bne _0807CDB4
-@ ldr r1, _0807CD64 @ =gUnknown_0202F7E8
-@ movs r0, 0xD8
-@ lsls r0, 3
-@ adds r2, r1, r0
-@ movs r0, 0xFA
-@ strb r0, [r2]
-@ ldr r2, _0807CD68 @ =0x000006c6
-@ adds r1, r2
-@ b _0807CDB0
-@ .align 2, 0
-@_0807CD64: .4byte gUnknown_0202F7E8
-@_0807CD68: .4byte 0x000006c6
-@_0807CD6C:
-@ bl sub_807CE7C
-@ lsls r0, 24
-@ lsrs r2, r0, 24
-@ cmp r2, 0
-@ bne _0807CDB4
-@ ldr r0, _0807CD8C @ =gUnknown_0202F7E8
-@ movs r3, 0xD8
-@ lsls r3, 3
-@ adds r1, r0, r3
-@ strb r2, [r1]
-@ ldr r1, _0807CD90 @ =0x000006c6
-@ adds r0, r1
-@ movs r1, 0x3
-@ strb r1, [r0]
-@ b _0807CDB4
-@ .align 2, 0
-@_0807CD8C: .4byte gUnknown_0202F7E8
-@_0807CD90: .4byte 0x000006c6
-@_0807CD94:
-@ ldr r0, _0807CDB8 @ =gPaletteFade
-@ ldrb r1, [r0, 0x7]
-@ movs r0, 0x80
-@ ands r0, r1
-@ cmp r0, 0
-@ bne _0807CDB4
-@ ldr r3, _0807CDBC @ =0x000006c1
-@ adds r0, r2, r3
-@ ldrb r1, [r0]
-@ subs r3, 0x1
-@ adds r0, r2, r3
-@ strb r1, [r0]
-@ ldr r0, _0807CDC0 @ =0x000006c6
-@ adds r1, r2, r0
-@_0807CDB0:
-@ movs r0, 0x3
-@ strb r0, [r1]
-@_0807CDB4:
-@ pop {r0}
-@ bx r0
-@ .align 2, 0
-@_0807CDB8: .4byte gPaletteFade
-@_0807CDBC: .4byte 0x000006c1
-@_0807CDC0: .4byte 0x000006c6
-@ thumb_func_end sub_807CCAC
-
-@ thumb_func_start sub_807CDC4
-@sub_807CDC4: @ 807CDC4
-@ push {r4,lr}
-@ sub sp, 0x4
-@ ldr r2, _0807CE00 @ =gUnknown_0202F7E8
-@ ldr r0, _0807CE04 @ =0x000006c7
-@ adds r4, r2, r0
-@ ldrb r0, [r4]
-@ cmp r0, 0x10
-@ beq _0807CE1A
-@ adds r1, r0, 0x1
-@ strb r1, [r4]
-@ lsls r0, r1, 24
-@ lsrs r0, 24
-@ cmp r0, 0xF
-@ bhi _0807CE0C
-@ movs r3, 0x10
-@ subs r3, r1
-@ lsls r3, 24
-@ lsrs r3, 24
-@ ldr r1, _0807CE08 @ =0x000006c4
-@ adds r0, r2, r1
-@ ldrh r0, [r0]
-@ str r0, [sp]
-@ movs r0, 0
-@ movs r1, 0x20
-@ movs r2, 0x3
-@ bl sub_807D1BC
-@ movs r0, 0x1
-@ b _0807CE1C
-@ .align 2, 0
-@_0807CE00: .4byte gUnknown_0202F7E8
-@_0807CE04: .4byte 0x000006c7
-@_0807CE08: .4byte 0x000006c4
-@_0807CE0C:
-@ movs r0, 0
-@ movs r1, 0x20
-@ movs r2, 0x3
-@ bl sub_807CEBC
-@ movs r0, 0x10
-@ strb r0, [r4]
-@_0807CE1A:
-@ movs r0, 0
-@_0807CE1C:
-@ add sp, 0x4
-@ pop {r4}
-@ pop {r1}
-@ bx r1
-@ thumb_func_end sub_807CDC4
-
-@ thumb_func_start sub_807CE24
-@sub_807CE24: @ 807CE24
-@ push {r4,lr}
-@ ldr r2, _0807CE58 @ =gUnknown_0202F7E8
-@ ldr r0, _0807CE5C @ =0x000006c7
-@ adds r4, r2, r0
-@ ldrb r0, [r4]
-@ cmp r0, 0x10
-@ beq _0807CE74
-@ adds r3, r0, 0x1
-@ strb r3, [r4]
-@ lsls r0, r3, 24
-@ lsrs r0, 24
-@ cmp r0, 0xF
-@ bhi _0807CE64
-@ movs r0, 0x6
-@ negs r0, r0
-@ movs r1, 0x10
-@ subs r1, r3
-@ lsls r1, 24
-@ lsrs r1, 24
-@ ldr r3, _0807CE60 @ =0x000006c4
-@ adds r2, r3
-@ ldrh r2, [r2]
-@ bl sub_807D304
-@ movs r0, 0x1
-@ b _0807CE76
-@ .align 2, 0
-@_0807CE58: .4byte gUnknown_0202F7E8
-@_0807CE5C: .4byte 0x000006c7
-@_0807CE60: .4byte 0x000006c4
-@_0807CE64:
-@ movs r2, 0x6
-@ negs r2, r2
-@ movs r0, 0
-@ movs r1, 0x20
-@ bl sub_807CEBC
-@ movs r0, 0x10
-@ strb r0, [r4]
-@_0807CE74:
-@ movs r0, 0
-@_0807CE76:
-@ pop {r4}
-@ pop {r1}
-@ bx r1
-@ thumb_func_end sub_807CE24
-
-@ thumb_func_start sub_807CE7C
-@sub_807CE7C: @ 807CE7C
-@ push {lr}
-@ ldr r2, _0807CEA4 @ =gUnknown_0202F7E8
-@ ldr r1, _0807CEA8 @ =0x000006c7
-@ adds r0, r2, r1
-@ ldrb r1, [r0]
-@ cmp r1, 0x10
-@ beq _0807CEB0
-@ adds r1, 0x1
-@ strb r1, [r0]
-@ movs r0, 0x10
-@ subs r0, r1
-@ lsls r0, 24
-@ lsrs r0, 24
-@ ldr r3, _0807CEAC @ =0x000006c4
-@ adds r1, r2, r3
-@ ldrh r1, [r1]
-@ bl sub_807D424
-@ movs r0, 0x1
-@ b _0807CEB2
-@ .align 2, 0
-@_0807CEA4: .4byte gUnknown_0202F7E8
-@_0807CEA8: .4byte 0x000006c7
-@_0807CEAC: .4byte 0x000006c4
-@_0807CEB0:
-@ movs r0, 0
-@_0807CEB2:
-@ pop {r1}
-@ bx r1
-@ thumb_func_end sub_807CE7C
-
-@ thumb_func_start nullsub_39
-@nullsub_39: @ 807CEB8
-@ bx lr
-@ thumb_func_end nullsub_39
-
thumb_func_start sub_807CEBC
sub_807CEBC: @ 807CEBC
push {r4-r7,lr}
diff --git a/common_syms/m4a_2.txt b/common_syms/m4a_2.txt
index b40bb7fcf..a80d8a79d 100644
--- a/common_syms/m4a_2.txt
+++ b/common_syms/m4a_2.txt
@@ -5,3 +5,8 @@ gMPlayJumpTable
gCgbChans
gPokemonCryTracks
gPokemonCrySong
+gMPlay_BGM
+gMPlay_SE1
+gMPlay_SE2
+gMPlayMemAccArea
+gMPlay_SE3
diff --git a/constants/ability_constants.s b/constants/ability_constants.inc
index 8ccc872f7..8ccc872f7 100644
--- a/constants/ability_constants.s
+++ b/constants/ability_constants.inc
diff --git a/constants/battle.s b/constants/battle.inc
index c6094b15f..c6094b15f 100644
--- a/constants/battle.s
+++ b/constants/battle.inc
diff --git a/constants/battle_move_constants.s b/constants/battle_move_constants.inc
index a05da3db3..a05da3db3 100644
--- a/constants/battle_move_constants.s
+++ b/constants/battle_move_constants.inc
diff --git a/constants/battle_move_effects.s b/constants/battle_move_effects.inc
index bd801083b..bd801083b 100644
--- a/constants/battle_move_effects.s
+++ b/constants/battle_move_effects.inc
diff --git a/constants/battle_text.s b/constants/battle_text.inc
index f7025f68f..f7025f68f 100644
--- a/constants/battle_text.s
+++ b/constants/battle_text.inc
diff --git a/constants/battle_tower_constants.s b/constants/battle_tower_constants.inc
index 136b43bd7..136b43bd7 100644
--- a/constants/battle_tower_constants.s
+++ b/constants/battle_tower_constants.inc
diff --git a/constants/berry_constants.s b/constants/berry_constants.inc
index 2ecd7ac36..2ecd7ac36 100644
--- a/constants/berry_constants.s
+++ b/constants/berry_constants.inc
diff --git a/constants/constants.inc b/constants/constants.inc
new file mode 100644
index 000000000..81d3b72fe
--- /dev/null
+++ b/constants/constants.inc
@@ -0,0 +1,28 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/misc_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "constants/ability_constants.inc"
+ .include "constants/move_constants.inc"
+ .include "constants/item_constants.inc"
+ .include "constants/type_constants.inc"
+ .include "constants/contest_constants.inc"
+ .include "constants/pokemon_data_constants.inc"
+ .include "constants/item_data_constants.inc"
+ .include "constants/battle_move_constants.inc"
+ .include "constants/easy_chat_constants.inc"
+ .include "constants/trainer_constants.inc"
+ .include "constants/map_constants.inc"
+ .include "constants/berry_constants.inc"
+ .include "constants/map_object_constants.inc"
+ .include "constants/battle_tower_constants.inc"
+ .include "constants/opponent_constants.inc"
+ .include "constants/decorations.inc"
+ .include "constants/songs.inc"
+ .include "constants/version.inc"
+ .include "constants/region_map_sections.inc"
+ .include "constants/hold_effects.inc"
+ .include "constants/battle.inc"
+ .include "constants/battle_text.inc"
+ .include "constants/battle_move_effects.inc"
+ .include "constants/contest_move_effects.inc"
+ .include "constants/game_stat.inc"
diff --git a/constants/constants.s b/constants/constants.s
deleted file mode 100644
index daca14090..000000000
--- a/constants/constants.s
+++ /dev/null
@@ -1,29 +0,0 @@
- .include "constants/gba_constants.s"
- .include "constants/misc_constants.s"
- .include "constants/species_constants.s"
- .include "constants/ability_constants.s"
- .include "constants/move_constants.s"
- .include "constants/item_constants.s"
- .include "constants/type_constants.s"
- .include "constants/contest_constants.s"
- .include "constants/pokemon_data_constants.s"
- .include "constants/item_data_constants.s"
- .include "constants/battle_move_constants.s"
- .include "constants/easy_chat_constants.s"
- .include "constants/trainer_constants.s"
- .include "constants/map_constants.s"
- .include "constants/berry_constants.s"
- .include "constants/map_object_constants.s"
- .include "constants/battle_tower_constants.s"
- .include "constants/opponent_constants.s"
- .include "constants/decorations.s"
- .include "constants/variables.s"
- .include "constants/songs.s"
- .include "constants/version.s"
- .include "constants/region_map_sections.s"
- .include "constants/hold_effects.s"
- .include "constants/battle.s"
- .include "constants/battle_text.s"
- .include "constants/battle_move_effects.s"
- .include "constants/contest_move_effects.s"
- .include "constants/game_stat.s"
diff --git a/constants/contest_constants.s b/constants/contest_constants.inc
index e971764d6..e971764d6 100644
--- a/constants/contest_constants.s
+++ b/constants/contest_constants.inc
diff --git a/constants/contest_move_effects.s b/constants/contest_move_effects.inc
index b19e05004..b19e05004 100644
--- a/constants/contest_move_effects.s
+++ b/constants/contest_move_effects.inc
diff --git a/constants/decorations.s b/constants/decorations.inc
index 482799f9e..482799f9e 100644
--- a/constants/decorations.s
+++ b/constants/decorations.inc
diff --git a/constants/easy_chat_constants.s b/constants/easy_chat_constants.inc
index 69639769d..69639769d 100644
--- a/constants/easy_chat_constants.s
+++ b/constants/easy_chat_constants.inc
diff --git a/constants/game_stat.s b/constants/game_stat.inc
index ff8b2df00..ff8b2df00 100644
--- a/constants/game_stat.s
+++ b/constants/game_stat.inc
diff --git a/constants/gba_constants.s b/constants/gba_constants.inc
index 9d59c8fcd..9d59c8fcd 100644
--- a/constants/gba_constants.s
+++ b/constants/gba_constants.inc
diff --git a/constants/hold_effects.s b/constants/hold_effects.inc
index 349a195bd..349a195bd 100644
--- a/constants/hold_effects.s
+++ b/constants/hold_effects.inc
diff --git a/constants/item_constants.s b/constants/item_constants.inc
index 934ebd798..934ebd798 100644
--- a/constants/item_constants.s
+++ b/constants/item_constants.inc
diff --git a/constants/item_data_constants.s b/constants/item_data_constants.inc
index 07ceb6e3b..07ceb6e3b 100644
--- a/constants/item_data_constants.s
+++ b/constants/item_data_constants.inc
diff --git a/constants/m4a_constants.s b/constants/m4a_constants.inc
index 62ca5bb55..62ca5bb55 100644
--- a/constants/m4a_constants.s
+++ b/constants/m4a_constants.inc
diff --git a/constants/map_constants.s b/constants/map_constants.inc
index d7a8a323e..d7a8a323e 100644
--- a/constants/map_constants.s
+++ b/constants/map_constants.inc
diff --git a/constants/map_object_constants.s b/constants/map_object_constants.inc
index e0843914f..e0843914f 100644
--- a/constants/map_object_constants.s
+++ b/constants/map_object_constants.inc
diff --git a/constants/misc_constants.s b/constants/misc_constants.inc
index 64f671e8f..64f671e8f 100644
--- a/constants/misc_constants.s
+++ b/constants/misc_constants.inc
diff --git a/constants/move_constants.s b/constants/move_constants.inc
index b6c8edf98..b6c8edf98 100644
--- a/constants/move_constants.s
+++ b/constants/move_constants.inc
diff --git a/constants/opponent_constants.s b/constants/opponent_constants.inc
index 6782d3151..6782d3151 100644
--- a/constants/opponent_constants.s
+++ b/constants/opponent_constants.inc
diff --git a/constants/pokemon_data_constants.s b/constants/pokemon_data_constants.inc
index cf5d4df41..cf5d4df41 100644
--- a/constants/pokemon_data_constants.s
+++ b/constants/pokemon_data_constants.inc
diff --git a/constants/region_map_sections.s b/constants/region_map_sections.inc
index 25f1b6ee1..25f1b6ee1 100644
--- a/constants/region_map_sections.s
+++ b/constants/region_map_sections.inc
diff --git a/constants/songs.s b/constants/songs.inc
index a89376983..a89376983 100644
--- a/constants/songs.s
+++ b/constants/songs.inc
diff --git a/constants/species_constants.s b/constants/species_constants.inc
index 8f164a1d9..8f164a1d9 100644
--- a/constants/species_constants.s
+++ b/constants/species_constants.inc
diff --git a/constants/trainer_constants.s b/constants/trainer_constants.inc
index 48ed3036e..48ed3036e 100644
--- a/constants/trainer_constants.s
+++ b/constants/trainer_constants.inc
diff --git a/constants/type_constants.s b/constants/type_constants.inc
index c6611bd8a..c6611bd8a 100644
--- a/constants/type_constants.s
+++ b/constants/type_constants.inc
diff --git a/constants/variables.inc b/constants/variables.inc
new file mode 100644
index 000000000..ab488a97e
--- /dev/null
+++ b/constants/variables.inc
@@ -0,0 +1,6 @@
+ .equiv FACING, 0x800C
+ .equiv RESULT, 0x800D
+ .equiv ITEM_ID, 0x800E
+ .equiv LAST_TALKED, 0x800F
+ .equiv CONTEST_RANK, 0x8010
+ .equiv CONTEST_CATEGORY, 0x8011
diff --git a/constants/variables.s b/constants/variables.s
deleted file mode 100644
index b92ca5975..000000000
--- a/constants/variables.s
+++ /dev/null
@@ -1,3 +0,0 @@
- .equiv FACING, 0x800c
- .equiv RESULT, 0x800d
- .equiv LAST_TALKED, 0x800f
diff --git a/constants/version.s b/constants/version.inc
index 33d2804fc..33d2804fc 100644
--- a/constants/version.s
+++ b/constants/version.inc
diff --git a/data/bard_music.s b/data/bard_music.inc
index 87f9ecf46..87f9ecf46 100644
--- a/data/bard_music.s
+++ b/data/bard_music.inc
diff --git a/data/base_stats.s b/data/base_stats.inc
index 47128c8a6..47128c8a6 100644
--- a/data/base_stats.s
+++ b/data/base_stats.inc
diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s
index a0dc3f6cf..86023ca01 100644
--- a/data/battle_ai_scripts.s
+++ b/data/battle_ai_scripts.s
@@ -1,6 +1,6 @@
- .include "asm/macros.s"
- .include "constants/constants.s"
- .include "asm/macros/battle_ai_script.s"
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+ .include "asm/macros/battle_ai_script.inc"
.section script_data, "aw", %progbits
diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s
index 1f06a4b24..fad85183f 100644
--- a/data/battle_anim_scripts.s
+++ b/data/battle_anim_scripts.s
@@ -1,6 +1,6 @@
- .include "asm/macros.s"
- .include "asm/macros/battle_anim.s"
- .include "constants/constants.s"
+ .include "asm/macros.inc"
+ .include "asm/macros/battle_anim.inc"
+ .include "constants/constants.inc"
.section script_data, "aw", %progbits
diff --git a/data/battle_moves.s b/data/battle_moves.inc
index ff7e2cb33..ff7e2cb33 100644
--- a/data/battle_moves.s
+++ b/data/battle_moves.inc
diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s
index 0a472467e..f65807005 100644
--- a/data/battle_scripts_1.s
+++ b/data/battle_scripts_1.s
@@ -1,6 +1,6 @@
- .include "asm/macros.s"
- .include "constants/constants.s"
- .include "asm/macros/battle_script.s"
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+ .include "asm/macros/battle_script.inc"
.section script_data, "aw", %progbits
diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s
index 248baf978..4bee5101c 100644
--- a/data/battle_scripts_2.s
+++ b/data/battle_scripts_2.s
@@ -1,6 +1,6 @@
- .include "asm/macros.s"
- .include "constants/constants.s"
- .include "asm/macros/battle_script.s"
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+ .include "asm/macros/battle_script.inc"
.section script_data, "aw", %progbits
diff --git a/data/battle_tower/held_items.s b/data/battle_tower/held_items.inc
index 6c4f0838b..6c4f0838b 100644
--- a/data/battle_tower/held_items.s
+++ b/data/battle_tower/held_items.inc
diff --git a/data/battle_tower/level_100_mons.s b/data/battle_tower/level_100_mons.inc
index 9e678153e..9e678153e 100644
--- a/data/battle_tower/level_100_mons.s
+++ b/data/battle_tower/level_100_mons.inc
diff --git a/data/battle_tower/level_50_mons.s b/data/battle_tower/level_50_mons.inc
index 3dfc269a8..3dfc269a8 100644
--- a/data/battle_tower/level_50_mons.s
+++ b/data/battle_tower/level_50_mons.inc
diff --git a/data/battle_tower/trainers.s b/data/battle_tower/trainers.inc
index 05fadc320..05fadc320 100644
--- a/data/battle_tower/trainers.s
+++ b/data/battle_tower/trainers.inc
diff --git a/data/berries.s b/data/berries.inc
index 7d7d3edd1..7d7d3edd1 100644
--- a/data/berries.s
+++ b/data/berries.inc
diff --git a/data/clock_hand_coords.s b/data/clock_hand_coords.inc
index 476ffb788..476ffb788 100644
--- a/data/clock_hand_coords.s
+++ b/data/clock_hand_coords.inc
diff --git a/data/contest_ai_scripts.s b/data/contest_ai_scripts.s
index e0ca72de2..2c709ba09 100644
--- a/data/contest_ai_scripts.s
+++ b/data/contest_ai_scripts.s
@@ -1,6 +1,6 @@
- .include "asm/macros.s"
- .include "asm/macros/contest_ai_script.s"
- .include "constants/constants.s"
+ .include "asm/macros.inc"
+ .include "asm/macros/contest_ai_script.inc"
+ .include "constants/constants.inc"
.section script_data, "aw", %progbits
diff --git a/data/contest_effect_funcs.s b/data/contest_effect_funcs.inc
index 8dbe9d595..8dbe9d595 100644
--- a/data/contest_effect_funcs.s
+++ b/data/contest_effect_funcs.inc
diff --git a/data/contest_effects.s b/data/contest_effects.inc
index 55d5c0e50..55d5c0e50 100644
--- a/data/contest_effects.s
+++ b/data/contest_effects.inc
diff --git a/data/contest_excitement_table.s b/data/contest_excitement_table.inc
index 359e46c54..359e46c54 100644
--- a/data/contest_excitement_table.s
+++ b/data/contest_excitement_table.inc
diff --git a/data/contest_moves.s b/data/contest_moves.inc
index 8765c0dbe..8765c0dbe 100644
--- a/data/contest_moves.s
+++ b/data/contest_moves.inc
diff --git a/data/contest_opponents.s b/data/contest_opponents.inc
index 2c502285e..2c502285e 100644
--- a/data/contest_opponents.s
+++ b/data/contest_opponents.inc
diff --git a/data/crc16_table.s b/data/crc16_table.inc
index a1f8babd0..a1f8babd0 100644
--- a/data/crc16_table.s
+++ b/data/crc16_table.inc
diff --git a/data/cry_id_table.s b/data/cry_id_table.inc
index 5a39a2194..5a39a2194 100644
--- a/data/cry_id_table.s
+++ b/data/cry_id_table.inc
diff --git a/data/cute_sketch.s b/data/cute_sketch.inc
index 4e23cd87d..4e23cd87d 100644
--- a/data/cute_sketch.s
+++ b/data/cute_sketch.inc
diff --git a/data/data2.s b/data/data2.s
index 6da232e0f..4a3b246cb 100644
--- a/data/data2.s
+++ b/data/data2.s
@@ -1,7 +1,7 @@
@ the second big chunk of data
- .include "asm/macros.s"
- .include "constants/constants.s"
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
.section .rodata
@@ -245,22 +245,22 @@ gSpriteAnimTable_81E7C64:: @ 81E7C64
.4byte gSpriteAnim_81E7C5C
@ 81E7C74
- .include "data/graphics/pokemon/front_pic_coords.s"
+ .include "data/graphics/pokemon/front_pic_coords.inc"
@ 81E8354
- .include "data/graphics/pokemon/front_pic_table.s"
+ .include "data/graphics/pokemon/front_pic_table.inc"
@ 81E9114
- .include "data/graphics/pokemon/back_pic_coords.s"
+ .include "data/graphics/pokemon/back_pic_coords.inc"
@ 81E97F4
- .include "data/graphics/pokemon/back_pic_table.s"
+ .include "data/graphics/pokemon/back_pic_table.inc"
@ 81EA5B4
- .include "data/graphics/pokemon/palette_table.s"
+ .include "data/graphics/pokemon/palette_table.inc"
@ 81EB374
- .include "data/graphics/pokemon/shiny_palette_table.s"
+ .include "data/graphics/pokemon/shiny_palette_table.inc"
.align 2
gSpriteAnim_81EC134:: @ 81EC134
@@ -699,13 +699,13 @@ gUnknown_081EC2A4:: @ 81EC2A4
.4byte gSpriteAnimTable_81EC2A0
@ 81EC3F0
- .include "data/graphics/trainers/front_pic_coords.s"
+ .include "data/graphics/trainers/front_pic_coords.inc"
@ 81EC53C
- .include "data/graphics/trainers/front_pic_table.s"
+ .include "data/graphics/trainers/front_pic_table.inc"
@ 81EC7D4
- .include "data/graphics/trainers/front_pic_palette_table.s"
+ .include "data/graphics/trainers/front_pic_palette_table.inc"
.align 2
gSpriteAnim_81ECA6C:: @ 81ECA6C
@@ -756,31 +756,31 @@ gUnknown_081ECACC:: @ 81ECACC
.4byte gSpriteAnimTable_81ECAC4
@ 81ECAD8
- .include "data/graphics/trainers/back_pic_coords.s"
+ .include "data/graphics/trainers/back_pic_coords.inc"
@ 81ECAE4
- .include "data/graphics/trainers/back_pic_table.s"
+ .include "data/graphics/trainers/back_pic_table.inc"
@ 81ECAFC
- .include "data/graphics/trainers/back_pic_palette_table.s"
+ .include "data/graphics/trainers/back_pic_palette_table.inc"
@ 81ECB14
- .include "data/enemy_mon_elevation.s"
+ .include "data/enemy_mon_elevation.inc"
@ 81ECCB0
- .include "data/trainer_parties.s"
+ .include "data/trainer_parties.inc"
@ 81F0208
- .include "data/text/trainer_class_names.s"
+ .include "data/text/trainer_class_names.inc"
@ 81F04FC
- .include "data/trainers.s"
+ .include "data/trainers.inc"
@ 81F716C
- .include "data/text/species_names.s"
+ .include "data/text/species_names.inc"
@ 81F8320
- .include "data/text/move_names.s"
+ .include "data/text/move_names.inc"
.align 2
@ 81F9528
@@ -982,19 +982,19 @@ gSpriteAffineAnimTable_81F971C:: @ 81F971C
.4byte gSpriteAffineAnim_81F9704
@ 81F9720
- .include "data/type_effectiveness.s"
+ .include "data/type_effectiveness.inc"
@ 81F9870
- .include "data/text/type_names.s"
+ .include "data/text/type_names.inc"
@ 81F98F0
- .include "data/trainer_money.s"
+ .include "data/trainer_money.inc"
@ 81F99CC
- .include "data/text/ability_descriptions.s"
+ .include "data/text/ability_descriptions.inc"
@ 81FA248
- .include "data/text/ability_names.s"
+ .include "data/text/ability_names.inc"
.align 2
gUnknown_081FA640:: @ 81FA640
@@ -1848,7 +1848,7 @@ gUnknown_081FB048:: @ 81FB048
.4byte nullsub_48
@ 81FB12C
- .include "data/battle_moves.s"
+ .include "data/battle_moves.inc"
.align 2
gUnknown_081FC1D0:: @ 81FC1D0
@@ -1859,40 +1859,40 @@ gUnknown_081FC1D0:: @ 81FC1D0
.space 2
@ 81FC1E0
- .include "data/species_id_conversion_tables.s"
+ .include "data/species_id_conversion_tables.inc"
@ 81FCB84
- .include "data/spinda_spot_graphics.s"
+ .include "data/spinda_spot_graphics.inc"
@ 81FCC14
- .include "data/item_effects.s"
+ .include "data/item_effects.inc"
@ 81FD070
- .include "data/nature_stat_table.s"
+ .include "data/nature_stat_table.inc"
@ 81FD0F0
- .include "data/tm_hm_learnsets.s"
+ .include "data/tm_hm_learnsets.inc"
@ 81FDDD0
- .include "data/trainer_class_index_tables.s"
+ .include "data/trainer_class_index_tables.inc"
@ 81FDE6A
- .include "data/cry_id_table.s"
+ .include "data/cry_id_table.inc"
@ 81FDF78
- .include "data/experience_tables/tables.s"
+ .include "data/experience_tables/tables.inc"
@ 81FEC18
- .include "data/base_stats.s"
+ .include "data/base_stats.inc"
@ 8201928
- .include "data/level_up_learnsets.s"
+ .include "data/level_up_learnsets.inc"
@ 8203B68
- .include "data/evolution_table.s"
+ .include "data/evolution_table.inc"
@ 8207BC8
- .include "data/level_up_learnset_pointers.s"
+ .include "data/level_up_learnset_pointers.inc"
gUnknown_08208238:: @ 8208238
.byte 0x03, 0x0C, 0x30, 0xC0
@@ -1989,10 +1989,10 @@ gUnknown_08208337:: @ 8208337
.string "ニドラン♀$", 13
@ 8208344
- .include "data/sine_table.s"
+ .include "data/sine_table.inc"
@ 82085C4
- .include "data/sine_degree_table.s"
+ .include "data/sine_degree_table.inc"
.align 2
gBitTable:: @ 820872C
@@ -2055,14 +2055,14 @@ gUnknown_082087C4:: @ 82087C4
.byte 4, 8
@ 82087DC
- .include "data/crc16_table.s"
+ .include "data/crc16_table.inc"
.align 2
gMiscBlank_Gfx:: @ 82089DC
.incbin "graphics/interface/blank.4bpp"
@ 82091DC
- .include "data/egg_moves.s"
+ .include "data/egg_moves.inc"
.align 2
gUnknown_08209AC4:: @ 8209AC4
@@ -3297,7 +3297,7 @@ gSpriteAffineAnimTable_8215AC0:: @ 8215AC0
.4byte gSpriteAffineAnim_8215AB0
@ 8215AC4
- .include "data/ingame_trades.s"
+ .include "data/ingame_trades.inc"
gTradeBallVerticalVelocityTable:: @ 8215BA0
.byte 0
@@ -3916,19 +3916,19 @@ gUnknown_082166D8:: @ 82166D8
.4byte sub_8055D38
@ 82166E0
- .include "data/tilesets/graphics.s"
+ .include "data/tilesets/graphics.inc"
@ 8259C1C
- .include "data/tilesets/metatiles.s"
+ .include "data/tilesets/metatiles.inc"
@ 8286CF4
- .include "data/tilesets/headers.s"
+ .include "data/tilesets/headers.inc"
- .include "data/maps/_assets.s"
- .include "data/maps/attributes_table.s"
- .include "data/maps/headers.s"
- .include "data/maps/_groups.s"
- .include "data/maps/connections.s"
+ .include "data/maps/_assets.inc"
+ .include "data/maps/attributes_table.inc"
+ .include "data/maps/headers.inc"
+ .include "data/maps/_groups.inc"
+ .include "data/maps/connections.inc"
.align 2
gUnknown_08308E28:: @ 8308E28
@@ -4434,14 +4434,14 @@ DoorAnimTiles_33: @ 830F55C
.space 32
-gUnknown_0830F87C:: @ 830F87C
+gDoorOpenAnimFrames:: @ 830F87C
door_anim_frame 4, -1
door_anim_frame 4, 0
door_anim_frame 4, 0x100
door_anim_frame 4, 0x200
door_anim_frame 0, 0
-gUnknown_0830F890:: @ 830F890
+gDoorCloseAnimFrames:: @ 830F890
door_anim_frame 4, 0x200
door_anim_frame 4, 0x100
door_anim_frame 4, 0
@@ -4732,22 +4732,22 @@ gUnknown_0830FCAC:: @ 830FCAC
.align 2
gUnknown_0830FCB4:: @ 830FCB4
- .4byte sub_805A3B4
- .4byte fish1
- .4byte fish2
- .4byte fish3
- .4byte fish4
- .4byte party_menu_update_status_condition_object
- .4byte sub_805A5CC
- .4byte fish7
- .4byte fish8
- .4byte sub_805A6B4
- .4byte sub_805A6DC
- .4byte sub_805A7BC
- .4byte sub_805A808
- .4byte fishD
- .4byte sub_805A874
- .4byte fishF
+ .4byte Fishing1
+ .4byte Fishing2
+ .4byte Fishing3
+ .4byte Fishing4
+ .4byte Fishing5
+ .4byte Fishing6
+ .4byte Fishing7
+ .4byte Fishing8
+ .4byte Fishing9
+ .4byte Fishing10
+ .4byte Fishing11
+ .4byte Fishing12
+ .4byte Fishing13
+ .4byte Fishing14
+ .4byte Fishing15
+ .4byte Fishing16
.align 1
gUnknown_0830FCF4:: @ 830FCF4
@@ -4782,10 +4782,10 @@ gUnknown_0830FD3C:: @ 830FD3C
.4byte CameraObject_2
@ 830FD48
- .include "data/graphics/field_objects/map_object_graphics.s"
+ .include "data/graphics/field_objects/map_object_graphics.inc"
@ 8368528
- .include "data/graphics/field_objects/field_effect_object_graphics.s"
+ .include "data/graphics/field_objects/field_effect_object_graphics.inc"
.align 2
gUnknown_0836DA88:: @ 836DA88
@@ -5026,25 +5026,25 @@ gUnknown_0836DC09:: @ 836DC09
.byte DIR_SOUTH
@ 836DC58
- .include "data/graphics/field_objects/map_object_graphics_info_pointers.s"
+ .include "data/graphics/field_objects/map_object_graphics_info_pointers.inc"
@ 836DFC0
- .include "data/graphics/field_objects/field_effect_object_template_pointers.s"
+ .include "data/graphics/field_objects/field_effect_object_template_pointers.inc"
@ 836E050
- .include "data/graphics/field_objects/map_object_pic_tables.s"
+ .include "data/graphics/field_objects/map_object_pic_tables.inc"
@ 83708C8
- .include "data/graphics/field_objects/map_object_anims.s"
+ .include "data/graphics/field_objects/map_object_anims.inc"
@ 83711C4
- .include "data/graphics/field_objects/base_oam.s"
+ .include "data/graphics/field_objects/base_oam.inc"
@ 8371204
- .include "data/graphics/field_objects/map_object_subsprites.s"
+ .include "data/graphics/field_objects/map_object_subsprites.inc"
@ 83718D4
- .include "data/graphics/field_objects/map_object_graphics_info.s"
+ .include "data/graphics/field_objects/map_object_graphics_info.inc"
.align 2
gUnknown_0837377C:: @ 837377C
@@ -5250,10 +5250,10 @@ gUnknown_0837399C:: @ 837399C
.4byte Unknown_8373988
@ 83739AC
- .include "data/graphics/field_objects/berry_tree_graphics_tables.s"
+ .include "data/graphics/field_objects/berry_tree_graphics_tables.inc"
@ 8374524
- .include "data/graphics/field_objects/field_effect_objects.s"
+ .include "data/graphics/field_objects/field_effect_objects.inc"
.align 1
gUnknown_0837520C:: @ 837520C
@@ -7124,7 +7124,7 @@ gUnknown_08376364:: @ 8376364
.4byte sub_8069AA0
.4byte sub_8069864
.4byte sub_8069DD4
- .4byte sub_80C7700
+ .4byte EndTruckSequence
.4byte sub_80BCF1C
.4byte sub_806A07C
@@ -9754,399 +9754,399 @@ gUnknown_0837F5E0:: @ 837F5E0
obj_tiles gMiscBlank_Gfx, 2048, 0xd755
obj_tiles gMiscBlank_Gfx, 2048, 0xd756
- .include "data/maps/events/PetalburgCity.s"
- .include "data/maps/events/SlateportCity.s"
- .include "data/maps/events/MauvilleCity.s"
- .include "data/maps/events/RustboroCity.s"
- .include "data/maps/events/FortreeCity.s"
- .include "data/maps/events/LilycoveCity.s"
- .include "data/maps/events/MossdeepCity.s"
- .include "data/maps/events/SootopolisCity.s"
- .include "data/maps/events/EverGrandeCity.s"
- .include "data/maps/events/LittlerootTown.s"
- .include "data/maps/events/OldaleTown.s"
- .include "data/maps/events/DewfordTown.s"
- .include "data/maps/events/LavaridgeTown.s"
- .include "data/maps/events/FallarborTown.s"
- .include "data/maps/events/VerdanturfTown.s"
- .include "data/maps/events/PacifidlogTown.s"
- .include "data/maps/events/Route101.s"
- .include "data/maps/events/Route102.s"
- .include "data/maps/events/Route103.s"
- .include "data/maps/events/Route104.s"
- .include "data/maps/events/Route105.s"
- .include "data/maps/events/Route106.s"
- .include "data/maps/events/Route107.s"
- .include "data/maps/events/Route108.s"
- .include "data/maps/events/Route109.s"
- .include "data/maps/events/Route110.s"
- .include "data/maps/events/Route111.s"
- .include "data/maps/events/Route112.s"
- .include "data/maps/events/Route113.s"
- .include "data/maps/events/Route114.s"
- .include "data/maps/events/Route115.s"
- .include "data/maps/events/Route116.s"
- .include "data/maps/events/Route117.s"
- .include "data/maps/events/Route118.s"
- .include "data/maps/events/Route119.s"
- .include "data/maps/events/Route120.s"
- .include "data/maps/events/Route121.s"
- .include "data/maps/events/Route122.s"
- .include "data/maps/events/Route123.s"
- .include "data/maps/events/Route124.s"
- .include "data/maps/events/Route125.s"
- .include "data/maps/events/Route126.s"
- .include "data/maps/events/Route127.s"
- .include "data/maps/events/Route128.s"
- .include "data/maps/events/Route129.s"
- .include "data/maps/events/Route130.s"
- .include "data/maps/events/Route131.s"
- .include "data/maps/events/Route132.s"
- .include "data/maps/events/Route133.s"
- .include "data/maps/events/Route134.s"
- .include "data/maps/events/Underwater1.s"
- .include "data/maps/events/Underwater2.s"
- .include "data/maps/events/Underwater3.s"
- .include "data/maps/events/Underwater4.s"
- .include "data/maps/events/LittlerootTown_BrendansHouse_1F.s"
- .include "data/maps/events/LittlerootTown_BrendansHouse_2F.s"
- .include "data/maps/events/LittlerootTown_MaysHouse_1F.s"
- .include "data/maps/events/LittlerootTown_MaysHouse_2F.s"
- .include "data/maps/events/LittlerootTown_ProfessorBirchsLab.s"
- .include "data/maps/events/OldaleTown_House1.s"
- .include "data/maps/events/OldaleTown_House2.s"
- .include "data/maps/events/OldaleTown_PokemonCenter_1F.s"
- .include "data/maps/events/OldaleTown_PokemonCenter_2F.s"
- .include "data/maps/events/OldaleTown_Mart.s"
- .include "data/maps/events/DewfordTown_House1.s"
- .include "data/maps/events/DewfordTown_PokemonCenter_1F.s"
- .include "data/maps/events/DewfordTown_PokemonCenter_2F.s"
- .include "data/maps/events/DewfordTown_Gym.s"
- .include "data/maps/events/DewfordTown_Hall.s"
- .include "data/maps/events/DewfordTown_House2.s"
- .include "data/maps/events/LavaridgeTown_HerbShop.s"
- .include "data/maps/events/LavaridgeTown_Gym_1F.s"
- .include "data/maps/events/LavaridgeTown_Gym_B1F.s"
- .include "data/maps/events/LavaridgeTown_House.s"
- .include "data/maps/events/LavaridgeTown_Mart.s"
- .include "data/maps/events/LavaridgeTown_PokemonCenter_1F.s"
- .include "data/maps/events/LavaridgeTown_PokemonCenter_2F.s"
- .include "data/maps/events/FallarborTown_Mart.s"
- .include "data/maps/events/FallarborTown_ContestLobby.s"
- .include "data/maps/events/FallarborTown_ContestHall.s"
- .include "data/maps/events/FallarborTown_PokemonCenter_1F.s"
- .include "data/maps/events/FallarborTown_PokemonCenter_2F.s"
- .include "data/maps/events/FallarborTown_House1.s"
- .include "data/maps/events/FallarborTown_House2.s"
- .include "data/maps/events/VerdanturfTown_ContestLobby.s"
- .include "data/maps/events/VerdanturfTown_ContestHall.s"
- .include "data/maps/events/VerdanturfTown_Mart.s"
- .include "data/maps/events/VerdanturfTown_PokemonCenter_1F.s"
- .include "data/maps/events/VerdanturfTown_PokemonCenter_2F.s"
- .include "data/maps/events/VerdanturfTown_WandasHouse.s"
- .include "data/maps/events/VerdanturfTown_FriendshipRatersHouse.s"
- .include "data/maps/events/VerdanturfTown_House.s"
- .include "data/maps/events/PacifidlogTown_PokemonCenter_1F.s"
- .include "data/maps/events/PacifidlogTown_PokemonCenter_2F.s"
- .include "data/maps/events/PacifidlogTown_House1.s"
- .include "data/maps/events/PacifidlogTown_House2.s"
- .include "data/maps/events/PacifidlogTown_House3.s"
- .include "data/maps/events/PacifidlogTown_House4.s"
- .include "data/maps/events/PacifidlogTown_House5.s"
- .include "data/maps/events/PetalburgCity_WallysHouse.s"
- .include "data/maps/events/PetalburgCity_Gym.s"
- .include "data/maps/events/PetalburgCity_House1.s"
- .include "data/maps/events/PetalburgCity_House2.s"
- .include "data/maps/events/PetalburgCity_PokemonCenter_1F.s"
- .include "data/maps/events/PetalburgCity_PokemonCenter_2F.s"
- .include "data/maps/events/PetalburgCity_Mart.s"
- .include "data/maps/events/SlateportCity_SternsShipyard_1F.s"
- .include "data/maps/events/SlateportCity_SternsShipyard_2F.s"
- .include "data/maps/events/SlateportCity_ContestLobby.s"
- .include "data/maps/events/SlateportCity_ContestHall.s"
- .include "data/maps/events/SlateportCity_House1.s"
- .include "data/maps/events/SlateportCity_PokemonFanClub.s"
- .include "data/maps/events/SlateportCity_OceanicMuseum_1F.s"
- .include "data/maps/events/SlateportCity_OceanicMuseum_2F.s"
- .include "data/maps/events/SlateportCity_Harbor.s"
- .include "data/maps/events/SlateportCity_House2.s"
- .include "data/maps/events/SlateportCity_PokemonCenter_1F.s"
- .include "data/maps/events/SlateportCity_PokemonCenter_2F.s"
- .include "data/maps/events/SlateportCity_Mart.s"
- .include "data/maps/events/MauvilleCity_Gym.s"
- .include "data/maps/events/MauvilleCity_BikeShop.s"
- .include "data/maps/events/MauvilleCity_House1.s"
- .include "data/maps/events/MauvilleCity_GameCorner.s"
- .include "data/maps/events/MauvilleCity_House2.s"
- .include "data/maps/events/MauvilleCity_PokemonCenter_1F.s"
- .include "data/maps/events/MauvilleCity_PokemonCenter_2F.s"
- .include "data/maps/events/MauvilleCity_Mart.s"
- .include "data/maps/events/RustboroCity_DevonCorp_1F.s"
- .include "data/maps/events/RustboroCity_DevonCorp_2F.s"
- .include "data/maps/events/RustboroCity_DevonCorp_3F.s"
- .include "data/maps/events/RustboroCity_Gym.s"
- .include "data/maps/events/RustboroCity_PokemonSchool.s"
- .include "data/maps/events/RustboroCity_PokemonCenter_1F.s"
- .include "data/maps/events/RustboroCity_PokemonCenter_2F.s"
- .include "data/maps/events/RustboroCity_Mart.s"
- .include "data/maps/events/RustboroCity_Flat1_1F.s"
- .include "data/maps/events/RustboroCity_Flat1_2F.s"
- .include "data/maps/events/RustboroCity_House1.s"
- .include "data/maps/events/RustboroCity_CuttersHouse.s"
- .include "data/maps/events/RustboroCity_House2.s"
- .include "data/maps/events/RustboroCity_Flat2_1F.s"
- .include "data/maps/events/RustboroCity_Flat2_2F.s"
- .include "data/maps/events/RustboroCity_Flat2_3F.s"
- .include "data/maps/events/RustboroCity_House3.s"
- .include "data/maps/events/FortreeCity_House1.s"
- .include "data/maps/events/FortreeCity_Gym.s"
- .include "data/maps/events/FortreeCity_PokemonCenter_1F.s"
- .include "data/maps/events/FortreeCity_PokemonCenter_2F.s"
- .include "data/maps/events/FortreeCity_Mart.s"
- .include "data/maps/events/FortreeCity_House2.s"
- .include "data/maps/events/FortreeCity_House3.s"
- .include "data/maps/events/FortreeCity_House4.s"
- .include "data/maps/events/FortreeCity_House5.s"
- .include "data/maps/events/FortreeCity_DecorationShop.s"
- .include "data/maps/events/LilycoveCity_CoveLilyMotel_1F.s"
- .include "data/maps/events/LilycoveCity_CoveLilyMotel_2F.s"
- .include "data/maps/events/LilycoveCity_LilycoveMuseum_1F.s"
- .include "data/maps/events/LilycoveCity_LilycoveMuseum_2F.s"
- .include "data/maps/events/LilycoveCity_ContestLobby.s"
- .include "data/maps/events/LilycoveCity_ContestHall.s"
- .include "data/maps/events/LilycoveCity_PokemonCenter_1F.s"
- .include "data/maps/events/LilycoveCity_PokemonCenter_2F.s"
- .include "data/maps/events/LilycoveCity_UnusedMart.s"
- .include "data/maps/events/LilycoveCity_PokemonTrainerFanClub.s"
- .include "data/maps/events/LilycoveCity_Harbor.s"
- .include "data/maps/events/LilycoveCity_EmptyMap.s"
- .include "data/maps/events/LilycoveCity_MoveDeletersHouse.s"
- .include "data/maps/events/LilycoveCity_House1.s"
- .include "data/maps/events/LilycoveCity_House2.s"
- .include "data/maps/events/LilycoveCity_House3.s"
- .include "data/maps/events/LilycoveCity_House4.s"
- .include "data/maps/events/LilycoveCity_DepartmentStore_1F.s"
- .include "data/maps/events/LilycoveCity_DepartmentStore_2F.s"
- .include "data/maps/events/LilycoveCity_DepartmentStore_3F.s"
- .include "data/maps/events/LilycoveCity_DepartmentStore_4F.s"
- .include "data/maps/events/LilycoveCity_DepartmentStore_5F.s"
- .include "data/maps/events/LilycoveCity_DepartmentStoreRooftop.s"
- .include "data/maps/events/LilycoveCity_DepartmentStoreElevator.s"
- .include "data/maps/events/MossdeepCity_Gym.s"
- .include "data/maps/events/MossdeepCity_House1.s"
- .include "data/maps/events/MossdeepCity_House2.s"
- .include "data/maps/events/MossdeepCity_PokemonCenter_1F.s"
- .include "data/maps/events/MossdeepCity_PokemonCenter_2F.s"
- .include "data/maps/events/MossdeepCity_Mart.s"
- .include "data/maps/events/MossdeepCity_House3.s"
- .include "data/maps/events/MossdeepCity_StevensHouse.s"
- .include "data/maps/events/MossdeepCity_House4.s"
- .include "data/maps/events/MossdeepCity_SpaceCenter_1F.s"
- .include "data/maps/events/MossdeepCity_SpaceCenter_2F.s"
- .include "data/maps/events/MossdeepCity_GameCorner_1F.s"
- .include "data/maps/events/MossdeepCity_GameCorner_B1F.s"
- .include "data/maps/events/SootopolisCity_Gym_1F.s"
- .include "data/maps/events/SootopolisCity_Gym_B1F.s"
- .include "data/maps/events/SootopolisCity_PokemonCenter_1F.s"
- .include "data/maps/events/SootopolisCity_PokemonCenter_2F.s"
- .include "data/maps/events/SootopolisCity_Mart.s"
- .include "data/maps/events/SootopolisCity_House1.s"
- .include "data/maps/events/SootopolisCity_House2.s"
- .include "data/maps/events/SootopolisCity_House3.s"
- .include "data/maps/events/SootopolisCity_House4.s"
- .include "data/maps/events/SootopolisCity_House5.s"
- .include "data/maps/events/SootopolisCity_House6.s"
- .include "data/maps/events/SootopolisCity_House7.s"
- .include "data/maps/events/SootopolisCity_House8.s"
- .include "data/maps/events/EverGrandeCity_SidneysRoom.s"
- .include "data/maps/events/EverGrandeCity_PhoebesRoom.s"
- .include "data/maps/events/EverGrandeCity_GlaciasRoom.s"
- .include "data/maps/events/EverGrandeCity_DrakesRoom.s"
- .include "data/maps/events/EverGrandeCity_ChampionsRoom.s"
- .include "data/maps/events/EverGrandeCity_Corridor1.s"
- .include "data/maps/events/EverGrandeCity_Corridor2.s"
- .include "data/maps/events/EverGrandeCity_Corridor3.s"
- .include "data/maps/events/EverGrandeCity_Corridor4.s"
- .include "data/maps/events/EverGrandeCity_Corridor5.s"
- .include "data/maps/events/EverGrandeCity_PokemonLeague.s"
- .include "data/maps/events/EverGrandeCity_HallOfFame.s"
- .include "data/maps/events/EverGrandeCity_PokemonCenter_1F.s"
- .include "data/maps/events/EverGrandeCity_PokemonCenter_2F.s"
- .include "data/maps/events/Route104_MrBrineysHouse.s"
- .include "data/maps/events/Route104_PrettyPetalFlowerShop.s"
- .include "data/maps/events/Route111_WinstrateFamilysHouse.s"
- .include "data/maps/events/Route111_OldLadysRestStop.s"
- .include "data/maps/events/Route112_CableCarStation.s"
- .include "data/maps/events/MtChimney_CableCarStation.s"
- .include "data/maps/events/Route114_FossilManiacsHouse.s"
- .include "data/maps/events/Route114_FossilManiacsTunnel.s"
- .include "data/maps/events/Route114_LanettesHouse.s"
- .include "data/maps/events/Route116_TunnelersRestHouse.s"
- .include "data/maps/events/Route117_PokemonDayCare.s"
- .include "data/maps/events/Route121_SafariZoneEntrance.s"
- .include "data/maps/events/MeteorFalls_1F_1R.s"
- .include "data/maps/events/MeteorFalls_1F_2R.s"
- .include "data/maps/events/MeteorFalls_B1F_1R.s"
- .include "data/maps/events/MeteorFalls_B1F_2R.s"
- .include "data/maps/events/RusturfTunnel.s"
- .include "data/maps/events/Underwater_SootopolisCity.s"
- .include "data/maps/events/DesertRuins.s"
- .include "data/maps/events/GraniteCave_1F.s"
- .include "data/maps/events/GraniteCave_B1F.s"
- .include "data/maps/events/GraniteCave_B2F.s"
- .include "data/maps/events/GraniteCave_StevensRoom.s"
- .include "data/maps/events/PetalburgWoods.s"
- .include "data/maps/events/MtChimney.s"
- .include "data/maps/events/JaggedPass.s"
- .include "data/maps/events/FieryPath.s"
- .include "data/maps/events/MtPyre_1F.s"
- .include "data/maps/events/MtPyre_2F.s"
- .include "data/maps/events/MtPyre_3F.s"
- .include "data/maps/events/MtPyre_4F.s"
- .include "data/maps/events/MtPyre_5F.s"
- .include "data/maps/events/MtPyre_6F.s"
- .include "data/maps/events/MtPyre_Exterior.s"
- .include "data/maps/events/MtPyre_Summit.s"
- .include "data/maps/events/AquaHideout_1F.s"
- .include "data/maps/events/AquaHideout_B1F.s"
- .include "data/maps/events/AquaHideout_B2F.s"
- .include "data/maps/events/Underwater_SeafloorCavern.s"
- .include "data/maps/events/SeafloorCavern_Entrance.s"
- .include "data/maps/events/SeafloorCavern_Room1.s"
- .include "data/maps/events/SeafloorCavern_Room2.s"
- .include "data/maps/events/SeafloorCavern_Room3.s"
- .include "data/maps/events/SeafloorCavern_Room4.s"
- .include "data/maps/events/SeafloorCavern_Room5.s"
- .include "data/maps/events/SeafloorCavern_Room6.s"
- .include "data/maps/events/SeafloorCavern_Room7.s"
- .include "data/maps/events/SeafloorCavern_Room8.s"
- .include "data/maps/events/SeafloorCavern_Room9.s"
- .include "data/maps/events/CaveOfOrigin_Entrance.s"
- .include "data/maps/events/CaveOfOrigin_1F.s"
- .include "data/maps/events/CaveOfOrigin_B1F.s"
- .include "data/maps/events/CaveOfOrigin_B2F.s"
- .include "data/maps/events/CaveOfOrigin_B3F.s"
- .include "data/maps/events/CaveOfOrigin_B4F.s"
- .include "data/maps/events/VictoryRoad_1F.s"
- .include "data/maps/events/VictoryRoad_B1F.s"
- .include "data/maps/events/VictoryRoad_B2F.s"
- .include "data/maps/events/ShoalCave_LowTideEntranceRoom.s"
- .include "data/maps/events/ShoalCave_LowTideInnerRoom.s"
- .include "data/maps/events/ShoalCave_LowTideStairsRoom.s"
- .include "data/maps/events/ShoalCave_LowTideLowerRoom.s"
- .include "data/maps/events/ShoalCave_HighTideEntranceRoom.s"
- .include "data/maps/events/ShoalCave_HighTideInnerRoom.s"
- .include "data/maps/events/NewMauville_Entrance.s"
- .include "data/maps/events/NewMauville_Inside.s"
- .include "data/maps/events/AbandonedShip_Deck.s"
- .include "data/maps/events/AbandonedShip_Corridors_1F.s"
- .include "data/maps/events/AbandonedShip_Rooms_1F.s"
- .include "data/maps/events/AbandonedShip_Corridors_B1F.s"
- .include "data/maps/events/AbandonedShip_Rooms_B1F.s"
- .include "data/maps/events/AbandonedShip_Rooms2_B1F.s"
- .include "data/maps/events/AbandonedShip_Underwater1.s"
- .include "data/maps/events/AbandonedShip_Room_B1F.s"
- .include "data/maps/events/AbandonedShip_Rooms2_1F.s"
- .include "data/maps/events/AbandonedShip_CaptainsOffice.s"
- .include "data/maps/events/AbandonedShip_Underwater2.s"
- .include "data/maps/events/AbandonedShip_HiddenFloorCorridors.s"
- .include "data/maps/events/AbandonedShip_HiddenFloorRooms.s"
- .include "data/maps/events/IslandCave.s"
- .include "data/maps/events/AncientTomb.s"
- .include "data/maps/events/Underwater_Route134.s"
- .include "data/maps/events/Underwater_SealedChamber.s"
- .include "data/maps/events/SealedChamber_OuterRoom.s"
- .include "data/maps/events/SealedChamber_InnerRoom.s"
- .include "data/maps/events/ScorchedSlab.s"
- .include "data/maps/events/MagmaHideout_1F.s"
- .include "data/maps/events/MagmaHideout_B1F.s"
- .include "data/maps/events/MagmaHideout_B2F.s"
- .include "data/maps/events/SkyPillar_Entrance.s"
- .include "data/maps/events/SkyPillar_Outside.s"
- .include "data/maps/events/SkyPillar_1F.s"
- .include "data/maps/events/SkyPillar_2F.s"
- .include "data/maps/events/SkyPillar_3F.s"
- .include "data/maps/events/SkyPillar_4F.s"
- .include "data/maps/events/ShoalCave_LowTideIceRoom.s"
- .include "data/maps/events/SkyPillar_5F.s"
- .include "data/maps/events/SkyPillar_Top.s"
- .include "data/maps/events/SecretBase_RedCave1.s"
- .include "data/maps/events/SecretBase_BrownCave1.s"
- .include "data/maps/events/SecretBase_BlueCave1.s"
- .include "data/maps/events/SecretBase_YellowCave1.s"
- .include "data/maps/events/SecretBase_Tree1.s"
- .include "data/maps/events/SecretBase_Shrub1.s"
- .include "data/maps/events/SecretBase_RedCave2.s"
- .include "data/maps/events/SecretBase_BrownCave2.s"
- .include "data/maps/events/SecretBase_BlueCave2.s"
- .include "data/maps/events/SecretBase_YellowCave2.s"
- .include "data/maps/events/SecretBase_Tree2.s"
- .include "data/maps/events/SecretBase_Shrub2.s"
- .include "data/maps/events/SecretBase_RedCave3.s"
- .include "data/maps/events/SecretBase_BrownCave3.s"
- .include "data/maps/events/SecretBase_BlueCave3.s"
- .include "data/maps/events/SecretBase_YellowCave3.s"
- .include "data/maps/events/SecretBase_Tree3.s"
- .include "data/maps/events/SecretBase_Shrub3.s"
- .include "data/maps/events/SecretBase_RedCave4.s"
- .include "data/maps/events/SecretBase_BrownCave4.s"
- .include "data/maps/events/SecretBase_BlueCave4.s"
- .include "data/maps/events/SecretBase_YellowCave4.s"
- .include "data/maps/events/SecretBase_Tree4.s"
- .include "data/maps/events/SecretBase_Shrub4.s"
- .include "data/maps/events/SingleBattleColosseum.s"
- .include "data/maps/events/TradeCenter.s"
- .include "data/maps/events/RecordCorner.s"
- .include "data/maps/events/DoubleBattleColosseum.s"
- .include "data/maps/events/LinkContestRoom1.s"
- .include "data/maps/events/LinkContestRoom2.s"
- .include "data/maps/events/LinkContestRoom3.s"
- .include "data/maps/events/LinkContestRoom4.s"
- .include "data/maps/events/LinkContestRoom5.s"
- .include "data/maps/events/LinkContestRoom6.s"
- .include "data/maps/events/UnknownMap_25_29.s"
- .include "data/maps/events/UnknownMap_25_30.s"
- .include "data/maps/events/UnknownMap_25_31.s"
- .include "data/maps/events/UnknownMap_25_32.s"
- .include "data/maps/events/UnknownMap_25_33.s"
- .include "data/maps/events/UnknownMap_25_34.s"
- .include "data/maps/events/InsideOfTruck.s"
- .include "data/maps/events/SSTidalCorridor.s"
- .include "data/maps/events/SSTidalLowerDeck.s"
- .include "data/maps/events/SSTidalRooms.s"
- .include "data/maps/events/SafariZone_Northwest.s"
- .include "data/maps/events/SafariZone_Northeast.s"
- .include "data/maps/events/SafariZone_Southwest.s"
- .include "data/maps/events/SafariZone_Southeast.s"
- .include "data/maps/events/BattleTower_Outside.s"
- .include "data/maps/events/BattleTower_Lobby.s"
- .include "data/maps/events/BattleTower_Elevator.s"
- .include "data/maps/events/BattleTower_Corridor.s"
- .include "data/maps/events/BattleTower_BattleRoom.s"
- .include "data/maps/events/SouthernIsland_Exterior.s"
- .include "data/maps/events/SouthernIsland_Interior.s"
- .include "data/maps/events/SafariZone_RestHouse.s"
- .include "data/maps/events/Route104_Prototype.s"
- .include "data/maps/events/Route104_PrototypePrettyPetalFlowerShop.s"
- .include "data/maps/events/Route109_SeashoreHouse.s"
- .include "data/maps/events/Route110_TrickHouseEntrance.s"
- .include "data/maps/events/Route110_TrickHouseEnd.s"
- .include "data/maps/events/Route110_TrickHouseCorridor.s"
- .include "data/maps/events/Route110_TrickHousePuzzle1.s"
- .include "data/maps/events/Route110_TrickHousePuzzle2.s"
- .include "data/maps/events/Route110_TrickHousePuzzle3.s"
- .include "data/maps/events/Route110_TrickHousePuzzle4.s"
- .include "data/maps/events/Route110_TrickHousePuzzle5.s"
- .include "data/maps/events/Route110_TrickHousePuzzle6.s"
- .include "data/maps/events/Route110_TrickHousePuzzle7.s"
- .include "data/maps/events/Route110_TrickHousePuzzle8.s"
- .include "data/maps/events/Route110_SeasideCyclingRoadSouthEntrance.s"
- .include "data/maps/events/Route110_SeasideCyclingRoadNorthEntrance.s"
- .include "data/maps/events/Route113_GlassWorkshop.s"
- .include "data/maps/events/Route123_BerryMastersHouse.s"
- .include "data/maps/events/Route119_WeatherInstitute_1F.s"
- .include "data/maps/events/Route119_WeatherInstitute_2F.s"
- .include "data/maps/events/Route119_House.s"
+ .include "data/maps/events/PetalburgCity.inc"
+ .include "data/maps/events/SlateportCity.inc"
+ .include "data/maps/events/MauvilleCity.inc"
+ .include "data/maps/events/RustboroCity.inc"
+ .include "data/maps/events/FortreeCity.inc"
+ .include "data/maps/events/LilycoveCity.inc"
+ .include "data/maps/events/MossdeepCity.inc"
+ .include "data/maps/events/SootopolisCity.inc"
+ .include "data/maps/events/EverGrandeCity.inc"
+ .include "data/maps/events/LittlerootTown.inc"
+ .include "data/maps/events/OldaleTown.inc"
+ .include "data/maps/events/DewfordTown.inc"
+ .include "data/maps/events/LavaridgeTown.inc"
+ .include "data/maps/events/FallarborTown.inc"
+ .include "data/maps/events/VerdanturfTown.inc"
+ .include "data/maps/events/PacifidlogTown.inc"
+ .include "data/maps/events/Route101.inc"
+ .include "data/maps/events/Route102.inc"
+ .include "data/maps/events/Route103.inc"
+ .include "data/maps/events/Route104.inc"
+ .include "data/maps/events/Route105.inc"
+ .include "data/maps/events/Route106.inc"
+ .include "data/maps/events/Route107.inc"
+ .include "data/maps/events/Route108.inc"
+ .include "data/maps/events/Route109.inc"
+ .include "data/maps/events/Route110.inc"
+ .include "data/maps/events/Route111.inc"
+ .include "data/maps/events/Route112.inc"
+ .include "data/maps/events/Route113.inc"
+ .include "data/maps/events/Route114.inc"
+ .include "data/maps/events/Route115.inc"
+ .include "data/maps/events/Route116.inc"
+ .include "data/maps/events/Route117.inc"
+ .include "data/maps/events/Route118.inc"
+ .include "data/maps/events/Route119.inc"
+ .include "data/maps/events/Route120.inc"
+ .include "data/maps/events/Route121.inc"
+ .include "data/maps/events/Route122.inc"
+ .include "data/maps/events/Route123.inc"
+ .include "data/maps/events/Route124.inc"
+ .include "data/maps/events/Route125.inc"
+ .include "data/maps/events/Route126.inc"
+ .include "data/maps/events/Route127.inc"
+ .include "data/maps/events/Route128.inc"
+ .include "data/maps/events/Route129.inc"
+ .include "data/maps/events/Route130.inc"
+ .include "data/maps/events/Route131.inc"
+ .include "data/maps/events/Route132.inc"
+ .include "data/maps/events/Route133.inc"
+ .include "data/maps/events/Route134.inc"
+ .include "data/maps/events/Underwater1.inc"
+ .include "data/maps/events/Underwater2.inc"
+ .include "data/maps/events/Underwater3.inc"
+ .include "data/maps/events/Underwater4.inc"
+ .include "data/maps/events/LittlerootTown_BrendansHouse_1F.inc"
+ .include "data/maps/events/LittlerootTown_BrendansHouse_2F.inc"
+ .include "data/maps/events/LittlerootTown_MaysHouse_1F.inc"
+ .include "data/maps/events/LittlerootTown_MaysHouse_2F.inc"
+ .include "data/maps/events/LittlerootTown_ProfessorBirchsLab.inc"
+ .include "data/maps/events/OldaleTown_House1.inc"
+ .include "data/maps/events/OldaleTown_House2.inc"
+ .include "data/maps/events/OldaleTown_PokemonCenter_1F.inc"
+ .include "data/maps/events/OldaleTown_PokemonCenter_2F.inc"
+ .include "data/maps/events/OldaleTown_Mart.inc"
+ .include "data/maps/events/DewfordTown_House1.inc"
+ .include "data/maps/events/DewfordTown_PokemonCenter_1F.inc"
+ .include "data/maps/events/DewfordTown_PokemonCenter_2F.inc"
+ .include "data/maps/events/DewfordTown_Gym.inc"
+ .include "data/maps/events/DewfordTown_Hall.inc"
+ .include "data/maps/events/DewfordTown_House2.inc"
+ .include "data/maps/events/LavaridgeTown_HerbShop.inc"
+ .include "data/maps/events/LavaridgeTown_Gym_1F.inc"
+ .include "data/maps/events/LavaridgeTown_Gym_B1F.inc"
+ .include "data/maps/events/LavaridgeTown_House.inc"
+ .include "data/maps/events/LavaridgeTown_Mart.inc"
+ .include "data/maps/events/LavaridgeTown_PokemonCenter_1F.inc"
+ .include "data/maps/events/LavaridgeTown_PokemonCenter_2F.inc"
+ .include "data/maps/events/FallarborTown_Mart.inc"
+ .include "data/maps/events/FallarborTown_ContestLobby.inc"
+ .include "data/maps/events/FallarborTown_ContestHall.inc"
+ .include "data/maps/events/FallarborTown_PokemonCenter_1F.inc"
+ .include "data/maps/events/FallarborTown_PokemonCenter_2F.inc"
+ .include "data/maps/events/FallarborTown_House1.inc"
+ .include "data/maps/events/FallarborTown_House2.inc"
+ .include "data/maps/events/VerdanturfTown_ContestLobby.inc"
+ .include "data/maps/events/VerdanturfTown_ContestHall.inc"
+ .include "data/maps/events/VerdanturfTown_Mart.inc"
+ .include "data/maps/events/VerdanturfTown_PokemonCenter_1F.inc"
+ .include "data/maps/events/VerdanturfTown_PokemonCenter_2F.inc"
+ .include "data/maps/events/VerdanturfTown_WandasHouse.inc"
+ .include "data/maps/events/VerdanturfTown_FriendshipRatersHouse.inc"
+ .include "data/maps/events/VerdanturfTown_House.inc"
+ .include "data/maps/events/PacifidlogTown_PokemonCenter_1F.inc"
+ .include "data/maps/events/PacifidlogTown_PokemonCenter_2F.inc"
+ .include "data/maps/events/PacifidlogTown_House1.inc"
+ .include "data/maps/events/PacifidlogTown_House2.inc"
+ .include "data/maps/events/PacifidlogTown_House3.inc"
+ .include "data/maps/events/PacifidlogTown_House4.inc"
+ .include "data/maps/events/PacifidlogTown_House5.inc"
+ .include "data/maps/events/PetalburgCity_WallysHouse.inc"
+ .include "data/maps/events/PetalburgCity_Gym.inc"
+ .include "data/maps/events/PetalburgCity_House1.inc"
+ .include "data/maps/events/PetalburgCity_House2.inc"
+ .include "data/maps/events/PetalburgCity_PokemonCenter_1F.inc"
+ .include "data/maps/events/PetalburgCity_PokemonCenter_2F.inc"
+ .include "data/maps/events/PetalburgCity_Mart.inc"
+ .include "data/maps/events/SlateportCity_SternsShipyard_1F.inc"
+ .include "data/maps/events/SlateportCity_SternsShipyard_2F.inc"
+ .include "data/maps/events/SlateportCity_ContestLobby.inc"
+ .include "data/maps/events/SlateportCity_ContestHall.inc"
+ .include "data/maps/events/SlateportCity_House1.inc"
+ .include "data/maps/events/SlateportCity_PokemonFanClub.inc"
+ .include "data/maps/events/SlateportCity_OceanicMuseum_1F.inc"
+ .include "data/maps/events/SlateportCity_OceanicMuseum_2F.inc"
+ .include "data/maps/events/SlateportCity_Harbor.inc"
+ .include "data/maps/events/SlateportCity_House2.inc"
+ .include "data/maps/events/SlateportCity_PokemonCenter_1F.inc"
+ .include "data/maps/events/SlateportCity_PokemonCenter_2F.inc"
+ .include "data/maps/events/SlateportCity_Mart.inc"
+ .include "data/maps/events/MauvilleCity_Gym.inc"
+ .include "data/maps/events/MauvilleCity_BikeShop.inc"
+ .include "data/maps/events/MauvilleCity_House1.inc"
+ .include "data/maps/events/MauvilleCity_GameCorner.inc"
+ .include "data/maps/events/MauvilleCity_House2.inc"
+ .include "data/maps/events/MauvilleCity_PokemonCenter_1F.inc"
+ .include "data/maps/events/MauvilleCity_PokemonCenter_2F.inc"
+ .include "data/maps/events/MauvilleCity_Mart.inc"
+ .include "data/maps/events/RustboroCity_DevonCorp_1F.inc"
+ .include "data/maps/events/RustboroCity_DevonCorp_2F.inc"
+ .include "data/maps/events/RustboroCity_DevonCorp_3F.inc"
+ .include "data/maps/events/RustboroCity_Gym.inc"
+ .include "data/maps/events/RustboroCity_PokemonSchool.inc"
+ .include "data/maps/events/RustboroCity_PokemonCenter_1F.inc"
+ .include "data/maps/events/RustboroCity_PokemonCenter_2F.inc"
+ .include "data/maps/events/RustboroCity_Mart.inc"
+ .include "data/maps/events/RustboroCity_Flat1_1F.inc"
+ .include "data/maps/events/RustboroCity_Flat1_2F.inc"
+ .include "data/maps/events/RustboroCity_House1.inc"
+ .include "data/maps/events/RustboroCity_CuttersHouse.inc"
+ .include "data/maps/events/RustboroCity_House2.inc"
+ .include "data/maps/events/RustboroCity_Flat2_1F.inc"
+ .include "data/maps/events/RustboroCity_Flat2_2F.inc"
+ .include "data/maps/events/RustboroCity_Flat2_3F.inc"
+ .include "data/maps/events/RustboroCity_House3.inc"
+ .include "data/maps/events/FortreeCity_House1.inc"
+ .include "data/maps/events/FortreeCity_Gym.inc"
+ .include "data/maps/events/FortreeCity_PokemonCenter_1F.inc"
+ .include "data/maps/events/FortreeCity_PokemonCenter_2F.inc"
+ .include "data/maps/events/FortreeCity_Mart.inc"
+ .include "data/maps/events/FortreeCity_House2.inc"
+ .include "data/maps/events/FortreeCity_House3.inc"
+ .include "data/maps/events/FortreeCity_House4.inc"
+ .include "data/maps/events/FortreeCity_House5.inc"
+ .include "data/maps/events/FortreeCity_DecorationShop.inc"
+ .include "data/maps/events/LilycoveCity_CoveLilyMotel_1F.inc"
+ .include "data/maps/events/LilycoveCity_CoveLilyMotel_2F.inc"
+ .include "data/maps/events/LilycoveCity_LilycoveMuseum_1F.inc"
+ .include "data/maps/events/LilycoveCity_LilycoveMuseum_2F.inc"
+ .include "data/maps/events/LilycoveCity_ContestLobby.inc"
+ .include "data/maps/events/LilycoveCity_ContestHall.inc"
+ .include "data/maps/events/LilycoveCity_PokemonCenter_1F.inc"
+ .include "data/maps/events/LilycoveCity_PokemonCenter_2F.inc"
+ .include "data/maps/events/LilycoveCity_UnusedMart.inc"
+ .include "data/maps/events/LilycoveCity_PokemonTrainerFanClub.inc"
+ .include "data/maps/events/LilycoveCity_Harbor.inc"
+ .include "data/maps/events/LilycoveCity_EmptyMap.inc"
+ .include "data/maps/events/LilycoveCity_MoveDeletersHouse.inc"
+ .include "data/maps/events/LilycoveCity_House1.inc"
+ .include "data/maps/events/LilycoveCity_House2.inc"
+ .include "data/maps/events/LilycoveCity_House3.inc"
+ .include "data/maps/events/LilycoveCity_House4.inc"
+ .include "data/maps/events/LilycoveCity_DepartmentStore_1F.inc"
+ .include "data/maps/events/LilycoveCity_DepartmentStore_2F.inc"
+ .include "data/maps/events/LilycoveCity_DepartmentStore_3F.inc"
+ .include "data/maps/events/LilycoveCity_DepartmentStore_4F.inc"
+ .include "data/maps/events/LilycoveCity_DepartmentStore_5F.inc"
+ .include "data/maps/events/LilycoveCity_DepartmentStoreRooftop.inc"
+ .include "data/maps/events/LilycoveCity_DepartmentStoreElevator.inc"
+ .include "data/maps/events/MossdeepCity_Gym.inc"
+ .include "data/maps/events/MossdeepCity_House1.inc"
+ .include "data/maps/events/MossdeepCity_House2.inc"
+ .include "data/maps/events/MossdeepCity_PokemonCenter_1F.inc"
+ .include "data/maps/events/MossdeepCity_PokemonCenter_2F.inc"
+ .include "data/maps/events/MossdeepCity_Mart.inc"
+ .include "data/maps/events/MossdeepCity_House3.inc"
+ .include "data/maps/events/MossdeepCity_StevensHouse.inc"
+ .include "data/maps/events/MossdeepCity_House4.inc"
+ .include "data/maps/events/MossdeepCity_SpaceCenter_1F.inc"
+ .include "data/maps/events/MossdeepCity_SpaceCenter_2F.inc"
+ .include "data/maps/events/MossdeepCity_GameCorner_1F.inc"
+ .include "data/maps/events/MossdeepCity_GameCorner_B1F.inc"
+ .include "data/maps/events/SootopolisCity_Gym_1F.inc"
+ .include "data/maps/events/SootopolisCity_Gym_B1F.inc"
+ .include "data/maps/events/SootopolisCity_PokemonCenter_1F.inc"
+ .include "data/maps/events/SootopolisCity_PokemonCenter_2F.inc"
+ .include "data/maps/events/SootopolisCity_Mart.inc"
+ .include "data/maps/events/SootopolisCity_House1.inc"
+ .include "data/maps/events/SootopolisCity_House2.inc"
+ .include "data/maps/events/SootopolisCity_House3.inc"
+ .include "data/maps/events/SootopolisCity_House4.inc"
+ .include "data/maps/events/SootopolisCity_House5.inc"
+ .include "data/maps/events/SootopolisCity_House6.inc"
+ .include "data/maps/events/SootopolisCity_House7.inc"
+ .include "data/maps/events/SootopolisCity_House8.inc"
+ .include "data/maps/events/EverGrandeCity_SidneysRoom.inc"
+ .include "data/maps/events/EverGrandeCity_PhoebesRoom.inc"
+ .include "data/maps/events/EverGrandeCity_GlaciasRoom.inc"
+ .include "data/maps/events/EverGrandeCity_DrakesRoom.inc"
+ .include "data/maps/events/EverGrandeCity_ChampionsRoom.inc"
+ .include "data/maps/events/EverGrandeCity_Corridor1.inc"
+ .include "data/maps/events/EverGrandeCity_Corridor2.inc"
+ .include "data/maps/events/EverGrandeCity_Corridor3.inc"
+ .include "data/maps/events/EverGrandeCity_Corridor4.inc"
+ .include "data/maps/events/EverGrandeCity_Corridor5.inc"
+ .include "data/maps/events/EverGrandeCity_PokemonLeague.inc"
+ .include "data/maps/events/EverGrandeCity_HallOfFame.inc"
+ .include "data/maps/events/EverGrandeCity_PokemonCenter_1F.inc"
+ .include "data/maps/events/EverGrandeCity_PokemonCenter_2F.inc"
+ .include "data/maps/events/Route104_MrBrineysHouse.inc"
+ .include "data/maps/events/Route104_PrettyPetalFlowerShop.inc"
+ .include "data/maps/events/Route111_WinstrateFamilysHouse.inc"
+ .include "data/maps/events/Route111_OldLadysRestStop.inc"
+ .include "data/maps/events/Route112_CableCarStation.inc"
+ .include "data/maps/events/MtChimney_CableCarStation.inc"
+ .include "data/maps/events/Route114_FossilManiacsHouse.inc"
+ .include "data/maps/events/Route114_FossilManiacsTunnel.inc"
+ .include "data/maps/events/Route114_LanettesHouse.inc"
+ .include "data/maps/events/Route116_TunnelersRestHouse.inc"
+ .include "data/maps/events/Route117_PokemonDayCare.inc"
+ .include "data/maps/events/Route121_SafariZoneEntrance.inc"
+ .include "data/maps/events/MeteorFalls_1F_1R.inc"
+ .include "data/maps/events/MeteorFalls_1F_2R.inc"
+ .include "data/maps/events/MeteorFalls_B1F_1R.inc"
+ .include "data/maps/events/MeteorFalls_B1F_2R.inc"
+ .include "data/maps/events/RusturfTunnel.inc"
+ .include "data/maps/events/Underwater_SootopolisCity.inc"
+ .include "data/maps/events/DesertRuins.inc"
+ .include "data/maps/events/GraniteCave_1F.inc"
+ .include "data/maps/events/GraniteCave_B1F.inc"
+ .include "data/maps/events/GraniteCave_B2F.inc"
+ .include "data/maps/events/GraniteCave_StevensRoom.inc"
+ .include "data/maps/events/PetalburgWoods.inc"
+ .include "data/maps/events/MtChimney.inc"
+ .include "data/maps/events/JaggedPass.inc"
+ .include "data/maps/events/FieryPath.inc"
+ .include "data/maps/events/MtPyre_1F.inc"
+ .include "data/maps/events/MtPyre_2F.inc"
+ .include "data/maps/events/MtPyre_3F.inc"
+ .include "data/maps/events/MtPyre_4F.inc"
+ .include "data/maps/events/MtPyre_5F.inc"
+ .include "data/maps/events/MtPyre_6F.inc"
+ .include "data/maps/events/MtPyre_Exterior.inc"
+ .include "data/maps/events/MtPyre_Summit.inc"
+ .include "data/maps/events/AquaHideout_1F.inc"
+ .include "data/maps/events/AquaHideout_B1F.inc"
+ .include "data/maps/events/AquaHideout_B2F.inc"
+ .include "data/maps/events/Underwater_SeafloorCavern.inc"
+ .include "data/maps/events/SeafloorCavern_Entrance.inc"
+ .include "data/maps/events/SeafloorCavern_Room1.inc"
+ .include "data/maps/events/SeafloorCavern_Room2.inc"
+ .include "data/maps/events/SeafloorCavern_Room3.inc"
+ .include "data/maps/events/SeafloorCavern_Room4.inc"
+ .include "data/maps/events/SeafloorCavern_Room5.inc"
+ .include "data/maps/events/SeafloorCavern_Room6.inc"
+ .include "data/maps/events/SeafloorCavern_Room7.inc"
+ .include "data/maps/events/SeafloorCavern_Room8.inc"
+ .include "data/maps/events/SeafloorCavern_Room9.inc"
+ .include "data/maps/events/CaveOfOrigin_Entrance.inc"
+ .include "data/maps/events/CaveOfOrigin_1F.inc"
+ .include "data/maps/events/CaveOfOrigin_B1F.inc"
+ .include "data/maps/events/CaveOfOrigin_B2F.inc"
+ .include "data/maps/events/CaveOfOrigin_B3F.inc"
+ .include "data/maps/events/CaveOfOrigin_B4F.inc"
+ .include "data/maps/events/VictoryRoad_1F.inc"
+ .include "data/maps/events/VictoryRoad_B1F.inc"
+ .include "data/maps/events/VictoryRoad_B2F.inc"
+ .include "data/maps/events/ShoalCave_LowTideEntranceRoom.inc"
+ .include "data/maps/events/ShoalCave_LowTideInnerRoom.inc"
+ .include "data/maps/events/ShoalCave_LowTideStairsRoom.inc"
+ .include "data/maps/events/ShoalCave_LowTideLowerRoom.inc"
+ .include "data/maps/events/ShoalCave_HighTideEntranceRoom.inc"
+ .include "data/maps/events/ShoalCave_HighTideInnerRoom.inc"
+ .include "data/maps/events/NewMauville_Entrance.inc"
+ .include "data/maps/events/NewMauville_Inside.inc"
+ .include "data/maps/events/AbandonedShip_Deck.inc"
+ .include "data/maps/events/AbandonedShip_Corridors_1F.inc"
+ .include "data/maps/events/AbandonedShip_Rooms_1F.inc"
+ .include "data/maps/events/AbandonedShip_Corridors_B1F.inc"
+ .include "data/maps/events/AbandonedShip_Rooms_B1F.inc"
+ .include "data/maps/events/AbandonedShip_Rooms2_B1F.inc"
+ .include "data/maps/events/AbandonedShip_Underwater1.inc"
+ .include "data/maps/events/AbandonedShip_Room_B1F.inc"
+ .include "data/maps/events/AbandonedShip_Rooms2_1F.inc"
+ .include "data/maps/events/AbandonedShip_CaptainsOffice.inc"
+ .include "data/maps/events/AbandonedShip_Underwater2.inc"
+ .include "data/maps/events/AbandonedShip_HiddenFloorCorridors.inc"
+ .include "data/maps/events/AbandonedShip_HiddenFloorRooms.inc"
+ .include "data/maps/events/IslandCave.inc"
+ .include "data/maps/events/AncientTomb.inc"
+ .include "data/maps/events/Underwater_Route134.inc"
+ .include "data/maps/events/Underwater_SealedChamber.inc"
+ .include "data/maps/events/SealedChamber_OuterRoom.inc"
+ .include "data/maps/events/SealedChamber_InnerRoom.inc"
+ .include "data/maps/events/ScorchedSlab.inc"
+ .include "data/maps/events/MagmaHideout_1F.inc"
+ .include "data/maps/events/MagmaHideout_B1F.inc"
+ .include "data/maps/events/MagmaHideout_B2F.inc"
+ .include "data/maps/events/SkyPillar_Entrance.inc"
+ .include "data/maps/events/SkyPillar_Outside.inc"
+ .include "data/maps/events/SkyPillar_1F.inc"
+ .include "data/maps/events/SkyPillar_2F.inc"
+ .include "data/maps/events/SkyPillar_3F.inc"
+ .include "data/maps/events/SkyPillar_4F.inc"
+ .include "data/maps/events/ShoalCave_LowTideIceRoom.inc"
+ .include "data/maps/events/SkyPillar_5F.inc"
+ .include "data/maps/events/SkyPillar_Top.inc"
+ .include "data/maps/events/SecretBase_RedCave1.inc"
+ .include "data/maps/events/SecretBase_BrownCave1.inc"
+ .include "data/maps/events/SecretBase_BlueCave1.inc"
+ .include "data/maps/events/SecretBase_YellowCave1.inc"
+ .include "data/maps/events/SecretBase_Tree1.inc"
+ .include "data/maps/events/SecretBase_Shrub1.inc"
+ .include "data/maps/events/SecretBase_RedCave2.inc"
+ .include "data/maps/events/SecretBase_BrownCave2.inc"
+ .include "data/maps/events/SecretBase_BlueCave2.inc"
+ .include "data/maps/events/SecretBase_YellowCave2.inc"
+ .include "data/maps/events/SecretBase_Tree2.inc"
+ .include "data/maps/events/SecretBase_Shrub2.inc"
+ .include "data/maps/events/SecretBase_RedCave3.inc"
+ .include "data/maps/events/SecretBase_BrownCave3.inc"
+ .include "data/maps/events/SecretBase_BlueCave3.inc"
+ .include "data/maps/events/SecretBase_YellowCave3.inc"
+ .include "data/maps/events/SecretBase_Tree3.inc"
+ .include "data/maps/events/SecretBase_Shrub3.inc"
+ .include "data/maps/events/SecretBase_RedCave4.inc"
+ .include "data/maps/events/SecretBase_BrownCave4.inc"
+ .include "data/maps/events/SecretBase_BlueCave4.inc"
+ .include "data/maps/events/SecretBase_YellowCave4.inc"
+ .include "data/maps/events/SecretBase_Tree4.inc"
+ .include "data/maps/events/SecretBase_Shrub4.inc"
+ .include "data/maps/events/SingleBattleColosseum.inc"
+ .include "data/maps/events/TradeCenter.inc"
+ .include "data/maps/events/RecordCorner.inc"
+ .include "data/maps/events/DoubleBattleColosseum.inc"
+ .include "data/maps/events/LinkContestRoom1.inc"
+ .include "data/maps/events/LinkContestRoom2.inc"
+ .include "data/maps/events/LinkContestRoom3.inc"
+ .include "data/maps/events/LinkContestRoom4.inc"
+ .include "data/maps/events/LinkContestRoom5.inc"
+ .include "data/maps/events/LinkContestRoom6.inc"
+ .include "data/maps/events/UnknownMap_25_29.inc"
+ .include "data/maps/events/UnknownMap_25_30.inc"
+ .include "data/maps/events/UnknownMap_25_31.inc"
+ .include "data/maps/events/UnknownMap_25_32.inc"
+ .include "data/maps/events/UnknownMap_25_33.inc"
+ .include "data/maps/events/UnknownMap_25_34.inc"
+ .include "data/maps/events/InsideOfTruck.inc"
+ .include "data/maps/events/SSTidalCorridor.inc"
+ .include "data/maps/events/SSTidalLowerDeck.inc"
+ .include "data/maps/events/SSTidalRooms.inc"
+ .include "data/maps/events/SafariZone_Northwest.inc"
+ .include "data/maps/events/SafariZone_Northeast.inc"
+ .include "data/maps/events/SafariZone_Southwest.inc"
+ .include "data/maps/events/SafariZone_Southeast.inc"
+ .include "data/maps/events/BattleTower_Outside.inc"
+ .include "data/maps/events/BattleTower_Lobby.inc"
+ .include "data/maps/events/BattleTower_Elevator.inc"
+ .include "data/maps/events/BattleTower_Corridor.inc"
+ .include "data/maps/events/BattleTower_BattleRoom.inc"
+ .include "data/maps/events/SouthernIsland_Exterior.inc"
+ .include "data/maps/events/SouthernIsland_Interior.inc"
+ .include "data/maps/events/SafariZone_RestHouse.inc"
+ .include "data/maps/events/Route104_Prototype.inc"
+ .include "data/maps/events/Route104_PrototypePrettyPetalFlowerShop.inc"
+ .include "data/maps/events/Route109_SeashoreHouse.inc"
+ .include "data/maps/events/Route110_TrickHouseEntrance.inc"
+ .include "data/maps/events/Route110_TrickHouseEnd.inc"
+ .include "data/maps/events/Route110_TrickHouseCorridor.inc"
+ .include "data/maps/events/Route110_TrickHousePuzzle1.inc"
+ .include "data/maps/events/Route110_TrickHousePuzzle2.inc"
+ .include "data/maps/events/Route110_TrickHousePuzzle3.inc"
+ .include "data/maps/events/Route110_TrickHousePuzzle4.inc"
+ .include "data/maps/events/Route110_TrickHousePuzzle5.inc"
+ .include "data/maps/events/Route110_TrickHousePuzzle6.inc"
+ .include "data/maps/events/Route110_TrickHousePuzzle7.inc"
+ .include "data/maps/events/Route110_TrickHousePuzzle8.inc"
+ .include "data/maps/events/Route110_SeasideCyclingRoadSouthEntrance.inc"
+ .include "data/maps/events/Route110_SeasideCyclingRoadNorthEntrance.inc"
+ .include "data/maps/events/Route113_GlassWorkshop.inc"
+ .include "data/maps/events/Route123_BerryMastersHouse.inc"
+ .include "data/maps/events/Route119_WeatherInstitute_1F.inc"
+ .include "data/maps/events/Route119_WeatherInstitute_2F.inc"
+ .include "data/maps/events/Route119_House.inc"
Route124_DivingTreasureHuntersHouse_MapObjects:: @ 839300C
object_event 1, MAP_OBJ_GFX_MAN_6, 0, 5, 0, 4, 0, 0, 9, 0, 0, 0, 0, 0, 0, Route124_DivingTreasureHuntersHouse_EventScript_163E04, 0, 0, 0
@@ -10355,11 +10355,11 @@ gSpriteAnimTable_8393EC8:: @ 8393EC8
.align 2
gSpriteTemplate_8393ECC:: @ 8393ECC
- spr_template 1000, 1000, gOamData_8393EA4, gSpriteAnimTable_8393EC4, NULL, gDummySpriteAffineAnimTable, item_menu_type_2
+ spr_template 1000, 1000, gOamData_8393EA4, gSpriteAnimTable_8393EC4, NULL, gDummySpriteAffineAnimTable, SpriteCallback_VersionBannerLeft
.align 2
gSpriteTemplate_8393EE4:: @ 8393EE4
- spr_template 1000, 1000, gOamData_8393EAC, gSpriteAnimTable_8393EC8, NULL, gDummySpriteAffineAnimTable, sub_807BE90
+ spr_template 1000, 1000, gOamData_8393EAC, gSpriteAnimTable_8393EC8, NULL, gDummySpriteAffineAnimTable, SpriteCallback_VersionBannerRight
.align 2
gUnknown_08393EFC:: @ 8393EFC
@@ -10425,7 +10425,7 @@ gSpriteAnimTable_8393F54:: @ 8393F54
.align 2
gSpriteTemplate_8393F74:: @ 8393F74
- spr_template 1001, 1001, gOamData_8393F0C, gSpriteAnimTable_8393F54, NULL, gDummySpriteAffineAnimTable, sub_807BEF0
+ spr_template 1001, 1001, gOamData_8393F0C, gSpriteAnimTable_8393F54, NULL, gDummySpriteAffineAnimTable, SpriteCallback_PressStartCopyrightBanner
.align 2
gUnknown_08393F8C:: @ 8393F8C
@@ -10454,7 +10454,7 @@ gSpriteAnimTable_8393FBC:: @ 8393FBC
.align 2
gSpriteTemplate_8393FC0:: @ 8393FC0
- spr_template 1002, 1001, gOamData_8393FAC, gSpriteAnimTable_8393FBC, NULL, gDummySpriteAffineAnimTable, sub_807BFE0
+ spr_template 1002, 1001, gOamData_8393FAC, gSpriteAnimTable_8393FBC, NULL, gDummySpriteAffineAnimTable, SpriteCallback_PokemonLogoShine
.align 2
gUnknown_08393FD8:: @ 8393FD8
@@ -10974,10 +10974,10 @@ gTrainerBattleSpecs_4:: @ 839AE28
.4byte gTrainerBattleScriptReturnAddress, 6
@ 839AE70
- .include "data/trainer_eye_trainers.s"
+ .include "data/trainer_eye_trainers.inc"
.align 2
-gUnknown_0839B1F0:: @ 839B1F0
+gBadgeFlags:: @ 839B1F0
.2byte 0x0807, 0x0808, 0x0809, 0x080a, 0x080b, 0x080c, 0x080d, 0x080e
TrainerCardColorName_Bronze:
@@ -11073,14 +11073,14 @@ gSpriteImage_839B408:: @ 839B408
.incbin "graphics/unknown_sprites/839B408.4bpp"
.align 2
-gUnknown_0839B488:: @ 839B488
+gIsTrainerInRange:: @ 839B488
.4byte IsTrainerInRangeSouth
.4byte IsTrainerInRangeNorth
.4byte IsTrainerInRangeWest
.4byte IsTrainerInRangeEast
.align 2
-gUnknown_0839B498:: @ 839B498
+gTrainerSeeFuncList:: @ 839B498
.4byte sub_8084394
.4byte sub_8084398
.4byte sub_80843DC
@@ -11095,7 +11095,7 @@ gUnknown_0839B498:: @ 839B498
.4byte sub_80846C8
.align 2
-gUnknown_0839B4C8:: @ 839B4C8
+gTrainerSeeFuncList2:: @ 839B4C8
.4byte sub_80845C8
.4byte sub_80845FC
.4byte sub_8084654
@@ -11140,16 +11140,15 @@ gSpriteTemplate_839B528:: @ 839B528
spr_template 0xFFFF, 4100, gOamData_839B4D8, gSpriteAnimTable_839B508, gSpriteImageTable_839B4F0, gDummySpriteAffineAnimTable, objc_exclamation_mark_probably
@ 839B540
- .include "data/wild_mons.s"
+ .include "data/wild_mons.inc"
.align 2
gWildFeebasRoute119Data:: @ 839DBFC
.byte 20, 25 @ Min/Max level
.2byte SPECIES_FEEBAS
-@ Some Feebas tile related data
.align 2
-gUnknown_0839DC00:: @ 839DC00
+gRoute119WaterTileData:: @ 839DC00
.2byte 0x0, 0x2D, 0x0
.2byte 0x2E, 0x5B, 0x83
.2byte 0x5C, 0x8B, 0x12A
@@ -11219,12 +11218,12 @@ gDarknessFieldMoveStreaksTilemap:: @ 839EE54
.incbin "graphics/misc/darkness_field_move_streaks_map.bin"
.align 2
-gUnknown_0839F0D4:: @ 839F0D4
+gFieldEffectScriptFuncs:: @ 839F0D4
.4byte FieldEffectCmd_loadtiles
.4byte FieldEffectCmd_loadfadedpal
.4byte FieldEffectCmd_loadpal
.4byte FieldEffectCmd_callnative
- .4byte sub_8085700
+ .4byte FieldEffectCmd_end
.4byte FieldEffectCmd_loadgfx_callnative
.4byte FieldEffectCmd_loadtiles_callnative
.4byte FieldEffectCmd_loadfadedpal_callnative
@@ -11642,7 +11641,7 @@ gUnknown_0839FA7C:: @ 839FA7C
.incbin "graphics/pokedex/noball.4bpp.lz"
@ 839FAC4
- .include "data/pokedex_orders.s"
+ .include "data/pokedex_orders.inc"
.align 2
gOamData_83A0404:: @ 83A0404
@@ -11870,13 +11869,13 @@ gUnknown_083A05F8:: @ 83A05F8
.string "$"
@ 83A05F9
- .include "data/pokedex_entries.s"
+ .include "data/pokedex_entries.inc"
gUnknown_083B4EC4:: @ 83B4EC4
.space 32
@ 83B4EE4
- .include "data/graphics/pokemon/footprint_table.s"
+ .include "data/graphics/pokemon/footprint_table.inc"
gUnknown_083B5558:: @ 83B5558
.incbin "baserom.gba", 0x3b5558, 0x24
@@ -12934,13 +12933,13 @@ gUnknown_083BBCA0:: @ 83BBCA0
.4byte PCText_Plain
@ 83BBD20
- .include "data/graphics/pokemon/icon_table.s"
+ .include "data/graphics/pokemon/icon_table.inc"
@ 83BC400
- .include "data/graphics/pokemon/icon_palette_indices.s"
+ .include "data/graphics/pokemon/icon_palette_indices.inc"
@ 83BC5B8
- .include "data/graphics/pokemon/icon_palette_table.s"
+ .include "data/graphics/pokemon/icon_palette_table.inc"
.align 2
gOamData_83BC5E8:: @ 83BC5E8
@@ -13022,10 +13021,10 @@ gSpriteImageSizes:: @ 83BC668
.2byte 0x400 @ 4×8
@ 83BC680
- .include "data/text/move_descriptions.s"
+ .include "data/text/move_descriptions.inc"
@ 83C0F60
- .include "data/text/nature_names.s"
+ .include "data/text/nature_names.inc"
.align 2
gUnknown_083C1068:: @ 83C1068
@@ -13690,7 +13689,7 @@ gSpriteTemplate_83C1E04:: @ 83C1E04
spr_template 0xFFFF, 30020, gOamData_83C1D58, gSpriteAnimTable_83C1D68, gSpriteImageTable_83C1D6C, gSpriteAffineAnimTable_83C1DFC, SpriteCallbackDummy
@ 83C1E1C
- .include "data/graphics/berries/graphics_table.s"
+ .include "data/graphics/berries/graphics_table.inc"
.align 2
gUnknown_083C1F74:: @ 83C1F74
@@ -13740,10 +13739,10 @@ gBattleAnimSpriteTemplate_83C2010:: @ 83C2010
spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A8818
@ 83C2028
- .include "data/text/item_descriptions.s"
+ .include "data/text/item_descriptions.inc"
@ 83C5564
- .include "data/items.s"
+ .include "data/items.inc"
@ 83C9150
.string "テストです$" @ "test"
@@ -13918,7 +13917,7 @@ gUnknown_083C9400:: @ 83C9400
.incbin "baserom.gba", 0x003c9400, 0x8
@ 83C9408
- .include "data/contest_opponents.s"
+ .include "data/contest_opponents.inc"
gUnknown_083CA308:: @ 83CA308
.byte 19, 0
@@ -14086,7 +14085,7 @@ gUnknown_083CA4CC:: @ 83CA4CC
gUnknown_083CA4D4:: @ 83CA4D4
spr_template 0xABE0, 0xABE0, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
- .include "data/text/contest_strings.s"
+ .include "data/text/contest_strings.inc"
gUnknownText_MissedTurn:: @ 83CC355
.string "Missed turn$"
@@ -14252,7 +14251,7 @@ gUnknown_083CC5A4:: @ 83CC5A4
.incbin "baserom.gba", 0x003cc5a4, 0x10
@ 83CC5B4
- .include "data/contest_excitement_table.s"
+ .include "data/contest_excitement_table.inc"
.align 2
gUnknown_083CC5D0:: @ 83CC5D0
@@ -14316,17 +14315,17 @@ gUnknown_083CC738:: @ 83CC738
.incbin "baserom.gba", 0x003cc738, 0x8
@ 83CC740
- .include "data/text/berry_descriptions.s"
+ .include "data/text/berry_descriptions.inc"
@ 83CD2CC
- .include "data/berries.s"
+ .include "data/berries.inc"
.align 2
gUnknown_083CD780:: @ 83CD780
.4byte 0, 0
@ 83CD788
- .include "data/multichoice.s"
+ .include "data/multichoice.inc"
.align 2
gUnknown_083CE048:: @ 83CE048
@@ -14352,11 +14351,11 @@ gUnknown_083CE048:: @ 83CE048
.align 2
gSpriteImage_83CE094:: @ 83CE094
- .incbin "graphics/unknown_sprites/83CE588/0.4bpp"
+ .incbin "graphics/naming_screen/pc_icon/0.4bpp"
.align 2
gSpriteImage_83CE154:: @ 83CE154
- .incbin "graphics/unknown_sprites/83CE588/1.4bpp"
+ .incbin "graphics/naming_screen/pc_icon/1.4bpp"
.align 2
.incbin "baserom.gba", 0x003ce214, 0x4
@@ -14720,10 +14719,10 @@ gUnknown_083CF58C:: @ 83CF58C
obj_pal gMenuMoneyPal, 0x2722
@ 83CF594
- .include "data/contest_moves.s"
+ .include "data/contest_moves.inc"
@ 83D00AC
- .include "data/contest_effects.s"
+ .include "data/contest_effects.inc"
@ A lookup table with TRUE for each combo starter ID and FALSE for ID 0,
@ which means "not a combo starter move".
@@ -14734,27 +14733,30 @@ gComboStarterLookupTable:: @ 83D016C
.endr
@ 83D01AC
- .include "data/contest_effect_funcs.s"
+ .include "data/contest_effect_funcs.inc"
.align 2
-gUnknown_083D026C:: @ 83D026C
- .4byte 0x0202713c
+recordMixingSecretBases:: @ 83D026C
+ @ gSaveBlock1.secretBases
+ .4byte gSaveBlock1 + 0x1A08
.align 2
-gUnknown_083D0270:: @ 83D0270
- .4byte 0x02027e6c
+recordMixingTvShows:: @ 83D0270
+ @ gSaveBlock1.tvShows
+ .4byte gSaveBlock1 + 0x2738
.align 2
gUnknown_083D0274:: @ 83D0274
- .4byte 0x020281f0
+ .4byte gSaveBlock1 + 0x2ABC
.align 2
gUnknown_083D0278:: @ 83D0278
- .4byte 0x020284c8
+ .4byte gSaveBlock1 + 0x2D94
.align 2
-gUnknown_083D027C:: @ 83D027C
- .4byte 0x02028508
+recordMixingEasyChatPairs:: @ 83D027C
+ @ gSaveBlock1.easyChatPairs
+ .4byte gSaveBlock1 + 0x2DD4
.align 2
gUnknown_083D0280:: @ 83D0280
@@ -14890,7 +14892,7 @@ gOtherText_RL:: @ 83D0409
.string " RL$"
@ 83D040E
- .include "data/text/song_names.s"
+ .include "data/text/song_names.inc"
gUnknown_083D1358:: @ 83D1358
.incbin "baserom.gba", 0x003d1358, 0x1c
@@ -15161,7 +15163,7 @@ gUnknown_083D17E2:: @ 83D17E2
gUnknown_083D180C:: @ 83D180C
.incbin "baserom.gba", 0x003d180c, 0x80
-gUnknown_083D188C:: @ 83D188C
+gOtherText_DecimalPoint:: @ 83D188C
.string ".$"
gUnknown_083D188E:: @ 83D188E
@@ -15494,7 +15496,7 @@ gMapObjectPic_MovingBox: @ 83D28AC
gMapObjectPalette19: @ 83D292C
.incbin "graphics/map_objects/palettes/19.gbapal"
-gUnknown_083D294C:: @ 83D294C
+gTruckCamera_HorizontalTable:: @ 83D294C
.byte 0
.byte 0
.byte 0
@@ -20784,19 +20786,19 @@ gUnknown_083DBEAC:: @ 83DBEAC
.incbin "baserom.gba", 0x003dbeac, 0x80
@ 83DBF2C
- .include "data/text/easy_chat/group_words.s"
+ .include "data/text/easy_chat/group_words.inc"
@ 83DE138
- .include "data/text/easy_chat/words_by_letter.s"
+ .include "data/text/easy_chat/words_by_letter.inc"
@ 83DEFFA
- .include "data/text/easy_chat/group_sizes.s"
+ .include "data/text/easy_chat/group_sizes.inc"
@ 83DF010
- .include "data/text/easy_chat/group_orders.s"
+ .include "data/text/easy_chat/group_orders.inc"
@ 83DFE6C
- .include "data/text/easy_chat/group_name_table.s"
+ .include "data/text/easy_chat/group_name_table.inc"
gUnknown_083DFEC4:: @ 83DFEC4
.incbin "baserom.gba", 0x003dfec4, 0x4
@@ -20971,13 +20973,13 @@ gPokenavCityMap_Petalburg_0:: @ 83E0F6C
.incbin "graphics/pokenav/city_maps/petalburg_0.bin.lz"
@ 83E0FC8
- .include "data/text/ribbon_descriptions.s"
+ .include "data/text/ribbon_descriptions.inc"
@ 83E1204
- .include "data/text/gift_ribbon_descriptions.s"
+ .include "data/text/gift_ribbon_descriptions.inc"
@ 83E178C
- .include "data/text/trainer_eye_descriptions.s"
+ .include "data/text/trainer_eye_descriptions.inc"
.align 2
gUnknown_083E31B0:: @ 83E31B0
@@ -22174,10 +22176,10 @@ gUnknown_083E6B04:: @ 83E6B04
.incbin "graphics/pokenav/region_map_map.bin.lz"
@ 83E6E50
- .include "data/region_map_sections.s"
+ .include "data/region_map_sections.inc"
@ 83E6FF4
- .include "data/region_map_locations.s"
+ .include "data/region_map_locations.inc"
gUnknown_083E7684:: @ 83E7684
.incbin "baserom.gba", 0x003e7684, 0x34
@@ -22317,10 +22319,10 @@ gSpriteTemplate_83E7A38:: @ 83E7A38
spr_template 2, 2, gOamData_83E79DC, gSpriteAnimTable_83E7A1C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
@ 83E7A50
- .include "data/cute_sketch.s"
+ .include "data/cute_sketch.inc"
@ 83E9FD0
- .include "data/decorations.s"
+ .include "data/decorations.inc"
.align 2
gUnknown_083EC5E4:: @ 83EC5E4
@@ -23834,101 +23836,101 @@ gUnknown_083F6140:: @ 83F6140
.space 4
.align 2
-gUnknown_083F6144:: @ 83F6144
- .4byte sub_810752C
- .4byte sub_810756C
- .4byte sub_81075AC
- .4byte sub_81075EC
- .4byte sub_810762C
- .4byte sub_8107668
- .4byte sub_81076D0
- .4byte sub_8107738
- .4byte sub_81077A0
- .4byte sub_8107808
- .4byte sub_810787C
- .4byte sub_81078F0
- .4byte sub_8107964
- .4byte sub_81079D8
- .4byte sub_8107A48
- .4byte sub_8107AB8
- .4byte sub_8107B34
- .4byte sub_8107BB0
- .4byte sub_8107BE8
- .4byte sub_8107C20
- .4byte sub_8107C58
- .4byte sub_8107C90
- .4byte sub_8107CE0
- .4byte sub_8107D30
- .4byte sub_8107D80
- .4byte sub_8107DD0
- .4byte sub_8107E10
- .4byte sub_8107E50
- .4byte sub_8107EB4
- .4byte sub_8107F1C
- .4byte sub_8107F84
- .4byte sub_8107FF0
- .4byte sub_8108060
- .4byte sub_81080D0
- .4byte sub_81080F0
- .4byte sub_81081CC
- .4byte sub_81081F4
- .4byte sub_81083D4
- .4byte sub_8108424
- .4byte sub_810845C
- .4byte tai28_unk
- .4byte tai29_unk
- .4byte nullsub_25
- .4byte nullsub_26
- .4byte tai2C_unk
- .4byte sub_8108630
- .4byte sub_8108648
- .4byte sub_8108670
- .4byte tai30_unk
- .4byte dp15_simulate_damage_bonus_jump_if_eq
- .4byte nullsub_71
- .4byte nullsub_90
- .4byte sub_8108964
- .4byte sub_8108A28
- .4byte sub_8108AEC
- .4byte sub_8108B48
- .4byte sub_8108B90
- .4byte sub_8108BD8
- .4byte sub_8108C40
- .4byte sub_8108CA8
- .4byte sub_8108D10
- .4byte tai3D_unk
- .4byte dp15_determine_move_damage_jump_if_not_fatal
- .4byte tai40_unk
- .4byte sub_8109010
- .4byte sub_81090E4
- .4byte sub_81091D4
- .4byte tai43_unk
- .4byte sub_8109330
- .4byte sub_81093B8
- .4byte sub_81093C8
- .4byte sub_810942C
- .4byte dp15_get_held_item_x12__8
- .4byte tai49_unk
- .4byte sub_810950C
- .4byte sub_8109554
- .4byte sub_810959C
- .4byte sub_81095C0
- .4byte sub_8109604
- .4byte sub_810962C
- .4byte sub_8109654
- .4byte sub_810967C
- .4byte nullsub_27
- .4byte nullsub_28
- .4byte nullsub_29
- .4byte nullsub_30
- .4byte nullsub_31
- .4byte nullsub_32
- .4byte sub_81096DC
- .4byte sub_810970C
- .4byte sub_810972C
- .4byte dp15_compare_attacker_defender_levels
- .4byte sub_8109824
- .4byte sub_8109874
+gBattleAICmdTable:: @ 83F6144
+ .4byte BattleAICmd_if_random
+ .4byte BattleAICmd_if_not_random
+ .4byte BattleAICmd_if_random_1
+ .4byte BattleAICmd_if_not_random_1
+ .4byte BattleAICmd_score
+ .4byte BattleAICmd_if_hp_less_than
+ .4byte BattleAICmd_if_hp_more_than
+ .4byte BattleAICmd_if_hp_equal
+ .4byte BattleAICmd_if_hp_not_equal
+ .4byte BattleAICmd_if_status
+ .4byte BattleAICmd_if_not_status
+ .4byte BattleAICmd_if_status2
+ .4byte BattleAICmd_if_not_status2
+ .4byte BattleAICmd_if_status3
+ .4byte BattleAICmd_if_not_status3
+ .4byte BattleAICmd_if_status4
+ .4byte BattleAICmd_if_not_status4
+ .4byte BattleAICmd_if_less_than
+ .4byte BattleAICmd_if_more_than
+ .4byte BattleAICmd_if_equal
+ .4byte BattleAICmd_if_not_equal
+ .4byte BattleAICmd_if_less_than_32
+ .4byte BattleAICmd_if_more_than_32
+ .4byte BattleAICmd_if_equal_32
+ .4byte BattleAICmd_if_not_equal_32
+ .4byte BattleAICmd_if_move
+ .4byte BattleAICmd_if_not_move
+ .4byte BattleAICmd_if_in_bytes
+ .4byte BattleAICmd_if_not_in_bytes
+ .4byte BattleAICmd_if_in_words
+ .4byte BattleAICmd_if_not_in_words
+ .4byte BattleAICmd_if_user_can_damage
+ .4byte BattleAICmd_if_user_cant_damage
+ .4byte BattleAICmd_unk_21
+ .4byte BattleAICmd_get_type
+ .4byte BattleAICmd_unk_23
+ .4byte BattleAICmd_unk_24
+ .4byte BattleAICmd_get_move
+ .4byte BattleAICmd_if_type
+ .4byte BattleAICmd_unk_27
+ .4byte BattleAICmd_if_would_go_first
+ .4byte BattleAICmd_if_would_not_go_first
+ .4byte BattleAICmd_unk_2A
+ .4byte BattleAICmd_unk_2B
+ .4byte BattleAICmd_count_alive_pokemon
+ .4byte BattleAICmd_unk_2D
+ .4byte BattleAICmd_unk_2E
+ .4byte BattleAICmd_get_ability
+ .4byte BattleAICmd_unk_30
+ .4byte BattleAICmd_if_damage_bonus
+ .4byte BattleAICmd_unk_32
+ .4byte BattleAICmd_unk_33
+ .4byte BattleAICmd_if_status_in_party
+ .4byte BattleAICmd_if_status_not_in_party
+ .4byte BattleAICmd_unk_36
+ .4byte BattleAICmd_if_effect
+ .4byte BattleAICmd_if_not_effect
+ .4byte BattleAICmd_if_stat_level_less_than
+ .4byte BattleAICmd_if_stat_level_more_than
+ .4byte BattleAICmd_if_stat_level_equal
+ .4byte BattleAICmd_if_stat_level_not_equal
+ .4byte BattleAICmd_if_can_faint
+ .4byte BattleAICmd_if_cant_faint
+ .4byte BattleAICmd_unk_3F
+ .4byte BattleAICmd_unk_40
+ .4byte BattleAICmd_if_move_effect
+ .4byte BattleAICmd_if_not_move_effect
+ .4byte BattleAICmd_if_last_move_did_damage
+ .4byte BattleAICmd_if_encored
+ .4byte BattleAICmd_unk_45
+ .4byte BattleAICmd_if_random_2
+ .4byte BattleAICmd_unk_47
+ .4byte BattleAICmd_get_hold_effect
+ .4byte BattleAICmd_get_gender
+ .4byte BattleAICmd_is_first_turn
+ .4byte BattleAICmd_get_stockpile_count
+ .4byte BattleAICmd_unk_4C
+ .4byte BattleAICmd_get_item
+ .4byte BattleAICmd_unk_4E
+ .4byte BattleAICmd_unk_4F
+ .4byte BattleAICmd_unk_50
+ .4byte BattleAICmd_get_protect_count
+ .4byte BattleAICmd_unk_52
+ .4byte BattleAICmd_unk_53
+ .4byte BattleAICmd_unk_54
+ .4byte BattleAICmd_unk_55
+ .4byte BattleAICmd_unk_56
+ .4byte BattleAICmd_unk_57
+ .4byte BattleAICmd_call
+ .4byte BattleAICmd_jump
+ .4byte BattleAICmd_unk_5A
+ .4byte BattleAICmd_if_level_cond
+ .4byte BattleAICmd_if_taunted
+ .4byte BattleAICmd_if_not_taunted
gUnknown_083F62BC:: @ 83F62BC
.incbin "baserom.gba", 0x003f62bc, 0x1c
@@ -24185,7 +24187,7 @@ gSpriteTemplate_83F7B40:: @ 83F7B40
spr_template 4096, 4096, gOamData_83F7B08, gSpriteAnimTable_83F7B24, NULL, gDummySpriteAffineAnimTable, sub_810B230
@ 83F7B58
- .include "data/clock_hand_coords.s"
+ .include "data/clock_hand_coords.inc"
gUnknown_083F7E28:: @ 83F7E28
.incbin "baserom.gba", 0x003f7e28, 0x80
@@ -24196,7 +24198,7 @@ gUnknown_083F7EA8:: @ 83F7EA8
.4byte sub_802E424, c2_exit_to_overworld_2_switch
.align 2
-gUnknown_083F7EB8:: @ 83F7EB8
+gPokeblockNames:: @ 83F7EB8
.4byte NULL
.4byte ContestStatsText_RedPokeBlock
.4byte ContestStatsText_BluePokeBlock
@@ -25357,7 +25359,7 @@ gCryMeterNeedleSpritePalettes:: @ 83FB79C
null_obj_pal
@ 83FB7AC
- .include "data/landmarks.s"
+ .include "data/landmarks.inc"
.align 2
gUnknown_083FBB88:: @ 83FBB88
@@ -25716,7 +25718,7 @@ gUnknown_083FDB44:: @ 83FDB44
gUnknown_083FDFF4:: @ 83FDFF4
.incbin "graphics/battle_transitions/elite_four_bg_map.bin"
- .include "data/text/battle_strings.s"
+ .include "data/text/battle_strings.inc"
gUnknown_084016BC:: @ 84016BC
.incbin "baserom.gba", 0x004016bc, 0xec
@@ -26898,16 +26900,16 @@ gRoamerLocations:: @ 8402E80
.byte 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
@ 8402F00
- .include "data/battle_tower/trainers.s"
+ .include "data/battle_tower/trainers.inc"
@ 8403860
- .include "data/battle_tower/held_items.s"
+ .include "data/battle_tower/held_items.inc"
@ 84038E0
- .include "data/battle_tower/level_50_mons.s"
+ .include "data/battle_tower/level_50_mons.inc"
@ 8404BA0
- .include "data/battle_tower/level_100_mons.s"
+ .include "data/battle_tower/level_100_mons.inc"
gUnknown_08405E60:: @ 8405E60
.incbin "baserom.gba", 0x00405e60, 0x1e
@@ -28026,7 +28028,7 @@ gUnknown_0840B869:: @ 840B869
gUnknown_0840B878::
.incbin "baserom.gba", 0x0040B878, 0xf
- .include "data/text/credits.s"
+ .include "data/text/credits.inc"
gUnknown_0840CA00:: @ 840CA00
.incbin "baserom.gba", 0x0040ca00, 0x8
@@ -30171,7 +30173,7 @@ gUnknown_08411980:: @ 8411980
.incbin "graphics/misc/clock_small.4bpp.lz"
@ 8411A10
- .include "data/mon_pokeblock_anims.s"
+ .include "data/mon_pokeblock_anims.inc"
.align 2
gSpriteAffineAnim_8411E90:: @ 8411E90
@@ -30870,7 +30872,7 @@ gUnknown_084170F4:: @ 84170F4
.incbin "baserom.gba", 0x004170f4, 0xD0
@ 84171C4
- .include "data/bard_music.s"
+ .include "data/bard_music.inc"
UnknownString_1stRound:
.string "1st round$"
@@ -31095,7 +31097,7 @@ gOtherText_FourQuestions:: @ 842C7D6
.string "????$"
@ 842C7DB
- .include "data/text/easy_chat/group_name_strings.s"
+ .include "data/text/easy_chat/group_name_strings.inc"
gOtherText_ThreeQuestions:: @ 842C890
.string "???$"
@@ -31309,7 +31311,7 @@ gOtherText_LinkStandby:: @ 842CEAF
.string "Link standby...$"
@ 842CEBF
- .include "data/text/landmarks.s"
+ .include "data/text/landmarks.inc"
gOtherText_Terminator4:: @ 842D0E6
.string "$"
@@ -31673,38 +31675,38 @@ gUnknown_0842F5BC:: @ 842F5BC
.align 2
gSubspriteTables_842F5C0:: @ 842F5C0
- .4byte 1, gSubspriteTable_203A380
- .4byte 1, gSubspriteTable_203A380
- .4byte 2, gSubspriteTable_203A380
- .4byte 3, gSubspriteTable_203A380
- .4byte 4, gSubspriteTable_203A380
- .4byte 5, gSubspriteTable_203A380
- .4byte 6, gSubspriteTable_203A380
- .4byte 7, gSubspriteTable_203A380
- .4byte 8, gSubspriteTable_203A380
- .4byte 9, gSubspriteTable_203A380
- .4byte 10, gSubspriteTable_203A380
- .4byte 11, gSubspriteTable_203A380
- .4byte 12, gSubspriteTable_203A380
- .4byte 13, gSubspriteTable_203A380
- .4byte 14, gSubspriteTable_203A380
- .4byte 15, gSubspriteTable_203A380
- .4byte 1, gSubspriteTable_203A380
- .4byte 17, gSubspriteTable_203A380
- .4byte 18, gSubspriteTable_203A380
- .4byte 19, gSubspriteTable_203A380
- .4byte 20, gSubspriteTable_203A380
- .4byte 21, gSubspriteTable_203A380
- .4byte 22, gSubspriteTable_203A380
- .4byte 23, gSubspriteTable_203A380
- .4byte 24, gSubspriteTable_203A380
- .4byte 25, gSubspriteTable_203A380
- .4byte 26, gSubspriteTable_203A380
- .4byte 27, gSubspriteTable_203A380
- .4byte 28, gSubspriteTable_203A380
- .4byte 29, gSubspriteTable_203A380
- .4byte 30, gSubspriteTable_203A380
- .4byte 31, gSubspriteTable_203A380
+ .4byte 1, gMenuCursorSubsprites
+ .4byte 1, gMenuCursorSubsprites
+ .4byte 2, gMenuCursorSubsprites
+ .4byte 3, gMenuCursorSubsprites
+ .4byte 4, gMenuCursorSubsprites
+ .4byte 5, gMenuCursorSubsprites
+ .4byte 6, gMenuCursorSubsprites
+ .4byte 7, gMenuCursorSubsprites
+ .4byte 8, gMenuCursorSubsprites
+ .4byte 9, gMenuCursorSubsprites
+ .4byte 10, gMenuCursorSubsprites
+ .4byte 11, gMenuCursorSubsprites
+ .4byte 12, gMenuCursorSubsprites
+ .4byte 13, gMenuCursorSubsprites
+ .4byte 14, gMenuCursorSubsprites
+ .4byte 15, gMenuCursorSubsprites
+ .4byte 1, gMenuCursorSubsprites
+ .4byte 17, gMenuCursorSubsprites
+ .4byte 18, gMenuCursorSubsprites
+ .4byte 19, gMenuCursorSubsprites
+ .4byte 20, gMenuCursorSubsprites
+ .4byte 21, gMenuCursorSubsprites
+ .4byte 22, gMenuCursorSubsprites
+ .4byte 23, gMenuCursorSubsprites
+ .4byte 24, gMenuCursorSubsprites
+ .4byte 25, gMenuCursorSubsprites
+ .4byte 26, gMenuCursorSubsprites
+ .4byte 27, gMenuCursorSubsprites
+ .4byte 28, gMenuCursorSubsprites
+ .4byte 29, gMenuCursorSubsprites
+ .4byte 30, gMenuCursorSubsprites
+ .4byte 31, gMenuCursorSubsprites
.align 2
gUnknown_0842F6C0:: @ 842F6C0
@@ -31730,7 +31732,7 @@ gUnknown_0842F6C0:: @ 842F6C0
.align 2
gUnknown_0842F758:: @ 842F758
- .4byte 3, gSubspriteTable_203A380
+ .4byte 3, gMenuCursorSubsprites
.4byte 0, 2
.4byte 0, 66
.4byte 0, 105
diff --git a/data/decorations.s b/data/decorations.inc
index 268ebee9a..268ebee9a 100644
--- a/data/decorations.s
+++ b/data/decorations.inc
diff --git a/data/egg_moves.s b/data/egg_moves.inc
index e684e04ce..e684e04ce 100644
--- a/data/egg_moves.s
+++ b/data/egg_moves.inc
diff --git a/data/enemy_mon_elevation.s b/data/enemy_mon_elevation.inc
index 7e13f20d5..7e13f20d5 100644
--- a/data/enemy_mon_elevation.s
+++ b/data/enemy_mon_elevation.inc
diff --git a/data/event_scripts.s b/data/event_scripts.s
index 73e7da981..e76663f7f 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -1,34 +1,35 @@
- .include "asm/macros.s"
- .include "asm/macros/event.s"
- .include "constants/constants.s"
+ .include "asm/macros.inc"
+ .include "asm/macros/event.inc"
+ .include "constants/constants.inc"
+ .include "constants/variables.inc"
.section script_data, "aw", %progbits
@ 814AE30
- .include "data/script_cmd_table.s"
+ .include "data/script_cmd_table.inc"
.align 2
gSpecialVars::
- .4byte 0x202e8c4
- .4byte 0x202e8c6
- .4byte 0x202e8c8
- .4byte 0x202e8ca
- .4byte 0x202e8cc
- .4byte 0x202e8ce
- .4byte 0x202e8d0
- .4byte 0x202e8d2
- .4byte 0x202e8d4
- .4byte 0x202e8d6
- .4byte 0x202e8d8
- .4byte 0x202e8da
- .4byte 0x202e8e0
+ .4byte gSpecialVar_0x8000
+ .4byte gSpecialVar_0x8001
+ .4byte gSpecialVar_0x8002
+ .4byte gSpecialVar_0x8003
+ .4byte gSpecialVar_0x8004
+ .4byte gSpecialVar_0x8005
+ .4byte gSpecialVar_0x8006
+ .4byte gSpecialVar_0x8007
+ .4byte gSpecialVar_0x8008
+ .4byte gSpecialVar_0x8009
+ .4byte gSpecialVar_0x800A
+ .4byte gSpecialVar_0x800B
+ .4byte gScriptFacing
.4byte gScriptResult
- .4byte 0x203855e
- .4byte 0x202e8de
- .4byte 0x203869e
- .4byte 0x203869c
+ .4byte gScriptItemId
+ .4byte gScriptLastTalked
+ .4byte gScriptContestRank
+ .4byte gScriptContestCategory
- .include "data/specials.s"
+ .include "data/specials.inc"
.align 2
gStdScripts::
@@ -42,346 +43,346 @@ gStdScripts::
.4byte Std_ObtainDecoration
gStdScripts_End::
- .include "data/scripts/maps/PetalburgCity.s"
- .include "data/scripts/maps/SlateportCity.s"
- .include "data/scripts/maps/MauvilleCity.s"
- .include "data/scripts/maps/RustboroCity.s"
- .include "data/scripts/maps/FortreeCity.s"
- .include "data/scripts/maps/LilycoveCity.s"
- .include "data/scripts/maps/MossdeepCity.s"
- .include "data/scripts/maps/SootopolisCity.s"
- .include "data/scripts/maps/EverGrandeCity.s"
- .include "data/scripts/maps/LittlerootTown.s"
- .include "data/scripts/maps/OldaleTown.s"
- .include "data/scripts/maps/DewfordTown.s"
- .include "data/scripts/maps/LavaridgeTown.s"
- .include "data/scripts/maps/FallarborTown.s"
- .include "data/scripts/maps/VerdanturfTown.s"
- .include "data/scripts/maps/PacifidlogTown.s"
- .include "data/scripts/maps/Route101.s"
- .include "data/scripts/maps/Route102.s"
- .include "data/scripts/maps/Route103.s"
- .include "data/scripts/maps/Route104.s"
- .include "data/scripts/maps/Route105.s"
- .include "data/scripts/maps/Route106.s"
- .include "data/scripts/maps/Route107.s"
- .include "data/scripts/maps/Route108.s"
- .include "data/scripts/maps/Route109.s"
- .include "data/scripts/maps/Route110.s"
- .include "data/scripts/maps/Route111.s"
- .include "data/scripts/maps/Route112.s"
- .include "data/scripts/maps/Route113.s"
- .include "data/scripts/maps/Route114.s"
- .include "data/scripts/maps/Route115.s"
- .include "data/scripts/maps/Route116.s"
- .include "data/scripts/maps/Route117.s"
- .include "data/scripts/maps/Route118.s"
- .include "data/scripts/maps/Route119.s"
- .include "data/scripts/maps/Route120.s"
- .include "data/scripts/maps/Route121.s"
- .include "data/scripts/maps/Route122.s"
- .include "data/scripts/maps/Route123.s"
- .include "data/scripts/maps/Route124.s"
- .include "data/scripts/maps/Route125.s"
- .include "data/scripts/maps/Route126.s"
- .include "data/scripts/maps/Route127.s"
- .include "data/scripts/maps/Route128.s"
- .include "data/scripts/maps/Route129.s"
- .include "data/scripts/maps/Route130.s"
- .include "data/scripts/maps/Route131.s"
- .include "data/scripts/maps/Route132.s"
- .include "data/scripts/maps/Route133.s"
- .include "data/scripts/maps/Route134.s"
- .include "data/scripts/maps/Underwater1.s"
- .include "data/scripts/maps/Underwater2.s"
- .include "data/scripts/maps/Underwater3.s"
- .include "data/scripts/maps/Underwater4.s"
- .include "data/scripts/maps/LittlerootTown_BrendansHouse_1F.s"
- .include "data/scripts/maps/LittlerootTown_BrendansHouse_2F.s"
- .include "data/scripts/maps/LittlerootTown_MaysHouse_1F.s"
- .include "data/scripts/maps/LittlerootTown_MaysHouse_2F.s"
- .include "data/scripts/maps/LittlerootTown_ProfessorBirchsLab.s"
- .include "data/scripts/maps/OldaleTown_House1.s"
- .include "data/scripts/maps/OldaleTown_House2.s"
- .include "data/scripts/maps/OldaleTown_PokemonCenter_1F.s"
- .include "data/scripts/maps/OldaleTown_PokemonCenter_2F.s"
- .include "data/scripts/maps/OldaleTown_Mart.s"
- .include "data/scripts/maps/DewfordTown_House1.s"
- .include "data/scripts/maps/DewfordTown_PokemonCenter_1F.s"
- .include "data/scripts/maps/DewfordTown_PokemonCenter_2F.s"
- .include "data/scripts/maps/DewfordTown_Gym.s"
- .include "data/scripts/maps/DewfordTown_Hall.s"
- .include "data/scripts/maps/DewfordTown_House2.s"
- .include "data/scripts/maps/LavaridgeTown_HerbShop.s"
- .include "data/scripts/maps/LavaridgeTown_Gym_1F.s"
- .include "data/scripts/maps/LavaridgeTown_Gym_B1F.s"
- .include "data/scripts/maps/LavaridgeTown_House.s"
- .include "data/scripts/maps/LavaridgeTown_Mart.s"
- .include "data/scripts/maps/LavaridgeTown_PokemonCenter_1F.s"
- .include "data/scripts/maps/LavaridgeTown_PokemonCenter_2F.s"
- .include "data/scripts/maps/FallarborTown_Mart.s"
- .include "data/scripts/maps/FallarborTown_ContestLobby.s"
- .include "data/scripts/maps/FallarborTown_ContestHall.s"
- .include "data/scripts/maps/FallarborTown_PokemonCenter_1F.s"
- .include "data/scripts/maps/FallarborTown_PokemonCenter_2F.s"
- .include "data/scripts/maps/FallarborTown_House1.s"
- .include "data/scripts/maps/FallarborTown_House2.s"
- .include "data/scripts/maps/VerdanturfTown_ContestLobby.s"
- .include "data/scripts/maps/VerdanturfTown_ContestHall.s"
- .include "data/scripts/maps/VerdanturfTown_Mart.s"
- .include "data/scripts/maps/VerdanturfTown_PokemonCenter_1F.s"
- .include "data/scripts/maps/VerdanturfTown_PokemonCenter_2F.s"
- .include "data/scripts/maps/VerdanturfTown_WandasHouse.s"
- .include "data/scripts/maps/VerdanturfTown_FriendshipRatersHouse.s"
- .include "data/scripts/maps/VerdanturfTown_House.s"
- .include "data/scripts/maps/PacifidlogTown_PokemonCenter_1F.s"
- .include "data/scripts/maps/PacifidlogTown_PokemonCenter_2F.s"
- .include "data/scripts/maps/PacifidlogTown_House1.s"
- .include "data/scripts/maps/PacifidlogTown_House2.s"
- .include "data/scripts/maps/PacifidlogTown_House3.s"
- .include "data/scripts/maps/PacifidlogTown_House4.s"
- .include "data/scripts/maps/PacifidlogTown_House5.s"
- .include "data/scripts/maps/PetalburgCity_WallysHouse.s"
- .include "data/scripts/maps/PetalburgCity_Gym.s"
- .include "data/scripts/maps/PetalburgCity_House1.s"
- .include "data/scripts/maps/PetalburgCity_House2.s"
- .include "data/scripts/maps/PetalburgCity_PokemonCenter_1F.s"
- .include "data/scripts/maps/PetalburgCity_PokemonCenter_2F.s"
- .include "data/scripts/maps/PetalburgCity_Mart.s"
- .include "data/scripts/maps/SlateportCity_SternsShipyard_1F.s"
- .include "data/scripts/maps/SlateportCity_SternsShipyard_2F.s"
- .include "data/scripts/maps/SlateportCity_ContestLobby.s"
- .include "data/scripts/maps/SlateportCity_ContestHall.s"
- .include "data/scripts/maps/SlateportCity_House1.s"
- .include "data/scripts/maps/SlateportCity_PokemonFanClub.s"
- .include "data/scripts/maps/SlateportCity_OceanicMuseum_1F.s"
- .include "data/scripts/maps/SlateportCity_OceanicMuseum_2F.s"
- .include "data/scripts/maps/SlateportCity_Harbor.s"
- .include "data/scripts/maps/SlateportCity_House2.s"
- .include "data/scripts/maps/SlateportCity_PokemonCenter_1F.s"
- .include "data/scripts/maps/SlateportCity_PokemonCenter_2F.s"
- .include "data/scripts/maps/SlateportCity_Mart.s"
- .include "data/scripts/maps/MauvilleCity_Gym.s"
- .include "data/scripts/maps/MauvilleCity_BikeShop.s"
- .include "data/scripts/maps/MauvilleCity_House1.s"
- .include "data/scripts/maps/MauvilleCity_GameCorner.s"
- .include "data/scripts/maps/MauvilleCity_House2.s"
- .include "data/scripts/maps/MauvilleCity_PokemonCenter_1F.s"
- .include "data/scripts/maps/MauvilleCity_PokemonCenter_2F.s"
- .include "data/scripts/maps/MauvilleCity_Mart.s"
- .include "data/scripts/maps/RustboroCity_DevonCorp_1F.s"
- .include "data/scripts/maps/RustboroCity_DevonCorp_2F.s"
- .include "data/scripts/maps/RustboroCity_DevonCorp_3F.s"
- .include "data/scripts/maps/RustboroCity_Gym.s"
- .include "data/scripts/maps/RustboroCity_PokemonSchool.s"
- .include "data/scripts/maps/RustboroCity_PokemonCenter_1F.s"
- .include "data/scripts/maps/RustboroCity_PokemonCenter_2F.s"
- .include "data/scripts/maps/RustboroCity_Mart.s"
- .include "data/scripts/maps/RustboroCity_Flat1_1F.s"
- .include "data/scripts/maps/RustboroCity_Flat1_2F.s"
- .include "data/scripts/maps/RustboroCity_House1.s"
- .include "data/scripts/maps/RustboroCity_CuttersHouse.s"
- .include "data/scripts/maps/RustboroCity_House2.s"
- .include "data/scripts/maps/RustboroCity_Flat2_1F.s"
- .include "data/scripts/maps/RustboroCity_Flat2_2F.s"
- .include "data/scripts/maps/RustboroCity_Flat2_3F.s"
- .include "data/scripts/maps/RustboroCity_House3.s"
- .include "data/scripts/maps/FortreeCity_House1.s"
- .include "data/scripts/maps/FortreeCity_Gym.s"
- .include "data/scripts/maps/FortreeCity_PokemonCenter_1F.s"
- .include "data/scripts/maps/FortreeCity_PokemonCenter_2F.s"
- .include "data/scripts/maps/FortreeCity_Mart.s"
- .include "data/scripts/maps/FortreeCity_House2.s"
- .include "data/scripts/maps/FortreeCity_House3.s"
- .include "data/scripts/maps/FortreeCity_House4.s"
- .include "data/scripts/maps/FortreeCity_House5.s"
- .include "data/scripts/maps/FortreeCity_DecorationShop.s"
- .include "data/scripts/maps/LilycoveCity_CoveLilyMotel_1F.s"
- .include "data/scripts/maps/LilycoveCity_CoveLilyMotel_2F.s"
- .include "data/scripts/maps/LilycoveCity_LilycoveMuseum_1F.s"
- .include "data/scripts/maps/LilycoveCity_LilycoveMuseum_2F.s"
- .include "data/scripts/maps/LilycoveCity_ContestLobby.s"
- .include "data/scripts/maps/LilycoveCity_ContestHall.s"
- .include "data/scripts/maps/LilycoveCity_PokemonCenter_1F.s"
- .include "data/scripts/maps/LilycoveCity_PokemonCenter_2F.s"
- .include "data/scripts/maps/LilycoveCity_UnusedMart.s"
- .include "data/scripts/maps/LilycoveCity_PokemonTrainerFanClub.s"
- .include "data/scripts/maps/LilycoveCity_Harbor.s"
- .include "data/scripts/maps/LilycoveCity_EmptyMap.s"
- .include "data/scripts/maps/LilycoveCity_MoveDeletersHouse.s"
- .include "data/scripts/maps/LilycoveCity_House1.s"
- .include "data/scripts/maps/LilycoveCity_House2.s"
- .include "data/scripts/maps/LilycoveCity_House3.s"
- .include "data/scripts/maps/LilycoveCity_House4.s"
- .include "data/scripts/maps/LilycoveCity_DepartmentStore_1F.s"
- .include "data/scripts/maps/LilycoveCity_DepartmentStore_2F.s"
- .include "data/scripts/maps/LilycoveCity_DepartmentStore_3F.s"
- .include "data/scripts/maps/LilycoveCity_DepartmentStore_4F.s"
- .include "data/scripts/maps/LilycoveCity_DepartmentStore_5F.s"
- .include "data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.s"
- .include "data/scripts/maps/LilycoveCity_DepartmentStoreElevator.s"
- .include "data/scripts/maps/MossdeepCity_Gym.s"
- .include "data/scripts/maps/MossdeepCity_House1.s"
- .include "data/scripts/maps/MossdeepCity_House2.s"
- .include "data/scripts/maps/MossdeepCity_PokemonCenter_1F.s"
- .include "data/scripts/maps/MossdeepCity_PokemonCenter_2F.s"
- .include "data/scripts/maps/MossdeepCity_Mart.s"
- .include "data/scripts/maps/MossdeepCity_House3.s"
- .include "data/scripts/maps/MossdeepCity_StevensHouse.s"
- .include "data/scripts/maps/MossdeepCity_House4.s"
- .include "data/scripts/maps/MossdeepCity_SpaceCenter_1F.s"
- .include "data/scripts/maps/MossdeepCity_SpaceCenter_2F.s"
- .include "data/scripts/maps/MossdeepCity_GameCorner_1F.s"
- .include "data/scripts/maps/MossdeepCity_GameCorner_B1F.s"
- .include "data/scripts/maps/SootopolisCity_Gym_1F.s"
- .include "data/scripts/maps/SootopolisCity_Gym_B1F.s"
- .include "data/scripts/maps/SootopolisCity_PokemonCenter_1F.s"
- .include "data/scripts/maps/SootopolisCity_PokemonCenter_2F.s"
- .include "data/scripts/maps/SootopolisCity_Mart.s"
- .include "data/scripts/maps/SootopolisCity_House1.s"
- .include "data/scripts/maps/SootopolisCity_House2.s"
- .include "data/scripts/maps/SootopolisCity_House3.s"
- .include "data/scripts/maps/SootopolisCity_House4.s"
- .include "data/scripts/maps/SootopolisCity_House5.s"
- .include "data/scripts/maps/SootopolisCity_House6.s"
- .include "data/scripts/maps/SootopolisCity_House7.s"
- .include "data/scripts/maps/SootopolisCity_House8.s"
- .include "data/scripts/maps/EverGrandeCity_SidneysRoom.s"
- .include "data/scripts/maps/EverGrandeCity_PhoebesRoom.s"
- .include "data/scripts/maps/EverGrandeCity_GlaciasRoom.s"
- .include "data/scripts/maps/EverGrandeCity_DrakesRoom.s"
- .include "data/scripts/maps/EverGrandeCity_ChampionsRoom.s"
- .include "data/scripts/maps/EverGrandeCity_Corridor1.s"
- .include "data/scripts/maps/EverGrandeCity_Corridor2.s"
- .include "data/scripts/maps/EverGrandeCity_Corridor3.s"
- .include "data/scripts/maps/EverGrandeCity_Corridor4.s"
- .include "data/scripts/maps/EverGrandeCity_Corridor5.s"
- .include "data/scripts/maps/EverGrandeCity_PokemonLeague.s"
- .include "data/scripts/maps/EverGrandeCity_HallOfFame.s"
- .include "data/scripts/maps/EverGrandeCity_PokemonCenter_1F.s"
- .include "data/scripts/maps/EverGrandeCity_PokemonCenter_2F.s"
- .include "data/scripts/maps/Route104_MrBrineysHouse.s"
- .include "data/scripts/maps/Route104_PrettyPetalFlowerShop.s"
- .include "data/scripts/maps/Route111_WinstrateFamilysHouse.s"
- .include "data/scripts/maps/Route111_OldLadysRestStop.s"
- .include "data/scripts/maps/Route112_CableCarStation.s"
- .include "data/scripts/maps/MtChimney_CableCarStation.s"
- .include "data/scripts/maps/Route114_FossilManiacsHouse.s"
- .include "data/scripts/maps/Route114_FossilManiacsTunnel.s"
- .include "data/scripts/maps/Route114_LanettesHouse.s"
- .include "data/scripts/maps/Route116_TunnelersRestHouse.s"
- .include "data/scripts/maps/Route117_PokemonDayCare.s"
- .include "data/scripts/maps/Route121_SafariZoneEntrance.s"
- .include "data/scripts/maps/MeteorFalls_1F_1R.s"
- .include "data/scripts/maps/MeteorFalls_1F_2R.s"
- .include "data/scripts/maps/MeteorFalls_B1F_1R.s"
- .include "data/scripts/maps/MeteorFalls_B1F_2R.s"
- .include "data/scripts/maps/RusturfTunnel.s"
- .include "data/scripts/maps/Underwater_SootopolisCity.s"
- .include "data/scripts/maps/DesertRuins.s"
- .include "data/scripts/maps/GraniteCave_1F.s"
- .include "data/scripts/maps/GraniteCave_B1F.s"
- .include "data/scripts/maps/GraniteCave_B2F.s"
- .include "data/scripts/maps/GraniteCave_StevensRoom.s"
- .include "data/scripts/maps/PetalburgWoods.s"
- .include "data/scripts/maps/MtChimney.s"
- .include "data/scripts/maps/JaggedPass.s"
- .include "data/scripts/maps/FieryPath.s"
- .include "data/scripts/maps/MtPyre_1F.s"
- .include "data/scripts/maps/MtPyre_2F.s"
- .include "data/scripts/maps/MtPyre_3F.s"
- .include "data/scripts/maps/MtPyre_4F.s"
- .include "data/scripts/maps/MtPyre_5F.s"
- .include "data/scripts/maps/MtPyre_6F.s"
- .include "data/scripts/maps/MtPyre_Exterior.s"
- .include "data/scripts/maps/MtPyre_Summit.s"
- .include "data/scripts/maps/AquaHideout_1F.s"
- .include "data/scripts/maps/AquaHideout_B1F.s"
- .include "data/scripts/maps/AquaHideout_B2F.s"
- .include "data/scripts/maps/Underwater_SeafloorCavern.s"
- .include "data/scripts/maps/SeafloorCavern_Entrance.s"
- .include "data/scripts/maps/SeafloorCavern_Room1.s"
- .include "data/scripts/maps/SeafloorCavern_Room2.s"
- .include "data/scripts/maps/SeafloorCavern_Room3.s"
- .include "data/scripts/maps/SeafloorCavern_Room4.s"
- .include "data/scripts/maps/SeafloorCavern_Room5.s"
- .include "data/scripts/maps/SeafloorCavern_Room6.s"
- .include "data/scripts/maps/SeafloorCavern_Room7.s"
- .include "data/scripts/maps/SeafloorCavern_Room8.s"
- .include "data/scripts/maps/SeafloorCavern_Room9.s"
- .include "data/scripts/maps/CaveOfOrigin_Entrance.s"
- .include "data/scripts/maps/CaveOfOrigin_1F.s"
- .include "data/scripts/maps/CaveOfOrigin_B1F.s"
- .include "data/scripts/maps/CaveOfOrigin_B2F.s"
- .include "data/scripts/maps/CaveOfOrigin_B3F.s"
- .include "data/scripts/maps/CaveOfOrigin_B4F.s"
- .include "data/scripts/maps/VictoryRoad_1F.s"
- .include "data/scripts/maps/VictoryRoad_B1F.s"
- .include "data/scripts/maps/VictoryRoad_B2F.s"
- .include "data/scripts/maps/ShoalCave_LowTideEntranceRoom.s"
- .include "data/scripts/maps/ShoalCave_LowTideInnerRoom.s"
- .include "data/scripts/maps/ShoalCave_LowTideStairsRoom.s"
- .include "data/scripts/maps/ShoalCave_LowTideLowerRoom.s"
- .include "data/scripts/maps/ShoalCave_HighTideEntranceRoom.s"
- .include "data/scripts/maps/ShoalCave_HighTideInnerRoom.s"
- .include "data/scripts/maps/NewMauville_Entrance.s"
- .include "data/scripts/maps/NewMauville_Inside.s"
- .include "data/scripts/maps/AbandonedShip_Deck.s"
- .include "data/scripts/maps/AbandonedShip_Corridors_1F.s"
- .include "data/scripts/maps/AbandonedShip_Rooms_1F.s"
- .include "data/scripts/maps/AbandonedShip_Corridors_B1F.s"
- .include "data/scripts/maps/AbandonedShip_Rooms_B1F.s"
- .include "data/scripts/maps/AbandonedShip_Rooms2_B1F.s"
- .include "data/scripts/maps/AbandonedShip_Underwater1.s"
- .include "data/scripts/maps/AbandonedShip_Room_B1F.s"
- .include "data/scripts/maps/AbandonedShip_Rooms2_1F.s"
- .include "data/scripts/maps/AbandonedShip_CaptainsOffice.s"
- .include "data/scripts/maps/AbandonedShip_Underwater2.s"
- .include "data/scripts/maps/AbandonedShip_HiddenFloorCorridors.s"
- .include "data/scripts/maps/AbandonedShip_HiddenFloorRooms.s"
- .include "data/scripts/maps/IslandCave.s"
- .include "data/scripts/maps/AncientTomb.s"
- .include "data/scripts/maps/Underwater_Route134.s"
- .include "data/scripts/maps/Underwater_SealedChamber.s"
- .include "data/scripts/maps/SealedChamber_OuterRoom.s"
- .include "data/scripts/maps/SealedChamber_InnerRoom.s"
- .include "data/scripts/maps/ScorchedSlab.s"
- .include "data/scripts/maps/MagmaHideout_1F.s"
- .include "data/scripts/maps/MagmaHideout_B1F.s"
- .include "data/scripts/maps/MagmaHideout_B2F.s"
- .include "data/scripts/maps/SkyPillar_Entrance.s"
- .include "data/scripts/maps/SkyPillar_Outside.s"
- .include "data/scripts/maps/SkyPillar_1F.s"
- .include "data/scripts/maps/SkyPillar_2F.s"
- .include "data/scripts/maps/SkyPillar_3F.s"
- .include "data/scripts/maps/SkyPillar_4F.s"
- .include "data/scripts/maps/ShoalCave_LowTideIceRoom.s"
- .include "data/scripts/maps/SkyPillar_5F.s"
- .include "data/scripts/maps/SkyPillar_Top.s"
- .include "data/scripts/maps/SecretBase_BlueCave1.s"
- .include "data/scripts/maps/SecretBase_BlueCave2.s"
- .include "data/scripts/maps/SecretBase_BlueCave3.s"
- .include "data/scripts/maps/SecretBase_BlueCave4.s"
- .include "data/scripts/maps/SecretBase_BrownCave1.s"
- .include "data/scripts/maps/SecretBase_BrownCave2.s"
- .include "data/scripts/maps/SecretBase_BrownCave3.s"
- .include "data/scripts/maps/SecretBase_BrownCave4.s"
- .include "data/scripts/maps/SecretBase_RedCave1.s"
- .include "data/scripts/maps/SecretBase_RedCave2.s"
- .include "data/scripts/maps/SecretBase_RedCave3.s"
- .include "data/scripts/maps/SecretBase_RedCave4.s"
- .include "data/scripts/maps/SecretBase_Shrub1.s"
- .include "data/scripts/maps/SecretBase_Shrub2.s"
- .include "data/scripts/maps/SecretBase_Shrub3.s"
- .include "data/scripts/maps/SecretBase_Shrub4.s"
- .include "data/scripts/maps/SecretBase_Tree1.s"
- .include "data/scripts/maps/SecretBase_Tree2.s"
- .include "data/scripts/maps/SecretBase_Tree3.s"
- .include "data/scripts/maps/SecretBase_Tree4.s"
- .include "data/scripts/maps/SecretBase_YellowCave1.s"
- .include "data/scripts/maps/SecretBase_YellowCave2.s"
- .include "data/scripts/maps/SecretBase_YellowCave3.s"
- .include "data/scripts/maps/SecretBase_YellowCave4.s"
+ .include "data/scripts/maps/PetalburgCity.inc"
+ .include "data/scripts/maps/SlateportCity.inc"
+ .include "data/scripts/maps/MauvilleCity.inc"
+ .include "data/scripts/maps/RustboroCity.inc"
+ .include "data/scripts/maps/FortreeCity.inc"
+ .include "data/scripts/maps/LilycoveCity.inc"
+ .include "data/scripts/maps/MossdeepCity.inc"
+ .include "data/scripts/maps/SootopolisCity.inc"
+ .include "data/scripts/maps/EverGrandeCity.inc"
+ .include "data/scripts/maps/LittlerootTown.inc"
+ .include "data/scripts/maps/OldaleTown.inc"
+ .include "data/scripts/maps/DewfordTown.inc"
+ .include "data/scripts/maps/LavaridgeTown.inc"
+ .include "data/scripts/maps/FallarborTown.inc"
+ .include "data/scripts/maps/VerdanturfTown.inc"
+ .include "data/scripts/maps/PacifidlogTown.inc"
+ .include "data/scripts/maps/Route101.inc"
+ .include "data/scripts/maps/Route102.inc"
+ .include "data/scripts/maps/Route103.inc"
+ .include "data/scripts/maps/Route104.inc"
+ .include "data/scripts/maps/Route105.inc"
+ .include "data/scripts/maps/Route106.inc"
+ .include "data/scripts/maps/Route107.inc"
+ .include "data/scripts/maps/Route108.inc"
+ .include "data/scripts/maps/Route109.inc"
+ .include "data/scripts/maps/Route110.inc"
+ .include "data/scripts/maps/Route111.inc"
+ .include "data/scripts/maps/Route112.inc"
+ .include "data/scripts/maps/Route113.inc"
+ .include "data/scripts/maps/Route114.inc"
+ .include "data/scripts/maps/Route115.inc"
+ .include "data/scripts/maps/Route116.inc"
+ .include "data/scripts/maps/Route117.inc"
+ .include "data/scripts/maps/Route118.inc"
+ .include "data/scripts/maps/Route119.inc"
+ .include "data/scripts/maps/Route120.inc"
+ .include "data/scripts/maps/Route121.inc"
+ .include "data/scripts/maps/Route122.inc"
+ .include "data/scripts/maps/Route123.inc"
+ .include "data/scripts/maps/Route124.inc"
+ .include "data/scripts/maps/Route125.inc"
+ .include "data/scripts/maps/Route126.inc"
+ .include "data/scripts/maps/Route127.inc"
+ .include "data/scripts/maps/Route128.inc"
+ .include "data/scripts/maps/Route129.inc"
+ .include "data/scripts/maps/Route130.inc"
+ .include "data/scripts/maps/Route131.inc"
+ .include "data/scripts/maps/Route132.inc"
+ .include "data/scripts/maps/Route133.inc"
+ .include "data/scripts/maps/Route134.inc"
+ .include "data/scripts/maps/Underwater1.inc"
+ .include "data/scripts/maps/Underwater2.inc"
+ .include "data/scripts/maps/Underwater3.inc"
+ .include "data/scripts/maps/Underwater4.inc"
+ .include "data/scripts/maps/LittlerootTown_BrendansHouse_1F.inc"
+ .include "data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc"
+ .include "data/scripts/maps/LittlerootTown_MaysHouse_1F.inc"
+ .include "data/scripts/maps/LittlerootTown_MaysHouse_2F.inc"
+ .include "data/scripts/maps/LittlerootTown_ProfessorBirchsLab.inc"
+ .include "data/scripts/maps/OldaleTown_House1.inc"
+ .include "data/scripts/maps/OldaleTown_House2.inc"
+ .include "data/scripts/maps/OldaleTown_PokemonCenter_1F.inc"
+ .include "data/scripts/maps/OldaleTown_PokemonCenter_2F.inc"
+ .include "data/scripts/maps/OldaleTown_Mart.inc"
+ .include "data/scripts/maps/DewfordTown_House1.inc"
+ .include "data/scripts/maps/DewfordTown_PokemonCenter_1F.inc"
+ .include "data/scripts/maps/DewfordTown_PokemonCenter_2F.inc"
+ .include "data/scripts/maps/DewfordTown_Gym.inc"
+ .include "data/scripts/maps/DewfordTown_Hall.inc"
+ .include "data/scripts/maps/DewfordTown_House2.inc"
+ .include "data/scripts/maps/LavaridgeTown_HerbShop.inc"
+ .include "data/scripts/maps/LavaridgeTown_Gym_1F.inc"
+ .include "data/scripts/maps/LavaridgeTown_Gym_B1F.inc"
+ .include "data/scripts/maps/LavaridgeTown_House.inc"
+ .include "data/scripts/maps/LavaridgeTown_Mart.inc"
+ .include "data/scripts/maps/LavaridgeTown_PokemonCenter_1F.inc"
+ .include "data/scripts/maps/LavaridgeTown_PokemonCenter_2F.inc"
+ .include "data/scripts/maps/FallarborTown_Mart.inc"
+ .include "data/scripts/maps/FallarborTown_ContestLobby.inc"
+ .include "data/scripts/maps/FallarborTown_ContestHall.inc"
+ .include "data/scripts/maps/FallarborTown_PokemonCenter_1F.inc"
+ .include "data/scripts/maps/FallarborTown_PokemonCenter_2F.inc"
+ .include "data/scripts/maps/FallarborTown_House1.inc"
+ .include "data/scripts/maps/FallarborTown_House2.inc"
+ .include "data/scripts/maps/VerdanturfTown_ContestLobby.inc"
+ .include "data/scripts/maps/VerdanturfTown_ContestHall.inc"
+ .include "data/scripts/maps/VerdanturfTown_Mart.inc"
+ .include "data/scripts/maps/VerdanturfTown_PokemonCenter_1F.inc"
+ .include "data/scripts/maps/VerdanturfTown_PokemonCenter_2F.inc"
+ .include "data/scripts/maps/VerdanturfTown_WandasHouse.inc"
+ .include "data/scripts/maps/VerdanturfTown_FriendshipRatersHouse.inc"
+ .include "data/scripts/maps/VerdanturfTown_House.inc"
+ .include "data/scripts/maps/PacifidlogTown_PokemonCenter_1F.inc"
+ .include "data/scripts/maps/PacifidlogTown_PokemonCenter_2F.inc"
+ .include "data/scripts/maps/PacifidlogTown_House1.inc"
+ .include "data/scripts/maps/PacifidlogTown_House2.inc"
+ .include "data/scripts/maps/PacifidlogTown_House3.inc"
+ .include "data/scripts/maps/PacifidlogTown_House4.inc"
+ .include "data/scripts/maps/PacifidlogTown_House5.inc"
+ .include "data/scripts/maps/PetalburgCity_WallysHouse.inc"
+ .include "data/scripts/maps/PetalburgCity_Gym.inc"
+ .include "data/scripts/maps/PetalburgCity_House1.inc"
+ .include "data/scripts/maps/PetalburgCity_House2.inc"
+ .include "data/scripts/maps/PetalburgCity_PokemonCenter_1F.inc"
+ .include "data/scripts/maps/PetalburgCity_PokemonCenter_2F.inc"
+ .include "data/scripts/maps/PetalburgCity_Mart.inc"
+ .include "data/scripts/maps/SlateportCity_SternsShipyard_1F.inc"
+ .include "data/scripts/maps/SlateportCity_SternsShipyard_2F.inc"
+ .include "data/scripts/maps/SlateportCity_ContestLobby.inc"
+ .include "data/scripts/maps/SlateportCity_ContestHall.inc"
+ .include "data/scripts/maps/SlateportCity_House1.inc"
+ .include "data/scripts/maps/SlateportCity_PokemonFanClub.inc"
+ .include "data/scripts/maps/SlateportCity_OceanicMuseum_1F.inc"
+ .include "data/scripts/maps/SlateportCity_OceanicMuseum_2F.inc"
+ .include "data/scripts/maps/SlateportCity_Harbor.inc"
+ .include "data/scripts/maps/SlateportCity_House2.inc"
+ .include "data/scripts/maps/SlateportCity_PokemonCenter_1F.inc"
+ .include "data/scripts/maps/SlateportCity_PokemonCenter_2F.inc"
+ .include "data/scripts/maps/SlateportCity_Mart.inc"
+ .include "data/scripts/maps/MauvilleCity_Gym.inc"
+ .include "data/scripts/maps/MauvilleCity_BikeShop.inc"
+ .include "data/scripts/maps/MauvilleCity_House1.inc"
+ .include "data/scripts/maps/MauvilleCity_GameCorner.inc"
+ .include "data/scripts/maps/MauvilleCity_House2.inc"
+ .include "data/scripts/maps/MauvilleCity_PokemonCenter_1F.inc"
+ .include "data/scripts/maps/MauvilleCity_PokemonCenter_2F.inc"
+ .include "data/scripts/maps/MauvilleCity_Mart.inc"
+ .include "data/scripts/maps/RustboroCity_DevonCorp_1F.inc"
+ .include "data/scripts/maps/RustboroCity_DevonCorp_2F.inc"
+ .include "data/scripts/maps/RustboroCity_DevonCorp_3F.inc"
+ .include "data/scripts/maps/RustboroCity_Gym.inc"
+ .include "data/scripts/maps/RustboroCity_PokemonSchool.inc"
+ .include "data/scripts/maps/RustboroCity_PokemonCenter_1F.inc"
+ .include "data/scripts/maps/RustboroCity_PokemonCenter_2F.inc"
+ .include "data/scripts/maps/RustboroCity_Mart.inc"
+ .include "data/scripts/maps/RustboroCity_Flat1_1F.inc"
+ .include "data/scripts/maps/RustboroCity_Flat1_2F.inc"
+ .include "data/scripts/maps/RustboroCity_House1.inc"
+ .include "data/scripts/maps/RustboroCity_CuttersHouse.inc"
+ .include "data/scripts/maps/RustboroCity_House2.inc"
+ .include "data/scripts/maps/RustboroCity_Flat2_1F.inc"
+ .include "data/scripts/maps/RustboroCity_Flat2_2F.inc"
+ .include "data/scripts/maps/RustboroCity_Flat2_3F.inc"
+ .include "data/scripts/maps/RustboroCity_House3.inc"
+ .include "data/scripts/maps/FortreeCity_House1.inc"
+ .include "data/scripts/maps/FortreeCity_Gym.inc"
+ .include "data/scripts/maps/FortreeCity_PokemonCenter_1F.inc"
+ .include "data/scripts/maps/FortreeCity_PokemonCenter_2F.inc"
+ .include "data/scripts/maps/FortreeCity_Mart.inc"
+ .include "data/scripts/maps/FortreeCity_House2.inc"
+ .include "data/scripts/maps/FortreeCity_House3.inc"
+ .include "data/scripts/maps/FortreeCity_House4.inc"
+ .include "data/scripts/maps/FortreeCity_House5.inc"
+ .include "data/scripts/maps/FortreeCity_DecorationShop.inc"
+ .include "data/scripts/maps/LilycoveCity_CoveLilyMotel_1F.inc"
+ .include "data/scripts/maps/LilycoveCity_CoveLilyMotel_2F.inc"
+ .include "data/scripts/maps/LilycoveCity_LilycoveMuseum_1F.inc"
+ .include "data/scripts/maps/LilycoveCity_LilycoveMuseum_2F.inc"
+ .include "data/scripts/maps/LilycoveCity_ContestLobby.inc"
+ .include "data/scripts/maps/LilycoveCity_ContestHall.inc"
+ .include "data/scripts/maps/LilycoveCity_PokemonCenter_1F.inc"
+ .include "data/scripts/maps/LilycoveCity_PokemonCenter_2F.inc"
+ .include "data/scripts/maps/LilycoveCity_UnusedMart.inc"
+ .include "data/scripts/maps/LilycoveCity_PokemonTrainerFanClub.inc"
+ .include "data/scripts/maps/LilycoveCity_Harbor.inc"
+ .include "data/scripts/maps/LilycoveCity_EmptyMap.inc"
+ .include "data/scripts/maps/LilycoveCity_MoveDeletersHouse.inc"
+ .include "data/scripts/maps/LilycoveCity_House1.inc"
+ .include "data/scripts/maps/LilycoveCity_House2.inc"
+ .include "data/scripts/maps/LilycoveCity_House3.inc"
+ .include "data/scripts/maps/LilycoveCity_House4.inc"
+ .include "data/scripts/maps/LilycoveCity_DepartmentStore_1F.inc"
+ .include "data/scripts/maps/LilycoveCity_DepartmentStore_2F.inc"
+ .include "data/scripts/maps/LilycoveCity_DepartmentStore_3F.inc"
+ .include "data/scripts/maps/LilycoveCity_DepartmentStore_4F.inc"
+ .include "data/scripts/maps/LilycoveCity_DepartmentStore_5F.inc"
+ .include "data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.inc"
+ .include "data/scripts/maps/LilycoveCity_DepartmentStoreElevator.inc"
+ .include "data/scripts/maps/MossdeepCity_Gym.inc"
+ .include "data/scripts/maps/MossdeepCity_House1.inc"
+ .include "data/scripts/maps/MossdeepCity_House2.inc"
+ .include "data/scripts/maps/MossdeepCity_PokemonCenter_1F.inc"
+ .include "data/scripts/maps/MossdeepCity_PokemonCenter_2F.inc"
+ .include "data/scripts/maps/MossdeepCity_Mart.inc"
+ .include "data/scripts/maps/MossdeepCity_House3.inc"
+ .include "data/scripts/maps/MossdeepCity_StevensHouse.inc"
+ .include "data/scripts/maps/MossdeepCity_House4.inc"
+ .include "data/scripts/maps/MossdeepCity_SpaceCenter_1F.inc"
+ .include "data/scripts/maps/MossdeepCity_SpaceCenter_2F.inc"
+ .include "data/scripts/maps/MossdeepCity_GameCorner_1F.inc"
+ .include "data/scripts/maps/MossdeepCity_GameCorner_B1F.inc"
+ .include "data/scripts/maps/SootopolisCity_Gym_1F.inc"
+ .include "data/scripts/maps/SootopolisCity_Gym_B1F.inc"
+ .include "data/scripts/maps/SootopolisCity_PokemonCenter_1F.inc"
+ .include "data/scripts/maps/SootopolisCity_PokemonCenter_2F.inc"
+ .include "data/scripts/maps/SootopolisCity_Mart.inc"
+ .include "data/scripts/maps/SootopolisCity_House1.inc"
+ .include "data/scripts/maps/SootopolisCity_House2.inc"
+ .include "data/scripts/maps/SootopolisCity_House3.inc"
+ .include "data/scripts/maps/SootopolisCity_House4.inc"
+ .include "data/scripts/maps/SootopolisCity_House5.inc"
+ .include "data/scripts/maps/SootopolisCity_House6.inc"
+ .include "data/scripts/maps/SootopolisCity_House7.inc"
+ .include "data/scripts/maps/SootopolisCity_House8.inc"
+ .include "data/scripts/maps/EverGrandeCity_SidneysRoom.inc"
+ .include "data/scripts/maps/EverGrandeCity_PhoebesRoom.inc"
+ .include "data/scripts/maps/EverGrandeCity_GlaciasRoom.inc"
+ .include "data/scripts/maps/EverGrandeCity_DrakesRoom.inc"
+ .include "data/scripts/maps/EverGrandeCity_ChampionsRoom.inc"
+ .include "data/scripts/maps/EverGrandeCity_Corridor1.inc"
+ .include "data/scripts/maps/EverGrandeCity_Corridor2.inc"
+ .include "data/scripts/maps/EverGrandeCity_Corridor3.inc"
+ .include "data/scripts/maps/EverGrandeCity_Corridor4.inc"
+ .include "data/scripts/maps/EverGrandeCity_Corridor5.inc"
+ .include "data/scripts/maps/EverGrandeCity_PokemonLeague.inc"
+ .include "data/scripts/maps/EverGrandeCity_HallOfFame.inc"
+ .include "data/scripts/maps/EverGrandeCity_PokemonCenter_1F.inc"
+ .include "data/scripts/maps/EverGrandeCity_PokemonCenter_2F.inc"
+ .include "data/scripts/maps/Route104_MrBrineysHouse.inc"
+ .include "data/scripts/maps/Route104_PrettyPetalFlowerShop.inc"
+ .include "data/scripts/maps/Route111_WinstrateFamilysHouse.inc"
+ .include "data/scripts/maps/Route111_OldLadysRestStop.inc"
+ .include "data/scripts/maps/Route112_CableCarStation.inc"
+ .include "data/scripts/maps/MtChimney_CableCarStation.inc"
+ .include "data/scripts/maps/Route114_FossilManiacsHouse.inc"
+ .include "data/scripts/maps/Route114_FossilManiacsTunnel.inc"
+ .include "data/scripts/maps/Route114_LanettesHouse.inc"
+ .include "data/scripts/maps/Route116_TunnelersRestHouse.inc"
+ .include "data/scripts/maps/Route117_PokemonDayCare.inc"
+ .include "data/scripts/maps/Route121_SafariZoneEntrance.inc"
+ .include "data/scripts/maps/MeteorFalls_1F_1R.inc"
+ .include "data/scripts/maps/MeteorFalls_1F_2R.inc"
+ .include "data/scripts/maps/MeteorFalls_B1F_1R.inc"
+ .include "data/scripts/maps/MeteorFalls_B1F_2R.inc"
+ .include "data/scripts/maps/RusturfTunnel.inc"
+ .include "data/scripts/maps/Underwater_SootopolisCity.inc"
+ .include "data/scripts/maps/DesertRuins.inc"
+ .include "data/scripts/maps/GraniteCave_1F.inc"
+ .include "data/scripts/maps/GraniteCave_B1F.inc"
+ .include "data/scripts/maps/GraniteCave_B2F.inc"
+ .include "data/scripts/maps/GraniteCave_StevensRoom.inc"
+ .include "data/scripts/maps/PetalburgWoods.inc"
+ .include "data/scripts/maps/MtChimney.inc"
+ .include "data/scripts/maps/JaggedPass.inc"
+ .include "data/scripts/maps/FieryPath.inc"
+ .include "data/scripts/maps/MtPyre_1F.inc"
+ .include "data/scripts/maps/MtPyre_2F.inc"
+ .include "data/scripts/maps/MtPyre_3F.inc"
+ .include "data/scripts/maps/MtPyre_4F.inc"
+ .include "data/scripts/maps/MtPyre_5F.inc"
+ .include "data/scripts/maps/MtPyre_6F.inc"
+ .include "data/scripts/maps/MtPyre_Exterior.inc"
+ .include "data/scripts/maps/MtPyre_Summit.inc"
+ .include "data/scripts/maps/AquaHideout_1F.inc"
+ .include "data/scripts/maps/AquaHideout_B1F.inc"
+ .include "data/scripts/maps/AquaHideout_B2F.inc"
+ .include "data/scripts/maps/Underwater_SeafloorCavern.inc"
+ .include "data/scripts/maps/SeafloorCavern_Entrance.inc"
+ .include "data/scripts/maps/SeafloorCavern_Room1.inc"
+ .include "data/scripts/maps/SeafloorCavern_Room2.inc"
+ .include "data/scripts/maps/SeafloorCavern_Room3.inc"
+ .include "data/scripts/maps/SeafloorCavern_Room4.inc"
+ .include "data/scripts/maps/SeafloorCavern_Room5.inc"
+ .include "data/scripts/maps/SeafloorCavern_Room6.inc"
+ .include "data/scripts/maps/SeafloorCavern_Room7.inc"
+ .include "data/scripts/maps/SeafloorCavern_Room8.inc"
+ .include "data/scripts/maps/SeafloorCavern_Room9.inc"
+ .include "data/scripts/maps/CaveOfOrigin_Entrance.inc"
+ .include "data/scripts/maps/CaveOfOrigin_1F.inc"
+ .include "data/scripts/maps/CaveOfOrigin_B1F.inc"
+ .include "data/scripts/maps/CaveOfOrigin_B2F.inc"
+ .include "data/scripts/maps/CaveOfOrigin_B3F.inc"
+ .include "data/scripts/maps/CaveOfOrigin_B4F.inc"
+ .include "data/scripts/maps/VictoryRoad_1F.inc"
+ .include "data/scripts/maps/VictoryRoad_B1F.inc"
+ .include "data/scripts/maps/VictoryRoad_B2F.inc"
+ .include "data/scripts/maps/ShoalCave_LowTideEntranceRoom.inc"
+ .include "data/scripts/maps/ShoalCave_LowTideInnerRoom.inc"
+ .include "data/scripts/maps/ShoalCave_LowTideStairsRoom.inc"
+ .include "data/scripts/maps/ShoalCave_LowTideLowerRoom.inc"
+ .include "data/scripts/maps/ShoalCave_HighTideEntranceRoom.inc"
+ .include "data/scripts/maps/ShoalCave_HighTideInnerRoom.inc"
+ .include "data/scripts/maps/NewMauville_Entrance.inc"
+ .include "data/scripts/maps/NewMauville_Inside.inc"
+ .include "data/scripts/maps/AbandonedShip_Deck.inc"
+ .include "data/scripts/maps/AbandonedShip_Corridors_1F.inc"
+ .include "data/scripts/maps/AbandonedShip_Rooms_1F.inc"
+ .include "data/scripts/maps/AbandonedShip_Corridors_B1F.inc"
+ .include "data/scripts/maps/AbandonedShip_Rooms_B1F.inc"
+ .include "data/scripts/maps/AbandonedShip_Rooms2_B1F.inc"
+ .include "data/scripts/maps/AbandonedShip_Underwater1.inc"
+ .include "data/scripts/maps/AbandonedShip_Room_B1F.inc"
+ .include "data/scripts/maps/AbandonedShip_Rooms2_1F.inc"
+ .include "data/scripts/maps/AbandonedShip_CaptainsOffice.inc"
+ .include "data/scripts/maps/AbandonedShip_Underwater2.inc"
+ .include "data/scripts/maps/AbandonedShip_HiddenFloorCorridors.inc"
+ .include "data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc"
+ .include "data/scripts/maps/IslandCave.inc"
+ .include "data/scripts/maps/AncientTomb.inc"
+ .include "data/scripts/maps/Underwater_Route134.inc"
+ .include "data/scripts/maps/Underwater_SealedChamber.inc"
+ .include "data/scripts/maps/SealedChamber_OuterRoom.inc"
+ .include "data/scripts/maps/SealedChamber_InnerRoom.inc"
+ .include "data/scripts/maps/ScorchedSlab.inc"
+ .include "data/scripts/maps/MagmaHideout_1F.inc"
+ .include "data/scripts/maps/MagmaHideout_B1F.inc"
+ .include "data/scripts/maps/MagmaHideout_B2F.inc"
+ .include "data/scripts/maps/SkyPillar_Entrance.inc"
+ .include "data/scripts/maps/SkyPillar_Outside.inc"
+ .include "data/scripts/maps/SkyPillar_1F.inc"
+ .include "data/scripts/maps/SkyPillar_2F.inc"
+ .include "data/scripts/maps/SkyPillar_3F.inc"
+ .include "data/scripts/maps/SkyPillar_4F.inc"
+ .include "data/scripts/maps/ShoalCave_LowTideIceRoom.inc"
+ .include "data/scripts/maps/SkyPillar_5F.inc"
+ .include "data/scripts/maps/SkyPillar_Top.inc"
+ .include "data/scripts/maps/SecretBase_BlueCave1.inc"
+ .include "data/scripts/maps/SecretBase_BlueCave2.inc"
+ .include "data/scripts/maps/SecretBase_BlueCave3.inc"
+ .include "data/scripts/maps/SecretBase_BlueCave4.inc"
+ .include "data/scripts/maps/SecretBase_BrownCave1.inc"
+ .include "data/scripts/maps/SecretBase_BrownCave2.inc"
+ .include "data/scripts/maps/SecretBase_BrownCave3.inc"
+ .include "data/scripts/maps/SecretBase_BrownCave4.inc"
+ .include "data/scripts/maps/SecretBase_RedCave1.inc"
+ .include "data/scripts/maps/SecretBase_RedCave2.inc"
+ .include "data/scripts/maps/SecretBase_RedCave3.inc"
+ .include "data/scripts/maps/SecretBase_RedCave4.inc"
+ .include "data/scripts/maps/SecretBase_Shrub1.inc"
+ .include "data/scripts/maps/SecretBase_Shrub2.inc"
+ .include "data/scripts/maps/SecretBase_Shrub3.inc"
+ .include "data/scripts/maps/SecretBase_Shrub4.inc"
+ .include "data/scripts/maps/SecretBase_Tree1.inc"
+ .include "data/scripts/maps/SecretBase_Tree2.inc"
+ .include "data/scripts/maps/SecretBase_Tree3.inc"
+ .include "data/scripts/maps/SecretBase_Tree4.inc"
+ .include "data/scripts/maps/SecretBase_YellowCave1.inc"
+ .include "data/scripts/maps/SecretBase_YellowCave2.inc"
+ .include "data/scripts/maps/SecretBase_YellowCave3.inc"
+ .include "data/scripts/maps/SecretBase_YellowCave4.inc"
gUnknown_0815F36C:: @ 815F36C
lockall
@@ -551,305 +552,305 @@ EventScript_15F573:
msgbox UnknownString_81A3C31, 3
end
- .include "data/scripts/maps/SingleBattleColosseum.s"
- .include "data/scripts/maps/TradeCenter.s"
- .include "data/scripts/maps/RecordCorner.s"
- .include "data/scripts/maps/DoubleBattleColosseum.s"
- .include "data/scripts/maps/LinkContestRoom1.s"
- .include "data/scripts/maps/LinkContestRoom2.s"
- .include "data/scripts/maps/LinkContestRoom3.s"
- .include "data/scripts/maps/LinkContestRoom4.s"
- .include "data/scripts/maps/LinkContestRoom5.s"
- .include "data/scripts/maps/LinkContestRoom6.s"
- .include "data/scripts/maps/UnknownMap_25_29.s"
- .include "data/scripts/maps/UnknownMap_25_30.s"
- .include "data/scripts/maps/UnknownMap_25_31.s"
- .include "data/scripts/maps/UnknownMap_25_32.s"
- .include "data/scripts/maps/UnknownMap_25_33.s"
- .include "data/scripts/maps/UnknownMap_25_34.s"
- .include "data/scripts/maps/InsideOfTruck.s"
- .include "data/scripts/maps/SSTidalCorridor.s"
- .include "data/scripts/maps/SSTidalLowerDeck.s"
- .include "data/scripts/maps/SSTidalRooms.s"
- .include "data/scripts/maps/SafariZone_Northwest.s"
- .include "data/scripts/maps/SafariZone_Northeast.s"
- .include "data/scripts/maps/SafariZone_Southwest.s"
- .include "data/scripts/maps/SafariZone_Southeast.s"
- .include "data/scripts/maps/BattleTower_Outside.s"
- .include "data/scripts/maps/BattleTower_Lobby.s"
- .include "data/scripts/maps/BattleTower_Elevator.s"
- .include "data/scripts/maps/BattleTower_Corridor.s"
- .include "data/scripts/maps/BattleTower_BattleRoom.s"
- .include "data/scripts/maps/SouthernIsland_Exterior.s"
- .include "data/scripts/maps/SouthernIsland_Interior.s"
- .include "data/scripts/maps/SafariZone_RestHouse.s"
- .include "data/scripts/maps/Route104_Prototype.s"
- .include "data/scripts/maps/Route104_PrototypePrettyPetalFlowerShop.s"
- .include "data/scripts/maps/Route109_SeashoreHouse.s"
- .include "data/scripts/maps/Route110_TrickHouseEntrance.s"
- .include "data/scripts/maps/Route110_TrickHouseEnd.s"
- .include "data/scripts/maps/Route110_TrickHouseCorridor.s"
- .include "data/scripts/maps/Route110_TrickHousePuzzle1.s"
- .include "data/scripts/maps/Route110_TrickHousePuzzle2.s"
- .include "data/scripts/maps/Route110_TrickHousePuzzle3.s"
- .include "data/scripts/maps/Route110_TrickHousePuzzle4.s"
- .include "data/scripts/maps/Route110_TrickHousePuzzle5.s"
- .include "data/scripts/maps/Route110_TrickHousePuzzle6.s"
- .include "data/scripts/maps/Route110_TrickHousePuzzle7.s"
- .include "data/scripts/maps/Route110_TrickHousePuzzle8.s"
- .include "data/scripts/maps/Route110_SeasideCyclingRoadSouthEntrance.s"
- .include "data/scripts/maps/Route110_SeasideCyclingRoadNorthEntrance.s"
- .include "data/scripts/maps/Route113_GlassWorkshop.s"
- .include "data/scripts/maps/Route123_BerryMastersHouse.s"
- .include "data/scripts/maps/Route119_WeatherInstitute_1F.s"
- .include "data/scripts/maps/Route119_WeatherInstitute_2F.s"
- .include "data/scripts/maps/Route119_House.s"
- .include "data/scripts/maps/Route124_DivingTreasureHuntersHouse.s"
-
- .include "data/text/maps/PetalburgCity.s"
- .include "data/text/maps/SlateportCity.s"
- .include "data/text/maps/MauvilleCity.s"
- .include "data/text/maps/RustboroCity.s"
- .include "data/text/maps/FortreeCity.s"
- .include "data/text/maps/LilycoveCity.s"
- .include "data/text/maps/MossdeepCity.s"
- .include "data/text/maps/SootopolisCity.s"
- .include "data/text/maps/EverGrandeCity.s"
- .include "data/text/maps/LittlerootTown.s"
- .include "data/text/maps/OldaleTown.s"
- .include "data/text/maps/DewfordTown.s"
- .include "data/text/maps/LavaridgeTown.s"
- .include "data/text/maps/FallarborTown.s"
- .include "data/text/maps/VerdanturfTown.s"
- .include "data/text/maps/PacifidlogTown.s"
- .include "data/text/maps/Route101.s"
- .include "data/text/maps/Route102.s"
- .include "data/text/maps/Route103.s"
- .include "data/text/maps/Route104.s"
- .include "data/text/maps/Route105.s"
- .include "data/text/maps/Route106.s"
- .include "data/text/maps/Route107.s"
- .include "data/text/maps/Route108.s"
- .include "data/text/maps/Route109.s"
- .include "data/text/maps/Route110.s"
- .include "data/text/maps/Route111.s"
- .include "data/text/maps/Route112.s"
- .include "data/text/maps/Route113.s"
- .include "data/text/maps/Route114.s"
- .include "data/text/maps/Route115.s"
- .include "data/text/maps/Route116.s"
- .include "data/text/maps/Route117.s"
- .include "data/text/maps/Route118.s"
- .include "data/text/maps/Route119.s"
- .include "data/text/maps/Route120.s"
- .include "data/text/maps/Route121.s"
- .include "data/text/maps/Route123.s"
- .include "data/text/maps/Route124.s"
- .include "data/text/maps/Route128.s"
- .include "data/text/maps/LittlerootTown_BrendansHouse_1F.s"
- .include "data/text/maps/LittlerootTown_BrendansHouse_2F.s"
- .include "data/text/maps/LittlerootTown_MaysHouse_1F.s"
- .include "data/text/maps/LittlerootTown_MaysHouse_2F.s"
- .include "data/text/maps/LittlerootTown_ProfessorBirchsLab.s"
- .include "data/text/maps/OldaleTown_House1.s"
- .include "data/text/maps/OldaleTown_House2.s"
- .include "data/text/maps/OldaleTown_PokemonCenter_1F.s"
- .include "data/text/maps/OldaleTown_Mart.s"
- .include "data/text/maps/DewfordTown_House1.s"
- .include "data/text/maps/DewfordTown_PokemonCenter_1F.s"
- .include "data/text/maps/DewfordTown_Gym.s"
- .include "data/text/maps/DewfordTown_Hall.s"
- .include "data/text/maps/DewfordTown_House2.s"
- .include "data/text/maps/LavaridgeTown_HerbShop.s"
- .include "data/text/maps/LavaridgeTown_Gym_1F.s"
- .include "data/text/maps/LavaridgeTown_House.s"
- .include "data/text/maps/LavaridgeTown_Mart.s"
- .include "data/text/maps/LavaridgeTown_PokemonCenter_1F.s"
- .include "data/text/maps/FallarborTown_Mart.s"
- .include "data/text/maps/FallarborTown_ContestLobby.s"
- .include "data/text/maps/FallarborTown_ContestHall.s"
- .include "data/text/maps/FallarborTown_PokemonCenter_1F.s"
- .include "data/text/maps/FallarborTown_House1.s"
- .include "data/text/maps/FallarborTown_House2.s"
- .include "data/text/maps/VerdanturfTown_ContestLobby.s"
- .include "data/text/maps/VerdanturfTown_ContestHall.s"
- .include "data/text/maps/VerdanturfTown_Mart.s"
- .include "data/text/maps/VerdanturfTown_PokemonCenter_1F.s"
- .include "data/text/maps/VerdanturfTown_WandasHouse.s"
- .include "data/text/maps/VerdanturfTown_FriendshipRatersHouse.s"
- .include "data/text/maps/VerdanturfTown_House.s"
- .include "data/text/maps/PacifidlogTown_PokemonCenter_1F.s"
- .include "data/text/maps/PacifidlogTown_House1.s"
- .include "data/text/maps/PacifidlogTown_House2.s"
- .include "data/text/maps/PacifidlogTown_House3.s"
- .include "data/text/maps/PacifidlogTown_House4.s"
- .include "data/text/maps/PacifidlogTown_House5.s"
- .include "data/text/maps/PetalburgCity_WallysHouse.s"
- .include "data/text/maps/PetalburgCity_Gym.s"
- .include "data/text/maps/PetalburgCity_House1.s"
- .include "data/text/maps/PetalburgCity_House2.s"
- .include "data/text/maps/PetalburgCity_PokemonCenter_1F.s"
- .include "data/text/maps/PetalburgCity_Mart.s"
- .include "data/text/maps/SlateportCity_SternsShipyard_1F.s"
- .include "data/text/maps/SlateportCity_SternsShipyard_2F.s"
- .include "data/text/maps/SlateportCity_ContestLobby.s"
- .include "data/text/maps/SlateportCity_ContestHall.s"
- .include "data/text/maps/SlateportCity_House1.s"
- .include "data/text/maps/SlateportCity_PokemonFanClub.s"
- .include "data/text/maps/SlateportCity_OceanicMuseum_1F.s"
- .include "data/text/maps/SlateportCity_OceanicMuseum_2F.s"
- .include "data/text/maps/SlateportCity_Harbor.s"
- .include "data/text/maps/SlateportCity_House2.s"
- .include "data/text/maps/SlateportCity_PokemonCenter_1F.s"
- .include "data/text/maps/SlateportCity_Mart.s"
- .include "data/text/maps/MauvilleCity_Gym.s"
- .include "data/text/maps/MauvilleCity_BikeShop.s"
- .include "data/text/maps/MauvilleCity_House1.s"
- .include "data/text/maps/MauvilleCity_GameCorner.s"
- .include "data/text/maps/MauvilleCity_House2.s"
- .include "data/text/maps/MauvilleCity_PokemonCenter_1F.s"
- .include "data/text/maps/MauvilleCity_PokemonCenter_2F.s"
- .include "data/text/maps/MauvilleCity_Mart.s"
- .include "data/text/maps/RustboroCity_DevonCorp_1F.s"
- .include "data/text/maps/RustboroCity_DevonCorp_2F.s"
- .include "data/text/maps/RustboroCity_DevonCorp_3F.s"
- .include "data/text/maps/RustboroCity_Gym.s"
- .include "data/text/maps/RustboroCity_PokemonSchool.s"
- .include "data/text/maps/RustboroCity_PokemonCenter_1F.s"
- .include "data/text/maps/RustboroCity_Mart.s"
- .include "data/text/maps/RustboroCity_Flat1_1F.s"
- .include "data/text/maps/RustboroCity_Flat1_2F.s"
- .include "data/text/maps/RustboroCity_House1.s"
- .include "data/text/maps/RustboroCity_CuttersHouse.s"
- .include "data/text/maps/RustboroCity_House2.s"
- .include "data/text/maps/RustboroCity_Flat2_1F.s"
- .include "data/text/maps/RustboroCity_Flat2_2F.s"
- .include "data/text/maps/RustboroCity_Flat2_3F.s"
- .include "data/text/maps/RustboroCity_House3.s"
- .include "data/text/maps/FortreeCity_House1.s"
- .include "data/text/maps/FortreeCity_Gym.s"
- .include "data/text/maps/FortreeCity_PokemonCenter_1F.s"
- .include "data/text/maps/FortreeCity_Mart.s"
- .include "data/text/maps/FortreeCity_House2.s"
- .include "data/text/maps/FortreeCity_House3.s"
- .include "data/text/maps/FortreeCity_House4.s"
- .include "data/text/maps/FortreeCity_House5.s"
- .include "data/text/maps/FortreeCity_DecorationShop.s"
- .include "data/text/maps/LilycoveCity_CoveLilyMotel_1F.s"
- .include "data/text/maps/LilycoveCity_CoveLilyMotel_2F.s"
- .include "data/text/maps/LilycoveCity_LilycoveMuseum_1F.s"
- .include "data/text/maps/LilycoveCity_LilycoveMuseum_2F.s"
- .include "data/text/maps/LilycoveCity_ContestLobby.s"
- .include "data/text/maps/LilycoveCity_ContestHall.s"
- .include "data/text/maps/LilycoveCity_PokemonCenter_1F.s"
- .include "data/text/maps/LilycoveCity_PokemonTrainerFanClub.s"
- .include "data/text/maps/LilycoveCity_Harbor.s"
- .include "data/text/maps/LilycoveCity_MoveDeletersHouse.s"
- .include "data/text/maps/LilycoveCity_House1.s"
- .include "data/text/maps/LilycoveCity_House2.s"
- .include "data/text/maps/LilycoveCity_House3.s"
- .include "data/text/maps/LilycoveCity_House4.s"
- .include "data/text/maps/LilycoveCity_DepartmentStore_1F.s"
- .include "data/text/maps/LilycoveCity_DepartmentStore_2F.s"
- .include "data/text/maps/LilycoveCity_DepartmentStore_3F.s"
- .include "data/text/maps/LilycoveCity_DepartmentStore_4F.s"
- .include "data/text/maps/LilycoveCity_DepartmentStore_5F.s"
- .include "data/text/maps/LilycoveCity_DepartmentStoreRooftop.s"
- .include "data/text/maps/MossdeepCity_Gym.s"
- .include "data/text/maps/MossdeepCity_House1.s"
- .include "data/text/maps/MossdeepCity_House2.s"
- .include "data/text/maps/MossdeepCity_PokemonCenter_1F.s"
- .include "data/text/maps/MossdeepCity_PokemonCenter_2F.s"
- .include "data/text/maps/MossdeepCity_Mart.s"
- .include "data/text/maps/MossdeepCity_House3.s"
- .include "data/text/maps/MossdeepCity_StevensHouse.s"
- .include "data/text/maps/MossdeepCity_House4.s"
- .include "data/text/maps/MossdeepCity_SpaceCenter_1F.s"
- .include "data/text/maps/MossdeepCity_SpaceCenter_2F.s"
- .include "data/text/maps/MossdeepCity_GameCorner_1F.s"
- .include "data/text/maps/MossdeepCity_GameCorner_B1F.s"
- .include "data/text/maps/SootopolisCity_Gym_1F.s"
- .include "data/text/maps/SootopolisCity_Gym_B1F.s"
- .include "data/text/maps/SootopolisCity_PokemonCenter_1F.s"
- .include "data/text/maps/SootopolisCity_Mart.s"
- .include "data/text/maps/SootopolisCity_House1.s"
- .include "data/text/maps/SootopolisCity_House2.s"
- .include "data/text/maps/SootopolisCity_House3.s"
- .include "data/text/maps/SootopolisCity_House4.s"
- .include "data/text/maps/SootopolisCity_House5.s"
- .include "data/text/maps/SootopolisCity_House6.s"
- .include "data/text/maps/SootopolisCity_House7.s"
- .include "data/text/maps/SootopolisCity_House8.s"
- .include "data/text/maps/EverGrandeCity_SidneysRoom.s"
- .include "data/text/maps/EverGrandeCity_PhoebesRoom.s"
- .include "data/text/maps/EverGrandeCity_GlaciasRoom.s"
- .include "data/text/maps/EverGrandeCity_DrakesRoom.s"
- .include "data/text/maps/EverGrandeCity_ChampionsRoom.s"
- .include "data/text/maps/EverGrandeCity_PokemonLeague.s"
- .include "data/text/maps/EverGrandeCity_HallOfFame.s"
- .include "data/text/maps/EverGrandeCity_PokemonCenter_1F.s"
- .include "data/text/maps/Route104_MrBrineysHouse.s"
- .include "data/text/maps/Route111_WinstrateFamilysHouse.s"
- .include "data/text/maps/Route111_OldLadysRestStop.s"
- .include "data/text/maps/Route112_CableCarStation.s"
- .include "data/text/maps/MtChimney_CableCarStation.s"
- .include "data/text/maps/Route114_FossilManiacsHouse.s"
- .include "data/text/maps/Route114_FossilManiacsTunnel.s"
- .include "data/text/maps/Route114_LanettesHouse.s"
- .include "data/text/maps/Route116_TunnelersRestHouse.s"
- .include "data/text/maps/MeteorFalls_1F_1R.s"
- .include "data/text/maps/MeteorFalls_1F_2R.s"
- .include "data/text/maps/RusturfTunnel.s"
- .include "data/text/maps/GraniteCave_1F.s"
- .include "data/text/maps/GraniteCave_StevensRoom.s"
- .include "data/text/maps/PetalburgWoods.s"
- .include "data/text/maps/MtChimney.s"
- .include "data/text/maps/JaggedPass.s"
- .include "data/text/maps/MtPyre_1F.s"
- .include "data/text/maps/MtPyre_2F.s"
- .include "data/text/maps/MtPyre_3F.s"
- .include "data/text/maps/MtPyre_4F.s"
- .include "data/text/maps/MtPyre_5F.s"
- .include "data/text/maps/MtPyre_6F.s"
- .include "data/text/maps/AquaHideout_1F.s"
- .include "data/text/maps/AquaHideout_B1F.s"
- .include "data/text/maps/AquaHideout_B2F.s"
- .include "data/text/maps/Underwater_SeafloorCavern.s"
- .include "data/text/maps/SeafloorCavern_Room1.s"
- .include "data/text/maps/SeafloorCavern_Room3.s"
- .include "data/text/maps/SeafloorCavern_Room4.s"
- .include "data/text/maps/VictoryRoad_1F.s"
- .include "data/text/maps/VictoryRoad_B1F.s"
- .include "data/text/maps/VictoryRoad_B2F.s"
- .include "data/text/maps/ShoalCave_LowTideEntranceRoom.s"
- .include "data/text/maps/ShoalCave_LowTideInnerRoom.s"
- .include "data/text/maps/ShoalCave_LowTideStairsRoom.s"
- .include "data/text/maps/ShoalCave_LowTideLowerRoom.s"
- .include "data/text/maps/NewMauville_Entrance.s"
- .include "data/text/maps/NewMauville_Inside.s"
- .include "data/text/maps/AbandonedShip_Corridors_1F.s"
- .include "data/text/maps/AbandonedShip_Rooms_1F.s"
- .include "data/text/maps/AbandonedShip_Corridors_B1F.s"
- .include "data/text/maps/AbandonedShip_HiddenFloorCorridors.s"
- .include "data/text/maps/AbandonedShip_Rooms_B1F.s"
- .include "data/text/maps/AbandonedShip_Rooms2_B1F.s"
- .include "data/text/maps/AbandonedShip_Rooms2_1F.s"
- .include "data/text/maps/AbandonedShip_CaptainsOffice.s"
- .include "data/text/maps/AbandonedShip_HiddenFloorRooms.s"
- .include "data/text/maps/SecretBase_RedCave1.s"
- .include "data/text/maps/InsideOfTruck.s"
- .include "data/text/maps/SSTidalCorridor.s"
- .include "data/text/maps/SSTidalLowerDeck.s"
- .include "data/text/maps/SSTidalRooms.s"
- .include "data/text/maps/BattleTower_Outside.s"
- .include "data/text/maps/BattleTower_Lobby.s"
- .include "data/text/maps/BattleTower_BattleRoom.s"
- .include "data/text/maps/SouthernIsland_Exterior.s"
- .include "data/text/maps/SouthernIsland_Interior.s"
- .include "data/text/maps/Route104_Prototype.s"
- .include "data/text/maps/Route104_PrototypePrettyPetalFlowerShop.s"
- .include "data/text/maps/Route109_SeashoreHouse.s"
- .include "data/text/maps/Route110_TrickHouseEntrance.s"
+ .include "data/scripts/maps/SingleBattleColosseum.inc"
+ .include "data/scripts/maps/TradeCenter.inc"
+ .include "data/scripts/maps/RecordCorner.inc"
+ .include "data/scripts/maps/DoubleBattleColosseum.inc"
+ .include "data/scripts/maps/LinkContestRoom1.inc"
+ .include "data/scripts/maps/LinkContestRoom2.inc"
+ .include "data/scripts/maps/LinkContestRoom3.inc"
+ .include "data/scripts/maps/LinkContestRoom4.inc"
+ .include "data/scripts/maps/LinkContestRoom5.inc"
+ .include "data/scripts/maps/LinkContestRoom6.inc"
+ .include "data/scripts/maps/UnknownMap_25_29.inc"
+ .include "data/scripts/maps/UnknownMap_25_30.inc"
+ .include "data/scripts/maps/UnknownMap_25_31.inc"
+ .include "data/scripts/maps/UnknownMap_25_32.inc"
+ .include "data/scripts/maps/UnknownMap_25_33.inc"
+ .include "data/scripts/maps/UnknownMap_25_34.inc"
+ .include "data/scripts/maps/InsideOfTruck.inc"
+ .include "data/scripts/maps/SSTidalCorridor.inc"
+ .include "data/scripts/maps/SSTidalLowerDeck.inc"
+ .include "data/scripts/maps/SSTidalRooms.inc"
+ .include "data/scripts/maps/SafariZone_Northwest.inc"
+ .include "data/scripts/maps/SafariZone_Northeast.inc"
+ .include "data/scripts/maps/SafariZone_Southwest.inc"
+ .include "data/scripts/maps/SafariZone_Southeast.inc"
+ .include "data/scripts/maps/BattleTower_Outside.inc"
+ .include "data/scripts/maps/BattleTower_Lobby.inc"
+ .include "data/scripts/maps/BattleTower_Elevator.inc"
+ .include "data/scripts/maps/BattleTower_Corridor.inc"
+ .include "data/scripts/maps/BattleTower_BattleRoom.inc"
+ .include "data/scripts/maps/SouthernIsland_Exterior.inc"
+ .include "data/scripts/maps/SouthernIsland_Interior.inc"
+ .include "data/scripts/maps/SafariZone_RestHouse.inc"
+ .include "data/scripts/maps/Route104_Prototype.inc"
+ .include "data/scripts/maps/Route104_PrototypePrettyPetalFlowerShop.inc"
+ .include "data/scripts/maps/Route109_SeashoreHouse.inc"
+ .include "data/scripts/maps/Route110_TrickHouseEntrance.inc"
+ .include "data/scripts/maps/Route110_TrickHouseEnd.inc"
+ .include "data/scripts/maps/Route110_TrickHouseCorridor.inc"
+ .include "data/scripts/maps/Route110_TrickHousePuzzle1.inc"
+ .include "data/scripts/maps/Route110_TrickHousePuzzle2.inc"
+ .include "data/scripts/maps/Route110_TrickHousePuzzle3.inc"
+ .include "data/scripts/maps/Route110_TrickHousePuzzle4.inc"
+ .include "data/scripts/maps/Route110_TrickHousePuzzle5.inc"
+ .include "data/scripts/maps/Route110_TrickHousePuzzle6.inc"
+ .include "data/scripts/maps/Route110_TrickHousePuzzle7.inc"
+ .include "data/scripts/maps/Route110_TrickHousePuzzle8.inc"
+ .include "data/scripts/maps/Route110_SeasideCyclingRoadSouthEntrance.inc"
+ .include "data/scripts/maps/Route110_SeasideCyclingRoadNorthEntrance.inc"
+ .include "data/scripts/maps/Route113_GlassWorkshop.inc"
+ .include "data/scripts/maps/Route123_BerryMastersHouse.inc"
+ .include "data/scripts/maps/Route119_WeatherInstitute_1F.inc"
+ .include "data/scripts/maps/Route119_WeatherInstitute_2F.inc"
+ .include "data/scripts/maps/Route119_House.inc"
+ .include "data/scripts/maps/Route124_DivingTreasureHuntersHouse.inc"
+
+ .include "data/text/maps/PetalburgCity.inc"
+ .include "data/text/maps/SlateportCity.inc"
+ .include "data/text/maps/MauvilleCity.inc"
+ .include "data/text/maps/RustboroCity.inc"
+ .include "data/text/maps/FortreeCity.inc"
+ .include "data/text/maps/LilycoveCity.inc"
+ .include "data/text/maps/MossdeepCity.inc"
+ .include "data/text/maps/SootopolisCity.inc"
+ .include "data/text/maps/EverGrandeCity.inc"
+ .include "data/text/maps/LittlerootTown.inc"
+ .include "data/text/maps/OldaleTown.inc"
+ .include "data/text/maps/DewfordTown.inc"
+ .include "data/text/maps/LavaridgeTown.inc"
+ .include "data/text/maps/FallarborTown.inc"
+ .include "data/text/maps/VerdanturfTown.inc"
+ .include "data/text/maps/PacifidlogTown.inc"
+ .include "data/text/maps/Route101.inc"
+ .include "data/text/maps/Route102.inc"
+ .include "data/text/maps/Route103.inc"
+ .include "data/text/maps/Route104.inc"
+ .include "data/text/maps/Route105.inc"
+ .include "data/text/maps/Route106.inc"
+ .include "data/text/maps/Route107.inc"
+ .include "data/text/maps/Route108.inc"
+ .include "data/text/maps/Route109.inc"
+ .include "data/text/maps/Route110.inc"
+ .include "data/text/maps/Route111.inc"
+ .include "data/text/maps/Route112.inc"
+ .include "data/text/maps/Route113.inc"
+ .include "data/text/maps/Route114.inc"
+ .include "data/text/maps/Route115.inc"
+ .include "data/text/maps/Route116.inc"
+ .include "data/text/maps/Route117.inc"
+ .include "data/text/maps/Route118.inc"
+ .include "data/text/maps/Route119.inc"
+ .include "data/text/maps/Route120.inc"
+ .include "data/text/maps/Route121.inc"
+ .include "data/text/maps/Route123.inc"
+ .include "data/text/maps/Route124.inc"
+ .include "data/text/maps/Route128.inc"
+ .include "data/text/maps/LittlerootTown_BrendansHouse_1F.inc"
+ .include "data/text/maps/LittlerootTown_BrendansHouse_2F.inc"
+ .include "data/text/maps/LittlerootTown_MaysHouse_1F.inc"
+ .include "data/text/maps/LittlerootTown_MaysHouse_2F.inc"
+ .include "data/text/maps/LittlerootTown_ProfessorBirchsLab.inc"
+ .include "data/text/maps/OldaleTown_House1.inc"
+ .include "data/text/maps/OldaleTown_House2.inc"
+ .include "data/text/maps/OldaleTown_PokemonCenter_1F.inc"
+ .include "data/text/maps/OldaleTown_Mart.inc"
+ .include "data/text/maps/DewfordTown_House1.inc"
+ .include "data/text/maps/DewfordTown_PokemonCenter_1F.inc"
+ .include "data/text/maps/DewfordTown_Gym.inc"
+ .include "data/text/maps/DewfordTown_Hall.inc"
+ .include "data/text/maps/DewfordTown_House2.inc"
+ .include "data/text/maps/LavaridgeTown_HerbShop.inc"
+ .include "data/text/maps/LavaridgeTown_Gym_1F.inc"
+ .include "data/text/maps/LavaridgeTown_House.inc"
+ .include "data/text/maps/LavaridgeTown_Mart.inc"
+ .include "data/text/maps/LavaridgeTown_PokemonCenter_1F.inc"
+ .include "data/text/maps/FallarborTown_Mart.inc"
+ .include "data/text/maps/FallarborTown_ContestLobby.inc"
+ .include "data/text/maps/FallarborTown_ContestHall.inc"
+ .include "data/text/maps/FallarborTown_PokemonCenter_1F.inc"
+ .include "data/text/maps/FallarborTown_House1.inc"
+ .include "data/text/maps/FallarborTown_House2.inc"
+ .include "data/text/maps/VerdanturfTown_ContestLobby.inc"
+ .include "data/text/maps/VerdanturfTown_ContestHall.inc"
+ .include "data/text/maps/VerdanturfTown_Mart.inc"
+ .include "data/text/maps/VerdanturfTown_PokemonCenter_1F.inc"
+ .include "data/text/maps/VerdanturfTown_WandasHouse.inc"
+ .include "data/text/maps/VerdanturfTown_FriendshipRatersHouse.inc"
+ .include "data/text/maps/VerdanturfTown_House.inc"
+ .include "data/text/maps/PacifidlogTown_PokemonCenter_1F.inc"
+ .include "data/text/maps/PacifidlogTown_House1.inc"
+ .include "data/text/maps/PacifidlogTown_House2.inc"
+ .include "data/text/maps/PacifidlogTown_House3.inc"
+ .include "data/text/maps/PacifidlogTown_House4.inc"
+ .include "data/text/maps/PacifidlogTown_House5.inc"
+ .include "data/text/maps/PetalburgCity_WallysHouse.inc"
+ .include "data/text/maps/PetalburgCity_Gym.inc"
+ .include "data/text/maps/PetalburgCity_House1.inc"
+ .include "data/text/maps/PetalburgCity_House2.inc"
+ .include "data/text/maps/PetalburgCity_PokemonCenter_1F.inc"
+ .include "data/text/maps/PetalburgCity_Mart.inc"
+ .include "data/text/maps/SlateportCity_SternsShipyard_1F.inc"
+ .include "data/text/maps/SlateportCity_SternsShipyard_2F.inc"
+ .include "data/text/maps/SlateportCity_ContestLobby.inc"
+ .include "data/text/maps/SlateportCity_ContestHall.inc"
+ .include "data/text/maps/SlateportCity_House1.inc"
+ .include "data/text/maps/SlateportCity_PokemonFanClub.inc"
+ .include "data/text/maps/SlateportCity_OceanicMuseum_1F.inc"
+ .include "data/text/maps/SlateportCity_OceanicMuseum_2F.inc"
+ .include "data/text/maps/SlateportCity_Harbor.inc"
+ .include "data/text/maps/SlateportCity_House2.inc"
+ .include "data/text/maps/SlateportCity_PokemonCenter_1F.inc"
+ .include "data/text/maps/SlateportCity_Mart.inc"
+ .include "data/text/maps/MauvilleCity_Gym.inc"
+ .include "data/text/maps/MauvilleCity_BikeShop.inc"
+ .include "data/text/maps/MauvilleCity_House1.inc"
+ .include "data/text/maps/MauvilleCity_GameCorner.inc"
+ .include "data/text/maps/MauvilleCity_House2.inc"
+ .include "data/text/maps/MauvilleCity_PokemonCenter_1F.inc"
+ .include "data/text/maps/MauvilleCity_PokemonCenter_2F.inc"
+ .include "data/text/maps/MauvilleCity_Mart.inc"
+ .include "data/text/maps/RustboroCity_DevonCorp_1F.inc"
+ .include "data/text/maps/RustboroCity_DevonCorp_2F.inc"
+ .include "data/text/maps/RustboroCity_DevonCorp_3F.inc"
+ .include "data/text/maps/RustboroCity_Gym.inc"
+ .include "data/text/maps/RustboroCity_PokemonSchool.inc"
+ .include "data/text/maps/RustboroCity_PokemonCenter_1F.inc"
+ .include "data/text/maps/RustboroCity_Mart.inc"
+ .include "data/text/maps/RustboroCity_Flat1_1F.inc"
+ .include "data/text/maps/RustboroCity_Flat1_2F.inc"
+ .include "data/text/maps/RustboroCity_House1.inc"
+ .include "data/text/maps/RustboroCity_CuttersHouse.inc"
+ .include "data/text/maps/RustboroCity_House2.inc"
+ .include "data/text/maps/RustboroCity_Flat2_1F.inc"
+ .include "data/text/maps/RustboroCity_Flat2_2F.inc"
+ .include "data/text/maps/RustboroCity_Flat2_3F.inc"
+ .include "data/text/maps/RustboroCity_House3.inc"
+ .include "data/text/maps/FortreeCity_House1.inc"
+ .include "data/text/maps/FortreeCity_Gym.inc"
+ .include "data/text/maps/FortreeCity_PokemonCenter_1F.inc"
+ .include "data/text/maps/FortreeCity_Mart.inc"
+ .include "data/text/maps/FortreeCity_House2.inc"
+ .include "data/text/maps/FortreeCity_House3.inc"
+ .include "data/text/maps/FortreeCity_House4.inc"
+ .include "data/text/maps/FortreeCity_House5.inc"
+ .include "data/text/maps/FortreeCity_DecorationShop.inc"
+ .include "data/text/maps/LilycoveCity_CoveLilyMotel_1F.inc"
+ .include "data/text/maps/LilycoveCity_CoveLilyMotel_2F.inc"
+ .include "data/text/maps/LilycoveCity_LilycoveMuseum_1F.inc"
+ .include "data/text/maps/LilycoveCity_LilycoveMuseum_2F.inc"
+ .include "data/text/maps/LilycoveCity_ContestLobby.inc"
+ .include "data/text/maps/LilycoveCity_ContestHall.inc"
+ .include "data/text/maps/LilycoveCity_PokemonCenter_1F.inc"
+ .include "data/text/maps/LilycoveCity_PokemonTrainerFanClub.inc"
+ .include "data/text/maps/LilycoveCity_Harbor.inc"
+ .include "data/text/maps/LilycoveCity_MoveDeletersHouse.inc"
+ .include "data/text/maps/LilycoveCity_House1.inc"
+ .include "data/text/maps/LilycoveCity_House2.inc"
+ .include "data/text/maps/LilycoveCity_House3.inc"
+ .include "data/text/maps/LilycoveCity_House4.inc"
+ .include "data/text/maps/LilycoveCity_DepartmentStore_1F.inc"
+ .include "data/text/maps/LilycoveCity_DepartmentStore_2F.inc"
+ .include "data/text/maps/LilycoveCity_DepartmentStore_3F.inc"
+ .include "data/text/maps/LilycoveCity_DepartmentStore_4F.inc"
+ .include "data/text/maps/LilycoveCity_DepartmentStore_5F.inc"
+ .include "data/text/maps/LilycoveCity_DepartmentStoreRooftop.inc"
+ .include "data/text/maps/MossdeepCity_Gym.inc"
+ .include "data/text/maps/MossdeepCity_House1.inc"
+ .include "data/text/maps/MossdeepCity_House2.inc"
+ .include "data/text/maps/MossdeepCity_PokemonCenter_1F.inc"
+ .include "data/text/maps/MossdeepCity_PokemonCenter_2F.inc"
+ .include "data/text/maps/MossdeepCity_Mart.inc"
+ .include "data/text/maps/MossdeepCity_House3.inc"
+ .include "data/text/maps/MossdeepCity_StevensHouse.inc"
+ .include "data/text/maps/MossdeepCity_House4.inc"
+ .include "data/text/maps/MossdeepCity_SpaceCenter_1F.inc"
+ .include "data/text/maps/MossdeepCity_SpaceCenter_2F.inc"
+ .include "data/text/maps/MossdeepCity_GameCorner_1F.inc"
+ .include "data/text/maps/MossdeepCity_GameCorner_B1F.inc"
+ .include "data/text/maps/SootopolisCity_Gym_1F.inc"
+ .include "data/text/maps/SootopolisCity_Gym_B1F.inc"
+ .include "data/text/maps/SootopolisCity_PokemonCenter_1F.inc"
+ .include "data/text/maps/SootopolisCity_Mart.inc"
+ .include "data/text/maps/SootopolisCity_House1.inc"
+ .include "data/text/maps/SootopolisCity_House2.inc"
+ .include "data/text/maps/SootopolisCity_House3.inc"
+ .include "data/text/maps/SootopolisCity_House4.inc"
+ .include "data/text/maps/SootopolisCity_House5.inc"
+ .include "data/text/maps/SootopolisCity_House6.inc"
+ .include "data/text/maps/SootopolisCity_House7.inc"
+ .include "data/text/maps/SootopolisCity_House8.inc"
+ .include "data/text/maps/EverGrandeCity_SidneysRoom.inc"
+ .include "data/text/maps/EverGrandeCity_PhoebesRoom.inc"
+ .include "data/text/maps/EverGrandeCity_GlaciasRoom.inc"
+ .include "data/text/maps/EverGrandeCity_DrakesRoom.inc"
+ .include "data/text/maps/EverGrandeCity_ChampionsRoom.inc"
+ .include "data/text/maps/EverGrandeCity_PokemonLeague.inc"
+ .include "data/text/maps/EverGrandeCity_HallOfFame.inc"
+ .include "data/text/maps/EverGrandeCity_PokemonCenter_1F.inc"
+ .include "data/text/maps/Route104_MrBrineysHouse.inc"
+ .include "data/text/maps/Route111_WinstrateFamilysHouse.inc"
+ .include "data/text/maps/Route111_OldLadysRestStop.inc"
+ .include "data/text/maps/Route112_CableCarStation.inc"
+ .include "data/text/maps/MtChimney_CableCarStation.inc"
+ .include "data/text/maps/Route114_FossilManiacsHouse.inc"
+ .include "data/text/maps/Route114_FossilManiacsTunnel.inc"
+ .include "data/text/maps/Route114_LanettesHouse.inc"
+ .include "data/text/maps/Route116_TunnelersRestHouse.inc"
+ .include "data/text/maps/MeteorFalls_1F_1R.inc"
+ .include "data/text/maps/MeteorFalls_1F_2R.inc"
+ .include "data/text/maps/RusturfTunnel.inc"
+ .include "data/text/maps/GraniteCave_1F.inc"
+ .include "data/text/maps/GraniteCave_StevensRoom.inc"
+ .include "data/text/maps/PetalburgWoods.inc"
+ .include "data/text/maps/MtChimney.inc"
+ .include "data/text/maps/JaggedPass.inc"
+ .include "data/text/maps/MtPyre_1F.inc"
+ .include "data/text/maps/MtPyre_2F.inc"
+ .include "data/text/maps/MtPyre_3F.inc"
+ .include "data/text/maps/MtPyre_4F.inc"
+ .include "data/text/maps/MtPyre_5F.inc"
+ .include "data/text/maps/MtPyre_6F.inc"
+ .include "data/text/maps/AquaHideout_1F.inc"
+ .include "data/text/maps/AquaHideout_B1F.inc"
+ .include "data/text/maps/AquaHideout_B2F.inc"
+ .include "data/text/maps/Underwater_SeafloorCavern.inc"
+ .include "data/text/maps/SeafloorCavern_Room1.inc"
+ .include "data/text/maps/SeafloorCavern_Room3.inc"
+ .include "data/text/maps/SeafloorCavern_Room4.inc"
+ .include "data/text/maps/VictoryRoad_1F.inc"
+ .include "data/text/maps/VictoryRoad_B1F.inc"
+ .include "data/text/maps/VictoryRoad_B2F.inc"
+ .include "data/text/maps/ShoalCave_LowTideEntranceRoom.inc"
+ .include "data/text/maps/ShoalCave_LowTideInnerRoom.inc"
+ .include "data/text/maps/ShoalCave_LowTideStairsRoom.inc"
+ .include "data/text/maps/ShoalCave_LowTideLowerRoom.inc"
+ .include "data/text/maps/NewMauville_Entrance.inc"
+ .include "data/text/maps/NewMauville_Inside.inc"
+ .include "data/text/maps/AbandonedShip_Corridors_1F.inc"
+ .include "data/text/maps/AbandonedShip_Rooms_1F.inc"
+ .include "data/text/maps/AbandonedShip_Corridors_B1F.inc"
+ .include "data/text/maps/AbandonedShip_HiddenFloorCorridors.inc"
+ .include "data/text/maps/AbandonedShip_Rooms_B1F.inc"
+ .include "data/text/maps/AbandonedShip_Rooms2_B1F.inc"
+ .include "data/text/maps/AbandonedShip_Rooms2_1F.inc"
+ .include "data/text/maps/AbandonedShip_CaptainsOffice.inc"
+ .include "data/text/maps/AbandonedShip_HiddenFloorRooms.inc"
+ .include "data/text/maps/SecretBase_RedCave1.inc"
+ .include "data/text/maps/InsideOfTruck.inc"
+ .include "data/text/maps/SSTidalCorridor.inc"
+ .include "data/text/maps/SSTidalLowerDeck.inc"
+ .include "data/text/maps/SSTidalRooms.inc"
+ .include "data/text/maps/BattleTower_Outside.inc"
+ .include "data/text/maps/BattleTower_Lobby.inc"
+ .include "data/text/maps/BattleTower_BattleRoom.inc"
+ .include "data/text/maps/SouthernIsland_Exterior.inc"
+ .include "data/text/maps/SouthernIsland_Interior.inc"
+ .include "data/text/maps/Route104_Prototype.inc"
+ .include "data/text/maps/Route104_PrototypePrettyPetalFlowerShop.inc"
+ .include "data/text/maps/Route109_SeashoreHouse.inc"
+ .include "data/text/maps/Route110_TrickHouseEntrance.inc"
Route110_TrickHousePuzzle1_Text_19C1B8:: @ 819C1B8
.string "{PLAYER} found a scroll.$"
@@ -866,23 +867,23 @@ UnknownString_819C21F: @ 819C21F
.string "...On closer inspection, this is written\n"
.string "on it: “Write the secret code here.”$"
- .include "data/text/maps/Route110_TrickHouseEnd.s"
- .include "data/text/maps/Route110_TrickHousePuzzle1.s"
- .include "data/text/maps/Route110_TrickHousePuzzle2.s"
- .include "data/text/maps/Route110_TrickHousePuzzle3.s"
- .include "data/text/maps/Route110_TrickHousePuzzle4.s"
- .include "data/text/maps/Route110_TrickHousePuzzle5.s"
- .include "data/text/maps/Route110_TrickHousePuzzle6.s"
- .include "data/text/maps/Route110_TrickHousePuzzle7.s"
- .include "data/text/maps/Route110_TrickHousePuzzle8.s"
- .include "data/text/maps/Route110_SeasideCyclingRoadSouthEntrance.s"
- .include "data/text/maps/Route110_SeasideCyclingRoadNorthEntrance.s"
- .include "data/text/maps/Route113_GlassWorkshop.s"
- .include "data/text/maps/Route123_BerryMastersHouse.s"
- .include "data/text/maps/Route119_WeatherInstitute_1F.s"
- .include "data/text/maps/Route119_WeatherInstitute_2F.s"
- .include "data/text/maps/Route119_House.s"
- .include "data/text/maps/Route124_DivingTreasureHuntersHouse.s"
+ .include "data/text/maps/Route110_TrickHouseEnd.inc"
+ .include "data/text/maps/Route110_TrickHousePuzzle1.inc"
+ .include "data/text/maps/Route110_TrickHousePuzzle2.inc"
+ .include "data/text/maps/Route110_TrickHousePuzzle3.inc"
+ .include "data/text/maps/Route110_TrickHousePuzzle4.inc"
+ .include "data/text/maps/Route110_TrickHousePuzzle5.inc"
+ .include "data/text/maps/Route110_TrickHousePuzzle6.inc"
+ .include "data/text/maps/Route110_TrickHousePuzzle7.inc"
+ .include "data/text/maps/Route110_TrickHousePuzzle8.inc"
+ .include "data/text/maps/Route110_SeasideCyclingRoadSouthEntrance.inc"
+ .include "data/text/maps/Route110_SeasideCyclingRoadNorthEntrance.inc"
+ .include "data/text/maps/Route113_GlassWorkshop.inc"
+ .include "data/text/maps/Route123_BerryMastersHouse.inc"
+ .include "data/text/maps/Route119_WeatherInstitute_1F.inc"
+ .include "data/text/maps/Route119_WeatherInstitute_2F.inc"
+ .include "data/text/maps/Route119_House.inc"
+ .include "data/text/maps/Route124_DivingTreasureHuntersHouse.inc"
Std_2:
@@ -3193,7 +3194,7 @@ RustboroCity_DevonCorp_2F_Text_1A1102:: @ 81A1102
.string "Want to give a nickname to the\n"
.string "{STR_VAR_2} you received?$"
-UnknownString_81A1132:: @ 81A1132
+fieldPoisonText_PokemonFainted:: @ 81A1132
.string "{STR_VAR_1} fainted...\p$"
UnknownString_81A1141: @ 81A1141
@@ -3222,7 +3223,7 @@ OldaleTown_PokemonCenter_1F_Text_1A1275:: @ 81A1275
.string "While infected, POKéMON are said to\n"
.string "grow exceptionally well.$"
- .include "data/text/surf.s"
+ .include "data/text/surf.inc"
SealedChamber_InnerRoom_Text_1A138B:: @ 81A138B
.string "It sounded as if a door opened\n"
@@ -3279,8 +3280,8 @@ PacifidlogTown_House2_EventScript_1A14DC:: @ 81A14DC
Route101_EventScript_1A14DC:: @ 81A14DC
return
- .include "data/scripts/berry_tree.s"
- .include "data/text/berry_tree.s"
+ .include "data/scripts/berry_tree.inc"
+ .include "data/text/berry_tree.inc"
UnknownString_81A1948: @ 81A1948
.string "If some vines drop down, this tree can\n"
@@ -4297,8 +4298,8 @@ SecretBase_RedCave1_EventScript_1A350A:: @ 81A350A
release
end
- .include "data/text/secret_power_tm.s"
- .include "data/scripts/secret_power_tm.s"
+ .include "data/text/secret_power_tm.inc"
+ .include "data/scripts/secret_power_tm.inc"
UnknownString_81A38FB: @ 81A38FB
.string "All decorations and furniture in your\n"
@@ -4365,14 +4366,14 @@ UnknownString_81A3CC9: @ 81A3CC9
.string "Moving completed.\p"
.string "Would you like to use the SECRET POWER?$"
- .include "data/scripts/cable_club.s"
- .include "data/text/cable_club.s"
+ .include "data/scripts/cable_club.inc"
+ .include "data/text/cable_club.inc"
- .include "data/scripts/contest_hall.s"
- .include "data/text/contest_hall.s"
+ .include "data/scripts/contest_hall.inc"
+ .include "data/text/contest_hall.inc"
- .include "data/scripts/tv.s"
- .include "data/text/tv.s"
+ .include "data/scripts/tv.inc"
+ .include "data/text/tv.inc"
BattleTower_Lobby_EventScript_1ADE46:: @ 81ADE46
FallarborTown_ContestLobby_EventScript_1ADE46:: @ 81ADE46
@@ -4742,55 +4743,55 @@ BattleTower_Lobby_EventScript_1AE30F:: @ 81AE30F
setflag 918
return
- .include "data/scripts/gabby_and_ty.s"
+ .include "data/scripts/gabby_and_ty.inc"
- .include "data/scripts/bard.s"
- .include "data/scripts/hipster.s"
- .include "data/text/trader.s"
- .include "data/scripts/trader.s"
- .include "data/text/storyteller.s"
- .include "data/scripts/storyteller.s"
- .include "data/text/giddy.s"
- .include "data/scripts/giddy.s"
- .include "data/text/bard.s"
- .include "data/text/hipster.s"
+ .include "data/scripts/bard.inc"
+ .include "data/scripts/hipster.inc"
+ .include "data/text/trader.inc"
+ .include "data/scripts/trader.inc"
+ .include "data/text/storyteller.inc"
+ .include "data/scripts/storyteller.inc"
+ .include "data/text/giddy.inc"
+ .include "data/scripts/giddy.inc"
+ .include "data/text/bard.inc"
+ .include "data/text/hipster.inc"
- .include "data/field_move_scripts.s"
- .include "data/item_ball_scripts.s"
+ .include "data/field_move_scripts.inc"
+ .include "data/item_ball_scripts.inc"
- .include "data/scripts/mystery_event_club.s"
- .include "data/text/mystery_event_club.s"
+ .include "data/scripts/mystery_event_club.inc"
+ .include "data/text/mystery_event_club.inc"
- .include "data/scripts/day_care.s"
- .include "data/text/day_care.s"
+ .include "data/scripts/day_care.inc"
+ .include "data/text/day_care.inc"
- .include "data/scripts/magma_chimney.s"
- .include "data/scripts/magma_summit.s"
+ .include "data/scripts/magma_chimney.inc"
+ .include "data/scripts/magma_summit.inc"
- .include "data/text/aqua_chimney.s"
- .include "data/text/magma_chimney.s"
- .include "data/text/aqua_awakening.s"
- .include "data/text/magma_awakening.s"
- .include "data/text/aqua_settled.s"
- .include "data/text/magma_settled.s"
- .include "data/text/aqua_summit.s"
- .include "data/text/magma_summit.s"
+ .include "data/text/aqua_chimney.inc"
+ .include "data/text/magma_chimney.inc"
+ .include "data/text/aqua_awakening.inc"
+ .include "data/text/magma_awakening.inc"
+ .include "data/text/aqua_settled.inc"
+ .include "data/text/magma_settled.inc"
+ .include "data/text/aqua_summit.inc"
+ .include "data/text/magma_summit.inc"
gUnknown_081B694A:: @ 81B694A
lighten 1
darken 1
end
- .include "data/scripts/players_house.s"
+ .include "data/scripts/players_house.inc"
Event_RunningShoesManual:: @ 81B6E5A
msgbox UnknownString_81728E3, 3
end
- .include "data/text/pokeblocks.s"
- .include "data/scripts/pokeblocks.s"
+ .include "data/text/pokeblocks.inc"
+ .include "data/scripts/pokeblocks.inc"
- .include "data/text/trainers.s"
+ .include "data/text/trainers.inc"
Event_RepelWoreOff:: @ 81C33E6
msgbox Text_RepelWoreOff, 3
@@ -4799,8 +4800,8 @@ Event_RepelWoreOff:: @ 81C33E6
Text_RepelWoreOff: @ 81C33EF
.string "REPEL’s effect wore off...$"
- .include "data/scripts/safari_zone.s"
- .include "data/text/safari_zone.s"
+ .include "data/scripts/safari_zone.inc"
+ .include "data/text/safari_zone.inc"
MauvilleCity_GameCorner_EventScript_1C407E:: @ 81C407E
checkitem ITEM_COIN_CASE, 1
@@ -4831,14 +4832,14 @@ MauvilleCity_GameCorner_EventScript_1C40DA:: @ 81C40DA
waitstate
end
- .include "data/text/roulette.s"
- .include "data/text/barboach.s"
- .include "data/text/pokedex_rating.s"
- .include "data/text/lottery_corner.s"
- .include "data/text/eon_ticket.s"
- .include "data/text/braille.s"
- .include "data/text/berries.s"
- .include "data/text/shoal_cave.s"
+ .include "data/text/roulette.inc"
+ .include "data/text/barboach.inc"
+ .include "data/text/pokedex_rating.inc"
+ .include "data/text/lottery_corner.inc"
+ .include "data/text/eon_ticket.inc"
+ .include "data/text/braille.inc"
+ .include "data/text/berries.inc"
+ .include "data/text/shoal_cave.inc"
PictureBookShelfText: @ 81C6A69
.string "There’s a set of POKéMON picture books.$"
@@ -4960,5 +4961,5 @@ Text_1C6C62: @ 81C6C62
.align 2
.string "$"
- .include "data/text/save.s"
- .include "data/text/birch_speech.s"
+ .include "data/text/save.inc"
+ .include "data/text/birch_speech.inc"
diff --git a/data/evolution_table.s b/data/evolution_table.inc
index 8234ac7a2..8234ac7a2 100644
--- a/data/evolution_table.s
+++ b/data/evolution_table.inc
diff --git a/data/experience_tables/tables.s b/data/experience_tables/tables.inc
index 5018efc0f..5018efc0f 100644
--- a/data/experience_tables/tables.s
+++ b/data/experience_tables/tables.inc
diff --git a/data/field_effect_scripts.s b/data/field_effect_scripts.s
index a1f796f83..aabb1252d 100644
--- a/data/field_effect_scripts.s
+++ b/data/field_effect_scripts.s
@@ -1,6 +1,6 @@
- .include "asm/macros.s"
- .include "asm/macros/field_effect_script.s"
- .include "constants/constants.s"
+ .include "asm/macros.inc"
+ .include "asm/macros/field_effect_script.inc"
+ .include "constants/constants.inc"
.section script_data, "aw", %progbits
diff --git a/data/field_move_scripts.s b/data/field_move_scripts.inc
index 413ab351a..413ab351a 100644
--- a/data/field_move_scripts.s
+++ b/data/field_move_scripts.inc
diff --git a/data/graphics.s b/data/graphics.s
index 6dcd10041..f809c6ddd 100644
--- a/data/graphics.s
+++ b/data/graphics.s
@@ -15,7 +15,7 @@ gUnknown_08D00524:: @ 8D00524
.incbin "graphics/interface/menu_map.bin"
@ 8D01524
- .include "data/graphics/pokemon/circled_question_mark_graphics.s"
+ .include "data/graphics/pokemon/circled_question_mark_graphics.inc"
@ 8D019E4
.incbin "graphics/unused/old_charmap.4bpp.lz" @ japanese table and bunch of stuff
@@ -2512,10 +2512,10 @@ gBattleAnimSpritePalette_257:: @ 8D2FD6C
.incbin "graphics/battle_anims/sprites/257.gbapal.lz"
@ 8D2FD8C
- .include "data/graphics/pokemon/graphics.s"
+ .include "data/graphics/pokemon/graphics.inc"
@ 8E48D38
- .include "data/graphics/trainers/graphics.s"
+ .include "data/graphics/trainers/graphics.inc"
.align 2
gMonIcon_QuestionMark:: @ 8E5D5F0
@@ -3346,7 +3346,7 @@ gBerryCheckCircle_Gfx:: @ 8E78BB4
.incbin "graphics/interface/check_berry_circle.4bpp.lz"
@ 8E78D00
- .include "data/graphics/berries/graphics.s"
+ .include "data/graphics/berries/graphics.inc"
.align 2
gBattleAnimSpritePalette_282:: @ 8E7E7D0
diff --git a/data/graphics/berries/graphics.s b/data/graphics/berries/graphics.inc
index 19207ee32..19207ee32 100644
--- a/data/graphics/berries/graphics.s
+++ b/data/graphics/berries/graphics.inc
diff --git a/data/graphics/berries/graphics_table.s b/data/graphics/berries/graphics_table.inc
index 78af1c48b..78af1c48b 100644
--- a/data/graphics/berries/graphics_table.s
+++ b/data/graphics/berries/graphics_table.inc
diff --git a/data/graphics/field_objects/base_oam.s b/data/graphics/field_objects/base_oam.inc
index 88a8ed058..88a8ed058 100644
--- a/data/graphics/field_objects/base_oam.s
+++ b/data/graphics/field_objects/base_oam.inc
diff --git a/data/graphics/field_objects/berry_tree_graphics_tables.s b/data/graphics/field_objects/berry_tree_graphics_tables.inc
index 925f35d19..925f35d19 100644
--- a/data/graphics/field_objects/berry_tree_graphics_tables.s
+++ b/data/graphics/field_objects/berry_tree_graphics_tables.inc
diff --git a/data/graphics/field_objects/field_effect_object_graphics.s b/data/graphics/field_objects/field_effect_object_graphics.inc
index 67865c4d0..67865c4d0 100644
--- a/data/graphics/field_objects/field_effect_object_graphics.s
+++ b/data/graphics/field_objects/field_effect_object_graphics.inc
diff --git a/data/graphics/field_objects/field_effect_object_template_pointers.s b/data/graphics/field_objects/field_effect_object_template_pointers.inc
index 278de275d..278de275d 100644
--- a/data/graphics/field_objects/field_effect_object_template_pointers.s
+++ b/data/graphics/field_objects/field_effect_object_template_pointers.inc
diff --git a/data/graphics/field_objects/field_effect_objects.s b/data/graphics/field_objects/field_effect_objects.inc
index c3a9585f4..c3a9585f4 100644
--- a/data/graphics/field_objects/field_effect_objects.s
+++ b/data/graphics/field_objects/field_effect_objects.inc
diff --git a/data/graphics/field_objects/map_object_anims.s b/data/graphics/field_objects/map_object_anims.inc
index 1c6614964..1c6614964 100644
--- a/data/graphics/field_objects/map_object_anims.s
+++ b/data/graphics/field_objects/map_object_anims.inc
diff --git a/data/graphics/field_objects/map_object_graphics.s b/data/graphics/field_objects/map_object_graphics.inc
index 5bf9ccc9c..5bf9ccc9c 100644
--- a/data/graphics/field_objects/map_object_graphics.s
+++ b/data/graphics/field_objects/map_object_graphics.inc
diff --git a/data/graphics/field_objects/map_object_graphics_info.s b/data/graphics/field_objects/map_object_graphics_info.inc
index c446904b7..c446904b7 100644
--- a/data/graphics/field_objects/map_object_graphics_info.s
+++ b/data/graphics/field_objects/map_object_graphics_info.inc
diff --git a/data/graphics/field_objects/map_object_graphics_info_pointers.s b/data/graphics/field_objects/map_object_graphics_info_pointers.inc
index 7b17f9a5c..7b17f9a5c 100644
--- a/data/graphics/field_objects/map_object_graphics_info_pointers.s
+++ b/data/graphics/field_objects/map_object_graphics_info_pointers.inc
diff --git a/data/graphics/field_objects/map_object_pic_tables.s b/data/graphics/field_objects/map_object_pic_tables.inc
index a1b549382..a1b549382 100644
--- a/data/graphics/field_objects/map_object_pic_tables.s
+++ b/data/graphics/field_objects/map_object_pic_tables.inc
diff --git a/data/graphics/field_objects/map_object_subsprites.s b/data/graphics/field_objects/map_object_subsprites.inc
index 801f40693..801f40693 100644
--- a/data/graphics/field_objects/map_object_subsprites.s
+++ b/data/graphics/field_objects/map_object_subsprites.inc
diff --git a/data/graphics/pokemon/back_pic_coords.s b/data/graphics/pokemon/back_pic_coords.inc
index 71c81a81b..71c81a81b 100644
--- a/data/graphics/pokemon/back_pic_coords.s
+++ b/data/graphics/pokemon/back_pic_coords.inc
diff --git a/data/graphics/pokemon/back_pic_table.s b/data/graphics/pokemon/back_pic_table.inc
index 339543701..339543701 100644
--- a/data/graphics/pokemon/back_pic_table.s
+++ b/data/graphics/pokemon/back_pic_table.inc
diff --git a/data/graphics/pokemon/circled_question_mark_graphics.s b/data/graphics/pokemon/circled_question_mark_graphics.inc
index 55b18e04d..55b18e04d 100644
--- a/data/graphics/pokemon/circled_question_mark_graphics.s
+++ b/data/graphics/pokemon/circled_question_mark_graphics.inc
diff --git a/data/graphics/pokemon/footprint_table.s b/data/graphics/pokemon/footprint_table.inc
index 675a3bce4..675a3bce4 100644
--- a/data/graphics/pokemon/footprint_table.s
+++ b/data/graphics/pokemon/footprint_table.inc
diff --git a/data/graphics/pokemon/front_pic_coords.s b/data/graphics/pokemon/front_pic_coords.inc
index bda4eac5d..bda4eac5d 100644
--- a/data/graphics/pokemon/front_pic_coords.s
+++ b/data/graphics/pokemon/front_pic_coords.inc
diff --git a/data/graphics/pokemon/front_pic_table.s b/data/graphics/pokemon/front_pic_table.inc
index 095c3d02a..095c3d02a 100644
--- a/data/graphics/pokemon/front_pic_table.s
+++ b/data/graphics/pokemon/front_pic_table.inc
diff --git a/data/graphics/pokemon/graphics.s b/data/graphics/pokemon/graphics.inc
index 8a4db9292..8a4db9292 100644
--- a/data/graphics/pokemon/graphics.s
+++ b/data/graphics/pokemon/graphics.inc
diff --git a/data/graphics/pokemon/icon_palette_indices.s b/data/graphics/pokemon/icon_palette_indices.inc
index f37ec2a7a..f37ec2a7a 100644
--- a/data/graphics/pokemon/icon_palette_indices.s
+++ b/data/graphics/pokemon/icon_palette_indices.inc
diff --git a/data/graphics/pokemon/icon_palette_table.s b/data/graphics/pokemon/icon_palette_table.inc
index d9da61ab2..d9da61ab2 100644
--- a/data/graphics/pokemon/icon_palette_table.s
+++ b/data/graphics/pokemon/icon_palette_table.inc
diff --git a/data/graphics/pokemon/icon_table.s b/data/graphics/pokemon/icon_table.inc
index eeb064208..eeb064208 100644
--- a/data/graphics/pokemon/icon_table.s
+++ b/data/graphics/pokemon/icon_table.inc
diff --git a/data/graphics/pokemon/palette_table.s b/data/graphics/pokemon/palette_table.inc
index f38884596..f38884596 100644
--- a/data/graphics/pokemon/palette_table.s
+++ b/data/graphics/pokemon/palette_table.inc
diff --git a/data/graphics/pokemon/shiny_palette_table.s b/data/graphics/pokemon/shiny_palette_table.inc
index 0de988408..0de988408 100644
--- a/data/graphics/pokemon/shiny_palette_table.s
+++ b/data/graphics/pokemon/shiny_palette_table.inc
diff --git a/data/graphics/trainers/back_pic_coords.s b/data/graphics/trainers/back_pic_coords.inc
index e1c0b0e60..e1c0b0e60 100644
--- a/data/graphics/trainers/back_pic_coords.s
+++ b/data/graphics/trainers/back_pic_coords.inc
diff --git a/data/graphics/trainers/back_pic_palette_table.s b/data/graphics/trainers/back_pic_palette_table.inc
index 143becca4..143becca4 100644
--- a/data/graphics/trainers/back_pic_palette_table.s
+++ b/data/graphics/trainers/back_pic_palette_table.inc
diff --git a/data/graphics/trainers/back_pic_table.s b/data/graphics/trainers/back_pic_table.inc
index c4c243c87..c4c243c87 100644
--- a/data/graphics/trainers/back_pic_table.s
+++ b/data/graphics/trainers/back_pic_table.inc
diff --git a/data/graphics/trainers/front_pic_coords.s b/data/graphics/trainers/front_pic_coords.inc
index c095febdb..c095febdb 100644
--- a/data/graphics/trainers/front_pic_coords.s
+++ b/data/graphics/trainers/front_pic_coords.inc
diff --git a/data/graphics/trainers/front_pic_palette_table.s b/data/graphics/trainers/front_pic_palette_table.inc
index d598d1a6f..d598d1a6f 100644
--- a/data/graphics/trainers/front_pic_palette_table.s
+++ b/data/graphics/trainers/front_pic_palette_table.inc
diff --git a/data/graphics/trainers/front_pic_table.s b/data/graphics/trainers/front_pic_table.inc
index 056647dcd..056647dcd 100644
--- a/data/graphics/trainers/front_pic_table.s
+++ b/data/graphics/trainers/front_pic_table.inc
diff --git a/data/graphics/trainers/graphics.s b/data/graphics/trainers/graphics.inc
index 09f34ca31..09f34ca31 100644
--- a/data/graphics/trainers/graphics.s
+++ b/data/graphics/trainers/graphics.inc
diff --git a/data/ingame_trades.s b/data/ingame_trades.inc
index f5258e26c..f5258e26c 100644
--- a/data/ingame_trades.s
+++ b/data/ingame_trades.inc
diff --git a/data/item_ball_scripts.s b/data/item_ball_scripts.inc
index ad4386990..ad4386990 100644
--- a/data/item_ball_scripts.s
+++ b/data/item_ball_scripts.inc
diff --git a/data/item_effects.s b/data/item_effects.inc
index 7b05354c2..7b05354c2 100644
--- a/data/item_effects.s
+++ b/data/item_effects.inc
diff --git a/data/items.s b/data/items.inc
index 0074a6bfa..0074a6bfa 100644
--- a/data/items.s
+++ b/data/items.inc
diff --git a/data/landmarks.s b/data/landmarks.inc
index 455868d8c..fb7df5736 100644
--- a/data/landmarks.s
+++ b/data/landmarks.inc
@@ -184,187 +184,187 @@ Landmark_SkyPillar:
.2byte 2142 @ flag num.
.align 2
-LandmarkList_Route104_0:
+Landmarks_Route104_0:
.4byte Landmark_FlowerShop
.4byte NULL
.align 2
-LandmarkList_Route104_1:
+Landmarks_Route104_1:
.4byte Landmark_PetalburgWoods
.4byte Landmark_MrBrineysCottage
.4byte NULL
.align 2
-LandmarkList_Route105_0:
+Landmarks_Route105_0:
.4byte Landmark_IslandCave
.4byte NULL
.align 2
-LandmarkList_Route106_1:
+Landmarks_Route106_1:
.4byte Landmark_GraniteCave
.4byte NULL
.align 2
-LandmarkList_Route108_0:
+Landmarks_Route108_0:
.4byte Landmark_AbandonedShip
.4byte NULL
.align 2
-LandmarkList_Route109_0:
+Landmarks_Route109_0:
.4byte Landmark_SeashoreHouse
.4byte Landmark_SlateportBeach
.4byte NULL
.align 2
-LandmarkList_Route110_0:
+Landmarks_Route110_0:
.4byte Landmark_CyclingRoad
.4byte Landmark_NewMauville
.4byte NULL
.align 2
-LandmarkList_Route110_1:
+Landmarks_Route110_1:
.4byte Landmark_CyclingRoad
.4byte NULL
.align 2
-LandmarkList_Route110_2:
+Landmarks_Route110_2:
.4byte Landmark_CyclingRoad
.4byte Landmark_TrickHouse
.4byte NULL
.align 2
-LandmarkList_Route111_0:
+Landmarks_Route111_0:
.4byte Landmark_OldLadysRestShop
.4byte NULL
.align 2
-LandmarkList_Route111_1:
+Landmarks_Route111_1:
.4byte Landmark_Desert
.4byte NULL
.align 2
-LandmarkList_Route111_3:
+Landmarks_Route111_3:
.4byte Landmark_DesertRuins
.4byte Landmark_Desert
.4byte NULL
.align 2
-LandmarkList_Route111_4:
+Landmarks_Route111_4:
.4byte Landmark_WinstrateFamily
.4byte Landmark_Desert
.4byte NULL
.align 2
-LandmarkList_Route112_0:
+Landmarks_Route112_0:
.4byte Landmark_FieryPath
.4byte Landmark_JaggedPass
.4byte NULL
.align 2
-LandmarkList_Route112_1:
+Landmarks_Route112_1:
.4byte Landmark_CableCar
.4byte Landmark_FieryPath
.4byte NULL
.align 2
-LandmarkList_Route113_1:
+Landmarks_Route113_1:
.4byte Landmark_GlassWorkshop
.4byte NULL
.align 2
-LandmarkList_Route114_1:
+Landmarks_Route114_1:
.4byte Landmark_FossilManiacsHouse
.4byte NULL
.align 2
-LandmarkList_Route114_2:
+Landmarks_Route114_2:
.4byte Landmark_LanettesHouse
.4byte NULL
.align 2
-LandmarkList_MeteorFalls:
+Landmarks_MeteorFalls:
.4byte Landmark_MeteorFalls
.4byte NULL
.align 2
-LandmarkList_Route116_1:
+Landmarks_Route116_1:
.4byte Landmark_TunnelersRestHouse
.4byte Landmark_RusturfTunnel
.4byte NULL
.align 2
-LandmarkList_Route116_2:
+Landmarks_Route116_2:
.4byte Landmark_RusturfTunnel
.4byte NULL
.align 2
-LandmarkList_Route117_2:
+Landmarks_Route117_2:
.4byte Landmark_PokemonDayCare
.4byte NULL
.align 2
-LandmarkList_Route119_1:
+Landmarks_Route119_1:
.4byte Landmark_WeatherInstitute
.4byte NULL
.align 2
-LandmarkList_Route120_0:
+Landmarks_Route120_0:
.4byte Landmark_ScorchedSlab
.4byte NULL
.align 2
-LandmarkList_Route120_2:
+Landmarks_Route120_2:
.4byte Landmark_AncientTomb
.4byte NULL
.align 2
-LandmarkList_Route121_2:
+Landmarks_Route121_2:
.4byte Landmark_SafariZoneEntrance
.4byte NULL
.align 2
-LandmarkList_Route122_0:
+Landmarks_Route122_0:
.4byte Landmark_MtPyre
.4byte NULL
.align 2
-LandmarkList_Route123_0:
+Landmarks_Route123_0:
.4byte Landmark_BerryMastersHouse
.4byte NULL
.align 2
-LandmarkList_Route124_7:
+Landmarks_Route124_7:
.4byte Landmark_HuntersHouse
.4byte NULL
.align 2
-LandmarkList_Route125_2:
+Landmarks_Route125_2:
.4byte Landmark_ShoalCave
.4byte NULL
.align 2
-LandmarkList_Route128_1:
+Landmarks_Route128_1:
.4byte Landmark_SeafloorCavern
.4byte NULL
.align 2
-LandmarkList_Route131_1:
+Landmarks_Route131_1:
.4byte Landmark_SkyPillar
.4byte NULL
.align 2
-LandmarkList_OceanCurrent:
+Landmarks_OceanCurrent:
.4byte Landmark_OceanCurrent
.4byte NULL
.align 2
-LandmarkList_Route134_2:
+Landmarks_Route134_2:
.4byte Landmark_SealedChamber
.4byte Landmark_OceanCurrent
.4byte NULL
.align 2
-LandmarkList_MtChimney_2:
+Landmarks_MtChimney_2:
.4byte Landmark_CableCar
.4byte Landmark_JaggedPass
.4byte NULL
@@ -373,183 +373,183 @@ LandmarkList_MtChimney_2:
gLandmarkLists:: @ 83FBA18
.byte MAPSEC_Route104, 0
.space 2
- .4byte LandmarkList_Route104_0
+ .4byte Landmarks_Route104_0
.byte MAPSEC_Route104, 1
.space 2
- .4byte LandmarkList_Route104_1
+ .4byte Landmarks_Route104_1
.byte MAPSEC_Route105, 0
.space 2
- .4byte LandmarkList_Route105_0
+ .4byte Landmarks_Route105_0
.byte MAPSEC_Route106, 1
.space 2
- .4byte LandmarkList_Route106_1
+ .4byte Landmarks_Route106_1
.byte MAPSEC_Route108, 0
.space 2
- .4byte LandmarkList_Route108_0
+ .4byte Landmarks_Route108_0
.byte MAPSEC_Route109, 0
.space 2
- .4byte LandmarkList_Route109_0
+ .4byte Landmarks_Route109_0
.byte MAPSEC_Route110, 0
.space 2
- .4byte LandmarkList_Route110_0
+ .4byte Landmarks_Route110_0
.byte MAPSEC_Route110, 1
.space 2
- .4byte LandmarkList_Route110_1
+ .4byte Landmarks_Route110_1
.byte MAPSEC_Route110, 2
.space 2
- .4byte LandmarkList_Route110_2
+ .4byte Landmarks_Route110_2
.byte MAPSEC_Route111, 0
.space 2
- .4byte LandmarkList_Route111_0
+ .4byte Landmarks_Route111_0
.byte MAPSEC_Route111, 1
.space 2
- .4byte LandmarkList_Route111_1
+ .4byte Landmarks_Route111_1
.byte MAPSEC_Route111, 2
.space 2
- .4byte LandmarkList_Route111_1
+ .4byte Landmarks_Route111_1
.byte MAPSEC_Route111, 3
.space 2
- .4byte LandmarkList_Route111_3
+ .4byte Landmarks_Route111_3
.byte MAPSEC_Route111, 4
.space 2
- .4byte LandmarkList_Route111_4
+ .4byte Landmarks_Route111_4
.byte MAPSEC_Route112, 0
.space 2
- .4byte LandmarkList_Route112_0
+ .4byte Landmarks_Route112_0
.byte MAPSEC_Route112, 1
.space 2
- .4byte LandmarkList_Route112_1
+ .4byte Landmarks_Route112_1
.byte MAPSEC_Route113, 1
.space 2
- .4byte LandmarkList_Route113_1
+ .4byte Landmarks_Route113_1
.byte MAPSEC_Route114, 1
.space 2
- .4byte LandmarkList_Route114_1
+ .4byte Landmarks_Route114_1
.byte MAPSEC_Route114, 2
.space 2
- .4byte LandmarkList_Route114_2
+ .4byte Landmarks_Route114_2
.byte MAPSEC_Route114, 3
.space 2
- .4byte LandmarkList_MeteorFalls
+ .4byte Landmarks_MeteorFalls
.byte MAPSEC_Route115, 0
.space 2
- .4byte LandmarkList_MeteorFalls
+ .4byte Landmarks_MeteorFalls
.byte MAPSEC_Route115, 1
.space 2
- .4byte LandmarkList_MeteorFalls
+ .4byte Landmarks_MeteorFalls
.byte MAPSEC_Route116, 1
.space 2
- .4byte LandmarkList_Route116_1
+ .4byte Landmarks_Route116_1
.byte MAPSEC_Route116, 2
.space 2
- .4byte LandmarkList_Route116_2
+ .4byte Landmarks_Route116_2
.byte MAPSEC_Route117, 2
.space 2
- .4byte LandmarkList_Route117_2
+ .4byte Landmarks_Route117_2
.byte MAPSEC_Route119, 1
.space 2
- .4byte LandmarkList_Route119_1
+ .4byte Landmarks_Route119_1
.byte MAPSEC_Route120, 0
.space 2
- .4byte LandmarkList_Route120_0
+ .4byte Landmarks_Route120_0
.byte MAPSEC_Route120, 2
.space 2
- .4byte LandmarkList_Route120_2
+ .4byte Landmarks_Route120_2
.byte MAPSEC_Route121, 2
.space 2
- .4byte LandmarkList_Route121_2
+ .4byte Landmarks_Route121_2
.byte MAPSEC_Route122, 0
.space 2
- .4byte LandmarkList_Route122_0
+ .4byte Landmarks_Route122_0
.byte MAPSEC_Route123, 0
.space 2
- .4byte LandmarkList_Route123_0
+ .4byte Landmarks_Route123_0
.byte MAPSEC_Route122, 1
.space 2
- .4byte LandmarkList_Route122_0
+ .4byte Landmarks_Route122_0
.byte MAPSEC_Route124, 7
.space 2
- .4byte LandmarkList_Route124_7
+ .4byte Landmarks_Route124_7
.byte MAPSEC_Route125, 2
.space 2
- .4byte LandmarkList_Route125_2
+ .4byte Landmarks_Route125_2
.byte MAPSEC_Route128, 1
.space 2
- .4byte LandmarkList_Route128_1
+ .4byte Landmarks_Route128_1
.byte MAPSEC_Route131, 1
.space 2
- .4byte LandmarkList_Route131_1
+ .4byte Landmarks_Route131_1
.byte MAPSEC_Route132, 0
.space 2
- .4byte LandmarkList_OceanCurrent
+ .4byte Landmarks_OceanCurrent
.byte MAPSEC_Route132, 1
.space 2
- .4byte LandmarkList_OceanCurrent
+ .4byte Landmarks_OceanCurrent
.byte MAPSEC_Route133, 0
.space 2
- .4byte LandmarkList_OceanCurrent
+ .4byte Landmarks_OceanCurrent
.byte MAPSEC_Route133, 1
.space 2
- .4byte LandmarkList_OceanCurrent
+ .4byte Landmarks_OceanCurrent
.byte MAPSEC_Route133, 2
.space 2
- .4byte LandmarkList_OceanCurrent
+ .4byte Landmarks_OceanCurrent
.byte MAPSEC_Route134, 0
.space 2
- .4byte LandmarkList_OceanCurrent
+ .4byte Landmarks_OceanCurrent
.byte MAPSEC_Route134, 1
.space 2
- .4byte LandmarkList_OceanCurrent
+ .4byte Landmarks_OceanCurrent
.byte MAPSEC_Route134, 2
.space 2
- .4byte LandmarkList_Route134_2
+ .4byte Landmarks_Route134_2
.byte MAPSEC_MtChimney, 2
.space 2
- .4byte LandmarkList_MtChimney_2
+ .4byte Landmarks_MtChimney_2
.byte MAPSEC_Nothing, 0
.space 2
diff --git a/data/level_up_learnset_pointers.s b/data/level_up_learnset_pointers.inc
index 31055be5c..31055be5c 100644
--- a/data/level_up_learnset_pointers.s
+++ b/data/level_up_learnset_pointers.inc
diff --git a/data/level_up_learnsets.s b/data/level_up_learnsets.inc
index b2a445dda..b2a445dda 100644
--- a/data/level_up_learnsets.s
+++ b/data/level_up_learnsets.inc
diff --git a/data/maps/_assets.s b/data/maps/_assets.inc
index a9cc15869..a9cc15869 100644
--- a/data/maps/_assets.s
+++ b/data/maps/_assets.inc
diff --git a/data/maps/_groups.s b/data/maps/_groups.inc
index 478f03e86..478f03e86 100644
--- a/data/maps/_groups.s
+++ b/data/maps/_groups.inc
diff --git a/data/maps/attributes_table.s b/data/maps/attributes_table.inc
index 41b0df228..41b0df228 100644
--- a/data/maps/attributes_table.s
+++ b/data/maps/attributes_table.inc
diff --git a/data/maps/connections.s b/data/maps/connections.inc
index 9e5f3a5a5..9e5f3a5a5 100644
--- a/data/maps/connections.s
+++ b/data/maps/connections.inc
diff --git a/data/maps/events/AbandonedShip_CaptainsOffice.s b/data/maps/events/AbandonedShip_CaptainsOffice.inc
index e05bee18c..e05bee18c 100644
--- a/data/maps/events/AbandonedShip_CaptainsOffice.s
+++ b/data/maps/events/AbandonedShip_CaptainsOffice.inc
diff --git a/data/maps/events/AbandonedShip_Corridors_1F.s b/data/maps/events/AbandonedShip_Corridors_1F.inc
index 8a42d3204..8a42d3204 100644
--- a/data/maps/events/AbandonedShip_Corridors_1F.s
+++ b/data/maps/events/AbandonedShip_Corridors_1F.inc
diff --git a/data/maps/events/AbandonedShip_Corridors_B1F.s b/data/maps/events/AbandonedShip_Corridors_B1F.inc
index 7b50cf2fe..7b50cf2fe 100644
--- a/data/maps/events/AbandonedShip_Corridors_B1F.s
+++ b/data/maps/events/AbandonedShip_Corridors_B1F.inc
diff --git a/data/maps/events/AbandonedShip_Deck.s b/data/maps/events/AbandonedShip_Deck.inc
index 6988f8568..6988f8568 100644
--- a/data/maps/events/AbandonedShip_Deck.s
+++ b/data/maps/events/AbandonedShip_Deck.inc
diff --git a/data/maps/events/AbandonedShip_HiddenFloorCorridors.s b/data/maps/events/AbandonedShip_HiddenFloorCorridors.inc
index e5f17046d..e5f17046d 100644
--- a/data/maps/events/AbandonedShip_HiddenFloorCorridors.s
+++ b/data/maps/events/AbandonedShip_HiddenFloorCorridors.inc
diff --git a/data/maps/events/AbandonedShip_HiddenFloorRooms.s b/data/maps/events/AbandonedShip_HiddenFloorRooms.inc
index e110e051d..e110e051d 100644
--- a/data/maps/events/AbandonedShip_HiddenFloorRooms.s
+++ b/data/maps/events/AbandonedShip_HiddenFloorRooms.inc
diff --git a/data/maps/events/AbandonedShip_Room_B1F.s b/data/maps/events/AbandonedShip_Room_B1F.inc
index 9213f3e98..9213f3e98 100644
--- a/data/maps/events/AbandonedShip_Room_B1F.s
+++ b/data/maps/events/AbandonedShip_Room_B1F.inc
diff --git a/data/maps/events/AbandonedShip_Rooms2_1F.s b/data/maps/events/AbandonedShip_Rooms2_1F.inc
index 842f972fa..842f972fa 100644
--- a/data/maps/events/AbandonedShip_Rooms2_1F.s
+++ b/data/maps/events/AbandonedShip_Rooms2_1F.inc
diff --git a/data/maps/events/AbandonedShip_Rooms2_B1F.s b/data/maps/events/AbandonedShip_Rooms2_B1F.inc
index 2ad55a5e9..2ad55a5e9 100644
--- a/data/maps/events/AbandonedShip_Rooms2_B1F.s
+++ b/data/maps/events/AbandonedShip_Rooms2_B1F.inc
diff --git a/data/maps/events/AbandonedShip_Rooms_1F.s b/data/maps/events/AbandonedShip_Rooms_1F.inc
index 90578df28..90578df28 100644
--- a/data/maps/events/AbandonedShip_Rooms_1F.s
+++ b/data/maps/events/AbandonedShip_Rooms_1F.inc
diff --git a/data/maps/events/AbandonedShip_Rooms_B1F.s b/data/maps/events/AbandonedShip_Rooms_B1F.inc
index 692883bec..692883bec 100644
--- a/data/maps/events/AbandonedShip_Rooms_B1F.s
+++ b/data/maps/events/AbandonedShip_Rooms_B1F.inc
diff --git a/data/maps/events/AbandonedShip_Underwater1.s b/data/maps/events/AbandonedShip_Underwater1.inc
index 9a4634860..9a4634860 100644
--- a/data/maps/events/AbandonedShip_Underwater1.s
+++ b/data/maps/events/AbandonedShip_Underwater1.inc
diff --git a/data/maps/events/AbandonedShip_Underwater2.s b/data/maps/events/AbandonedShip_Underwater2.inc
index a3a181773..a3a181773 100644
--- a/data/maps/events/AbandonedShip_Underwater2.s
+++ b/data/maps/events/AbandonedShip_Underwater2.inc
diff --git a/data/maps/events/AncientTomb.s b/data/maps/events/AncientTomb.inc
index 1f527288b..1f527288b 100644
--- a/data/maps/events/AncientTomb.s
+++ b/data/maps/events/AncientTomb.inc
diff --git a/data/maps/events/AquaHideout_1F.s b/data/maps/events/AquaHideout_1F.inc
index 5c59bbf12..5c59bbf12 100644
--- a/data/maps/events/AquaHideout_1F.s
+++ b/data/maps/events/AquaHideout_1F.inc
diff --git a/data/maps/events/AquaHideout_B1F.s b/data/maps/events/AquaHideout_B1F.inc
index 742761833..742761833 100644
--- a/data/maps/events/AquaHideout_B1F.s
+++ b/data/maps/events/AquaHideout_B1F.inc
diff --git a/data/maps/events/AquaHideout_B2F.s b/data/maps/events/AquaHideout_B2F.inc
index d2cce8ab9..d2cce8ab9 100644
--- a/data/maps/events/AquaHideout_B2F.s
+++ b/data/maps/events/AquaHideout_B2F.inc
diff --git a/data/maps/events/BattleTower_BattleRoom.s b/data/maps/events/BattleTower_BattleRoom.inc
index dda5621b6..dda5621b6 100644
--- a/data/maps/events/BattleTower_BattleRoom.s
+++ b/data/maps/events/BattleTower_BattleRoom.inc
diff --git a/data/maps/events/BattleTower_Corridor.s b/data/maps/events/BattleTower_Corridor.inc
index 33b5a779c..33b5a779c 100644
--- a/data/maps/events/BattleTower_Corridor.s
+++ b/data/maps/events/BattleTower_Corridor.inc
diff --git a/data/maps/events/BattleTower_Elevator.s b/data/maps/events/BattleTower_Elevator.inc
index 7594028b6..7594028b6 100644
--- a/data/maps/events/BattleTower_Elevator.s
+++ b/data/maps/events/BattleTower_Elevator.inc
diff --git a/data/maps/events/BattleTower_Lobby.s b/data/maps/events/BattleTower_Lobby.inc
index 6d4e15f7a..6d4e15f7a 100644
--- a/data/maps/events/BattleTower_Lobby.s
+++ b/data/maps/events/BattleTower_Lobby.inc
diff --git a/data/maps/events/BattleTower_Outside.s b/data/maps/events/BattleTower_Outside.inc
index 04085c346..04085c346 100644
--- a/data/maps/events/BattleTower_Outside.s
+++ b/data/maps/events/BattleTower_Outside.inc
diff --git a/data/maps/events/CaveOfOrigin_1F.s b/data/maps/events/CaveOfOrigin_1F.inc
index 43b0b615d..43b0b615d 100644
--- a/data/maps/events/CaveOfOrigin_1F.s
+++ b/data/maps/events/CaveOfOrigin_1F.inc
diff --git a/data/maps/events/CaveOfOrigin_B1F.s b/data/maps/events/CaveOfOrigin_B1F.inc
index 0a3df0655..0a3df0655 100644
--- a/data/maps/events/CaveOfOrigin_B1F.s
+++ b/data/maps/events/CaveOfOrigin_B1F.inc
diff --git a/data/maps/events/CaveOfOrigin_B2F.s b/data/maps/events/CaveOfOrigin_B2F.inc
index 9c04629f0..9c04629f0 100644
--- a/data/maps/events/CaveOfOrigin_B2F.s
+++ b/data/maps/events/CaveOfOrigin_B2F.inc
diff --git a/data/maps/events/CaveOfOrigin_B3F.s b/data/maps/events/CaveOfOrigin_B3F.inc
index 0d0b44eea..0d0b44eea 100644
--- a/data/maps/events/CaveOfOrigin_B3F.s
+++ b/data/maps/events/CaveOfOrigin_B3F.inc
diff --git a/data/maps/events/CaveOfOrigin_B4F.s b/data/maps/events/CaveOfOrigin_B4F.inc
index 3b4beb038..3b4beb038 100644
--- a/data/maps/events/CaveOfOrigin_B4F.s
+++ b/data/maps/events/CaveOfOrigin_B4F.inc
diff --git a/data/maps/events/CaveOfOrigin_Entrance.s b/data/maps/events/CaveOfOrigin_Entrance.inc
index 4e61e3d82..4e61e3d82 100644
--- a/data/maps/events/CaveOfOrigin_Entrance.s
+++ b/data/maps/events/CaveOfOrigin_Entrance.inc
diff --git a/data/maps/events/DesertRuins.s b/data/maps/events/DesertRuins.inc
index 849c7f729..849c7f729 100644
--- a/data/maps/events/DesertRuins.s
+++ b/data/maps/events/DesertRuins.inc
diff --git a/data/maps/events/DewfordTown.s b/data/maps/events/DewfordTown.inc
index 8a5fc1fed..8a5fc1fed 100644
--- a/data/maps/events/DewfordTown.s
+++ b/data/maps/events/DewfordTown.inc
diff --git a/data/maps/events/DewfordTown_Gym.s b/data/maps/events/DewfordTown_Gym.inc
index 2e36395c1..2e36395c1 100644
--- a/data/maps/events/DewfordTown_Gym.s
+++ b/data/maps/events/DewfordTown_Gym.inc
diff --git a/data/maps/events/DewfordTown_Hall.s b/data/maps/events/DewfordTown_Hall.inc
index d58fbfbd4..d58fbfbd4 100644
--- a/data/maps/events/DewfordTown_Hall.s
+++ b/data/maps/events/DewfordTown_Hall.inc
diff --git a/data/maps/events/DewfordTown_House1.s b/data/maps/events/DewfordTown_House1.inc
index 9bed6ac7a..9bed6ac7a 100644
--- a/data/maps/events/DewfordTown_House1.s
+++ b/data/maps/events/DewfordTown_House1.inc
diff --git a/data/maps/events/DewfordTown_House2.s b/data/maps/events/DewfordTown_House2.inc
index eae9ff28e..eae9ff28e 100644
--- a/data/maps/events/DewfordTown_House2.s
+++ b/data/maps/events/DewfordTown_House2.inc
diff --git a/data/maps/events/DewfordTown_PokemonCenter_1F.s b/data/maps/events/DewfordTown_PokemonCenter_1F.inc
index a870483b3..a870483b3 100644
--- a/data/maps/events/DewfordTown_PokemonCenter_1F.s
+++ b/data/maps/events/DewfordTown_PokemonCenter_1F.inc
diff --git a/data/maps/events/DewfordTown_PokemonCenter_2F.s b/data/maps/events/DewfordTown_PokemonCenter_2F.inc
index 0d17672de..0d17672de 100644
--- a/data/maps/events/DewfordTown_PokemonCenter_2F.s
+++ b/data/maps/events/DewfordTown_PokemonCenter_2F.inc
diff --git a/data/maps/events/DoubleBattleColosseum.s b/data/maps/events/DoubleBattleColosseum.inc
index f6142c4b4..f6142c4b4 100644
--- a/data/maps/events/DoubleBattleColosseum.s
+++ b/data/maps/events/DoubleBattleColosseum.inc
diff --git a/data/maps/events/EverGrandeCity.s b/data/maps/events/EverGrandeCity.inc
index 41fd48f06..41fd48f06 100644
--- a/data/maps/events/EverGrandeCity.s
+++ b/data/maps/events/EverGrandeCity.inc
diff --git a/data/maps/events/EverGrandeCity_ChampionsRoom.s b/data/maps/events/EverGrandeCity_ChampionsRoom.inc
index 5d97fe89c..5d97fe89c 100644
--- a/data/maps/events/EverGrandeCity_ChampionsRoom.s
+++ b/data/maps/events/EverGrandeCity_ChampionsRoom.inc
diff --git a/data/maps/events/EverGrandeCity_Corridor1.s b/data/maps/events/EverGrandeCity_Corridor1.inc
index df9176426..df9176426 100644
--- a/data/maps/events/EverGrandeCity_Corridor1.s
+++ b/data/maps/events/EverGrandeCity_Corridor1.inc
diff --git a/data/maps/events/EverGrandeCity_Corridor2.s b/data/maps/events/EverGrandeCity_Corridor2.inc
index 35dfa181c..35dfa181c 100644
--- a/data/maps/events/EverGrandeCity_Corridor2.s
+++ b/data/maps/events/EverGrandeCity_Corridor2.inc
diff --git a/data/maps/events/EverGrandeCity_Corridor3.s b/data/maps/events/EverGrandeCity_Corridor3.inc
index daf135a5f..daf135a5f 100644
--- a/data/maps/events/EverGrandeCity_Corridor3.s
+++ b/data/maps/events/EverGrandeCity_Corridor3.inc
diff --git a/data/maps/events/EverGrandeCity_Corridor4.s b/data/maps/events/EverGrandeCity_Corridor4.inc
index 55757ea4c..55757ea4c 100644
--- a/data/maps/events/EverGrandeCity_Corridor4.s
+++ b/data/maps/events/EverGrandeCity_Corridor4.inc
diff --git a/data/maps/events/EverGrandeCity_Corridor5.s b/data/maps/events/EverGrandeCity_Corridor5.inc
index bd07dd7e0..bd07dd7e0 100644
--- a/data/maps/events/EverGrandeCity_Corridor5.s
+++ b/data/maps/events/EverGrandeCity_Corridor5.inc
diff --git a/data/maps/events/EverGrandeCity_DrakesRoom.s b/data/maps/events/EverGrandeCity_DrakesRoom.inc
index a925ffed8..a925ffed8 100644
--- a/data/maps/events/EverGrandeCity_DrakesRoom.s
+++ b/data/maps/events/EverGrandeCity_DrakesRoom.inc
diff --git a/data/maps/events/EverGrandeCity_GlaciasRoom.s b/data/maps/events/EverGrandeCity_GlaciasRoom.inc
index 806cfe7e1..806cfe7e1 100644
--- a/data/maps/events/EverGrandeCity_GlaciasRoom.s
+++ b/data/maps/events/EverGrandeCity_GlaciasRoom.inc
diff --git a/data/maps/events/EverGrandeCity_HallOfFame.s b/data/maps/events/EverGrandeCity_HallOfFame.inc
index 1860ee397..1860ee397 100644
--- a/data/maps/events/EverGrandeCity_HallOfFame.s
+++ b/data/maps/events/EverGrandeCity_HallOfFame.inc
diff --git a/data/maps/events/EverGrandeCity_PhoebesRoom.s b/data/maps/events/EverGrandeCity_PhoebesRoom.inc
index aab61bcf4..aab61bcf4 100644
--- a/data/maps/events/EverGrandeCity_PhoebesRoom.s
+++ b/data/maps/events/EverGrandeCity_PhoebesRoom.inc
diff --git a/data/maps/events/EverGrandeCity_PokemonCenter_1F.s b/data/maps/events/EverGrandeCity_PokemonCenter_1F.inc
index 25aee1300..25aee1300 100644
--- a/data/maps/events/EverGrandeCity_PokemonCenter_1F.s
+++ b/data/maps/events/EverGrandeCity_PokemonCenter_1F.inc
diff --git a/data/maps/events/EverGrandeCity_PokemonCenter_2F.s b/data/maps/events/EverGrandeCity_PokemonCenter_2F.inc
index 2bc94cdcc..2bc94cdcc 100644
--- a/data/maps/events/EverGrandeCity_PokemonCenter_2F.s
+++ b/data/maps/events/EverGrandeCity_PokemonCenter_2F.inc
diff --git a/data/maps/events/EverGrandeCity_PokemonLeague.s b/data/maps/events/EverGrandeCity_PokemonLeague.inc
index d60761727..d60761727 100644
--- a/data/maps/events/EverGrandeCity_PokemonLeague.s
+++ b/data/maps/events/EverGrandeCity_PokemonLeague.inc
diff --git a/data/maps/events/EverGrandeCity_SidneysRoom.s b/data/maps/events/EverGrandeCity_SidneysRoom.inc
index ff370d4ef..ff370d4ef 100644
--- a/data/maps/events/EverGrandeCity_SidneysRoom.s
+++ b/data/maps/events/EverGrandeCity_SidneysRoom.inc
diff --git a/data/maps/events/FallarborTown.s b/data/maps/events/FallarborTown.inc
index 2d69688e7..2d69688e7 100644
--- a/data/maps/events/FallarborTown.s
+++ b/data/maps/events/FallarborTown.inc
diff --git a/data/maps/events/FallarborTown_ContestHall.s b/data/maps/events/FallarborTown_ContestHall.inc
index 93b43eccc..93b43eccc 100644
--- a/data/maps/events/FallarborTown_ContestHall.s
+++ b/data/maps/events/FallarborTown_ContestHall.inc
diff --git a/data/maps/events/FallarborTown_ContestLobby.s b/data/maps/events/FallarborTown_ContestLobby.inc
index af7ca5ed1..af7ca5ed1 100644
--- a/data/maps/events/FallarborTown_ContestLobby.s
+++ b/data/maps/events/FallarborTown_ContestLobby.inc
diff --git a/data/maps/events/FallarborTown_House1.s b/data/maps/events/FallarborTown_House1.inc
index d4cd3e0c9..d4cd3e0c9 100644
--- a/data/maps/events/FallarborTown_House1.s
+++ b/data/maps/events/FallarborTown_House1.inc
diff --git a/data/maps/events/FallarborTown_House2.s b/data/maps/events/FallarborTown_House2.inc
index 0b1c64162..0b1c64162 100644
--- a/data/maps/events/FallarborTown_House2.s
+++ b/data/maps/events/FallarborTown_House2.inc
diff --git a/data/maps/events/FallarborTown_Mart.s b/data/maps/events/FallarborTown_Mart.inc
index 584b70447..584b70447 100644
--- a/data/maps/events/FallarborTown_Mart.s
+++ b/data/maps/events/FallarborTown_Mart.inc
diff --git a/data/maps/events/FallarborTown_PokemonCenter_1F.s b/data/maps/events/FallarborTown_PokemonCenter_1F.inc
index 16f90af9d..16f90af9d 100644
--- a/data/maps/events/FallarborTown_PokemonCenter_1F.s
+++ b/data/maps/events/FallarborTown_PokemonCenter_1F.inc
diff --git a/data/maps/events/FallarborTown_PokemonCenter_2F.s b/data/maps/events/FallarborTown_PokemonCenter_2F.inc
index 05ea78f75..05ea78f75 100644
--- a/data/maps/events/FallarborTown_PokemonCenter_2F.s
+++ b/data/maps/events/FallarborTown_PokemonCenter_2F.inc
diff --git a/data/maps/events/FieryPath.s b/data/maps/events/FieryPath.inc
index 01b7b3efe..01b7b3efe 100644
--- a/data/maps/events/FieryPath.s
+++ b/data/maps/events/FieryPath.inc
diff --git a/data/maps/events/FortreeCity.s b/data/maps/events/FortreeCity.inc
index 437852d25..437852d25 100644
--- a/data/maps/events/FortreeCity.s
+++ b/data/maps/events/FortreeCity.inc
diff --git a/data/maps/events/FortreeCity_DecorationShop.s b/data/maps/events/FortreeCity_DecorationShop.inc
index cc9894b5c..cc9894b5c 100644
--- a/data/maps/events/FortreeCity_DecorationShop.s
+++ b/data/maps/events/FortreeCity_DecorationShop.inc
diff --git a/data/maps/events/FortreeCity_Gym.s b/data/maps/events/FortreeCity_Gym.inc
index ad983f81b..ad983f81b 100644
--- a/data/maps/events/FortreeCity_Gym.s
+++ b/data/maps/events/FortreeCity_Gym.inc
diff --git a/data/maps/events/FortreeCity_House1.s b/data/maps/events/FortreeCity_House1.inc
index ff383b464..ff383b464 100644
--- a/data/maps/events/FortreeCity_House1.s
+++ b/data/maps/events/FortreeCity_House1.inc
diff --git a/data/maps/events/FortreeCity_House2.s b/data/maps/events/FortreeCity_House2.inc
index 3b0943b2e..3b0943b2e 100644
--- a/data/maps/events/FortreeCity_House2.s
+++ b/data/maps/events/FortreeCity_House2.inc
diff --git a/data/maps/events/FortreeCity_House3.s b/data/maps/events/FortreeCity_House3.inc
index b0b5a7412..b0b5a7412 100644
--- a/data/maps/events/FortreeCity_House3.s
+++ b/data/maps/events/FortreeCity_House3.inc
diff --git a/data/maps/events/FortreeCity_House4.s b/data/maps/events/FortreeCity_House4.inc
index 8b85660c7..8b85660c7 100644
--- a/data/maps/events/FortreeCity_House4.s
+++ b/data/maps/events/FortreeCity_House4.inc
diff --git a/data/maps/events/FortreeCity_House5.s b/data/maps/events/FortreeCity_House5.inc
index ffaa59e69..ffaa59e69 100644
--- a/data/maps/events/FortreeCity_House5.s
+++ b/data/maps/events/FortreeCity_House5.inc
diff --git a/data/maps/events/FortreeCity_Mart.s b/data/maps/events/FortreeCity_Mart.inc
index 5d1996fc2..5d1996fc2 100644
--- a/data/maps/events/FortreeCity_Mart.s
+++ b/data/maps/events/FortreeCity_Mart.inc
diff --git a/data/maps/events/FortreeCity_PokemonCenter_1F.s b/data/maps/events/FortreeCity_PokemonCenter_1F.inc
index bd7877e24..bd7877e24 100644
--- a/data/maps/events/FortreeCity_PokemonCenter_1F.s
+++ b/data/maps/events/FortreeCity_PokemonCenter_1F.inc
diff --git a/data/maps/events/FortreeCity_PokemonCenter_2F.s b/data/maps/events/FortreeCity_PokemonCenter_2F.inc
index b6a10428c..b6a10428c 100644
--- a/data/maps/events/FortreeCity_PokemonCenter_2F.s
+++ b/data/maps/events/FortreeCity_PokemonCenter_2F.inc
diff --git a/data/maps/events/GraniteCave_1F.s b/data/maps/events/GraniteCave_1F.inc
index 760c1b0e9..760c1b0e9 100644
--- a/data/maps/events/GraniteCave_1F.s
+++ b/data/maps/events/GraniteCave_1F.inc
diff --git a/data/maps/events/GraniteCave_B1F.s b/data/maps/events/GraniteCave_B1F.inc
index 2bfd8257d..2bfd8257d 100644
--- a/data/maps/events/GraniteCave_B1F.s
+++ b/data/maps/events/GraniteCave_B1F.inc
diff --git a/data/maps/events/GraniteCave_B2F.s b/data/maps/events/GraniteCave_B2F.inc
index 49c0bace0..49c0bace0 100644
--- a/data/maps/events/GraniteCave_B2F.s
+++ b/data/maps/events/GraniteCave_B2F.inc
diff --git a/data/maps/events/GraniteCave_StevensRoom.s b/data/maps/events/GraniteCave_StevensRoom.inc
index 2e4d9cd30..2e4d9cd30 100644
--- a/data/maps/events/GraniteCave_StevensRoom.s
+++ b/data/maps/events/GraniteCave_StevensRoom.inc
diff --git a/data/maps/events/InsideOfTruck.s b/data/maps/events/InsideOfTruck.inc
index faf7a5274..faf7a5274 100644
--- a/data/maps/events/InsideOfTruck.s
+++ b/data/maps/events/InsideOfTruck.inc
diff --git a/data/maps/events/IslandCave.s b/data/maps/events/IslandCave.inc
index a3fbc959a..a3fbc959a 100644
--- a/data/maps/events/IslandCave.s
+++ b/data/maps/events/IslandCave.inc
diff --git a/data/maps/events/JaggedPass.s b/data/maps/events/JaggedPass.inc
index 245871e9b..245871e9b 100644
--- a/data/maps/events/JaggedPass.s
+++ b/data/maps/events/JaggedPass.inc
diff --git a/data/maps/events/LavaridgeTown.s b/data/maps/events/LavaridgeTown.inc
index 47dd5ab4a..47dd5ab4a 100644
--- a/data/maps/events/LavaridgeTown.s
+++ b/data/maps/events/LavaridgeTown.inc
diff --git a/data/maps/events/LavaridgeTown_Gym_1F.s b/data/maps/events/LavaridgeTown_Gym_1F.inc
index add699f5d..add699f5d 100644
--- a/data/maps/events/LavaridgeTown_Gym_1F.s
+++ b/data/maps/events/LavaridgeTown_Gym_1F.inc
diff --git a/data/maps/events/LavaridgeTown_Gym_B1F.s b/data/maps/events/LavaridgeTown_Gym_B1F.inc
index 4cff944bc..4cff944bc 100644
--- a/data/maps/events/LavaridgeTown_Gym_B1F.s
+++ b/data/maps/events/LavaridgeTown_Gym_B1F.inc
diff --git a/data/maps/events/LavaridgeTown_HerbShop.s b/data/maps/events/LavaridgeTown_HerbShop.inc
index cb04b19d4..cb04b19d4 100644
--- a/data/maps/events/LavaridgeTown_HerbShop.s
+++ b/data/maps/events/LavaridgeTown_HerbShop.inc
diff --git a/data/maps/events/LavaridgeTown_House.s b/data/maps/events/LavaridgeTown_House.inc
index feb226cd0..feb226cd0 100644
--- a/data/maps/events/LavaridgeTown_House.s
+++ b/data/maps/events/LavaridgeTown_House.inc
diff --git a/data/maps/events/LavaridgeTown_Mart.s b/data/maps/events/LavaridgeTown_Mart.inc
index 8a07501f7..8a07501f7 100644
--- a/data/maps/events/LavaridgeTown_Mart.s
+++ b/data/maps/events/LavaridgeTown_Mart.inc
diff --git a/data/maps/events/LavaridgeTown_PokemonCenter_1F.s b/data/maps/events/LavaridgeTown_PokemonCenter_1F.inc
index dac3d4a72..dac3d4a72 100644
--- a/data/maps/events/LavaridgeTown_PokemonCenter_1F.s
+++ b/data/maps/events/LavaridgeTown_PokemonCenter_1F.inc
diff --git a/data/maps/events/LavaridgeTown_PokemonCenter_2F.s b/data/maps/events/LavaridgeTown_PokemonCenter_2F.inc
index 3ef0517b1..3ef0517b1 100644
--- a/data/maps/events/LavaridgeTown_PokemonCenter_2F.s
+++ b/data/maps/events/LavaridgeTown_PokemonCenter_2F.inc
diff --git a/data/maps/events/LilycoveCity.s b/data/maps/events/LilycoveCity.inc
index a356e2b9e..a356e2b9e 100644
--- a/data/maps/events/LilycoveCity.s
+++ b/data/maps/events/LilycoveCity.inc
diff --git a/data/maps/events/LilycoveCity_ContestHall.s b/data/maps/events/LilycoveCity_ContestHall.inc
index 4246afd33..4246afd33 100644
--- a/data/maps/events/LilycoveCity_ContestHall.s
+++ b/data/maps/events/LilycoveCity_ContestHall.inc
diff --git a/data/maps/events/LilycoveCity_ContestLobby.s b/data/maps/events/LilycoveCity_ContestLobby.inc
index 2e41e6e49..2e41e6e49 100644
--- a/data/maps/events/LilycoveCity_ContestLobby.s
+++ b/data/maps/events/LilycoveCity_ContestLobby.inc
diff --git a/data/maps/events/LilycoveCity_CoveLilyMotel_1F.s b/data/maps/events/LilycoveCity_CoveLilyMotel_1F.inc
index 31bd1c94f..31bd1c94f 100644
--- a/data/maps/events/LilycoveCity_CoveLilyMotel_1F.s
+++ b/data/maps/events/LilycoveCity_CoveLilyMotel_1F.inc
diff --git a/data/maps/events/LilycoveCity_CoveLilyMotel_2F.s b/data/maps/events/LilycoveCity_CoveLilyMotel_2F.inc
index 2117774f0..2117774f0 100644
--- a/data/maps/events/LilycoveCity_CoveLilyMotel_2F.s
+++ b/data/maps/events/LilycoveCity_CoveLilyMotel_2F.inc
diff --git a/data/maps/events/LilycoveCity_DepartmentStoreElevator.s b/data/maps/events/LilycoveCity_DepartmentStoreElevator.inc
index 896a96649..896a96649 100644
--- a/data/maps/events/LilycoveCity_DepartmentStoreElevator.s
+++ b/data/maps/events/LilycoveCity_DepartmentStoreElevator.inc
diff --git a/data/maps/events/LilycoveCity_DepartmentStoreRooftop.s b/data/maps/events/LilycoveCity_DepartmentStoreRooftop.inc
index ac72a87c1..ac72a87c1 100644
--- a/data/maps/events/LilycoveCity_DepartmentStoreRooftop.s
+++ b/data/maps/events/LilycoveCity_DepartmentStoreRooftop.inc
diff --git a/data/maps/events/LilycoveCity_DepartmentStore_1F.s b/data/maps/events/LilycoveCity_DepartmentStore_1F.inc
index 28bc93a75..28bc93a75 100644
--- a/data/maps/events/LilycoveCity_DepartmentStore_1F.s
+++ b/data/maps/events/LilycoveCity_DepartmentStore_1F.inc
diff --git a/data/maps/events/LilycoveCity_DepartmentStore_2F.s b/data/maps/events/LilycoveCity_DepartmentStore_2F.inc
index fc8872103..fc8872103 100644
--- a/data/maps/events/LilycoveCity_DepartmentStore_2F.s
+++ b/data/maps/events/LilycoveCity_DepartmentStore_2F.inc
diff --git a/data/maps/events/LilycoveCity_DepartmentStore_3F.s b/data/maps/events/LilycoveCity_DepartmentStore_3F.inc
index bf3d1647f..bf3d1647f 100644
--- a/data/maps/events/LilycoveCity_DepartmentStore_3F.s
+++ b/data/maps/events/LilycoveCity_DepartmentStore_3F.inc
diff --git a/data/maps/events/LilycoveCity_DepartmentStore_4F.s b/data/maps/events/LilycoveCity_DepartmentStore_4F.inc
index 007cc8bf4..007cc8bf4 100644
--- a/data/maps/events/LilycoveCity_DepartmentStore_4F.s
+++ b/data/maps/events/LilycoveCity_DepartmentStore_4F.inc
diff --git a/data/maps/events/LilycoveCity_DepartmentStore_5F.s b/data/maps/events/LilycoveCity_DepartmentStore_5F.inc
index 85cf2431f..85cf2431f 100644
--- a/data/maps/events/LilycoveCity_DepartmentStore_5F.s
+++ b/data/maps/events/LilycoveCity_DepartmentStore_5F.inc
diff --git a/data/maps/events/LilycoveCity_EmptyMap.s b/data/maps/events/LilycoveCity_EmptyMap.inc
index 906453882..906453882 100644
--- a/data/maps/events/LilycoveCity_EmptyMap.s
+++ b/data/maps/events/LilycoveCity_EmptyMap.inc
diff --git a/data/maps/events/LilycoveCity_Harbor.s b/data/maps/events/LilycoveCity_Harbor.inc
index 5682ada0e..5682ada0e 100644
--- a/data/maps/events/LilycoveCity_Harbor.s
+++ b/data/maps/events/LilycoveCity_Harbor.inc
diff --git a/data/maps/events/LilycoveCity_House1.s b/data/maps/events/LilycoveCity_House1.inc
index cdae83007..cdae83007 100644
--- a/data/maps/events/LilycoveCity_House1.s
+++ b/data/maps/events/LilycoveCity_House1.inc
diff --git a/data/maps/events/LilycoveCity_House2.s b/data/maps/events/LilycoveCity_House2.inc
index 50b44e253..50b44e253 100644
--- a/data/maps/events/LilycoveCity_House2.s
+++ b/data/maps/events/LilycoveCity_House2.inc
diff --git a/data/maps/events/LilycoveCity_House3.s b/data/maps/events/LilycoveCity_House3.inc
index 43a1068f1..43a1068f1 100644
--- a/data/maps/events/LilycoveCity_House3.s
+++ b/data/maps/events/LilycoveCity_House3.inc
diff --git a/data/maps/events/LilycoveCity_House4.s b/data/maps/events/LilycoveCity_House4.inc
index 88522497d..88522497d 100644
--- a/data/maps/events/LilycoveCity_House4.s
+++ b/data/maps/events/LilycoveCity_House4.inc
diff --git a/data/maps/events/LilycoveCity_LilycoveMuseum_1F.s b/data/maps/events/LilycoveCity_LilycoveMuseum_1F.inc
index 983736d73..983736d73 100644
--- a/data/maps/events/LilycoveCity_LilycoveMuseum_1F.s
+++ b/data/maps/events/LilycoveCity_LilycoveMuseum_1F.inc
diff --git a/data/maps/events/LilycoveCity_LilycoveMuseum_2F.s b/data/maps/events/LilycoveCity_LilycoveMuseum_2F.inc
index 98c1aa9cd..98c1aa9cd 100644
--- a/data/maps/events/LilycoveCity_LilycoveMuseum_2F.s
+++ b/data/maps/events/LilycoveCity_LilycoveMuseum_2F.inc
diff --git a/data/maps/events/LilycoveCity_MoveDeletersHouse.s b/data/maps/events/LilycoveCity_MoveDeletersHouse.inc
index 563052712..563052712 100644
--- a/data/maps/events/LilycoveCity_MoveDeletersHouse.s
+++ b/data/maps/events/LilycoveCity_MoveDeletersHouse.inc
diff --git a/data/maps/events/LilycoveCity_PokemonCenter_1F.s b/data/maps/events/LilycoveCity_PokemonCenter_1F.inc
index c33a07b6a..c33a07b6a 100644
--- a/data/maps/events/LilycoveCity_PokemonCenter_1F.s
+++ b/data/maps/events/LilycoveCity_PokemonCenter_1F.inc
diff --git a/data/maps/events/LilycoveCity_PokemonCenter_2F.s b/data/maps/events/LilycoveCity_PokemonCenter_2F.inc
index 736ef1151..736ef1151 100644
--- a/data/maps/events/LilycoveCity_PokemonCenter_2F.s
+++ b/data/maps/events/LilycoveCity_PokemonCenter_2F.inc
diff --git a/data/maps/events/LilycoveCity_PokemonTrainerFanClub.s b/data/maps/events/LilycoveCity_PokemonTrainerFanClub.inc
index 38007b34f..38007b34f 100644
--- a/data/maps/events/LilycoveCity_PokemonTrainerFanClub.s
+++ b/data/maps/events/LilycoveCity_PokemonTrainerFanClub.inc
diff --git a/data/maps/events/LilycoveCity_UnusedMart.s b/data/maps/events/LilycoveCity_UnusedMart.inc
index 1eefb6a8f..1eefb6a8f 100644
--- a/data/maps/events/LilycoveCity_UnusedMart.s
+++ b/data/maps/events/LilycoveCity_UnusedMart.inc
diff --git a/data/maps/events/LinkContestRoom1.s b/data/maps/events/LinkContestRoom1.inc
index 6c1e09430..6c1e09430 100644
--- a/data/maps/events/LinkContestRoom1.s
+++ b/data/maps/events/LinkContestRoom1.inc
diff --git a/data/maps/events/LinkContestRoom2.s b/data/maps/events/LinkContestRoom2.inc
index 562a96523..562a96523 100644
--- a/data/maps/events/LinkContestRoom2.s
+++ b/data/maps/events/LinkContestRoom2.inc
diff --git a/data/maps/events/LinkContestRoom3.s b/data/maps/events/LinkContestRoom3.inc
index 8c93f28c9..8c93f28c9 100644
--- a/data/maps/events/LinkContestRoom3.s
+++ b/data/maps/events/LinkContestRoom3.inc
diff --git a/data/maps/events/LinkContestRoom4.s b/data/maps/events/LinkContestRoom4.inc
index a5e455811..a5e455811 100644
--- a/data/maps/events/LinkContestRoom4.s
+++ b/data/maps/events/LinkContestRoom4.inc
diff --git a/data/maps/events/LinkContestRoom5.s b/data/maps/events/LinkContestRoom5.inc
index f0f8fa508..f0f8fa508 100644
--- a/data/maps/events/LinkContestRoom5.s
+++ b/data/maps/events/LinkContestRoom5.inc
diff --git a/data/maps/events/LinkContestRoom6.s b/data/maps/events/LinkContestRoom6.inc
index a8fd4962f..a8fd4962f 100644
--- a/data/maps/events/LinkContestRoom6.s
+++ b/data/maps/events/LinkContestRoom6.inc
diff --git a/data/maps/events/LittlerootTown.s b/data/maps/events/LittlerootTown.inc
index 62a564821..62a564821 100644
--- a/data/maps/events/LittlerootTown.s
+++ b/data/maps/events/LittlerootTown.inc
diff --git a/data/maps/events/LittlerootTown_BrendansHouse_1F.s b/data/maps/events/LittlerootTown_BrendansHouse_1F.inc
index f60a59018..f60a59018 100644
--- a/data/maps/events/LittlerootTown_BrendansHouse_1F.s
+++ b/data/maps/events/LittlerootTown_BrendansHouse_1F.inc
diff --git a/data/maps/events/LittlerootTown_BrendansHouse_2F.s b/data/maps/events/LittlerootTown_BrendansHouse_2F.inc
index a28a2d0d1..a28a2d0d1 100644
--- a/data/maps/events/LittlerootTown_BrendansHouse_2F.s
+++ b/data/maps/events/LittlerootTown_BrendansHouse_2F.inc
diff --git a/data/maps/events/LittlerootTown_MaysHouse_1F.s b/data/maps/events/LittlerootTown_MaysHouse_1F.inc
index d5874624b..d5874624b 100644
--- a/data/maps/events/LittlerootTown_MaysHouse_1F.s
+++ b/data/maps/events/LittlerootTown_MaysHouse_1F.inc
diff --git a/data/maps/events/LittlerootTown_MaysHouse_2F.s b/data/maps/events/LittlerootTown_MaysHouse_2F.inc
index 3a3656287..3a3656287 100644
--- a/data/maps/events/LittlerootTown_MaysHouse_2F.s
+++ b/data/maps/events/LittlerootTown_MaysHouse_2F.inc
diff --git a/data/maps/events/LittlerootTown_ProfessorBirchsLab.s b/data/maps/events/LittlerootTown_ProfessorBirchsLab.inc
index cbc1e4154..cbc1e4154 100644
--- a/data/maps/events/LittlerootTown_ProfessorBirchsLab.s
+++ b/data/maps/events/LittlerootTown_ProfessorBirchsLab.inc
diff --git a/data/maps/events/MagmaHideout_1F.s b/data/maps/events/MagmaHideout_1F.inc
index b90e53ff8..b90e53ff8 100644
--- a/data/maps/events/MagmaHideout_1F.s
+++ b/data/maps/events/MagmaHideout_1F.inc
diff --git a/data/maps/events/MagmaHideout_B1F.s b/data/maps/events/MagmaHideout_B1F.inc
index c9f1101cc..c9f1101cc 100644
--- a/data/maps/events/MagmaHideout_B1F.s
+++ b/data/maps/events/MagmaHideout_B1F.inc
diff --git a/data/maps/events/MagmaHideout_B2F.s b/data/maps/events/MagmaHideout_B2F.inc
index 258592732..258592732 100644
--- a/data/maps/events/MagmaHideout_B2F.s
+++ b/data/maps/events/MagmaHideout_B2F.inc
diff --git a/data/maps/events/MauvilleCity.s b/data/maps/events/MauvilleCity.inc
index 4d228a92c..4d228a92c 100644
--- a/data/maps/events/MauvilleCity.s
+++ b/data/maps/events/MauvilleCity.inc
diff --git a/data/maps/events/MauvilleCity_BikeShop.s b/data/maps/events/MauvilleCity_BikeShop.inc
index 6c064a1f7..6c064a1f7 100644
--- a/data/maps/events/MauvilleCity_BikeShop.s
+++ b/data/maps/events/MauvilleCity_BikeShop.inc
diff --git a/data/maps/events/MauvilleCity_GameCorner.s b/data/maps/events/MauvilleCity_GameCorner.inc
index ed8549079..ed8549079 100644
--- a/data/maps/events/MauvilleCity_GameCorner.s
+++ b/data/maps/events/MauvilleCity_GameCorner.inc
diff --git a/data/maps/events/MauvilleCity_Gym.s b/data/maps/events/MauvilleCity_Gym.inc
index 4a9ee563f..4a9ee563f 100644
--- a/data/maps/events/MauvilleCity_Gym.s
+++ b/data/maps/events/MauvilleCity_Gym.inc
diff --git a/data/maps/events/MauvilleCity_House1.s b/data/maps/events/MauvilleCity_House1.inc
index 12d6d8cc8..12d6d8cc8 100644
--- a/data/maps/events/MauvilleCity_House1.s
+++ b/data/maps/events/MauvilleCity_House1.inc
diff --git a/data/maps/events/MauvilleCity_House2.s b/data/maps/events/MauvilleCity_House2.inc
index 9feaafe2c..9feaafe2c 100644
--- a/data/maps/events/MauvilleCity_House2.s
+++ b/data/maps/events/MauvilleCity_House2.inc
diff --git a/data/maps/events/MauvilleCity_Mart.s b/data/maps/events/MauvilleCity_Mart.inc
index 05951f578..05951f578 100644
--- a/data/maps/events/MauvilleCity_Mart.s
+++ b/data/maps/events/MauvilleCity_Mart.inc
diff --git a/data/maps/events/MauvilleCity_PokemonCenter_1F.s b/data/maps/events/MauvilleCity_PokemonCenter_1F.inc
index 0f8e80d5c..0f8e80d5c 100644
--- a/data/maps/events/MauvilleCity_PokemonCenter_1F.s
+++ b/data/maps/events/MauvilleCity_PokemonCenter_1F.inc
diff --git a/data/maps/events/MauvilleCity_PokemonCenter_2F.s b/data/maps/events/MauvilleCity_PokemonCenter_2F.inc
index dbd55e499..dbd55e499 100644
--- a/data/maps/events/MauvilleCity_PokemonCenter_2F.s
+++ b/data/maps/events/MauvilleCity_PokemonCenter_2F.inc
diff --git a/data/maps/events/MeteorFalls_1F_1R.s b/data/maps/events/MeteorFalls_1F_1R.inc
index 1178bf543..1178bf543 100644
--- a/data/maps/events/MeteorFalls_1F_1R.s
+++ b/data/maps/events/MeteorFalls_1F_1R.inc
diff --git a/data/maps/events/MeteorFalls_1F_2R.s b/data/maps/events/MeteorFalls_1F_2R.inc
index 549620aa9..549620aa9 100644
--- a/data/maps/events/MeteorFalls_1F_2R.s
+++ b/data/maps/events/MeteorFalls_1F_2R.inc
diff --git a/data/maps/events/MeteorFalls_B1F_1R.s b/data/maps/events/MeteorFalls_B1F_1R.inc
index 796e31cd2..796e31cd2 100644
--- a/data/maps/events/MeteorFalls_B1F_1R.s
+++ b/data/maps/events/MeteorFalls_B1F_1R.inc
diff --git a/data/maps/events/MeteorFalls_B1F_2R.s b/data/maps/events/MeteorFalls_B1F_2R.inc
index abdad1f03..abdad1f03 100644
--- a/data/maps/events/MeteorFalls_B1F_2R.s
+++ b/data/maps/events/MeteorFalls_B1F_2R.inc
diff --git a/data/maps/events/MossdeepCity.s b/data/maps/events/MossdeepCity.inc
index b73bc64f3..b73bc64f3 100644
--- a/data/maps/events/MossdeepCity.s
+++ b/data/maps/events/MossdeepCity.inc
diff --git a/data/maps/events/MossdeepCity_GameCorner_1F.s b/data/maps/events/MossdeepCity_GameCorner_1F.inc
index 99350c4b0..99350c4b0 100644
--- a/data/maps/events/MossdeepCity_GameCorner_1F.s
+++ b/data/maps/events/MossdeepCity_GameCorner_1F.inc
diff --git a/data/maps/events/MossdeepCity_GameCorner_B1F.s b/data/maps/events/MossdeepCity_GameCorner_B1F.inc
index 98c843f52..98c843f52 100644
--- a/data/maps/events/MossdeepCity_GameCorner_B1F.s
+++ b/data/maps/events/MossdeepCity_GameCorner_B1F.inc
diff --git a/data/maps/events/MossdeepCity_Gym.s b/data/maps/events/MossdeepCity_Gym.inc
index d80237a3a..d80237a3a 100644
--- a/data/maps/events/MossdeepCity_Gym.s
+++ b/data/maps/events/MossdeepCity_Gym.inc
diff --git a/data/maps/events/MossdeepCity_House1.s b/data/maps/events/MossdeepCity_House1.inc
index 251440343..251440343 100644
--- a/data/maps/events/MossdeepCity_House1.s
+++ b/data/maps/events/MossdeepCity_House1.inc
diff --git a/data/maps/events/MossdeepCity_House2.s b/data/maps/events/MossdeepCity_House2.inc
index 31ef3ab7b..31ef3ab7b 100644
--- a/data/maps/events/MossdeepCity_House2.s
+++ b/data/maps/events/MossdeepCity_House2.inc
diff --git a/data/maps/events/MossdeepCity_House3.s b/data/maps/events/MossdeepCity_House3.inc
index b1503decc..b1503decc 100644
--- a/data/maps/events/MossdeepCity_House3.s
+++ b/data/maps/events/MossdeepCity_House3.inc
diff --git a/data/maps/events/MossdeepCity_House4.s b/data/maps/events/MossdeepCity_House4.inc
index dc0fdfed8..dc0fdfed8 100644
--- a/data/maps/events/MossdeepCity_House4.s
+++ b/data/maps/events/MossdeepCity_House4.inc
diff --git a/data/maps/events/MossdeepCity_Mart.s b/data/maps/events/MossdeepCity_Mart.inc
index 80514f1f8..80514f1f8 100644
--- a/data/maps/events/MossdeepCity_Mart.s
+++ b/data/maps/events/MossdeepCity_Mart.inc
diff --git a/data/maps/events/MossdeepCity_PokemonCenter_1F.s b/data/maps/events/MossdeepCity_PokemonCenter_1F.inc
index d7cf07f6a..d7cf07f6a 100644
--- a/data/maps/events/MossdeepCity_PokemonCenter_1F.s
+++ b/data/maps/events/MossdeepCity_PokemonCenter_1F.inc
diff --git a/data/maps/events/MossdeepCity_PokemonCenter_2F.s b/data/maps/events/MossdeepCity_PokemonCenter_2F.inc
index 337467351..337467351 100644
--- a/data/maps/events/MossdeepCity_PokemonCenter_2F.s
+++ b/data/maps/events/MossdeepCity_PokemonCenter_2F.inc
diff --git a/data/maps/events/MossdeepCity_SpaceCenter_1F.s b/data/maps/events/MossdeepCity_SpaceCenter_1F.inc
index d79459eb8..d79459eb8 100644
--- a/data/maps/events/MossdeepCity_SpaceCenter_1F.s
+++ b/data/maps/events/MossdeepCity_SpaceCenter_1F.inc
diff --git a/data/maps/events/MossdeepCity_SpaceCenter_2F.s b/data/maps/events/MossdeepCity_SpaceCenter_2F.inc
index 2dc4f843a..2dc4f843a 100644
--- a/data/maps/events/MossdeepCity_SpaceCenter_2F.s
+++ b/data/maps/events/MossdeepCity_SpaceCenter_2F.inc
diff --git a/data/maps/events/MossdeepCity_StevensHouse.s b/data/maps/events/MossdeepCity_StevensHouse.inc
index ce240d81f..ce240d81f 100644
--- a/data/maps/events/MossdeepCity_StevensHouse.s
+++ b/data/maps/events/MossdeepCity_StevensHouse.inc
diff --git a/data/maps/events/MtChimney.s b/data/maps/events/MtChimney.inc
index 468edda1d..468edda1d 100644
--- a/data/maps/events/MtChimney.s
+++ b/data/maps/events/MtChimney.inc
diff --git a/data/maps/events/MtChimney_CableCarStation.s b/data/maps/events/MtChimney_CableCarStation.inc
index db4eef0fa..db4eef0fa 100644
--- a/data/maps/events/MtChimney_CableCarStation.s
+++ b/data/maps/events/MtChimney_CableCarStation.inc
diff --git a/data/maps/events/MtPyre_1F.s b/data/maps/events/MtPyre_1F.inc
index 3f4263f9e..3f4263f9e 100644
--- a/data/maps/events/MtPyre_1F.s
+++ b/data/maps/events/MtPyre_1F.inc
diff --git a/data/maps/events/MtPyre_2F.s b/data/maps/events/MtPyre_2F.inc
index 320be57af..320be57af 100644
--- a/data/maps/events/MtPyre_2F.s
+++ b/data/maps/events/MtPyre_2F.inc
diff --git a/data/maps/events/MtPyre_3F.s b/data/maps/events/MtPyre_3F.inc
index ba5428cb2..ba5428cb2 100644
--- a/data/maps/events/MtPyre_3F.s
+++ b/data/maps/events/MtPyre_3F.inc
diff --git a/data/maps/events/MtPyre_4F.s b/data/maps/events/MtPyre_4F.inc
index c54b36645..c54b36645 100644
--- a/data/maps/events/MtPyre_4F.s
+++ b/data/maps/events/MtPyre_4F.inc
diff --git a/data/maps/events/MtPyre_5F.s b/data/maps/events/MtPyre_5F.inc
index 73b97a40d..73b97a40d 100644
--- a/data/maps/events/MtPyre_5F.s
+++ b/data/maps/events/MtPyre_5F.inc
diff --git a/data/maps/events/MtPyre_6F.s b/data/maps/events/MtPyre_6F.inc
index 70228bc42..70228bc42 100644
--- a/data/maps/events/MtPyre_6F.s
+++ b/data/maps/events/MtPyre_6F.inc
diff --git a/data/maps/events/MtPyre_Exterior.s b/data/maps/events/MtPyre_Exterior.inc
index ac372a2f0..ac372a2f0 100644
--- a/data/maps/events/MtPyre_Exterior.s
+++ b/data/maps/events/MtPyre_Exterior.inc
diff --git a/data/maps/events/MtPyre_Summit.s b/data/maps/events/MtPyre_Summit.inc
index 4f5047765..4f5047765 100644
--- a/data/maps/events/MtPyre_Summit.s
+++ b/data/maps/events/MtPyre_Summit.inc
diff --git a/data/maps/events/NewMauville_Entrance.s b/data/maps/events/NewMauville_Entrance.inc
index 482ff83ca..482ff83ca 100644
--- a/data/maps/events/NewMauville_Entrance.s
+++ b/data/maps/events/NewMauville_Entrance.inc
diff --git a/data/maps/events/NewMauville_Inside.s b/data/maps/events/NewMauville_Inside.inc
index a7384520d..a7384520d 100644
--- a/data/maps/events/NewMauville_Inside.s
+++ b/data/maps/events/NewMauville_Inside.inc
diff --git a/data/maps/events/OldaleTown.s b/data/maps/events/OldaleTown.inc
index a09a08fe2..a09a08fe2 100644
--- a/data/maps/events/OldaleTown.s
+++ b/data/maps/events/OldaleTown.inc
diff --git a/data/maps/events/OldaleTown_House1.s b/data/maps/events/OldaleTown_House1.inc
index 16f29b00e..16f29b00e 100644
--- a/data/maps/events/OldaleTown_House1.s
+++ b/data/maps/events/OldaleTown_House1.inc
diff --git a/data/maps/events/OldaleTown_House2.s b/data/maps/events/OldaleTown_House2.inc
index 904291576..904291576 100644
--- a/data/maps/events/OldaleTown_House2.s
+++ b/data/maps/events/OldaleTown_House2.inc
diff --git a/data/maps/events/OldaleTown_Mart.s b/data/maps/events/OldaleTown_Mart.inc
index a06ece505..a06ece505 100644
--- a/data/maps/events/OldaleTown_Mart.s
+++ b/data/maps/events/OldaleTown_Mart.inc
diff --git a/data/maps/events/OldaleTown_PokemonCenter_1F.s b/data/maps/events/OldaleTown_PokemonCenter_1F.inc
index 161baec86..161baec86 100644
--- a/data/maps/events/OldaleTown_PokemonCenter_1F.s
+++ b/data/maps/events/OldaleTown_PokemonCenter_1F.inc
diff --git a/data/maps/events/OldaleTown_PokemonCenter_2F.s b/data/maps/events/OldaleTown_PokemonCenter_2F.inc
index e2675bb14..e2675bb14 100644
--- a/data/maps/events/OldaleTown_PokemonCenter_2F.s
+++ b/data/maps/events/OldaleTown_PokemonCenter_2F.inc
diff --git a/data/maps/events/PacifidlogTown.s b/data/maps/events/PacifidlogTown.inc
index 1823e9afd..1823e9afd 100644
--- a/data/maps/events/PacifidlogTown.s
+++ b/data/maps/events/PacifidlogTown.inc
diff --git a/data/maps/events/PacifidlogTown_House1.s b/data/maps/events/PacifidlogTown_House1.inc
index 233fa7604..233fa7604 100644
--- a/data/maps/events/PacifidlogTown_House1.s
+++ b/data/maps/events/PacifidlogTown_House1.inc
diff --git a/data/maps/events/PacifidlogTown_House2.s b/data/maps/events/PacifidlogTown_House2.inc
index aa1940d29..aa1940d29 100644
--- a/data/maps/events/PacifidlogTown_House2.s
+++ b/data/maps/events/PacifidlogTown_House2.inc
diff --git a/data/maps/events/PacifidlogTown_House3.s b/data/maps/events/PacifidlogTown_House3.inc
index 80ab8d7f5..80ab8d7f5 100644
--- a/data/maps/events/PacifidlogTown_House3.s
+++ b/data/maps/events/PacifidlogTown_House3.inc
diff --git a/data/maps/events/PacifidlogTown_House4.s b/data/maps/events/PacifidlogTown_House4.inc
index a7dd1469b..a7dd1469b 100644
--- a/data/maps/events/PacifidlogTown_House4.s
+++ b/data/maps/events/PacifidlogTown_House4.inc
diff --git a/data/maps/events/PacifidlogTown_House5.s b/data/maps/events/PacifidlogTown_House5.inc
index 963a319cf..963a319cf 100644
--- a/data/maps/events/PacifidlogTown_House5.s
+++ b/data/maps/events/PacifidlogTown_House5.inc
diff --git a/data/maps/events/PacifidlogTown_PokemonCenter_1F.s b/data/maps/events/PacifidlogTown_PokemonCenter_1F.inc
index 432ba616d..432ba616d 100644
--- a/data/maps/events/PacifidlogTown_PokemonCenter_1F.s
+++ b/data/maps/events/PacifidlogTown_PokemonCenter_1F.inc
diff --git a/data/maps/events/PacifidlogTown_PokemonCenter_2F.s b/data/maps/events/PacifidlogTown_PokemonCenter_2F.inc
index f4110623f..f4110623f 100644
--- a/data/maps/events/PacifidlogTown_PokemonCenter_2F.s
+++ b/data/maps/events/PacifidlogTown_PokemonCenter_2F.inc
diff --git a/data/maps/events/PetalburgCity.s b/data/maps/events/PetalburgCity.inc
index 4c36c49ab..4c36c49ab 100644
--- a/data/maps/events/PetalburgCity.s
+++ b/data/maps/events/PetalburgCity.inc
diff --git a/data/maps/events/PetalburgCity_Gym.s b/data/maps/events/PetalburgCity_Gym.inc
index 47205e253..47205e253 100644
--- a/data/maps/events/PetalburgCity_Gym.s
+++ b/data/maps/events/PetalburgCity_Gym.inc
diff --git a/data/maps/events/PetalburgCity_House1.s b/data/maps/events/PetalburgCity_House1.inc
index 2d6a28056..2d6a28056 100644
--- a/data/maps/events/PetalburgCity_House1.s
+++ b/data/maps/events/PetalburgCity_House1.inc
diff --git a/data/maps/events/PetalburgCity_House2.s b/data/maps/events/PetalburgCity_House2.inc
index 0797b9bab..0797b9bab 100644
--- a/data/maps/events/PetalburgCity_House2.s
+++ b/data/maps/events/PetalburgCity_House2.inc
diff --git a/data/maps/events/PetalburgCity_Mart.s b/data/maps/events/PetalburgCity_Mart.inc
index 2fbed4b9d..2fbed4b9d 100644
--- a/data/maps/events/PetalburgCity_Mart.s
+++ b/data/maps/events/PetalburgCity_Mart.inc
diff --git a/data/maps/events/PetalburgCity_PokemonCenter_1F.s b/data/maps/events/PetalburgCity_PokemonCenter_1F.inc
index 5fb3186e5..5fb3186e5 100644
--- a/data/maps/events/PetalburgCity_PokemonCenter_1F.s
+++ b/data/maps/events/PetalburgCity_PokemonCenter_1F.inc
diff --git a/data/maps/events/PetalburgCity_PokemonCenter_2F.s b/data/maps/events/PetalburgCity_PokemonCenter_2F.inc
index eab3d7dd5..eab3d7dd5 100644
--- a/data/maps/events/PetalburgCity_PokemonCenter_2F.s
+++ b/data/maps/events/PetalburgCity_PokemonCenter_2F.inc
diff --git a/data/maps/events/PetalburgCity_WallysHouse.s b/data/maps/events/PetalburgCity_WallysHouse.inc
index 724b84f0f..724b84f0f 100644
--- a/data/maps/events/PetalburgCity_WallysHouse.s
+++ b/data/maps/events/PetalburgCity_WallysHouse.inc
diff --git a/data/maps/events/PetalburgWoods.s b/data/maps/events/PetalburgWoods.inc
index 0ec69c1a2..0ec69c1a2 100644
--- a/data/maps/events/PetalburgWoods.s
+++ b/data/maps/events/PetalburgWoods.inc
diff --git a/data/maps/events/RecordCorner.s b/data/maps/events/RecordCorner.inc
index 7062f61ea..7062f61ea 100644
--- a/data/maps/events/RecordCorner.s
+++ b/data/maps/events/RecordCorner.inc
diff --git a/data/maps/events/Route101.s b/data/maps/events/Route101.inc
index bad4e3ba9..bad4e3ba9 100644
--- a/data/maps/events/Route101.s
+++ b/data/maps/events/Route101.inc
diff --git a/data/maps/events/Route102.s b/data/maps/events/Route102.inc
index 9cf97de4b..9cf97de4b 100644
--- a/data/maps/events/Route102.s
+++ b/data/maps/events/Route102.inc
diff --git a/data/maps/events/Route103.s b/data/maps/events/Route103.inc
index 01640eb65..01640eb65 100644
--- a/data/maps/events/Route103.s
+++ b/data/maps/events/Route103.inc
diff --git a/data/maps/events/Route104.s b/data/maps/events/Route104.inc
index da4b5ffc1..da4b5ffc1 100644
--- a/data/maps/events/Route104.s
+++ b/data/maps/events/Route104.inc
diff --git a/data/maps/events/Route104_MrBrineysHouse.s b/data/maps/events/Route104_MrBrineysHouse.inc
index d8b2ff252..d8b2ff252 100644
--- a/data/maps/events/Route104_MrBrineysHouse.s
+++ b/data/maps/events/Route104_MrBrineysHouse.inc
diff --git a/data/maps/events/Route104_PrettyPetalFlowerShop.s b/data/maps/events/Route104_PrettyPetalFlowerShop.inc
index 0c540e940..0c540e940 100644
--- a/data/maps/events/Route104_PrettyPetalFlowerShop.s
+++ b/data/maps/events/Route104_PrettyPetalFlowerShop.inc
diff --git a/data/maps/events/Route104_Prototype.s b/data/maps/events/Route104_Prototype.inc
index 6748fe0ed..6748fe0ed 100644
--- a/data/maps/events/Route104_Prototype.s
+++ b/data/maps/events/Route104_Prototype.inc
diff --git a/data/maps/events/Route104_PrototypePrettyPetalFlowerShop.s b/data/maps/events/Route104_PrototypePrettyPetalFlowerShop.inc
index 96cac1e71..96cac1e71 100644
--- a/data/maps/events/Route104_PrototypePrettyPetalFlowerShop.s
+++ b/data/maps/events/Route104_PrototypePrettyPetalFlowerShop.inc
diff --git a/data/maps/events/Route105.s b/data/maps/events/Route105.inc
index 5f7f6c13d..5f7f6c13d 100644
--- a/data/maps/events/Route105.s
+++ b/data/maps/events/Route105.inc
diff --git a/data/maps/events/Route106.s b/data/maps/events/Route106.inc
index 51c093fe5..51c093fe5 100644
--- a/data/maps/events/Route106.s
+++ b/data/maps/events/Route106.inc
diff --git a/data/maps/events/Route107.s b/data/maps/events/Route107.inc
index 363414c2f..363414c2f 100644
--- a/data/maps/events/Route107.s
+++ b/data/maps/events/Route107.inc
diff --git a/data/maps/events/Route108.s b/data/maps/events/Route108.inc
index 1f49a1e0c..1f49a1e0c 100644
--- a/data/maps/events/Route108.s
+++ b/data/maps/events/Route108.inc
diff --git a/data/maps/events/Route109.s b/data/maps/events/Route109.inc
index 511579650..511579650 100644
--- a/data/maps/events/Route109.s
+++ b/data/maps/events/Route109.inc
diff --git a/data/maps/events/Route109_SeashoreHouse.s b/data/maps/events/Route109_SeashoreHouse.inc
index 5036df1e7..5036df1e7 100644
--- a/data/maps/events/Route109_SeashoreHouse.s
+++ b/data/maps/events/Route109_SeashoreHouse.inc
diff --git a/data/maps/events/Route110.s b/data/maps/events/Route110.inc
index 4ece25549..4ece25549 100644
--- a/data/maps/events/Route110.s
+++ b/data/maps/events/Route110.inc
diff --git a/data/maps/events/Route110_SeasideCyclingRoadNorthEntrance.s b/data/maps/events/Route110_SeasideCyclingRoadNorthEntrance.inc
index e1ca6b4de..e1ca6b4de 100644
--- a/data/maps/events/Route110_SeasideCyclingRoadNorthEntrance.s
+++ b/data/maps/events/Route110_SeasideCyclingRoadNorthEntrance.inc
diff --git a/data/maps/events/Route110_SeasideCyclingRoadSouthEntrance.s b/data/maps/events/Route110_SeasideCyclingRoadSouthEntrance.inc
index 24ae3600f..24ae3600f 100644
--- a/data/maps/events/Route110_SeasideCyclingRoadSouthEntrance.s
+++ b/data/maps/events/Route110_SeasideCyclingRoadSouthEntrance.inc
diff --git a/data/maps/events/Route110_TrickHouseCorridor.s b/data/maps/events/Route110_TrickHouseCorridor.inc
index 105701e55..105701e55 100644
--- a/data/maps/events/Route110_TrickHouseCorridor.s
+++ b/data/maps/events/Route110_TrickHouseCorridor.inc
diff --git a/data/maps/events/Route110_TrickHouseEnd.s b/data/maps/events/Route110_TrickHouseEnd.inc
index f050e3270..f050e3270 100644
--- a/data/maps/events/Route110_TrickHouseEnd.s
+++ b/data/maps/events/Route110_TrickHouseEnd.inc
diff --git a/data/maps/events/Route110_TrickHouseEntrance.s b/data/maps/events/Route110_TrickHouseEntrance.inc
index a1f67bd3d..a1f67bd3d 100644
--- a/data/maps/events/Route110_TrickHouseEntrance.s
+++ b/data/maps/events/Route110_TrickHouseEntrance.inc
diff --git a/data/maps/events/Route110_TrickHousePuzzle1.s b/data/maps/events/Route110_TrickHousePuzzle1.inc
index 7e282f0e8..7e282f0e8 100644
--- a/data/maps/events/Route110_TrickHousePuzzle1.s
+++ b/data/maps/events/Route110_TrickHousePuzzle1.inc
diff --git a/data/maps/events/Route110_TrickHousePuzzle2.s b/data/maps/events/Route110_TrickHousePuzzle2.inc
index d77fd66a1..d77fd66a1 100644
--- a/data/maps/events/Route110_TrickHousePuzzle2.s
+++ b/data/maps/events/Route110_TrickHousePuzzle2.inc
diff --git a/data/maps/events/Route110_TrickHousePuzzle3.s b/data/maps/events/Route110_TrickHousePuzzle3.inc
index b7a902a54..b7a902a54 100644
--- a/data/maps/events/Route110_TrickHousePuzzle3.s
+++ b/data/maps/events/Route110_TrickHousePuzzle3.inc
diff --git a/data/maps/events/Route110_TrickHousePuzzle4.s b/data/maps/events/Route110_TrickHousePuzzle4.inc
index ac3e152a2..ac3e152a2 100644
--- a/data/maps/events/Route110_TrickHousePuzzle4.s
+++ b/data/maps/events/Route110_TrickHousePuzzle4.inc
diff --git a/data/maps/events/Route110_TrickHousePuzzle5.s b/data/maps/events/Route110_TrickHousePuzzle5.inc
index be38ef452..be38ef452 100644
--- a/data/maps/events/Route110_TrickHousePuzzle5.s
+++ b/data/maps/events/Route110_TrickHousePuzzle5.inc
diff --git a/data/maps/events/Route110_TrickHousePuzzle6.s b/data/maps/events/Route110_TrickHousePuzzle6.inc
index 1e6c7869b..1e6c7869b 100644
--- a/data/maps/events/Route110_TrickHousePuzzle6.s
+++ b/data/maps/events/Route110_TrickHousePuzzle6.inc
diff --git a/data/maps/events/Route110_TrickHousePuzzle7.s b/data/maps/events/Route110_TrickHousePuzzle7.inc
index d5e4f14af..d5e4f14af 100644
--- a/data/maps/events/Route110_TrickHousePuzzle7.s
+++ b/data/maps/events/Route110_TrickHousePuzzle7.inc
diff --git a/data/maps/events/Route110_TrickHousePuzzle8.s b/data/maps/events/Route110_TrickHousePuzzle8.inc
index accb0b3a2..accb0b3a2 100644
--- a/data/maps/events/Route110_TrickHousePuzzle8.s
+++ b/data/maps/events/Route110_TrickHousePuzzle8.inc
diff --git a/data/maps/events/Route111.s b/data/maps/events/Route111.inc
index 9eeed5ede..9eeed5ede 100644
--- a/data/maps/events/Route111.s
+++ b/data/maps/events/Route111.inc
diff --git a/data/maps/events/Route111_OldLadysRestStop.s b/data/maps/events/Route111_OldLadysRestStop.inc
index c295aa0c9..c295aa0c9 100644
--- a/data/maps/events/Route111_OldLadysRestStop.s
+++ b/data/maps/events/Route111_OldLadysRestStop.inc
diff --git a/data/maps/events/Route111_WinstrateFamilysHouse.s b/data/maps/events/Route111_WinstrateFamilysHouse.inc
index 8cb265965..8cb265965 100644
--- a/data/maps/events/Route111_WinstrateFamilysHouse.s
+++ b/data/maps/events/Route111_WinstrateFamilysHouse.inc
diff --git a/data/maps/events/Route112.s b/data/maps/events/Route112.inc
index f6dfcfbe5..f6dfcfbe5 100644
--- a/data/maps/events/Route112.s
+++ b/data/maps/events/Route112.inc
diff --git a/data/maps/events/Route112_CableCarStation.s b/data/maps/events/Route112_CableCarStation.inc
index 6ca18059b..6ca18059b 100644
--- a/data/maps/events/Route112_CableCarStation.s
+++ b/data/maps/events/Route112_CableCarStation.inc
diff --git a/data/maps/events/Route113.s b/data/maps/events/Route113.inc
index ee145eb76..ee145eb76 100644
--- a/data/maps/events/Route113.s
+++ b/data/maps/events/Route113.inc
diff --git a/data/maps/events/Route113_GlassWorkshop.s b/data/maps/events/Route113_GlassWorkshop.inc
index 68b47709d..68b47709d 100644
--- a/data/maps/events/Route113_GlassWorkshop.s
+++ b/data/maps/events/Route113_GlassWorkshop.inc
diff --git a/data/maps/events/Route114.s b/data/maps/events/Route114.inc
index a2d948d33..a2d948d33 100644
--- a/data/maps/events/Route114.s
+++ b/data/maps/events/Route114.inc
diff --git a/data/maps/events/Route114_FossilManiacsHouse.s b/data/maps/events/Route114_FossilManiacsHouse.inc
index f7bf465e9..f7bf465e9 100644
--- a/data/maps/events/Route114_FossilManiacsHouse.s
+++ b/data/maps/events/Route114_FossilManiacsHouse.inc
diff --git a/data/maps/events/Route114_FossilManiacsTunnel.s b/data/maps/events/Route114_FossilManiacsTunnel.inc
index 89c231d7e..89c231d7e 100644
--- a/data/maps/events/Route114_FossilManiacsTunnel.s
+++ b/data/maps/events/Route114_FossilManiacsTunnel.inc
diff --git a/data/maps/events/Route114_LanettesHouse.s b/data/maps/events/Route114_LanettesHouse.inc
index e62f6e0ad..e62f6e0ad 100644
--- a/data/maps/events/Route114_LanettesHouse.s
+++ b/data/maps/events/Route114_LanettesHouse.inc
diff --git a/data/maps/events/Route115.s b/data/maps/events/Route115.inc
index cba3c3e7d..cba3c3e7d 100644
--- a/data/maps/events/Route115.s
+++ b/data/maps/events/Route115.inc
diff --git a/data/maps/events/Route116.s b/data/maps/events/Route116.inc
index 18717be4e..18717be4e 100644
--- a/data/maps/events/Route116.s
+++ b/data/maps/events/Route116.inc
diff --git a/data/maps/events/Route116_TunnelersRestHouse.s b/data/maps/events/Route116_TunnelersRestHouse.inc
index 4e4553567..4e4553567 100644
--- a/data/maps/events/Route116_TunnelersRestHouse.s
+++ b/data/maps/events/Route116_TunnelersRestHouse.inc
diff --git a/data/maps/events/Route117.s b/data/maps/events/Route117.inc
index b53e3de57..b53e3de57 100644
--- a/data/maps/events/Route117.s
+++ b/data/maps/events/Route117.inc
diff --git a/data/maps/events/Route117_PokemonDayCare.s b/data/maps/events/Route117_PokemonDayCare.inc
index 69ede9610..69ede9610 100644
--- a/data/maps/events/Route117_PokemonDayCare.s
+++ b/data/maps/events/Route117_PokemonDayCare.inc
diff --git a/data/maps/events/Route118.s b/data/maps/events/Route118.inc
index f912b6fbd..f912b6fbd 100644
--- a/data/maps/events/Route118.s
+++ b/data/maps/events/Route118.inc
diff --git a/data/maps/events/Route119.s b/data/maps/events/Route119.inc
index 966ae6058..966ae6058 100644
--- a/data/maps/events/Route119.s
+++ b/data/maps/events/Route119.inc
diff --git a/data/maps/events/Route119_House.s b/data/maps/events/Route119_House.inc
index 45267ca0e..45267ca0e 100644
--- a/data/maps/events/Route119_House.s
+++ b/data/maps/events/Route119_House.inc
diff --git a/data/maps/events/Route119_WeatherInstitute_1F.s b/data/maps/events/Route119_WeatherInstitute_1F.inc
index 1472fb569..1472fb569 100644
--- a/data/maps/events/Route119_WeatherInstitute_1F.s
+++ b/data/maps/events/Route119_WeatherInstitute_1F.inc
diff --git a/data/maps/events/Route119_WeatherInstitute_2F.s b/data/maps/events/Route119_WeatherInstitute_2F.inc
index d2dbce24d..d2dbce24d 100644
--- a/data/maps/events/Route119_WeatherInstitute_2F.s
+++ b/data/maps/events/Route119_WeatherInstitute_2F.inc
diff --git a/data/maps/events/Route120.s b/data/maps/events/Route120.inc
index 43a67ee99..43a67ee99 100644
--- a/data/maps/events/Route120.s
+++ b/data/maps/events/Route120.inc
diff --git a/data/maps/events/Route121.s b/data/maps/events/Route121.inc
index 514f51349..514f51349 100644
--- a/data/maps/events/Route121.s
+++ b/data/maps/events/Route121.inc
diff --git a/data/maps/events/Route121_SafariZoneEntrance.s b/data/maps/events/Route121_SafariZoneEntrance.inc
index c3880d4b3..c3880d4b3 100644
--- a/data/maps/events/Route121_SafariZoneEntrance.s
+++ b/data/maps/events/Route121_SafariZoneEntrance.inc
diff --git a/data/maps/events/Route122.s b/data/maps/events/Route122.inc
index 217c28ee1..217c28ee1 100644
--- a/data/maps/events/Route122.s
+++ b/data/maps/events/Route122.inc
diff --git a/data/maps/events/Route123.s b/data/maps/events/Route123.inc
index 6b97bafe5..6b97bafe5 100644
--- a/data/maps/events/Route123.s
+++ b/data/maps/events/Route123.inc
diff --git a/data/maps/events/Route123_BerryMastersHouse.s b/data/maps/events/Route123_BerryMastersHouse.inc
index 183e19415..183e19415 100644
--- a/data/maps/events/Route123_BerryMastersHouse.s
+++ b/data/maps/events/Route123_BerryMastersHouse.inc
diff --git a/data/maps/events/Route124.s b/data/maps/events/Route124.inc
index 83db7f24b..83db7f24b 100644
--- a/data/maps/events/Route124.s
+++ b/data/maps/events/Route124.inc
diff --git a/data/maps/events/Route125.s b/data/maps/events/Route125.inc
index 0c7d12643..0c7d12643 100644
--- a/data/maps/events/Route125.s
+++ b/data/maps/events/Route125.inc
diff --git a/data/maps/events/Route126.s b/data/maps/events/Route126.inc
index 50d1dca52..50d1dca52 100644
--- a/data/maps/events/Route126.s
+++ b/data/maps/events/Route126.inc
diff --git a/data/maps/events/Route127.s b/data/maps/events/Route127.inc
index b3744194e..b3744194e 100644
--- a/data/maps/events/Route127.s
+++ b/data/maps/events/Route127.inc
diff --git a/data/maps/events/Route128.s b/data/maps/events/Route128.inc
index 74f99d02c..74f99d02c 100644
--- a/data/maps/events/Route128.s
+++ b/data/maps/events/Route128.inc
diff --git a/data/maps/events/Route129.s b/data/maps/events/Route129.inc
index 10716b557..10716b557 100644
--- a/data/maps/events/Route129.s
+++ b/data/maps/events/Route129.inc
diff --git a/data/maps/events/Route130.s b/data/maps/events/Route130.inc
index f2c72ef2d..f2c72ef2d 100644
--- a/data/maps/events/Route130.s
+++ b/data/maps/events/Route130.inc
diff --git a/data/maps/events/Route131.s b/data/maps/events/Route131.inc
index ed1a33768..ed1a33768 100644
--- a/data/maps/events/Route131.s
+++ b/data/maps/events/Route131.inc
diff --git a/data/maps/events/Route132.s b/data/maps/events/Route132.inc
index b19e96363..b19e96363 100644
--- a/data/maps/events/Route132.s
+++ b/data/maps/events/Route132.inc
diff --git a/data/maps/events/Route133.s b/data/maps/events/Route133.inc
index 1461293e8..1461293e8 100644
--- a/data/maps/events/Route133.s
+++ b/data/maps/events/Route133.inc
diff --git a/data/maps/events/Route134.s b/data/maps/events/Route134.inc
index a8d2eb030..a8d2eb030 100644
--- a/data/maps/events/Route134.s
+++ b/data/maps/events/Route134.inc
diff --git a/data/maps/events/RustboroCity.s b/data/maps/events/RustboroCity.inc
index 4bbf0a6a2..4bbf0a6a2 100644
--- a/data/maps/events/RustboroCity.s
+++ b/data/maps/events/RustboroCity.inc
diff --git a/data/maps/events/RustboroCity_CuttersHouse.s b/data/maps/events/RustboroCity_CuttersHouse.inc
index b38fc9afe..b38fc9afe 100644
--- a/data/maps/events/RustboroCity_CuttersHouse.s
+++ b/data/maps/events/RustboroCity_CuttersHouse.inc
diff --git a/data/maps/events/RustboroCity_DevonCorp_1F.s b/data/maps/events/RustboroCity_DevonCorp_1F.inc
index 72437229c..72437229c 100644
--- a/data/maps/events/RustboroCity_DevonCorp_1F.s
+++ b/data/maps/events/RustboroCity_DevonCorp_1F.inc
diff --git a/data/maps/events/RustboroCity_DevonCorp_2F.s b/data/maps/events/RustboroCity_DevonCorp_2F.inc
index 3ca57bf10..3ca57bf10 100644
--- a/data/maps/events/RustboroCity_DevonCorp_2F.s
+++ b/data/maps/events/RustboroCity_DevonCorp_2F.inc
diff --git a/data/maps/events/RustboroCity_DevonCorp_3F.s b/data/maps/events/RustboroCity_DevonCorp_3F.inc
index f0f8fadec..f0f8fadec 100644
--- a/data/maps/events/RustboroCity_DevonCorp_3F.s
+++ b/data/maps/events/RustboroCity_DevonCorp_3F.inc
diff --git a/data/maps/events/RustboroCity_Flat1_1F.s b/data/maps/events/RustboroCity_Flat1_1F.inc
index 9c637f0fb..9c637f0fb 100644
--- a/data/maps/events/RustboroCity_Flat1_1F.s
+++ b/data/maps/events/RustboroCity_Flat1_1F.inc
diff --git a/data/maps/events/RustboroCity_Flat1_2F.s b/data/maps/events/RustboroCity_Flat1_2F.inc
index 2d1d187e9..2d1d187e9 100644
--- a/data/maps/events/RustboroCity_Flat1_2F.s
+++ b/data/maps/events/RustboroCity_Flat1_2F.inc
diff --git a/data/maps/events/RustboroCity_Flat2_1F.s b/data/maps/events/RustboroCity_Flat2_1F.inc
index bd9f4904e..bd9f4904e 100644
--- a/data/maps/events/RustboroCity_Flat2_1F.s
+++ b/data/maps/events/RustboroCity_Flat2_1F.inc
diff --git a/data/maps/events/RustboroCity_Flat2_2F.s b/data/maps/events/RustboroCity_Flat2_2F.inc
index 988e3797d..988e3797d 100644
--- a/data/maps/events/RustboroCity_Flat2_2F.s
+++ b/data/maps/events/RustboroCity_Flat2_2F.inc
diff --git a/data/maps/events/RustboroCity_Flat2_3F.s b/data/maps/events/RustboroCity_Flat2_3F.inc
index 3c09ce553..3c09ce553 100644
--- a/data/maps/events/RustboroCity_Flat2_3F.s
+++ b/data/maps/events/RustboroCity_Flat2_3F.inc
diff --git a/data/maps/events/RustboroCity_Gym.s b/data/maps/events/RustboroCity_Gym.inc
index cfe9f420d..cfe9f420d 100644
--- a/data/maps/events/RustboroCity_Gym.s
+++ b/data/maps/events/RustboroCity_Gym.inc
diff --git a/data/maps/events/RustboroCity_House1.s b/data/maps/events/RustboroCity_House1.inc
index 8e1cb1c7e..8e1cb1c7e 100644
--- a/data/maps/events/RustboroCity_House1.s
+++ b/data/maps/events/RustboroCity_House1.inc
diff --git a/data/maps/events/RustboroCity_House2.s b/data/maps/events/RustboroCity_House2.inc
index 33159faa4..33159faa4 100644
--- a/data/maps/events/RustboroCity_House2.s
+++ b/data/maps/events/RustboroCity_House2.inc
diff --git a/data/maps/events/RustboroCity_House3.s b/data/maps/events/RustboroCity_House3.inc
index 696350f00..696350f00 100644
--- a/data/maps/events/RustboroCity_House3.s
+++ b/data/maps/events/RustboroCity_House3.inc
diff --git a/data/maps/events/RustboroCity_Mart.s b/data/maps/events/RustboroCity_Mart.inc
index 3949dcd2e..3949dcd2e 100644
--- a/data/maps/events/RustboroCity_Mart.s
+++ b/data/maps/events/RustboroCity_Mart.inc
diff --git a/data/maps/events/RustboroCity_PokemonCenter_1F.s b/data/maps/events/RustboroCity_PokemonCenter_1F.inc
index a0e7a3f76..a0e7a3f76 100644
--- a/data/maps/events/RustboroCity_PokemonCenter_1F.s
+++ b/data/maps/events/RustboroCity_PokemonCenter_1F.inc
diff --git a/data/maps/events/RustboroCity_PokemonCenter_2F.s b/data/maps/events/RustboroCity_PokemonCenter_2F.inc
index c75817126..c75817126 100644
--- a/data/maps/events/RustboroCity_PokemonCenter_2F.s
+++ b/data/maps/events/RustboroCity_PokemonCenter_2F.inc
diff --git a/data/maps/events/RustboroCity_PokemonSchool.s b/data/maps/events/RustboroCity_PokemonSchool.inc
index 5ae481bad..5ae481bad 100644
--- a/data/maps/events/RustboroCity_PokemonSchool.s
+++ b/data/maps/events/RustboroCity_PokemonSchool.inc
diff --git a/data/maps/events/RusturfTunnel.s b/data/maps/events/RusturfTunnel.inc
index 490afda7b..490afda7b 100644
--- a/data/maps/events/RusturfTunnel.s
+++ b/data/maps/events/RusturfTunnel.inc
diff --git a/data/maps/events/SSTidalCorridor.s b/data/maps/events/SSTidalCorridor.inc
index b7eb1eb8f..b7eb1eb8f 100644
--- a/data/maps/events/SSTidalCorridor.s
+++ b/data/maps/events/SSTidalCorridor.inc
diff --git a/data/maps/events/SSTidalLowerDeck.s b/data/maps/events/SSTidalLowerDeck.inc
index 6e8530c36..6e8530c36 100644
--- a/data/maps/events/SSTidalLowerDeck.s
+++ b/data/maps/events/SSTidalLowerDeck.inc
diff --git a/data/maps/events/SSTidalRooms.s b/data/maps/events/SSTidalRooms.inc
index 0ffe1cbe7..0ffe1cbe7 100644
--- a/data/maps/events/SSTidalRooms.s
+++ b/data/maps/events/SSTidalRooms.inc
diff --git a/data/maps/events/SafariZone_Northeast.s b/data/maps/events/SafariZone_Northeast.inc
index 30921f095..30921f095 100644
--- a/data/maps/events/SafariZone_Northeast.s
+++ b/data/maps/events/SafariZone_Northeast.inc
diff --git a/data/maps/events/SafariZone_Northwest.s b/data/maps/events/SafariZone_Northwest.inc
index 0a1846b29..0a1846b29 100644
--- a/data/maps/events/SafariZone_Northwest.s
+++ b/data/maps/events/SafariZone_Northwest.inc
diff --git a/data/maps/events/SafariZone_RestHouse.s b/data/maps/events/SafariZone_RestHouse.inc
index d6de3f747..d6de3f747 100644
--- a/data/maps/events/SafariZone_RestHouse.s
+++ b/data/maps/events/SafariZone_RestHouse.inc
diff --git a/data/maps/events/SafariZone_Southeast.s b/data/maps/events/SafariZone_Southeast.inc
index d67f018ab..d67f018ab 100644
--- a/data/maps/events/SafariZone_Southeast.s
+++ b/data/maps/events/SafariZone_Southeast.inc
diff --git a/data/maps/events/SafariZone_Southwest.s b/data/maps/events/SafariZone_Southwest.inc
index 4f7f21de5..4f7f21de5 100644
--- a/data/maps/events/SafariZone_Southwest.s
+++ b/data/maps/events/SafariZone_Southwest.inc
diff --git a/data/maps/events/ScorchedSlab.s b/data/maps/events/ScorchedSlab.inc
index 4b6625b52..4b6625b52 100644
--- a/data/maps/events/ScorchedSlab.s
+++ b/data/maps/events/ScorchedSlab.inc
diff --git a/data/maps/events/SeafloorCavern_Entrance.s b/data/maps/events/SeafloorCavern_Entrance.inc
index a7f08532c..a7f08532c 100644
--- a/data/maps/events/SeafloorCavern_Entrance.s
+++ b/data/maps/events/SeafloorCavern_Entrance.inc
diff --git a/data/maps/events/SeafloorCavern_Room1.s b/data/maps/events/SeafloorCavern_Room1.inc
index 1e791f884..1e791f884 100644
--- a/data/maps/events/SeafloorCavern_Room1.s
+++ b/data/maps/events/SeafloorCavern_Room1.inc
diff --git a/data/maps/events/SeafloorCavern_Room2.s b/data/maps/events/SeafloorCavern_Room2.inc
index 3dbe5e8a7..3dbe5e8a7 100644
--- a/data/maps/events/SeafloorCavern_Room2.s
+++ b/data/maps/events/SeafloorCavern_Room2.inc
diff --git a/data/maps/events/SeafloorCavern_Room3.s b/data/maps/events/SeafloorCavern_Room3.inc
index 98e6066f2..98e6066f2 100644
--- a/data/maps/events/SeafloorCavern_Room3.s
+++ b/data/maps/events/SeafloorCavern_Room3.inc
diff --git a/data/maps/events/SeafloorCavern_Room4.s b/data/maps/events/SeafloorCavern_Room4.inc
index 3233123b3..3233123b3 100644
--- a/data/maps/events/SeafloorCavern_Room4.s
+++ b/data/maps/events/SeafloorCavern_Room4.inc
diff --git a/data/maps/events/SeafloorCavern_Room5.s b/data/maps/events/SeafloorCavern_Room5.inc
index 0ebd46a56..0ebd46a56 100644
--- a/data/maps/events/SeafloorCavern_Room5.s
+++ b/data/maps/events/SeafloorCavern_Room5.inc
diff --git a/data/maps/events/SeafloorCavern_Room6.s b/data/maps/events/SeafloorCavern_Room6.inc
index 9055af75b..9055af75b 100644
--- a/data/maps/events/SeafloorCavern_Room6.s
+++ b/data/maps/events/SeafloorCavern_Room6.inc
diff --git a/data/maps/events/SeafloorCavern_Room7.s b/data/maps/events/SeafloorCavern_Room7.inc
index 7125027fd..7125027fd 100644
--- a/data/maps/events/SeafloorCavern_Room7.s
+++ b/data/maps/events/SeafloorCavern_Room7.inc
diff --git a/data/maps/events/SeafloorCavern_Room8.s b/data/maps/events/SeafloorCavern_Room8.inc
index 610937753..610937753 100644
--- a/data/maps/events/SeafloorCavern_Room8.s
+++ b/data/maps/events/SeafloorCavern_Room8.inc
diff --git a/data/maps/events/SeafloorCavern_Room9.s b/data/maps/events/SeafloorCavern_Room9.inc
index 2fccd4fec..2fccd4fec 100644
--- a/data/maps/events/SeafloorCavern_Room9.s
+++ b/data/maps/events/SeafloorCavern_Room9.inc
diff --git a/data/maps/events/SealedChamber_InnerRoom.s b/data/maps/events/SealedChamber_InnerRoom.inc
index 260de2dd9..260de2dd9 100644
--- a/data/maps/events/SealedChamber_InnerRoom.s
+++ b/data/maps/events/SealedChamber_InnerRoom.inc
diff --git a/data/maps/events/SealedChamber_OuterRoom.s b/data/maps/events/SealedChamber_OuterRoom.inc
index 5251d401a..5251d401a 100644
--- a/data/maps/events/SealedChamber_OuterRoom.s
+++ b/data/maps/events/SealedChamber_OuterRoom.inc
diff --git a/data/maps/events/SecretBase_BlueCave1.s b/data/maps/events/SecretBase_BlueCave1.inc
index 25bab40da..25bab40da 100644
--- a/data/maps/events/SecretBase_BlueCave1.s
+++ b/data/maps/events/SecretBase_BlueCave1.inc
diff --git a/data/maps/events/SecretBase_BlueCave2.s b/data/maps/events/SecretBase_BlueCave2.inc
index a7eac24a4..a7eac24a4 100644
--- a/data/maps/events/SecretBase_BlueCave2.s
+++ b/data/maps/events/SecretBase_BlueCave2.inc
diff --git a/data/maps/events/SecretBase_BlueCave3.s b/data/maps/events/SecretBase_BlueCave3.inc
index 202c2bc4e..202c2bc4e 100644
--- a/data/maps/events/SecretBase_BlueCave3.s
+++ b/data/maps/events/SecretBase_BlueCave3.inc
diff --git a/data/maps/events/SecretBase_BlueCave4.s b/data/maps/events/SecretBase_BlueCave4.inc
index 2975c0b37..2975c0b37 100644
--- a/data/maps/events/SecretBase_BlueCave4.s
+++ b/data/maps/events/SecretBase_BlueCave4.inc
diff --git a/data/maps/events/SecretBase_BrownCave1.s b/data/maps/events/SecretBase_BrownCave1.inc
index 31e2d0117..31e2d0117 100644
--- a/data/maps/events/SecretBase_BrownCave1.s
+++ b/data/maps/events/SecretBase_BrownCave1.inc
diff --git a/data/maps/events/SecretBase_BrownCave2.s b/data/maps/events/SecretBase_BrownCave2.inc
index 93f9a3c03..93f9a3c03 100644
--- a/data/maps/events/SecretBase_BrownCave2.s
+++ b/data/maps/events/SecretBase_BrownCave2.inc
diff --git a/data/maps/events/SecretBase_BrownCave3.s b/data/maps/events/SecretBase_BrownCave3.inc
index 5aa5aed7a..5aa5aed7a 100644
--- a/data/maps/events/SecretBase_BrownCave3.s
+++ b/data/maps/events/SecretBase_BrownCave3.inc
diff --git a/data/maps/events/SecretBase_BrownCave4.s b/data/maps/events/SecretBase_BrownCave4.inc
index fc66e8fb5..fc66e8fb5 100644
--- a/data/maps/events/SecretBase_BrownCave4.s
+++ b/data/maps/events/SecretBase_BrownCave4.inc
diff --git a/data/maps/events/SecretBase_RedCave1.s b/data/maps/events/SecretBase_RedCave1.inc
index dbc8c7593..dbc8c7593 100644
--- a/data/maps/events/SecretBase_RedCave1.s
+++ b/data/maps/events/SecretBase_RedCave1.inc
diff --git a/data/maps/events/SecretBase_RedCave2.s b/data/maps/events/SecretBase_RedCave2.inc
index 910b2c074..910b2c074 100644
--- a/data/maps/events/SecretBase_RedCave2.s
+++ b/data/maps/events/SecretBase_RedCave2.inc
diff --git a/data/maps/events/SecretBase_RedCave3.s b/data/maps/events/SecretBase_RedCave3.inc
index 8745b272f..8745b272f 100644
--- a/data/maps/events/SecretBase_RedCave3.s
+++ b/data/maps/events/SecretBase_RedCave3.inc
diff --git a/data/maps/events/SecretBase_RedCave4.s b/data/maps/events/SecretBase_RedCave4.inc
index 60928ef5c..60928ef5c 100644
--- a/data/maps/events/SecretBase_RedCave4.s
+++ b/data/maps/events/SecretBase_RedCave4.inc
diff --git a/data/maps/events/SecretBase_Shrub1.s b/data/maps/events/SecretBase_Shrub1.inc
index 17c2f2530..17c2f2530 100644
--- a/data/maps/events/SecretBase_Shrub1.s
+++ b/data/maps/events/SecretBase_Shrub1.inc
diff --git a/data/maps/events/SecretBase_Shrub2.s b/data/maps/events/SecretBase_Shrub2.inc
index 6b973e730..6b973e730 100644
--- a/data/maps/events/SecretBase_Shrub2.s
+++ b/data/maps/events/SecretBase_Shrub2.inc
diff --git a/data/maps/events/SecretBase_Shrub3.s b/data/maps/events/SecretBase_Shrub3.inc
index 12e2c7c81..12e2c7c81 100644
--- a/data/maps/events/SecretBase_Shrub3.s
+++ b/data/maps/events/SecretBase_Shrub3.inc
diff --git a/data/maps/events/SecretBase_Shrub4.s b/data/maps/events/SecretBase_Shrub4.inc
index bd3b94522..bd3b94522 100644
--- a/data/maps/events/SecretBase_Shrub4.s
+++ b/data/maps/events/SecretBase_Shrub4.inc
diff --git a/data/maps/events/SecretBase_Tree1.s b/data/maps/events/SecretBase_Tree1.inc
index 465a0d2be..465a0d2be 100644
--- a/data/maps/events/SecretBase_Tree1.s
+++ b/data/maps/events/SecretBase_Tree1.inc
diff --git a/data/maps/events/SecretBase_Tree2.s b/data/maps/events/SecretBase_Tree2.inc
index d780ed779..d780ed779 100644
--- a/data/maps/events/SecretBase_Tree2.s
+++ b/data/maps/events/SecretBase_Tree2.inc
diff --git a/data/maps/events/SecretBase_Tree3.s b/data/maps/events/SecretBase_Tree3.inc
index 0c8888764..0c8888764 100644
--- a/data/maps/events/SecretBase_Tree3.s
+++ b/data/maps/events/SecretBase_Tree3.inc
diff --git a/data/maps/events/SecretBase_Tree4.s b/data/maps/events/SecretBase_Tree4.inc
index 675ee1b8e..675ee1b8e 100644
--- a/data/maps/events/SecretBase_Tree4.s
+++ b/data/maps/events/SecretBase_Tree4.inc
diff --git a/data/maps/events/SecretBase_YellowCave1.s b/data/maps/events/SecretBase_YellowCave1.inc
index 8c6999f9b..8c6999f9b 100644
--- a/data/maps/events/SecretBase_YellowCave1.s
+++ b/data/maps/events/SecretBase_YellowCave1.inc
diff --git a/data/maps/events/SecretBase_YellowCave2.s b/data/maps/events/SecretBase_YellowCave2.inc
index 8825836bf..8825836bf 100644
--- a/data/maps/events/SecretBase_YellowCave2.s
+++ b/data/maps/events/SecretBase_YellowCave2.inc
diff --git a/data/maps/events/SecretBase_YellowCave3.s b/data/maps/events/SecretBase_YellowCave3.inc
index a88e44190..a88e44190 100644
--- a/data/maps/events/SecretBase_YellowCave3.s
+++ b/data/maps/events/SecretBase_YellowCave3.inc
diff --git a/data/maps/events/SecretBase_YellowCave4.s b/data/maps/events/SecretBase_YellowCave4.inc
index 0280e088a..0280e088a 100644
--- a/data/maps/events/SecretBase_YellowCave4.s
+++ b/data/maps/events/SecretBase_YellowCave4.inc
diff --git a/data/maps/events/ShoalCave_HighTideEntranceRoom.s b/data/maps/events/ShoalCave_HighTideEntranceRoom.inc
index c7225843f..c7225843f 100644
--- a/data/maps/events/ShoalCave_HighTideEntranceRoom.s
+++ b/data/maps/events/ShoalCave_HighTideEntranceRoom.inc
diff --git a/data/maps/events/ShoalCave_HighTideInnerRoom.s b/data/maps/events/ShoalCave_HighTideInnerRoom.inc
index e7951742a..e7951742a 100644
--- a/data/maps/events/ShoalCave_HighTideInnerRoom.s
+++ b/data/maps/events/ShoalCave_HighTideInnerRoom.inc
diff --git a/data/maps/events/ShoalCave_LowTideEntranceRoom.s b/data/maps/events/ShoalCave_LowTideEntranceRoom.inc
index a9381d0c4..a9381d0c4 100644
--- a/data/maps/events/ShoalCave_LowTideEntranceRoom.s
+++ b/data/maps/events/ShoalCave_LowTideEntranceRoom.inc
diff --git a/data/maps/events/ShoalCave_LowTideIceRoom.s b/data/maps/events/ShoalCave_LowTideIceRoom.inc
index 2d5958a37..2d5958a37 100644
--- a/data/maps/events/ShoalCave_LowTideIceRoom.s
+++ b/data/maps/events/ShoalCave_LowTideIceRoom.inc
diff --git a/data/maps/events/ShoalCave_LowTideInnerRoom.s b/data/maps/events/ShoalCave_LowTideInnerRoom.inc
index 954c4c5e9..954c4c5e9 100644
--- a/data/maps/events/ShoalCave_LowTideInnerRoom.s
+++ b/data/maps/events/ShoalCave_LowTideInnerRoom.inc
diff --git a/data/maps/events/ShoalCave_LowTideLowerRoom.s b/data/maps/events/ShoalCave_LowTideLowerRoom.inc
index a1770b5bb..a1770b5bb 100644
--- a/data/maps/events/ShoalCave_LowTideLowerRoom.s
+++ b/data/maps/events/ShoalCave_LowTideLowerRoom.inc
diff --git a/data/maps/events/ShoalCave_LowTideStairsRoom.s b/data/maps/events/ShoalCave_LowTideStairsRoom.inc
index 878b1fca0..878b1fca0 100644
--- a/data/maps/events/ShoalCave_LowTideStairsRoom.s
+++ b/data/maps/events/ShoalCave_LowTideStairsRoom.inc
diff --git a/data/maps/events/SingleBattleColosseum.s b/data/maps/events/SingleBattleColosseum.inc
index 1d4b51476..1d4b51476 100644
--- a/data/maps/events/SingleBattleColosseum.s
+++ b/data/maps/events/SingleBattleColosseum.inc
diff --git a/data/maps/events/SkyPillar_1F.s b/data/maps/events/SkyPillar_1F.inc
index eaf7fa955..eaf7fa955 100644
--- a/data/maps/events/SkyPillar_1F.s
+++ b/data/maps/events/SkyPillar_1F.inc
diff --git a/data/maps/events/SkyPillar_2F.s b/data/maps/events/SkyPillar_2F.inc
index ffd0d7d25..ffd0d7d25 100644
--- a/data/maps/events/SkyPillar_2F.s
+++ b/data/maps/events/SkyPillar_2F.inc
diff --git a/data/maps/events/SkyPillar_3F.s b/data/maps/events/SkyPillar_3F.inc
index c34440ab7..c34440ab7 100644
--- a/data/maps/events/SkyPillar_3F.s
+++ b/data/maps/events/SkyPillar_3F.inc
diff --git a/data/maps/events/SkyPillar_4F.s b/data/maps/events/SkyPillar_4F.inc
index 77586a25a..77586a25a 100644
--- a/data/maps/events/SkyPillar_4F.s
+++ b/data/maps/events/SkyPillar_4F.inc
diff --git a/data/maps/events/SkyPillar_5F.s b/data/maps/events/SkyPillar_5F.inc
index 7c4ea5a97..7c4ea5a97 100644
--- a/data/maps/events/SkyPillar_5F.s
+++ b/data/maps/events/SkyPillar_5F.inc
diff --git a/data/maps/events/SkyPillar_Entrance.s b/data/maps/events/SkyPillar_Entrance.inc
index d27442989..d27442989 100644
--- a/data/maps/events/SkyPillar_Entrance.s
+++ b/data/maps/events/SkyPillar_Entrance.inc
diff --git a/data/maps/events/SkyPillar_Outside.s b/data/maps/events/SkyPillar_Outside.inc
index 05ffe4df8..05ffe4df8 100644
--- a/data/maps/events/SkyPillar_Outside.s
+++ b/data/maps/events/SkyPillar_Outside.inc
diff --git a/data/maps/events/SkyPillar_Top.s b/data/maps/events/SkyPillar_Top.inc
index 6c9d8abc6..6c9d8abc6 100644
--- a/data/maps/events/SkyPillar_Top.s
+++ b/data/maps/events/SkyPillar_Top.inc
diff --git a/data/maps/events/SlateportCity.s b/data/maps/events/SlateportCity.inc
index bef2bf0d9..bef2bf0d9 100644
--- a/data/maps/events/SlateportCity.s
+++ b/data/maps/events/SlateportCity.inc
diff --git a/data/maps/events/SlateportCity_ContestHall.s b/data/maps/events/SlateportCity_ContestHall.inc
index ae3e4ea7b..ae3e4ea7b 100644
--- a/data/maps/events/SlateportCity_ContestHall.s
+++ b/data/maps/events/SlateportCity_ContestHall.inc
diff --git a/data/maps/events/SlateportCity_ContestLobby.s b/data/maps/events/SlateportCity_ContestLobby.inc
index 74a8bc131..74a8bc131 100644
--- a/data/maps/events/SlateportCity_ContestLobby.s
+++ b/data/maps/events/SlateportCity_ContestLobby.inc
diff --git a/data/maps/events/SlateportCity_Harbor.s b/data/maps/events/SlateportCity_Harbor.inc
index 3fbbd72c2..3fbbd72c2 100644
--- a/data/maps/events/SlateportCity_Harbor.s
+++ b/data/maps/events/SlateportCity_Harbor.inc
diff --git a/data/maps/events/SlateportCity_House1.s b/data/maps/events/SlateportCity_House1.inc
index 3379b7fef..3379b7fef 100644
--- a/data/maps/events/SlateportCity_House1.s
+++ b/data/maps/events/SlateportCity_House1.inc
diff --git a/data/maps/events/SlateportCity_House2.s b/data/maps/events/SlateportCity_House2.inc
index a147ec7ce..a147ec7ce 100644
--- a/data/maps/events/SlateportCity_House2.s
+++ b/data/maps/events/SlateportCity_House2.inc
diff --git a/data/maps/events/SlateportCity_Mart.s b/data/maps/events/SlateportCity_Mart.inc
index 54072eccc..54072eccc 100644
--- a/data/maps/events/SlateportCity_Mart.s
+++ b/data/maps/events/SlateportCity_Mart.inc
diff --git a/data/maps/events/SlateportCity_OceanicMuseum_1F.s b/data/maps/events/SlateportCity_OceanicMuseum_1F.inc
index 9756d6745..9756d6745 100644
--- a/data/maps/events/SlateportCity_OceanicMuseum_1F.s
+++ b/data/maps/events/SlateportCity_OceanicMuseum_1F.inc
diff --git a/data/maps/events/SlateportCity_OceanicMuseum_2F.s b/data/maps/events/SlateportCity_OceanicMuseum_2F.inc
index a081e15d3..a081e15d3 100644
--- a/data/maps/events/SlateportCity_OceanicMuseum_2F.s
+++ b/data/maps/events/SlateportCity_OceanicMuseum_2F.inc
diff --git a/data/maps/events/SlateportCity_PokemonCenter_1F.s b/data/maps/events/SlateportCity_PokemonCenter_1F.inc
index dfd38dc51..dfd38dc51 100644
--- a/data/maps/events/SlateportCity_PokemonCenter_1F.s
+++ b/data/maps/events/SlateportCity_PokemonCenter_1F.inc
diff --git a/data/maps/events/SlateportCity_PokemonCenter_2F.s b/data/maps/events/SlateportCity_PokemonCenter_2F.inc
index db723fa33..db723fa33 100644
--- a/data/maps/events/SlateportCity_PokemonCenter_2F.s
+++ b/data/maps/events/SlateportCity_PokemonCenter_2F.inc
diff --git a/data/maps/events/SlateportCity_PokemonFanClub.s b/data/maps/events/SlateportCity_PokemonFanClub.inc
index 8003a3439..8003a3439 100644
--- a/data/maps/events/SlateportCity_PokemonFanClub.s
+++ b/data/maps/events/SlateportCity_PokemonFanClub.inc
diff --git a/data/maps/events/SlateportCity_SternsShipyard_1F.s b/data/maps/events/SlateportCity_SternsShipyard_1F.inc
index 38d14fa4e..38d14fa4e 100644
--- a/data/maps/events/SlateportCity_SternsShipyard_1F.s
+++ b/data/maps/events/SlateportCity_SternsShipyard_1F.inc
diff --git a/data/maps/events/SlateportCity_SternsShipyard_2F.s b/data/maps/events/SlateportCity_SternsShipyard_2F.inc
index cd26ed1cc..cd26ed1cc 100644
--- a/data/maps/events/SlateportCity_SternsShipyard_2F.s
+++ b/data/maps/events/SlateportCity_SternsShipyard_2F.inc
diff --git a/data/maps/events/SootopolisCity.s b/data/maps/events/SootopolisCity.inc
index a93db6a93..a93db6a93 100644
--- a/data/maps/events/SootopolisCity.s
+++ b/data/maps/events/SootopolisCity.inc
diff --git a/data/maps/events/SootopolisCity_Gym_1F.s b/data/maps/events/SootopolisCity_Gym_1F.inc
index 88707692e..88707692e 100644
--- a/data/maps/events/SootopolisCity_Gym_1F.s
+++ b/data/maps/events/SootopolisCity_Gym_1F.inc
diff --git a/data/maps/events/SootopolisCity_Gym_B1F.s b/data/maps/events/SootopolisCity_Gym_B1F.inc
index 44827aaf5..44827aaf5 100644
--- a/data/maps/events/SootopolisCity_Gym_B1F.s
+++ b/data/maps/events/SootopolisCity_Gym_B1F.inc
diff --git a/data/maps/events/SootopolisCity_House1.s b/data/maps/events/SootopolisCity_House1.inc
index bddda2d88..bddda2d88 100644
--- a/data/maps/events/SootopolisCity_House1.s
+++ b/data/maps/events/SootopolisCity_House1.inc
diff --git a/data/maps/events/SootopolisCity_House2.s b/data/maps/events/SootopolisCity_House2.inc
index 01cf77ddb..01cf77ddb 100644
--- a/data/maps/events/SootopolisCity_House2.s
+++ b/data/maps/events/SootopolisCity_House2.inc
diff --git a/data/maps/events/SootopolisCity_House3.s b/data/maps/events/SootopolisCity_House3.inc
index dfae0f969..dfae0f969 100644
--- a/data/maps/events/SootopolisCity_House3.s
+++ b/data/maps/events/SootopolisCity_House3.inc
diff --git a/data/maps/events/SootopolisCity_House4.s b/data/maps/events/SootopolisCity_House4.inc
index 766dbc682..766dbc682 100644
--- a/data/maps/events/SootopolisCity_House4.s
+++ b/data/maps/events/SootopolisCity_House4.inc
diff --git a/data/maps/events/SootopolisCity_House5.s b/data/maps/events/SootopolisCity_House5.inc
index 499bc26de..499bc26de 100644
--- a/data/maps/events/SootopolisCity_House5.s
+++ b/data/maps/events/SootopolisCity_House5.inc
diff --git a/data/maps/events/SootopolisCity_House6.s b/data/maps/events/SootopolisCity_House6.inc
index 9fcb17f50..9fcb17f50 100644
--- a/data/maps/events/SootopolisCity_House6.s
+++ b/data/maps/events/SootopolisCity_House6.inc
diff --git a/data/maps/events/SootopolisCity_House7.s b/data/maps/events/SootopolisCity_House7.inc
index d23992a32..d23992a32 100644
--- a/data/maps/events/SootopolisCity_House7.s
+++ b/data/maps/events/SootopolisCity_House7.inc
diff --git a/data/maps/events/SootopolisCity_House8.s b/data/maps/events/SootopolisCity_House8.inc
index 4fd384f2b..4fd384f2b 100644
--- a/data/maps/events/SootopolisCity_House8.s
+++ b/data/maps/events/SootopolisCity_House8.inc
diff --git a/data/maps/events/SootopolisCity_Mart.s b/data/maps/events/SootopolisCity_Mart.inc
index 144a2b79b..144a2b79b 100644
--- a/data/maps/events/SootopolisCity_Mart.s
+++ b/data/maps/events/SootopolisCity_Mart.inc
diff --git a/data/maps/events/SootopolisCity_PokemonCenter_1F.s b/data/maps/events/SootopolisCity_PokemonCenter_1F.inc
index c69ebb84c..c69ebb84c 100644
--- a/data/maps/events/SootopolisCity_PokemonCenter_1F.s
+++ b/data/maps/events/SootopolisCity_PokemonCenter_1F.inc
diff --git a/data/maps/events/SootopolisCity_PokemonCenter_2F.s b/data/maps/events/SootopolisCity_PokemonCenter_2F.inc
index 217185c78..217185c78 100644
--- a/data/maps/events/SootopolisCity_PokemonCenter_2F.s
+++ b/data/maps/events/SootopolisCity_PokemonCenter_2F.inc
diff --git a/data/maps/events/SouthernIsland_Exterior.s b/data/maps/events/SouthernIsland_Exterior.inc
index 062b72d1f..062b72d1f 100644
--- a/data/maps/events/SouthernIsland_Exterior.s
+++ b/data/maps/events/SouthernIsland_Exterior.inc
diff --git a/data/maps/events/SouthernIsland_Interior.s b/data/maps/events/SouthernIsland_Interior.inc
index 77073fc85..77073fc85 100644
--- a/data/maps/events/SouthernIsland_Interior.s
+++ b/data/maps/events/SouthernIsland_Interior.inc
diff --git a/data/maps/events/TradeCenter.s b/data/maps/events/TradeCenter.inc
index 8c5ff5578..8c5ff5578 100644
--- a/data/maps/events/TradeCenter.s
+++ b/data/maps/events/TradeCenter.inc
diff --git a/data/maps/events/Underwater1.s b/data/maps/events/Underwater1.inc
index e67181a50..e67181a50 100644
--- a/data/maps/events/Underwater1.s
+++ b/data/maps/events/Underwater1.inc
diff --git a/data/maps/events/Underwater2.s b/data/maps/events/Underwater2.inc
index a9ecbd465..a9ecbd465 100644
--- a/data/maps/events/Underwater2.s
+++ b/data/maps/events/Underwater2.inc
diff --git a/data/maps/events/Underwater3.s b/data/maps/events/Underwater3.inc
index 1e0925650..1e0925650 100644
--- a/data/maps/events/Underwater3.s
+++ b/data/maps/events/Underwater3.inc
diff --git a/data/maps/events/Underwater4.s b/data/maps/events/Underwater4.inc
index 711131621..711131621 100644
--- a/data/maps/events/Underwater4.s
+++ b/data/maps/events/Underwater4.inc
diff --git a/data/maps/events/Underwater_Route134.s b/data/maps/events/Underwater_Route134.inc
index f6c734112..f6c734112 100644
--- a/data/maps/events/Underwater_Route134.s
+++ b/data/maps/events/Underwater_Route134.inc
diff --git a/data/maps/events/Underwater_SeafloorCavern.s b/data/maps/events/Underwater_SeafloorCavern.inc
index e06e0a498..e06e0a498 100644
--- a/data/maps/events/Underwater_SeafloorCavern.s
+++ b/data/maps/events/Underwater_SeafloorCavern.inc
diff --git a/data/maps/events/Underwater_SealedChamber.s b/data/maps/events/Underwater_SealedChamber.inc
index 867527aaf..867527aaf 100644
--- a/data/maps/events/Underwater_SealedChamber.s
+++ b/data/maps/events/Underwater_SealedChamber.inc
diff --git a/data/maps/events/Underwater_SootopolisCity.s b/data/maps/events/Underwater_SootopolisCity.inc
index fb48a32fb..fb48a32fb 100644
--- a/data/maps/events/Underwater_SootopolisCity.s
+++ b/data/maps/events/Underwater_SootopolisCity.inc
diff --git a/data/maps/events/UnknownMap_25_29.s b/data/maps/events/UnknownMap_25_29.inc
index 5f3412382..5f3412382 100644
--- a/data/maps/events/UnknownMap_25_29.s
+++ b/data/maps/events/UnknownMap_25_29.inc
diff --git a/data/maps/events/UnknownMap_25_30.s b/data/maps/events/UnknownMap_25_30.inc
index 8ce359a0b..8ce359a0b 100644
--- a/data/maps/events/UnknownMap_25_30.s
+++ b/data/maps/events/UnknownMap_25_30.inc
diff --git a/data/maps/events/UnknownMap_25_31.s b/data/maps/events/UnknownMap_25_31.inc
index f2eabe57f..f2eabe57f 100644
--- a/data/maps/events/UnknownMap_25_31.s
+++ b/data/maps/events/UnknownMap_25_31.inc
diff --git a/data/maps/events/UnknownMap_25_32.s b/data/maps/events/UnknownMap_25_32.inc
index aa0435850..aa0435850 100644
--- a/data/maps/events/UnknownMap_25_32.s
+++ b/data/maps/events/UnknownMap_25_32.inc
diff --git a/data/maps/events/UnknownMap_25_33.s b/data/maps/events/UnknownMap_25_33.inc
index db91b6ef5..db91b6ef5 100644
--- a/data/maps/events/UnknownMap_25_33.s
+++ b/data/maps/events/UnknownMap_25_33.inc
diff --git a/data/maps/events/UnknownMap_25_34.s b/data/maps/events/UnknownMap_25_34.inc
index f3778b3eb..f3778b3eb 100644
--- a/data/maps/events/UnknownMap_25_34.s
+++ b/data/maps/events/UnknownMap_25_34.inc
diff --git a/data/maps/events/VerdanturfTown.s b/data/maps/events/VerdanturfTown.inc
index 1d40f7f53..1d40f7f53 100644
--- a/data/maps/events/VerdanturfTown.s
+++ b/data/maps/events/VerdanturfTown.inc
diff --git a/data/maps/events/VerdanturfTown_ContestHall.s b/data/maps/events/VerdanturfTown_ContestHall.inc
index 36f4d58e4..36f4d58e4 100644
--- a/data/maps/events/VerdanturfTown_ContestHall.s
+++ b/data/maps/events/VerdanturfTown_ContestHall.inc
diff --git a/data/maps/events/VerdanturfTown_ContestLobby.s b/data/maps/events/VerdanturfTown_ContestLobby.inc
index ec9d88d71..ec9d88d71 100644
--- a/data/maps/events/VerdanturfTown_ContestLobby.s
+++ b/data/maps/events/VerdanturfTown_ContestLobby.inc
diff --git a/data/maps/events/VerdanturfTown_FriendshipRatersHouse.s b/data/maps/events/VerdanturfTown_FriendshipRatersHouse.inc
index 6ec948511..6ec948511 100644
--- a/data/maps/events/VerdanturfTown_FriendshipRatersHouse.s
+++ b/data/maps/events/VerdanturfTown_FriendshipRatersHouse.inc
diff --git a/data/maps/events/VerdanturfTown_House.s b/data/maps/events/VerdanturfTown_House.inc
index 91a54684b..91a54684b 100644
--- a/data/maps/events/VerdanturfTown_House.s
+++ b/data/maps/events/VerdanturfTown_House.inc
diff --git a/data/maps/events/VerdanturfTown_Mart.s b/data/maps/events/VerdanturfTown_Mart.inc
index 90e1cf014..90e1cf014 100644
--- a/data/maps/events/VerdanturfTown_Mart.s
+++ b/data/maps/events/VerdanturfTown_Mart.inc
diff --git a/data/maps/events/VerdanturfTown_PokemonCenter_1F.s b/data/maps/events/VerdanturfTown_PokemonCenter_1F.inc
index 3db30796c..3db30796c 100644
--- a/data/maps/events/VerdanturfTown_PokemonCenter_1F.s
+++ b/data/maps/events/VerdanturfTown_PokemonCenter_1F.inc
diff --git a/data/maps/events/VerdanturfTown_PokemonCenter_2F.s b/data/maps/events/VerdanturfTown_PokemonCenter_2F.inc
index 89f02e31f..89f02e31f 100644
--- a/data/maps/events/VerdanturfTown_PokemonCenter_2F.s
+++ b/data/maps/events/VerdanturfTown_PokemonCenter_2F.inc
diff --git a/data/maps/events/VerdanturfTown_WandasHouse.s b/data/maps/events/VerdanturfTown_WandasHouse.inc
index 5d0f3e572..5d0f3e572 100644
--- a/data/maps/events/VerdanturfTown_WandasHouse.s
+++ b/data/maps/events/VerdanturfTown_WandasHouse.inc
diff --git a/data/maps/events/VictoryRoad_1F.s b/data/maps/events/VictoryRoad_1F.inc
index f3f8dcad6..f3f8dcad6 100644
--- a/data/maps/events/VictoryRoad_1F.s
+++ b/data/maps/events/VictoryRoad_1F.inc
diff --git a/data/maps/events/VictoryRoad_B1F.s b/data/maps/events/VictoryRoad_B1F.inc
index a4f778c4d..a4f778c4d 100644
--- a/data/maps/events/VictoryRoad_B1F.s
+++ b/data/maps/events/VictoryRoad_B1F.inc
diff --git a/data/maps/events/VictoryRoad_B2F.s b/data/maps/events/VictoryRoad_B2F.inc
index b4aa07e59..b4aa07e59 100644
--- a/data/maps/events/VictoryRoad_B2F.s
+++ b/data/maps/events/VictoryRoad_B2F.inc
diff --git a/data/maps/headers.s b/data/maps/headers.inc
index 71b2936d7..71b2936d7 100644
--- a/data/maps/headers.s
+++ b/data/maps/headers.inc
diff --git a/data/mon_pokeblock_anims.s b/data/mon_pokeblock_anims.inc
index d8df29c1d..d8df29c1d 100644
--- a/data/mon_pokeblock_anims.s
+++ b/data/mon_pokeblock_anims.inc
diff --git a/data/multichoice.s b/data/multichoice.inc
index 256038c23..256038c23 100644
--- a/data/multichoice.s
+++ b/data/multichoice.inc
diff --git a/data/nature_stat_table.s b/data/nature_stat_table.inc
index e09d41a43..e09d41a43 100644
--- a/data/nature_stat_table.s
+++ b/data/nature_stat_table.inc
diff --git a/data/pokedex_entries.s b/data/pokedex_entries.inc
index f1c206e3c..f1c206e3c 100644
--- a/data/pokedex_entries.s
+++ b/data/pokedex_entries.inc
diff --git a/data/pokedex_orders.s b/data/pokedex_orders.inc
index db1cf7e07..db1cf7e07 100644
--- a/data/pokedex_orders.s
+++ b/data/pokedex_orders.inc
diff --git a/data/region_map_locations.s b/data/region_map_locations.inc
index 389b5aa0c..389b5aa0c 100644
--- a/data/region_map_locations.s
+++ b/data/region_map_locations.inc
diff --git a/data/region_map_sections.s b/data/region_map_sections.inc
index 6336eac0e..6336eac0e 100644
--- a/data/region_map_sections.s
+++ b/data/region_map_sections.inc
diff --git a/data/script_cmd_table.s b/data/script_cmd_table.inc
index a68f2ca8d..a68f2ca8d 100644
--- a/data/script_cmd_table.s
+++ b/data/script_cmd_table.inc
diff --git a/data/scripts/bard.s b/data/scripts/bard.inc
index a30045fc8..a30045fc8 100644
--- a/data/scripts/bard.s
+++ b/data/scripts/bard.inc
diff --git a/data/scripts/berry_tree.s b/data/scripts/berry_tree.inc
index f6d98689e..fcf32d15d 100644
--- a/data/scripts/berry_tree.s
+++ b/data/scripts/berry_tree.inc
@@ -43,9 +43,9 @@ Route102_EventScript_1A1577:: @ 81A1577
closebutton
special 44
waitstate
- compare 0x800e, 0
+ compare ITEM_ID, 0
jumpeq Route102_EventScript_1A1593
- removeitem 0x800e, 1
+ removeitem ITEM_ID, 1
call Route102_EventScript_1A16A9
Route102_EventScript_1A1593:: @ 81A1593
diff --git a/data/scripts/cable_club.s b/data/scripts/cable_club.inc
index 32bb55a08..32bb55a08 100644
--- a/data/scripts/cable_club.s
+++ b/data/scripts/cable_club.inc
diff --git a/data/scripts/contest_hall.s b/data/scripts/contest_hall.inc
index 14e684cb9..a8b134c0b 100644
--- a/data/scripts/contest_hall.s
+++ b/data/scripts/contest_hall.inc
@@ -25,7 +25,7 @@ FallarborTown_ContestLobby_EventScript_1A4EDD:: @ 81A4EDD
return
FallarborTown_ContestLobby_EventScript_1A4EE1:: @ 81A4EE1
- compare 0x8010, 0
+ compare CONTEST_RANK, 0
jumpeq FallarborTown_ContestLobby_EventScript_1A4EF6
msgbox FallarborTown_ContestLobby_Text_1A6340, 4
releaseall
@@ -142,7 +142,7 @@ FallarborTown_ContestLobby_EventScript_1A5097:: @ 81A5097
switch RESULT
case 5, FallarborTown_ContestLobby_EventScript_1A503E
case 127, FallarborTown_ContestLobby_EventScript_1A503E
- copyvar 0x8011, RESULT
+ copyvar CONTEST_CATEGORY, RESULT
jump FallarborTown_ContestLobby_EventScript_1A5048
end
@@ -207,7 +207,7 @@ LinkContestRoom1_EventScript_1A514D:: @ 81A514D
return
LinkContestRoom1_EventScript_1A51A0:: @ 81A51A0
- switch 0x8010
+ switch CONTEST_RANK
case 0, LinkContestRoom1_EventScript_1A51D2
case 1, LinkContestRoom1_EventScript_1A51D8
case 2, LinkContestRoom1_EventScript_1A51DE
@@ -231,7 +231,7 @@ LinkContestRoom1_EventScript_1A51E4:: @ 81A51E4
return
LinkContestRoom1_EventScript_1A51EA:: @ 81A51EA
- switch 0x8011
+ switch CONTEST_CATEGORY
case 0, LinkContestRoom1_EventScript_1A5227
case 1, LinkContestRoom1_EventScript_1A522D
case 2, LinkContestRoom1_EventScript_1A5233
@@ -1033,7 +1033,7 @@ LinkContestRoom1_EventScript_1A5C23:: @ 81A5C23
return
LinkContestRoom1_EventScript_1A5C32:: @ 81A5C32
- compare 0x8010, 3
+ compare CONTEST_RANK, 3
jumpeq LinkContestRoom1_EventScript_1A5C41
setflag 2
return
@@ -1123,7 +1123,7 @@ LinkContestRoom1_EventScript_1A5CFC:: @ 81A5CFC
specialval RESULT, 88
compare RESULT, 0
jumpeq LinkContestRoom1_EventScript_1A5D5B
- compare 0x8010, 3
+ compare CONTEST_RANK, 3
jumpeq LinkContestRoom1_EventScript_1A5D3B
msgbox LinkContestRoom1_Text_1A6DF1, 3
return
diff --git a/data/scripts/day_care.s b/data/scripts/day_care.inc
index 1e248ba9f..1e248ba9f 100644
--- a/data/scripts/day_care.s
+++ b/data/scripts/day_care.inc
diff --git a/data/scripts/gabby_and_ty.s b/data/scripts/gabby_and_ty.inc
index f008e892b..f008e892b 100644
--- a/data/scripts/gabby_and_ty.s
+++ b/data/scripts/gabby_and_ty.inc
diff --git a/data/scripts/giddy.s b/data/scripts/giddy.inc
index 3cd57ad6e..3cd57ad6e 100644
--- a/data/scripts/giddy.s
+++ b/data/scripts/giddy.inc
diff --git a/data/scripts/hipster.s b/data/scripts/hipster.inc
index 833bb1605..833bb1605 100644
--- a/data/scripts/hipster.s
+++ b/data/scripts/hipster.inc
diff --git a/data/scripts/magma_chimney.s b/data/scripts/magma_chimney.inc
index a2f4f67b7..a2f4f67b7 100644
--- a/data/scripts/magma_chimney.s
+++ b/data/scripts/magma_chimney.inc
diff --git a/data/scripts/magma_summit.s b/data/scripts/magma_summit.inc
index ac71b038f..ac71b038f 100644
--- a/data/scripts/magma_summit.s
+++ b/data/scripts/magma_summit.inc
diff --git a/data/scripts/maps/AbandonedShip_CaptainsOffice.s b/data/scripts/maps/AbandonedShip_CaptainsOffice.inc
index cf525003e..cf525003e 100644
--- a/data/scripts/maps/AbandonedShip_CaptainsOffice.s
+++ b/data/scripts/maps/AbandonedShip_CaptainsOffice.inc
diff --git a/data/scripts/maps/AbandonedShip_Corridors_1F.s b/data/scripts/maps/AbandonedShip_Corridors_1F.inc
index 0c7278f3b..0c7278f3b 100644
--- a/data/scripts/maps/AbandonedShip_Corridors_1F.s
+++ b/data/scripts/maps/AbandonedShip_Corridors_1F.inc
diff --git a/data/scripts/maps/AbandonedShip_Corridors_B1F.s b/data/scripts/maps/AbandonedShip_Corridors_B1F.inc
index e6b6a8f3d..e6b6a8f3d 100644
--- a/data/scripts/maps/AbandonedShip_Corridors_B1F.s
+++ b/data/scripts/maps/AbandonedShip_Corridors_B1F.inc
diff --git a/data/scripts/maps/AbandonedShip_Deck.s b/data/scripts/maps/AbandonedShip_Deck.inc
index 49f837744..49f837744 100644
--- a/data/scripts/maps/AbandonedShip_Deck.s
+++ b/data/scripts/maps/AbandonedShip_Deck.inc
diff --git a/data/scripts/maps/AbandonedShip_HiddenFloorCorridors.s b/data/scripts/maps/AbandonedShip_HiddenFloorCorridors.inc
index 4b634106a..4b634106a 100644
--- a/data/scripts/maps/AbandonedShip_HiddenFloorCorridors.s
+++ b/data/scripts/maps/AbandonedShip_HiddenFloorCorridors.inc
diff --git a/data/scripts/maps/AbandonedShip_HiddenFloorRooms.s b/data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc
index 5e90673fe..5e90673fe 100644
--- a/data/scripts/maps/AbandonedShip_HiddenFloorRooms.s
+++ b/data/scripts/maps/AbandonedShip_HiddenFloorRooms.inc
diff --git a/data/scripts/maps/AbandonedShip_Room_B1F.s b/data/scripts/maps/AbandonedShip_Room_B1F.inc
index 4cdc8bbd1..4cdc8bbd1 100644
--- a/data/scripts/maps/AbandonedShip_Room_B1F.s
+++ b/data/scripts/maps/AbandonedShip_Room_B1F.inc
diff --git a/data/scripts/maps/AbandonedShip_Rooms2_1F.s b/data/scripts/maps/AbandonedShip_Rooms2_1F.inc
index b2525d62e..b2525d62e 100644
--- a/data/scripts/maps/AbandonedShip_Rooms2_1F.s
+++ b/data/scripts/maps/AbandonedShip_Rooms2_1F.inc
diff --git a/data/scripts/maps/AbandonedShip_Rooms2_B1F.s b/data/scripts/maps/AbandonedShip_Rooms2_B1F.inc
index 0c8f3ffc9..0c8f3ffc9 100644
--- a/data/scripts/maps/AbandonedShip_Rooms2_B1F.s
+++ b/data/scripts/maps/AbandonedShip_Rooms2_B1F.inc
diff --git a/data/scripts/maps/AbandonedShip_Rooms_1F.s b/data/scripts/maps/AbandonedShip_Rooms_1F.inc
index c5f9ad3f5..c5f9ad3f5 100644
--- a/data/scripts/maps/AbandonedShip_Rooms_1F.s
+++ b/data/scripts/maps/AbandonedShip_Rooms_1F.inc
diff --git a/data/scripts/maps/AbandonedShip_Rooms_B1F.s b/data/scripts/maps/AbandonedShip_Rooms_B1F.inc
index 44b8c5f20..44b8c5f20 100644
--- a/data/scripts/maps/AbandonedShip_Rooms_B1F.s
+++ b/data/scripts/maps/AbandonedShip_Rooms_B1F.inc
diff --git a/data/scripts/maps/AbandonedShip_Underwater1.s b/data/scripts/maps/AbandonedShip_Underwater1.inc
index 71d903682..71d903682 100644
--- a/data/scripts/maps/AbandonedShip_Underwater1.s
+++ b/data/scripts/maps/AbandonedShip_Underwater1.inc
diff --git a/data/scripts/maps/AbandonedShip_Underwater2.s b/data/scripts/maps/AbandonedShip_Underwater2.inc
index f7b434c07..f7b434c07 100644
--- a/data/scripts/maps/AbandonedShip_Underwater2.s
+++ b/data/scripts/maps/AbandonedShip_Underwater2.inc
diff --git a/data/scripts/maps/AncientTomb.s b/data/scripts/maps/AncientTomb.inc
index f8eba6a9d..f8eba6a9d 100644
--- a/data/scripts/maps/AncientTomb.s
+++ b/data/scripts/maps/AncientTomb.inc
diff --git a/data/scripts/maps/AquaHideout_1F.s b/data/scripts/maps/AquaHideout_1F.inc
index cc1ad33b1..cc1ad33b1 100644
--- a/data/scripts/maps/AquaHideout_1F.s
+++ b/data/scripts/maps/AquaHideout_1F.inc
diff --git a/data/scripts/maps/AquaHideout_B1F.s b/data/scripts/maps/AquaHideout_B1F.inc
index 969d590e3..969d590e3 100644
--- a/data/scripts/maps/AquaHideout_B1F.s
+++ b/data/scripts/maps/AquaHideout_B1F.inc
diff --git a/data/scripts/maps/AquaHideout_B2F.s b/data/scripts/maps/AquaHideout_B2F.inc
index 845b755b7..845b755b7 100644
--- a/data/scripts/maps/AquaHideout_B2F.s
+++ b/data/scripts/maps/AquaHideout_B2F.inc
diff --git a/data/scripts/maps/BattleTower_BattleRoom.s b/data/scripts/maps/BattleTower_BattleRoom.inc
index d991b8853..d991b8853 100644
--- a/data/scripts/maps/BattleTower_BattleRoom.s
+++ b/data/scripts/maps/BattleTower_BattleRoom.inc
diff --git a/data/scripts/maps/BattleTower_Corridor.s b/data/scripts/maps/BattleTower_Corridor.inc
index 4ccf2028c..4ccf2028c 100644
--- a/data/scripts/maps/BattleTower_Corridor.s
+++ b/data/scripts/maps/BattleTower_Corridor.inc
diff --git a/data/scripts/maps/BattleTower_Elevator.s b/data/scripts/maps/BattleTower_Elevator.inc
index 7a79cc4e9..7a79cc4e9 100644
--- a/data/scripts/maps/BattleTower_Elevator.s
+++ b/data/scripts/maps/BattleTower_Elevator.inc
diff --git a/data/scripts/maps/BattleTower_Lobby.s b/data/scripts/maps/BattleTower_Lobby.inc
index cee3d7cec..cee3d7cec 100644
--- a/data/scripts/maps/BattleTower_Lobby.s
+++ b/data/scripts/maps/BattleTower_Lobby.inc
diff --git a/data/scripts/maps/BattleTower_Outside.s b/data/scripts/maps/BattleTower_Outside.inc
index 02c4e0c6f..02c4e0c6f 100644
--- a/data/scripts/maps/BattleTower_Outside.s
+++ b/data/scripts/maps/BattleTower_Outside.inc
diff --git a/data/scripts/maps/CaveOfOrigin_1F.s b/data/scripts/maps/CaveOfOrigin_1F.inc
index 7fd365b36..7fd365b36 100644
--- a/data/scripts/maps/CaveOfOrigin_1F.s
+++ b/data/scripts/maps/CaveOfOrigin_1F.inc
diff --git a/data/scripts/maps/CaveOfOrigin_B1F.s b/data/scripts/maps/CaveOfOrigin_B1F.inc
index 9603ae83b..9603ae83b 100644
--- a/data/scripts/maps/CaveOfOrigin_B1F.s
+++ b/data/scripts/maps/CaveOfOrigin_B1F.inc
diff --git a/data/scripts/maps/CaveOfOrigin_B2F.s b/data/scripts/maps/CaveOfOrigin_B2F.inc
index 6b3a55648..6b3a55648 100644
--- a/data/scripts/maps/CaveOfOrigin_B2F.s
+++ b/data/scripts/maps/CaveOfOrigin_B2F.inc
diff --git a/data/scripts/maps/CaveOfOrigin_B3F.s b/data/scripts/maps/CaveOfOrigin_B3F.inc
index 8e61048d2..8e61048d2 100644
--- a/data/scripts/maps/CaveOfOrigin_B3F.s
+++ b/data/scripts/maps/CaveOfOrigin_B3F.inc
diff --git a/data/scripts/maps/CaveOfOrigin_B4F.s b/data/scripts/maps/CaveOfOrigin_B4F.inc
index e9f23ff5a..e9f23ff5a 100644
--- a/data/scripts/maps/CaveOfOrigin_B4F.s
+++ b/data/scripts/maps/CaveOfOrigin_B4F.inc
diff --git a/data/scripts/maps/CaveOfOrigin_Entrance.s b/data/scripts/maps/CaveOfOrigin_Entrance.inc
index 68f91e0bd..68f91e0bd 100644
--- a/data/scripts/maps/CaveOfOrigin_Entrance.s
+++ b/data/scripts/maps/CaveOfOrigin_Entrance.inc
diff --git a/data/scripts/maps/DesertRuins.s b/data/scripts/maps/DesertRuins.inc
index d5787d792..d5787d792 100644
--- a/data/scripts/maps/DesertRuins.s
+++ b/data/scripts/maps/DesertRuins.inc
diff --git a/data/scripts/maps/DewfordTown.s b/data/scripts/maps/DewfordTown.inc
index 8ca2eb3df..8ca2eb3df 100644
--- a/data/scripts/maps/DewfordTown.s
+++ b/data/scripts/maps/DewfordTown.inc
diff --git a/data/scripts/maps/DewfordTown_Gym.s b/data/scripts/maps/DewfordTown_Gym.inc
index 51d4f44ba..51d4f44ba 100644
--- a/data/scripts/maps/DewfordTown_Gym.s
+++ b/data/scripts/maps/DewfordTown_Gym.inc
diff --git a/data/scripts/maps/DewfordTown_Hall.s b/data/scripts/maps/DewfordTown_Hall.inc
index 0b25e0aba..0b25e0aba 100644
--- a/data/scripts/maps/DewfordTown_Hall.s
+++ b/data/scripts/maps/DewfordTown_Hall.inc
diff --git a/data/scripts/maps/DewfordTown_House1.s b/data/scripts/maps/DewfordTown_House1.inc
index 40e06357c..40e06357c 100644
--- a/data/scripts/maps/DewfordTown_House1.s
+++ b/data/scripts/maps/DewfordTown_House1.inc
diff --git a/data/scripts/maps/DewfordTown_House2.s b/data/scripts/maps/DewfordTown_House2.inc
index 529f8bb24..529f8bb24 100644
--- a/data/scripts/maps/DewfordTown_House2.s
+++ b/data/scripts/maps/DewfordTown_House2.inc
diff --git a/data/scripts/maps/DewfordTown_PokemonCenter_1F.s b/data/scripts/maps/DewfordTown_PokemonCenter_1F.inc
index 96c198ae5..96c198ae5 100644
--- a/data/scripts/maps/DewfordTown_PokemonCenter_1F.s
+++ b/data/scripts/maps/DewfordTown_PokemonCenter_1F.inc
diff --git a/data/scripts/maps/DewfordTown_PokemonCenter_2F.s b/data/scripts/maps/DewfordTown_PokemonCenter_2F.inc
index 554c9ef6b..554c9ef6b 100644
--- a/data/scripts/maps/DewfordTown_PokemonCenter_2F.s
+++ b/data/scripts/maps/DewfordTown_PokemonCenter_2F.inc
diff --git a/data/scripts/maps/DoubleBattleColosseum.s b/data/scripts/maps/DoubleBattleColosseum.inc
index 9bc33e6bd..9bc33e6bd 100644
--- a/data/scripts/maps/DoubleBattleColosseum.s
+++ b/data/scripts/maps/DoubleBattleColosseum.inc
diff --git a/data/scripts/maps/EverGrandeCity.s b/data/scripts/maps/EverGrandeCity.inc
index 9b6d2a8b7..9b6d2a8b7 100644
--- a/data/scripts/maps/EverGrandeCity.s
+++ b/data/scripts/maps/EverGrandeCity.inc
diff --git a/data/scripts/maps/EverGrandeCity_ChampionsRoom.s b/data/scripts/maps/EverGrandeCity_ChampionsRoom.inc
index 0e5dc21b0..0e5dc21b0 100644
--- a/data/scripts/maps/EverGrandeCity_ChampionsRoom.s
+++ b/data/scripts/maps/EverGrandeCity_ChampionsRoom.inc
diff --git a/data/scripts/maps/EverGrandeCity_Corridor1.s b/data/scripts/maps/EverGrandeCity_Corridor1.inc
index 499ad673f..499ad673f 100644
--- a/data/scripts/maps/EverGrandeCity_Corridor1.s
+++ b/data/scripts/maps/EverGrandeCity_Corridor1.inc
diff --git a/data/scripts/maps/EverGrandeCity_Corridor2.s b/data/scripts/maps/EverGrandeCity_Corridor2.inc
index 692de1ed9..692de1ed9 100644
--- a/data/scripts/maps/EverGrandeCity_Corridor2.s
+++ b/data/scripts/maps/EverGrandeCity_Corridor2.inc
diff --git a/data/scripts/maps/EverGrandeCity_Corridor3.s b/data/scripts/maps/EverGrandeCity_Corridor3.inc
index f8ed19669..f8ed19669 100644
--- a/data/scripts/maps/EverGrandeCity_Corridor3.s
+++ b/data/scripts/maps/EverGrandeCity_Corridor3.inc
diff --git a/data/scripts/maps/EverGrandeCity_Corridor4.s b/data/scripts/maps/EverGrandeCity_Corridor4.inc
index 616a25ec5..616a25ec5 100644
--- a/data/scripts/maps/EverGrandeCity_Corridor4.s
+++ b/data/scripts/maps/EverGrandeCity_Corridor4.inc
diff --git a/data/scripts/maps/EverGrandeCity_Corridor5.s b/data/scripts/maps/EverGrandeCity_Corridor5.inc
index 783b03aec..783b03aec 100644
--- a/data/scripts/maps/EverGrandeCity_Corridor5.s
+++ b/data/scripts/maps/EverGrandeCity_Corridor5.inc
diff --git a/data/scripts/maps/EverGrandeCity_DrakesRoom.s b/data/scripts/maps/EverGrandeCity_DrakesRoom.inc
index c16bd544f..c16bd544f 100644
--- a/data/scripts/maps/EverGrandeCity_DrakesRoom.s
+++ b/data/scripts/maps/EverGrandeCity_DrakesRoom.inc
diff --git a/data/scripts/maps/EverGrandeCity_GlaciasRoom.s b/data/scripts/maps/EverGrandeCity_GlaciasRoom.inc
index 039b2a772..039b2a772 100644
--- a/data/scripts/maps/EverGrandeCity_GlaciasRoom.s
+++ b/data/scripts/maps/EverGrandeCity_GlaciasRoom.inc
diff --git a/data/scripts/maps/EverGrandeCity_HallOfFame.s b/data/scripts/maps/EverGrandeCity_HallOfFame.inc
index 2e7099110..2e7099110 100644
--- a/data/scripts/maps/EverGrandeCity_HallOfFame.s
+++ b/data/scripts/maps/EverGrandeCity_HallOfFame.inc
diff --git a/data/scripts/maps/EverGrandeCity_PhoebesRoom.s b/data/scripts/maps/EverGrandeCity_PhoebesRoom.inc
index 7e8ee131a..7e8ee131a 100644
--- a/data/scripts/maps/EverGrandeCity_PhoebesRoom.s
+++ b/data/scripts/maps/EverGrandeCity_PhoebesRoom.inc
diff --git a/data/scripts/maps/EverGrandeCity_PokemonCenter_1F.s b/data/scripts/maps/EverGrandeCity_PokemonCenter_1F.inc
index 7c0b8b0a4..7c0b8b0a4 100644
--- a/data/scripts/maps/EverGrandeCity_PokemonCenter_1F.s
+++ b/data/scripts/maps/EverGrandeCity_PokemonCenter_1F.inc
diff --git a/data/scripts/maps/EverGrandeCity_PokemonCenter_2F.s b/data/scripts/maps/EverGrandeCity_PokemonCenter_2F.inc
index 9941e17e4..9941e17e4 100644
--- a/data/scripts/maps/EverGrandeCity_PokemonCenter_2F.s
+++ b/data/scripts/maps/EverGrandeCity_PokemonCenter_2F.inc
diff --git a/data/scripts/maps/EverGrandeCity_PokemonLeague.s b/data/scripts/maps/EverGrandeCity_PokemonLeague.inc
index bfb3cdc1b..bfb3cdc1b 100644
--- a/data/scripts/maps/EverGrandeCity_PokemonLeague.s
+++ b/data/scripts/maps/EverGrandeCity_PokemonLeague.inc
diff --git a/data/scripts/maps/EverGrandeCity_SidneysRoom.s b/data/scripts/maps/EverGrandeCity_SidneysRoom.inc
index 84a6c3fdc..84a6c3fdc 100644
--- a/data/scripts/maps/EverGrandeCity_SidneysRoom.s
+++ b/data/scripts/maps/EverGrandeCity_SidneysRoom.inc
diff --git a/data/scripts/maps/FallarborTown.s b/data/scripts/maps/FallarborTown.inc
index a48be5b24..a48be5b24 100644
--- a/data/scripts/maps/FallarborTown.s
+++ b/data/scripts/maps/FallarborTown.inc
diff --git a/data/scripts/maps/FallarborTown_ContestHall.s b/data/scripts/maps/FallarborTown_ContestHall.inc
index e3fcfd9bc..e3fcfd9bc 100644
--- a/data/scripts/maps/FallarborTown_ContestHall.s
+++ b/data/scripts/maps/FallarborTown_ContestHall.inc
diff --git a/data/scripts/maps/FallarborTown_ContestLobby.s b/data/scripts/maps/FallarborTown_ContestLobby.inc
index 9bbd48722..706d9aa5f 100644
--- a/data/scripts/maps/FallarborTown_ContestLobby.s
+++ b/data/scripts/maps/FallarborTown_ContestLobby.inc
@@ -8,7 +8,7 @@ FallarborTown_ContestLobby_MapScript1_1539C7:: @ 81539C7
FallarborTown_ContestLobby_EventScript_1539CD:: @ 81539CD
setvar 0x800b, 6
- setvar 0x8010, 1
+ setvar CONTEST_RANK, 1
call FallarborTown_ContestLobby_EventScript_1A4E92
call FallarborTown_ContestLobby_EventScript_1539F8
special 83
diff --git a/data/scripts/maps/FallarborTown_House1.s b/data/scripts/maps/FallarborTown_House1.inc
index 8a44cdcfb..8a44cdcfb 100644
--- a/data/scripts/maps/FallarborTown_House1.s
+++ b/data/scripts/maps/FallarborTown_House1.inc
diff --git a/data/scripts/maps/FallarborTown_House2.s b/data/scripts/maps/FallarborTown_House2.inc
index 179f281af..179f281af 100644
--- a/data/scripts/maps/FallarborTown_House2.s
+++ b/data/scripts/maps/FallarborTown_House2.inc
diff --git a/data/scripts/maps/FallarborTown_Mart.s b/data/scripts/maps/FallarborTown_Mart.inc
index 4b66546e8..4b66546e8 100644
--- a/data/scripts/maps/FallarborTown_Mart.s
+++ b/data/scripts/maps/FallarborTown_Mart.inc
diff --git a/data/scripts/maps/FallarborTown_PokemonCenter_1F.s b/data/scripts/maps/FallarborTown_PokemonCenter_1F.inc
index 636cac8f1..636cac8f1 100644
--- a/data/scripts/maps/FallarborTown_PokemonCenter_1F.s
+++ b/data/scripts/maps/FallarborTown_PokemonCenter_1F.inc
diff --git a/data/scripts/maps/FallarborTown_PokemonCenter_2F.s b/data/scripts/maps/FallarborTown_PokemonCenter_2F.inc
index 148b22531..148b22531 100644
--- a/data/scripts/maps/FallarborTown_PokemonCenter_2F.s
+++ b/data/scripts/maps/FallarborTown_PokemonCenter_2F.inc
diff --git a/data/scripts/maps/FieryPath.s b/data/scripts/maps/FieryPath.inc
index bd984ad20..bd984ad20 100644
--- a/data/scripts/maps/FieryPath.s
+++ b/data/scripts/maps/FieryPath.inc
diff --git a/data/scripts/maps/FortreeCity.s b/data/scripts/maps/FortreeCity.inc
index 7f9d5ae12..7f9d5ae12 100644
--- a/data/scripts/maps/FortreeCity.s
+++ b/data/scripts/maps/FortreeCity.inc
diff --git a/data/scripts/maps/FortreeCity_DecorationShop.s b/data/scripts/maps/FortreeCity_DecorationShop.inc
index c9d9fdd4e..c9d9fdd4e 100644
--- a/data/scripts/maps/FortreeCity_DecorationShop.s
+++ b/data/scripts/maps/FortreeCity_DecorationShop.inc
diff --git a/data/scripts/maps/FortreeCity_Gym.s b/data/scripts/maps/FortreeCity_Gym.inc
index 1bf6b0825..1bf6b0825 100644
--- a/data/scripts/maps/FortreeCity_Gym.s
+++ b/data/scripts/maps/FortreeCity_Gym.inc
diff --git a/data/scripts/maps/FortreeCity_House1.s b/data/scripts/maps/FortreeCity_House1.inc
index 0ae6e3fbd..0ae6e3fbd 100644
--- a/data/scripts/maps/FortreeCity_House1.s
+++ b/data/scripts/maps/FortreeCity_House1.inc
diff --git a/data/scripts/maps/FortreeCity_House2.s b/data/scripts/maps/FortreeCity_House2.inc
index ea4aad3d8..ea4aad3d8 100644
--- a/data/scripts/maps/FortreeCity_House2.s
+++ b/data/scripts/maps/FortreeCity_House2.inc
diff --git a/data/scripts/maps/FortreeCity_House3.s b/data/scripts/maps/FortreeCity_House3.inc
index f5d11ffa7..f5d11ffa7 100644
--- a/data/scripts/maps/FortreeCity_House3.s
+++ b/data/scripts/maps/FortreeCity_House3.inc
diff --git a/data/scripts/maps/FortreeCity_House4.s b/data/scripts/maps/FortreeCity_House4.inc
index 33d0ed1ae..33d0ed1ae 100644
--- a/data/scripts/maps/FortreeCity_House4.s
+++ b/data/scripts/maps/FortreeCity_House4.inc
diff --git a/data/scripts/maps/FortreeCity_House5.s b/data/scripts/maps/FortreeCity_House5.inc
index 1144a8e81..1144a8e81 100644
--- a/data/scripts/maps/FortreeCity_House5.s
+++ b/data/scripts/maps/FortreeCity_House5.inc
diff --git a/data/scripts/maps/FortreeCity_Mart.s b/data/scripts/maps/FortreeCity_Mart.inc
index 9e5f34ff9..9e5f34ff9 100644
--- a/data/scripts/maps/FortreeCity_Mart.s
+++ b/data/scripts/maps/FortreeCity_Mart.inc
diff --git a/data/scripts/maps/FortreeCity_PokemonCenter_1F.s b/data/scripts/maps/FortreeCity_PokemonCenter_1F.inc
index 148324abf..148324abf 100644
--- a/data/scripts/maps/FortreeCity_PokemonCenter_1F.s
+++ b/data/scripts/maps/FortreeCity_PokemonCenter_1F.inc
diff --git a/data/scripts/maps/FortreeCity_PokemonCenter_2F.s b/data/scripts/maps/FortreeCity_PokemonCenter_2F.inc
index 3019dbbc0..3019dbbc0 100644
--- a/data/scripts/maps/FortreeCity_PokemonCenter_2F.s
+++ b/data/scripts/maps/FortreeCity_PokemonCenter_2F.inc
diff --git a/data/scripts/maps/GraniteCave_1F.s b/data/scripts/maps/GraniteCave_1F.inc
index 59aaa2fc3..59aaa2fc3 100644
--- a/data/scripts/maps/GraniteCave_1F.s
+++ b/data/scripts/maps/GraniteCave_1F.inc
diff --git a/data/scripts/maps/GraniteCave_B1F.s b/data/scripts/maps/GraniteCave_B1F.inc
index 240de1d98..240de1d98 100644
--- a/data/scripts/maps/GraniteCave_B1F.s
+++ b/data/scripts/maps/GraniteCave_B1F.inc
diff --git a/data/scripts/maps/GraniteCave_B2F.s b/data/scripts/maps/GraniteCave_B2F.inc
index 54e1150f1..54e1150f1 100644
--- a/data/scripts/maps/GraniteCave_B2F.s
+++ b/data/scripts/maps/GraniteCave_B2F.inc
diff --git a/data/scripts/maps/GraniteCave_StevensRoom.s b/data/scripts/maps/GraniteCave_StevensRoom.inc
index 895241406..895241406 100644
--- a/data/scripts/maps/GraniteCave_StevensRoom.s
+++ b/data/scripts/maps/GraniteCave_StevensRoom.inc
diff --git a/data/scripts/maps/InsideOfTruck.s b/data/scripts/maps/InsideOfTruck.inc
index 0c26f0f88..0c26f0f88 100644
--- a/data/scripts/maps/InsideOfTruck.s
+++ b/data/scripts/maps/InsideOfTruck.inc
diff --git a/data/scripts/maps/IslandCave.s b/data/scripts/maps/IslandCave.inc
index b52b13b5a..b52b13b5a 100644
--- a/data/scripts/maps/IslandCave.s
+++ b/data/scripts/maps/IslandCave.inc
diff --git a/data/scripts/maps/JaggedPass.s b/data/scripts/maps/JaggedPass.inc
index 3ae0882c5..3ae0882c5 100644
--- a/data/scripts/maps/JaggedPass.s
+++ b/data/scripts/maps/JaggedPass.inc
diff --git a/data/scripts/maps/LavaridgeTown.s b/data/scripts/maps/LavaridgeTown.inc
index a71bd4854..a71bd4854 100644
--- a/data/scripts/maps/LavaridgeTown.s
+++ b/data/scripts/maps/LavaridgeTown.inc
diff --git a/data/scripts/maps/LavaridgeTown_Gym_1F.s b/data/scripts/maps/LavaridgeTown_Gym_1F.inc
index 57506bdb6..57506bdb6 100644
--- a/data/scripts/maps/LavaridgeTown_Gym_1F.s
+++ b/data/scripts/maps/LavaridgeTown_Gym_1F.inc
diff --git a/data/scripts/maps/LavaridgeTown_Gym_B1F.s b/data/scripts/maps/LavaridgeTown_Gym_B1F.inc
index 58178722c..58178722c 100644
--- a/data/scripts/maps/LavaridgeTown_Gym_B1F.s
+++ b/data/scripts/maps/LavaridgeTown_Gym_B1F.inc
diff --git a/data/scripts/maps/LavaridgeTown_HerbShop.s b/data/scripts/maps/LavaridgeTown_HerbShop.inc
index 6ff103ce3..6ff103ce3 100644
--- a/data/scripts/maps/LavaridgeTown_HerbShop.s
+++ b/data/scripts/maps/LavaridgeTown_HerbShop.inc
diff --git a/data/scripts/maps/LavaridgeTown_House.s b/data/scripts/maps/LavaridgeTown_House.inc
index 944427bb6..944427bb6 100644
--- a/data/scripts/maps/LavaridgeTown_House.s
+++ b/data/scripts/maps/LavaridgeTown_House.inc
diff --git a/data/scripts/maps/LavaridgeTown_Mart.s b/data/scripts/maps/LavaridgeTown_Mart.inc
index 4f28e16b0..4f28e16b0 100644
--- a/data/scripts/maps/LavaridgeTown_Mart.s
+++ b/data/scripts/maps/LavaridgeTown_Mart.inc
diff --git a/data/scripts/maps/LavaridgeTown_PokemonCenter_1F.s b/data/scripts/maps/LavaridgeTown_PokemonCenter_1F.inc
index c0762bcc3..c0762bcc3 100644
--- a/data/scripts/maps/LavaridgeTown_PokemonCenter_1F.s
+++ b/data/scripts/maps/LavaridgeTown_PokemonCenter_1F.inc
diff --git a/data/scripts/maps/LavaridgeTown_PokemonCenter_2F.s b/data/scripts/maps/LavaridgeTown_PokemonCenter_2F.inc
index daaeb0b93..daaeb0b93 100644
--- a/data/scripts/maps/LavaridgeTown_PokemonCenter_2F.s
+++ b/data/scripts/maps/LavaridgeTown_PokemonCenter_2F.inc
diff --git a/data/scripts/maps/LilycoveCity.s b/data/scripts/maps/LilycoveCity.inc
index ae36e33b5..ae36e33b5 100644
--- a/data/scripts/maps/LilycoveCity.s
+++ b/data/scripts/maps/LilycoveCity.inc
diff --git a/data/scripts/maps/LilycoveCity_ContestHall.s b/data/scripts/maps/LilycoveCity_ContestHall.inc
index 3601cb455..3601cb455 100644
--- a/data/scripts/maps/LilycoveCity_ContestHall.s
+++ b/data/scripts/maps/LilycoveCity_ContestHall.inc
diff --git a/data/scripts/maps/LilycoveCity_ContestLobby.s b/data/scripts/maps/LilycoveCity_ContestLobby.inc
index ed12473b9..419e04a8f 100644
--- a/data/scripts/maps/LilycoveCity_ContestLobby.s
+++ b/data/scripts/maps/LilycoveCity_ContestLobby.inc
@@ -117,7 +117,7 @@ LilycoveCity_ContestLobby_EventScript_1589E6:: @ 81589E6
return
LilycoveCity_ContestLobby_EventScript_1589EA:: @ 81589EA
- switch 0x8011
+ switch CONTEST_CATEGORY
case 0, LilycoveCity_ContestLobby_EventScript_158A27
case 1, LilycoveCity_ContestLobby_EventScript_158A2B
case 2, LilycoveCity_ContestLobby_EventScript_158A2F
@@ -359,7 +359,7 @@ LilycoveCity_ContestLobby_EventScript_158C35:: @ 8158C35
LilycoveCity_ContestLobby_EventScript_158C42:: @ 8158C42
msgbox LilycoveCity_ContestLobby_Text_188703, 4
- setvar 0x8010, 0
+ setvar CONTEST_RANK, 0
choosecontestpkmn
compare 0x8004, 255
jumpeq LilycoveCity_ContestLobby_EventScript_158CEA
@@ -410,7 +410,7 @@ LilycoveCity_ContestLobby_EventScript_158CEA:: @ 8158CEA
switch RESULT
case 5, LilycoveCity_ContestLobby_EventScript_158C35
case 127, LilycoveCity_ContestLobby_EventScript_158C35
- copyvar 0x8011, RESULT
+ copyvar CONTEST_CATEGORY, RESULT
jump LilycoveCity_ContestLobby_EventScript_158C42
end
@@ -484,7 +484,7 @@ LilycoveCity_ContestLobby_EventScript_158DEE:: @ 8158DEE
setvar 0x4086, 1
special 86
setvar 0x4088, 5
- setvar 0x8010, 3
+ setvar CONTEST_RANK, 3
call LilycoveCity_ContestLobby_EventScript_158F08
end
@@ -572,7 +572,7 @@ LilycoveCity_ContestLobby_EventScript_158EB0:: @ 8158EB0
compare RESULT, 1
jumpeq LilycoveCity_ContestLobby_EventScript_158EE8
setvar 0x800b, 8
- setvar 0x8010, 3
+ setvar CONTEST_RANK, 3
call LilycoveCity_ContestLobby_EventScript_1A4E92
call LilycoveCity_ContestLobby_EventScript_158F86
special 83
@@ -587,13 +587,13 @@ LilycoveCity_ContestLobby_EventScript_158EE8:: @ 8158EE8
copyvar 0x4094, 0x1
additem ITEM_CONTEST_PASS, 1
setvar 0x800b, 8
- setvar 0x8010, 3
+ setvar CONTEST_RANK, 3
setvar 0x4099, 1
setflag 2107
end
LilycoveCity_ContestLobby_EventScript_158F08:: @ 8158F08
- switch 0x8011
+ switch CONTEST_CATEGORY
case 0, LilycoveCity_ContestLobby_EventScript_158F45
case 1, LilycoveCity_ContestLobby_EventScript_158F52
case 2, LilycoveCity_ContestLobby_EventScript_158F5F
diff --git a/data/scripts/maps/LilycoveCity_CoveLilyMotel_1F.s b/data/scripts/maps/LilycoveCity_CoveLilyMotel_1F.inc
index 95945a595..95945a595 100644
--- a/data/scripts/maps/LilycoveCity_CoveLilyMotel_1F.s
+++ b/data/scripts/maps/LilycoveCity_CoveLilyMotel_1F.inc
diff --git a/data/scripts/maps/LilycoveCity_CoveLilyMotel_2F.s b/data/scripts/maps/LilycoveCity_CoveLilyMotel_2F.inc
index d2a86e0a5..d2a86e0a5 100644
--- a/data/scripts/maps/LilycoveCity_CoveLilyMotel_2F.s
+++ b/data/scripts/maps/LilycoveCity_CoveLilyMotel_2F.inc
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStoreElevator.s b/data/scripts/maps/LilycoveCity_DepartmentStoreElevator.inc
index c82cc6428..c82cc6428 100644
--- a/data/scripts/maps/LilycoveCity_DepartmentStoreElevator.s
+++ b/data/scripts/maps/LilycoveCity_DepartmentStoreElevator.inc
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.s b/data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.inc
index f84c84201..f84c84201 100644
--- a/data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.s
+++ b/data/scripts/maps/LilycoveCity_DepartmentStoreRooftop.inc
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStore_1F.s b/data/scripts/maps/LilycoveCity_DepartmentStore_1F.inc
index 325c56330..325c56330 100644
--- a/data/scripts/maps/LilycoveCity_DepartmentStore_1F.s
+++ b/data/scripts/maps/LilycoveCity_DepartmentStore_1F.inc
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStore_2F.s b/data/scripts/maps/LilycoveCity_DepartmentStore_2F.inc
index e54883714..e54883714 100644
--- a/data/scripts/maps/LilycoveCity_DepartmentStore_2F.s
+++ b/data/scripts/maps/LilycoveCity_DepartmentStore_2F.inc
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStore_3F.s b/data/scripts/maps/LilycoveCity_DepartmentStore_3F.inc
index e669cef7f..e669cef7f 100644
--- a/data/scripts/maps/LilycoveCity_DepartmentStore_3F.s
+++ b/data/scripts/maps/LilycoveCity_DepartmentStore_3F.inc
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStore_4F.s b/data/scripts/maps/LilycoveCity_DepartmentStore_4F.inc
index 994b3b63f..994b3b63f 100644
--- a/data/scripts/maps/LilycoveCity_DepartmentStore_4F.s
+++ b/data/scripts/maps/LilycoveCity_DepartmentStore_4F.inc
diff --git a/data/scripts/maps/LilycoveCity_DepartmentStore_5F.s b/data/scripts/maps/LilycoveCity_DepartmentStore_5F.inc
index 0bef8866a..0bef8866a 100644
--- a/data/scripts/maps/LilycoveCity_DepartmentStore_5F.s
+++ b/data/scripts/maps/LilycoveCity_DepartmentStore_5F.inc
diff --git a/data/scripts/maps/LilycoveCity_EmptyMap.s b/data/scripts/maps/LilycoveCity_EmptyMap.inc
index 16d025174..16d025174 100644
--- a/data/scripts/maps/LilycoveCity_EmptyMap.s
+++ b/data/scripts/maps/LilycoveCity_EmptyMap.inc
diff --git a/data/scripts/maps/LilycoveCity_Harbor.s b/data/scripts/maps/LilycoveCity_Harbor.inc
index 2f4e4352e..2f4e4352e 100644
--- a/data/scripts/maps/LilycoveCity_Harbor.s
+++ b/data/scripts/maps/LilycoveCity_Harbor.inc
diff --git a/data/scripts/maps/LilycoveCity_House1.s b/data/scripts/maps/LilycoveCity_House1.inc
index 3dae362c1..3dae362c1 100644
--- a/data/scripts/maps/LilycoveCity_House1.s
+++ b/data/scripts/maps/LilycoveCity_House1.inc
diff --git a/data/scripts/maps/LilycoveCity_House2.s b/data/scripts/maps/LilycoveCity_House2.inc
index 75780667d..75780667d 100644
--- a/data/scripts/maps/LilycoveCity_House2.s
+++ b/data/scripts/maps/LilycoveCity_House2.inc
diff --git a/data/scripts/maps/LilycoveCity_House3.s b/data/scripts/maps/LilycoveCity_House3.inc
index 51e4988b3..51e4988b3 100644
--- a/data/scripts/maps/LilycoveCity_House3.s
+++ b/data/scripts/maps/LilycoveCity_House3.inc
diff --git a/data/scripts/maps/LilycoveCity_House4.s b/data/scripts/maps/LilycoveCity_House4.inc
index 13bc95dfa..13bc95dfa 100644
--- a/data/scripts/maps/LilycoveCity_House4.s
+++ b/data/scripts/maps/LilycoveCity_House4.inc
diff --git a/data/scripts/maps/LilycoveCity_LilycoveMuseum_1F.s b/data/scripts/maps/LilycoveCity_LilycoveMuseum_1F.inc
index a481f9c32..a481f9c32 100644
--- a/data/scripts/maps/LilycoveCity_LilycoveMuseum_1F.s
+++ b/data/scripts/maps/LilycoveCity_LilycoveMuseum_1F.inc
diff --git a/data/scripts/maps/LilycoveCity_LilycoveMuseum_2F.s b/data/scripts/maps/LilycoveCity_LilycoveMuseum_2F.inc
index 2e6d6698f..2e6d6698f 100644
--- a/data/scripts/maps/LilycoveCity_LilycoveMuseum_2F.s
+++ b/data/scripts/maps/LilycoveCity_LilycoveMuseum_2F.inc
diff --git a/data/scripts/maps/LilycoveCity_MoveDeletersHouse.s b/data/scripts/maps/LilycoveCity_MoveDeletersHouse.inc
index c9b026060..c9b026060 100644
--- a/data/scripts/maps/LilycoveCity_MoveDeletersHouse.s
+++ b/data/scripts/maps/LilycoveCity_MoveDeletersHouse.inc
diff --git a/data/scripts/maps/LilycoveCity_PokemonCenter_1F.s b/data/scripts/maps/LilycoveCity_PokemonCenter_1F.inc
index 5809e28c8..5809e28c8 100644
--- a/data/scripts/maps/LilycoveCity_PokemonCenter_1F.s
+++ b/data/scripts/maps/LilycoveCity_PokemonCenter_1F.inc
diff --git a/data/scripts/maps/LilycoveCity_PokemonCenter_2F.s b/data/scripts/maps/LilycoveCity_PokemonCenter_2F.inc
index e4554e49c..e4554e49c 100644
--- a/data/scripts/maps/LilycoveCity_PokemonCenter_2F.s
+++ b/data/scripts/maps/LilycoveCity_PokemonCenter_2F.inc
diff --git a/data/scripts/maps/LilycoveCity_PokemonTrainerFanClub.s b/data/scripts/maps/LilycoveCity_PokemonTrainerFanClub.inc
index 9ac66f98e..9ac66f98e 100644
--- a/data/scripts/maps/LilycoveCity_PokemonTrainerFanClub.s
+++ b/data/scripts/maps/LilycoveCity_PokemonTrainerFanClub.inc
diff --git a/data/scripts/maps/LilycoveCity_UnusedMart.s b/data/scripts/maps/LilycoveCity_UnusedMart.inc
index 2e7ff450f..2e7ff450f 100644
--- a/data/scripts/maps/LilycoveCity_UnusedMart.s
+++ b/data/scripts/maps/LilycoveCity_UnusedMart.inc
diff --git a/data/scripts/maps/LinkContestRoom1.s b/data/scripts/maps/LinkContestRoom1.inc
index 2709f558c..2709f558c 100644
--- a/data/scripts/maps/LinkContestRoom1.s
+++ b/data/scripts/maps/LinkContestRoom1.inc
diff --git a/data/scripts/maps/LinkContestRoom2.s b/data/scripts/maps/LinkContestRoom2.inc
index f61e3fae6..f61e3fae6 100644
--- a/data/scripts/maps/LinkContestRoom2.s
+++ b/data/scripts/maps/LinkContestRoom2.inc
diff --git a/data/scripts/maps/LinkContestRoom3.s b/data/scripts/maps/LinkContestRoom3.inc
index 5a34f848a..5a34f848a 100644
--- a/data/scripts/maps/LinkContestRoom3.s
+++ b/data/scripts/maps/LinkContestRoom3.inc
diff --git a/data/scripts/maps/LinkContestRoom4.s b/data/scripts/maps/LinkContestRoom4.inc
index bf6539bdd..bf6539bdd 100644
--- a/data/scripts/maps/LinkContestRoom4.s
+++ b/data/scripts/maps/LinkContestRoom4.inc
diff --git a/data/scripts/maps/LinkContestRoom5.s b/data/scripts/maps/LinkContestRoom5.inc
index d3cd5d64b..d3cd5d64b 100644
--- a/data/scripts/maps/LinkContestRoom5.s
+++ b/data/scripts/maps/LinkContestRoom5.inc
diff --git a/data/scripts/maps/LinkContestRoom6.s b/data/scripts/maps/LinkContestRoom6.inc
index 26296ece6..26296ece6 100644
--- a/data/scripts/maps/LinkContestRoom6.s
+++ b/data/scripts/maps/LinkContestRoom6.inc
diff --git a/data/scripts/maps/LittlerootTown.s b/data/scripts/maps/LittlerootTown.inc
index 81692acc5..81692acc5 100644
--- a/data/scripts/maps/LittlerootTown.s
+++ b/data/scripts/maps/LittlerootTown.inc
diff --git a/data/scripts/maps/LittlerootTown_BrendansHouse_1F.s b/data/scripts/maps/LittlerootTown_BrendansHouse_1F.inc
index 9816734d0..9816734d0 100644
--- a/data/scripts/maps/LittlerootTown_BrendansHouse_1F.s
+++ b/data/scripts/maps/LittlerootTown_BrendansHouse_1F.inc
diff --git a/data/scripts/maps/LittlerootTown_BrendansHouse_2F.s b/data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc
index 4f121118a..4f121118a 100644
--- a/data/scripts/maps/LittlerootTown_BrendansHouse_2F.s
+++ b/data/scripts/maps/LittlerootTown_BrendansHouse_2F.inc
diff --git a/data/scripts/maps/LittlerootTown_MaysHouse_1F.s b/data/scripts/maps/LittlerootTown_MaysHouse_1F.inc
index 2b9ad42ef..2b9ad42ef 100644
--- a/data/scripts/maps/LittlerootTown_MaysHouse_1F.s
+++ b/data/scripts/maps/LittlerootTown_MaysHouse_1F.inc
diff --git a/data/scripts/maps/LittlerootTown_MaysHouse_2F.s b/data/scripts/maps/LittlerootTown_MaysHouse_2F.inc
index 7871940ca..7871940ca 100644
--- a/data/scripts/maps/LittlerootTown_MaysHouse_2F.s
+++ b/data/scripts/maps/LittlerootTown_MaysHouse_2F.inc
diff --git a/data/scripts/maps/LittlerootTown_ProfessorBirchsLab.s b/data/scripts/maps/LittlerootTown_ProfessorBirchsLab.inc
index 94aeadfa6..94aeadfa6 100644
--- a/data/scripts/maps/LittlerootTown_ProfessorBirchsLab.s
+++ b/data/scripts/maps/LittlerootTown_ProfessorBirchsLab.inc
diff --git a/data/scripts/maps/MagmaHideout_1F.s b/data/scripts/maps/MagmaHideout_1F.inc
index f5b535f71..f5b535f71 100644
--- a/data/scripts/maps/MagmaHideout_1F.s
+++ b/data/scripts/maps/MagmaHideout_1F.inc
diff --git a/data/scripts/maps/MagmaHideout_B1F.s b/data/scripts/maps/MagmaHideout_B1F.inc
index 0304181fb..0304181fb 100644
--- a/data/scripts/maps/MagmaHideout_B1F.s
+++ b/data/scripts/maps/MagmaHideout_B1F.inc
diff --git a/data/scripts/maps/MagmaHideout_B2F.s b/data/scripts/maps/MagmaHideout_B2F.inc
index 222297ef7..222297ef7 100644
--- a/data/scripts/maps/MagmaHideout_B2F.s
+++ b/data/scripts/maps/MagmaHideout_B2F.inc
diff --git a/data/scripts/maps/MauvilleCity.s b/data/scripts/maps/MauvilleCity.inc
index 1b2827f2a..1b2827f2a 100644
--- a/data/scripts/maps/MauvilleCity.s
+++ b/data/scripts/maps/MauvilleCity.inc
diff --git a/data/scripts/maps/MauvilleCity_BikeShop.s b/data/scripts/maps/MauvilleCity_BikeShop.inc
index cb3b8505b..cb3b8505b 100644
--- a/data/scripts/maps/MauvilleCity_BikeShop.s
+++ b/data/scripts/maps/MauvilleCity_BikeShop.inc
diff --git a/data/scripts/maps/MauvilleCity_GameCorner.s b/data/scripts/maps/MauvilleCity_GameCorner.inc
index a0aab4238..a0aab4238 100644
--- a/data/scripts/maps/MauvilleCity_GameCorner.s
+++ b/data/scripts/maps/MauvilleCity_GameCorner.inc
diff --git a/data/scripts/maps/MauvilleCity_Gym.s b/data/scripts/maps/MauvilleCity_Gym.inc
index 9abac00d7..9abac00d7 100644
--- a/data/scripts/maps/MauvilleCity_Gym.s
+++ b/data/scripts/maps/MauvilleCity_Gym.inc
diff --git a/data/scripts/maps/MauvilleCity_House1.s b/data/scripts/maps/MauvilleCity_House1.inc
index 48ee31be5..48ee31be5 100644
--- a/data/scripts/maps/MauvilleCity_House1.s
+++ b/data/scripts/maps/MauvilleCity_House1.inc
diff --git a/data/scripts/maps/MauvilleCity_House2.s b/data/scripts/maps/MauvilleCity_House2.inc
index 8a73af034..8a73af034 100644
--- a/data/scripts/maps/MauvilleCity_House2.s
+++ b/data/scripts/maps/MauvilleCity_House2.inc
diff --git a/data/scripts/maps/MauvilleCity_Mart.s b/data/scripts/maps/MauvilleCity_Mart.inc
index fac5906ad..fac5906ad 100644
--- a/data/scripts/maps/MauvilleCity_Mart.s
+++ b/data/scripts/maps/MauvilleCity_Mart.inc
diff --git a/data/scripts/maps/MauvilleCity_PokemonCenter_1F.s b/data/scripts/maps/MauvilleCity_PokemonCenter_1F.inc
index b943b9c8f..b943b9c8f 100644
--- a/data/scripts/maps/MauvilleCity_PokemonCenter_1F.s
+++ b/data/scripts/maps/MauvilleCity_PokemonCenter_1F.inc
diff --git a/data/scripts/maps/MauvilleCity_PokemonCenter_2F.s b/data/scripts/maps/MauvilleCity_PokemonCenter_2F.inc
index e85e80308..e85e80308 100644
--- a/data/scripts/maps/MauvilleCity_PokemonCenter_2F.s
+++ b/data/scripts/maps/MauvilleCity_PokemonCenter_2F.inc
diff --git a/data/scripts/maps/MeteorFalls_1F_1R.s b/data/scripts/maps/MeteorFalls_1F_1R.inc
index 3e7155955..3e7155955 100644
--- a/data/scripts/maps/MeteorFalls_1F_1R.s
+++ b/data/scripts/maps/MeteorFalls_1F_1R.inc
diff --git a/data/scripts/maps/MeteorFalls_1F_2R.s b/data/scripts/maps/MeteorFalls_1F_2R.inc
index 6c239043d..6c239043d 100644
--- a/data/scripts/maps/MeteorFalls_1F_2R.s
+++ b/data/scripts/maps/MeteorFalls_1F_2R.inc
diff --git a/data/scripts/maps/MeteorFalls_B1F_1R.s b/data/scripts/maps/MeteorFalls_B1F_1R.inc
index 57d458b23..57d458b23 100644
--- a/data/scripts/maps/MeteorFalls_B1F_1R.s
+++ b/data/scripts/maps/MeteorFalls_B1F_1R.inc
diff --git a/data/scripts/maps/MeteorFalls_B1F_2R.s b/data/scripts/maps/MeteorFalls_B1F_2R.inc
index 514e60966..514e60966 100644
--- a/data/scripts/maps/MeteorFalls_B1F_2R.s
+++ b/data/scripts/maps/MeteorFalls_B1F_2R.inc
diff --git a/data/scripts/maps/MossdeepCity.s b/data/scripts/maps/MossdeepCity.inc
index ddb317364..ddb317364 100644
--- a/data/scripts/maps/MossdeepCity.s
+++ b/data/scripts/maps/MossdeepCity.inc
diff --git a/data/scripts/maps/MossdeepCity_GameCorner_1F.s b/data/scripts/maps/MossdeepCity_GameCorner_1F.inc
index c56adb1f3..c56adb1f3 100644
--- a/data/scripts/maps/MossdeepCity_GameCorner_1F.s
+++ b/data/scripts/maps/MossdeepCity_GameCorner_1F.inc
diff --git a/data/scripts/maps/MossdeepCity_GameCorner_B1F.s b/data/scripts/maps/MossdeepCity_GameCorner_B1F.inc
index a733093f9..a733093f9 100644
--- a/data/scripts/maps/MossdeepCity_GameCorner_B1F.s
+++ b/data/scripts/maps/MossdeepCity_GameCorner_B1F.inc
diff --git a/data/scripts/maps/MossdeepCity_Gym.s b/data/scripts/maps/MossdeepCity_Gym.inc
index 192f9e396..192f9e396 100644
--- a/data/scripts/maps/MossdeepCity_Gym.s
+++ b/data/scripts/maps/MossdeepCity_Gym.inc
diff --git a/data/scripts/maps/MossdeepCity_House1.s b/data/scripts/maps/MossdeepCity_House1.inc
index d83e49643..d83e49643 100644
--- a/data/scripts/maps/MossdeepCity_House1.s
+++ b/data/scripts/maps/MossdeepCity_House1.inc
diff --git a/data/scripts/maps/MossdeepCity_House2.s b/data/scripts/maps/MossdeepCity_House2.inc
index f3d07b64e..f3d07b64e 100644
--- a/data/scripts/maps/MossdeepCity_House2.s
+++ b/data/scripts/maps/MossdeepCity_House2.inc
diff --git a/data/scripts/maps/MossdeepCity_House3.s b/data/scripts/maps/MossdeepCity_House3.inc
index fd97ee598..fd97ee598 100644
--- a/data/scripts/maps/MossdeepCity_House3.s
+++ b/data/scripts/maps/MossdeepCity_House3.inc
diff --git a/data/scripts/maps/MossdeepCity_House4.s b/data/scripts/maps/MossdeepCity_House4.inc
index bc8f44400..bc8f44400 100644
--- a/data/scripts/maps/MossdeepCity_House4.s
+++ b/data/scripts/maps/MossdeepCity_House4.inc
diff --git a/data/scripts/maps/MossdeepCity_Mart.s b/data/scripts/maps/MossdeepCity_Mart.inc
index d1e861b99..d1e861b99 100644
--- a/data/scripts/maps/MossdeepCity_Mart.s
+++ b/data/scripts/maps/MossdeepCity_Mart.inc
diff --git a/data/scripts/maps/MossdeepCity_PokemonCenter_1F.s b/data/scripts/maps/MossdeepCity_PokemonCenter_1F.inc
index 988608ffd..988608ffd 100644
--- a/data/scripts/maps/MossdeepCity_PokemonCenter_1F.s
+++ b/data/scripts/maps/MossdeepCity_PokemonCenter_1F.inc
diff --git a/data/scripts/maps/MossdeepCity_PokemonCenter_2F.s b/data/scripts/maps/MossdeepCity_PokemonCenter_2F.inc
index a88147c08..a88147c08 100644
--- a/data/scripts/maps/MossdeepCity_PokemonCenter_2F.s
+++ b/data/scripts/maps/MossdeepCity_PokemonCenter_2F.inc
diff --git a/data/scripts/maps/MossdeepCity_SpaceCenter_1F.s b/data/scripts/maps/MossdeepCity_SpaceCenter_1F.inc
index 3b3a7f083..3b3a7f083 100644
--- a/data/scripts/maps/MossdeepCity_SpaceCenter_1F.s
+++ b/data/scripts/maps/MossdeepCity_SpaceCenter_1F.inc
diff --git a/data/scripts/maps/MossdeepCity_SpaceCenter_2F.s b/data/scripts/maps/MossdeepCity_SpaceCenter_2F.inc
index 97467f4e5..97467f4e5 100644
--- a/data/scripts/maps/MossdeepCity_SpaceCenter_2F.s
+++ b/data/scripts/maps/MossdeepCity_SpaceCenter_2F.inc
diff --git a/data/scripts/maps/MossdeepCity_StevensHouse.s b/data/scripts/maps/MossdeepCity_StevensHouse.inc
index d4477bd39..d4477bd39 100644
--- a/data/scripts/maps/MossdeepCity_StevensHouse.s
+++ b/data/scripts/maps/MossdeepCity_StevensHouse.inc
diff --git a/data/scripts/maps/MtChimney.s b/data/scripts/maps/MtChimney.inc
index b7a43328b..b7a43328b 100644
--- a/data/scripts/maps/MtChimney.s
+++ b/data/scripts/maps/MtChimney.inc
diff --git a/data/scripts/maps/MtChimney_CableCarStation.s b/data/scripts/maps/MtChimney_CableCarStation.inc
index c00914f2e..c00914f2e 100644
--- a/data/scripts/maps/MtChimney_CableCarStation.s
+++ b/data/scripts/maps/MtChimney_CableCarStation.inc
diff --git a/data/scripts/maps/MtPyre_1F.s b/data/scripts/maps/MtPyre_1F.inc
index 805c4a8d3..805c4a8d3 100644
--- a/data/scripts/maps/MtPyre_1F.s
+++ b/data/scripts/maps/MtPyre_1F.inc
diff --git a/data/scripts/maps/MtPyre_2F.s b/data/scripts/maps/MtPyre_2F.inc
index c44251af7..c44251af7 100644
--- a/data/scripts/maps/MtPyre_2F.s
+++ b/data/scripts/maps/MtPyre_2F.inc
diff --git a/data/scripts/maps/MtPyre_3F.s b/data/scripts/maps/MtPyre_3F.inc
index ea8bda7b5..ea8bda7b5 100644
--- a/data/scripts/maps/MtPyre_3F.s
+++ b/data/scripts/maps/MtPyre_3F.inc
diff --git a/data/scripts/maps/MtPyre_4F.s b/data/scripts/maps/MtPyre_4F.inc
index e1ebac7c1..e1ebac7c1 100644
--- a/data/scripts/maps/MtPyre_4F.s
+++ b/data/scripts/maps/MtPyre_4F.inc
diff --git a/data/scripts/maps/MtPyre_5F.s b/data/scripts/maps/MtPyre_5F.inc
index 9adb249f0..9adb249f0 100644
--- a/data/scripts/maps/MtPyre_5F.s
+++ b/data/scripts/maps/MtPyre_5F.inc
diff --git a/data/scripts/maps/MtPyre_6F.s b/data/scripts/maps/MtPyre_6F.inc
index 3729079bb..3729079bb 100644
--- a/data/scripts/maps/MtPyre_6F.s
+++ b/data/scripts/maps/MtPyre_6F.inc
diff --git a/data/scripts/maps/MtPyre_Exterior.s b/data/scripts/maps/MtPyre_Exterior.inc
index efffc7c3b..efffc7c3b 100644
--- a/data/scripts/maps/MtPyre_Exterior.s
+++ b/data/scripts/maps/MtPyre_Exterior.inc
diff --git a/data/scripts/maps/MtPyre_Summit.s b/data/scripts/maps/MtPyre_Summit.inc
index e352ac30e..e352ac30e 100644
--- a/data/scripts/maps/MtPyre_Summit.s
+++ b/data/scripts/maps/MtPyre_Summit.inc
diff --git a/data/scripts/maps/NewMauville_Entrance.s b/data/scripts/maps/NewMauville_Entrance.inc
index dc5885939..dc5885939 100644
--- a/data/scripts/maps/NewMauville_Entrance.s
+++ b/data/scripts/maps/NewMauville_Entrance.inc
diff --git a/data/scripts/maps/NewMauville_Inside.s b/data/scripts/maps/NewMauville_Inside.inc
index 29c42e460..29c42e460 100644
--- a/data/scripts/maps/NewMauville_Inside.s
+++ b/data/scripts/maps/NewMauville_Inside.inc
diff --git a/data/scripts/maps/OldaleTown.s b/data/scripts/maps/OldaleTown.inc
index 68ed80949..68ed80949 100644
--- a/data/scripts/maps/OldaleTown.s
+++ b/data/scripts/maps/OldaleTown.inc
diff --git a/data/scripts/maps/OldaleTown_House1.s b/data/scripts/maps/OldaleTown_House1.inc
index 1e519a737..1e519a737 100644
--- a/data/scripts/maps/OldaleTown_House1.s
+++ b/data/scripts/maps/OldaleTown_House1.inc
diff --git a/data/scripts/maps/OldaleTown_House2.s b/data/scripts/maps/OldaleTown_House2.inc
index 57a9ab8ac..57a9ab8ac 100644
--- a/data/scripts/maps/OldaleTown_House2.s
+++ b/data/scripts/maps/OldaleTown_House2.inc
diff --git a/data/scripts/maps/OldaleTown_Mart.s b/data/scripts/maps/OldaleTown_Mart.inc
index 3f4994890..3f4994890 100644
--- a/data/scripts/maps/OldaleTown_Mart.s
+++ b/data/scripts/maps/OldaleTown_Mart.inc
diff --git a/data/scripts/maps/OldaleTown_PokemonCenter_1F.s b/data/scripts/maps/OldaleTown_PokemonCenter_1F.inc
index 4ba96ddc8..4ba96ddc8 100644
--- a/data/scripts/maps/OldaleTown_PokemonCenter_1F.s
+++ b/data/scripts/maps/OldaleTown_PokemonCenter_1F.inc
diff --git a/data/scripts/maps/OldaleTown_PokemonCenter_2F.s b/data/scripts/maps/OldaleTown_PokemonCenter_2F.inc
index 622f50c29..622f50c29 100644
--- a/data/scripts/maps/OldaleTown_PokemonCenter_2F.s
+++ b/data/scripts/maps/OldaleTown_PokemonCenter_2F.inc
diff --git a/data/scripts/maps/PacifidlogTown.s b/data/scripts/maps/PacifidlogTown.inc
index c7cfb08df..c7cfb08df 100644
--- a/data/scripts/maps/PacifidlogTown.s
+++ b/data/scripts/maps/PacifidlogTown.inc
diff --git a/data/scripts/maps/PacifidlogTown_House1.s b/data/scripts/maps/PacifidlogTown_House1.inc
index 4b3586a16..4b3586a16 100644
--- a/data/scripts/maps/PacifidlogTown_House1.s
+++ b/data/scripts/maps/PacifidlogTown_House1.inc
diff --git a/data/scripts/maps/PacifidlogTown_House2.s b/data/scripts/maps/PacifidlogTown_House2.inc
index b95a41ceb..b95a41ceb 100644
--- a/data/scripts/maps/PacifidlogTown_House2.s
+++ b/data/scripts/maps/PacifidlogTown_House2.inc
diff --git a/data/scripts/maps/PacifidlogTown_House3.s b/data/scripts/maps/PacifidlogTown_House3.inc
index 7ee815f07..7ee815f07 100644
--- a/data/scripts/maps/PacifidlogTown_House3.s
+++ b/data/scripts/maps/PacifidlogTown_House3.inc
diff --git a/data/scripts/maps/PacifidlogTown_House4.s b/data/scripts/maps/PacifidlogTown_House4.inc
index e48644beb..e48644beb 100644
--- a/data/scripts/maps/PacifidlogTown_House4.s
+++ b/data/scripts/maps/PacifidlogTown_House4.inc
diff --git a/data/scripts/maps/PacifidlogTown_House5.s b/data/scripts/maps/PacifidlogTown_House5.inc
index f20de28df..f20de28df 100644
--- a/data/scripts/maps/PacifidlogTown_House5.s
+++ b/data/scripts/maps/PacifidlogTown_House5.inc
diff --git a/data/scripts/maps/PacifidlogTown_PokemonCenter_1F.s b/data/scripts/maps/PacifidlogTown_PokemonCenter_1F.inc
index 973f80a55..973f80a55 100644
--- a/data/scripts/maps/PacifidlogTown_PokemonCenter_1F.s
+++ b/data/scripts/maps/PacifidlogTown_PokemonCenter_1F.inc
diff --git a/data/scripts/maps/PacifidlogTown_PokemonCenter_2F.s b/data/scripts/maps/PacifidlogTown_PokemonCenter_2F.inc
index 2bff37736..2bff37736 100644
--- a/data/scripts/maps/PacifidlogTown_PokemonCenter_2F.s
+++ b/data/scripts/maps/PacifidlogTown_PokemonCenter_2F.inc
diff --git a/data/scripts/maps/PetalburgCity.s b/data/scripts/maps/PetalburgCity.inc
index 3667eb3cf..3667eb3cf 100644
--- a/data/scripts/maps/PetalburgCity.s
+++ b/data/scripts/maps/PetalburgCity.inc
diff --git a/data/scripts/maps/PetalburgCity_Gym.s b/data/scripts/maps/PetalburgCity_Gym.inc
index 9c6802e28..9c6802e28 100644
--- a/data/scripts/maps/PetalburgCity_Gym.s
+++ b/data/scripts/maps/PetalburgCity_Gym.inc
diff --git a/data/scripts/maps/PetalburgCity_House1.s b/data/scripts/maps/PetalburgCity_House1.inc
index 7a3b7c1b1..7a3b7c1b1 100644
--- a/data/scripts/maps/PetalburgCity_House1.s
+++ b/data/scripts/maps/PetalburgCity_House1.inc
diff --git a/data/scripts/maps/PetalburgCity_House2.s b/data/scripts/maps/PetalburgCity_House2.inc
index 4cc1325a2..4cc1325a2 100644
--- a/data/scripts/maps/PetalburgCity_House2.s
+++ b/data/scripts/maps/PetalburgCity_House2.inc
diff --git a/data/scripts/maps/PetalburgCity_Mart.s b/data/scripts/maps/PetalburgCity_Mart.inc
index 2eac03cac..2eac03cac 100644
--- a/data/scripts/maps/PetalburgCity_Mart.s
+++ b/data/scripts/maps/PetalburgCity_Mart.inc
diff --git a/data/scripts/maps/PetalburgCity_PokemonCenter_1F.s b/data/scripts/maps/PetalburgCity_PokemonCenter_1F.inc
index 09d414dcb..09d414dcb 100644
--- a/data/scripts/maps/PetalburgCity_PokemonCenter_1F.s
+++ b/data/scripts/maps/PetalburgCity_PokemonCenter_1F.inc
diff --git a/data/scripts/maps/PetalburgCity_PokemonCenter_2F.s b/data/scripts/maps/PetalburgCity_PokemonCenter_2F.inc
index a95823736..a95823736 100644
--- a/data/scripts/maps/PetalburgCity_PokemonCenter_2F.s
+++ b/data/scripts/maps/PetalburgCity_PokemonCenter_2F.inc
diff --git a/data/scripts/maps/PetalburgCity_WallysHouse.s b/data/scripts/maps/PetalburgCity_WallysHouse.inc
index e8ac407dc..e8ac407dc 100644
--- a/data/scripts/maps/PetalburgCity_WallysHouse.s
+++ b/data/scripts/maps/PetalburgCity_WallysHouse.inc
diff --git a/data/scripts/maps/PetalburgWoods.s b/data/scripts/maps/PetalburgWoods.inc
index 8d6946bcd..8d6946bcd 100644
--- a/data/scripts/maps/PetalburgWoods.s
+++ b/data/scripts/maps/PetalburgWoods.inc
diff --git a/data/scripts/maps/RecordCorner.s b/data/scripts/maps/RecordCorner.inc
index 8a2c1db22..8a2c1db22 100644
--- a/data/scripts/maps/RecordCorner.s
+++ b/data/scripts/maps/RecordCorner.inc
diff --git a/data/scripts/maps/Route101.s b/data/scripts/maps/Route101.inc
index 944473e96..944473e96 100644
--- a/data/scripts/maps/Route101.s
+++ b/data/scripts/maps/Route101.inc
diff --git a/data/scripts/maps/Route102.s b/data/scripts/maps/Route102.inc
index 70d25eace..70d25eace 100644
--- a/data/scripts/maps/Route102.s
+++ b/data/scripts/maps/Route102.inc
diff --git a/data/scripts/maps/Route103.s b/data/scripts/maps/Route103.inc
index f47f5a824..f47f5a824 100644
--- a/data/scripts/maps/Route103.s
+++ b/data/scripts/maps/Route103.inc
diff --git a/data/scripts/maps/Route104.s b/data/scripts/maps/Route104.inc
index bb98b023d..bb98b023d 100644
--- a/data/scripts/maps/Route104.s
+++ b/data/scripts/maps/Route104.inc
diff --git a/data/scripts/maps/Route104_MrBrineysHouse.s b/data/scripts/maps/Route104_MrBrineysHouse.inc
index 5c6704e67..5c6704e67 100644
--- a/data/scripts/maps/Route104_MrBrineysHouse.s
+++ b/data/scripts/maps/Route104_MrBrineysHouse.inc
diff --git a/data/scripts/maps/Route104_PrettyPetalFlowerShop.s b/data/scripts/maps/Route104_PrettyPetalFlowerShop.inc
index 02842c62d..02842c62d 100644
--- a/data/scripts/maps/Route104_PrettyPetalFlowerShop.s
+++ b/data/scripts/maps/Route104_PrettyPetalFlowerShop.inc
diff --git a/data/scripts/maps/Route104_Prototype.s b/data/scripts/maps/Route104_Prototype.inc
index 184127187..184127187 100644
--- a/data/scripts/maps/Route104_Prototype.s
+++ b/data/scripts/maps/Route104_Prototype.inc
diff --git a/data/scripts/maps/Route104_PrototypePrettyPetalFlowerShop.s b/data/scripts/maps/Route104_PrototypePrettyPetalFlowerShop.inc
index f979ab60b..f979ab60b 100644
--- a/data/scripts/maps/Route104_PrototypePrettyPetalFlowerShop.s
+++ b/data/scripts/maps/Route104_PrototypePrettyPetalFlowerShop.inc
diff --git a/data/scripts/maps/Route105.s b/data/scripts/maps/Route105.inc
index c71e2ce05..c71e2ce05 100644
--- a/data/scripts/maps/Route105.s
+++ b/data/scripts/maps/Route105.inc
diff --git a/data/scripts/maps/Route106.s b/data/scripts/maps/Route106.inc
index 1889eb4d7..1889eb4d7 100644
--- a/data/scripts/maps/Route106.s
+++ b/data/scripts/maps/Route106.inc
diff --git a/data/scripts/maps/Route107.s b/data/scripts/maps/Route107.inc
index ef3407265..ef3407265 100644
--- a/data/scripts/maps/Route107.s
+++ b/data/scripts/maps/Route107.inc
diff --git a/data/scripts/maps/Route108.s b/data/scripts/maps/Route108.inc
index 2e40c882d..2e40c882d 100644
--- a/data/scripts/maps/Route108.s
+++ b/data/scripts/maps/Route108.inc
diff --git a/data/scripts/maps/Route109.s b/data/scripts/maps/Route109.inc
index 343a8cab9..343a8cab9 100644
--- a/data/scripts/maps/Route109.s
+++ b/data/scripts/maps/Route109.inc
diff --git a/data/scripts/maps/Route109_SeashoreHouse.s b/data/scripts/maps/Route109_SeashoreHouse.inc
index e1d9c380b..e1d9c380b 100644
--- a/data/scripts/maps/Route109_SeashoreHouse.s
+++ b/data/scripts/maps/Route109_SeashoreHouse.inc
diff --git a/data/scripts/maps/Route110.s b/data/scripts/maps/Route110.inc
index 55c8f67df..55c8f67df 100644
--- a/data/scripts/maps/Route110.s
+++ b/data/scripts/maps/Route110.inc
diff --git a/data/scripts/maps/Route110_SeasideCyclingRoadNorthEntrance.s b/data/scripts/maps/Route110_SeasideCyclingRoadNorthEntrance.inc
index 0dbd5dfc4..0dbd5dfc4 100644
--- a/data/scripts/maps/Route110_SeasideCyclingRoadNorthEntrance.s
+++ b/data/scripts/maps/Route110_SeasideCyclingRoadNorthEntrance.inc
diff --git a/data/scripts/maps/Route110_SeasideCyclingRoadSouthEntrance.s b/data/scripts/maps/Route110_SeasideCyclingRoadSouthEntrance.inc
index 96fb13f2b..96fb13f2b 100644
--- a/data/scripts/maps/Route110_SeasideCyclingRoadSouthEntrance.s
+++ b/data/scripts/maps/Route110_SeasideCyclingRoadSouthEntrance.inc
diff --git a/data/scripts/maps/Route110_TrickHouseCorridor.s b/data/scripts/maps/Route110_TrickHouseCorridor.inc
index 7b3d93118..7b3d93118 100644
--- a/data/scripts/maps/Route110_TrickHouseCorridor.s
+++ b/data/scripts/maps/Route110_TrickHouseCorridor.inc
diff --git a/data/scripts/maps/Route110_TrickHouseEnd.s b/data/scripts/maps/Route110_TrickHouseEnd.inc
index d2b2eaefb..d2b2eaefb 100644
--- a/data/scripts/maps/Route110_TrickHouseEnd.s
+++ b/data/scripts/maps/Route110_TrickHouseEnd.inc
diff --git a/data/scripts/maps/Route110_TrickHouseEntrance.s b/data/scripts/maps/Route110_TrickHouseEntrance.inc
index 434794b2f..434794b2f 100644
--- a/data/scripts/maps/Route110_TrickHouseEntrance.s
+++ b/data/scripts/maps/Route110_TrickHouseEntrance.inc
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle1.s b/data/scripts/maps/Route110_TrickHousePuzzle1.inc
index 6b6d45af2..6b6d45af2 100644
--- a/data/scripts/maps/Route110_TrickHousePuzzle1.s
+++ b/data/scripts/maps/Route110_TrickHousePuzzle1.inc
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle2.s b/data/scripts/maps/Route110_TrickHousePuzzle2.inc
index 183431bfc..183431bfc 100644
--- a/data/scripts/maps/Route110_TrickHousePuzzle2.s
+++ b/data/scripts/maps/Route110_TrickHousePuzzle2.inc
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle3.s b/data/scripts/maps/Route110_TrickHousePuzzle3.inc
index b533dbbe5..b533dbbe5 100644
--- a/data/scripts/maps/Route110_TrickHousePuzzle3.s
+++ b/data/scripts/maps/Route110_TrickHousePuzzle3.inc
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle4.s b/data/scripts/maps/Route110_TrickHousePuzzle4.inc
index 89d5e45c3..89d5e45c3 100644
--- a/data/scripts/maps/Route110_TrickHousePuzzle4.s
+++ b/data/scripts/maps/Route110_TrickHousePuzzle4.inc
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle5.s b/data/scripts/maps/Route110_TrickHousePuzzle5.inc
index cd5d2fbb9..cd5d2fbb9 100644
--- a/data/scripts/maps/Route110_TrickHousePuzzle5.s
+++ b/data/scripts/maps/Route110_TrickHousePuzzle5.inc
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle6.s b/data/scripts/maps/Route110_TrickHousePuzzle6.inc
index 56d350871..56d350871 100644
--- a/data/scripts/maps/Route110_TrickHousePuzzle6.s
+++ b/data/scripts/maps/Route110_TrickHousePuzzle6.inc
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle7.s b/data/scripts/maps/Route110_TrickHousePuzzle7.inc
index 1276562d0..1276562d0 100644
--- a/data/scripts/maps/Route110_TrickHousePuzzle7.s
+++ b/data/scripts/maps/Route110_TrickHousePuzzle7.inc
diff --git a/data/scripts/maps/Route110_TrickHousePuzzle8.s b/data/scripts/maps/Route110_TrickHousePuzzle8.inc
index a31c868be..a31c868be 100644
--- a/data/scripts/maps/Route110_TrickHousePuzzle8.s
+++ b/data/scripts/maps/Route110_TrickHousePuzzle8.inc
diff --git a/data/scripts/maps/Route111.s b/data/scripts/maps/Route111.inc
index 10b34cf5f..10b34cf5f 100644
--- a/data/scripts/maps/Route111.s
+++ b/data/scripts/maps/Route111.inc
diff --git a/data/scripts/maps/Route111_OldLadysRestStop.s b/data/scripts/maps/Route111_OldLadysRestStop.inc
index 107026a4b..107026a4b 100644
--- a/data/scripts/maps/Route111_OldLadysRestStop.s
+++ b/data/scripts/maps/Route111_OldLadysRestStop.inc
diff --git a/data/scripts/maps/Route111_WinstrateFamilysHouse.s b/data/scripts/maps/Route111_WinstrateFamilysHouse.inc
index 3eb514ad2..3eb514ad2 100644
--- a/data/scripts/maps/Route111_WinstrateFamilysHouse.s
+++ b/data/scripts/maps/Route111_WinstrateFamilysHouse.inc
diff --git a/data/scripts/maps/Route112.s b/data/scripts/maps/Route112.inc
index c2ad14a02..c2ad14a02 100644
--- a/data/scripts/maps/Route112.s
+++ b/data/scripts/maps/Route112.inc
diff --git a/data/scripts/maps/Route112_CableCarStation.s b/data/scripts/maps/Route112_CableCarStation.inc
index 3e5f75929..3e5f75929 100644
--- a/data/scripts/maps/Route112_CableCarStation.s
+++ b/data/scripts/maps/Route112_CableCarStation.inc
diff --git a/data/scripts/maps/Route113.s b/data/scripts/maps/Route113.inc
index c07f537d1..c07f537d1 100644
--- a/data/scripts/maps/Route113.s
+++ b/data/scripts/maps/Route113.inc
diff --git a/data/scripts/maps/Route113_GlassWorkshop.s b/data/scripts/maps/Route113_GlassWorkshop.inc
index d59942472..d59942472 100644
--- a/data/scripts/maps/Route113_GlassWorkshop.s
+++ b/data/scripts/maps/Route113_GlassWorkshop.inc
diff --git a/data/scripts/maps/Route114.s b/data/scripts/maps/Route114.inc
index 33e89be70..33e89be70 100644
--- a/data/scripts/maps/Route114.s
+++ b/data/scripts/maps/Route114.inc
diff --git a/data/scripts/maps/Route114_FossilManiacsHouse.s b/data/scripts/maps/Route114_FossilManiacsHouse.inc
index 50305dc04..50305dc04 100644
--- a/data/scripts/maps/Route114_FossilManiacsHouse.s
+++ b/data/scripts/maps/Route114_FossilManiacsHouse.inc
diff --git a/data/scripts/maps/Route114_FossilManiacsTunnel.s b/data/scripts/maps/Route114_FossilManiacsTunnel.inc
index 7986a0436..7986a0436 100644
--- a/data/scripts/maps/Route114_FossilManiacsTunnel.s
+++ b/data/scripts/maps/Route114_FossilManiacsTunnel.inc
diff --git a/data/scripts/maps/Route114_LanettesHouse.s b/data/scripts/maps/Route114_LanettesHouse.inc
index ff8a1c565..ff8a1c565 100644
--- a/data/scripts/maps/Route114_LanettesHouse.s
+++ b/data/scripts/maps/Route114_LanettesHouse.inc
diff --git a/data/scripts/maps/Route115.s b/data/scripts/maps/Route115.inc
index e2c00f6fc..e2c00f6fc 100644
--- a/data/scripts/maps/Route115.s
+++ b/data/scripts/maps/Route115.inc
diff --git a/data/scripts/maps/Route116.s b/data/scripts/maps/Route116.inc
index c563dce46..c563dce46 100644
--- a/data/scripts/maps/Route116.s
+++ b/data/scripts/maps/Route116.inc
diff --git a/data/scripts/maps/Route116_TunnelersRestHouse.s b/data/scripts/maps/Route116_TunnelersRestHouse.inc
index d141fae37..d141fae37 100644
--- a/data/scripts/maps/Route116_TunnelersRestHouse.s
+++ b/data/scripts/maps/Route116_TunnelersRestHouse.inc
diff --git a/data/scripts/maps/Route117.s b/data/scripts/maps/Route117.inc
index 8c738ffff..8c738ffff 100644
--- a/data/scripts/maps/Route117.s
+++ b/data/scripts/maps/Route117.inc
diff --git a/data/scripts/maps/Route117_PokemonDayCare.s b/data/scripts/maps/Route117_PokemonDayCare.inc
index 2a3ee79e1..2a3ee79e1 100644
--- a/data/scripts/maps/Route117_PokemonDayCare.s
+++ b/data/scripts/maps/Route117_PokemonDayCare.inc
diff --git a/data/scripts/maps/Route118.s b/data/scripts/maps/Route118.inc
index 4d739ce68..4d739ce68 100644
--- a/data/scripts/maps/Route118.s
+++ b/data/scripts/maps/Route118.inc
diff --git a/data/scripts/maps/Route119.s b/data/scripts/maps/Route119.inc
index 1ccc972bb..1ccc972bb 100644
--- a/data/scripts/maps/Route119.s
+++ b/data/scripts/maps/Route119.inc
diff --git a/data/scripts/maps/Route119_House.s b/data/scripts/maps/Route119_House.inc
index 6395e40eb..6395e40eb 100644
--- a/data/scripts/maps/Route119_House.s
+++ b/data/scripts/maps/Route119_House.inc
diff --git a/data/scripts/maps/Route119_WeatherInstitute_1F.s b/data/scripts/maps/Route119_WeatherInstitute_1F.inc
index 36314a59f..36314a59f 100644
--- a/data/scripts/maps/Route119_WeatherInstitute_1F.s
+++ b/data/scripts/maps/Route119_WeatherInstitute_1F.inc
diff --git a/data/scripts/maps/Route119_WeatherInstitute_2F.s b/data/scripts/maps/Route119_WeatherInstitute_2F.inc
index 37f8e9ec6..37f8e9ec6 100644
--- a/data/scripts/maps/Route119_WeatherInstitute_2F.s
+++ b/data/scripts/maps/Route119_WeatherInstitute_2F.inc
diff --git a/data/scripts/maps/Route120.s b/data/scripts/maps/Route120.inc
index ada773ffd..ada773ffd 100644
--- a/data/scripts/maps/Route120.s
+++ b/data/scripts/maps/Route120.inc
diff --git a/data/scripts/maps/Route121.s b/data/scripts/maps/Route121.inc
index 54912b0bc..54912b0bc 100644
--- a/data/scripts/maps/Route121.s
+++ b/data/scripts/maps/Route121.inc
diff --git a/data/scripts/maps/Route121_SafariZoneEntrance.s b/data/scripts/maps/Route121_SafariZoneEntrance.inc
index 2056bc328..2056bc328 100644
--- a/data/scripts/maps/Route121_SafariZoneEntrance.s
+++ b/data/scripts/maps/Route121_SafariZoneEntrance.inc
diff --git a/data/scripts/maps/Route122.s b/data/scripts/maps/Route122.inc
index 4c4e49aa1..4c4e49aa1 100644
--- a/data/scripts/maps/Route122.s
+++ b/data/scripts/maps/Route122.inc
diff --git a/data/scripts/maps/Route123.s b/data/scripts/maps/Route123.inc
index e9248c230..e9248c230 100644
--- a/data/scripts/maps/Route123.s
+++ b/data/scripts/maps/Route123.inc
diff --git a/data/scripts/maps/Route123_BerryMastersHouse.s b/data/scripts/maps/Route123_BerryMastersHouse.inc
index 9290f845d..9290f845d 100644
--- a/data/scripts/maps/Route123_BerryMastersHouse.s
+++ b/data/scripts/maps/Route123_BerryMastersHouse.inc
diff --git a/data/scripts/maps/Route124.s b/data/scripts/maps/Route124.inc
index ea288daa0..ea288daa0 100644
--- a/data/scripts/maps/Route124.s
+++ b/data/scripts/maps/Route124.inc
diff --git a/data/scripts/maps/Route124_DivingTreasureHuntersHouse.s b/data/scripts/maps/Route124_DivingTreasureHuntersHouse.inc
index e1049c8be..e1049c8be 100644
--- a/data/scripts/maps/Route124_DivingTreasureHuntersHouse.s
+++ b/data/scripts/maps/Route124_DivingTreasureHuntersHouse.inc
diff --git a/data/scripts/maps/Route125.s b/data/scripts/maps/Route125.inc
index 0059fe6aa..0059fe6aa 100644
--- a/data/scripts/maps/Route125.s
+++ b/data/scripts/maps/Route125.inc
diff --git a/data/scripts/maps/Route126.s b/data/scripts/maps/Route126.inc
index f3d1a77f9..f3d1a77f9 100644
--- a/data/scripts/maps/Route126.s
+++ b/data/scripts/maps/Route126.inc
diff --git a/data/scripts/maps/Route127.s b/data/scripts/maps/Route127.inc
index b4461b253..b4461b253 100644
--- a/data/scripts/maps/Route127.s
+++ b/data/scripts/maps/Route127.inc
diff --git a/data/scripts/maps/Route128.s b/data/scripts/maps/Route128.inc
index 28317c4e3..28317c4e3 100644
--- a/data/scripts/maps/Route128.s
+++ b/data/scripts/maps/Route128.inc
diff --git a/data/scripts/maps/Route129.s b/data/scripts/maps/Route129.inc
index ea43c5eab..ea43c5eab 100644
--- a/data/scripts/maps/Route129.s
+++ b/data/scripts/maps/Route129.inc
diff --git a/data/scripts/maps/Route130.s b/data/scripts/maps/Route130.inc
index 38818dba3..38818dba3 100644
--- a/data/scripts/maps/Route130.s
+++ b/data/scripts/maps/Route130.inc
diff --git a/data/scripts/maps/Route131.s b/data/scripts/maps/Route131.inc
index 81cb7dc02..81cb7dc02 100644
--- a/data/scripts/maps/Route131.s
+++ b/data/scripts/maps/Route131.inc
diff --git a/data/scripts/maps/Route132.s b/data/scripts/maps/Route132.inc
index 642330fd4..642330fd4 100644
--- a/data/scripts/maps/Route132.s
+++ b/data/scripts/maps/Route132.inc
diff --git a/data/scripts/maps/Route133.s b/data/scripts/maps/Route133.inc
index 78bec4141..78bec4141 100644
--- a/data/scripts/maps/Route133.s
+++ b/data/scripts/maps/Route133.inc
diff --git a/data/scripts/maps/Route134.s b/data/scripts/maps/Route134.inc
index b1f77fac1..b1f77fac1 100644
--- a/data/scripts/maps/Route134.s
+++ b/data/scripts/maps/Route134.inc
diff --git a/data/scripts/maps/RustboroCity.s b/data/scripts/maps/RustboroCity.inc
index c338e8b67..c338e8b67 100644
--- a/data/scripts/maps/RustboroCity.s
+++ b/data/scripts/maps/RustboroCity.inc
diff --git a/data/scripts/maps/RustboroCity_CuttersHouse.s b/data/scripts/maps/RustboroCity_CuttersHouse.inc
index d400de1ef..d400de1ef 100644
--- a/data/scripts/maps/RustboroCity_CuttersHouse.s
+++ b/data/scripts/maps/RustboroCity_CuttersHouse.inc
diff --git a/data/scripts/maps/RustboroCity_DevonCorp_1F.s b/data/scripts/maps/RustboroCity_DevonCorp_1F.inc
index 97a59257f..97a59257f 100644
--- a/data/scripts/maps/RustboroCity_DevonCorp_1F.s
+++ b/data/scripts/maps/RustboroCity_DevonCorp_1F.inc
diff --git a/data/scripts/maps/RustboroCity_DevonCorp_2F.s b/data/scripts/maps/RustboroCity_DevonCorp_2F.inc
index e35015b3e..e35015b3e 100644
--- a/data/scripts/maps/RustboroCity_DevonCorp_2F.s
+++ b/data/scripts/maps/RustboroCity_DevonCorp_2F.inc
diff --git a/data/scripts/maps/RustboroCity_DevonCorp_3F.s b/data/scripts/maps/RustboroCity_DevonCorp_3F.inc
index 2b749c873..2b749c873 100644
--- a/data/scripts/maps/RustboroCity_DevonCorp_3F.s
+++ b/data/scripts/maps/RustboroCity_DevonCorp_3F.inc
diff --git a/data/scripts/maps/RustboroCity_Flat1_1F.s b/data/scripts/maps/RustboroCity_Flat1_1F.inc
index dbbdf22b7..dbbdf22b7 100644
--- a/data/scripts/maps/RustboroCity_Flat1_1F.s
+++ b/data/scripts/maps/RustboroCity_Flat1_1F.inc
diff --git a/data/scripts/maps/RustboroCity_Flat1_2F.s b/data/scripts/maps/RustboroCity_Flat1_2F.inc
index 53672bb42..53672bb42 100644
--- a/data/scripts/maps/RustboroCity_Flat1_2F.s
+++ b/data/scripts/maps/RustboroCity_Flat1_2F.inc
diff --git a/data/scripts/maps/RustboroCity_Flat2_1F.s b/data/scripts/maps/RustboroCity_Flat2_1F.inc
index 5aa91d5d1..5aa91d5d1 100644
--- a/data/scripts/maps/RustboroCity_Flat2_1F.s
+++ b/data/scripts/maps/RustboroCity_Flat2_1F.inc
diff --git a/data/scripts/maps/RustboroCity_Flat2_2F.s b/data/scripts/maps/RustboroCity_Flat2_2F.inc
index d6e0c92b3..d6e0c92b3 100644
--- a/data/scripts/maps/RustboroCity_Flat2_2F.s
+++ b/data/scripts/maps/RustboroCity_Flat2_2F.inc
diff --git a/data/scripts/maps/RustboroCity_Flat2_3F.s b/data/scripts/maps/RustboroCity_Flat2_3F.inc
index d3b05b5bf..d3b05b5bf 100644
--- a/data/scripts/maps/RustboroCity_Flat2_3F.s
+++ b/data/scripts/maps/RustboroCity_Flat2_3F.inc
diff --git a/data/scripts/maps/RustboroCity_Gym.s b/data/scripts/maps/RustboroCity_Gym.inc
index e4f91f82e..e4f91f82e 100644
--- a/data/scripts/maps/RustboroCity_Gym.s
+++ b/data/scripts/maps/RustboroCity_Gym.inc
diff --git a/data/scripts/maps/RustboroCity_House1.s b/data/scripts/maps/RustboroCity_House1.inc
index a10d7b69e..a10d7b69e 100644
--- a/data/scripts/maps/RustboroCity_House1.s
+++ b/data/scripts/maps/RustboroCity_House1.inc
diff --git a/data/scripts/maps/RustboroCity_House2.s b/data/scripts/maps/RustboroCity_House2.inc
index b448065f4..b448065f4 100644
--- a/data/scripts/maps/RustboroCity_House2.s
+++ b/data/scripts/maps/RustboroCity_House2.inc
diff --git a/data/scripts/maps/RustboroCity_House3.s b/data/scripts/maps/RustboroCity_House3.inc
index 0e81ed158..0e81ed158 100644
--- a/data/scripts/maps/RustboroCity_House3.s
+++ b/data/scripts/maps/RustboroCity_House3.inc
diff --git a/data/scripts/maps/RustboroCity_Mart.s b/data/scripts/maps/RustboroCity_Mart.inc
index 6b4ff3a77..6b4ff3a77 100644
--- a/data/scripts/maps/RustboroCity_Mart.s
+++ b/data/scripts/maps/RustboroCity_Mart.inc
diff --git a/data/scripts/maps/RustboroCity_PokemonCenter_1F.s b/data/scripts/maps/RustboroCity_PokemonCenter_1F.inc
index 896e8e220..896e8e220 100644
--- a/data/scripts/maps/RustboroCity_PokemonCenter_1F.s
+++ b/data/scripts/maps/RustboroCity_PokemonCenter_1F.inc
diff --git a/data/scripts/maps/RustboroCity_PokemonCenter_2F.s b/data/scripts/maps/RustboroCity_PokemonCenter_2F.inc
index d0ffc5435..d0ffc5435 100644
--- a/data/scripts/maps/RustboroCity_PokemonCenter_2F.s
+++ b/data/scripts/maps/RustboroCity_PokemonCenter_2F.inc
diff --git a/data/scripts/maps/RustboroCity_PokemonSchool.s b/data/scripts/maps/RustboroCity_PokemonSchool.inc
index 8b037a3e7..8b037a3e7 100644
--- a/data/scripts/maps/RustboroCity_PokemonSchool.s
+++ b/data/scripts/maps/RustboroCity_PokemonSchool.inc
diff --git a/data/scripts/maps/RusturfTunnel.s b/data/scripts/maps/RusturfTunnel.inc
index 129bef7c9..129bef7c9 100644
--- a/data/scripts/maps/RusturfTunnel.s
+++ b/data/scripts/maps/RusturfTunnel.inc
diff --git a/data/scripts/maps/SSTidalCorridor.s b/data/scripts/maps/SSTidalCorridor.inc
index ff4857852..ff4857852 100644
--- a/data/scripts/maps/SSTidalCorridor.s
+++ b/data/scripts/maps/SSTidalCorridor.inc
diff --git a/data/scripts/maps/SSTidalLowerDeck.s b/data/scripts/maps/SSTidalLowerDeck.inc
index e91c20625..e91c20625 100644
--- a/data/scripts/maps/SSTidalLowerDeck.s
+++ b/data/scripts/maps/SSTidalLowerDeck.inc
diff --git a/data/scripts/maps/SSTidalRooms.s b/data/scripts/maps/SSTidalRooms.inc
index 4d588cd46..4d588cd46 100644
--- a/data/scripts/maps/SSTidalRooms.s
+++ b/data/scripts/maps/SSTidalRooms.inc
diff --git a/data/scripts/maps/SafariZone_Northeast.s b/data/scripts/maps/SafariZone_Northeast.inc
index 11e14da0f..11e14da0f 100644
--- a/data/scripts/maps/SafariZone_Northeast.s
+++ b/data/scripts/maps/SafariZone_Northeast.inc
diff --git a/data/scripts/maps/SafariZone_Northwest.s b/data/scripts/maps/SafariZone_Northwest.inc
index f17b7078d..f17b7078d 100644
--- a/data/scripts/maps/SafariZone_Northwest.s
+++ b/data/scripts/maps/SafariZone_Northwest.inc
diff --git a/data/scripts/maps/SafariZone_RestHouse.s b/data/scripts/maps/SafariZone_RestHouse.inc
index edaee1580..edaee1580 100644
--- a/data/scripts/maps/SafariZone_RestHouse.s
+++ b/data/scripts/maps/SafariZone_RestHouse.inc
diff --git a/data/scripts/maps/SafariZone_Southeast.s b/data/scripts/maps/SafariZone_Southeast.inc
index 196efbb35..196efbb35 100644
--- a/data/scripts/maps/SafariZone_Southeast.s
+++ b/data/scripts/maps/SafariZone_Southeast.inc
diff --git a/data/scripts/maps/SafariZone_Southwest.s b/data/scripts/maps/SafariZone_Southwest.inc
index 51bffeeab..51bffeeab 100644
--- a/data/scripts/maps/SafariZone_Southwest.s
+++ b/data/scripts/maps/SafariZone_Southwest.inc
diff --git a/data/scripts/maps/ScorchedSlab.s b/data/scripts/maps/ScorchedSlab.inc
index 112289083..112289083 100644
--- a/data/scripts/maps/ScorchedSlab.s
+++ b/data/scripts/maps/ScorchedSlab.inc
diff --git a/data/scripts/maps/SeafloorCavern_Entrance.s b/data/scripts/maps/SeafloorCavern_Entrance.inc
index 0bf99d2ad..0bf99d2ad 100644
--- a/data/scripts/maps/SeafloorCavern_Entrance.s
+++ b/data/scripts/maps/SeafloorCavern_Entrance.inc
diff --git a/data/scripts/maps/SeafloorCavern_Room1.s b/data/scripts/maps/SeafloorCavern_Room1.inc
index 6478efac1..6478efac1 100644
--- a/data/scripts/maps/SeafloorCavern_Room1.s
+++ b/data/scripts/maps/SeafloorCavern_Room1.inc
diff --git a/data/scripts/maps/SeafloorCavern_Room2.s b/data/scripts/maps/SeafloorCavern_Room2.inc
index b4507c8b9..b4507c8b9 100644
--- a/data/scripts/maps/SeafloorCavern_Room2.s
+++ b/data/scripts/maps/SeafloorCavern_Room2.inc
diff --git a/data/scripts/maps/SeafloorCavern_Room3.s b/data/scripts/maps/SeafloorCavern_Room3.inc
index 2ff8c4b26..2ff8c4b26 100644
--- a/data/scripts/maps/SeafloorCavern_Room3.s
+++ b/data/scripts/maps/SeafloorCavern_Room3.inc
diff --git a/data/scripts/maps/SeafloorCavern_Room4.s b/data/scripts/maps/SeafloorCavern_Room4.inc
index cbed797c0..cbed797c0 100644
--- a/data/scripts/maps/SeafloorCavern_Room4.s
+++ b/data/scripts/maps/SeafloorCavern_Room4.inc
diff --git a/data/scripts/maps/SeafloorCavern_Room5.s b/data/scripts/maps/SeafloorCavern_Room5.inc
index 79b65c2e6..79b65c2e6 100644
--- a/data/scripts/maps/SeafloorCavern_Room5.s
+++ b/data/scripts/maps/SeafloorCavern_Room5.inc
diff --git a/data/scripts/maps/SeafloorCavern_Room6.s b/data/scripts/maps/SeafloorCavern_Room6.inc
index 3ebeae07f..3ebeae07f 100644
--- a/data/scripts/maps/SeafloorCavern_Room6.s
+++ b/data/scripts/maps/SeafloorCavern_Room6.inc
diff --git a/data/scripts/maps/SeafloorCavern_Room7.s b/data/scripts/maps/SeafloorCavern_Room7.inc
index acad96ad0..acad96ad0 100644
--- a/data/scripts/maps/SeafloorCavern_Room7.s
+++ b/data/scripts/maps/SeafloorCavern_Room7.inc
diff --git a/data/scripts/maps/SeafloorCavern_Room8.s b/data/scripts/maps/SeafloorCavern_Room8.inc
index 117f9e6b5..117f9e6b5 100644
--- a/data/scripts/maps/SeafloorCavern_Room8.s
+++ b/data/scripts/maps/SeafloorCavern_Room8.inc
diff --git a/data/scripts/maps/SeafloorCavern_Room9.s b/data/scripts/maps/SeafloorCavern_Room9.inc
index ff8592f7d..ff8592f7d 100644
--- a/data/scripts/maps/SeafloorCavern_Room9.s
+++ b/data/scripts/maps/SeafloorCavern_Room9.inc
diff --git a/data/scripts/maps/SealedChamber_InnerRoom.s b/data/scripts/maps/SealedChamber_InnerRoom.inc
index 16d4c7003..16d4c7003 100644
--- a/data/scripts/maps/SealedChamber_InnerRoom.s
+++ b/data/scripts/maps/SealedChamber_InnerRoom.inc
diff --git a/data/scripts/maps/SealedChamber_OuterRoom.s b/data/scripts/maps/SealedChamber_OuterRoom.inc
index 83ca4e4df..83ca4e4df 100644
--- a/data/scripts/maps/SealedChamber_OuterRoom.s
+++ b/data/scripts/maps/SealedChamber_OuterRoom.inc
diff --git a/data/scripts/maps/SecretBase_BlueCave1.s b/data/scripts/maps/SecretBase_BlueCave1.inc
index bca6bee55..bca6bee55 100644
--- a/data/scripts/maps/SecretBase_BlueCave1.s
+++ b/data/scripts/maps/SecretBase_BlueCave1.inc
diff --git a/data/scripts/maps/SecretBase_BlueCave2.s b/data/scripts/maps/SecretBase_BlueCave2.inc
index 4fc579fb9..4fc579fb9 100644
--- a/data/scripts/maps/SecretBase_BlueCave2.s
+++ b/data/scripts/maps/SecretBase_BlueCave2.inc
diff --git a/data/scripts/maps/SecretBase_BlueCave3.s b/data/scripts/maps/SecretBase_BlueCave3.inc
index 0a8199f19..0a8199f19 100644
--- a/data/scripts/maps/SecretBase_BlueCave3.s
+++ b/data/scripts/maps/SecretBase_BlueCave3.inc
diff --git a/data/scripts/maps/SecretBase_BlueCave4.s b/data/scripts/maps/SecretBase_BlueCave4.inc
index 72c1e9612..72c1e9612 100644
--- a/data/scripts/maps/SecretBase_BlueCave4.s
+++ b/data/scripts/maps/SecretBase_BlueCave4.inc
diff --git a/data/scripts/maps/SecretBase_BrownCave1.s b/data/scripts/maps/SecretBase_BrownCave1.inc
index ddbf182e4..ddbf182e4 100644
--- a/data/scripts/maps/SecretBase_BrownCave1.s
+++ b/data/scripts/maps/SecretBase_BrownCave1.inc
diff --git a/data/scripts/maps/SecretBase_BrownCave2.s b/data/scripts/maps/SecretBase_BrownCave2.inc
index 06dcb6335..06dcb6335 100644
--- a/data/scripts/maps/SecretBase_BrownCave2.s
+++ b/data/scripts/maps/SecretBase_BrownCave2.inc
diff --git a/data/scripts/maps/SecretBase_BrownCave3.s b/data/scripts/maps/SecretBase_BrownCave3.inc
index a0a85dc11..a0a85dc11 100644
--- a/data/scripts/maps/SecretBase_BrownCave3.s
+++ b/data/scripts/maps/SecretBase_BrownCave3.inc
diff --git a/data/scripts/maps/SecretBase_BrownCave4.s b/data/scripts/maps/SecretBase_BrownCave4.inc
index 12d931e9e..12d931e9e 100644
--- a/data/scripts/maps/SecretBase_BrownCave4.s
+++ b/data/scripts/maps/SecretBase_BrownCave4.inc
diff --git a/data/scripts/maps/SecretBase_RedCave1.s b/data/scripts/maps/SecretBase_RedCave1.inc
index 77b99daec..77b99daec 100644
--- a/data/scripts/maps/SecretBase_RedCave1.s
+++ b/data/scripts/maps/SecretBase_RedCave1.inc
diff --git a/data/scripts/maps/SecretBase_RedCave2.s b/data/scripts/maps/SecretBase_RedCave2.inc
index 735d386fc..735d386fc 100644
--- a/data/scripts/maps/SecretBase_RedCave2.s
+++ b/data/scripts/maps/SecretBase_RedCave2.inc
diff --git a/data/scripts/maps/SecretBase_RedCave3.s b/data/scripts/maps/SecretBase_RedCave3.inc
index c9b72ca30..c9b72ca30 100644
--- a/data/scripts/maps/SecretBase_RedCave3.s
+++ b/data/scripts/maps/SecretBase_RedCave3.inc
diff --git a/data/scripts/maps/SecretBase_RedCave4.s b/data/scripts/maps/SecretBase_RedCave4.inc
index 6d2402f03..6d2402f03 100644
--- a/data/scripts/maps/SecretBase_RedCave4.s
+++ b/data/scripts/maps/SecretBase_RedCave4.inc
diff --git a/data/scripts/maps/SecretBase_Shrub1.s b/data/scripts/maps/SecretBase_Shrub1.inc
index 79116a0cf..79116a0cf 100644
--- a/data/scripts/maps/SecretBase_Shrub1.s
+++ b/data/scripts/maps/SecretBase_Shrub1.inc
diff --git a/data/scripts/maps/SecretBase_Shrub2.s b/data/scripts/maps/SecretBase_Shrub2.inc
index 49835f7f3..49835f7f3 100644
--- a/data/scripts/maps/SecretBase_Shrub2.s
+++ b/data/scripts/maps/SecretBase_Shrub2.inc
diff --git a/data/scripts/maps/SecretBase_Shrub3.s b/data/scripts/maps/SecretBase_Shrub3.inc
index 0aeb7bdf9..0aeb7bdf9 100644
--- a/data/scripts/maps/SecretBase_Shrub3.s
+++ b/data/scripts/maps/SecretBase_Shrub3.inc
diff --git a/data/scripts/maps/SecretBase_Shrub4.s b/data/scripts/maps/SecretBase_Shrub4.inc
index f131b308d..f131b308d 100644
--- a/data/scripts/maps/SecretBase_Shrub4.s
+++ b/data/scripts/maps/SecretBase_Shrub4.inc
diff --git a/data/scripts/maps/SecretBase_Tree1.s b/data/scripts/maps/SecretBase_Tree1.inc
index 7345c3bbb..7345c3bbb 100644
--- a/data/scripts/maps/SecretBase_Tree1.s
+++ b/data/scripts/maps/SecretBase_Tree1.inc
diff --git a/data/scripts/maps/SecretBase_Tree2.s b/data/scripts/maps/SecretBase_Tree2.inc
index 0f2976a8c..0f2976a8c 100644
--- a/data/scripts/maps/SecretBase_Tree2.s
+++ b/data/scripts/maps/SecretBase_Tree2.inc
diff --git a/data/scripts/maps/SecretBase_Tree3.s b/data/scripts/maps/SecretBase_Tree3.inc
index cb80b0d25..cb80b0d25 100644
--- a/data/scripts/maps/SecretBase_Tree3.s
+++ b/data/scripts/maps/SecretBase_Tree3.inc
diff --git a/data/scripts/maps/SecretBase_Tree4.s b/data/scripts/maps/SecretBase_Tree4.inc
index 0a6771740..0a6771740 100644
--- a/data/scripts/maps/SecretBase_Tree4.s
+++ b/data/scripts/maps/SecretBase_Tree4.inc
diff --git a/data/scripts/maps/SecretBase_YellowCave1.s b/data/scripts/maps/SecretBase_YellowCave1.inc
index b76a5f44e..b76a5f44e 100644
--- a/data/scripts/maps/SecretBase_YellowCave1.s
+++ b/data/scripts/maps/SecretBase_YellowCave1.inc
diff --git a/data/scripts/maps/SecretBase_YellowCave2.s b/data/scripts/maps/SecretBase_YellowCave2.inc
index 0bc1fc354..0bc1fc354 100644
--- a/data/scripts/maps/SecretBase_YellowCave2.s
+++ b/data/scripts/maps/SecretBase_YellowCave2.inc
diff --git a/data/scripts/maps/SecretBase_YellowCave3.s b/data/scripts/maps/SecretBase_YellowCave3.inc
index 137f04316..137f04316 100644
--- a/data/scripts/maps/SecretBase_YellowCave3.s
+++ b/data/scripts/maps/SecretBase_YellowCave3.inc
diff --git a/data/scripts/maps/SecretBase_YellowCave4.s b/data/scripts/maps/SecretBase_YellowCave4.inc
index 4ccbc2f0e..4ccbc2f0e 100644
--- a/data/scripts/maps/SecretBase_YellowCave4.s
+++ b/data/scripts/maps/SecretBase_YellowCave4.inc
diff --git a/data/scripts/maps/ShoalCave_HighTideEntranceRoom.s b/data/scripts/maps/ShoalCave_HighTideEntranceRoom.inc
index ae1f2c279..ae1f2c279 100644
--- a/data/scripts/maps/ShoalCave_HighTideEntranceRoom.s
+++ b/data/scripts/maps/ShoalCave_HighTideEntranceRoom.inc
diff --git a/data/scripts/maps/ShoalCave_HighTideInnerRoom.s b/data/scripts/maps/ShoalCave_HighTideInnerRoom.inc
index 9b47c97e7..9b47c97e7 100644
--- a/data/scripts/maps/ShoalCave_HighTideInnerRoom.s
+++ b/data/scripts/maps/ShoalCave_HighTideInnerRoom.inc
diff --git a/data/scripts/maps/ShoalCave_LowTideEntranceRoom.s b/data/scripts/maps/ShoalCave_LowTideEntranceRoom.inc
index 9b822a473..9b822a473 100644
--- a/data/scripts/maps/ShoalCave_LowTideEntranceRoom.s
+++ b/data/scripts/maps/ShoalCave_LowTideEntranceRoom.inc
diff --git a/data/scripts/maps/ShoalCave_LowTideIceRoom.s b/data/scripts/maps/ShoalCave_LowTideIceRoom.inc
index 311ff2126..311ff2126 100644
--- a/data/scripts/maps/ShoalCave_LowTideIceRoom.s
+++ b/data/scripts/maps/ShoalCave_LowTideIceRoom.inc
diff --git a/data/scripts/maps/ShoalCave_LowTideInnerRoom.s b/data/scripts/maps/ShoalCave_LowTideInnerRoom.inc
index eab522a1f..eab522a1f 100644
--- a/data/scripts/maps/ShoalCave_LowTideInnerRoom.s
+++ b/data/scripts/maps/ShoalCave_LowTideInnerRoom.inc
diff --git a/data/scripts/maps/ShoalCave_LowTideLowerRoom.s b/data/scripts/maps/ShoalCave_LowTideLowerRoom.inc
index dfcd5b83f..dfcd5b83f 100644
--- a/data/scripts/maps/ShoalCave_LowTideLowerRoom.s
+++ b/data/scripts/maps/ShoalCave_LowTideLowerRoom.inc
diff --git a/data/scripts/maps/ShoalCave_LowTideStairsRoom.s b/data/scripts/maps/ShoalCave_LowTideStairsRoom.inc
index 584a57818..584a57818 100644
--- a/data/scripts/maps/ShoalCave_LowTideStairsRoom.s
+++ b/data/scripts/maps/ShoalCave_LowTideStairsRoom.inc
diff --git a/data/scripts/maps/SingleBattleColosseum.s b/data/scripts/maps/SingleBattleColosseum.inc
index d3f2bdcaf..d3f2bdcaf 100644
--- a/data/scripts/maps/SingleBattleColosseum.s
+++ b/data/scripts/maps/SingleBattleColosseum.inc
diff --git a/data/scripts/maps/SkyPillar_1F.s b/data/scripts/maps/SkyPillar_1F.inc
index aa6c117da..aa6c117da 100644
--- a/data/scripts/maps/SkyPillar_1F.s
+++ b/data/scripts/maps/SkyPillar_1F.inc
diff --git a/data/scripts/maps/SkyPillar_2F.s b/data/scripts/maps/SkyPillar_2F.inc
index 62cb389f2..62cb389f2 100644
--- a/data/scripts/maps/SkyPillar_2F.s
+++ b/data/scripts/maps/SkyPillar_2F.inc
diff --git a/data/scripts/maps/SkyPillar_3F.s b/data/scripts/maps/SkyPillar_3F.inc
index 2dc97fc9c..2dc97fc9c 100644
--- a/data/scripts/maps/SkyPillar_3F.s
+++ b/data/scripts/maps/SkyPillar_3F.inc
diff --git a/data/scripts/maps/SkyPillar_4F.s b/data/scripts/maps/SkyPillar_4F.inc
index 5e1f7f4e6..5e1f7f4e6 100644
--- a/data/scripts/maps/SkyPillar_4F.s
+++ b/data/scripts/maps/SkyPillar_4F.inc
diff --git a/data/scripts/maps/SkyPillar_5F.s b/data/scripts/maps/SkyPillar_5F.inc
index 64e6d0f38..64e6d0f38 100644
--- a/data/scripts/maps/SkyPillar_5F.s
+++ b/data/scripts/maps/SkyPillar_5F.inc
diff --git a/data/scripts/maps/SkyPillar_Entrance.s b/data/scripts/maps/SkyPillar_Entrance.inc
index 7a3927332..7a3927332 100644
--- a/data/scripts/maps/SkyPillar_Entrance.s
+++ b/data/scripts/maps/SkyPillar_Entrance.inc
diff --git a/data/scripts/maps/SkyPillar_Outside.s b/data/scripts/maps/SkyPillar_Outside.inc
index 51e6a4e83..51e6a4e83 100644
--- a/data/scripts/maps/SkyPillar_Outside.s
+++ b/data/scripts/maps/SkyPillar_Outside.inc
diff --git a/data/scripts/maps/SkyPillar_Top.s b/data/scripts/maps/SkyPillar_Top.inc
index b28d89d93..b28d89d93 100644
--- a/data/scripts/maps/SkyPillar_Top.s
+++ b/data/scripts/maps/SkyPillar_Top.inc
diff --git a/data/scripts/maps/SlateportCity.s b/data/scripts/maps/SlateportCity.inc
index 19f9af2eb..19f9af2eb 100644
--- a/data/scripts/maps/SlateportCity.s
+++ b/data/scripts/maps/SlateportCity.inc
diff --git a/data/scripts/maps/SlateportCity_ContestHall.s b/data/scripts/maps/SlateportCity_ContestHall.inc
index 559719583..559719583 100644
--- a/data/scripts/maps/SlateportCity_ContestHall.s
+++ b/data/scripts/maps/SlateportCity_ContestHall.inc
diff --git a/data/scripts/maps/SlateportCity_ContestLobby.s b/data/scripts/maps/SlateportCity_ContestLobby.inc
index 46b595034..b2cce5312 100644
--- a/data/scripts/maps/SlateportCity_ContestLobby.s
+++ b/data/scripts/maps/SlateportCity_ContestLobby.inc
@@ -8,7 +8,7 @@ SlateportCity_ContestLobby_MapScript1_155417:: @ 8155417
SlateportCity_ContestLobby_EventScript_15541D:: @ 815541D
setvar 0x800b, 7
- setvar 0x8010, 2
+ setvar CONTEST_RANK, 2
call SlateportCity_ContestLobby_EventScript_1A4E92
call SlateportCity_ContestLobby_EventScript_155448
special 83
diff --git a/data/scripts/maps/SlateportCity_Harbor.s b/data/scripts/maps/SlateportCity_Harbor.inc
index d65d28877..d65d28877 100644
--- a/data/scripts/maps/SlateportCity_Harbor.s
+++ b/data/scripts/maps/SlateportCity_Harbor.inc
diff --git a/data/scripts/maps/SlateportCity_House1.s b/data/scripts/maps/SlateportCity_House1.inc
index 936d520dd..936d520dd 100644
--- a/data/scripts/maps/SlateportCity_House1.s
+++ b/data/scripts/maps/SlateportCity_House1.inc
diff --git a/data/scripts/maps/SlateportCity_House2.s b/data/scripts/maps/SlateportCity_House2.inc
index 2d50f0851..2d50f0851 100644
--- a/data/scripts/maps/SlateportCity_House2.s
+++ b/data/scripts/maps/SlateportCity_House2.inc
diff --git a/data/scripts/maps/SlateportCity_Mart.s b/data/scripts/maps/SlateportCity_Mart.inc
index 730afe6d4..730afe6d4 100644
--- a/data/scripts/maps/SlateportCity_Mart.s
+++ b/data/scripts/maps/SlateportCity_Mart.inc
diff --git a/data/scripts/maps/SlateportCity_OceanicMuseum_1F.s b/data/scripts/maps/SlateportCity_OceanicMuseum_1F.inc
index 0bfeb4f5a..0bfeb4f5a 100644
--- a/data/scripts/maps/SlateportCity_OceanicMuseum_1F.s
+++ b/data/scripts/maps/SlateportCity_OceanicMuseum_1F.inc
diff --git a/data/scripts/maps/SlateportCity_OceanicMuseum_2F.s b/data/scripts/maps/SlateportCity_OceanicMuseum_2F.inc
index 57bfbbd03..57bfbbd03 100644
--- a/data/scripts/maps/SlateportCity_OceanicMuseum_2F.s
+++ b/data/scripts/maps/SlateportCity_OceanicMuseum_2F.inc
diff --git a/data/scripts/maps/SlateportCity_PokemonCenter_1F.s b/data/scripts/maps/SlateportCity_PokemonCenter_1F.inc
index c550a6850..c550a6850 100644
--- a/data/scripts/maps/SlateportCity_PokemonCenter_1F.s
+++ b/data/scripts/maps/SlateportCity_PokemonCenter_1F.inc
diff --git a/data/scripts/maps/SlateportCity_PokemonCenter_2F.s b/data/scripts/maps/SlateportCity_PokemonCenter_2F.inc
index 98782b24d..98782b24d 100644
--- a/data/scripts/maps/SlateportCity_PokemonCenter_2F.s
+++ b/data/scripts/maps/SlateportCity_PokemonCenter_2F.inc
diff --git a/data/scripts/maps/SlateportCity_PokemonFanClub.s b/data/scripts/maps/SlateportCity_PokemonFanClub.inc
index 8f0323f77..8f0323f77 100644
--- a/data/scripts/maps/SlateportCity_PokemonFanClub.s
+++ b/data/scripts/maps/SlateportCity_PokemonFanClub.inc
diff --git a/data/scripts/maps/SlateportCity_SternsShipyard_1F.s b/data/scripts/maps/SlateportCity_SternsShipyard_1F.inc
index 4c0596d29..4c0596d29 100644
--- a/data/scripts/maps/SlateportCity_SternsShipyard_1F.s
+++ b/data/scripts/maps/SlateportCity_SternsShipyard_1F.inc
diff --git a/data/scripts/maps/SlateportCity_SternsShipyard_2F.s b/data/scripts/maps/SlateportCity_SternsShipyard_2F.inc
index df9227dd3..df9227dd3 100644
--- a/data/scripts/maps/SlateportCity_SternsShipyard_2F.s
+++ b/data/scripts/maps/SlateportCity_SternsShipyard_2F.inc
diff --git a/data/scripts/maps/SootopolisCity.s b/data/scripts/maps/SootopolisCity.inc
index 3d9c2dc93..3d9c2dc93 100644
--- a/data/scripts/maps/SootopolisCity.s
+++ b/data/scripts/maps/SootopolisCity.inc
diff --git a/data/scripts/maps/SootopolisCity_Gym_1F.s b/data/scripts/maps/SootopolisCity_Gym_1F.inc
index e28ab4547..e28ab4547 100644
--- a/data/scripts/maps/SootopolisCity_Gym_1F.s
+++ b/data/scripts/maps/SootopolisCity_Gym_1F.inc
diff --git a/data/scripts/maps/SootopolisCity_Gym_B1F.s b/data/scripts/maps/SootopolisCity_Gym_B1F.inc
index e54970701..e54970701 100644
--- a/data/scripts/maps/SootopolisCity_Gym_B1F.s
+++ b/data/scripts/maps/SootopolisCity_Gym_B1F.inc
diff --git a/data/scripts/maps/SootopolisCity_House1.s b/data/scripts/maps/SootopolisCity_House1.inc
index 604f04c4f..604f04c4f 100644
--- a/data/scripts/maps/SootopolisCity_House1.s
+++ b/data/scripts/maps/SootopolisCity_House1.inc
diff --git a/data/scripts/maps/SootopolisCity_House2.s b/data/scripts/maps/SootopolisCity_House2.inc
index 409a871a8..409a871a8 100644
--- a/data/scripts/maps/SootopolisCity_House2.s
+++ b/data/scripts/maps/SootopolisCity_House2.inc
diff --git a/data/scripts/maps/SootopolisCity_House3.s b/data/scripts/maps/SootopolisCity_House3.inc
index 88e35730e..88e35730e 100644
--- a/data/scripts/maps/SootopolisCity_House3.s
+++ b/data/scripts/maps/SootopolisCity_House3.inc
diff --git a/data/scripts/maps/SootopolisCity_House4.s b/data/scripts/maps/SootopolisCity_House4.inc
index ee3bfe61b..ee3bfe61b 100644
--- a/data/scripts/maps/SootopolisCity_House4.s
+++ b/data/scripts/maps/SootopolisCity_House4.inc
diff --git a/data/scripts/maps/SootopolisCity_House5.s b/data/scripts/maps/SootopolisCity_House5.inc
index 26e5c7d5c..26e5c7d5c 100644
--- a/data/scripts/maps/SootopolisCity_House5.s
+++ b/data/scripts/maps/SootopolisCity_House5.inc
diff --git a/data/scripts/maps/SootopolisCity_House6.s b/data/scripts/maps/SootopolisCity_House6.inc
index cccfa78ee..cccfa78ee 100644
--- a/data/scripts/maps/SootopolisCity_House6.s
+++ b/data/scripts/maps/SootopolisCity_House6.inc
diff --git a/data/scripts/maps/SootopolisCity_House7.s b/data/scripts/maps/SootopolisCity_House7.inc
index a9b06b176..a9b06b176 100644
--- a/data/scripts/maps/SootopolisCity_House7.s
+++ b/data/scripts/maps/SootopolisCity_House7.inc
diff --git a/data/scripts/maps/SootopolisCity_House8.s b/data/scripts/maps/SootopolisCity_House8.inc
index c52965124..c52965124 100644
--- a/data/scripts/maps/SootopolisCity_House8.s
+++ b/data/scripts/maps/SootopolisCity_House8.inc
diff --git a/data/scripts/maps/SootopolisCity_Mart.s b/data/scripts/maps/SootopolisCity_Mart.inc
index 9f37f9d0b..9f37f9d0b 100644
--- a/data/scripts/maps/SootopolisCity_Mart.s
+++ b/data/scripts/maps/SootopolisCity_Mart.inc
diff --git a/data/scripts/maps/SootopolisCity_PokemonCenter_1F.s b/data/scripts/maps/SootopolisCity_PokemonCenter_1F.inc
index 29cc06584..29cc06584 100644
--- a/data/scripts/maps/SootopolisCity_PokemonCenter_1F.s
+++ b/data/scripts/maps/SootopolisCity_PokemonCenter_1F.inc
diff --git a/data/scripts/maps/SootopolisCity_PokemonCenter_2F.s b/data/scripts/maps/SootopolisCity_PokemonCenter_2F.inc
index 0547e666f..0547e666f 100644
--- a/data/scripts/maps/SootopolisCity_PokemonCenter_2F.s
+++ b/data/scripts/maps/SootopolisCity_PokemonCenter_2F.inc
diff --git a/data/scripts/maps/SouthernIsland_Exterior.s b/data/scripts/maps/SouthernIsland_Exterior.inc
index 9723647cd..9723647cd 100644
--- a/data/scripts/maps/SouthernIsland_Exterior.s
+++ b/data/scripts/maps/SouthernIsland_Exterior.inc
diff --git a/data/scripts/maps/SouthernIsland_Interior.s b/data/scripts/maps/SouthernIsland_Interior.inc
index d3b944f29..d3b944f29 100644
--- a/data/scripts/maps/SouthernIsland_Interior.s
+++ b/data/scripts/maps/SouthernIsland_Interior.inc
diff --git a/data/scripts/maps/TradeCenter.s b/data/scripts/maps/TradeCenter.inc
index dadb3e875..dadb3e875 100644
--- a/data/scripts/maps/TradeCenter.s
+++ b/data/scripts/maps/TradeCenter.inc
diff --git a/data/scripts/maps/Underwater1.s b/data/scripts/maps/Underwater1.inc
index ab2e910fe..ab2e910fe 100644
--- a/data/scripts/maps/Underwater1.s
+++ b/data/scripts/maps/Underwater1.inc
diff --git a/data/scripts/maps/Underwater2.s b/data/scripts/maps/Underwater2.inc
index cf60a2b34..cf60a2b34 100644
--- a/data/scripts/maps/Underwater2.s
+++ b/data/scripts/maps/Underwater2.inc
diff --git a/data/scripts/maps/Underwater3.s b/data/scripts/maps/Underwater3.inc
index c34b07b1c..c34b07b1c 100644
--- a/data/scripts/maps/Underwater3.s
+++ b/data/scripts/maps/Underwater3.inc
diff --git a/data/scripts/maps/Underwater4.s b/data/scripts/maps/Underwater4.inc
index 0d2256e07..0d2256e07 100644
--- a/data/scripts/maps/Underwater4.s
+++ b/data/scripts/maps/Underwater4.inc
diff --git a/data/scripts/maps/Underwater_Route134.s b/data/scripts/maps/Underwater_Route134.inc
index ee79f9799..ee79f9799 100644
--- a/data/scripts/maps/Underwater_Route134.s
+++ b/data/scripts/maps/Underwater_Route134.inc
diff --git a/data/scripts/maps/Underwater_SeafloorCavern.s b/data/scripts/maps/Underwater_SeafloorCavern.inc
index c879ec609..c879ec609 100644
--- a/data/scripts/maps/Underwater_SeafloorCavern.s
+++ b/data/scripts/maps/Underwater_SeafloorCavern.inc
diff --git a/data/scripts/maps/Underwater_SealedChamber.s b/data/scripts/maps/Underwater_SealedChamber.inc
index d7e7aabcb..d7e7aabcb 100644
--- a/data/scripts/maps/Underwater_SealedChamber.s
+++ b/data/scripts/maps/Underwater_SealedChamber.inc
diff --git a/data/scripts/maps/Underwater_SootopolisCity.s b/data/scripts/maps/Underwater_SootopolisCity.inc
index 624c2c83e..624c2c83e 100644
--- a/data/scripts/maps/Underwater_SootopolisCity.s
+++ b/data/scripts/maps/Underwater_SootopolisCity.inc
diff --git a/data/scripts/maps/UnknownMap_25_29.s b/data/scripts/maps/UnknownMap_25_29.inc
index a62e0c9f3..a62e0c9f3 100644
--- a/data/scripts/maps/UnknownMap_25_29.s
+++ b/data/scripts/maps/UnknownMap_25_29.inc
diff --git a/data/scripts/maps/UnknownMap_25_30.s b/data/scripts/maps/UnknownMap_25_30.inc
index 70a1f0ac2..70a1f0ac2 100644
--- a/data/scripts/maps/UnknownMap_25_30.s
+++ b/data/scripts/maps/UnknownMap_25_30.inc
diff --git a/data/scripts/maps/UnknownMap_25_31.s b/data/scripts/maps/UnknownMap_25_31.inc
index 44c67cab5..44c67cab5 100644
--- a/data/scripts/maps/UnknownMap_25_31.s
+++ b/data/scripts/maps/UnknownMap_25_31.inc
diff --git a/data/scripts/maps/UnknownMap_25_32.s b/data/scripts/maps/UnknownMap_25_32.inc
index 485a626e6..485a626e6 100644
--- a/data/scripts/maps/UnknownMap_25_32.s
+++ b/data/scripts/maps/UnknownMap_25_32.inc
diff --git a/data/scripts/maps/UnknownMap_25_33.s b/data/scripts/maps/UnknownMap_25_33.inc
index 68feb9cc6..68feb9cc6 100644
--- a/data/scripts/maps/UnknownMap_25_33.s
+++ b/data/scripts/maps/UnknownMap_25_33.inc
diff --git a/data/scripts/maps/UnknownMap_25_34.s b/data/scripts/maps/UnknownMap_25_34.inc
index f4f1fe61c..f4f1fe61c 100644
--- a/data/scripts/maps/UnknownMap_25_34.s
+++ b/data/scripts/maps/UnknownMap_25_34.inc
diff --git a/data/scripts/maps/VerdanturfTown.s b/data/scripts/maps/VerdanturfTown.inc
index 610643823..610643823 100644
--- a/data/scripts/maps/VerdanturfTown.s
+++ b/data/scripts/maps/VerdanturfTown.inc
diff --git a/data/scripts/maps/VerdanturfTown_ContestHall.s b/data/scripts/maps/VerdanturfTown_ContestHall.inc
index 380385a88..380385a88 100644
--- a/data/scripts/maps/VerdanturfTown_ContestHall.s
+++ b/data/scripts/maps/VerdanturfTown_ContestHall.inc
diff --git a/data/scripts/maps/VerdanturfTown_ContestLobby.s b/data/scripts/maps/VerdanturfTown_ContestLobby.inc
index 7033e4fb1..066ecbdce 100644
--- a/data/scripts/maps/VerdanturfTown_ContestLobby.s
+++ b/data/scripts/maps/VerdanturfTown_ContestLobby.inc
@@ -8,7 +8,7 @@ VerdanturfTown_ContestLobby_MapScript1_153D70:: @ 8153D70
VerdanturfTown_ContestLobby_EventScript_153D76:: @ 8153D76
setvar 0x800b, 5
- setvar 0x8010, 0
+ setvar CONTEST_RANK, 0
call VerdanturfTown_ContestLobby_EventScript_1A4E92
call VerdanturfTown_ContestLobby_EventScript_153DA1
special 83
diff --git a/data/scripts/maps/VerdanturfTown_FriendshipRatersHouse.s b/data/scripts/maps/VerdanturfTown_FriendshipRatersHouse.inc
index 2dc2e1355..2dc2e1355 100644
--- a/data/scripts/maps/VerdanturfTown_FriendshipRatersHouse.s
+++ b/data/scripts/maps/VerdanturfTown_FriendshipRatersHouse.inc
diff --git a/data/scripts/maps/VerdanturfTown_House.s b/data/scripts/maps/VerdanturfTown_House.inc
index 45a22ae93..45a22ae93 100644
--- a/data/scripts/maps/VerdanturfTown_House.s
+++ b/data/scripts/maps/VerdanturfTown_House.inc
diff --git a/data/scripts/maps/VerdanturfTown_Mart.s b/data/scripts/maps/VerdanturfTown_Mart.inc
index 4227dc8b1..4227dc8b1 100644
--- a/data/scripts/maps/VerdanturfTown_Mart.s
+++ b/data/scripts/maps/VerdanturfTown_Mart.inc
diff --git a/data/scripts/maps/VerdanturfTown_PokemonCenter_1F.s b/data/scripts/maps/VerdanturfTown_PokemonCenter_1F.inc
index e0fee3fb8..e0fee3fb8 100644
--- a/data/scripts/maps/VerdanturfTown_PokemonCenter_1F.s
+++ b/data/scripts/maps/VerdanturfTown_PokemonCenter_1F.inc
diff --git a/data/scripts/maps/VerdanturfTown_PokemonCenter_2F.s b/data/scripts/maps/VerdanturfTown_PokemonCenter_2F.inc
index ec52d45a7..ec52d45a7 100644
--- a/data/scripts/maps/VerdanturfTown_PokemonCenter_2F.s
+++ b/data/scripts/maps/VerdanturfTown_PokemonCenter_2F.inc
diff --git a/data/scripts/maps/VerdanturfTown_WandasHouse.s b/data/scripts/maps/VerdanturfTown_WandasHouse.inc
index 80bd6151d..80bd6151d 100644
--- a/data/scripts/maps/VerdanturfTown_WandasHouse.s
+++ b/data/scripts/maps/VerdanturfTown_WandasHouse.inc
diff --git a/data/scripts/maps/VictoryRoad_1F.s b/data/scripts/maps/VictoryRoad_1F.inc
index b1f6e732b..b1f6e732b 100644
--- a/data/scripts/maps/VictoryRoad_1F.s
+++ b/data/scripts/maps/VictoryRoad_1F.inc
diff --git a/data/scripts/maps/VictoryRoad_B1F.s b/data/scripts/maps/VictoryRoad_B1F.inc
index e07cd4286..e07cd4286 100644
--- a/data/scripts/maps/VictoryRoad_B1F.s
+++ b/data/scripts/maps/VictoryRoad_B1F.inc
diff --git a/data/scripts/maps/VictoryRoad_B2F.s b/data/scripts/maps/VictoryRoad_B2F.inc
index 6b8fe2569..6b8fe2569 100644
--- a/data/scripts/maps/VictoryRoad_B2F.s
+++ b/data/scripts/maps/VictoryRoad_B2F.inc
diff --git a/data/scripts/mystery_event_club.s b/data/scripts/mystery_event_club.inc
index 15d4b2a40..15d4b2a40 100644
--- a/data/scripts/mystery_event_club.s
+++ b/data/scripts/mystery_event_club.inc
diff --git a/data/scripts/players_house.s b/data/scripts/players_house.inc
index 9db432c2c..9db432c2c 100644
--- a/data/scripts/players_house.s
+++ b/data/scripts/players_house.inc
diff --git a/data/scripts/pokeblocks.s b/data/scripts/pokeblocks.inc
index 2cb283173..2cb283173 100644
--- a/data/scripts/pokeblocks.s
+++ b/data/scripts/pokeblocks.inc
diff --git a/data/scripts/safari_zone.s b/data/scripts/safari_zone.inc
index c8d519038..c8d519038 100644
--- a/data/scripts/safari_zone.s
+++ b/data/scripts/safari_zone.inc
diff --git a/data/scripts/secret_power_tm.s b/data/scripts/secret_power_tm.inc
index 629125030..629125030 100644
--- a/data/scripts/secret_power_tm.s
+++ b/data/scripts/secret_power_tm.inc
diff --git a/data/scripts/storyteller.s b/data/scripts/storyteller.inc
index c44480e2f..c44480e2f 100644
--- a/data/scripts/storyteller.s
+++ b/data/scripts/storyteller.inc
diff --git a/data/scripts/trader.s b/data/scripts/trader.inc
index b3a302516..b3a302516 100644
--- a/data/scripts/trader.s
+++ b/data/scripts/trader.inc
diff --git a/data/scripts/tv.s b/data/scripts/tv.inc
index 2b317e725..2b317e725 100644
--- a/data/scripts/tv.s
+++ b/data/scripts/tv.inc
diff --git a/data/sine_degree_table.s b/data/sine_degree_table.inc
index a9cf05b62..a9cf05b62 100644
--- a/data/sine_degree_table.s
+++ b/data/sine_degree_table.inc
diff --git a/data/sine_table.s b/data/sine_table.inc
index fd1a5da72..fd1a5da72 100644
--- a/data/sine_table.s
+++ b/data/sine_table.inc
diff --git a/data/sound_data.s b/data/sound_data.s
index d9dc459ed..cd33950e1 100644
--- a/data/sound_data.s
+++ b/data/sound_data.s
@@ -1,13 +1,13 @@
.section .rodata
- .include "asm/macros/m4a.s"
- .include "asm/macros/music_voice.s"
+ .include "asm/macros/m4a.inc"
+ .include "asm/macros/music_voice.inc"
- .include "sound/voice_groups.s"
- .include "sound/keysplit_tables.s"
- .include "sound/programmable_wave_data.s"
- .include "sound/music_player_table.s"
- .include "sound/song_table.s"
- .include "sound/direct_sound_data.s"
+ .include "sound/voice_groups.inc"
+ .include "sound/keysplit_tables.inc"
+ .include "sound/programmable_wave_data.inc"
+ .include "sound/music_player_table.inc"
+ .include "sound/song_table.inc"
+ .include "sound/direct_sound_data.inc"
.align 2
diff --git a/data/specials.s b/data/specials.inc
index b7ac9ad90..852372ce0 100644
--- a/data/specials.s
+++ b/data/specials.inc
@@ -56,7 +56,7 @@ gSpecials::
.4byte sub_8082718
.4byte sub_8082564
.4byte sub_80847C8
- .4byte sub_8082728
+ .4byte PlayTrainerEncounterMusic
.4byte sub_8082C68
.4byte sub_8082C9C
.4byte sub_80826B0
@@ -119,9 +119,9 @@ gSpecials::
.4byte sub_8109C90
.4byte sub_8109CF0
.4byte sub_8109DE0
- .4byte GetBigShroomishInfo
+ .4byte GetShroomishSizeRecordInfo
.4byte CompareShroomishSize
- .4byte GetBigBarboachInfo
+ .4byte GetBarboachSizeRecordInfo
.4byte CompareBarboachSize
.4byte sub_80BF9B4
.4byte sub_80BFAE0
@@ -205,9 +205,9 @@ gSpecials::
.4byte sub_80C8080
.4byte SetSSTidalFlag
.4byte ResetSSTidalFlag
- .4byte sub_80C81B8
- .4byte sub_80C81E4
- .4byte sub_80C82EC
+ .4byte EnterSafariMode
+ .4byte ExitSafariMode
+ .4byte SafariZoneGetPokeblockNameInFeeder
.4byte sub_810BAF4
.4byte sub_810D32C
.4byte sub_810D378
@@ -233,7 +233,7 @@ gSpecials::
.4byte GetLeadMonFriendshipScore
.4byte sub_8134548
.4byte sub_81347F8
- .4byte sub_81352E4
+ .4byte CheckPartyBattleTowerBanlist
.4byte sub_8135474
.4byte sub_81360C0
.4byte sub_813556C
diff --git a/data/species_id_conversion_tables.s b/data/species_id_conversion_tables.inc
index 88725d2bd..88725d2bd 100644
--- a/data/species_id_conversion_tables.s
+++ b/data/species_id_conversion_tables.inc
diff --git a/data/spinda_spot_graphics.s b/data/spinda_spot_graphics.inc
index 3316a5639..3316a5639 100644
--- a/data/spinda_spot_graphics.s
+++ b/data/spinda_spot_graphics.inc
diff --git a/data/text/ability_descriptions.s b/data/text/ability_descriptions.inc
index a57225a50..a57225a50 100644
--- a/data/text/ability_descriptions.s
+++ b/data/text/ability_descriptions.inc
diff --git a/data/text/ability_names.s b/data/text/ability_names.inc
index ec0265fda..ec0265fda 100644
--- a/data/text/ability_names.s
+++ b/data/text/ability_names.inc
diff --git a/data/text/aqua_awakening.s b/data/text/aqua_awakening.inc
index bfe2d1d01..bfe2d1d01 100644
--- a/data/text/aqua_awakening.s
+++ b/data/text/aqua_awakening.inc
diff --git a/data/text/aqua_chimney.s b/data/text/aqua_chimney.inc
index 2c8d94a0b..2c8d94a0b 100644
--- a/data/text/aqua_chimney.s
+++ b/data/text/aqua_chimney.inc
diff --git a/data/text/aqua_settled.s b/data/text/aqua_settled.inc
index 13f503c41..13f503c41 100644
--- a/data/text/aqua_settled.s
+++ b/data/text/aqua_settled.inc
diff --git a/data/text/aqua_summit.s b/data/text/aqua_summit.inc
index 696ef0084..696ef0084 100644
--- a/data/text/aqua_summit.s
+++ b/data/text/aqua_summit.inc
diff --git a/data/text/barboach.s b/data/text/barboach.inc
index b78603286..b78603286 100644
--- a/data/text/barboach.s
+++ b/data/text/barboach.inc
diff --git a/data/text/bard.s b/data/text/bard.inc
index edf4942f6..edf4942f6 100644
--- a/data/text/bard.s
+++ b/data/text/bard.inc
diff --git a/data/text/battle_strings.s b/data/text/battle_strings.inc
index b4542b1b9..b4542b1b9 100644
--- a/data/text/battle_strings.s
+++ b/data/text/battle_strings.inc
diff --git a/data/text/berries.s b/data/text/berries.inc
index 8a5abad2c..8a5abad2c 100644
--- a/data/text/berries.s
+++ b/data/text/berries.inc
diff --git a/data/text/berry_descriptions.s b/data/text/berry_descriptions.inc
index ace0cff17..ace0cff17 100644
--- a/data/text/berry_descriptions.s
+++ b/data/text/berry_descriptions.inc
diff --git a/data/text/berry_tree.s b/data/text/berry_tree.inc
index 4ffbf51c4..4ffbf51c4 100644
--- a/data/text/berry_tree.s
+++ b/data/text/berry_tree.inc
diff --git a/data/text/birch_speech.s b/data/text/birch_speech.inc
index be9c03588..be9c03588 100644
--- a/data/text/birch_speech.s
+++ b/data/text/birch_speech.inc
diff --git a/data/text/braille.s b/data/text/braille.inc
index 66b6438a6..66b6438a6 100644
--- a/data/text/braille.s
+++ b/data/text/braille.inc
diff --git a/data/text/cable_club.s b/data/text/cable_club.inc
index 1d3c7fd92..1d3c7fd92 100644
--- a/data/text/cable_club.s
+++ b/data/text/cable_club.inc
diff --git a/data/text/contest_hall.s b/data/text/contest_hall.inc
index 3a8682208..3a8682208 100644
--- a/data/text/contest_hall.s
+++ b/data/text/contest_hall.inc
diff --git a/data/text/contest_strings.s b/data/text/contest_strings.inc
index 4c4f37fc4..4c4f37fc4 100644
--- a/data/text/contest_strings.s
+++ b/data/text/contest_strings.inc
diff --git a/data/text/credits.s b/data/text/credits.inc
index 2f7aa5478..2f7aa5478 100644
--- a/data/text/credits.s
+++ b/data/text/credits.inc
diff --git a/data/text/day_care.s b/data/text/day_care.inc
index 8f8e31266..8f8e31266 100644
--- a/data/text/day_care.s
+++ b/data/text/day_care.inc
diff --git a/data/text/easy_chat/group_name_strings.s b/data/text/easy_chat/group_name_strings.inc
index 1113c4072..1113c4072 100644
--- a/data/text/easy_chat/group_name_strings.s
+++ b/data/text/easy_chat/group_name_strings.inc
diff --git a/data/text/easy_chat/group_name_table.s b/data/text/easy_chat/group_name_table.inc
index 7c1bfa575..7c1bfa575 100644
--- a/data/text/easy_chat/group_name_table.s
+++ b/data/text/easy_chat/group_name_table.inc
diff --git a/data/text/easy_chat/group_orders.s b/data/text/easy_chat/group_orders.inc
index d08f70a2a..d08f70a2a 100644
--- a/data/text/easy_chat/group_orders.s
+++ b/data/text/easy_chat/group_orders.inc
diff --git a/data/text/easy_chat/group_sizes.s b/data/text/easy_chat/group_sizes.inc
index ee89beed2..ee89beed2 100644
--- a/data/text/easy_chat/group_sizes.s
+++ b/data/text/easy_chat/group_sizes.inc
diff --git a/data/text/easy_chat/group_words.s b/data/text/easy_chat/group_words.inc
index b45b767b8..b45b767b8 100644
--- a/data/text/easy_chat/group_words.s
+++ b/data/text/easy_chat/group_words.inc
diff --git a/data/text/easy_chat/words_by_letter.s b/data/text/easy_chat/words_by_letter.inc
index 86fba988e..86fba988e 100644
--- a/data/text/easy_chat/words_by_letter.s
+++ b/data/text/easy_chat/words_by_letter.inc
diff --git a/data/text/eon_ticket.s b/data/text/eon_ticket.inc
index 0da9317af..0da9317af 100644
--- a/data/text/eon_ticket.s
+++ b/data/text/eon_ticket.inc
diff --git a/data/text/giddy.s b/data/text/giddy.inc
index 040ef2ae5..040ef2ae5 100644
--- a/data/text/giddy.s
+++ b/data/text/giddy.inc
diff --git a/data/text/gift_ribbon_descriptions.s b/data/text/gift_ribbon_descriptions.inc
index 798d291b9..798d291b9 100644
--- a/data/text/gift_ribbon_descriptions.s
+++ b/data/text/gift_ribbon_descriptions.inc
diff --git a/data/text/hipster.s b/data/text/hipster.inc
index a30943d3a..a30943d3a 100644
--- a/data/text/hipster.s
+++ b/data/text/hipster.inc
diff --git a/data/text/item_descriptions.s b/data/text/item_descriptions.inc
index 6fda439b0..6fda439b0 100644
--- a/data/text/item_descriptions.s
+++ b/data/text/item_descriptions.inc
diff --git a/data/text/landmarks.s b/data/text/landmarks.inc
index 72d5398bd..72d5398bd 100644
--- a/data/text/landmarks.s
+++ b/data/text/landmarks.inc
diff --git a/data/text/lottery_corner.s b/data/text/lottery_corner.inc
index 6fb3f1e91..6fb3f1e91 100644
--- a/data/text/lottery_corner.s
+++ b/data/text/lottery_corner.inc
diff --git a/data/text/magma_awakening.s b/data/text/magma_awakening.inc
index c64b35543..c64b35543 100644
--- a/data/text/magma_awakening.s
+++ b/data/text/magma_awakening.inc
diff --git a/data/text/magma_chimney.s b/data/text/magma_chimney.inc
index cdfde2ef2..cdfde2ef2 100644
--- a/data/text/magma_chimney.s
+++ b/data/text/magma_chimney.inc
diff --git a/data/text/magma_settled.s b/data/text/magma_settled.inc
index 073f6540f..073f6540f 100644
--- a/data/text/magma_settled.s
+++ b/data/text/magma_settled.inc
diff --git a/data/text/magma_summit.s b/data/text/magma_summit.inc
index 8e17fe87d..8e17fe87d 100644
--- a/data/text/magma_summit.s
+++ b/data/text/magma_summit.inc
diff --git a/data/text/maps/AbandonedShip_CaptainsOffice.s b/data/text/maps/AbandonedShip_CaptainsOffice.inc
index bdd2057c4..bdd2057c4 100644
--- a/data/text/maps/AbandonedShip_CaptainsOffice.s
+++ b/data/text/maps/AbandonedShip_CaptainsOffice.inc
diff --git a/data/text/maps/AbandonedShip_Corridors_1F.s b/data/text/maps/AbandonedShip_Corridors_1F.inc
index 2df1c32b2..2df1c32b2 100644
--- a/data/text/maps/AbandonedShip_Corridors_1F.s
+++ b/data/text/maps/AbandonedShip_Corridors_1F.inc
diff --git a/data/text/maps/AbandonedShip_Corridors_B1F.s b/data/text/maps/AbandonedShip_Corridors_B1F.inc
index 887a6c11a..887a6c11a 100644
--- a/data/text/maps/AbandonedShip_Corridors_B1F.s
+++ b/data/text/maps/AbandonedShip_Corridors_B1F.inc
diff --git a/data/text/maps/AbandonedShip_HiddenFloorCorridors.s b/data/text/maps/AbandonedShip_HiddenFloorCorridors.inc
index 4e7c2014f..4e7c2014f 100644
--- a/data/text/maps/AbandonedShip_HiddenFloorCorridors.s
+++ b/data/text/maps/AbandonedShip_HiddenFloorCorridors.inc
diff --git a/data/text/maps/AbandonedShip_HiddenFloorRooms.s b/data/text/maps/AbandonedShip_HiddenFloorRooms.inc
index 1be9f8f02..1be9f8f02 100644
--- a/data/text/maps/AbandonedShip_HiddenFloorRooms.s
+++ b/data/text/maps/AbandonedShip_HiddenFloorRooms.inc
diff --git a/data/text/maps/AbandonedShip_Rooms2_1F.s b/data/text/maps/AbandonedShip_Rooms2_1F.inc
index 3acf542fc..3acf542fc 100644
--- a/data/text/maps/AbandonedShip_Rooms2_1F.s
+++ b/data/text/maps/AbandonedShip_Rooms2_1F.inc
diff --git a/data/text/maps/AbandonedShip_Rooms2_B1F.s b/data/text/maps/AbandonedShip_Rooms2_B1F.inc
index 11e505abd..11e505abd 100644
--- a/data/text/maps/AbandonedShip_Rooms2_B1F.s
+++ b/data/text/maps/AbandonedShip_Rooms2_B1F.inc
diff --git a/data/text/maps/AbandonedShip_Rooms_1F.s b/data/text/maps/AbandonedShip_Rooms_1F.inc
index 67b67ca4c..67b67ca4c 100644
--- a/data/text/maps/AbandonedShip_Rooms_1F.s
+++ b/data/text/maps/AbandonedShip_Rooms_1F.inc
diff --git a/data/text/maps/AbandonedShip_Rooms_B1F.s b/data/text/maps/AbandonedShip_Rooms_B1F.inc
index 45df47d60..45df47d60 100644
--- a/data/text/maps/AbandonedShip_Rooms_B1F.s
+++ b/data/text/maps/AbandonedShip_Rooms_B1F.inc
diff --git a/data/text/maps/AquaHideout_1F.s b/data/text/maps/AquaHideout_1F.inc
index 6c003d308..6c003d308 100644
--- a/data/text/maps/AquaHideout_1F.s
+++ b/data/text/maps/AquaHideout_1F.inc
diff --git a/data/text/maps/AquaHideout_B1F.s b/data/text/maps/AquaHideout_B1F.inc
index 605a98b8b..605a98b8b 100644
--- a/data/text/maps/AquaHideout_B1F.s
+++ b/data/text/maps/AquaHideout_B1F.inc
diff --git a/data/text/maps/AquaHideout_B2F.s b/data/text/maps/AquaHideout_B2F.inc
index f4b7dd035..f4b7dd035 100644
--- a/data/text/maps/AquaHideout_B2F.s
+++ b/data/text/maps/AquaHideout_B2F.inc
diff --git a/data/text/maps/BattleTower_BattleRoom.s b/data/text/maps/BattleTower_BattleRoom.inc
index 9f72d8971..9f72d8971 100644
--- a/data/text/maps/BattleTower_BattleRoom.s
+++ b/data/text/maps/BattleTower_BattleRoom.inc
diff --git a/data/text/maps/BattleTower_Lobby.s b/data/text/maps/BattleTower_Lobby.inc
index db94f1bce..db94f1bce 100644
--- a/data/text/maps/BattleTower_Lobby.s
+++ b/data/text/maps/BattleTower_Lobby.inc
diff --git a/data/text/maps/BattleTower_Outside.s b/data/text/maps/BattleTower_Outside.inc
index 934ebca36..934ebca36 100644
--- a/data/text/maps/BattleTower_Outside.s
+++ b/data/text/maps/BattleTower_Outside.inc
diff --git a/data/text/maps/DewfordTown.s b/data/text/maps/DewfordTown.inc
index efdbfbff6..efdbfbff6 100644
--- a/data/text/maps/DewfordTown.s
+++ b/data/text/maps/DewfordTown.inc
diff --git a/data/text/maps/DewfordTown_Gym.s b/data/text/maps/DewfordTown_Gym.inc
index 24d90ec6c..24d90ec6c 100644
--- a/data/text/maps/DewfordTown_Gym.s
+++ b/data/text/maps/DewfordTown_Gym.inc
diff --git a/data/text/maps/DewfordTown_Hall.s b/data/text/maps/DewfordTown_Hall.inc
index 6b9f4337e..6b9f4337e 100644
--- a/data/text/maps/DewfordTown_Hall.s
+++ b/data/text/maps/DewfordTown_Hall.inc
diff --git a/data/text/maps/DewfordTown_House1.s b/data/text/maps/DewfordTown_House1.inc
index d004acf7f..d004acf7f 100644
--- a/data/text/maps/DewfordTown_House1.s
+++ b/data/text/maps/DewfordTown_House1.inc
diff --git a/data/text/maps/DewfordTown_House2.s b/data/text/maps/DewfordTown_House2.inc
index b37456112..b37456112 100644
--- a/data/text/maps/DewfordTown_House2.s
+++ b/data/text/maps/DewfordTown_House2.inc
diff --git a/data/text/maps/DewfordTown_PokemonCenter_1F.s b/data/text/maps/DewfordTown_PokemonCenter_1F.inc
index 9c4a6f41c..9c4a6f41c 100644
--- a/data/text/maps/DewfordTown_PokemonCenter_1F.s
+++ b/data/text/maps/DewfordTown_PokemonCenter_1F.inc
diff --git a/data/text/maps/EverGrandeCity.s b/data/text/maps/EverGrandeCity.inc
index f468bf3b7..f468bf3b7 100644
--- a/data/text/maps/EverGrandeCity.s
+++ b/data/text/maps/EverGrandeCity.inc
diff --git a/data/text/maps/EverGrandeCity_ChampionsRoom.s b/data/text/maps/EverGrandeCity_ChampionsRoom.inc
index c7c63e208..c7c63e208 100644
--- a/data/text/maps/EverGrandeCity_ChampionsRoom.s
+++ b/data/text/maps/EverGrandeCity_ChampionsRoom.inc
diff --git a/data/text/maps/EverGrandeCity_DrakesRoom.s b/data/text/maps/EverGrandeCity_DrakesRoom.inc
index ed89c22bf..ed89c22bf 100644
--- a/data/text/maps/EverGrandeCity_DrakesRoom.s
+++ b/data/text/maps/EverGrandeCity_DrakesRoom.inc
diff --git a/data/text/maps/EverGrandeCity_GlaciasRoom.s b/data/text/maps/EverGrandeCity_GlaciasRoom.inc
index 88fa1e664..88fa1e664 100644
--- a/data/text/maps/EverGrandeCity_GlaciasRoom.s
+++ b/data/text/maps/EverGrandeCity_GlaciasRoom.inc
diff --git a/data/text/maps/EverGrandeCity_HallOfFame.s b/data/text/maps/EverGrandeCity_HallOfFame.inc
index c684dcb72..c684dcb72 100644
--- a/data/text/maps/EverGrandeCity_HallOfFame.s
+++ b/data/text/maps/EverGrandeCity_HallOfFame.inc
diff --git a/data/text/maps/EverGrandeCity_PhoebesRoom.s b/data/text/maps/EverGrandeCity_PhoebesRoom.inc
index e77a7d31a..e77a7d31a 100644
--- a/data/text/maps/EverGrandeCity_PhoebesRoom.s
+++ b/data/text/maps/EverGrandeCity_PhoebesRoom.inc
diff --git a/data/text/maps/EverGrandeCity_PokemonCenter_1F.s b/data/text/maps/EverGrandeCity_PokemonCenter_1F.inc
index 18594308a..18594308a 100644
--- a/data/text/maps/EverGrandeCity_PokemonCenter_1F.s
+++ b/data/text/maps/EverGrandeCity_PokemonCenter_1F.inc
diff --git a/data/text/maps/EverGrandeCity_PokemonLeague.s b/data/text/maps/EverGrandeCity_PokemonLeague.inc
index 89971022c..89971022c 100644
--- a/data/text/maps/EverGrandeCity_PokemonLeague.s
+++ b/data/text/maps/EverGrandeCity_PokemonLeague.inc
diff --git a/data/text/maps/EverGrandeCity_SidneysRoom.s b/data/text/maps/EverGrandeCity_SidneysRoom.inc
index 84d1dddf5..84d1dddf5 100644
--- a/data/text/maps/EverGrandeCity_SidneysRoom.s
+++ b/data/text/maps/EverGrandeCity_SidneysRoom.inc
diff --git a/data/text/maps/FallarborTown.s b/data/text/maps/FallarborTown.inc
index 1483272de..1483272de 100644
--- a/data/text/maps/FallarborTown.s
+++ b/data/text/maps/FallarborTown.inc
diff --git a/data/text/maps/FallarborTown_ContestHall.s b/data/text/maps/FallarborTown_ContestHall.inc
index 5db8766c5..5db8766c5 100644
--- a/data/text/maps/FallarborTown_ContestHall.s
+++ b/data/text/maps/FallarborTown_ContestHall.inc
diff --git a/data/text/maps/FallarborTown_ContestLobby.s b/data/text/maps/FallarborTown_ContestLobby.inc
index 5d4305f8c..5d4305f8c 100644
--- a/data/text/maps/FallarborTown_ContestLobby.s
+++ b/data/text/maps/FallarborTown_ContestLobby.inc
diff --git a/data/text/maps/FallarborTown_House1.s b/data/text/maps/FallarborTown_House1.inc
index c882bc9b7..c882bc9b7 100644
--- a/data/text/maps/FallarborTown_House1.s
+++ b/data/text/maps/FallarborTown_House1.inc
diff --git a/data/text/maps/FallarborTown_House2.s b/data/text/maps/FallarborTown_House2.inc
index de6d63fad..de6d63fad 100644
--- a/data/text/maps/FallarborTown_House2.s
+++ b/data/text/maps/FallarborTown_House2.inc
diff --git a/data/text/maps/FallarborTown_Mart.s b/data/text/maps/FallarborTown_Mart.inc
index bc8b3fb32..bc8b3fb32 100644
--- a/data/text/maps/FallarborTown_Mart.s
+++ b/data/text/maps/FallarborTown_Mart.inc
diff --git a/data/text/maps/FallarborTown_PokemonCenter_1F.s b/data/text/maps/FallarborTown_PokemonCenter_1F.inc
index a626ff1e9..a626ff1e9 100644
--- a/data/text/maps/FallarborTown_PokemonCenter_1F.s
+++ b/data/text/maps/FallarborTown_PokemonCenter_1F.inc
diff --git a/data/text/maps/FortreeCity.s b/data/text/maps/FortreeCity.inc
index 8640fada7..8640fada7 100644
--- a/data/text/maps/FortreeCity.s
+++ b/data/text/maps/FortreeCity.inc
diff --git a/data/text/maps/FortreeCity_DecorationShop.s b/data/text/maps/FortreeCity_DecorationShop.inc
index 7809f10ff..7809f10ff 100644
--- a/data/text/maps/FortreeCity_DecorationShop.s
+++ b/data/text/maps/FortreeCity_DecorationShop.inc
diff --git a/data/text/maps/FortreeCity_Gym.s b/data/text/maps/FortreeCity_Gym.inc
index 036cacd50..036cacd50 100644
--- a/data/text/maps/FortreeCity_Gym.s
+++ b/data/text/maps/FortreeCity_Gym.inc
diff --git a/data/text/maps/FortreeCity_House1.s b/data/text/maps/FortreeCity_House1.inc
index 0d94fcd27..0d94fcd27 100644
--- a/data/text/maps/FortreeCity_House1.s
+++ b/data/text/maps/FortreeCity_House1.inc
diff --git a/data/text/maps/FortreeCity_House2.s b/data/text/maps/FortreeCity_House2.inc
index 8b78e1ae8..8b78e1ae8 100644
--- a/data/text/maps/FortreeCity_House2.s
+++ b/data/text/maps/FortreeCity_House2.inc
diff --git a/data/text/maps/FortreeCity_House3.s b/data/text/maps/FortreeCity_House3.inc
index 6b0b254f6..6b0b254f6 100644
--- a/data/text/maps/FortreeCity_House3.s
+++ b/data/text/maps/FortreeCity_House3.inc
diff --git a/data/text/maps/FortreeCity_House4.s b/data/text/maps/FortreeCity_House4.inc
index 9389ec4aa..9389ec4aa 100644
--- a/data/text/maps/FortreeCity_House4.s
+++ b/data/text/maps/FortreeCity_House4.inc
diff --git a/data/text/maps/FortreeCity_House5.s b/data/text/maps/FortreeCity_House5.inc
index 711b9579e..711b9579e 100644
--- a/data/text/maps/FortreeCity_House5.s
+++ b/data/text/maps/FortreeCity_House5.inc
diff --git a/data/text/maps/FortreeCity_Mart.s b/data/text/maps/FortreeCity_Mart.inc
index c8c2c4f0f..c8c2c4f0f 100644
--- a/data/text/maps/FortreeCity_Mart.s
+++ b/data/text/maps/FortreeCity_Mart.inc
diff --git a/data/text/maps/FortreeCity_PokemonCenter_1F.s b/data/text/maps/FortreeCity_PokemonCenter_1F.inc
index d5ffb8a61..d5ffb8a61 100644
--- a/data/text/maps/FortreeCity_PokemonCenter_1F.s
+++ b/data/text/maps/FortreeCity_PokemonCenter_1F.inc
diff --git a/data/text/maps/GraniteCave_1F.s b/data/text/maps/GraniteCave_1F.inc
index 3344f76d9..3344f76d9 100644
--- a/data/text/maps/GraniteCave_1F.s
+++ b/data/text/maps/GraniteCave_1F.inc
diff --git a/data/text/maps/GraniteCave_StevensRoom.s b/data/text/maps/GraniteCave_StevensRoom.inc
index 873acea22..873acea22 100644
--- a/data/text/maps/GraniteCave_StevensRoom.s
+++ b/data/text/maps/GraniteCave_StevensRoom.inc
diff --git a/data/text/maps/InsideOfTruck.s b/data/text/maps/InsideOfTruck.inc
index 19166c481..19166c481 100644
--- a/data/text/maps/InsideOfTruck.s
+++ b/data/text/maps/InsideOfTruck.inc
diff --git a/data/text/maps/JaggedPass.s b/data/text/maps/JaggedPass.inc
index 23216b12b..23216b12b 100644
--- a/data/text/maps/JaggedPass.s
+++ b/data/text/maps/JaggedPass.inc
diff --git a/data/text/maps/LavaridgeTown.s b/data/text/maps/LavaridgeTown.inc
index 308548510..308548510 100644
--- a/data/text/maps/LavaridgeTown.s
+++ b/data/text/maps/LavaridgeTown.inc
diff --git a/data/text/maps/LavaridgeTown_Gym_1F.s b/data/text/maps/LavaridgeTown_Gym_1F.inc
index 87ec05632..87ec05632 100644
--- a/data/text/maps/LavaridgeTown_Gym_1F.s
+++ b/data/text/maps/LavaridgeTown_Gym_1F.inc
diff --git a/data/text/maps/LavaridgeTown_HerbShop.s b/data/text/maps/LavaridgeTown_HerbShop.inc
index 893d3399f..893d3399f 100644
--- a/data/text/maps/LavaridgeTown_HerbShop.s
+++ b/data/text/maps/LavaridgeTown_HerbShop.inc
diff --git a/data/text/maps/LavaridgeTown_House.s b/data/text/maps/LavaridgeTown_House.inc
index 9710d9398..9710d9398 100644
--- a/data/text/maps/LavaridgeTown_House.s
+++ b/data/text/maps/LavaridgeTown_House.inc
diff --git a/data/text/maps/LavaridgeTown_Mart.s b/data/text/maps/LavaridgeTown_Mart.inc
index db79bd321..db79bd321 100644
--- a/data/text/maps/LavaridgeTown_Mart.s
+++ b/data/text/maps/LavaridgeTown_Mart.inc
diff --git a/data/text/maps/LavaridgeTown_PokemonCenter_1F.s b/data/text/maps/LavaridgeTown_PokemonCenter_1F.inc
index c66d6df8a..c66d6df8a 100644
--- a/data/text/maps/LavaridgeTown_PokemonCenter_1F.s
+++ b/data/text/maps/LavaridgeTown_PokemonCenter_1F.inc
diff --git a/data/text/maps/LilycoveCity.s b/data/text/maps/LilycoveCity.inc
index 0f9b45c1d..0f9b45c1d 100644
--- a/data/text/maps/LilycoveCity.s
+++ b/data/text/maps/LilycoveCity.inc
diff --git a/data/text/maps/LilycoveCity_ContestHall.s b/data/text/maps/LilycoveCity_ContestHall.inc
index 96507b770..96507b770 100644
--- a/data/text/maps/LilycoveCity_ContestHall.s
+++ b/data/text/maps/LilycoveCity_ContestHall.inc
diff --git a/data/text/maps/LilycoveCity_ContestLobby.s b/data/text/maps/LilycoveCity_ContestLobby.inc
index d173519e8..d173519e8 100644
--- a/data/text/maps/LilycoveCity_ContestLobby.s
+++ b/data/text/maps/LilycoveCity_ContestLobby.inc
diff --git a/data/text/maps/LilycoveCity_CoveLilyMotel_1F.s b/data/text/maps/LilycoveCity_CoveLilyMotel_1F.inc
index 7d6e4942f..7d6e4942f 100644
--- a/data/text/maps/LilycoveCity_CoveLilyMotel_1F.s
+++ b/data/text/maps/LilycoveCity_CoveLilyMotel_1F.inc
diff --git a/data/text/maps/LilycoveCity_CoveLilyMotel_2F.s b/data/text/maps/LilycoveCity_CoveLilyMotel_2F.inc
index 0306db9e9..0306db9e9 100644
--- a/data/text/maps/LilycoveCity_CoveLilyMotel_2F.s
+++ b/data/text/maps/LilycoveCity_CoveLilyMotel_2F.inc
diff --git a/data/text/maps/LilycoveCity_DepartmentStoreRooftop.s b/data/text/maps/LilycoveCity_DepartmentStoreRooftop.inc
index 62eb03bc1..62eb03bc1 100644
--- a/data/text/maps/LilycoveCity_DepartmentStoreRooftop.s
+++ b/data/text/maps/LilycoveCity_DepartmentStoreRooftop.inc
diff --git a/data/text/maps/LilycoveCity_DepartmentStore_1F.s b/data/text/maps/LilycoveCity_DepartmentStore_1F.inc
index 45cf3686d..45cf3686d 100644
--- a/data/text/maps/LilycoveCity_DepartmentStore_1F.s
+++ b/data/text/maps/LilycoveCity_DepartmentStore_1F.inc
diff --git a/data/text/maps/LilycoveCity_DepartmentStore_2F.s b/data/text/maps/LilycoveCity_DepartmentStore_2F.inc
index e9a52bbee..e9a52bbee 100644
--- a/data/text/maps/LilycoveCity_DepartmentStore_2F.s
+++ b/data/text/maps/LilycoveCity_DepartmentStore_2F.inc
diff --git a/data/text/maps/LilycoveCity_DepartmentStore_3F.s b/data/text/maps/LilycoveCity_DepartmentStore_3F.inc
index 8777fd1f3..8777fd1f3 100644
--- a/data/text/maps/LilycoveCity_DepartmentStore_3F.s
+++ b/data/text/maps/LilycoveCity_DepartmentStore_3F.inc
diff --git a/data/text/maps/LilycoveCity_DepartmentStore_4F.s b/data/text/maps/LilycoveCity_DepartmentStore_4F.inc
index b26962a8f..b26962a8f 100644
--- a/data/text/maps/LilycoveCity_DepartmentStore_4F.s
+++ b/data/text/maps/LilycoveCity_DepartmentStore_4F.inc
diff --git a/data/text/maps/LilycoveCity_DepartmentStore_5F.s b/data/text/maps/LilycoveCity_DepartmentStore_5F.inc
index 8b1d81c2e..8b1d81c2e 100644
--- a/data/text/maps/LilycoveCity_DepartmentStore_5F.s
+++ b/data/text/maps/LilycoveCity_DepartmentStore_5F.inc
diff --git a/data/text/maps/LilycoveCity_Harbor.s b/data/text/maps/LilycoveCity_Harbor.inc
index 0f31f697b..0f31f697b 100644
--- a/data/text/maps/LilycoveCity_Harbor.s
+++ b/data/text/maps/LilycoveCity_Harbor.inc
diff --git a/data/text/maps/LilycoveCity_House1.s b/data/text/maps/LilycoveCity_House1.inc
index a937ff64d..a937ff64d 100644
--- a/data/text/maps/LilycoveCity_House1.s
+++ b/data/text/maps/LilycoveCity_House1.inc
diff --git a/data/text/maps/LilycoveCity_House2.s b/data/text/maps/LilycoveCity_House2.inc
index 0e037a65f..0e037a65f 100644
--- a/data/text/maps/LilycoveCity_House2.s
+++ b/data/text/maps/LilycoveCity_House2.inc
diff --git a/data/text/maps/LilycoveCity_House3.s b/data/text/maps/LilycoveCity_House3.inc
index 03db4920f..03db4920f 100644
--- a/data/text/maps/LilycoveCity_House3.s
+++ b/data/text/maps/LilycoveCity_House3.inc
diff --git a/data/text/maps/LilycoveCity_House4.s b/data/text/maps/LilycoveCity_House4.inc
index ebfd5ae71..ebfd5ae71 100644
--- a/data/text/maps/LilycoveCity_House4.s
+++ b/data/text/maps/LilycoveCity_House4.inc
diff --git a/data/text/maps/LilycoveCity_LilycoveMuseum_1F.s b/data/text/maps/LilycoveCity_LilycoveMuseum_1F.inc
index b60e0e50d..b60e0e50d 100644
--- a/data/text/maps/LilycoveCity_LilycoveMuseum_1F.s
+++ b/data/text/maps/LilycoveCity_LilycoveMuseum_1F.inc
diff --git a/data/text/maps/LilycoveCity_LilycoveMuseum_2F.s b/data/text/maps/LilycoveCity_LilycoveMuseum_2F.inc
index 067cc335f..067cc335f 100644
--- a/data/text/maps/LilycoveCity_LilycoveMuseum_2F.s
+++ b/data/text/maps/LilycoveCity_LilycoveMuseum_2F.inc
diff --git a/data/text/maps/LilycoveCity_MoveDeletersHouse.s b/data/text/maps/LilycoveCity_MoveDeletersHouse.inc
index 1e2181aca..1e2181aca 100644
--- a/data/text/maps/LilycoveCity_MoveDeletersHouse.s
+++ b/data/text/maps/LilycoveCity_MoveDeletersHouse.inc
diff --git a/data/text/maps/LilycoveCity_PokemonCenter_1F.s b/data/text/maps/LilycoveCity_PokemonCenter_1F.inc
index c0cbb7436..c0cbb7436 100644
--- a/data/text/maps/LilycoveCity_PokemonCenter_1F.s
+++ b/data/text/maps/LilycoveCity_PokemonCenter_1F.inc
diff --git a/data/text/maps/LilycoveCity_PokemonTrainerFanClub.s b/data/text/maps/LilycoveCity_PokemonTrainerFanClub.inc
index fbfbf4353..fbfbf4353 100644
--- a/data/text/maps/LilycoveCity_PokemonTrainerFanClub.s
+++ b/data/text/maps/LilycoveCity_PokemonTrainerFanClub.inc
diff --git a/data/text/maps/LittlerootTown.s b/data/text/maps/LittlerootTown.inc
index 1e23d584f..1e23d584f 100644
--- a/data/text/maps/LittlerootTown.s
+++ b/data/text/maps/LittlerootTown.inc
diff --git a/data/text/maps/LittlerootTown_BrendansHouse_1F.s b/data/text/maps/LittlerootTown_BrendansHouse_1F.inc
index 888fc8973..888fc8973 100644
--- a/data/text/maps/LittlerootTown_BrendansHouse_1F.s
+++ b/data/text/maps/LittlerootTown_BrendansHouse_1F.inc
diff --git a/data/text/maps/LittlerootTown_BrendansHouse_2F.s b/data/text/maps/LittlerootTown_BrendansHouse_2F.inc
index 06206caaa..06206caaa 100644
--- a/data/text/maps/LittlerootTown_BrendansHouse_2F.s
+++ b/data/text/maps/LittlerootTown_BrendansHouse_2F.inc
diff --git a/data/text/maps/LittlerootTown_MaysHouse_1F.s b/data/text/maps/LittlerootTown_MaysHouse_1F.inc
index aef905854..aef905854 100644
--- a/data/text/maps/LittlerootTown_MaysHouse_1F.s
+++ b/data/text/maps/LittlerootTown_MaysHouse_1F.inc
diff --git a/data/text/maps/LittlerootTown_MaysHouse_2F.s b/data/text/maps/LittlerootTown_MaysHouse_2F.inc
index 313095c8d..313095c8d 100644
--- a/data/text/maps/LittlerootTown_MaysHouse_2F.s
+++ b/data/text/maps/LittlerootTown_MaysHouse_2F.inc
diff --git a/data/text/maps/LittlerootTown_ProfessorBirchsLab.s b/data/text/maps/LittlerootTown_ProfessorBirchsLab.inc
index dd470ef08..dd470ef08 100644
--- a/data/text/maps/LittlerootTown_ProfessorBirchsLab.s
+++ b/data/text/maps/LittlerootTown_ProfessorBirchsLab.inc
diff --git a/data/text/maps/MauvilleCity.s b/data/text/maps/MauvilleCity.inc
index 8080d10d9..8080d10d9 100644
--- a/data/text/maps/MauvilleCity.s
+++ b/data/text/maps/MauvilleCity.inc
diff --git a/data/text/maps/MauvilleCity_BikeShop.s b/data/text/maps/MauvilleCity_BikeShop.inc
index 3fbdffc09..3fbdffc09 100644
--- a/data/text/maps/MauvilleCity_BikeShop.s
+++ b/data/text/maps/MauvilleCity_BikeShop.inc
diff --git a/data/text/maps/MauvilleCity_GameCorner.s b/data/text/maps/MauvilleCity_GameCorner.inc
index f367c3cf2..f367c3cf2 100644
--- a/data/text/maps/MauvilleCity_GameCorner.s
+++ b/data/text/maps/MauvilleCity_GameCorner.inc
diff --git a/data/text/maps/MauvilleCity_Gym.s b/data/text/maps/MauvilleCity_Gym.inc
index 5ae43f880..5ae43f880 100644
--- a/data/text/maps/MauvilleCity_Gym.s
+++ b/data/text/maps/MauvilleCity_Gym.inc
diff --git a/data/text/maps/MauvilleCity_House1.s b/data/text/maps/MauvilleCity_House1.inc
index c5eec210e..c5eec210e 100644
--- a/data/text/maps/MauvilleCity_House1.s
+++ b/data/text/maps/MauvilleCity_House1.inc
diff --git a/data/text/maps/MauvilleCity_House2.s b/data/text/maps/MauvilleCity_House2.inc
index 50cdf1fa7..50cdf1fa7 100644
--- a/data/text/maps/MauvilleCity_House2.s
+++ b/data/text/maps/MauvilleCity_House2.inc
diff --git a/data/text/maps/MauvilleCity_Mart.s b/data/text/maps/MauvilleCity_Mart.inc
index 6b8f6c002..6b8f6c002 100644
--- a/data/text/maps/MauvilleCity_Mart.s
+++ b/data/text/maps/MauvilleCity_Mart.inc
diff --git a/data/text/maps/MauvilleCity_PokemonCenter_1F.s b/data/text/maps/MauvilleCity_PokemonCenter_1F.inc
index c4287cda3..c4287cda3 100644
--- a/data/text/maps/MauvilleCity_PokemonCenter_1F.s
+++ b/data/text/maps/MauvilleCity_PokemonCenter_1F.inc
diff --git a/data/text/maps/MauvilleCity_PokemonCenter_2F.s b/data/text/maps/MauvilleCity_PokemonCenter_2F.inc
index 1e67948a5..1e67948a5 100644
--- a/data/text/maps/MauvilleCity_PokemonCenter_2F.s
+++ b/data/text/maps/MauvilleCity_PokemonCenter_2F.inc
diff --git a/data/text/maps/MeteorFalls_1F_1R.s b/data/text/maps/MeteorFalls_1F_1R.inc
index ad19e3e0b..ad19e3e0b 100644
--- a/data/text/maps/MeteorFalls_1F_1R.s
+++ b/data/text/maps/MeteorFalls_1F_1R.inc
diff --git a/data/text/maps/MeteorFalls_1F_2R.s b/data/text/maps/MeteorFalls_1F_2R.inc
index 35b60d662..35b60d662 100644
--- a/data/text/maps/MeteorFalls_1F_2R.s
+++ b/data/text/maps/MeteorFalls_1F_2R.inc
diff --git a/data/text/maps/MossdeepCity.s b/data/text/maps/MossdeepCity.inc
index 9bdcf3b3c..9bdcf3b3c 100644
--- a/data/text/maps/MossdeepCity.s
+++ b/data/text/maps/MossdeepCity.inc
diff --git a/data/text/maps/MossdeepCity_GameCorner_1F.s b/data/text/maps/MossdeepCity_GameCorner_1F.inc
index 7324999c8..7324999c8 100644
--- a/data/text/maps/MossdeepCity_GameCorner_1F.s
+++ b/data/text/maps/MossdeepCity_GameCorner_1F.inc
diff --git a/data/text/maps/MossdeepCity_GameCorner_B1F.s b/data/text/maps/MossdeepCity_GameCorner_B1F.inc
index 8b1378917..8b1378917 100644
--- a/data/text/maps/MossdeepCity_GameCorner_B1F.s
+++ b/data/text/maps/MossdeepCity_GameCorner_B1F.inc
diff --git a/data/text/maps/MossdeepCity_Gym.s b/data/text/maps/MossdeepCity_Gym.inc
index 5ff5f6554..5ff5f6554 100644
--- a/data/text/maps/MossdeepCity_Gym.s
+++ b/data/text/maps/MossdeepCity_Gym.inc
diff --git a/data/text/maps/MossdeepCity_House1.s b/data/text/maps/MossdeepCity_House1.inc
index 0572ba260..0572ba260 100644
--- a/data/text/maps/MossdeepCity_House1.s
+++ b/data/text/maps/MossdeepCity_House1.inc
diff --git a/data/text/maps/MossdeepCity_House2.s b/data/text/maps/MossdeepCity_House2.inc
index ae4b11cb6..ae4b11cb6 100644
--- a/data/text/maps/MossdeepCity_House2.s
+++ b/data/text/maps/MossdeepCity_House2.inc
diff --git a/data/text/maps/MossdeepCity_House3.s b/data/text/maps/MossdeepCity_House3.inc
index 270457172..270457172 100644
--- a/data/text/maps/MossdeepCity_House3.s
+++ b/data/text/maps/MossdeepCity_House3.inc
diff --git a/data/text/maps/MossdeepCity_House4.s b/data/text/maps/MossdeepCity_House4.inc
index e612a8018..e612a8018 100644
--- a/data/text/maps/MossdeepCity_House4.s
+++ b/data/text/maps/MossdeepCity_House4.inc
diff --git a/data/text/maps/MossdeepCity_Mart.s b/data/text/maps/MossdeepCity_Mart.inc
index cdce8c48c..cdce8c48c 100644
--- a/data/text/maps/MossdeepCity_Mart.s
+++ b/data/text/maps/MossdeepCity_Mart.inc
diff --git a/data/text/maps/MossdeepCity_PokemonCenter_1F.s b/data/text/maps/MossdeepCity_PokemonCenter_1F.inc
index 5f345613e..5f345613e 100644
--- a/data/text/maps/MossdeepCity_PokemonCenter_1F.s
+++ b/data/text/maps/MossdeepCity_PokemonCenter_1F.inc
diff --git a/data/text/maps/MossdeepCity_PokemonCenter_2F.s b/data/text/maps/MossdeepCity_PokemonCenter_2F.inc
index 66bba2421..66bba2421 100644
--- a/data/text/maps/MossdeepCity_PokemonCenter_2F.s
+++ b/data/text/maps/MossdeepCity_PokemonCenter_2F.inc
diff --git a/data/text/maps/MossdeepCity_SpaceCenter_1F.s b/data/text/maps/MossdeepCity_SpaceCenter_1F.inc
index a94d343bc..a94d343bc 100644
--- a/data/text/maps/MossdeepCity_SpaceCenter_1F.s
+++ b/data/text/maps/MossdeepCity_SpaceCenter_1F.inc
diff --git a/data/text/maps/MossdeepCity_SpaceCenter_2F.s b/data/text/maps/MossdeepCity_SpaceCenter_2F.inc
index 0c8159423..0c8159423 100644
--- a/data/text/maps/MossdeepCity_SpaceCenter_2F.s
+++ b/data/text/maps/MossdeepCity_SpaceCenter_2F.inc
diff --git a/data/text/maps/MossdeepCity_StevensHouse.s b/data/text/maps/MossdeepCity_StevensHouse.inc
index 6f5b9b9b8..6f5b9b9b8 100644
--- a/data/text/maps/MossdeepCity_StevensHouse.s
+++ b/data/text/maps/MossdeepCity_StevensHouse.inc
diff --git a/data/text/maps/MtChimney.s b/data/text/maps/MtChimney.inc
index 8641bde00..8641bde00 100644
--- a/data/text/maps/MtChimney.s
+++ b/data/text/maps/MtChimney.inc
diff --git a/data/text/maps/MtChimney_CableCarStation.s b/data/text/maps/MtChimney_CableCarStation.inc
index 03e2f7a2a..03e2f7a2a 100644
--- a/data/text/maps/MtChimney_CableCarStation.s
+++ b/data/text/maps/MtChimney_CableCarStation.inc
diff --git a/data/text/maps/MtPyre_1F.s b/data/text/maps/MtPyre_1F.inc
index 84e1cef07..84e1cef07 100644
--- a/data/text/maps/MtPyre_1F.s
+++ b/data/text/maps/MtPyre_1F.inc
diff --git a/data/text/maps/MtPyre_2F.s b/data/text/maps/MtPyre_2F.inc
index 28c57d0ba..28c57d0ba 100644
--- a/data/text/maps/MtPyre_2F.s
+++ b/data/text/maps/MtPyre_2F.inc
diff --git a/data/text/maps/MtPyre_3F.s b/data/text/maps/MtPyre_3F.inc
index c714c97a0..c714c97a0 100644
--- a/data/text/maps/MtPyre_3F.s
+++ b/data/text/maps/MtPyre_3F.inc
diff --git a/data/text/maps/MtPyre_4F.s b/data/text/maps/MtPyre_4F.inc
index 275b6f5ac..275b6f5ac 100644
--- a/data/text/maps/MtPyre_4F.s
+++ b/data/text/maps/MtPyre_4F.inc
diff --git a/data/text/maps/MtPyre_5F.s b/data/text/maps/MtPyre_5F.inc
index c70211067..c70211067 100644
--- a/data/text/maps/MtPyre_5F.s
+++ b/data/text/maps/MtPyre_5F.inc
diff --git a/data/text/maps/MtPyre_6F.s b/data/text/maps/MtPyre_6F.inc
index 711c87570..711c87570 100644
--- a/data/text/maps/MtPyre_6F.s
+++ b/data/text/maps/MtPyre_6F.inc
diff --git a/data/text/maps/NewMauville_Entrance.s b/data/text/maps/NewMauville_Entrance.inc
index 36739ec3e..36739ec3e 100644
--- a/data/text/maps/NewMauville_Entrance.s
+++ b/data/text/maps/NewMauville_Entrance.inc
diff --git a/data/text/maps/NewMauville_Inside.s b/data/text/maps/NewMauville_Inside.inc
index c18354294..c18354294 100644
--- a/data/text/maps/NewMauville_Inside.s
+++ b/data/text/maps/NewMauville_Inside.inc
diff --git a/data/text/maps/OldaleTown.s b/data/text/maps/OldaleTown.inc
index 2d0b31a44..2d0b31a44 100644
--- a/data/text/maps/OldaleTown.s
+++ b/data/text/maps/OldaleTown.inc
diff --git a/data/text/maps/OldaleTown_House1.s b/data/text/maps/OldaleTown_House1.inc
index 943003b97..943003b97 100644
--- a/data/text/maps/OldaleTown_House1.s
+++ b/data/text/maps/OldaleTown_House1.inc
diff --git a/data/text/maps/OldaleTown_House2.s b/data/text/maps/OldaleTown_House2.inc
index 54a6547b4..54a6547b4 100644
--- a/data/text/maps/OldaleTown_House2.s
+++ b/data/text/maps/OldaleTown_House2.inc
diff --git a/data/text/maps/OldaleTown_Mart.s b/data/text/maps/OldaleTown_Mart.inc
index 5abb0cb9b..5abb0cb9b 100644
--- a/data/text/maps/OldaleTown_Mart.s
+++ b/data/text/maps/OldaleTown_Mart.inc
diff --git a/data/text/maps/OldaleTown_PokemonCenter_1F.s b/data/text/maps/OldaleTown_PokemonCenter_1F.inc
index 4fa7f4d9b..4fa7f4d9b 100644
--- a/data/text/maps/OldaleTown_PokemonCenter_1F.s
+++ b/data/text/maps/OldaleTown_PokemonCenter_1F.inc
diff --git a/data/text/maps/PacifidlogTown.s b/data/text/maps/PacifidlogTown.inc
index f598c566a..f598c566a 100644
--- a/data/text/maps/PacifidlogTown.s
+++ b/data/text/maps/PacifidlogTown.inc
diff --git a/data/text/maps/PacifidlogTown_House1.s b/data/text/maps/PacifidlogTown_House1.inc
index 5d2f5a2c9..5d2f5a2c9 100644
--- a/data/text/maps/PacifidlogTown_House1.s
+++ b/data/text/maps/PacifidlogTown_House1.inc
diff --git a/data/text/maps/PacifidlogTown_House2.s b/data/text/maps/PacifidlogTown_House2.inc
index 5c669dc98..5c669dc98 100644
--- a/data/text/maps/PacifidlogTown_House2.s
+++ b/data/text/maps/PacifidlogTown_House2.inc
diff --git a/data/text/maps/PacifidlogTown_House3.s b/data/text/maps/PacifidlogTown_House3.inc
index 1aabc9578..1aabc9578 100644
--- a/data/text/maps/PacifidlogTown_House3.s
+++ b/data/text/maps/PacifidlogTown_House3.inc
diff --git a/data/text/maps/PacifidlogTown_House4.s b/data/text/maps/PacifidlogTown_House4.inc
index 3ca9e5cca..3ca9e5cca 100644
--- a/data/text/maps/PacifidlogTown_House4.s
+++ b/data/text/maps/PacifidlogTown_House4.inc
diff --git a/data/text/maps/PacifidlogTown_House5.s b/data/text/maps/PacifidlogTown_House5.inc
index 5fc9ca5c5..5fc9ca5c5 100644
--- a/data/text/maps/PacifidlogTown_House5.s
+++ b/data/text/maps/PacifidlogTown_House5.inc
diff --git a/data/text/maps/PacifidlogTown_PokemonCenter_1F.s b/data/text/maps/PacifidlogTown_PokemonCenter_1F.inc
index 9f87c6a54..9f87c6a54 100644
--- a/data/text/maps/PacifidlogTown_PokemonCenter_1F.s
+++ b/data/text/maps/PacifidlogTown_PokemonCenter_1F.inc
diff --git a/data/text/maps/PetalburgCity.s b/data/text/maps/PetalburgCity.inc
index fbe00df96..fbe00df96 100644
--- a/data/text/maps/PetalburgCity.s
+++ b/data/text/maps/PetalburgCity.inc
diff --git a/data/text/maps/PetalburgCity_Gym.s b/data/text/maps/PetalburgCity_Gym.inc
index bbd072564..bbd072564 100644
--- a/data/text/maps/PetalburgCity_Gym.s
+++ b/data/text/maps/PetalburgCity_Gym.inc
diff --git a/data/text/maps/PetalburgCity_House1.s b/data/text/maps/PetalburgCity_House1.inc
index d41fadd1f..d41fadd1f 100644
--- a/data/text/maps/PetalburgCity_House1.s
+++ b/data/text/maps/PetalburgCity_House1.inc
diff --git a/data/text/maps/PetalburgCity_House2.s b/data/text/maps/PetalburgCity_House2.inc
index 426dac360..426dac360 100644
--- a/data/text/maps/PetalburgCity_House2.s
+++ b/data/text/maps/PetalburgCity_House2.inc
diff --git a/data/text/maps/PetalburgCity_Mart.s b/data/text/maps/PetalburgCity_Mart.inc
index d6fcc6fff..d6fcc6fff 100644
--- a/data/text/maps/PetalburgCity_Mart.s
+++ b/data/text/maps/PetalburgCity_Mart.inc
diff --git a/data/text/maps/PetalburgCity_PokemonCenter_1F.s b/data/text/maps/PetalburgCity_PokemonCenter_1F.inc
index 1c4689672..1c4689672 100644
--- a/data/text/maps/PetalburgCity_PokemonCenter_1F.s
+++ b/data/text/maps/PetalburgCity_PokemonCenter_1F.inc
diff --git a/data/text/maps/PetalburgCity_WallysHouse.s b/data/text/maps/PetalburgCity_WallysHouse.inc
index 888dfbc91..888dfbc91 100644
--- a/data/text/maps/PetalburgCity_WallysHouse.s
+++ b/data/text/maps/PetalburgCity_WallysHouse.inc
diff --git a/data/text/maps/PetalburgWoods.s b/data/text/maps/PetalburgWoods.inc
index 21a04dcc8..21a04dcc8 100644
--- a/data/text/maps/PetalburgWoods.s
+++ b/data/text/maps/PetalburgWoods.inc
diff --git a/data/text/maps/Route101.s b/data/text/maps/Route101.inc
index 3bfa1ef6e..3bfa1ef6e 100644
--- a/data/text/maps/Route101.s
+++ b/data/text/maps/Route101.inc
diff --git a/data/text/maps/Route102.s b/data/text/maps/Route102.inc
index cf367edc2..cf367edc2 100644
--- a/data/text/maps/Route102.s
+++ b/data/text/maps/Route102.inc
diff --git a/data/text/maps/Route103.s b/data/text/maps/Route103.inc
index ebdedea82..ebdedea82 100644
--- a/data/text/maps/Route103.s
+++ b/data/text/maps/Route103.inc
diff --git a/data/text/maps/Route104.s b/data/text/maps/Route104.inc
index 95f70a7ec..95f70a7ec 100644
--- a/data/text/maps/Route104.s
+++ b/data/text/maps/Route104.inc
diff --git a/data/text/maps/Route104_MrBrineysHouse.s b/data/text/maps/Route104_MrBrineysHouse.inc
index 37fd0c0e1..37fd0c0e1 100644
--- a/data/text/maps/Route104_MrBrineysHouse.s
+++ b/data/text/maps/Route104_MrBrineysHouse.inc
diff --git a/data/text/maps/Route104_Prototype.s b/data/text/maps/Route104_Prototype.inc
index 7ce19f609..7ce19f609 100644
--- a/data/text/maps/Route104_Prototype.s
+++ b/data/text/maps/Route104_Prototype.inc
diff --git a/data/text/maps/Route104_PrototypePrettyPetalFlowerShop.s b/data/text/maps/Route104_PrototypePrettyPetalFlowerShop.inc
index 3ec76ff55..3ec76ff55 100644
--- a/data/text/maps/Route104_PrototypePrettyPetalFlowerShop.s
+++ b/data/text/maps/Route104_PrototypePrettyPetalFlowerShop.inc
diff --git a/data/text/maps/Route105.s b/data/text/maps/Route105.inc
index 8b1378917..8b1378917 100644
--- a/data/text/maps/Route105.s
+++ b/data/text/maps/Route105.inc
diff --git a/data/text/maps/Route106.s b/data/text/maps/Route106.inc
index 38e92c65d..38e92c65d 100644
--- a/data/text/maps/Route106.s
+++ b/data/text/maps/Route106.inc
diff --git a/data/text/maps/Route107.s b/data/text/maps/Route107.inc
index 8b1378917..8b1378917 100644
--- a/data/text/maps/Route107.s
+++ b/data/text/maps/Route107.inc
diff --git a/data/text/maps/Route108.s b/data/text/maps/Route108.inc
index 8b1378917..8b1378917 100644
--- a/data/text/maps/Route108.s
+++ b/data/text/maps/Route108.inc
diff --git a/data/text/maps/Route109.s b/data/text/maps/Route109.inc
index a86efa2c4..a86efa2c4 100644
--- a/data/text/maps/Route109.s
+++ b/data/text/maps/Route109.inc
diff --git a/data/text/maps/Route109_SeashoreHouse.s b/data/text/maps/Route109_SeashoreHouse.inc
index ebd6f05e5..ebd6f05e5 100644
--- a/data/text/maps/Route109_SeashoreHouse.s
+++ b/data/text/maps/Route109_SeashoreHouse.inc
diff --git a/data/text/maps/Route110.s b/data/text/maps/Route110.inc
index 78be8d595..78be8d595 100644
--- a/data/text/maps/Route110.s
+++ b/data/text/maps/Route110.inc
diff --git a/data/text/maps/Route110_SeasideCyclingRoadNorthEntrance.s b/data/text/maps/Route110_SeasideCyclingRoadNorthEntrance.inc
index 8d5a0433e..8d5a0433e 100644
--- a/data/text/maps/Route110_SeasideCyclingRoadNorthEntrance.s
+++ b/data/text/maps/Route110_SeasideCyclingRoadNorthEntrance.inc
diff --git a/data/text/maps/Route110_SeasideCyclingRoadSouthEntrance.s b/data/text/maps/Route110_SeasideCyclingRoadSouthEntrance.inc
index 77bf90751..77bf90751 100644
--- a/data/text/maps/Route110_SeasideCyclingRoadSouthEntrance.s
+++ b/data/text/maps/Route110_SeasideCyclingRoadSouthEntrance.inc
diff --git a/data/text/maps/Route110_TrickHouseEnd.s b/data/text/maps/Route110_TrickHouseEnd.inc
index 03f2252fd..03f2252fd 100644
--- a/data/text/maps/Route110_TrickHouseEnd.s
+++ b/data/text/maps/Route110_TrickHouseEnd.inc
diff --git a/data/text/maps/Route110_TrickHouseEntrance.s b/data/text/maps/Route110_TrickHouseEntrance.inc
index fe39a4441..fe39a4441 100644
--- a/data/text/maps/Route110_TrickHouseEntrance.s
+++ b/data/text/maps/Route110_TrickHouseEntrance.inc
diff --git a/data/text/maps/Route110_TrickHousePuzzle1.s b/data/text/maps/Route110_TrickHousePuzzle1.inc
index 84208ead5..84208ead5 100644
--- a/data/text/maps/Route110_TrickHousePuzzle1.s
+++ b/data/text/maps/Route110_TrickHousePuzzle1.inc
diff --git a/data/text/maps/Route110_TrickHousePuzzle2.s b/data/text/maps/Route110_TrickHousePuzzle2.inc
index cb64f04d8..cb64f04d8 100644
--- a/data/text/maps/Route110_TrickHousePuzzle2.s
+++ b/data/text/maps/Route110_TrickHousePuzzle2.inc
diff --git a/data/text/maps/Route110_TrickHousePuzzle3.s b/data/text/maps/Route110_TrickHousePuzzle3.inc
index 01287a068..01287a068 100644
--- a/data/text/maps/Route110_TrickHousePuzzle3.s
+++ b/data/text/maps/Route110_TrickHousePuzzle3.inc
diff --git a/data/text/maps/Route110_TrickHousePuzzle4.s b/data/text/maps/Route110_TrickHousePuzzle4.inc
index 293e5ab93..293e5ab93 100644
--- a/data/text/maps/Route110_TrickHousePuzzle4.s
+++ b/data/text/maps/Route110_TrickHousePuzzle4.inc
diff --git a/data/text/maps/Route110_TrickHousePuzzle5.s b/data/text/maps/Route110_TrickHousePuzzle5.inc
index 8cddc3f65..8cddc3f65 100644
--- a/data/text/maps/Route110_TrickHousePuzzle5.s
+++ b/data/text/maps/Route110_TrickHousePuzzle5.inc
diff --git a/data/text/maps/Route110_TrickHousePuzzle6.s b/data/text/maps/Route110_TrickHousePuzzle6.inc
index 7fb5aa914..7fb5aa914 100644
--- a/data/text/maps/Route110_TrickHousePuzzle6.s
+++ b/data/text/maps/Route110_TrickHousePuzzle6.inc
diff --git a/data/text/maps/Route110_TrickHousePuzzle7.s b/data/text/maps/Route110_TrickHousePuzzle7.inc
index e8ce4b3a4..e8ce4b3a4 100644
--- a/data/text/maps/Route110_TrickHousePuzzle7.s
+++ b/data/text/maps/Route110_TrickHousePuzzle7.inc
diff --git a/data/text/maps/Route110_TrickHousePuzzle8.s b/data/text/maps/Route110_TrickHousePuzzle8.inc
index 8b0025bfb..8b0025bfb 100644
--- a/data/text/maps/Route110_TrickHousePuzzle8.s
+++ b/data/text/maps/Route110_TrickHousePuzzle8.inc
diff --git a/data/text/maps/Route111.s b/data/text/maps/Route111.inc
index 24bcc1008..24bcc1008 100644
--- a/data/text/maps/Route111.s
+++ b/data/text/maps/Route111.inc
diff --git a/data/text/maps/Route111_OldLadysRestStop.s b/data/text/maps/Route111_OldLadysRestStop.inc
index aeef47a32..aeef47a32 100644
--- a/data/text/maps/Route111_OldLadysRestStop.s
+++ b/data/text/maps/Route111_OldLadysRestStop.inc
diff --git a/data/text/maps/Route111_WinstrateFamilysHouse.s b/data/text/maps/Route111_WinstrateFamilysHouse.inc
index e1986320b..e1986320b 100644
--- a/data/text/maps/Route111_WinstrateFamilysHouse.s
+++ b/data/text/maps/Route111_WinstrateFamilysHouse.inc
diff --git a/data/text/maps/Route112.s b/data/text/maps/Route112.inc
index c967c562c..c967c562c 100644
--- a/data/text/maps/Route112.s
+++ b/data/text/maps/Route112.inc
diff --git a/data/text/maps/Route112_CableCarStation.s b/data/text/maps/Route112_CableCarStation.inc
index 245172542..245172542 100644
--- a/data/text/maps/Route112_CableCarStation.s
+++ b/data/text/maps/Route112_CableCarStation.inc
diff --git a/data/text/maps/Route113.s b/data/text/maps/Route113.inc
index 2ce41fda9..2ce41fda9 100644
--- a/data/text/maps/Route113.s
+++ b/data/text/maps/Route113.inc
diff --git a/data/text/maps/Route113_GlassWorkshop.s b/data/text/maps/Route113_GlassWorkshop.inc
index 2923255a4..2923255a4 100644
--- a/data/text/maps/Route113_GlassWorkshop.s
+++ b/data/text/maps/Route113_GlassWorkshop.inc
diff --git a/data/text/maps/Route114.s b/data/text/maps/Route114.inc
index 9a46954da..9a46954da 100644
--- a/data/text/maps/Route114.s
+++ b/data/text/maps/Route114.inc
diff --git a/data/text/maps/Route114_FossilManiacsHouse.s b/data/text/maps/Route114_FossilManiacsHouse.inc
index 4515a161a..4515a161a 100644
--- a/data/text/maps/Route114_FossilManiacsHouse.s
+++ b/data/text/maps/Route114_FossilManiacsHouse.inc
diff --git a/data/text/maps/Route114_FossilManiacsTunnel.s b/data/text/maps/Route114_FossilManiacsTunnel.inc
index cbcd6172d..cbcd6172d 100644
--- a/data/text/maps/Route114_FossilManiacsTunnel.s
+++ b/data/text/maps/Route114_FossilManiacsTunnel.inc
diff --git a/data/text/maps/Route114_LanettesHouse.s b/data/text/maps/Route114_LanettesHouse.inc
index 5d6747895..5d6747895 100644
--- a/data/text/maps/Route114_LanettesHouse.s
+++ b/data/text/maps/Route114_LanettesHouse.inc
diff --git a/data/text/maps/Route115.s b/data/text/maps/Route115.inc
index f5fc22b0d..f5fc22b0d 100644
--- a/data/text/maps/Route115.s
+++ b/data/text/maps/Route115.inc
diff --git a/data/text/maps/Route116.s b/data/text/maps/Route116.inc
index 64694199d..64694199d 100644
--- a/data/text/maps/Route116.s
+++ b/data/text/maps/Route116.inc
diff --git a/data/text/maps/Route116_TunnelersRestHouse.s b/data/text/maps/Route116_TunnelersRestHouse.inc
index d777ff0c8..d777ff0c8 100644
--- a/data/text/maps/Route116_TunnelersRestHouse.s
+++ b/data/text/maps/Route116_TunnelersRestHouse.inc
diff --git a/data/text/maps/Route117.s b/data/text/maps/Route117.inc
index deadb8f5d..deadb8f5d 100644
--- a/data/text/maps/Route117.s
+++ b/data/text/maps/Route117.inc
diff --git a/data/text/maps/Route118.s b/data/text/maps/Route118.inc
index 649efe3f0..649efe3f0 100644
--- a/data/text/maps/Route118.s
+++ b/data/text/maps/Route118.inc
diff --git a/data/text/maps/Route119.s b/data/text/maps/Route119.inc
index 489ca053d..489ca053d 100644
--- a/data/text/maps/Route119.s
+++ b/data/text/maps/Route119.inc
diff --git a/data/text/maps/Route119_House.s b/data/text/maps/Route119_House.inc
index fe069c1ed..fe069c1ed 100644
--- a/data/text/maps/Route119_House.s
+++ b/data/text/maps/Route119_House.inc
diff --git a/data/text/maps/Route119_WeatherInstitute_1F.s b/data/text/maps/Route119_WeatherInstitute_1F.inc
index 1f7fff794..1f7fff794 100644
--- a/data/text/maps/Route119_WeatherInstitute_1F.s
+++ b/data/text/maps/Route119_WeatherInstitute_1F.inc
diff --git a/data/text/maps/Route119_WeatherInstitute_2F.s b/data/text/maps/Route119_WeatherInstitute_2F.inc
index f2854f6d0..f2854f6d0 100644
--- a/data/text/maps/Route119_WeatherInstitute_2F.s
+++ b/data/text/maps/Route119_WeatherInstitute_2F.inc
diff --git a/data/text/maps/Route120.s b/data/text/maps/Route120.inc
index adaf369b1..adaf369b1 100644
--- a/data/text/maps/Route120.s
+++ b/data/text/maps/Route120.inc
diff --git a/data/text/maps/Route121.s b/data/text/maps/Route121.inc
index 7861b1744..7861b1744 100644
--- a/data/text/maps/Route121.s
+++ b/data/text/maps/Route121.inc
diff --git a/data/text/maps/Route123.s b/data/text/maps/Route123.inc
index 911915f9e..911915f9e 100644
--- a/data/text/maps/Route123.s
+++ b/data/text/maps/Route123.inc
diff --git a/data/text/maps/Route123_BerryMastersHouse.s b/data/text/maps/Route123_BerryMastersHouse.inc
index 8b1378917..8b1378917 100644
--- a/data/text/maps/Route123_BerryMastersHouse.s
+++ b/data/text/maps/Route123_BerryMastersHouse.inc
diff --git a/data/text/maps/Route124.s b/data/text/maps/Route124.inc
index 6f33d40b7..6f33d40b7 100644
--- a/data/text/maps/Route124.s
+++ b/data/text/maps/Route124.inc
diff --git a/data/text/maps/Route124_DivingTreasureHuntersHouse.s b/data/text/maps/Route124_DivingTreasureHuntersHouse.inc
index 3eda96254..3eda96254 100644
--- a/data/text/maps/Route124_DivingTreasureHuntersHouse.s
+++ b/data/text/maps/Route124_DivingTreasureHuntersHouse.inc
diff --git a/data/text/maps/Route128.s b/data/text/maps/Route128.inc
index da813609b..da813609b 100644
--- a/data/text/maps/Route128.s
+++ b/data/text/maps/Route128.inc
diff --git a/data/text/maps/RustboroCity.s b/data/text/maps/RustboroCity.inc
index 4f2954f35..4f2954f35 100644
--- a/data/text/maps/RustboroCity.s
+++ b/data/text/maps/RustboroCity.inc
diff --git a/data/text/maps/RustboroCity_CuttersHouse.s b/data/text/maps/RustboroCity_CuttersHouse.inc
index 8b4c237f5..8b4c237f5 100644
--- a/data/text/maps/RustboroCity_CuttersHouse.s
+++ b/data/text/maps/RustboroCity_CuttersHouse.inc
diff --git a/data/text/maps/RustboroCity_DevonCorp_1F.s b/data/text/maps/RustboroCity_DevonCorp_1F.inc
index 209fd049c..209fd049c 100644
--- a/data/text/maps/RustboroCity_DevonCorp_1F.s
+++ b/data/text/maps/RustboroCity_DevonCorp_1F.inc
diff --git a/data/text/maps/RustboroCity_DevonCorp_2F.s b/data/text/maps/RustboroCity_DevonCorp_2F.inc
index a6a6bb6c2..a6a6bb6c2 100644
--- a/data/text/maps/RustboroCity_DevonCorp_2F.s
+++ b/data/text/maps/RustboroCity_DevonCorp_2F.inc
diff --git a/data/text/maps/RustboroCity_DevonCorp_3F.s b/data/text/maps/RustboroCity_DevonCorp_3F.inc
index c868a4836..c868a4836 100644
--- a/data/text/maps/RustboroCity_DevonCorp_3F.s
+++ b/data/text/maps/RustboroCity_DevonCorp_3F.inc
diff --git a/data/text/maps/RustboroCity_Flat1_1F.s b/data/text/maps/RustboroCity_Flat1_1F.inc
index 4721931e4..4721931e4 100644
--- a/data/text/maps/RustboroCity_Flat1_1F.s
+++ b/data/text/maps/RustboroCity_Flat1_1F.inc
diff --git a/data/text/maps/RustboroCity_Flat1_2F.s b/data/text/maps/RustboroCity_Flat1_2F.inc
index 7ddb678bf..7ddb678bf 100644
--- a/data/text/maps/RustboroCity_Flat1_2F.s
+++ b/data/text/maps/RustboroCity_Flat1_2F.inc
diff --git a/data/text/maps/RustboroCity_Flat2_1F.s b/data/text/maps/RustboroCity_Flat2_1F.inc
index d949a0ab8..d949a0ab8 100644
--- a/data/text/maps/RustboroCity_Flat2_1F.s
+++ b/data/text/maps/RustboroCity_Flat2_1F.inc
diff --git a/data/text/maps/RustboroCity_Flat2_2F.s b/data/text/maps/RustboroCity_Flat2_2F.inc
index 8a3d52fda..8a3d52fda 100644
--- a/data/text/maps/RustboroCity_Flat2_2F.s
+++ b/data/text/maps/RustboroCity_Flat2_2F.inc
diff --git a/data/text/maps/RustboroCity_Flat2_3F.s b/data/text/maps/RustboroCity_Flat2_3F.inc
index 9f95ce92e..9f95ce92e 100644
--- a/data/text/maps/RustboroCity_Flat2_3F.s
+++ b/data/text/maps/RustboroCity_Flat2_3F.inc
diff --git a/data/text/maps/RustboroCity_Gym.s b/data/text/maps/RustboroCity_Gym.inc
index 7bb737097..7bb737097 100644
--- a/data/text/maps/RustboroCity_Gym.s
+++ b/data/text/maps/RustboroCity_Gym.inc
diff --git a/data/text/maps/RustboroCity_House1.s b/data/text/maps/RustboroCity_House1.inc
index 6427aa326..6427aa326 100644
--- a/data/text/maps/RustboroCity_House1.s
+++ b/data/text/maps/RustboroCity_House1.inc
diff --git a/data/text/maps/RustboroCity_House2.s b/data/text/maps/RustboroCity_House2.inc
index 7a1d9c706..7a1d9c706 100644
--- a/data/text/maps/RustboroCity_House2.s
+++ b/data/text/maps/RustboroCity_House2.inc
diff --git a/data/text/maps/RustboroCity_House3.s b/data/text/maps/RustboroCity_House3.inc
index 43a3f6ff0..43a3f6ff0 100644
--- a/data/text/maps/RustboroCity_House3.s
+++ b/data/text/maps/RustboroCity_House3.inc
diff --git a/data/text/maps/RustboroCity_Mart.s b/data/text/maps/RustboroCity_Mart.inc
index f11395b68..f11395b68 100644
--- a/data/text/maps/RustboroCity_Mart.s
+++ b/data/text/maps/RustboroCity_Mart.inc
diff --git a/data/text/maps/RustboroCity_PokemonCenter_1F.s b/data/text/maps/RustboroCity_PokemonCenter_1F.inc
index 0265f0363..0265f0363 100644
--- a/data/text/maps/RustboroCity_PokemonCenter_1F.s
+++ b/data/text/maps/RustboroCity_PokemonCenter_1F.inc
diff --git a/data/text/maps/RustboroCity_PokemonSchool.s b/data/text/maps/RustboroCity_PokemonSchool.inc
index e12349bd2..e12349bd2 100644
--- a/data/text/maps/RustboroCity_PokemonSchool.s
+++ b/data/text/maps/RustboroCity_PokemonSchool.inc
diff --git a/data/text/maps/RusturfTunnel.s b/data/text/maps/RusturfTunnel.inc
index 3403808fd..3403808fd 100644
--- a/data/text/maps/RusturfTunnel.s
+++ b/data/text/maps/RusturfTunnel.inc
diff --git a/data/text/maps/SSTidalCorridor.s b/data/text/maps/SSTidalCorridor.inc
index 530ff6c55..530ff6c55 100644
--- a/data/text/maps/SSTidalCorridor.s
+++ b/data/text/maps/SSTidalCorridor.inc
diff --git a/data/text/maps/SSTidalLowerDeck.s b/data/text/maps/SSTidalLowerDeck.inc
index 2c54d743c..2c54d743c 100644
--- a/data/text/maps/SSTidalLowerDeck.s
+++ b/data/text/maps/SSTidalLowerDeck.inc
diff --git a/data/text/maps/SSTidalRooms.s b/data/text/maps/SSTidalRooms.inc
index a0f9000d3..a0f9000d3 100644
--- a/data/text/maps/SSTidalRooms.s
+++ b/data/text/maps/SSTidalRooms.inc
diff --git a/data/text/maps/SeafloorCavern_Room1.s b/data/text/maps/SeafloorCavern_Room1.inc
index da6e207ae..da6e207ae 100644
--- a/data/text/maps/SeafloorCavern_Room1.s
+++ b/data/text/maps/SeafloorCavern_Room1.inc
diff --git a/data/text/maps/SeafloorCavern_Room3.s b/data/text/maps/SeafloorCavern_Room3.inc
index 07187b142..07187b142 100644
--- a/data/text/maps/SeafloorCavern_Room3.s
+++ b/data/text/maps/SeafloorCavern_Room3.inc
diff --git a/data/text/maps/SeafloorCavern_Room4.s b/data/text/maps/SeafloorCavern_Room4.inc
index ca0600450..ca0600450 100644
--- a/data/text/maps/SeafloorCavern_Room4.s
+++ b/data/text/maps/SeafloorCavern_Room4.inc
diff --git a/data/text/maps/SecretBase_RedCave1.s b/data/text/maps/SecretBase_RedCave1.inc
index efb2c8fdb..efb2c8fdb 100644
--- a/data/text/maps/SecretBase_RedCave1.s
+++ b/data/text/maps/SecretBase_RedCave1.inc
diff --git a/data/text/maps/ShoalCave_LowTideEntranceRoom.s b/data/text/maps/ShoalCave_LowTideEntranceRoom.inc
index 8b1378917..8b1378917 100644
--- a/data/text/maps/ShoalCave_LowTideEntranceRoom.s
+++ b/data/text/maps/ShoalCave_LowTideEntranceRoom.inc
diff --git a/data/text/maps/ShoalCave_LowTideInnerRoom.s b/data/text/maps/ShoalCave_LowTideInnerRoom.inc
index 8b1378917..8b1378917 100644
--- a/data/text/maps/ShoalCave_LowTideInnerRoom.s
+++ b/data/text/maps/ShoalCave_LowTideInnerRoom.inc
diff --git a/data/text/maps/ShoalCave_LowTideLowerRoom.s b/data/text/maps/ShoalCave_LowTideLowerRoom.inc
index c9d4337de..c9d4337de 100644
--- a/data/text/maps/ShoalCave_LowTideLowerRoom.s
+++ b/data/text/maps/ShoalCave_LowTideLowerRoom.inc
diff --git a/data/text/maps/ShoalCave_LowTideStairsRoom.s b/data/text/maps/ShoalCave_LowTideStairsRoom.inc
index 8b1378917..8b1378917 100644
--- a/data/text/maps/ShoalCave_LowTideStairsRoom.s
+++ b/data/text/maps/ShoalCave_LowTideStairsRoom.inc
diff --git a/data/text/maps/SlateportCity.s b/data/text/maps/SlateportCity.inc
index 3ff5d51bf..3ff5d51bf 100644
--- a/data/text/maps/SlateportCity.s
+++ b/data/text/maps/SlateportCity.inc
diff --git a/data/text/maps/SlateportCity_ContestHall.s b/data/text/maps/SlateportCity_ContestHall.inc
index 6199157fb..6199157fb 100644
--- a/data/text/maps/SlateportCity_ContestHall.s
+++ b/data/text/maps/SlateportCity_ContestHall.inc
diff --git a/data/text/maps/SlateportCity_ContestLobby.s b/data/text/maps/SlateportCity_ContestLobby.inc
index 7c32cd8ac..7c32cd8ac 100644
--- a/data/text/maps/SlateportCity_ContestLobby.s
+++ b/data/text/maps/SlateportCity_ContestLobby.inc
diff --git a/data/text/maps/SlateportCity_Harbor.s b/data/text/maps/SlateportCity_Harbor.inc
index 187dfe07c..187dfe07c 100644
--- a/data/text/maps/SlateportCity_Harbor.s
+++ b/data/text/maps/SlateportCity_Harbor.inc
diff --git a/data/text/maps/SlateportCity_House1.s b/data/text/maps/SlateportCity_House1.inc
index c711aec2f..c711aec2f 100644
--- a/data/text/maps/SlateportCity_House1.s
+++ b/data/text/maps/SlateportCity_House1.inc
diff --git a/data/text/maps/SlateportCity_House2.s b/data/text/maps/SlateportCity_House2.inc
index c3d8346bc..c3d8346bc 100644
--- a/data/text/maps/SlateportCity_House2.s
+++ b/data/text/maps/SlateportCity_House2.inc
diff --git a/data/text/maps/SlateportCity_Mart.s b/data/text/maps/SlateportCity_Mart.inc
index b5243d406..b5243d406 100644
--- a/data/text/maps/SlateportCity_Mart.s
+++ b/data/text/maps/SlateportCity_Mart.inc
diff --git a/data/text/maps/SlateportCity_OceanicMuseum_1F.s b/data/text/maps/SlateportCity_OceanicMuseum_1F.inc
index 0d3d1eec6..0d3d1eec6 100644
--- a/data/text/maps/SlateportCity_OceanicMuseum_1F.s
+++ b/data/text/maps/SlateportCity_OceanicMuseum_1F.inc
diff --git a/data/text/maps/SlateportCity_OceanicMuseum_2F.s b/data/text/maps/SlateportCity_OceanicMuseum_2F.inc
index a3c624f0c..a3c624f0c 100644
--- a/data/text/maps/SlateportCity_OceanicMuseum_2F.s
+++ b/data/text/maps/SlateportCity_OceanicMuseum_2F.inc
diff --git a/data/text/maps/SlateportCity_PokemonCenter_1F.s b/data/text/maps/SlateportCity_PokemonCenter_1F.inc
index 2a87ffa93..2a87ffa93 100644
--- a/data/text/maps/SlateportCity_PokemonCenter_1F.s
+++ b/data/text/maps/SlateportCity_PokemonCenter_1F.inc
diff --git a/data/text/maps/SlateportCity_PokemonFanClub.s b/data/text/maps/SlateportCity_PokemonFanClub.inc
index eab516c2b..eab516c2b 100644
--- a/data/text/maps/SlateportCity_PokemonFanClub.s
+++ b/data/text/maps/SlateportCity_PokemonFanClub.inc
diff --git a/data/text/maps/SlateportCity_SternsShipyard_1F.s b/data/text/maps/SlateportCity_SternsShipyard_1F.inc
index 8a08a15ae..8a08a15ae 100644
--- a/data/text/maps/SlateportCity_SternsShipyard_1F.s
+++ b/data/text/maps/SlateportCity_SternsShipyard_1F.inc
diff --git a/data/text/maps/SlateportCity_SternsShipyard_2F.s b/data/text/maps/SlateportCity_SternsShipyard_2F.inc
index 0bf4e27e0..0bf4e27e0 100644
--- a/data/text/maps/SlateportCity_SternsShipyard_2F.s
+++ b/data/text/maps/SlateportCity_SternsShipyard_2F.inc
diff --git a/data/text/maps/SootopolisCity.s b/data/text/maps/SootopolisCity.inc
index cc89d86bd..cc89d86bd 100644
--- a/data/text/maps/SootopolisCity.s
+++ b/data/text/maps/SootopolisCity.inc
diff --git a/data/text/maps/SootopolisCity_Gym_1F.s b/data/text/maps/SootopolisCity_Gym_1F.inc
index 1047a5326..1047a5326 100644
--- a/data/text/maps/SootopolisCity_Gym_1F.s
+++ b/data/text/maps/SootopolisCity_Gym_1F.inc
diff --git a/data/text/maps/SootopolisCity_Gym_B1F.s b/data/text/maps/SootopolisCity_Gym_B1F.inc
index 8b1378917..8b1378917 100644
--- a/data/text/maps/SootopolisCity_Gym_B1F.s
+++ b/data/text/maps/SootopolisCity_Gym_B1F.inc
diff --git a/data/text/maps/SootopolisCity_House1.s b/data/text/maps/SootopolisCity_House1.inc
index 78e8454e5..78e8454e5 100644
--- a/data/text/maps/SootopolisCity_House1.s
+++ b/data/text/maps/SootopolisCity_House1.inc
diff --git a/data/text/maps/SootopolisCity_House2.s b/data/text/maps/SootopolisCity_House2.inc
index e132b20f7..e132b20f7 100644
--- a/data/text/maps/SootopolisCity_House2.s
+++ b/data/text/maps/SootopolisCity_House2.inc
diff --git a/data/text/maps/SootopolisCity_House3.s b/data/text/maps/SootopolisCity_House3.inc
index b67e0a4dc..b67e0a4dc 100644
--- a/data/text/maps/SootopolisCity_House3.s
+++ b/data/text/maps/SootopolisCity_House3.inc
diff --git a/data/text/maps/SootopolisCity_House4.s b/data/text/maps/SootopolisCity_House4.inc
index 277e2e060..277e2e060 100644
--- a/data/text/maps/SootopolisCity_House4.s
+++ b/data/text/maps/SootopolisCity_House4.inc
diff --git a/data/text/maps/SootopolisCity_House5.s b/data/text/maps/SootopolisCity_House5.inc
index c5887ffe2..c5887ffe2 100644
--- a/data/text/maps/SootopolisCity_House5.s
+++ b/data/text/maps/SootopolisCity_House5.inc
diff --git a/data/text/maps/SootopolisCity_House6.s b/data/text/maps/SootopolisCity_House6.inc
index c8547b412..c8547b412 100644
--- a/data/text/maps/SootopolisCity_House6.s
+++ b/data/text/maps/SootopolisCity_House6.inc
diff --git a/data/text/maps/SootopolisCity_House7.s b/data/text/maps/SootopolisCity_House7.inc
index 756a96a1b..756a96a1b 100644
--- a/data/text/maps/SootopolisCity_House7.s
+++ b/data/text/maps/SootopolisCity_House7.inc
diff --git a/data/text/maps/SootopolisCity_House8.s b/data/text/maps/SootopolisCity_House8.inc
index 4efc111cc..4efc111cc 100644
--- a/data/text/maps/SootopolisCity_House8.s
+++ b/data/text/maps/SootopolisCity_House8.inc
diff --git a/data/text/maps/SootopolisCity_Mart.s b/data/text/maps/SootopolisCity_Mart.inc
index 858d1530d..858d1530d 100644
--- a/data/text/maps/SootopolisCity_Mart.s
+++ b/data/text/maps/SootopolisCity_Mart.inc
diff --git a/data/text/maps/SootopolisCity_PokemonCenter_1F.s b/data/text/maps/SootopolisCity_PokemonCenter_1F.inc
index fd078ad0c..fd078ad0c 100644
--- a/data/text/maps/SootopolisCity_PokemonCenter_1F.s
+++ b/data/text/maps/SootopolisCity_PokemonCenter_1F.inc
diff --git a/data/text/maps/SouthernIsland_Exterior.s b/data/text/maps/SouthernIsland_Exterior.inc
index 8b1378917..8b1378917 100644
--- a/data/text/maps/SouthernIsland_Exterior.s
+++ b/data/text/maps/SouthernIsland_Exterior.inc
diff --git a/data/text/maps/SouthernIsland_Interior.s b/data/text/maps/SouthernIsland_Interior.inc
index 8b1378917..8b1378917 100644
--- a/data/text/maps/SouthernIsland_Interior.s
+++ b/data/text/maps/SouthernIsland_Interior.inc
diff --git a/data/text/maps/Underwater_SeafloorCavern.s b/data/text/maps/Underwater_SeafloorCavern.inc
index 8df6cb492..8df6cb492 100644
--- a/data/text/maps/Underwater_SeafloorCavern.s
+++ b/data/text/maps/Underwater_SeafloorCavern.inc
diff --git a/data/text/maps/VerdanturfTown.s b/data/text/maps/VerdanturfTown.inc
index a3ccdd34e..a3ccdd34e 100644
--- a/data/text/maps/VerdanturfTown.s
+++ b/data/text/maps/VerdanturfTown.inc
diff --git a/data/text/maps/VerdanturfTown_ContestHall.s b/data/text/maps/VerdanturfTown_ContestHall.inc
index 2bf97f1de..2bf97f1de 100644
--- a/data/text/maps/VerdanturfTown_ContestHall.s
+++ b/data/text/maps/VerdanturfTown_ContestHall.inc
diff --git a/data/text/maps/VerdanturfTown_ContestLobby.s b/data/text/maps/VerdanturfTown_ContestLobby.inc
index 2f9121c52..2f9121c52 100644
--- a/data/text/maps/VerdanturfTown_ContestLobby.s
+++ b/data/text/maps/VerdanturfTown_ContestLobby.inc
diff --git a/data/text/maps/VerdanturfTown_FriendshipRatersHouse.s b/data/text/maps/VerdanturfTown_FriendshipRatersHouse.inc
index e6e7f9730..e6e7f9730 100644
--- a/data/text/maps/VerdanturfTown_FriendshipRatersHouse.s
+++ b/data/text/maps/VerdanturfTown_FriendshipRatersHouse.inc
diff --git a/data/text/maps/VerdanturfTown_House.s b/data/text/maps/VerdanturfTown_House.inc
index 8db1656ee..8db1656ee 100644
--- a/data/text/maps/VerdanturfTown_House.s
+++ b/data/text/maps/VerdanturfTown_House.inc
diff --git a/data/text/maps/VerdanturfTown_Mart.s b/data/text/maps/VerdanturfTown_Mart.inc
index fbd655f08..fbd655f08 100644
--- a/data/text/maps/VerdanturfTown_Mart.s
+++ b/data/text/maps/VerdanturfTown_Mart.inc
diff --git a/data/text/maps/VerdanturfTown_PokemonCenter_1F.s b/data/text/maps/VerdanturfTown_PokemonCenter_1F.inc
index e79898ead..e79898ead 100644
--- a/data/text/maps/VerdanturfTown_PokemonCenter_1F.s
+++ b/data/text/maps/VerdanturfTown_PokemonCenter_1F.inc
diff --git a/data/text/maps/VerdanturfTown_WandasHouse.s b/data/text/maps/VerdanturfTown_WandasHouse.inc
index d8aae2958..d8aae2958 100644
--- a/data/text/maps/VerdanturfTown_WandasHouse.s
+++ b/data/text/maps/VerdanturfTown_WandasHouse.inc
diff --git a/data/text/maps/VictoryRoad_1F.s b/data/text/maps/VictoryRoad_1F.inc
index 2f52e5cd4..2f52e5cd4 100644
--- a/data/text/maps/VictoryRoad_1F.s
+++ b/data/text/maps/VictoryRoad_1F.inc
diff --git a/data/text/maps/VictoryRoad_B1F.s b/data/text/maps/VictoryRoad_B1F.inc
index d820a5c31..d820a5c31 100644
--- a/data/text/maps/VictoryRoad_B1F.s
+++ b/data/text/maps/VictoryRoad_B1F.inc
diff --git a/data/text/maps/VictoryRoad_B2F.s b/data/text/maps/VictoryRoad_B2F.inc
index 760a732ff..760a732ff 100644
--- a/data/text/maps/VictoryRoad_B2F.s
+++ b/data/text/maps/VictoryRoad_B2F.inc
diff --git a/data/text/move_descriptions.s b/data/text/move_descriptions.inc
index 29e325ad7..29e325ad7 100644
--- a/data/text/move_descriptions.s
+++ b/data/text/move_descriptions.inc
diff --git a/data/text/move_names.s b/data/text/move_names.inc
index e4895646c..e4895646c 100644
--- a/data/text/move_names.s
+++ b/data/text/move_names.inc
diff --git a/data/text/mystery_event_club.s b/data/text/mystery_event_club.inc
index cfe8c4947..cfe8c4947 100644
--- a/data/text/mystery_event_club.s
+++ b/data/text/mystery_event_club.inc
diff --git a/data/text/nature_names.s b/data/text/nature_names.inc
index f191f80ba..f191f80ba 100644
--- a/data/text/nature_names.s
+++ b/data/text/nature_names.inc
diff --git a/data/text/pokeblocks.s b/data/text/pokeblocks.inc
index e73a74cc0..e73a74cc0 100644
--- a/data/text/pokeblocks.s
+++ b/data/text/pokeblocks.inc
diff --git a/data/text/pokedex_rating.s b/data/text/pokedex_rating.inc
index d816799b6..d816799b6 100644
--- a/data/text/pokedex_rating.s
+++ b/data/text/pokedex_rating.inc
diff --git a/data/text/ribbon_descriptions.s b/data/text/ribbon_descriptions.inc
index ebbfc34ff..ebbfc34ff 100644
--- a/data/text/ribbon_descriptions.s
+++ b/data/text/ribbon_descriptions.inc
diff --git a/data/text/roulette.s b/data/text/roulette.inc
index f228cf779..f228cf779 100644
--- a/data/text/roulette.s
+++ b/data/text/roulette.inc
diff --git a/data/text/safari_zone.s b/data/text/safari_zone.inc
index 34966b9d1..34966b9d1 100644
--- a/data/text/safari_zone.s
+++ b/data/text/safari_zone.inc
diff --git a/data/text/save.s b/data/text/save.inc
index c35432540..c35432540 100644
--- a/data/text/save.s
+++ b/data/text/save.inc
diff --git a/data/text/secret_power_tm.s b/data/text/secret_power_tm.inc
index 88e9bc2e8..88e9bc2e8 100644
--- a/data/text/secret_power_tm.s
+++ b/data/text/secret_power_tm.inc
diff --git a/data/text/shoal_cave.s b/data/text/shoal_cave.inc
index c786e1f4a..c786e1f4a 100644
--- a/data/text/shoal_cave.s
+++ b/data/text/shoal_cave.inc
diff --git a/data/text/song_names.s b/data/text/song_names.inc
index 29fad36e1..29fad36e1 100644
--- a/data/text/song_names.s
+++ b/data/text/song_names.inc
diff --git a/data/text/species_names.s b/data/text/species_names.inc
index 8a387eb38..8a387eb38 100644
--- a/data/text/species_names.s
+++ b/data/text/species_names.inc
diff --git a/data/text/storyteller.s b/data/text/storyteller.inc
index 3cfa8a698..3cfa8a698 100644
--- a/data/text/storyteller.s
+++ b/data/text/storyteller.inc
diff --git a/data/text/surf.s b/data/text/surf.inc
index e9e3e9026..e9e3e9026 100644
--- a/data/text/surf.s
+++ b/data/text/surf.inc
diff --git a/data/text/trader.s b/data/text/trader.inc
index dba63bcf8..dba63bcf8 100644
--- a/data/text/trader.s
+++ b/data/text/trader.inc
diff --git a/data/text/trainer_class_names.s b/data/text/trainer_class_names.inc
index 8678a29a6..8678a29a6 100644
--- a/data/text/trainer_class_names.s
+++ b/data/text/trainer_class_names.inc
diff --git a/data/text/trainer_eye_descriptions.s b/data/text/trainer_eye_descriptions.inc
index c0b3f2399..c0b3f2399 100644
--- a/data/text/trainer_eye_descriptions.s
+++ b/data/text/trainer_eye_descriptions.inc
diff --git a/data/text/trainers.s b/data/text/trainers.inc
index 1bdd5be29..1bdd5be29 100644
--- a/data/text/trainers.s
+++ b/data/text/trainers.inc
diff --git a/data/text/tv.s b/data/text/tv.inc
index d2cc1a6fa..d2cc1a6fa 100644
--- a/data/text/tv.s
+++ b/data/text/tv.inc
diff --git a/data/text/type_names.s b/data/text/type_names.inc
index 83e85e1e1..83e85e1e1 100644
--- a/data/text/type_names.s
+++ b/data/text/type_names.inc
diff --git a/data/tilesets/graphics.s b/data/tilesets/graphics.inc
index 17f59459b..17f59459b 100644
--- a/data/tilesets/graphics.s
+++ b/data/tilesets/graphics.inc
diff --git a/data/tilesets/headers.s b/data/tilesets/headers.inc
index 69e11ac20..69e11ac20 100644
--- a/data/tilesets/headers.s
+++ b/data/tilesets/headers.inc
diff --git a/data/tilesets/metatiles.s b/data/tilesets/metatiles.inc
index 6a13d3f72..6a13d3f72 100644
--- a/data/tilesets/metatiles.s
+++ b/data/tilesets/metatiles.inc
diff --git a/data/tm_hm_learnsets.s b/data/tm_hm_learnsets.inc
index be4522310..be4522310 100644
--- a/data/tm_hm_learnsets.s
+++ b/data/tm_hm_learnsets.inc
diff --git a/data/trainer_class_index_tables.s b/data/trainer_class_index_tables.inc
index 25762e510..25762e510 100644
--- a/data/trainer_class_index_tables.s
+++ b/data/trainer_class_index_tables.inc
diff --git a/data/trainer_eye_trainers.s b/data/trainer_eye_trainers.inc
index 3628ea598..3628ea598 100644
--- a/data/trainer_eye_trainers.s
+++ b/data/trainer_eye_trainers.inc
diff --git a/data/trainer_money.s b/data/trainer_money.inc
index 95da92fea..95da92fea 100644
--- a/data/trainer_money.s
+++ b/data/trainer_money.inc
diff --git a/data/trainer_parties.s b/data/trainer_parties.inc
index b9eff1839..b9eff1839 100644
--- a/data/trainer_parties.s
+++ b/data/trainer_parties.inc
diff --git a/data/trainers.s b/data/trainers.inc
index 8e80cd77f..8e80cd77f 100644
--- a/data/trainers.s
+++ b/data/trainers.inc
diff --git a/data/type_effectiveness.s b/data/type_effectiveness.inc
index d0272d9e9..d0272d9e9 100644
--- a/data/type_effectiveness.s
+++ b/data/type_effectiveness.inc
diff --git a/data/wild_mons.s b/data/wild_mons.inc
index b30bc847d..b30bc847d 100644
--- a/data/wild_mons.s
+++ b/data/wild_mons.inc
diff --git a/graphics/naming_screen/pc_icon/0.png b/graphics/naming_screen/pc_icon/0.png
new file mode 100644
index 000000000..bafd5c32d
--- /dev/null
+++ b/graphics/naming_screen/pc_icon/0.png
Binary files differ
diff --git a/graphics/naming_screen/pc_icon/1.png b/graphics/naming_screen/pc_icon/1.png
new file mode 100644
index 000000000..e2f9d604c
--- /dev/null
+++ b/graphics/naming_screen/pc_icon/1.png
Binary files differ
diff --git a/graphics/unknown_sprites/83CE588/0.png b/graphics/unknown_sprites/83CE588/0.png
deleted file mode 100644
index 7eebf1d83..000000000
--- a/graphics/unknown_sprites/83CE588/0.png
+++ /dev/null
Binary files differ
diff --git a/graphics/unknown_sprites/83CE588/1.png b/graphics/unknown_sprites/83CE588/1.png
deleted file mode 100644
index 04b360412..000000000
--- a/graphics/unknown_sprites/83CE588/1.png
+++ /dev/null
Binary files differ
diff --git a/include/abilities.h b/include/abilities.h
new file mode 100644
index 000000000..36a7ab671
--- /dev/null
+++ b/include/abilities.h
@@ -0,0 +1,86 @@
+#ifndef GUARD_ABILITIES_H
+#define GUARD_ABILITIES_H
+
+enum
+{
+ ABILITY_NONE,
+ ABILITY_STENCH,
+ ABILITY_DRIZZLE,
+ ABILITY_SPEED_BOOST,
+ ABILITY_BATTLE_ARMOR,
+ ABILITY_STURDY,
+ ABILITY_DAMP,
+ ABILITY_LIMBER,
+ ABILITY_SAND_VEIL,
+ ABILITY_STATIC,
+ ABILITY_VOLT_ABSORB,
+ ABILITY_WATER_ABSORB,
+ ABILITY_OBLIVIOUS,
+ ABILITY_CLOUD_NINE,
+ ABILITY_COMPOUND_EYES,
+ ABILITY_INSOMNIA,
+ ABILITY_COLOR_CHANGE,
+ ABILITY_IMMUNITY,
+ ABILITY_FLASH_FIRE,
+ ABILITY_SHIELD_DUST,
+ ABILITY_OWN_TEMPO,
+ ABILITY_SUCTION_CUPS,
+ ABILITY_INTIMIDATE,
+ ABILITY_SHADOW_TAG,
+ ABILITY_ROUGH_SKIN,
+ ABILITY_WONDER_GUARD,
+ ABILITY_LEVITATE,
+ ABILITY_EFFECT_SPORE,
+ ABILITY_SYNCHRONIZE,
+ ABILITY_CLEAR_BODY,
+ ABILITY_NATURAL_CURE,
+ ABILITY_LIGHTNING_ROD,
+ ABILITY_SERENE_GRACE,
+ ABILITY_SWIFT_SWIM,
+ ABILITY_CHLOROPHYLL,
+ ABILITY_ILLUMINATE,
+ ABILITY_TRACE,
+ ABILITY_HUGE_POWER,
+ ABILITY_POISON_POINT,
+ ABILITY_INNER_FOCUS,
+ ABILITY_MAGMA_ARMOR,
+ ABILITY_WATER_VEIL,
+ ABILITY_MAGNET_PULL,
+ ABILITY_SOUNDPROOF,
+ ABILITY_RAIN_DISH,
+ ABILITY_SAND_STREAM,
+ ABILITY_PRESSURE,
+ ABILITY_THICK_FAT,
+ ABILITY_EARLY_BIRD,
+ ABILITY_FLAME_BODY,
+ ABILITY_RUN_AWAY,
+ ABILITY_KEEN_EYE,
+ ABILITY_HYPER_CUTTER,
+ ABILITY_PICKUP,
+ ABILITY_TRUANT,
+ ABILITY_HUSTLE,
+ ABILITY_CUTE_CHARM,
+ ABILITY_PLUS,
+ ABILITY_MINUS,
+ ABILITY_FORECAST,
+ ABILITY_STICKY_HOLD,
+ ABILITY_SHED_SKIN,
+ ABILITY_GUTS,
+ ABILITY_MARVEL_SCALE,
+ ABILITY_LIQUID_OOZE,
+ ABILITY_OVERGROW,
+ ABILITY_BLAZE,
+ ABILITY_TORRENT,
+ ABILITY_SWARM,
+ ABILITY_ROCK_HEAD,
+ ABILITY_DROUGHT,
+ ABILITY_ARENA_TRAP,
+ ABILITY_VITAL_SPIRIT,
+ ABILITY_WHITE_SMOKE,
+ ABILITY_PURE_POWER,
+ ABILITY_SHELL_ARMOR,
+ ABILITY_CACOPHONY,
+ ABILITY_AIR_LOCK
+};
+
+#endif // GUARD_ABILITIES_H
diff --git a/include/battle.h b/include/battle.h
new file mode 100644
index 000000000..06daeb081
--- /dev/null
+++ b/include/battle.h
@@ -0,0 +1,19 @@
+#ifndef GUARD_BATTLE_H
+#define GUARD_BATTLE_H
+
+struct Trainer
+{
+ /*0x00*/ u8 partyFlags;
+ /*0x01*/ u8 trainerClass;
+ /*0x02*/ u8 encounterMusic:7;
+ /*0x02*/ u8 gender:1;
+ /*0x03*/ u8 trainerPic;
+ /*0x04*/ u8 trainerName[12];
+ /*0x10*/ u16 items[4];
+ /*0x18*/ bool8 doubleBattle;
+ /*0x1C*/ u32 aiFlags;
+ /*0x20*/ u8 partySize;
+ /*0x24*/ void *party;
+};
+
+#endif // GUARD_BATTLE_H
diff --git a/include/fieldmap.h b/include/fieldmap.h
index 44f31d5a4..16a80955a 100644
--- a/include/fieldmap.h
+++ b/include/fieldmap.h
@@ -112,7 +112,7 @@ struct MapHeader
u8 name;
u8 cave;
u8 weather;
- u8 light;
+ /* 0x17 */ u8 light;
u8 filler_18;
u8 escapeRope;
u8 flags;
@@ -165,14 +165,78 @@ struct MapObject
/*0x0C*/ struct Coords16 coords1;
/*0x10*/ struct Coords16 coords2;
/*0x14*/ struct Coords16 coords3;
- /*0x18*/ u8 mapobj_unk_18;
+ /*0x18*/ u8 mapobj_unk_18:4;
+ /*0x18*/ u8 placeholder18:4;
/*0x19*/ u8 mapobj_unk_19;
/*0x1A*/ u8 mapobj_unk_1A;
/*0x1B*/ u8 mapobj_unk_1B;
/*0x1C*/ u8 mapobj_unk_1C;
/*0x1D*/ u8 trainerRange_berryTreeId;
/*0x1E*/ u8 mapobj_unk_1E;
- /*0x1E*/ u8 mapobj_unk_1F;
+ /*0x1F*/ u8 mapobj_unk_1F;
+ /*0x20*/ u8 mapobj_unk_20;
+ /*0x21*/ u8 mapobj_unk_21;
+ /*0x22*/ u8 mapobj_unk_22;
+ /*size = 0x24*/
+};
+
+// THIS IS NEEDED TO MAKE TRAINER_SEE.C MATCH, PLEASE DO NOT REMOVE UNLESS YOU FIX CHECKPATHBETWEENTRAINERANDPLAYER
+struct MapObject2
+{
+ /*0x00*/ u32 active:1;
+ u32 mapobj_bit_1:1;
+ u32 mapobj_bit_2:1;
+ u32 mapobj_bit_3:1;
+ u32 mapobj_bit_4:1;
+ u32 mapobj_bit_5:1;
+ u32 mapobj_bit_6:1;
+ u32 mapobj_bit_7:1;
+ /*0x01*/ u32 mapobj_bit_8:1;
+ u32 mapobj_bit_9:1;
+ u32 mapobj_bit_10:1;
+ u32 mapobj_bit_11:1;
+ u32 mapobj_bit_12:1;
+ u32 mapobj_bit_13:1;
+ u32 mapobj_bit_14:1;
+ u32 mapobj_bit_15:1;
+ /*0x02*/ u32 mapobj_bit_16:1;
+ u32 mapobj_bit_17:1;
+ u32 mapobj_bit_18:1;
+ u32 mapobj_bit_19:1;
+ u32 mapobj_bit_20:1;
+ u32 mapobj_bit_21:1;
+ u32 mapobj_bit_22:1;
+ u32 mapobj_bit_23:1;
+ /*0x03*/ u32 mapobj_bit_24:1;
+ u32 mapobj_bit_25:1;
+ u32 mapobj_bit_26:1;
+ u32 mapobj_bit_27:1;
+ u32 mapobj_bit_28:1;
+ u32 mapobj_bit_29:1;
+ u32 mapobj_bit_30:1;
+ u32 mapobj_bit_31:1;
+ /*0x04*/ u8 spriteId;
+ /*0x05*/ u8 graphicsId;
+ /*0x06*/ u8 animPattern;
+ /*0x07*/ u8 trainerType;
+ /*0x08*/ u8 localId;
+ /*0x09*/ u8 mapNum;
+ /*0x0A*/ u8 mapGroup;
+ /*0x0B*/ u8 mapobj_unk_0B_0:4;
+ u8 elevation:4;
+ /*0x0C*/ struct Coords16 coords1;
+ /*0x10*/ struct Coords16 coords2;
+ /*0x14*/ struct Coords16 coords3;
+ /*0x18*/ u8 mapobj_unk_18:4;
+ /*0x18*/ u8 placeholder18:4;
+ /*0x19*/ u8 mapobj_unk_19:4;
+ /*0x19*/ u8 mapobj_unk_19b:4;
+ /*0x1A*/ u8 mapobj_unk_1A;
+ /*0x1B*/ u8 mapobj_unk_1B;
+ /*0x1C*/ u8 mapobj_unk_1C;
+ /*0x1D*/ u8 trainerRange_berryTreeId;
+ /*0x1E*/ u8 mapobj_unk_1E;
+ /*0x1F*/ u8 mapobj_unk_1F;
/*0x20*/ u8 mapobj_unk_20;
/*0x21*/ u8 mapobj_unk_21;
/*size = 0x24*/
@@ -198,14 +262,25 @@ struct MapObjectGraphicsInfo
union AffineAnimCmd **affineAnims;
};
+#define PLAYER_AVATAR_FLAG_0 (1 << 0)
+#define PLAYER_AVATAR_FLAG_1 (1 << 1)
+#define PLAYER_AVATAR_FLAG_2 (1 << 2)
+#define PLAYER_AVATAR_FLAG_3 (1 << 3)
+#define PLAYER_AVATAR_FLAG_4 (1 << 4)
+#define PLAYER_AVATAR_FLAG_5 (1 << 5)
+#define PLAYER_AVATAR_FLAG_6 (1 << 6)
+#define PLAYER_AVATAR_FLAG_7 (1 << 7)
+
struct PlayerAvatar
{
- u8 bitfield;
- u8 bike;
- u8 running2;
- u8 running1;
- u8 spriteId;
- u8 mapObjectId;
+ /*0x00*/ u8 flags;
+ /*0x01*/ u8 bike;
+ /*0x02*/ u8 running2;
+ /*0x03*/ u8 running1;
+ /*0x04*/ u8 spriteId;
+ /*0x05*/ u8 mapObjectId;
+ /*0x06*/ u8 unk6;
+ /*0x07*/ u8 gender;
// TODO: rest of struct
};
diff --git a/include/flag.h b/include/flag.h
new file mode 100644
index 000000000..8f4c01b02
--- /dev/null
+++ b/include/flag.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_FLAG_H
+#define GUARD_FLAG_H
+
+#include "flags.h"
+
+u8 *GetFlagPointer(u16 id);
+u8 FlagSet(u16 id);
+u8 FlagReset(u16 id);
+bool8 FlagGet(u16 id);
+
+#endif // GUARD_FLAG_H
diff --git a/include/flags.h b/include/flags.h
new file mode 100644
index 000000000..e2b14b16b
--- /dev/null
+++ b/include/flags.h
@@ -0,0 +1,41 @@
+#ifndef GUARD_FLAGS_H
+#define GUARD_FLAGS_H
+
+#define TRAINER_FLAG_START 0x500
+
+// SYSTEM FLAGS
+
+#define SYS_POKEMON_GET 0x800
+#define SYS_POKEDEX_GET 0x801
+#define SYS_POKENAV_GET 0x802
+
+// badges
+#define BADGE01_GET 0x807
+#define BADGE02_GET 0x808
+#define BADGE03_GET 0x809
+#define BADGE04_GET 0x80A
+#define BADGE05_GET 0x80B
+#define BADGE06_GET 0x80C
+#define BADGE07_GET 0x80D
+#define BADGE08_GET 0x80E
+
+#define SYS_USE_FLASH 0x828
+#define SYS_USE_STRENGTH 0x829
+#define SYS_WEATHER_CTRL 0x82A
+#define SYS_CYCLING_ROAD 0x82B
+#define SYS_SAFARI_MODE 0x82C
+#define SYS_CRUISE_MODE 0x82D
+
+#define SYS_POPWORD_INPUT 0x833
+#define SYS_MIX_RECORD 0x834
+
+#define SYS_RIBBON_GET 0x83B
+
+#define SYS_ENC_UP_ITEM 0x84D
+#define SYS_ENC_DOWN_ITEM 0x84E
+
+// SPECIAL FLAGS (unknown purpose)
+
+#define SPECIAL_FLAG_1 0x4001
+
+#endif // GUARD_FLAGS_H
diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h
index 84b448243..f5d44de99 100644
--- a/include/gba/m4a_internal.h
+++ b/include/gba/m4a_internal.h
@@ -365,7 +365,7 @@ extern const u8 gNoiseTable[];
extern const struct PokemonCrySong gPokemonCrySongTemplate;
-extern const struct ToneData voicegroup_842FC88;
+extern const struct ToneData voicegroup_pokemon_cry;
extern char gNumMusicPlayers[];
extern char gMaxLines[];
diff --git a/include/gba/syscall.h b/include/gba/syscall.h
index 3f41abba1..9576f7e99 100644
--- a/include/gba/syscall.h
+++ b/include/gba/syscall.h
@@ -17,6 +17,10 @@ void RegisterRamReset(u32 resetFlags);
void VBlankIntrWait(void);
+u16 Sqrt(u32 num);
+
+u16 ArcTan2(s16 x, s16 y);
+
#define CPU_SET_SRC_FIXED 0x01000000
#define CPU_SET_16BIT 0x00000000
#define CPU_SET_32BIT 0x04000000
@@ -29,4 +33,12 @@ void CpuFastSet(const void *src, void *dest, u32 control);
void ObjAffineSet(struct ObjAffineSrcData *src, void *dest, s32 count, s32 offset);
+void LZ77UnCompWram(const void *src, void *dest);
+
+void LZ77UnCompVram(const void *src, void *dest);
+
+void RLUnCompWram(const void *src, void *dest);
+
+void RLUnCompVram(const void *src, void *dest);
+
#endif // GUARD_GBA_SYSCALL_H
diff --git a/include/global.h b/include/global.h
index 1691b7776..b1bfa25ad 100644
--- a/include/global.h
+++ b/include/global.h
@@ -110,7 +110,7 @@ struct WarpData
struct ItemSlot
{
u16 itemId;
- u8 quantity;
+ u16 quantity;
};
struct Pokeblock
@@ -160,6 +160,15 @@ struct SB1_2EFC_Struct
u8 unknown[0x20];
};
+struct EasyChatPair
+{
+ u16 unk0_0:7;
+ u16 unk0_7:7;
+ u16 unk1_6:1;
+ u16 unk2;
+ u16 words[2];
+}; /*size = 0x8*/
+
struct SaveBlock1
{
/*0x00*/ struct Coords16 pos;
@@ -173,25 +182,25 @@ struct SaveBlock1
/*0x2F*/ u8 filler_2F;
/*0x30*/ u8 flashUsed;
/*0x32*/ u16 mapDataId;
- u16 mapView[0x100];
- u8 playerPartyCount;
- struct Pokemon playerParty[6];
- u32 money;
- u16 coins;
- u16 registeredItem; // registered for use with SELECT button
- struct ItemSlot pcItems[50];
- struct ItemSlot bagPocket_Items[20];
- struct ItemSlot bagPocket_KeyItems[20];
- struct ItemSlot bagPocket_PokeBalls[16];
- struct ItemSlot bagPocket_TMHM[64];
- struct ItemSlot bagPocket_Berries[46];
- struct Pokeblock pokeblocks[40];
- u8 unk938[52]; // pokedex related
- u16 berryBlenderRecords[3];
- u8 filler_972[0x6];
- u16 trainerRematchStepCounter;
- u8 trainerRematches[100];
- struct MapObject mapObjects[16];
+ /*0x34*/ u16 mapView[0x100];
+ /*0x234*/ u8 playerPartyCount;
+ /*0x238*/ struct Pokemon playerParty[6];
+ /*0x490*/ u32 money;
+ /*0x494*/ u16 coins;
+ /*0x496*/ u16 registeredItem; // registered for use with SELECT button
+ /*0x498*/ struct ItemSlot pcItems[50];
+ /*0x560*/ struct ItemSlot bagPocket_Items[20];
+ /*0x5B0*/ struct ItemSlot bagPocket_KeyItems[20];
+ /*0x600*/ struct ItemSlot bagPocket_PokeBalls[16];
+ /*0x640*/ struct ItemSlot bagPocket_TMHM[64];
+ /*0x740*/ struct ItemSlot bagPocket_Berries[46];
+ /*0x7F8*/ struct Pokeblock pokeblocks[40];
+ /*0x938*/ u8 unk938[52]; // pokedex related
+ /*0x96C*/ u16 berryBlenderRecords[3];
+ /*0x972*/ u8 filler_972[0x6];
+ /*0x978*/ u16 trainerRematchStepCounter;
+ /*0x97A*/ u8 trainerRematches[100];
+ /*0x9E0*/ struct MapObject mapObjects[16];
/*0xC20*/ struct MapObjectTemplate mapObjectTemplates[64];
/*0x1220*/ u8 flags[0x120];
/*0x1340*/ u16 vars[0x100];
@@ -200,16 +209,16 @@ struct SaveBlock1
/*0x1A08*/ struct SecretBaseRecord secretBases[20];
/*0x2688*/ u8 playerRoomDecor[12];
/*0x2694*/ u8 playerRoomDecorPos[12];
- u8 decorDesk[10];
- u8 decorChair[10];
- u8 decorPlant[10];
- u8 decorOrnament[30];
- u8 decorMat[30];
- u8 decorPoster[10];
- u8 decorDoll[40];
- u8 decorCushion[10];
- u8 padding_2736[2];
- u8 tvShows[24][36]; // TODO: TV show struct
+ /*0x26A0*/ u8 decorDesk[10];
+ /*0x26AA*/ u8 decorChair[10];
+ /*0x26B4*/ u8 decorPlant[10];
+ /*0x26BE*/ u8 decorOrnament[30];
+ /*0x26DC*/ u8 decorMat[30];
+ /*0x26FA*/ u8 decorPoster[10];
+ /*0x2704*/ u8 decorDoll[40];
+ /*0x272C*/ u8 decorCushion[10];
+ /*0x2736*/ u8 padding_2736[2];
+ /*0x2738*/ u8 tvShows[24][36]; // TODO: TV show struct
/*0x2A98*/ u8 filler_2A98[0x64];
/*0x2AFC*/ u16 outbreakPokemonSpecies;
/*0x2AFE*/ u8 outbreakLocationMapNum;
@@ -219,17 +228,23 @@ struct SaveBlock1
/*0x2B04*/ u16 outbreakPokemonMoves[4];
/*0x2B0C*/ u8 unk2B0C;
/*0x2B0D*/ u8 outbreakPokemonProbability;
- /*0x2B0E*/ u8 filler_2B0E[0x2C8];
- /*0x2DD6*/ u16 feebasLocationSeed;
- /*0x2DD8*/ u8 filler_2DD8[0x124];
- struct SB1_2EFC_Struct sb1_2EFC_struct[5];
- u8 filler_2F9C[0x1A8];
+ /*0x2B0E*/ u8 filler_2B0E[0x2C6];
+ /*0x2DD4*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff
+ /*0x2DFC*/ u8 filler_2DFC[0x100];
+ /*0x2EFC*/ struct SB1_2EFC_Struct sb1_2EFC_struct[5];
+ /*0x2F9C*/ u8 filler_2F9C[0xA0];
+ /*0x303C*/ u8 filler_303C[0x38];
+ /*0x3074*/ u8 filler_3074[0x42];
+ /*0x30B6*/ u8 filler_30B6;
+ /*0x30B7*/ u8 filler_30B7[0x59];
+ /*0x3110*/ u8 giftRibbons[7];
+ /*0x3117*/ u8 filler_311B[0x2D];
/*0x3144*/ struct Roamer roamer;
/*0x3158*/ u8 filler_3158[0x8];
- struct EnigmaBerry enigmaBerry;
- struct RamScript ramScript;
- u8 filler_3A7C[0x10];
- u8 unk3A8C[52]; //pokedex related
+ /*0x3160*/ struct EnigmaBerry enigmaBerry;
+ /*0x3690*/ struct RamScript ramScript;
+ /*0x3A7C*/ u8 filler_3A7C[0x10];
+ /*0x3A8C*/ u8 unk3A8C[52]; //pokedex related
};
extern struct SaveBlock1 gSaveBlock1;
diff --git a/include/link.h b/include/link.h
index f857b6d19..550102fb9 100644
--- a/include/link.h
+++ b/include/link.h
@@ -154,7 +154,7 @@ u8 bitmask_all_link_players_but_self(void);
bool8 SendBlock(u8, void *, u16);
bool8 sub_8007E9C(u8);
bool8 sub_8007ECC(void);
-u8 GetBlockRecievedStatus(void);
+u8 GetBlockReceivedStatus(void);
void ResetBlockReceivedFlags(void);
void ResetBlockReceivedFlag(u8);
void sub_8007F4C(void);
diff --git a/include/pokemon.h b/include/pokemon.h
index 43ff1b500..450a8174f 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -242,80 +242,72 @@ struct UnknownPokemonStruct
struct BattlePokemon
{
- u16 species;
- u16 attack;
- u16 defense;
- u16 speed;
- u16 spAttack;
- u16 spDefense;
- u16 moves[4];
- u32 hpIV:5;
- u32 attackIV:5;
- u32 defenseIV:5;
- u32 speedIV:5;
- u32 spAttackIV:5;
- u32 spDefenseIV:5;
- u32 isEgg:1;
- u32 altAbility:1;
- s8 statStages[8];
- u8 ability;
- u8 type1, type2;
- u8 unknown;
- u8 pp[4];
- u16 hp;
- u8 level;
- u8 friendship;
- u16 maxHP;
- u16 item;
- u8 nickname[POKEMON_NAME_LENGTH + 1];
- u8 ppBonuses;
- u8 otName[8];
- u32 experience;
- u32 personality;
- u32 status1;
- u32 status2;
- u32 otId;
+ /* 0x00 */ u16 species;
+ /* 0x02 */ u16 attack;
+ /* 0x04 */ u16 defense;
+ /* 0x06 */ u16 speed;
+ /* 0x08 */ u16 spAttack;
+ /* 0x0A */ u16 spDefense;
+ /* 0x0C */ u16 moves[4];
+ /* 0x14 */ u32 hpIV:5;
+ /* 0x14 */ u32 attackIV:5;
+ /* 0x15 */ u32 defenseIV:5;
+ /* 0x15 */ u32 speedIV:5;
+ /* 0x16 */ u32 spAttackIV:5;
+ /* 0x17 */ u32 spDefenseIV:5;
+ /* 0x17 */ u32 isEgg:1;
+ /* 0x17 */ u32 altAbility:1;
+ /* 0x18 */ s8 statStages[8];
+ /* 0x20 */ u8 ability;
+ /* 0x21 */ u8 type1;
+ /* 0x22 */ u8 type2;
+ /* 0x23 */ u8 unknown;
+ /* 0x24 */ u8 pp[4];
+ /* 0x28 */ u16 hp;
+ /* 0x2A */ u8 level;
+ /* 0x2B */ u8 friendship;
+ /* 0x2C */ u16 maxHP;
+ /* 0x2E */ u16 item;
+ /* 0x30 */ u8 nickname[POKEMON_NAME_LENGTH + 1];
+ /* 0x3B */ u8 ppBonuses;
+ /* 0x3C */ u8 otName[8];
+ /* 0x44 */ u32 experience;
+ /* 0x48 */ u32 personality;
+ /* 0x4C */ u32 status1;
+ /* 0x50 */ u32 status2;
+ /* 0x54 */ u32 otId;
};
struct BaseStats
{
- u8 baseHP;
- u8 baseAttack;
- u8 baseDefense;
- u8 baseSpeed;
- u8 baseSpAttack;
- u8 baseSpDefense;
-
- u8 type1, type2;
-
- u8 catchRate;
-
- u8 expYield;
-
- u16 evYield_HP:2;
- u16 evYield_Attack:2;
- u16 evYield_Defense:2;
- u16 evYield_Speed:2;
- u16 evYield_SpAttack:2;
- u16 evYield_SpDefense:2;
-
- u16 item1, item2;
-
- u8 genderRatio;
-
- u8 eggCycles;
-
- u8 friendship;
-
- u8 growthRate;
-
- u8 eggGroup1, eggGroup2;
-
- u8 ability1, ability2;
-
- u8 safariZoneFleeRate;
-
- u8 bodyColor;
+ /* 0x00 */ u8 baseHP;
+ /* 0x01 */ u8 baseAttack;
+ /* 0x02 */ u8 baseDefense;
+ /* 0x03 */ u8 baseSpeed;
+ /* 0x04 */ u8 baseSpAttack;
+ /* 0x05 */ u8 baseSpDefense;
+ /* 0x06 */ u8 type1;
+ /* 0x07 */ u8 type2;
+ /* 0x08 */ u8 catchRate;
+ /* 0x09 */ u8 expYield;
+ /* 0x0A */ u16 evYield_HP:2;
+ /* 0x0A */ u16 evYield_Attack:2;
+ /* 0x0A */ u16 evYield_Defense:2;
+ /* 0x0A */ u16 evYield_Speed:2;
+ /* 0x0B */ u16 evYield_SpAttack:2;
+ /* 0x0B */ u16 evYield_SpDefense:2;
+ /* 0x0C */ u16 item1;
+ /* 0x0E */ u16 item2;
+ /* 0x10 */ u8 genderRatio;
+ /* 0x11 */ u8 eggCycles;
+ /* 0x12 */ u8 friendship;
+ /* 0x13 */ u8 growthRate;
+ /* 0x14 */ u8 eggGroup1;
+ /* 0x15 */ u8 eggGroup2;
+ /* 0x16 */ u8 ability1;
+ /* 0x17 */ u8 ability2;
+ /* 0x18 */ u8 safariZoneFleeRate;
+ /* 0x19 */ u8 bodyColor;
};
struct BattleMove
@@ -337,6 +329,9 @@ struct PokemonStorage
struct BoxPokemon boxes[14][30];
};
+extern struct Pokemon gPlayerParty[6];
+extern struct Pokemon gEnemyParty[6];
+
void ZeroBoxMonData(struct BoxPokemon *boxMon);
void ZeroMonData(struct Pokemon *mon);
void ZeroPlayerPartyMons(void);
diff --git a/include/sprite.h b/include/sprite.h
index 288b88518..2da099d59 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -193,7 +193,7 @@ extern struct Sprite gSprites[];
void ResetSpriteData(void);
void AnimateSprites(void);
void BuildOamBuffer(void);
-u8 CreateSprite(struct SpriteTemplate *template, u16 x, u16 y, u8 subpriority);
+u8 CreateSprite(struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
u8 CreateSpriteAtEnd(struct SpriteTemplate *template, u16 x, u16 y, u8 subpriority);
u8 CreateInvisibleSprite(void (*callback)(struct Sprite *));
u8 CreateSpriteAndAnimate(struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority);
diff --git a/include/trainer.h b/include/trainer.h
new file mode 100644
index 000000000..232cde608
--- /dev/null
+++ b/include/trainer.h
@@ -0,0 +1,19 @@
+#ifndef GUARD_TRAINER_H
+#define GUARD_TRAINER_H
+
+#define TRAINER_ENCOUNTER_MUSIC_MALE 0 // standard male encounter music
+#define TRAINER_ENCOUNTER_MUSIC_FEMALE 1 // standard female encounter music
+#define TRAINER_ENCOUNTER_MUSIC_GIRL 2 // used for male Tubers and Young Couples too
+#define TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS 3
+#define TRAINER_ENCOUNTER_MUSIC_INTENSE 4
+#define TRAINER_ENCOUNTER_MUSIC_COOL 5
+#define TRAINER_ENCOUNTER_MUSIC_AQUA 6
+#define TRAINER_ENCOUNTER_MUSIC_MAGMA 7
+#define TRAINER_ENCOUNTER_MUSIC_SWIMMER 8
+#define TRAINER_ENCOUNTER_MUSIC_TWINS 9 // used for other trainer classes too
+#define TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR 10
+#define TRAINER_ENCOUNTER_MUSIC_HIKER 11 // used for other trainer classes too
+#define TRAINER_ENCOUNTER_MUSIC_INTERVIEWER 12
+#define TRAINER_ENCOUNTER_MUSIC_RICH 13 // Rich Boys and Gentlemen
+
+#endif // GUARD_TRAINER_H
diff --git a/include/var.h b/include/var.h
new file mode 100644
index 000000000..c76b8c411
--- /dev/null
+++ b/include/var.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_VAR_H
+#define GUARD_VAR_H
+
+#include "vars.h"
+
+u16 *GetVarPointer(u16 id);
+u16 VarGet(u16 id);
+bool8 VarSet(u16 id, u16 value);
+u8 VarGetFieldObjectGraphicsId(u8 id);
+
+#endif // GUARD_VAR_H
diff --git a/include/vars.h b/include/vars.h
new file mode 100644
index 000000000..db6f097b7
--- /dev/null
+++ b/include/vars.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_VARS_H
+#define GUARD_VARS_H
+
+#define VAR_REPEL_STEP_COUNT 0x4021
+
+#endif // GUARD_VARS_H
diff --git a/ld_script.txt b/ld_script.txt
index a30c3382d..f410daf32 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -47,6 +47,8 @@ SECTIONS {
src/rtc.o(.text);
src/main_menu.o(.text);
asm/rom3.o(.text);
+ src/decompress.o(.text);
+ asm/rom_800D42C.o(.text);
src/pokemon_1.o(.text);
asm/calculate_base_damage.o(.text);
src/pokemon_2.o(.text);
@@ -66,9 +68,9 @@ SECTIONS {
src/rom4.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);
+ src/field_camera.o(.text);
+ src/field_door.o(.text);
+ src/field_player_avatar.o(.text);
asm/field_map_obj.o(.text);
asm/field_ground_effect.o(.text);
src/map_obj_80643A4.o(.text);
@@ -81,27 +83,28 @@ SECTIONS {
src/var.o(.text);
src/flag.o(.text);
asm/rom_806936C.o(.text);
+ asm/reset_rtc_screen.o(.text);
asm/party_menu.o(.text);
asm/rom_806D7F8.o(.text);
src/start_menu.o(.text);
src/menu.o(.text);
- asm/tileset.o(.text);
+ src/tileset_anim.o(.text);
src/palette.o(.text);
src/sound.o(.text);
asm/rom_8074BAC.o(.text);
src/task.o(.text);
asm/rom5.o(.text);
- asm/title_screen.o(.text);
+ src/title_screen.o(.text);
src/weather.o(.text);
asm/weather.o(.text);
asm/rom_8080874.o(.text);
- asm/battle_setup.o(.text);
+ src/battle_setup.o(.text);
asm/cable_club.o(.text);
- asm/mori_debug_menu.o(.text);
- asm/trainer_see.o(.text);
+ src/mori_debug_menu.o(.text);
+ src/trainer_see.o(.text);
src/fldeff_emotion.o(.text);
src/wild_encounter.o(.text);
- asm/field_effect.o(.text);
+ src/field_effect.o(.text);
asm/rom_80859BC.o(.text);
src/option_menu.o(.text);
src/pokedex.o(.text);
@@ -111,7 +114,7 @@ SECTIONS {
asm/rom_8094928.o(.text);
asm/item_menu.o(.text);
asm/battle_anim_80A7E7C.o(.text);
- asm/item.o(.text);
+ src/item.o(.text);
asm/matuda_debug_menu.o(.text);
asm/contest.o(.text);
asm/shop.o(.text);
@@ -120,19 +123,20 @@ SECTIONS {
asm/naming_screen.o(.text);
asm/money.o(.text);
asm/contest_effect.o(.text);
+ src/record_mixing.o(.text);
asm/record_mixing.o(.text);
asm/sound_check_menu.o(.text);
asm/secret_base.o(.text);
asm/tv.o(.text);
asm/contest_link_80C2020.o(.text);
asm/script_pokemon_util_80C4BF0.o(.text);
- asm/field_poison.o(.text);
- asm/big_shroomish_barboach.o(.text);
+ src/field_poison.o(.text);
+ src/pokemon_size_record.o(.text);
asm/fldeff_80C5CD4.o(.text);
- asm/truck_scene.o(.text);
+ src/truck_scene.o(.text);
asm/porthole.o(.text);
asm/rotating_gate.o(.text);
- asm/safari_zone.o(.text);
+ src/safari_zone.o(.text);
asm/contest_link_80C857C.o(.text);
asm/item_use.o(.text);
asm/battle_anim_80CA710.o(.text);
@@ -144,13 +148,14 @@ SECTIONS {
asm/mail.o(.text);
asm/menu_helpers.o(.text);
asm/script_pokemon_util_80F99CC.o(.text);
- asm/dewford_trend.o(.text);
- asm/heal_location.o(.text);
+ src/dewford_trend.o(.text);
+ src/heal_location.o(.text);
asm/region_map.o(.text);
asm/cute_sketch.o(.text);
asm/decoration.o(.text);
asm/slot_machine.o(.text);
asm/contest_painting.o(.text);
+ src/battle_ai.o(.text);
asm/battle_ai.o(.text);
asm/trader.o(.text);
src/starter_choose.o(.text);
@@ -161,8 +166,8 @@ SECTIONS {
asm/evolution_scene.o(.text);
asm/roulette.o(.text);
asm/pokedex_cry_screen.o(.text);
- asm/coins.o(.text);
- asm/landmark.o(.text);
+ src/coins.o(.text);
+ src/landmark.o(.text);
asm/fldeff_strength.o(.text);
asm/battle_transition.o(.text);
asm/battle_811DA74.o(.text);
@@ -188,7 +193,7 @@ SECTIONS {
asm/rom_81473B8.o(.text);
src/clear_save_data_menu.o(.text);
asm/rom_8148B8C.o(.text);
- asm/menu_cursor.o(.text);
+ src/menu_cursor.o(.text);
} =0
script_data :
@@ -669,7 +674,7 @@ SECTIONS {
sound/songs/bgm_battle35.o(.rodata);
sound/songs/bgm_battle38.o(.rodata);
sound/songs/bgm_battle30.o(.rodata);
- sound/songs/song_467.o(.rodata);
+ sound/songs/bgm_radio_tower_occupied.o(.rodata);
} =0
lib_rodata :
diff --git a/shared_syms.txt b/shared_syms.txt
index 38b13e8fd..b85cd1f76 100644
--- a/shared_syms.txt
+++ b/shared_syms.txt
@@ -1,10 +1,25 @@
unk_2000000 = 0x2000000;
+ewram = 0x2000000;
+
unk_2004000 = 0x2004000;
+unk_2007800 = 0x2007800;
+unk_2007900 = 0x2007900;
+
+unk_2008000 = 0x2008000;
+
+unk_2016000 = 0x2016000;
+
unk_20160BC = 0x20160BC;
+unk_2016800 = 0x2016800;
+unk_2016A00 = 0x2016A00;
+unk_2016C00 = 0x2016C00;
+
gSecretBaseRecord = 0x2017000;
dword_2017100 = 0x2017100;
+unk_2018000 = 0x2018000;
+
gHallOfFame = 0x201E000;
diff --git a/sound/direct_sound_data.s b/sound/direct_sound_data.inc
index 71e92f9ee..71e92f9ee 100644
--- a/sound/direct_sound_data.s
+++ b/sound/direct_sound_data.inc
diff --git a/sound/keysplit_tables.s b/sound/keysplit_tables.inc
index 1dabf3c55..1dabf3c55 100644
--- a/sound/keysplit_tables.s
+++ b/sound/keysplit_tables.inc
diff --git a/sound/music_player_table.s b/sound/music_player_table.inc
index eadcfc90a..eadcfc90a 100644
--- a/sound/music_player_table.s
+++ b/sound/music_player_table.inc
diff --git a/sound/programmable_wave_data.s b/sound/programmable_wave_data.inc
index 7a60ed5a7..7a60ed5a7 100644
--- a/sound/programmable_wave_data.s
+++ b/sound/programmable_wave_data.inc
diff --git a/sound/song_table.s b/sound/song_table.inc
index 14f811b08..ac2e3b494 100644
--- a/sound/song_table.s
+++ b/sound/song_table.inc
@@ -467,7 +467,7 @@ gSongTable:: @ 845548C
song bgm_battle35, 0, 0
song bgm_battle38, 0, 0
song bgm_battle30, 0, 0
- song song_467, 0, 0
+ song bgm_radio_tower_occupied, 0, 0
.align 2
dummy_song_header: @ 845632C
diff --git a/sound/songs/bgm_field13.s b/sound/songs/bgm_field13.s
index 6afab36e3..2b6b8383a 100644
--- a/sound/songs/bgm_field13.s
+++ b/sound/songs/bgm_field13.s
@@ -1,6 +1,6 @@
.include "MPlayDef.s"
- .equ bgm_field13_grp, voicegroup_842FC88
+ .equ bgm_field13_grp, voicegroup_pokemon_cry
.equ bgm_field13_pri, 0
.equ bgm_field13_rev, reverb_set+50
.equ bgm_field13_mvl, 127
diff --git a/sound/songs/bgm_nibi.s b/sound/songs/bgm_nibi.s
index af7b666fe..9520d02a6 100644
--- a/sound/songs/bgm_nibi.s
+++ b/sound/songs/bgm_nibi.s
@@ -1,6 +1,6 @@
.include "MPlayDef.s"
- .equ bgm_nibi_grp, voicegroup_842FC88
+ .equ bgm_nibi_grp, voicegroup_pokemon_cry
.equ bgm_nibi_pri, 0
.equ bgm_nibi_rev, reverb_set+50
.equ bgm_nibi_mvl, 127
diff --git a/sound/songs/bgm_pcc.s b/sound/songs/bgm_pcc.s
index c9c8a96fd..a6e76660f 100644
--- a/sound/songs/bgm_pcc.s
+++ b/sound/songs/bgm_pcc.s
@@ -1,6 +1,6 @@
.include "MPlayDef.s"
- .equ bgm_pcc_grp, voicegroup_842FC88
+ .equ bgm_pcc_grp, voicegroup_pokemon_cry
.equ bgm_pcc_pri, 0
.equ bgm_pcc_rev, reverb_set+50
.equ bgm_pcc_mvl, 127
diff --git a/sound/songs/song_467.s b/sound/songs/bgm_radio_tower_occupied.s
index bab764a8a..29ea26185 100644
--- a/sound/songs/song_467.s
+++ b/sound/songs/bgm_radio_tower_occupied.s
@@ -1,31 +1,31 @@
.include "MPlayDef.s"
- .equ song_467_grp, voicegroup_8454C54
- .equ song_467_pri, 0
- .equ song_467_rev, reverb_set+50
- .equ song_467_mvl, 127
- .equ song_467_key, 0
- .equ song_467_tbs, 1
- .equ song_467_exg, 0
- .equ song_467_cmp, 1
+ .equ bgm_radio_tower_occupied_grp, voicegroup_8454C54
+ .equ bgm_radio_tower_occupied_pri, 0
+ .equ bgm_radio_tower_occupied_rev, reverb_set+50
+ .equ bgm_radio_tower_occupied_mvl, 127
+ .equ bgm_radio_tower_occupied_key, 0
+ .equ bgm_radio_tower_occupied_tbs, 1
+ .equ bgm_radio_tower_occupied_exg, 0
+ .equ bgm_radio_tower_occupied_cmp, 1
.section .rodata
- .global song_467
+ .global bgm_radio_tower_occupied
.align 2
@********************** Track 1 **********************@
-song_467_1:
- .byte KEYSH , song_467_key+0
- .byte TEMPO , 152*song_467_tbs/2
+bgm_radio_tower_occupied_1:
+ .byte KEYSH , bgm_radio_tower_occupied_key+0
+ .byte TEMPO , 152*bgm_radio_tower_occupied_tbs/2
.byte VOICE , 21
- .byte VOL , 79*song_467_mvl/mxv
+ .byte VOL , 79*bgm_radio_tower_occupied_mvl/mxv
.byte PAN , c_v+0
.byte N06 , Cn4 , v112
.byte W06
.byte Dn4
.byte W06
-song_467_1_B1:
+bgm_radio_tower_occupied_1_B1:
.byte N06 , Ds4 , v112
.byte W12
.byte Dn4
@@ -82,7 +82,7 @@ song_467_1_B1:
.byte W12
.byte Fs4
.byte W12
-song_467_1_000:
+bgm_radio_tower_occupied_1_000:
.byte W12
.byte N06 , Bn2 , v112
.byte W48
@@ -90,11 +90,11 @@ song_467_1_000:
.byte W36
.byte PEND
.byte PATT
- .word song_467_1_000
+ .word bgm_radio_tower_occupied_1_000
.byte PATT
- .word song_467_1_000
+ .word bgm_radio_tower_occupied_1_000
.byte W96
-song_467_1_001:
+bgm_radio_tower_occupied_1_001:
.byte W21
.byte N03 , Bn3 , v112
.byte W03
@@ -107,7 +107,7 @@ song_467_1_001:
.byte N36 , Ds4
.byte W12
.byte PEND
-song_467_1_002:
+bgm_radio_tower_occupied_1_002:
.byte W24
.byte N24 , Dn4 , v112
.byte W24
@@ -153,9 +153,9 @@ song_467_1_002:
.byte Fs4
.byte W06
.byte PATT
- .word song_467_1_001
+ .word bgm_radio_tower_occupied_1_001
.byte PATT
- .word song_467_1_002
+ .word bgm_radio_tower_occupied_1_002
.byte N06 , As3 , v112
.byte W36
.byte N03 , Fs3
@@ -194,7 +194,7 @@ song_467_1_002:
.byte W06
.byte Dn3
.byte W06
-song_467_1_003:
+bgm_radio_tower_occupied_1_003:
.byte W12
.byte N06 , Fn3 , v112
.byte W48
@@ -202,9 +202,9 @@ song_467_1_003:
.byte W36
.byte PEND
.byte PATT
- .word song_467_1_003
+ .word bgm_radio_tower_occupied_1_003
.byte PATT
- .word song_467_1_003
+ .word bgm_radio_tower_occupied_1_003
.byte W12
.byte N06 , Fn3 , v112
.byte W48
@@ -289,21 +289,21 @@ song_467_1_003:
.byte Dn4
.byte W06
.byte GOTO
- .word song_467_1_B1
+ .word bgm_radio_tower_occupied_1_B1
.byte FINE
@********************** Track 2 **********************@
-song_467_2:
- .byte KEYSH , song_467_key+0
+bgm_radio_tower_occupied_2:
+ .byte KEYSH , bgm_radio_tower_occupied_key+0
.byte VOICE , 21
- .byte VOL , 79*song_467_mvl/mxv
+ .byte VOL , 79*bgm_radio_tower_occupied_mvl/mxv
.byte PAN , c_v+0
.byte N06 , Cn5 , v112
.byte W06
.byte Dn5
.byte W06
-song_467_2_B1:
+bgm_radio_tower_occupied_2_B1:
.byte N06 , Ds5 , v112
.byte W12
.byte Dn5
@@ -352,7 +352,7 @@ song_467_2_B1:
.byte W12
.byte Ds5
.byte W12
-song_467_2_000:
+bgm_radio_tower_occupied_2_000:
.byte W12
.byte N06 , Fn3 , v112
.byte W48
@@ -360,9 +360,9 @@ song_467_2_000:
.byte W36
.byte PEND
.byte PATT
- .word song_467_2_000
+ .word bgm_radio_tower_occupied_2_000
.byte PATT
- .word song_467_2_000
+ .word bgm_radio_tower_occupied_2_000
.byte N06 , Gs3 , v112
.byte W06
.byte Fn3
@@ -395,7 +395,7 @@ song_467_2_000:
.byte W06
.byte Dn3
.byte W06
-song_467_2_001:
+bgm_radio_tower_occupied_2_001:
.byte W21
.byte N03 , Dn4 , v112
.byte W03
@@ -408,7 +408,7 @@ song_467_2_001:
.byte N36 , Fs4
.byte W12
.byte PEND
-song_467_2_002:
+bgm_radio_tower_occupied_2_002:
.byte W24
.byte N24 , Fn4 , v112
.byte W24
@@ -438,9 +438,9 @@ song_467_2_002:
.byte Dn5
.byte W06
.byte PATT
- .word song_467_2_001
+ .word bgm_radio_tower_occupied_2_001
.byte PATT
- .word song_467_2_002
+ .word bgm_radio_tower_occupied_2_002
.byte N06 , Ds4 , v112
.byte W12
.byte Ds3
@@ -591,18 +591,18 @@ song_467_2_002:
.byte Dn5
.byte W06
.byte GOTO
- .word song_467_2_B1
+ .word bgm_radio_tower_occupied_2_B1
.byte FINE
@********************** Track 3 **********************@
-song_467_3:
- .byte KEYSH , song_467_key+0
+bgm_radio_tower_occupied_3:
+ .byte KEYSH , bgm_radio_tower_occupied_key+0
.byte VOICE , 21
- .byte VOL , 79*song_467_mvl/mxv
+ .byte VOL , 79*bgm_radio_tower_occupied_mvl/mxv
.byte PAN , c_v+0
.byte W12
-song_467_3_B1:
+bgm_radio_tower_occupied_3_B1:
.byte N06 , Fn2 , v112
.byte W12
.byte Gs2
@@ -613,7 +613,7 @@ song_467_3_B1:
.byte W24
.byte N36 , Dn2
.byte W36
-song_467_3_000:
+bgm_radio_tower_occupied_3_000:
.byte N06 , Cn2 , v112
.byte W12
.byte Cn3
@@ -631,7 +631,7 @@ song_467_3_000:
.byte Gn2
.byte W12
.byte PEND
-song_467_3_001:
+bgm_radio_tower_occupied_3_001:
.byte N06 , Cn2 , v112
.byte W12
.byte N06
@@ -650,10 +650,10 @@ song_467_3_001:
.byte W12
.byte PEND
.byte PATT
- .word song_467_3_000
+ .word bgm_radio_tower_occupied_3_000
.byte PATT
- .word song_467_3_001
-song_467_3_002:
+ .word bgm_radio_tower_occupied_3_001
+bgm_radio_tower_occupied_3_002:
.byte N06 , Gs1 , v112
.byte W12
.byte Gs2
@@ -675,7 +675,7 @@ song_467_3_002:
.byte Cn2
.byte W06
.byte PEND
-song_467_3_003:
+bgm_radio_tower_occupied_3_003:
.byte N06 , Gs1 , v112
.byte W12
.byte Gs2
@@ -694,7 +694,7 @@ song_467_3_003:
.byte W12
.byte PEND
.byte PATT
- .word song_467_3_002
+ .word bgm_radio_tower_occupied_3_002
.byte N06 , Gs1 , v112
.byte W12
.byte Fn2
@@ -712,19 +712,19 @@ song_467_3_003:
.byte Gs2
.byte W12
.byte PATT
- .word song_467_3_000
+ .word bgm_radio_tower_occupied_3_000
.byte PATT
- .word song_467_3_001
+ .word bgm_radio_tower_occupied_3_001
.byte PATT
- .word song_467_3_000
+ .word bgm_radio_tower_occupied_3_000
.byte PATT
- .word song_467_3_001
+ .word bgm_radio_tower_occupied_3_001
.byte PATT
- .word song_467_3_000
+ .word bgm_radio_tower_occupied_3_000
.byte PATT
- .word song_467_3_001
+ .word bgm_radio_tower_occupied_3_001
.byte PATT
- .word song_467_3_000
+ .word bgm_radio_tower_occupied_3_000
.byte N06 , Cn2 , v112
.byte W12
.byte N06
@@ -746,13 +746,13 @@ song_467_3_003:
.byte Fn2
.byte W06
.byte PATT
- .word song_467_3_002
+ .word bgm_radio_tower_occupied_3_002
.byte PATT
- .word song_467_3_003
+ .word bgm_radio_tower_occupied_3_003
.byte PATT
- .word song_467_3_002
+ .word bgm_radio_tower_occupied_3_002
.byte PATT
- .word song_467_3_003
+ .word bgm_radio_tower_occupied_3_003
.byte N06 , Cn2 , v112
.byte W12
.byte Cn3
@@ -826,20 +826,20 @@ song_467_3_003:
.byte N06 , Gs3
.byte W12
.byte GOTO
- .word song_467_3_B1
+ .word bgm_radio_tower_occupied_3_B1
.byte FINE
@********************** Track 4 **********************@
-song_467_4:
- .byte KEYSH , song_467_key+0
+bgm_radio_tower_occupied_4:
+ .byte KEYSH , bgm_radio_tower_occupied_key+0
.byte VOICE , 126
.byte PAN , c_v+0
- .byte VOL , 41*song_467_mvl/mxv
+ .byte VOL , 41*bgm_radio_tower_occupied_mvl/mxv
.byte W12
-song_467_4_B1:
+bgm_radio_tower_occupied_4_B1:
.byte W96
-song_467_4_000:
+bgm_radio_tower_occupied_4_000:
.byte W12
.byte N12 , Gn5 , v032
.byte W24
@@ -851,40 +851,40 @@ song_467_4_000:
.byte W12
.byte PEND
.byte PATT
- .word song_467_4_000
+ .word bgm_radio_tower_occupied_4_000
.byte PATT
- .word song_467_4_000
+ .word bgm_radio_tower_occupied_4_000
.byte PATT
- .word song_467_4_000
+ .word bgm_radio_tower_occupied_4_000
.byte PATT
- .word song_467_4_000
+ .word bgm_radio_tower_occupied_4_000
.byte PATT
- .word song_467_4_000
+ .word bgm_radio_tower_occupied_4_000
.byte PATT
- .word song_467_4_000
+ .word bgm_radio_tower_occupied_4_000
.byte W96
.byte PATT
- .word song_467_4_000
+ .word bgm_radio_tower_occupied_4_000
.byte PATT
- .word song_467_4_000
+ .word bgm_radio_tower_occupied_4_000
.byte PATT
- .word song_467_4_000
+ .word bgm_radio_tower_occupied_4_000
.byte PATT
- .word song_467_4_000
+ .word bgm_radio_tower_occupied_4_000
.byte PATT
- .word song_467_4_000
+ .word bgm_radio_tower_occupied_4_000
.byte PATT
- .word song_467_4_000
+ .word bgm_radio_tower_occupied_4_000
.byte PATT
- .word song_467_4_000
+ .word bgm_radio_tower_occupied_4_000
.byte PATT
- .word song_467_4_000
+ .word bgm_radio_tower_occupied_4_000
.byte PATT
- .word song_467_4_000
+ .word bgm_radio_tower_occupied_4_000
.byte PATT
- .word song_467_4_000
+ .word bgm_radio_tower_occupied_4_000
.byte PATT
- .word song_467_4_000
+ .word bgm_radio_tower_occupied_4_000
.byte W12
.byte N12 , Gn5 , v032
.byte W24
@@ -893,24 +893,24 @@ song_467_4_000:
.byte Gn5 , v036
.byte W36
.byte PATT
- .word song_467_4_000
+ .word bgm_radio_tower_occupied_4_000
.byte PATT
- .word song_467_4_000
+ .word bgm_radio_tower_occupied_4_000
.byte W96
.byte W96
.byte GOTO
- .word song_467_4_B1
+ .word bgm_radio_tower_occupied_4_B1
.byte FINE
@********************** Track 5 **********************@
-song_467_5:
- .byte KEYSH , song_467_key+0
+bgm_radio_tower_occupied_5:
+ .byte KEYSH , bgm_radio_tower_occupied_key+0
.byte VOICE , 0
- .byte VOL , 79*song_467_mvl/mxv
+ .byte VOL , 79*bgm_radio_tower_occupied_mvl/mxv
.byte PAN , c_v+4
.byte W12
-song_467_5_B1:
+bgm_radio_tower_occupied_5_B1:
.byte N48 , An2 , v112
.byte W48
.byte N12 , En1
@@ -925,7 +925,7 @@ song_467_5_B1:
.byte W06
.byte N06
.byte W06
-song_467_5_000:
+bgm_radio_tower_occupied_5_000:
.byte N12 , Cn1 , v112
.byte W24
.byte En1
@@ -936,17 +936,17 @@ song_467_5_000:
.byte W24
.byte PEND
.byte PATT
- .word song_467_5_000
+ .word bgm_radio_tower_occupied_5_000
.byte PATT
- .word song_467_5_000
+ .word bgm_radio_tower_occupied_5_000
.byte PATT
- .word song_467_5_000
+ .word bgm_radio_tower_occupied_5_000
.byte PATT
- .word song_467_5_000
+ .word bgm_radio_tower_occupied_5_000
.byte PATT
- .word song_467_5_000
+ .word bgm_radio_tower_occupied_5_000
.byte PATT
- .word song_467_5_000
+ .word bgm_radio_tower_occupied_5_000
.byte N48 , An2 , v112
.byte W48
.byte N12 , En1
@@ -962,27 +962,27 @@ song_467_5_000:
.byte N06
.byte W06
.byte PATT
- .word song_467_5_000
+ .word bgm_radio_tower_occupied_5_000
.byte PATT
- .word song_467_5_000
+ .word bgm_radio_tower_occupied_5_000
.byte PATT
- .word song_467_5_000
+ .word bgm_radio_tower_occupied_5_000
.byte PATT
- .word song_467_5_000
+ .word bgm_radio_tower_occupied_5_000
.byte PATT
- .word song_467_5_000
+ .word bgm_radio_tower_occupied_5_000
.byte PATT
- .word song_467_5_000
+ .word bgm_radio_tower_occupied_5_000
.byte PATT
- .word song_467_5_000
+ .word bgm_radio_tower_occupied_5_000
.byte PATT
- .word song_467_5_000
+ .word bgm_radio_tower_occupied_5_000
.byte PATT
- .word song_467_5_000
+ .word bgm_radio_tower_occupied_5_000
.byte PATT
- .word song_467_5_000
+ .word bgm_radio_tower_occupied_5_000
.byte PATT
- .word song_467_5_000
+ .word bgm_radio_tower_occupied_5_000
.byte N12 , Cn1 , v112
.byte W24
.byte En1
@@ -996,9 +996,9 @@ song_467_5_000:
.byte N06
.byte W06
.byte PATT
- .word song_467_5_000
+ .word bgm_radio_tower_occupied_5_000
.byte PATT
- .word song_467_5_000
+ .word bgm_radio_tower_occupied_5_000
.byte N48 , An2 , v112
.byte W48
.byte N12 , En1
@@ -1026,24 +1026,24 @@ song_467_5_000:
.byte N06
.byte W06
.byte GOTO
- .word song_467_5_B1
+ .word bgm_radio_tower_occupied_5_B1
.byte FINE
@******************************************************@
.align 2
-song_467:
+bgm_radio_tower_occupied:
.byte 5 @ NumTrks
.byte 0 @ NumBlks
- .byte song_467_pri @ Priority
- .byte song_467_rev @ Reverb.
+ .byte bgm_radio_tower_occupied_pri @ Priority
+ .byte bgm_radio_tower_occupied_rev @ Reverb.
- .word song_467_grp
+ .word bgm_radio_tower_occupied_grp
- .word song_467_1
- .word song_467_2
- .word song_467_3
- .word song_467_4
- .word song_467_5
+ .word bgm_radio_tower_occupied_1
+ .word bgm_radio_tower_occupied_2
+ .word bgm_radio_tower_occupied_3
+ .word bgm_radio_tower_occupied_4
+ .word bgm_radio_tower_occupied_5
.end
diff --git a/sound/songs/bgm_suikun.s b/sound/songs/bgm_suikun.s
index 25e5b550f..738e574f1 100644
--- a/sound/songs/bgm_suikun.s
+++ b/sound/songs/bgm_suikun.s
@@ -1,6 +1,6 @@
.include "MPlayDef.s"
- .equ bgm_suikun_grp, voicegroup_842FC88
+ .equ bgm_suikun_grp, voicegroup_pokemon_cry
.equ bgm_suikun_pri, 0
.equ bgm_suikun_rev, reverb_set+50
.equ bgm_suikun_mvl, 127
diff --git a/sound/songs/se_stop.s b/sound/songs/se_stop.s
index c2bae91cd..6e540d2b9 100644
--- a/sound/songs/se_stop.s
+++ b/sound/songs/se_stop.s
@@ -1,6 +1,6 @@
.include "MPlayDef.s"
- .equ se_stop_grp, voicegroup_842FC88
+ .equ se_stop_grp, voicegroup_pokemon_cry
.equ se_stop_pri, 0
.equ se_stop_rev, reverb_set+40
.equ se_stop_mvl, 127
diff --git a/sound/voice_groups.s b/sound/voice_groups.inc
index f250a394c..3ce443a5c 100644
--- a/sound/voice_groups.s
+++ b/sound/voice_groups.inc
@@ -1,5 +1,5 @@
.align 2
-voicegroup_842FC88:: @ 842FC8
+voicegroup_pokemon_cry:: @ 842FC8
voice_keysplit_all voicegroup_842FEF8 @ 842FC88
voice_keysplit voicegroup_8430204, KeySplitTable_8455224 @ 842FC94
voice_square_1 0, 2, 0, 0, 15, 0 @ 842FCA0
diff --git a/src/battle_ai.c b/src/battle_ai.c
new file mode 100644
index 000000000..945176b64
--- /dev/null
+++ b/src/battle_ai.c
@@ -0,0 +1,1595 @@
+#include "global.h"
+#include "battle.h"
+#include "pokemon.h"
+#include "rng.h"
+
+#define AIScriptRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24)
+#define AIScriptRead16(ptr) ((ptr)[0] | (ptr)[1] << 8)
+#define AIScriptRead8(ptr) ((ptr)[0])
+
+/*
+this file is a mess. I stopped part way because it starts to involve a huge struct that begins at 0x2000000 and goes
+all the way to at least 0x2016800, in addition to extremely hard functions that I can't seem to get right. I am leaving this file
+as it currently is until someone bothers to document this huge struct.
+*/
+
+extern u8 sub_8015A98(u8, u8, u8);
+extern u8 battle_side_get_owner(u8);
+extern s16 battle_get_per_side_status(u8);
+extern u8 b_first_side(u8, u8, u8);
+
+extern u16 gUnknown_020239F8;
+extern u8 gUnknown_02024A60;
+extern u8 gUnknown_02024C07;
+extern u8 gUnknown_02024C08;
+extern u8 gUnknown_02024C0C;
+extern u16 gUnknown_02024DEC;
+extern u8 gUnknown_02024C68;
+extern u32 gUnknown_02024BEC;
+extern u8 gUnknown_0201601C;
+extern u8 gUnknown_0201601F;
+extern u16 gUnknown_02024BE6;
+extern u8 gCritMultiplier;
+extern u16 gUnknown_02024C34[];
+extern u32 gUnknown_02024ACC[];
+extern u32 gUnknown_02024C98[];
+extern u16 gUnknown_02024C7A[];
+extern struct BattlePokemon gUnknown_02024A8C[];
+extern u8 gUnknown_030042E0[];
+extern u8 *gAIScriptPtr;
+extern u16 gTrainerBattleOpponent;
+extern u32 gBitTable[];
+extern u8 *BattleAIs[];
+extern struct Trainer gTrainers[];
+extern struct BattlePokemon gBattleMons[];
+extern struct BattleMove gBattleMoves[];
+extern struct BaseStats gBaseStats[];
+extern void (*gBattleAICmdTable[])(void);
+
+struct UnknownStruct1
+{
+/* 0x00 */ u16 unk0[2][8];
+/* 0x20 */ u8 unk20[2];
+/* 0x22 */ u8 unk22[2];
+/* 0x24 */ u16 items[4];
+/* 0x2C */ u8 unk8;
+};
+
+struct UnknownStruct2 /* 0x2016800 */
+{
+/* 0x00 */ u8 unk0;
+/* 0x01 */ u8 moveConsidered;
+/* 0x02 */ u16 unk2;
+/* 0x04 */ s8 score[4]; // score?
+/* 0x08 */ u32 unk8;
+/* 0x0C */ u32 aiFlags;
+/* 0x10 */ u8 unk10;
+/* 0x11 */ u8 unk11;
+/* 0x12 */ u8 filler12[6];
+/* 0x18 */ u8 unk18[4];
+};
+
+struct UnknownStruct3
+{
+ u8 filler0[0x20];
+ u8 unk20;
+};
+
+struct SmallBattleStruct1
+{
+ u8 unk1;
+ u8 unk2;
+ u8 unk3;
+ u8 unk4;
+};
+
+// move to battle.h before PR.
+struct BattleStruct /* 0x2000000 */
+{
+ u8 filler0[0x1601C];
+ struct SmallBattleStruct1 unk;
+};
+
+extern struct BattleStruct unk_2000000;
+extern struct UnknownStruct2 unk_2016800;
+extern struct UnknownStruct1 unk_2016A00;
+extern struct UnknownStruct3 unk_2016C00;
+
+void sub_810715C(void);
+void sub_8107374(void);
+void sub_810745C(void);
+
+void sub_81070D4(void)
+{
+ s32 i;
+ u8 *data = (u8 *)&unk_2016A00;
+
+ for(i = 0; (u32)i < 48; i++)
+ data[i] = 0;
+ if((gUnknown_020239F8 & 8) && gTrainerBattleOpponent != 0x400 && !(gUnknown_020239F8 & 0x982))
+ {
+ for(i = 0; i < 4; i++)
+ {
+ if(gTrainers[gTrainerBattleOpponent].items[i] != 0)
+ {
+ unk_2016A00.items[unk_2016A00.unk8] = gTrainers[gTrainerBattleOpponent].items[i];
+ unk_2016A00.unk8++;
+ }
+ }
+ }
+ sub_810715C();
+}
+
+void sub_810715C(void)
+{
+ s32 i;
+ u8 *data = (u8 *)&unk_2016800;
+ u8 r7;
+
+ for(i = 0; (u32)i < 28; i++)
+ data[i] = 0;
+ for(i = 0; i < 4; i++)
+ unk_2016800.score[i] = 100;
+ r7 = sub_8015A98(gUnknown_02024A60, 0, 0xFF);
+ for(i = 0; i < 4; i++)
+ {
+ u16 rand;
+
+ if(gBitTable[i] & r7)
+ unk_2016800.score[i] = 0;
+ rand = Random();
+ unk_2016800.unk18[i] = 100 - (rand & 0xF);
+ }
+ unk_2016C00.unk20 = 0;
+ gUnknown_02024C07 = gUnknown_02024A60;
+
+ if(gUnknown_020239F8 & 1)
+ {
+ gUnknown_02024C08 = Random() & 2;
+
+ if(gUnknown_02024C0C & gBitTable[gUnknown_02024C08])
+ gUnknown_02024C08 ^= 2;
+ }
+ else
+ gUnknown_02024C08 = gUnknown_02024A60 ^ 1;
+
+ if(gUnknown_020239F8 & 0x80)
+ unk_2016800.aiFlags = 0x40000000;
+ else if(gUnknown_020239F8 & 0x400)
+ unk_2016800.aiFlags = 0x20000000;
+ else if(gUnknown_020239F8 & 0x10)
+ unk_2016800.aiFlags = 0x80000000;
+ else
+ unk_2016800.aiFlags = gTrainers[gTrainerBattleOpponent].aiFlags;
+}
+
+u8 sub_81072A8(void)
+{
+ u8 arr1[4];
+ u8 arr2[4];
+ u8 r5;
+ s32 i;
+
+ sub_810745C();
+ while(unk_2016800.aiFlags != 0)
+ {
+ if(unk_2016800.aiFlags & 1)
+ {
+ unk_2016800.unk0 = 0;
+ sub_8107374();
+ }
+ unk_2016800.aiFlags >>= 1;
+ unk_2016800.unk11++;
+ unk_2016800.moveConsidered = 0;
+ }
+ if(unk_2016800.unk10 & 2)
+ return 4;
+ if(unk_2016800.unk10 & 4)
+ return 5;
+ r5 = 1;
+ arr1[0] = unk_2016800.score[0];
+ arr2[0] = 0;
+ for(i = 1; i < 4; i++)
+ {
+ if(arr1[0] < (s8)unk_2016800.score[i])
+ {
+ r5 = 1;
+ arr1[0] = unk_2016800.score[i];
+ arr2[0] = i;
+ }
+ if(arr1[0] == (s8)unk_2016800.score[i])
+ {
+ arr1[r5] = unk_2016800.score[i];
+ arr2[r5++] = i;
+ }
+ }
+ return arr2[Random() % r5];
+}
+
+void sub_8107374(void)
+{
+ while(unk_2016800.unk0 != 2)
+ {
+ switch(unk_2016800.unk0)
+ {
+ case 3: //Needed to match.
+ break;
+ case 0:
+ gAIScriptPtr = BattleAIs[unk_2016800.unk11];
+ if(gBattleMons[gUnknown_02024C07].pp[unk_2016800.moveConsidered] == 0)
+ {
+ unk_2016800.unk2 = 0;
+ }
+ else
+ {
+ unk_2016800.unk2 = gBattleMons[gUnknown_02024C07].moves[unk_2016800.moveConsidered];
+ }
+ unk_2016800.unk0++;
+ break;
+ case 1:
+ if(unk_2016800.unk2 != 0)
+ gBattleAICmdTable[*(u8 *)gAIScriptPtr](); //weird...
+ else
+ {
+ unk_2016800.score[unk_2016800.moveConsidered] = 0;
+ unk_2016800.unk10 |= 1;
+ }
+ if(unk_2016800.unk10 & 1)
+ {
+ unk_2016800.moveConsidered++;
+ if(unk_2016800.moveConsidered < 4 && !(unk_2016800.unk10 & 8))
+ unk_2016800.unk0 = 0;
+ else
+ unk_2016800.unk0++;
+ unk_2016800.unk10 &= 0xFE;
+ }
+ break;
+ }
+ }
+}
+
+#ifdef NONMATCHING
+void sub_810745C(void)
+{
+ s32 i;
+
+ for(i = 0; i < 8; i++)
+ {
+ if(unk_2016A00.unk0[gUnknown_02024C08 / 2][i] == 0)
+ {
+ //gUnknown_02024C34[gUnknown_02024C08] += 0;
+ unk_2016A00.unk0[gUnknown_02024C08 / 2][i] = gUnknown_02024C34[gUnknown_02024C08];
+ return;
+ }
+ }
+}
+#else
+__attribute__((naked))
+void sub_810745C(void)
+{
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ movs r2, 0\n\
+ ldr r3, _08107488 @ =gUnknown_02024C08\n\
+ ldr r5, _0810748C @ =0x02016a00\n\
+ ldr r6, _08107490 @ =gUnknown_02024C34\n\
+ adds r4, r3, 0\n\
+_08107468:\n\
+ lsls r0, r2, 1\n\
+ ldrb r1, [r4]\n\
+ lsrs r1, 1\n\
+ lsls r1, 4\n\
+ adds r0, r1\n\
+ adds r1, r0, r5\n\
+ ldrh r0, [r1]\n\
+ cmp r0, 0\n\
+ bne _08107494\n\
+ ldrb r0, [r3]\n\
+ lsls r0, 1\n\
+ adds r0, r6\n\
+ ldrh r0, [r0]\n\
+ strh r0, [r1]\n\
+ b _0810749A\n\
+ .align 2, 0\n\
+_08107488: .4byte gUnknown_02024C08\n\
+_0810748C: .4byte 0x02016a00\n\
+_08107490: .4byte gUnknown_02024C34\n\
+_08107494:\n\
+ adds r2, 0x1\n\
+ cmp r2, 0x7\n\
+ ble _08107468\n\
+_0810749A:\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .syntax divided");
+}
+#endif
+
+void unref_sub_81074A0(u8 a)
+{
+ s32 i;
+
+ for(i = 0; i < 8; i++)
+ unk_2016A00.unk0[a / 2][i] = 0;
+}
+
+void sub_81074C4(u8 a, u8 b)
+{
+ if(battle_side_get_owner(a) == 0)
+ unk_2016A00.unk20[battle_get_per_side_status(a) & 1] = b;
+}
+
+void sub_81074F8(u8 a, u8 b)
+{
+ if(battle_side_get_owner(a) == 0)
+ unk_2016A00.unk22[battle_get_per_side_status(a) & 1] = b;
+}
+
+void BattleAICmd_if_random(void)
+{
+ u16 random = Random();
+
+ if (!(random % 256 >= gAIScriptPtr[1])) // roll a random value. is it less than the parameter of the if_random call? (96 on if_random 80 will return true)
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+void BattleAICmd_if_not_random(void)
+{
+ u16 random = Random();
+
+ if (!(random % 256 <= gAIScriptPtr[1])) // roll a random value. is it greater than the parameter of the if_random call? (96 on if_random 80 will return true)
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+void BattleAICmd_if_random_1(void) // if RNG Value equal to
+{
+ u16 random = Random();
+
+ if (random % 256 == gAIScriptPtr[1]) // roll a random value. is it greater than the parameter of the if_random call? (96 on if_random 80 will return true)
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+void BattleAICmd_if_not_random_1(void) // if RNG value not equal to
+{
+ u16 random = Random();
+
+ if (random % 256 != gAIScriptPtr[1]) // roll a random value. is it greater than the parameter of the if_random call? (96 on if_random 80 will return true)
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+void BattleAICmd_score(void)
+{
+ unk_2016800.score[unk_2016800.moveConsidered] += gAIScriptPtr[1]; // add the result to the array of the move consider's score.
+
+ if(unk_2016800.score[unk_2016800.moveConsidered] < 0) // if the score is negative, flatten it to 0.
+ unk_2016800.score[unk_2016800.moveConsidered] = 0;
+
+ gAIScriptPtr += 2; // AI return.
+}
+
+void BattleAICmd_if_hp_less_than(void)
+{
+ u16 var;
+
+ if ( gAIScriptPtr[1] == 1 )
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ if ((u32)(100 * gBattleMons[var].hp / gBattleMons[var].maxHP) < gAIScriptPtr[2])
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 3);
+ else
+ gAIScriptPtr += 7;
+}
+
+void BattleAICmd_if_hp_more_than(void)
+{
+ u16 var;
+
+ if ( gAIScriptPtr[1] == 1 )
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ if ((u32)(100 * gBattleMons[var].hp / gBattleMons[var].maxHP) > gAIScriptPtr[2])
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 3);
+ else
+ gAIScriptPtr += 7;
+}
+
+void BattleAICmd_if_hp_equal(void)
+{
+ u16 var;
+
+ if ( gAIScriptPtr[1] == 1 )
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ if ((u32)(100 * gBattleMons[var].hp / gBattleMons[var].maxHP) == gAIScriptPtr[2])
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 3);
+ else
+ gAIScriptPtr += 7;
+}
+
+void BattleAICmd_if_hp_not_equal(void)
+{
+ u16 var;
+
+ if ( gAIScriptPtr[1] == 1 )
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ if ((u32)(100 * gBattleMons[var].hp / gBattleMons[var].maxHP) != gAIScriptPtr[2])
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 3);
+ else
+ gAIScriptPtr += 7;
+}
+
+void BattleAICmd_if_status(void)
+{
+ u16 var;
+ u32 temp;
+
+ if ( gAIScriptPtr[1] == 1 )
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ temp = AIScriptRead32(gAIScriptPtr + 2);
+
+ if (gBattleMons[var].status1 & temp)
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6);
+ else
+ gAIScriptPtr += 10;
+}
+
+void BattleAICmd_if_not_status(void)
+{
+ u16 var;
+ u32 temp;
+
+ if ( gAIScriptPtr[1] == 1 )
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ temp = AIScriptRead32(gAIScriptPtr + 2);
+
+ if (!(gBattleMons[var].status1 & temp))
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6);
+ else
+ gAIScriptPtr += 10;
+}
+
+void BattleAICmd_if_status2(void)
+{
+ u8 var;
+ u32 temp;
+
+ if ( gAIScriptPtr[1] == 1 )
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ temp = AIScriptRead32(gAIScriptPtr + 2);
+
+ if (gBattleMons[var].status2 & temp)
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6);
+ else
+ gAIScriptPtr += 10;
+}
+
+void BattleAICmd_if_not_status2(void)
+{
+ u8 var;
+ u32 temp;
+
+ if ( gAIScriptPtr[1] == 1 )
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ temp = AIScriptRead32(gAIScriptPtr + 2);
+
+ if (!(gBattleMons[var].status2 & temp))
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6);
+ else
+ gAIScriptPtr += 10;
+}
+
+void BattleAICmd_if_status3(void)
+{
+ u8 var;
+ u32 temp;
+
+ if ( gAIScriptPtr[1] == 1 )
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ temp = AIScriptRead32(gAIScriptPtr + 2);
+
+ if ( gUnknown_02024C98[var] & temp )
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6);
+ else
+ gAIScriptPtr += 10;
+}
+
+void BattleAICmd_if_not_status3(void)
+{
+ u8 var;
+ u32 temp;
+
+ if ( gAIScriptPtr[1] == 1 )
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ temp = AIScriptRead32(gAIScriptPtr + 2);
+
+ if (!(gUnknown_02024C98[var] & temp))
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6);
+ else
+ gAIScriptPtr += 10;
+}
+
+void BattleAICmd_if_status4(void)
+{
+ u8 var;
+ u32 temp;
+ u32 temp2;
+
+ if ( gAIScriptPtr[1] == 1 )
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ temp = battle_get_per_side_status(var) & 1;
+ temp2 = AIScriptRead32(gAIScriptPtr + 2);
+
+ if ( gUnknown_02024C7A[temp] & temp2 )
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6);
+ else
+ gAIScriptPtr += 10;
+}
+
+void BattleAICmd_if_not_status4(void)
+{
+ u8 var;
+ u32 temp;
+ u32 temp2;
+
+ if (gAIScriptPtr[1] == 1)
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+
+ temp = battle_get_per_side_status(var) & 1;
+ temp2 = AIScriptRead32(gAIScriptPtr + 2);
+
+ if (!(gUnknown_02024C7A[temp] & temp2))
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 6);
+ else
+ gAIScriptPtr += 10;
+}
+
+void BattleAICmd_if_less_than(void)
+{
+ if (unk_2016800.unk8 < gAIScriptPtr[1])
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+void BattleAICmd_if_more_than(void)
+{
+ if (unk_2016800.unk8 > gAIScriptPtr[1])
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+void BattleAICmd_if_equal(void)
+{
+ if (unk_2016800.unk8 == gAIScriptPtr[1])
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+void BattleAICmd_if_not_equal(void)
+{
+ if (unk_2016800.unk8 != gAIScriptPtr[1])
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+void BattleAICmd_if_less_than_32(void)
+{
+ u8 *temp = AIScriptRead32(gAIScriptPtr + 1);
+
+ if (unk_2016800.unk8 < *temp)
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5);
+ else
+ gAIScriptPtr += 9;
+}
+
+void BattleAICmd_if_more_than_32(void)
+{
+ u8 *temp = AIScriptRead32(gAIScriptPtr + 1);
+
+ if (unk_2016800.unk8 > *temp)
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5);
+ else
+ gAIScriptPtr += 9;
+}
+
+void BattleAICmd_if_equal_32(void)
+{
+ u8 *temp = AIScriptRead32(gAIScriptPtr + 1);
+
+ if (unk_2016800.unk8 == *temp)
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5);
+ else
+ gAIScriptPtr += 9;
+}
+
+void BattleAICmd_if_not_equal_32(void)
+{
+ u8 *temp = AIScriptRead32(gAIScriptPtr + 1);
+
+ if (unk_2016800.unk8 != *temp)
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5);
+ else
+ gAIScriptPtr += 9;
+}
+
+void BattleAICmd_if_move(void)
+{
+ u16 move = AIScriptRead16(gAIScriptPtr + 1);
+
+ if (unk_2016800.unk2 == move)
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 3);
+ else
+ gAIScriptPtr += 7;
+}
+
+void BattleAICmd_if_not_move(void)
+{
+ u16 move = AIScriptRead16(gAIScriptPtr + 1);
+
+ if (unk_2016800.unk2 != move)
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 3);
+ else
+ gAIScriptPtr += 7;
+}
+
+void BattleAICmd_if_in_bytes(void)
+{
+ u8 *ptr = AIScriptRead32(gAIScriptPtr + 1);
+
+ while(*ptr != 0xFF)
+ {
+ if(unk_2016800.unk8 == *ptr)
+ {
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5);
+ return;
+ }
+ ptr++;
+ }
+ gAIScriptPtr += 9;
+}
+
+void BattleAICmd_if_not_in_bytes(void)
+{
+ u8 *ptr = AIScriptRead32(gAIScriptPtr + 1);
+
+ while(*ptr != 0xFF)
+ {
+ if(unk_2016800.unk8 == *ptr)
+ {
+ gAIScriptPtr += 9;
+ return;
+ }
+ ptr++;
+ }
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5);
+}
+
+void BattleAICmd_if_in_words(void)
+{
+ u16 *ptr = AIScriptRead32(gAIScriptPtr + 1);
+
+ while(*ptr != 0xFFFF)
+ {
+ if(unk_2016800.unk8 == *ptr)
+ {
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5);
+ return;
+ }
+ ptr++;
+ }
+ gAIScriptPtr += 9;
+}
+
+void BattleAICmd_if_not_in_words(void)
+{
+ u16 *ptr = AIScriptRead32(gAIScriptPtr + 1);
+
+ while(*ptr != 0xFFFF)
+ {
+ if(unk_2016800.unk8 == *ptr)
+ {
+ gAIScriptPtr += 9;
+ return;
+ }
+ ptr++;
+ }
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 5);
+}
+
+void BattleAICmd_if_user_can_damage(void)
+{
+ s32 i;
+
+ for(i = 0; i < 4; i++)
+ {
+ if (gBattleMons[gUnknown_02024C07].moves[i] != 0
+ && gBattleMoves[gBattleMons[gUnknown_02024C07].moves[i]].power != 0)
+ break;
+ }
+ if(i == 4)
+ gAIScriptPtr += 5;
+ else
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 1);
+}
+
+void BattleAICmd_if_user_cant_damage(void)
+{
+ s32 i;
+
+ for(i = 0; i < 4; i++)
+ {
+ if (gBattleMons[gUnknown_02024C07].moves[i] != 0
+ && gBattleMoves[gBattleMons[gUnknown_02024C07].moves[i]].power != 0)
+ break;
+ }
+ if(i != 4)
+ gAIScriptPtr += 5;
+ else
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 1);
+}
+
+void BattleAICmd_unk_21(void)
+{
+ unk_2016800.unk8 = gUnknown_030042E0[19];
+ gAIScriptPtr += 1;
+}
+
+void BattleAICmd_get_type(void)
+{
+ u8 typeVar = gAIScriptPtr[1];
+
+ switch(typeVar)
+ {
+ case 1:
+ unk_2016800.unk8 = gBattleMons[gUnknown_02024C07].type1;
+ break;
+ case 0:
+ unk_2016800.unk8 = gBattleMons[gUnknown_02024C08].type1;
+ break;
+ case 3:
+ unk_2016800.unk8 = gBattleMons[gUnknown_02024C07].type2;
+ break;
+ case 2:
+ unk_2016800.unk8 = gBattleMons[gUnknown_02024C08].type2;
+ break;
+ case 4:
+ unk_2016800.unk8 = gBattleMoves[unk_2016800.unk2].type;
+ break;
+ }
+ gAIScriptPtr += 2;
+}
+
+void BattleAICmd_unk_23(void)
+{
+ unk_2016800.unk8 = gBattleMoves[unk_2016800.unk2].power;
+ gAIScriptPtr += 1;
+}
+
+__attribute__((naked))
+void BattleAICmd_unk_24(void)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x14\n\
+ movs r3, 0\n\
+ ldr r0, _08108328 @ =gUnknown_083F62BC\n\
+ ldrh r1, [r0]\n\
+ ldr r4, _0810832C @ =0x0000ffff\n\
+ ldr r6, _08108330 @ =gBattleMoves\n\
+ ldr r5, _08108334 @ =0x02016800\n\
+ cmp r1, r4\n\
+ beq _0810822E\n\
+ ldrh r1, [r5, 0x2]\n\
+ lsls r0, r1, 1\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ adds r0, r6\n\
+ ldrb r2, [r0]\n\
+ ldr r1, _08108328 @ =gUnknown_083F62BC\n\
+_0810821E:\n\
+ ldrh r0, [r1]\n\
+ cmp r2, r0\n\
+ beq _0810822E\n\
+ adds r1, 0x2\n\
+ adds r3, 0x1\n\
+ ldrh r0, [r1]\n\
+ cmp r0, r4\n\
+ bne _0810821E\n\
+_0810822E:\n\
+ ldrh r0, [r5, 0x2]\n\
+ lsls r1, r0, 1\n\
+ adds r1, r0\n\
+ lsls r1, 2\n\
+ adds r1, r6\n\
+ ldrb r0, [r1, 0x1]\n\
+ cmp r0, 0x1\n\
+ bhi _08108240\n\
+ b _081083B2\n\
+_08108240:\n\
+ lsls r0, r3, 1\n\
+ ldr r1, _08108328 @ =gUnknown_083F62BC\n\
+ adds r0, r1\n\
+ ldrh r3, [r0]\n\
+ ldr r0, _0810832C @ =0x0000ffff\n\
+ cmp r3, r0\n\
+ beq _08108250\n\
+ b _081083B2\n\
+_08108250:\n\
+ ldr r0, _08108338 @ =gUnknown_02024DEC\n\
+ movs r1, 0\n\
+ strh r1, [r0]\n\
+ ldr r2, _0810833C @ =0xfffff81c\n\
+ adds r0, r5, r2\n\
+ strb r1, [r0]\n\
+ adds r2, 0x3\n\
+ adds r0, r5, r2\n\
+ movs r2, 0x1\n\
+ strb r2, [r0]\n\
+ ldr r0, _08108340 @ =gUnknown_02024C68\n\
+ strb r1, [r0]\n\
+ ldr r0, _08108344 @ =gCritMultiplier\n\
+ strb r2, [r0]\n\
+ movs r6, 0\n\
+ mov r9, r3\n\
+ ldr r0, _08108328 @ =gUnknown_083F62BC\n\
+ ldrh r0, [r0]\n\
+ str r0, [sp, 0x10]\n\
+_08108276:\n\
+ movs r3, 0\n\
+ ldr r5, _08108348 @ =gBattleMons\n\
+ lsls r4, r6, 1\n\
+ ldr r7, _0810834C @ =gUnknown_02024C07\n\
+ lsls r1, r6, 2\n\
+ mov r8, r1\n\
+ adds r2, r6, 0x1\n\
+ mov r10, r2\n\
+ ldr r0, [sp, 0x10]\n\
+ cmp r0, r9\n\
+ beq _081082BA\n\
+ ldr r2, _08108330 @ =gBattleMoves\n\
+ ldrb r1, [r7]\n\
+ movs r0, 0x58\n\
+ muls r0, r1\n\
+ adds r0, r4, r0\n\
+ adds r1, r5, 0\n\
+ adds r1, 0xC\n\
+ adds r0, r1\n\
+ ldrh r1, [r0]\n\
+ lsls r0, r1, 1\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ adds r0, r2\n\
+ ldrb r2, [r0]\n\
+ ldr r1, _08108328 @ =gUnknown_083F62BC\n\
+_081082AA:\n\
+ ldrh r0, [r1]\n\
+ cmp r2, r0\n\
+ beq _081082BA\n\
+ adds r1, 0x2\n\
+ adds r3, 0x1\n\
+ ldrh r0, [r1]\n\
+ cmp r0, r9\n\
+ bne _081082AA\n\
+_081082BA:\n\
+ ldrb r1, [r7]\n\
+ movs r0, 0x58\n\
+ muls r0, r1\n\
+ adds r0, r4, r0\n\
+ adds r1, r5, 0\n\
+ adds r1, 0xC\n\
+ adds r1, r0, r1\n\
+ ldrh r0, [r1]\n\
+ cmp r0, 0\n\
+ beq _0810835C\n\
+ lsls r0, r3, 1\n\
+ ldr r2, _08108328 @ =gUnknown_083F62BC\n\
+ adds r0, r2\n\
+ ldrh r0, [r0]\n\
+ cmp r0, r9\n\
+ bne _0810835C\n\
+ ldr r0, _08108330 @ =gBattleMoves\n\
+ ldrh r2, [r1]\n\
+ lsls r1, r2, 1\n\
+ adds r1, r2\n\
+ lsls r1, 2\n\
+ adds r1, r0\n\
+ ldrb r0, [r1, 0x1]\n\
+ cmp r0, 0x1\n\
+ bls _0810835C\n\
+ ldr r5, _08108350 @ =gUnknown_02024BE6\n\
+ strh r2, [r5]\n\
+ ldrb r0, [r7]\n\
+ ldr r4, _08108354 @ =gUnknown_02024C08\n\
+ ldrb r1, [r4]\n\
+ bl sub_801CAF8\n\
+ ldrh r0, [r5]\n\
+ ldrb r1, [r7]\n\
+ ldrb r2, [r4]\n\
+ bl move_effectiveness_something\n\
+ mov r4, sp\n\
+ add r4, r8\n\
+ ldr r2, _08108358 @ =gUnknown_02024BEC\n\
+ ldr r0, _08108334 @ =0x02016800\n\
+ adds r0, 0x18\n\
+ adds r0, r6, r0\n\
+ ldrb r1, [r0]\n\
+ ldr r0, [r2]\n\
+ muls r0, r1\n\
+ movs r1, 0x64\n\
+ bl __divsi3\n\
+ str r0, [r4]\n\
+ cmp r0, 0\n\
+ bne _08108364\n\
+ movs r0, 0x1\n\
+ str r0, [r4]\n\
+ b _08108364\n\
+ .align 2, 0\n\
+_08108328: .4byte gUnknown_083F62BC\n\
+_0810832C: .4byte 0x0000ffff\n\
+_08108330: .4byte gBattleMoves\n\
+_08108334: .4byte 0x02016800\n\
+_08108338: .4byte gUnknown_02024DEC\n\
+_0810833C: .4byte 0xfffff81c\n\
+_08108340: .4byte gUnknown_02024C68\n\
+_08108344: .4byte gCritMultiplier\n\
+_08108348: .4byte gBattleMons\n\
+_0810834C: .4byte gUnknown_02024C07\n\
+_08108350: .4byte gUnknown_02024BE6\n\
+_08108354: .4byte gUnknown_02024C08\n\
+_08108358: .4byte gUnknown_02024BEC\n\
+_0810835C:\n\
+ mov r1, sp\n\
+ add r1, r8\n\
+ movs r0, 0\n\
+ str r0, [r1]\n\
+_08108364:\n\
+ mov r6, r10\n\
+ cmp r6, 0x3\n\
+ ble _08108276\n\
+ movs r6, 0\n\
+ ldr r1, _081083A4 @ =0x02016800\n\
+ ldrb r0, [r1, 0x1]\n\
+ lsls r0, 2\n\
+ add r0, sp\n\
+ ldr r2, [sp]\n\
+ ldr r0, [r0]\n\
+ adds r5, r1, 0\n\
+ ldr r4, _081083A8 @ =gAIScriptPtr\n\
+ cmp r2, r0\n\
+ bgt _0810839A\n\
+ adds r3, r5, 0\n\
+ mov r2, sp\n\
+_08108384:\n\
+ adds r2, 0x4\n\
+ adds r6, 0x1\n\
+ cmp r6, 0x3\n\
+ bgt _0810839A\n\
+ ldrb r0, [r3, 0x1]\n\
+ lsls r0, 2\n\
+ add r0, sp\n\
+ ldr r1, [r2]\n\
+ ldr r0, [r0]\n\
+ cmp r1, r0\n\
+ ble _08108384\n\
+_0810839A:\n\
+ cmp r6, 0x4\n\
+ bne _081083AC\n\
+ movs r0, 0x2\n\
+ str r0, [r5, 0x8]\n\
+ b _081083B8\n\
+ .align 2, 0\n\
+_081083A4: .4byte 0x02016800\n\
+_081083A8: .4byte gAIScriptPtr\n\
+_081083AC:\n\
+ movs r0, 0x1\n\
+ str r0, [r5, 0x8]\n\
+ b _081083B8\n\
+_081083B2:\n\
+ movs r0, 0\n\
+ str r0, [r5, 0x8]\n\
+ ldr r4, _081083D0 @ =gAIScriptPtr\n\
+_081083B8:\n\
+ ldr r0, [r4]\n\
+ adds r0, 0x1\n\
+ str r0, [r4]\n\
+ add sp, 0x14\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_081083D0: .4byte gAIScriptPtr\n\
+ .syntax divided\n");
+}
+
+void BattleAICmd_get_move(void)
+{
+ if ( gAIScriptPtr[1] == 1 )
+ unk_2016800.unk8 = gUnknown_02024C34[gUnknown_02024C07];
+ else
+ unk_2016800.unk8 = gUnknown_02024C34[gUnknown_02024C08];
+
+ gAIScriptPtr += 2;
+}
+
+void BattleAICmd_if_type(void)
+{
+ if ( gAIScriptPtr[1] == unk_2016800.unk8 )
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+void BattleAICmd_unk_27(void) // if_not_type
+{
+ if ( gAIScriptPtr[1] != unk_2016800.unk8 )
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+void BattleAICmd_if_would_go_first(void)
+{
+ if ( b_first_side(gUnknown_02024C07, gUnknown_02024C08, 1) == gAIScriptPtr[1] )
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+void BattleAICmd_if_would_not_go_first(void)
+{
+ if ( b_first_side(gUnknown_02024C07, gUnknown_02024C08, 1) != gAIScriptPtr[1] )
+ gAIScriptPtr = AIScriptRead32(gAIScriptPtr + 2);
+ else
+ gAIScriptPtr += 6;
+}
+
+void BattleAICmd_unk_2A(void)
+{}
+
+void BattleAICmd_unk_2B(void)
+{}
+
+__attribute__((naked))
+void BattleAICmd_count_alive_pokemon(void)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r9\n\
+ mov r6, r8\n\
+ push {r6,r7}\n\
+ ldr r1, _08108550 @ =0x02016800\n\
+ movs r0, 0\n\
+ str r0, [r1, 0x8]\n\
+ ldr r0, _08108554 @ =gAIScriptPtr\n\
+ ldr r0, [r0]\n\
+ ldrb r0, [r0, 0x1]\n\
+ cmp r0, 0x1\n\
+ bne _0810855C\n\
+ ldr r0, _08108558 @ =gUnknown_02024C07\n\
+ b _0810855E\n\
+ .align 2, 0\n\
+_08108550: .4byte 0x02016800\n\
+_08108554: .4byte gAIScriptPtr\n\
+_08108558: .4byte gUnknown_02024C07\n\
+_0810855C:\n\
+ ldr r0, _081085A8 @ =gUnknown_02024C08\n\
+_0810855E:\n\
+ ldrb r5, [r0]\n\
+ adds r0, r5, 0\n\
+ bl battle_side_get_owner\n\
+ lsls r0, 24\n\
+ ldr r1, _081085AC @ =gEnemyParty\n\
+ mov r9, r1\n\
+ cmp r0, 0\n\
+ bne _08108574\n\
+ ldr r0, _081085B0 @ =gPlayerParty\n\
+ mov r9, r0\n\
+_08108574:\n\
+ ldr r0, _081085B4 @ =gUnknown_020239F8\n\
+ ldrh r1, [r0]\n\
+ movs r0, 0x1\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _081085BC\n\
+ ldr r4, _081085B8 @ =gUnknown_02024A6A\n\
+ lsls r0, r5, 1\n\
+ adds r0, r4\n\
+ ldrb r0, [r0]\n\
+ mov r8, r0\n\
+ adds r0, r5, 0\n\
+ bl battle_get_per_side_status\n\
+ movs r1, 0x2\n\
+ eors r0, r1\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ bl battle_get_side_with_given_state\n\
+ lsls r0, 24\n\
+ lsrs r0, 23\n\
+ adds r0, r4\n\
+ ldrb r6, [r0]\n\
+ b _081085C6\n\
+ .align 2, 0\n\
+_081085A8: .4byte gUnknown_02024C08\n\
+_081085AC: .4byte gEnemyParty\n\
+_081085B0: .4byte gPlayerParty\n\
+_081085B4: .4byte gUnknown_020239F8\n\
+_081085B8: .4byte gUnknown_02024A6A\n\
+_081085BC:\n\
+ ldr r1, _08108624 @ =gUnknown_02024A6A\n\
+ lsls r0, r5, 1\n\
+ adds r0, r1\n\
+ ldrb r6, [r0]\n\
+ mov r8, r6\n\
+_081085C6:\n\
+ movs r5, 0\n\
+ ldr r7, _08108628 @ =0x02016800\n\
+_081085CA:\n\
+ cmp r5, r8\n\
+ beq _08108608\n\
+ cmp r5, r6\n\
+ beq _08108608\n\
+ movs r0, 0x64\n\
+ muls r0, r5\n\
+ mov r1, r9\n\
+ adds r4, r1, r0\n\
+ adds r0, r4, 0\n\
+ movs r1, 0x39\n\
+ bl GetMonData\n\
+ cmp r0, 0\n\
+ beq _08108608\n\
+ adds r0, r4, 0\n\
+ movs r1, 0x41\n\
+ bl GetMonData\n\
+ cmp r0, 0\n\
+ beq _08108608\n\
+ adds r0, r4, 0\n\
+ movs r1, 0x41\n\
+ bl GetMonData\n\
+ movs r1, 0xCE\n\
+ lsls r1, 1\n\
+ cmp r0, r1\n\
+ beq _08108608\n\
+ ldr r0, [r7, 0x8]\n\
+ adds r0, 0x1\n\
+ str r0, [r7, 0x8]\n\
+_08108608:\n\
+ adds r5, 0x1\n\
+ cmp r5, 0x5\n\
+ ble _081085CA\n\
+ ldr r1, _0810862C @ =gAIScriptPtr\n\
+ ldr r0, [r1]\n\
+ adds r0, 0x2\n\
+ str r0, [r1]\n\
+ pop {r3,r4}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_08108624: .4byte gUnknown_02024A6A\n\
+_08108628: .4byte 0x02016800\n\
+_0810862C: .4byte gAIScriptPtr\n\
+ .syntax divided");
+}
+
+void BattleAICmd_unk_2D(void)
+{
+ unk_2016800.unk8 = unk_2016800.unk2;
+ gAIScriptPtr += 1;
+}
+
+void BattleAICmd_unk_2E(void)
+{
+ unk_2016800.unk8 = gBattleMoves[unk_2016800.unk2].effect;
+ gAIScriptPtr += 1;
+}
+
+void BattleAICmd_get_ability(void)
+{
+ u8 var;
+
+ if(gAIScriptPtr[1] == 1)
+ var = gUnknown_02024C07;
+ else
+ var = gUnknown_02024C08;
+ if(battle_side_get_owner(var) == 0)
+ {
+ //register u8 unk asm("r1") = battle_get_per_side_status(var) & 1;
+ s32 unk = battle_get_per_side_status(var) & 1;
+
+ if(unk_2016A00.unk20[unk] != 0)
+ {
+ ((struct UnknownStruct2 *)((u8 *)&unk_2016A00 - 512))->unk8 = unk_2016A00.unk20[unk];
+ gAIScriptPtr += 2;
+ return;
+ }
+ //_081086C8
+ if(gBattleMons[var].ability == 0x17 || gBattleMons[var].ability == 0x2A || gBattleMons[var].ability == 0x47)
+ {
+ //_081086E4
+ unk_2016800.unk8 = gBattleMons[var].ability;
+ gAIScriptPtr += 2;
+ return;
+ }
+ //_081086FC
+ if(gBaseStats[gBattleMons[var].species].ability1 != 0)
+ {
+ if(gBaseStats[gBattleMons[var].species].ability2 != 0)
+ {
+ if(Random() & 1)
+ {
+ ((struct UnknownStruct2 *)((u8 *)&unk_2016A00 - 512))->unk8 = gBaseStats[gBattleMons[var].species].ability1;
+ gAIScriptPtr += 2;
+ return;
+ }
+ //_0810873C
+ else
+ {
+ ((struct UnknownStruct2 *)((u8 *)&unk_2016A00 - 512))->unk8 = gBaseStats[gBattleMons[var].species].ability2;
+ gAIScriptPtr += 2;
+ return;
+ }
+ }
+ //_08108754
+ else
+ {
+ ((struct UnknownStruct2 *)((u8 *)&unk_2016A00 - 512))->unk8 = gBaseStats[gBattleMons[var].species].ability1;
+ gAIScriptPtr += 2;
+ return;
+ }
+ }
+ //_08108764
+ else
+ {
+ ((struct UnknownStruct2 *)((u8 *)&unk_2016A00 - 512))->unk8 = gBaseStats[gBattleMons[var].species].ability2;
+ gAIScriptPtr += 2;
+ return;
+ }
+ }
+ //_08108774
+ unk_2016800.unk8 = gBattleMons[var].ability;
+ gAIScriptPtr += 2;
+}
+
+// this should probably be in battle.h after this file is fully decompiled.
+extern struct
+{
+ u8 unknownStuff[0x16000];
+ struct
+ {
+ u8 filler0[0x1C];
+ u8 unk1C;
+ u8 filler1D[2];
+ u8 unk1F;
+ u8 filler16020[0x7E0];
+ } unk_2016000;
+ struct UnknownStruct2 unk_2016800;
+} ewram; //0x02000000
+
+#ifdef NONMATCHING
+void BattleAICmd_unk_30(void)
+{
+ s32 loopCounter;
+
+ gUnknown_02024DEC = 0;
+ ewram.unk_2016000.unk1C = 0;
+ ewram.unk_2016000.unk1F = 1;
+ gUnknown_02024C68 = 0;
+ gCritMultiplier = 1;
+ ewram.unk_2016800.unk8 = 0;
+
+ for(loopCounter = 0; loopCounter <= 3; loopCounter++)
+ {
+ gUnknown_02024BEC = 40;
+ gUnknown_02024BE6 = gBattleMons[gUnknown_02024C07].moves[loopCounter];
+
+ if (gUnknown_02024BE6)
+ {
+ move_effectiveness_something(gUnknown_02024BE6, gUnknown_02024C07, gUnknown_02024C08);
+
+ // reduce by 1/3.
+ if (gUnknown_02024BEC == 120)
+ gUnknown_02024BEC = 80;
+ if(gUnknown_02024BEC == 240)
+ gUnknown_02024BEC = 160;
+ if(gUnknown_02024BEC == 30)
+ gUnknown_02024BEC = 20;
+ if(gUnknown_02024BEC == 15)
+ gUnknown_02024BEC = 10;
+
+ if(gUnknown_02024C68 & 8)
+ gUnknown_02024BEC = 0;
+
+ if (ewram.unk_2016800.unk8 < gUnknown_02024BEC)
+ ewram.unk_2016800.unk8 = gUnknown_02024BEC;
+ }
+ }
+ gAIScriptPtr += 1;
+}
+#else
+__attribute__((naked))
+void BattleAICmd_unk_30(void)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r8\n\
+ push {r7}\n\
+ ldr r0, _0810885C @ =gUnknown_02024DEC\n\
+ movs r2, 0\n\
+ strh r2, [r0]\n\
+ ldr r1, _08108860 @ =0x02000000\n\
+ ldr r3, _08108864 @ =0x0001601c\n\
+ adds r0, r1, r3\n\
+ movs r4, 0\n\
+ strb r2, [r0]\n\
+ adds r3, 0x3\n\
+ adds r0, r1, r3\n\
+ movs r3, 0x1\n\
+ strb r3, [r0]\n\
+ ldr r0, _08108868 @ =gUnknown_02024C68\n\
+ strb r2, [r0]\n\
+ ldr r0, _0810886C @ =gCritMultiplier\n\
+ strb r3, [r0]\n\
+ movs r0, 0xB4\n\
+ lsls r0, 9\n\
+ adds r1, r0\n\
+ str r4, [r1, 0x8]\n\
+ movs r5, 0\n\
+ ldr r4, _08108870 @ =gUnknown_02024BEC\n\
+ ldr r7, _08108874 @ =gUnknown_02024BE6\n\
+ ldr r3, _08108878 @ =gUnknown_02024A8C\n\
+ mov r8, r3\n\
+ ldr r6, _0810887C @ =gUnknown_02024C07\n\
+_081087DA:\n\
+ movs r0, 0x28\n\
+ str r0, [r4]\n\
+ lsls r1, r5, 1\n\
+ ldrb r2, [r6]\n\
+ movs r0, 0x58\n\
+ muls r0, r2\n\
+ adds r1, r0\n\
+ add r1, r8\n\
+ ldrh r0, [r1]\n\
+ strh r0, [r7]\n\
+ lsls r0, 16\n\
+ cmp r0, 0\n\
+ beq _08108844\n\
+ ldrh r0, [r7]\n\
+ ldrb r1, [r6]\n\
+ ldr r2, _08108880 @ =gUnknown_02024C08\n\
+ ldrb r2, [r2]\n\
+ bl move_effectiveness_something\n\
+ ldr r0, [r4]\n\
+ cmp r0, 0x78\n\
+ bne _0810880A\n\
+ movs r0, 0x50\n\
+ str r0, [r4]\n\
+_0810880A:\n\
+ ldr r0, [r4]\n\
+ cmp r0, 0xF0\n\
+ bne _08108814\n\
+ movs r0, 0xA0\n\
+ str r0, [r4]\n\
+_08108814:\n\
+ ldr r0, [r4]\n\
+ cmp r0, 0x1E\n\
+ bne _0810881E\n\
+ movs r0, 0x14\n\
+ str r0, [r4]\n\
+_0810881E:\n\
+ ldr r0, [r4]\n\
+ cmp r0, 0xF\n\
+ bne _08108828\n\
+ movs r0, 0xA\n\
+ str r0, [r4]\n\
+_08108828:\n\
+ ldr r0, _08108868 @ =gUnknown_02024C68\n\
+ ldrb r1, [r0]\n\
+ movs r0, 0x8\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _08108838\n\
+ movs r0, 0\n\
+ str r0, [r4]\n\
+_08108838:\n\
+ ldr r2, _08108884 @ =0x02016800\n\
+ ldr r0, [r2, 0x8]\n\
+ ldr r1, [r4]\n\
+ cmp r0, r1\n\
+ bcs _08108844\n\
+ str r1, [r2, 0x8]\n\
+_08108844:\n\
+ adds r5, 0x1\n\
+ cmp r5, 0x3\n\
+ ble _081087DA\n\
+ ldr r1, _08108888 @ =gAIScriptPtr\n\
+ ldr r0, [r1]\n\
+ adds r0, 0x1\n\
+ str r0, [r1]\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_0810885C: .4byte gUnknown_02024DEC\n\
+_08108860: .4byte 0x02000000\n\
+_08108864: .4byte 0x0001601c\n\
+_08108868: .4byte gUnknown_02024C68\n\
+_0810886C: .4byte gCritMultiplier\n\
+_08108870: .4byte gUnknown_02024BEC\n\
+_08108874: .4byte gUnknown_02024BE6\n\
+_08108878: .4byte gUnknown_02024A8C\n\
+_0810887C: .4byte gUnknown_02024C07\n\
+_08108880: .4byte gUnknown_02024C08\n\
+_08108884: .4byte 0x02016800\n\
+_08108888: .4byte gAIScriptPtr\n\
+ .syntax divided\n");
+}
+#endif
+
+// same function as above but no for loop.
+__attribute__((naked))
+void BattleAICmd_if_damage_bonus(void)
+{
+ asm(".syntax unified\n\
+ push {r4,r5,lr}\n\
+ ldr r0, _08108928 @ =gUnknown_02024DEC\n\
+ movs r1, 0\n\
+ strh r1, [r0]\n\
+ ldr r2, _0810892C @ =0x02000000\n\
+ ldr r3, _08108930 @ =0x0001601c\n\
+ adds r0, r2, r3\n\
+ strb r1, [r0]\n\
+ adds r3, 0x3\n\
+ adds r0, r2, r3\n\
+ movs r3, 0x1\n\
+ strb r3, [r0]\n\
+ ldr r5, _08108934 @ =gUnknown_02024C68\n\
+ strb r1, [r5]\n\
+ ldr r0, _08108938 @ =gCritMultiplier\n\
+ strb r3, [r0]\n\
+ ldr r4, _0810893C @ =gUnknown_02024BEC\n\
+ movs r0, 0x28\n\
+ str r0, [r4]\n\
+ ldr r1, _08108940 @ =gUnknown_02024BE6\n\
+ movs r0, 0xB4\n\
+ lsls r0, 9\n\
+ adds r2, r0\n\
+ ldrh r0, [r2, 0x2]\n\
+ strh r0, [r1]\n\
+ ldrh r0, [r1]\n\
+ ldr r1, _08108944 @ =gUnknown_02024C07\n\
+ ldrb r1, [r1]\n\
+ ldr r2, _08108948 @ =gUnknown_02024C08\n\
+ ldrb r2, [r2]\n\
+ bl move_effectiveness_something\n\
+ ldr r0, [r4]\n\
+ cmp r0, 0x78\n\
+ bne _081088D6\n\
+ movs r0, 0x50\n\
+ str r0, [r4]\n\
+_081088D6:\n\
+ ldr r0, [r4]\n\
+ cmp r0, 0xF0\n\
+ bne _081088E0\n\
+ movs r0, 0xA0\n\
+ str r0, [r4]\n\
+_081088E0:\n\
+ ldr r0, [r4]\n\
+ cmp r0, 0x1E\n\
+ bne _081088EA\n\
+ movs r0, 0x14\n\
+ str r0, [r4]\n\
+_081088EA:\n\
+ ldr r0, [r4]\n\
+ cmp r0, 0xF\n\
+ bne _081088F4\n\
+ movs r0, 0xA\n\
+ str r0, [r4]\n\
+_081088F4:\n\
+ ldrb r1, [r5]\n\
+ movs r0, 0x8\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _08108902\n\
+ movs r0, 0\n\
+ str r0, [r4]\n\
+_08108902:\n\
+ ldrb r0, [r4]\n\
+ ldr r3, _0810894C @ =gAIScriptPtr\n\
+ ldr r2, [r3]\n\
+ ldrb r1, [r2, 0x1]\n\
+ cmp r0, r1\n\
+ bne _08108950\n\
+ ldrb r1, [r2, 0x2]\n\
+ ldrb r0, [r2, 0x3]\n\
+ lsls r0, 8\n\
+ orrs r1, r0\n\
+ ldrb r0, [r2, 0x4]\n\
+ lsls r0, 16\n\
+ orrs r1, r0\n\
+ ldrb r0, [r2, 0x5]\n\
+ lsls r0, 24\n\
+ orrs r1, r0\n\
+ str r1, [r3]\n\
+ b _08108954\n\
+ .align 2, 0\n\
+_08108928: .4byte gUnknown_02024DEC\n\
+_0810892C: .4byte 0x02000000\n\
+_08108930: .4byte 0x0001601c\n\
+_08108934: .4byte gUnknown_02024C68\n\
+_08108938: .4byte gCritMultiplier\n\
+_0810893C: .4byte gUnknown_02024BEC\n\
+_08108940: .4byte gUnknown_02024BE6\n\
+_08108944: .4byte gUnknown_02024C07\n\
+_08108948: .4byte gUnknown_02024C08\n\
+_0810894C: .4byte gAIScriptPtr\n\
+_08108950:\n\
+ adds r0, r2, 0x6\n\
+ str r0, [r3]\n\
+_08108954:\n\
+ pop {r4,r5}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .syntax divided\n");
+}
+
+void BattleAICmd_unk_32(void)
+{}
+
+void BattleAICmd_unk_33(void)
+{}
diff --git a/src/battle_setup.c b/src/battle_setup.c
new file mode 100644
index 000000000..15b09645f
--- /dev/null
+++ b/src/battle_setup.c
@@ -0,0 +1,1157 @@
+#include "global.h"
+#include "battle.h"
+#include "main.h"
+#include "species.h"
+#include "pokemon.h"
+#include "songs.h"
+#include "task.h"
+#include "fieldmap.h"
+#include "string_util.h"
+#include "rng.h"
+#include "flag.h"
+#include "var.h"
+#include "script.h"
+#include "field_message_box.h"
+#include "trainer.h"
+
+#define NUM_TRAINER_EYE_TRAINERS 56
+#define TRAINER_REMATCH_STEPS 255
+
+extern void prev_quest_postbuffer_cursor_backup_reset(void);
+extern void overworld_poison_timer_set(void);
+extern void current_map_music_set__default_for_battle(u16);
+extern void c2_exit_to_overworld_1_continue_scripts_restart_music(void);
+extern void c2_exit_to_overworld_2_switch(void);
+extern void npc_set_running_behaviour_etc(struct MapObject *, u8);
+extern void c2_whiteout(void);
+extern void sub_800E7C4(void);
+extern void sub_8081AA4(void);
+extern void sub_8081A18(void);
+extern void sub_8081C8C(void);
+extern void sub_80C824C(void);
+extern void sub_8081CEC(void);
+extern void sub_8080E44(void);
+extern void sub_80821D8(void);
+extern void sub_8082228(void);
+extern void sub_808260C(void);
+extern void sub_8082CB8(void);
+extern u8 *sub_80BCCE8(void);
+extern void CB2_ChooseStarter(void);
+extern void sub_811AABC(u8);
+extern u8 sub_811AAE8(void);
+extern u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8);
+extern u8 *sub_8082880(void);
+extern u8 sub_803FC58(u16);
+extern bool32 FieldPoisonEffectIsRunning(void);
+extern bool32 GetSafariZoneFlag(void);
+extern void player_bitmagic(void);
+
+u8 GetWildBattleTransition(void);
+u8 GetTrainerBattleTransition(void);
+bool32 battle_exit_is_player_defeat(u32 a1);
+u8 *sub_808281C(void);
+u16 sub_8082C4C(u16 a1);
+
+extern u16 gScriptResult;
+
+struct TrainerPartyMember0
+{
+ u16 iv;
+ u8 level;
+ u16 species;
+};
+
+struct TrainerPartyMember1
+{
+ u16 iv;
+ u8 level;
+ u16 species;
+ u16 moves[4];
+};
+
+struct TrainerPartyMember2
+{
+ u16 iv;
+ u8 level;
+ u16 species;
+ u16 heldItem;
+};
+
+struct TrainerPartyMember3
+{
+ u16 iv;
+ u8 level;
+ u16 species;
+ u16 heldItem;
+ u16 moves[4];
+};
+
+struct TrainerBattleSpec
+{
+ void *ptr;
+ u8 ptrType;
+};
+
+struct TrainerEyeTrainer
+{
+ u16 trainerNums[5];
+ u16 mapGroup;
+ u16 mapNum;
+};
+
+extern u16 MapGridGetMetatileBehaviorAt(s16, s16);
+extern bool8 MetatileBehavior_IsTallGrass(char);
+extern bool8 MetatileBehavior_IsLongGrass(char);
+extern bool8 MetatileBehavior_IsSandOrDeepSand(char);
+extern bool8 MetatileBehavior_IsSurfableWaterOrUnderwater(char);
+extern bool8 MetatileBehavior_IsBridge(char);
+extern bool8 sub_80574C4(char);
+extern bool8 sub_80574D8(char);
+extern bool8 sub_8057568(char);
+extern u8 TestPlayerAvatarFlags(u8);
+extern u8 sub_8057450(u8);
+extern u8 GetSav1Weather(void);
+extern void PlayNewMapMusic(u16);
+
+extern u8 ScriptGiveMon(u16, u8, u16, u32, u32, u8);
+
+extern void (*gUnknown_0300485C)(void);
+
+extern struct Pokemon gEnemyParty[];
+extern struct Pokemon gPlayerParty[];
+extern struct Trainer gTrainers[];
+
+EWRAM_DATA u16 gTrainerBattleMode = 0;
+EWRAM_DATA u16 gTrainerBattleOpponent = 0;
+EWRAM_DATA u16 gTrainerMapObjectLocalId = 0;
+EWRAM_DATA u8 *gTrainerIntroSpeech = NULL;
+EWRAM_DATA u8 *gTrainerDefeatSpeech = NULL;
+EWRAM_DATA u8 *gTrainerVictorySpeech = NULL;
+EWRAM_DATA u8 *gTrainerCannotBattleSpeech = NULL;
+EWRAM_DATA u8 *gTrainerBattleScriptReturnAddress = NULL;
+EWRAM_DATA u8 *gTrainerBattleEndScript = NULL;
+
+extern struct TrainerEyeTrainer gTrainerEyeTrainers[];
+
+extern u8 gOtherText_CancelWithTerminator[];
+
+extern u16 gUnknown_020239F8;
+extern u16 gScriptLastTalked;
+extern u8 gUnknown_02024D26;
+extern u16 gBadgeFlags[];
+
+extern struct MapObject gMapObjects[];
+
+extern u8 gUnknown_0819F818[];
+extern u8 gUnknown_0819F840[];
+extern u8 gUnknown_0819F878[];
+extern u8 gUnknown_0819F887[];
+extern u8 gUnknown_0819F8AE[];
+
+extern u8 gUnknown_0819F80B[];
+extern u8 gUnknown_081C6C02[];
+
+extern struct TrainerBattleSpec gTrainerBattleSpecs_0[];
+extern struct TrainerBattleSpec gTrainerBattleSpecs_1[];
+extern struct TrainerBattleSpec gTrainerBattleSpecs_2[];
+extern struct TrainerBattleSpec gTrainerBattleSpecs_3[];
+extern struct TrainerBattleSpec gTrainerBattleSpecs_4[];
+
+extern u8 gStringVar4[];
+
+extern u8 gBattleTransitionTable_Wild[][2];
+extern u8 gBattleTransitionTable_Trainer[][2];
+
+void sub_8082188(void);
+
+void task01_battle_start(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ switch (data[0])
+ {
+ case 0:
+ if (!FieldPoisonEffectIsRunning()) // is poison not active?
+ {
+ sub_811AABC(data[1]);
+ data[0]++; // go to case 1.
+ }
+ break;
+ case 1:
+ if (sub_811AAE8() == TRUE)
+ {
+ SetMainCallback2(sub_800E7C4);
+ prev_quest_postbuffer_cursor_backup_reset();
+ overworld_poison_timer_set();
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+void task_add_01_battle_start(u8 transition, u16 song)
+{
+ u8 taskId = CreateTask(task01_battle_start, 1);
+
+ gTasks[taskId].data[1] = transition;
+ current_map_music_set__default_for_battle(song);
+}
+
+void CheckForSafariZoneAndProceed(void)
+{
+ if (GetSafariZoneFlag())
+ sub_8081AA4();
+ else
+ sub_8081A18();
+}
+
+void sub_8081A18(void)
+{
+ ScriptContext2_Enable();
+ player_bitmagic();
+ sub_80597F4();
+ gMain.field_8 = sub_8081C8C;
+ gUnknown_020239F8 = 0;
+ task_add_01_battle_start(GetWildBattleTransition(), 0);
+ sav12_xor_increment(7);
+ sav12_xor_increment(8);
+}
+
+void sub_8081A5C(void)
+{
+ ScriptContext2_Enable();
+ player_bitmagic();
+ sub_80597F4();
+ gMain.field_8 = sub_8081C8C;
+ gUnknown_020239F8 = 1024;
+ task_add_01_battle_start(GetWildBattleTransition(), 0);
+ sav12_xor_increment(7);
+ sav12_xor_increment(8);
+}
+
+void sub_8081AA4(void)
+{
+ ScriptContext2_Enable();
+ player_bitmagic();
+ sub_80597F4();
+ gMain.field_8 = sub_80C824C;
+ gUnknown_020239F8 = 128;
+ task_add_01_battle_start(GetWildBattleTransition(), 0);
+}
+
+void task_add_01_battle_start_with_music_and_stats(void)
+{
+ task_add_01_battle_start(GetTrainerBattleTransition(), 0);
+ sav12_xor_increment(7);
+ sav12_xor_increment(9);
+}
+
+//Initiates battle where Wally catches Ralts
+void sub_8081AFC(void)
+{
+ CreateMaleMon(&gEnemyParty[0], SPECIES_RALTS, 5);
+ ScriptContext2_Enable();
+ gMain.field_8 = c2_exit_to_overworld_1_continue_scripts_restart_music;
+ gUnknown_020239F8 = 512;
+ task_add_01_battle_start(8, 0);
+}
+
+void sub_8081B3C(void)
+{
+ ScriptContext2_Enable();
+ gMain.field_8 = sub_8081CEC;
+ gUnknown_020239F8 = 0;
+ task_add_01_battle_start(GetWildBattleTransition(), 0);
+ sav12_xor_increment(7);
+ sav12_xor_increment(8);
+}
+
+void sub_8081B78(void)
+{
+ ScriptContext2_Enable();
+ gMain.field_8 = sub_8081CEC;
+ gUnknown_020239F8 = 0x2000;
+ task_add_01_battle_start(GetWildBattleTransition(), 0);
+ sav12_xor_increment(7);
+ sav12_xor_increment(8);
+}
+
+void sub_8081BB8(void)
+{
+ ScriptContext2_Enable();
+ gMain.field_8 = sub_8081CEC;
+ gUnknown_020239F8 = 0x2000;
+ task_add_01_battle_start(0, BGM_BATTLE34);
+ sav12_xor_increment(7);
+ sav12_xor_increment(8);
+}
+
+void sub_8081BF8(void)
+{
+ ScriptContext2_Enable();
+ gMain.field_8 = sub_8081CEC;
+ gUnknown_020239F8 = 12288;
+ if (gGameVersion == 2)
+ task_add_01_battle_start(0xB, BGM_BATTLE34); // KYOGRE
+ else
+ task_add_01_battle_start(0x6, BGM_BATTLE34); // GROUDON
+ sav12_xor_increment(7);
+ sav12_xor_increment(8);
+}
+
+void sub_8081C50(void)
+{
+ ScriptContext2_Enable();
+ gMain.field_8 = sub_8081CEC;
+ gUnknown_020239F8 = 24576;
+ task_add_01_battle_start(0xA, BGM_BATTLE36);
+ sav12_xor_increment(7);
+ sav12_xor_increment(8);
+}
+
+void sub_8081C8C(void)
+{
+ CpuFill16(0, (void *)BG_PLTT, BG_PLTT_SIZE);
+ ResetOamRange(0, 128);
+
+ if (battle_exit_is_player_defeat(gUnknown_02024D26) == TRUE)
+ {
+ SetMainCallback2(c2_whiteout);
+ }
+ else
+ {
+ SetMainCallback2(c2_exit_to_overworld_2_switch);
+ gUnknown_0300485C = sub_8080E44;
+ }
+}
+
+void sub_8081CEC(void)
+{
+ CpuFill16(0, (void *)BG_PLTT, BG_PLTT_SIZE);
+ ResetOamRange(0, 128);
+
+ if (battle_exit_is_player_defeat(gUnknown_02024D26) == TRUE)
+ SetMainCallback2(c2_whiteout);
+ else
+ SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+}
+
+s8 sub_8081D3C(void)
+{
+ u16 tileBehavior;
+ s16 x, y;
+
+ PlayerGetDestCoords(&x, &y);
+ tileBehavior = MapGridGetMetatileBehaviorAt(x, y);
+
+ if (MetatileBehavior_IsTallGrass(tileBehavior))
+ return 0;
+ if (MetatileBehavior_IsLongGrass(tileBehavior))
+ return 1;
+ if (MetatileBehavior_IsSandOrDeepSand(tileBehavior))
+ return 2;
+ switch (gMapHeader.light)
+ {
+ case 1:
+ case 2:
+ case 3:
+ break;
+ case 4:
+ if (sub_80574C4(tileBehavior))
+ return 8;
+ if (MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior))
+ return 5;
+ return 7;
+ case 8:
+ case 9:
+ return 8;
+ case 5:
+ return 3;
+ case 6:
+ if (MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior))
+ return 4;
+ return 9;
+ }
+ if (sub_8057568(tileBehavior))
+ return 4;
+ if (MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior))
+ return 5;
+ if (sub_80574D8(tileBehavior))
+ return 6;
+ if (TestPlayerAvatarFlags(8))
+ {
+ if (sub_8057450(tileBehavior))
+ return 5;
+ if (MetatileBehavior_IsBridge(tileBehavior) == TRUE)
+ return 4;
+ }
+ if (gSaveBlock1.location.mapGroup == 0 && gSaveBlock1.location.mapNum == 28)
+ return 2;
+ if (GetSav1Weather() == 8)
+ return 2;
+ return 9;
+}
+
+s8 sub_8081E90(void)
+{
+ u8 flashUsed;
+ u16 tileBehavior;
+ s16 x, y;
+
+ PlayerGetDestCoords(&x, &y);
+ tileBehavior = MapGridGetMetatileBehaviorAt(x, y);
+
+ flashUsed = sav1_get_flash_used_on_map();
+
+ if (flashUsed)
+ return 2;
+
+ if (!MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior))
+ {
+ switch (gMapHeader.light)
+ {
+ case 4:
+ return 1;
+ case 5:
+ return 3;
+ default:
+ return 0;
+ }
+ }
+ return 3;
+}
+
+u16 GetSumOfPartyMonLevel(u8 numMons)
+{
+ u8 sum = 0;
+ int i;
+
+ for (i = 0; i < 6; i++)
+ {
+ u32 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2);
+
+ if (species != 412 && species != 0 && GetMonData(&gPlayerParty[i], MON_DATA_HP) != 0)
+ {
+ sum += GetMonData(&gPlayerParty[i], MON_DATA_LEVEL);
+ numMons--;
+ if (numMons == 0)
+ break;
+ }
+ }
+ return sum;
+}
+
+u8 GetSumOfEnemyPartyLevel(u16 trainerNum, u8 numMons)
+{
+ u8 i;
+ u8 sum;
+ u32 count = numMons;
+ void *party;
+
+ if (gTrainers[trainerNum].partySize < count)
+ count = gTrainers[trainerNum].partySize;
+
+ sum = 0;
+
+ switch (gTrainers[trainerNum].partyFlags)
+ {
+ case 0:
+ party = gTrainers[trainerNum].party;
+ for (i = 0; i < count; i++)
+ sum += ((struct TrainerPartyMember0 *)party)[i].level;
+ break;
+ case 1:
+ party = gTrainers[trainerNum].party;
+ for (i = 0; i < count; i++)
+ sum += ((struct TrainerPartyMember1 *)party)[i].level;
+ break;
+ case 2:
+ party = gTrainers[trainerNum].party;
+ for (i = 0; i < count; i++)
+ sum += ((struct TrainerPartyMember2 *)party)[i].level;
+ break;
+ case 3:
+ party = gTrainers[trainerNum].party;
+ for (i = 0; i < count; i++)
+ sum += ((struct TrainerPartyMember3 *)party)[i].level;
+ break;
+ }
+
+ return sum;
+}
+
+u8 GetWildBattleTransition(void)
+{
+ u8 flashVar = sub_8081E90();
+ u8 level = GetMonData(&gEnemyParty[0], MON_DATA_LEVEL);
+
+ if (level < (u8)GetSumOfPartyMonLevel(1)) // is wild mon level than the player's mon level?
+ return gBattleTransitionTable_Wild[flashVar][0];
+ else
+ return gBattleTransitionTable_Wild[flashVar][1]; // use a white fade in instead of normal transition.
+}
+
+u8 GetTrainerBattleTransition(void)
+{
+ struct Trainer *trainer;
+ u8 trainerClass;
+ u8 partyCount;
+ u8 flashVar;
+ u8 level;
+
+ if (gTrainerBattleOpponent == 1024) // link battle?
+ return 16;
+
+ trainer = gTrainers;
+
+ if (trainer[gTrainerBattleOpponent].trainerClass == 24) // league?
+ {
+ if (gTrainerBattleOpponent == 261)
+ return 12;
+ if (gTrainerBattleOpponent == 262)
+ return 13;
+ if (gTrainerBattleOpponent == 263)
+ return 14;
+ if (gTrainerBattleOpponent == 264)
+ return 15;
+ return 16;
+ }
+
+ if (trainer[gTrainerBattleOpponent].trainerClass == 32) // team leader?
+ return 16;
+
+ if (trainer[gTrainerBattleOpponent].doubleBattle == TRUE)
+ partyCount = 2; // double battles always at least have 2 pokemon.
+ else
+ partyCount = 1;
+
+ flashVar = sub_8081E90();
+ level = GetSumOfEnemyPartyLevel(gTrainerBattleOpponent, partyCount);
+
+ if (level < (u8)GetSumOfPartyMonLevel(partyCount)) // is wild mon level than the player's mon level?
+ return gBattleTransitionTable_Trainer[flashVar][0];
+ else
+ return gBattleTransitionTable_Trainer[flashVar][1];
+}
+
+u8 GetBattleTowerBattleTransition(void)
+{
+ u8 monData = GetMonData(&gEnemyParty[0], MON_DATA_LEVEL);
+
+ if (monData < (u8)GetSumOfPartyMonLevel(1))
+ return 4;
+ else
+ return 3;
+}
+
+void sub_8082168(void)
+{
+ SetMainCallback2(CB2_ChooseStarter);
+ gMain.field_8 = sub_8082188;
+}
+
+void sub_8082188(void)
+{
+ u16 starterPoke;
+
+ *GetVarPointer(0x4023) = gScriptResult;
+ starterPoke = GetStarterPokemon(gScriptResult);
+ ScriptGiveMon(starterPoke, 5, 0, 0, 0, 0);
+ ResetTasks();
+ sub_80408BC();
+ SetMainCallback2(sub_80821D8);
+ sub_811AAD8(0);
+}
+
+void sub_80821D8(void)
+{
+ UpdatePaletteFade();
+ RunTasks();
+
+ if (sub_811AAE8() == TRUE)
+ {
+ gUnknown_020239F8 = 16;
+ gMain.field_8 = sub_8082228;
+ SetMainCallback2(sub_800E7C4);
+ prev_quest_postbuffer_cursor_backup_reset();
+ overworld_poison_timer_set();
+ sav12_xor_increment(7);
+ sav12_xor_increment(8);
+ }
+}
+
+void sub_8082228(void)
+{
+ sav1_reset_battle_music_maybe();
+ SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+}
+
+u32 TrainerBattleLoadArg32(u8 *ptr)
+{
+ return ptr[0] | (ptr[1] << 8) | (ptr[2] << 16) | (ptr[3] << 24);
+}
+
+u16 TrainerBattleLoadArg16(u8 *ptr)
+{
+ return ptr[0] | (ptr[1] << 8);
+}
+
+u8 TrainerBattleLoadArg8(u8 *ptr)
+{
+ return ptr[0];
+}
+
+u16 trainerflag_opponent(void)
+{
+ return TRAINER_FLAG_START + gTrainerBattleOpponent;
+}
+
+bool32 battle_exit_is_player_defeat(u32 a1)
+{
+ switch (a1 - 1)
+ {
+ case 1:
+ case 2:
+ return TRUE;
+ case 0:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ return FALSE;
+ }
+ return FALSE;
+}
+
+void sub_80822BC(void)
+{
+ gTrainerBattleMode = 0;
+ gTrainerBattleOpponent = 0;
+ gTrainerMapObjectLocalId = 0;
+ gTrainerIntroSpeech = 0;
+ gTrainerDefeatSpeech = 0;
+ gTrainerVictorySpeech = 0;
+ gTrainerCannotBattleSpeech = 0;
+ gTrainerBattleScriptReturnAddress = 0;
+ gTrainerBattleEndScript = 0;
+}
+
+void TrainerBattleLoadArgs(struct TrainerBattleSpec *specs, u8 *data)
+{
+ while (1)
+ {
+ switch (specs->ptrType)
+ {
+ case 0:
+ *(u8 *)specs->ptr = TrainerBattleLoadArg8(data);
+ data++;
+ break;
+ case 1:
+ *(u16 *)specs->ptr = TrainerBattleLoadArg16(data);
+ data += 2;
+ break;
+ case 2:
+ *(u32 *)specs->ptr = TrainerBattleLoadArg32(data);
+ data += 4;
+ break;
+ case 3:
+ *(u8 *)specs->ptr = 0;
+ break;
+ case 4:
+ *(u16 *)specs->ptr = 0;
+ break;
+ case 5:
+ *(u32 *)specs->ptr = 0;
+ break;
+ case 6:
+ *(u8 **)specs->ptr = data;
+ return;
+ }
+ specs++;
+ }
+}
+
+void battle_80801F0(void)
+{
+ if (gTrainerMapObjectLocalId)
+ {
+ gScriptLastTalked = gTrainerMapObjectLocalId;
+ gSelectedMapObject = GetFieldObjectIdByLocalIdAndMap(gTrainerMapObjectLocalId, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup);
+ }
+}
+
+u8 *TrainerBattleConfigure(u8 *data)
+{
+ sub_80822BC();
+ gTrainerBattleMode = TrainerBattleLoadArg8(data);
+
+ switch (gTrainerBattleMode)
+ {
+ case 3:
+ TrainerBattleLoadArgs(gTrainerBattleSpecs_3, data);
+ return gUnknown_0819F878;
+ case 4:
+ TrainerBattleLoadArgs(gTrainerBattleSpecs_2, data);
+ battle_80801F0();
+ return gUnknown_0819F840;
+ case 1:
+ case 2:
+ TrainerBattleLoadArgs(gTrainerBattleSpecs_1, data);
+ battle_80801F0();
+ return gUnknown_0819F818;
+ case 6:
+ case 8:
+ TrainerBattleLoadArgs(gTrainerBattleSpecs_4, data);
+ battle_80801F0();
+ return gUnknown_0819F840;
+ case 7:
+ TrainerBattleLoadArgs(gTrainerBattleSpecs_2, data);
+ battle_80801F0();
+ gTrainerBattleOpponent = sub_8082C4C(gTrainerBattleOpponent);
+ return gUnknown_0819F8AE;
+ case 5:
+ TrainerBattleLoadArgs(gTrainerBattleSpecs_0, data);
+ battle_80801F0();
+ gTrainerBattleOpponent = sub_8082C4C(gTrainerBattleOpponent);
+ return gUnknown_0819F887;
+ default:
+ TrainerBattleLoadArgs(gTrainerBattleSpecs_0, data);
+ battle_80801F0();
+ return gUnknown_0819F818;
+ }
+}
+
+void TrainerWantsBattle(u8 trainerMapObjId, u8 *trainerScript)
+{
+ gSelectedMapObject = trainerMapObjId;
+ gScriptLastTalked = gMapObjects[trainerMapObjId].localId;
+ TrainerBattleConfigure(trainerScript + 1);
+ ScriptContext1_SetupScript(gUnknown_0819F80B);
+ ScriptContext2_Enable();
+}
+
+u8 GetTrainerFlagFromScriptPointer(u8 *data)
+{
+ u32 flag = TrainerBattleLoadArg16(data + 2);
+ return FlagGet(TRAINER_FLAG_START + flag);
+}
+
+void sub_8082524(void)
+{
+ struct MapObject *mapObject = &gMapObjects[gSelectedMapObject];
+
+ npc_set_running_behaviour_etc(mapObject, npc_running_behaviour_by_direction(mapObject->mapobj_unk_18));
+}
+
+u8 sub_8082558(void)
+{
+ return gTrainerBattleMode;
+}
+
+u8 sub_8082564(void)
+{
+ return FlagGet(trainerflag_opponent());
+}
+
+void sub_808257C(void)
+{
+ FlagSet(trainerflag_opponent());
+}
+
+void unref_sub_8082590(void)
+{
+ FlagSet(trainerflag_opponent()); // duplicate function
+}
+
+u8 trainer_flag_check(u16 flag)
+{
+ return FlagGet(TRAINER_FLAG_START + flag);
+}
+
+void trainer_flag_set(u16 flag)
+{
+ FlagSet(TRAINER_FLAG_START + flag);
+}
+
+void trainer_flag_clear(u16 flag)
+{
+ FlagReset(TRAINER_FLAG_START + flag);
+}
+
+void sub_80825E4(void)
+{
+ gUnknown_020239F8 = 8;
+ gMain.field_8 = sub_808260C;
+ task_add_01_battle_start_with_music_and_stats();
+ ScriptContext1_Stop();
+}
+
+void sub_808260C(void)
+{
+ if (gTrainerBattleOpponent == 1024)
+ {
+ SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); // link battle?
+ }
+ else if (battle_exit_is_player_defeat(gUnknown_02024D26) == TRUE)
+ {
+ SetMainCallback2(c2_whiteout);
+ }
+ else
+ {
+ SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+ sub_808257C();
+ }
+}
+
+void do_choose_name_or_words_screen(void)
+{
+ if (gTrainerBattleOpponent == 1024)
+ {
+ SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); // link battle?
+ }
+ else if (battle_exit_is_player_defeat(gUnknown_02024D26) == TRUE)
+ {
+ SetMainCallback2(c2_whiteout);
+ }
+ else
+ {
+ SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+ sub_808257C();
+ sub_8082CB8();
+ }
+}
+
+void sub_80826B0(void)
+{
+ gUnknown_020239F8 = 8;
+ gMain.field_8 = do_choose_name_or_words_screen;
+ task_add_01_battle_start_with_music_and_stats();
+ ScriptContext1_Stop();
+}
+
+void sub_80826D8(void)
+{
+ ShowFieldMessage(sub_808281C());
+}
+
+u8 *sub_80826E8(void)
+{
+ if (gTrainerBattleScriptReturnAddress)
+ return gTrainerBattleScriptReturnAddress;
+ else
+ return gUnknown_081C6C02;
+}
+
+u8 *sub_8082700(void)
+{
+ if (gTrainerBattleEndScript)
+ return gTrainerBattleEndScript;
+ else
+ return gUnknown_081C6C02;
+}
+
+void sub_8082718()
+{
+ ShowFieldMessage(sub_8082880());
+}
+
+void PlayTrainerEncounterMusic(void)
+{
+ u16 music;
+
+ if (gTrainerBattleMode != 1 && gTrainerBattleMode != 8)
+ {
+ switch (sub_803FC58(gTrainerBattleOpponent))
+ {
+ case TRAINER_ENCOUNTER_MUSIC_MALE:
+ music = BGM_BOYEYE;
+ break;
+ case TRAINER_ENCOUNTER_MUSIC_FEMALE:
+ music = BGM_GIRLEYE;
+ break;
+ case TRAINER_ENCOUNTER_MUSIC_GIRL:
+ music = BGM_SYOUJOEYE;
+ break;
+ case TRAINER_ENCOUNTER_MUSIC_INTENSE:
+ music = BGM_HAGESHII;
+ break;
+ case TRAINER_ENCOUNTER_MUSIC_COOL:
+ music = BGM_KAKKOII;
+ break;
+ case TRAINER_ENCOUNTER_MUSIC_AQUA:
+ music = BGM_AQA_0;
+ break;
+ case TRAINER_ENCOUNTER_MUSIC_MAGMA:
+ music = BGM_MGM0;
+ break;
+ case TRAINER_ENCOUNTER_MUSIC_SWIMMER:
+ music = BGM_SWIMEYE;
+ break;
+ case TRAINER_ENCOUNTER_MUSIC_TWINS:
+ music = BGM_HUTAGO;
+ break;
+ case TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR:
+ music = BGM_SITENNOU;
+ break;
+ case TRAINER_ENCOUNTER_MUSIC_HIKER:
+ music = BGM_YAMA_EYE;
+ break;
+ case TRAINER_ENCOUNTER_MUSIC_INTERVIEWER:
+ music = BGM_INTER_V;
+ break;
+ case TRAINER_ENCOUNTER_MUSIC_RICH:
+ music = BGM_TEST;
+ break;
+ default:
+ music = BGM_AYASII;
+ }
+ PlayNewMapMusic(music);
+ }
+}
+
+//Returns an empty string if a null pointer was passed, otherwise returns str
+u8 *SanitizeString(u8 *str)
+{
+ if (str)
+ return str;
+ else
+ return gOtherText_CancelWithTerminator;
+}
+
+u8 *sub_808281C(void)
+{
+ return SanitizeString(gTrainerIntroSpeech);
+}
+
+u8 *sub_8082830(void)
+{
+ u8 *str;
+
+ if (gTrainerBattleOpponent == 1024)
+ str = sub_80BCCE8();
+ else
+ str = gTrainerDefeatSpeech;
+
+ StringExpandPlaceholders(gStringVar4, SanitizeString(str));
+ return gStringVar4;
+}
+
+u8 *unref_sub_808286C(void)
+{
+ return SanitizeString(gTrainerVictorySpeech);
+}
+
+u8 *sub_8082880(void)
+{
+ return SanitizeString(gTrainerCannotBattleSpeech);
+}
+
+s32 sub_8082894(struct TrainerEyeTrainer *trainers, u16 trainerNum)
+{
+ s32 i;
+
+ for (i = 0; i < NUM_TRAINER_EYE_TRAINERS; i++)
+ {
+ if (trainers[i].trainerNums[0] == trainerNum)
+ return i;
+ }
+ return -1;
+}
+
+s32 sub_80828B8(struct TrainerEyeTrainer *trainers, u16 trainerNum)
+{
+ s32 i;
+ s32 j;
+
+ for (i = 0; i < NUM_TRAINER_EYE_TRAINERS; i++)
+ {
+ for (j = 0; j < 5 && trainers[i].trainerNums[j] != 0; j++)
+ {
+ if (trainers[i].trainerNums[j] == trainerNum)
+ return i;
+ }
+ }
+ return -1;
+}
+
+bool32 sub_80828FC(struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum)
+{
+ int i;
+ bool32 ret = FALSE;
+
+ for (i = 0; i < NUM_TRAINER_EYE_TRAINERS; i++)
+ {
+ if (trainers[i].mapGroup == mapGroup && trainers[i].mapNum == mapNum)
+ {
+ if (gSaveBlock1.trainerRematches[i] != 0)
+ ret = TRUE;
+ else if (trainer_flag_check(trainers[i].trainerNums[0]) == TRUE && (Random() % 100) <= 30)
+ {
+ int j = 1;
+
+ while (j < 5 && trainers[i].trainerNums[j] != 0 && trainer_flag_check(trainers[i].trainerNums[j]))
+ j++;
+ gSaveBlock1.trainerRematches[i] = j;
+ ret = TRUE;
+ }
+ }
+ }
+ return ret;
+}
+
+s32 sub_80829A8(struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum)
+{
+ s32 i;
+
+ for (i = 0; i < NUM_TRAINER_EYE_TRAINERS; i++)
+ {
+ if (trainers[i].mapGroup == mapGroup && trainers[i].mapNum == mapNum && gSaveBlock1.trainerRematches[i])
+ return 1;
+ }
+ return 0;
+}
+
+s32 sub_80829E8(struct TrainerEyeTrainer *trainers, u16 mapGroup, u16 mapNum)
+{
+ s32 i;
+
+ for (i = 0; i < NUM_TRAINER_EYE_TRAINERS; i++)
+ {
+ if (trainers[i].mapGroup == mapGroup && trainers[i].mapNum == mapNum)
+ return 1;
+ }
+ return 0;
+}
+
+bool8 sub_8082A18(struct TrainerEyeTrainer *trainers, u16 trainerNum)
+{
+ s32 trainerEyeIndex = sub_8082894(trainers, trainerNum);
+
+ if (trainerEyeIndex != -1 && trainerEyeIndex < 100 && gSaveBlock1.trainerRematches[trainerEyeIndex])
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 sub_8082A54(struct TrainerEyeTrainer *trainers, u16 trainerNum)
+{
+ s32 trainerEyeIndex = sub_80828B8(trainers, trainerNum);
+
+ if (trainerEyeIndex != -1 && trainerEyeIndex < 100 && gSaveBlock1.trainerRematches[trainerEyeIndex])
+ return TRUE;
+ else
+ return FALSE;
+}
+
+u16 sub_8082A90(struct TrainerEyeTrainer *trainers, u16 trainerNum)
+{
+ int i;
+ struct TrainerEyeTrainer *trainer;
+ s32 trainerEyeIndex = sub_8082894(trainers, trainerNum);
+
+ if (trainerEyeIndex == -1)
+ return 0;
+ trainer = &trainers[trainerEyeIndex];
+ for (i = 1; i < 5; i++)
+ {
+ if (!trainer->trainerNums[i])
+ return trainer->trainerNums[i - 1];
+ if (!trainer_flag_check(trainer->trainerNums[i]))
+ return trainer->trainerNums[i];
+ }
+ return trainer->trainerNums[4];
+}
+
+void sub_8082AE4(struct TrainerEyeTrainer *trainers, u16 trainerNum)
+{
+ s32 trainerEyeIndex = sub_80828B8(trainers, trainerNum);
+
+ if (trainerEyeIndex != -1)
+ gSaveBlock1.trainerRematches[trainerEyeIndex] = 0;
+}
+
+bool8 sub_8082B10(struct TrainerEyeTrainer *trainers, u16 trainerNum)
+{
+ s32 trainerEyeIndex = sub_8082894(trainers, trainerNum);
+
+ if (trainerEyeIndex != -1 && trainer_flag_check(trainers[trainerEyeIndex].trainerNums[1]))
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool32 sub_8082B44(void)
+{
+ int badgeCount = 0;
+ u32 i;
+
+ for (i = 0; i < 8; i++)
+ {
+ if (FlagGet(gBadgeFlags[i]) == TRUE)
+ {
+ badgeCount++;
+ if (badgeCount >= 5)
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+void sub_8082B78(void)
+{
+ if (sub_8082B44())
+ {
+ if (gSaveBlock1.trainerRematchStepCounter >= TRAINER_REMATCH_STEPS)
+ gSaveBlock1.trainerRematchStepCounter = TRAINER_REMATCH_STEPS;
+ else
+ gSaveBlock1.trainerRematchStepCounter++;
+ }
+}
+
+bool32 sub_8082BA4(void)
+{
+ if (sub_8082B44() && gSaveBlock1.trainerRematchStepCounter >= TRAINER_REMATCH_STEPS)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void sub_8082BD0(u16 mapGroup, u16 mapNum)
+{
+ if (sub_8082BA4() && sub_80828FC(gTrainerEyeTrainers, mapGroup, mapNum) == TRUE)
+ gSaveBlock1.trainerRematchStepCounter = 0;
+}
+
+s32 sub_8082C0C(u16 mapGroup, u16 mapNum)
+{
+ return sub_80829A8(gTrainerEyeTrainers, mapGroup, mapNum);
+}
+
+s32 unref_sub_8082C2C(u16 mapGroup, u16 mapNum)
+{
+ return sub_80829E8(gTrainerEyeTrainers, mapGroup, mapNum);
+}
+
+u16 sub_8082C4C(u16 trainerNum)
+{
+ return sub_8082A90(gTrainerEyeTrainers, trainerNum);
+}
+
+s32 sub_8082C68(void)
+{
+ if (sub_8082A18(gTrainerEyeTrainers, gTrainerBattleOpponent))
+ return 1;
+ else
+ return sub_8082B10(gTrainerEyeTrainers, gTrainerBattleOpponent);
+}
+
+u8 sub_8082C9C(void)
+{
+ return sub_8082A54(gTrainerEyeTrainers, gTrainerBattleOpponent);
+}
+
+void sub_8082CB8(void)
+{
+ sub_8082AE4(gTrainerEyeTrainers, gTrainerBattleOpponent);
+ sub_808257C();
+}
diff --git a/src/berry.c b/src/berry.c
index 11d261790..e00015477 100644
--- a/src/berry.c
+++ b/src/berry.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "text.h"
#define FIRST_BERRY 0x85 // ITEM_CHERI_BERRY
#define LAST_BERRY 0xaf // ITEM_ENIGMA_BERRY
@@ -19,453 +20,409 @@ extern u8 *GetFieldObjectScriptPointerForComparison();
extern struct Berry gBerries[];
extern u8 BerryTreeScript;
extern struct BerryTree gUnknown_083CD780;
-extern u16 gUnknown_0202E8DE;
-extern u16 gUnknown_0202E8CC;
-extern u16 gUnknown_0202E8CE;
-extern u16 gUnknown_0202E8D0;
+extern u16 gScriptItemId;
+extern u16 gScriptLastTalked;
+extern u16 gSpecialVar_0x8004;
+extern u16 gSpecialVar_0x8005;
+extern u16 gSpecialVar_0x8006;
u8 CalcBerryYield(struct BerryTree *tree);
void unref_sub_80B4884(void)
{
- CpuFill16(0, &gSaveBlock1.enigmaBerry, sizeof(gSaveBlock1.enigmaBerry));
+ CpuFill16(0, &gSaveBlock1.enigmaBerry, sizeof(gSaveBlock1.enigmaBerry));
}
// setEnigmaBerry
void sub_80B48A8(u8 *src)
{
- u8 *dest;
- struct SaveBlock1 *saveBlock;
- unsigned int i;
- dest = (u8*)&gSaveBlock1.enigmaBerry;
- saveBlock = &gSaveBlock1;
- for (i = 0; i < sizeof(gSaveBlock1.enigmaBerry); i++)
- {
- dest[i] = src[i];
- }
- gSaveBlock1.enigmaBerry.berry.description1 = gSaveBlock1.enigmaBerry.description1;
- gSaveBlock1.enigmaBerry.berry.description2 = gSaveBlock1.enigmaBerry.description2;
+ unsigned int i;
+ u8 *dest = (u8*)&gSaveBlock1.enigmaBerry;
+
+ for (i = 0; i < sizeof(gSaveBlock1.enigmaBerry); i++)
+ dest[i] = src[i];
+ gSaveBlock1.enigmaBerry.berry.description1 = gSaveBlock1.enigmaBerry.description1;
+ gSaveBlock1.enigmaBerry.berry.description2 = gSaveBlock1.enigmaBerry.description2;
}
// checksum
u32 sub_80B48F8(struct EnigmaBerry *enigmaBerry)
{
- u8 *description1;
- u8 *description2;
- unsigned int i;
- u32 checksum;
- u8 *dest;
+ u8 *description1;
+ u8 *description2;
+ unsigned int i;
+ u32 checksum;
+ u8 *dest;
- description1 = gSaveBlock1.enigmaBerry.berry.description1;
- description2 = gSaveBlock1.enigmaBerry.berry.description2;
- gSaveBlock1.enigmaBerry.berry.description1 = 0;
- gSaveBlock1.enigmaBerry.berry.description2 = 0;
+ description1 = gSaveBlock1.enigmaBerry.berry.description1;
+ description2 = gSaveBlock1.enigmaBerry.berry.description2;
+ gSaveBlock1.enigmaBerry.berry.description1 = 0;
+ gSaveBlock1.enigmaBerry.berry.description2 = 0;
- dest = (u8*)enigmaBerry;
- checksum = 0;
- for (i = 0; i < ((int)&gSaveBlock1.enigmaBerry.checksum - (int)&gSaveBlock1.enigmaBerry); i++)
- {
- checksum += dest[i];
- }
+ dest = (u8*)enigmaBerry;
+ checksum = 0;
+ for (i = 0; i < ((int)&gSaveBlock1.enigmaBerry.checksum - (int)&gSaveBlock1.enigmaBerry); i++)
+ {
+ checksum += dest[i];
+ }
- gSaveBlock1.enigmaBerry.berry.description1 = description1;
- gSaveBlock1.enigmaBerry.berry.description2 = description2;
+ gSaveBlock1.enigmaBerry.berry.description1 = description1;
+ gSaveBlock1.enigmaBerry.berry.description2 = description2;
- return checksum;
+ return checksum;
}
-int sub_80B4940(void)
+bool32 sub_80B4940(void)
{
- if (!gSaveBlock1.enigmaBerry.berry.stageDuration)
- return 0;
- if (!gSaveBlock1.enigmaBerry.berry.maxYield)
- return 0;
- if (sub_80B48F8(&gSaveBlock1.enigmaBerry) != gSaveBlock1.enigmaBerry.checksum)
- return 0;
- return 1;
+ if (!gSaveBlock1.enigmaBerry.berry.stageDuration)
+ return FALSE;
+ if (!gSaveBlock1.enigmaBerry.berry.maxYield)
+ return FALSE;
+ if (sub_80B48F8(&gSaveBlock1.enigmaBerry) != gSaveBlock1.enigmaBerry.checksum)
+ return FALSE;
+ return TRUE;
}
struct Berry *GetBerryInfo(u8 berry)
{
- if ((u8)berry == 0x2b)
- {
- if (sub_80B4940())
- return &gSaveBlock1.enigmaBerry.berry;
- }
- if ((u8)(berry - 1) > 0x2a)
- {
- berry = 1;
- }
- return &gBerries[berry - 1];
+ if (berry == 0x2B && sub_80B4940())
+ return &gSaveBlock1.enigmaBerry.berry;
+ else
+ {
+ if (berry == 0 || berry > 0x2B)
+ berry = 1;
+ return &gBerries[berry - 1];
+ }
}
struct BerryTree *GetBerryTreeInfo(u8 id)
{
- return &gSaveBlock1.berryTrees[id];
+ return &gSaveBlock1.berryTrees[id];
}
-int FieldObjectInteractionWaterBerryTree(void)
+bool32 FieldObjectInteractionWaterBerryTree(void)
{
- struct BerryTree *tree = GetBerryTreeInfo(FieldObjectGetBerryTreeId(gSelectedMapObject));
- switch (tree->stage)
- {
- case 1:
- tree->watered1 = 1;
- break;
- case 2:
- tree->watered2 = 1;
- break;
- case 3:
- tree->watered3 = 1;
- break;
- case 4:
- tree->watered4 = 1;
- break;
- default:
- return 0;
- }
- return 1;
+ struct BerryTree *tree = GetBerryTreeInfo(FieldObjectGetBerryTreeId(gSelectedMapObject));
+
+ switch (tree->stage)
+ {
+ case 1:
+ tree->watered1 = TRUE;
+ break;
+ case 2:
+ tree->watered2 = TRUE;
+ break;
+ case 3:
+ tree->watered3 = TRUE;
+ break;
+ case 4:
+ tree->watered4 = TRUE;
+ break;
+ default:
+ return FALSE;
+ }
+ return TRUE;
}
-int IsPlayerFacingPlantedBerryTree(void)
+bool32 IsPlayerFacingPlantedBerryTree(void)
{
- if (GetFieldObjectScriptPointerForComparison() == &BerryTreeScript)
- if (GetStageByBerryTreeId(FieldObjectGetBerryTreeId(gSelectedMapObject)) == 0)
- return 1;
- return 0;
+ if (GetFieldObjectScriptPointerForComparison() == &BerryTreeScript
+ && GetStageByBerryTreeId(FieldObjectGetBerryTreeId(gSelectedMapObject)) == 0)
+ return TRUE;
+ else
+ return FALSE;
}
u8 WaterBerryTree(void)
{
- if (GetFieldObjectScriptPointerForComparison() != &BerryTreeScript)
- return 0;
- return FieldObjectInteractionWaterBerryTree();
+ if (GetFieldObjectScriptPointerForComparison() != &BerryTreeScript)
+ return 0;
+ else
+ return FieldObjectInteractionWaterBerryTree();
}
void sub_80B4A90(void)
{
- int i;
- struct SaveBlock1 *saveBlock1 = &gSaveBlock1;
- struct BerryTree berryTree = gUnknown_083CD780;
- for (i = 127; i >= 0; i--)
- {
- saveBlock1->berryTrees[i] = berryTree;
- }
-}
-
-int BerryTreeGrow(struct BerryTree *tree)
-{
- if (tree->growthSparkle)
- return 0;
- switch (tree->stage)
- {
- case 0:
- return 0;
- case 4:
- tree->berryYield = CalcBerryYield(tree);
- case 1:
- case 2:
- case 3:
- tree->stage++;
- break;
- case 5:
- tree->watered1 = 0;
- tree->watered2 = 0;
- tree->watered3 = 0;
- tree->watered4 = 0;
- tree->berryYield = 0;
- tree->stage = 2;
- if (++tree->regrowthCount == 10)
- *tree = gUnknown_083CD780;
- break;
- }
- return 1;
+ int i;
+ struct SaveBlock1 *saveBlock1 = &gSaveBlock1;
+ struct BerryTree berryTree = gUnknown_083CD780;
+
+ for (i = 0; i < 128; i++)
+ saveBlock1->berryTrees[i] = berryTree;
+}
+
+bool32 BerryTreeGrow(struct BerryTree *tree)
+{
+ if (tree->growthSparkle)
+ return FALSE;
+ switch (tree->stage)
+ {
+ case 0:
+ return FALSE;
+ case 4:
+ tree->berryYield = CalcBerryYield(tree);
+ case 1:
+ case 2:
+ case 3:
+ tree->stage++;
+ break;
+ case 5:
+ tree->watered1 = 0;
+ tree->watered2 = 0;
+ tree->watered3 = 0;
+ tree->watered4 = 0;
+ tree->berryYield = 0;
+ tree->stage = 2;
+ if (++tree->regrowthCount == 10)
+ *tree = gUnknown_083CD780;
+ break;
+ }
+ return TRUE;
}
void BerryTreeTimeUpdate(int time)
{
- int i;
- struct BerryTree *tree;
- int time2;
- for (i = 0; i <= 0x7f; i++)
- {
- tree = &gSaveBlock1.berryTrees[i];
-
- if (tree->berry == 0)
- continue;
- if (tree->stage == 0)
- continue;
- if (tree->growthSparkle)
- continue;
-
- if (time >= GetStageDurationByBerryType(tree->berry) * 71)
- {
- *tree = gUnknown_083CD780;
- continue;
- }
-
- time2 = time;
- if (!time2)
- continue;
-
- if (tree->secondsUntilNextStage > time2)
- {
- tree->secondsUntilNextStage -= time2;
- time2 = tree->secondsUntilNextStage;
- continue;
- }
-
- while (1)
- {
- time2 -= tree->secondsUntilNextStage;
- tree->secondsUntilNextStage = GetStageDurationByBerryType(tree->berry);
- if (BerryTreeGrow(tree))
- {
- if (tree->stage == 5)
- {
- tree->secondsUntilNextStage *= 4;
- }
- if (!time2)
- {
- break;
- }
- }
- else
- {
- break;
- }
- if (tree->secondsUntilNextStage > time2)
- {
- tree->secondsUntilNextStage -= time2;
- time2 = tree->secondsUntilNextStage;
- break;
- }
- }
- }
-}
-
-void PlantBerryTree(u8 id, u8 berry, u8 stage, u8 sparkle)
-{
- struct BerryTree *tree;
- tree = GetBerryTreeInfo(id);
- *tree = gUnknown_083CD780;
- tree->berry = berry;
- tree->secondsUntilNextStage = GetStageDurationByBerryType(berry);
- tree->stage = stage;
- if (stage == 5)
- {
- tree->berryYield = CalcBerryYield(tree);
- tree->secondsUntilNextStage *= 4;
- }
- if (sparkle == 0)
- {
- tree->growthSparkle = 1;
- }
+ int i;
+ struct BerryTree *tree;
+
+ for (i = 0; i < 128; i++)
+ {
+ tree = &gSaveBlock1.berryTrees[i];
+
+ if (tree->berry && tree->stage && !tree->growthSparkle)
+ {
+ if (time >= GetStageDurationByBerryType(tree->berry) * 71)
+ {
+ *tree = gUnknown_083CD780;
+ }
+ else
+ {
+ int time2 = time;
+
+ while (time2 != 0)
+ {
+ if (tree->secondsUntilNextStage > time2)
+ {
+ tree->secondsUntilNextStage -= time2;
+ break;
+ }
+ time2 -= tree->secondsUntilNextStage;
+ tree->secondsUntilNextStage = GetStageDurationByBerryType(tree->berry);
+ if (!BerryTreeGrow(tree))
+ break;
+ if (tree->stage == 5)
+ tree->secondsUntilNextStage *= 4;
+ }
+ }
+ }
+ }
+}
+
+void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle)
+{
+ struct BerryTree *tree = GetBerryTreeInfo(id);
+
+ *tree = gUnknown_083CD780;
+ tree->berry = berry;
+ tree->secondsUntilNextStage = GetStageDurationByBerryType(berry);
+ tree->stage = stage;
+ if (stage == 5)
+ {
+ tree->berryYield = CalcBerryYield(tree);
+ tree->secondsUntilNextStage *= 4;
+ }
+ if (!sparkle)
+ {
+ tree->growthSparkle = TRUE;
+ }
}
void RemoveBerryTree(u8 id)
{
- gSaveBlock1.berryTrees[id] = gUnknown_083CD780;
+ gSaveBlock1.berryTrees[id] = gUnknown_083CD780;
}
u8 GetBerryTypeByBerryTreeId(u8 id)
{
- return gSaveBlock1.berryTrees[id].berry;
+ return gSaveBlock1.berryTrees[id].berry;
}
u8 GetStageByBerryTreeId(u8 id)
{
- return gSaveBlock1.berryTrees[id].stage;
+ return gSaveBlock1.berryTrees[id].stage;
}
u8 ItemIdToBerryType(u16 item)
{
- u16 berry = item - FIRST_BERRY;
- if (berry > LAST_BERRY - FIRST_BERRY)
- return 1;
- return item - FIRST_BERRY + 1;
+ u16 berry = item - FIRST_BERRY;
+
+ if (berry > LAST_BERRY - FIRST_BERRY)
+ return 1;
+ else
+ return item - FIRST_BERRY + 1;
}
u16 BerryTypeToItemId(u16 berry)
{
- u16 item = berry;
- item -= 1;
- if (item > LAST_BERRY - FIRST_BERRY)
- return FIRST_BERRY;
- item = berry;
- return item + FIRST_BERRY - 1;
+ u16 item = berry - 1;
+
+ if (item > LAST_BERRY - FIRST_BERRY)
+ return FIRST_BERRY;
+ else
+ return berry + FIRST_BERRY - 1;
}
void GetBerryNameByBerryType(u8 berry, u8 *string)
{
- struct Berry *info;
- info = GetBerryInfo(berry);
- memcpy(string, info->name, 6);
- string[6] = 0xff;
+ memcpy(string, GetBerryInfo(berry)->name, 6);
+ string[6] = EOS;
}
void ResetBerryTreeSparkleFlag(u8 id)
{
- struct BerryTree *tree;
- tree = GetBerryTreeInfo(id);
- tree->growthSparkle = 0;
+ GetBerryTreeInfo(id)->growthSparkle = 0;
}
u8 BerryTreeGetNumStagesWatered(struct BerryTree *tree)
{
- u8 count = 0;
- if (tree->watered1)
- count++;
- if (tree->watered2)
- count++;
- if (tree->watered3)
- count++;
- if (tree->watered4)
- count++;
- return count;
+ u8 count = 0;
+
+ if (tree->watered1)
+ count++;
+ if (tree->watered2)
+ count++;
+ if (tree->watered3)
+ count++;
+ if (tree->watered4)
+ count++;
+ return count;
}
u8 GetNumStagesWateredByBerryTreeId(u8 id)
{
- return BerryTreeGetNumStagesWatered(GetBerryTreeInfo(id));
-}
-
-u8 CalcBerryYieldInternal(u16 a1, u16 a2, u8 a3)
-{
- u32 v6;
- u32 v1;
- u32 v5;
- u32 v4;
- u16 random;
- u32 ret;
- v6 = a2;
- if (a3 == 0)
- return v6;
- v1 = a1 - v6;
- v5 = v1 * (a3 - 1);
- v4 = v1 * a3;
- random = Random();
- v4 -= v5;
- v4 += 1;
- v5 += random % v4;
- if ((v5 & 3) <= 1)
- {
- ret = v5 / 4;
- return ret + v6;
- }
- else
- {
- ret = v5 / 4 + 1;
- return ret + v6;
- }
+ return BerryTreeGetNumStagesWatered(GetBerryTreeInfo(id));
+}
+
+u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water)
+{
+ u32 randMin;
+ u32 randMax;
+ u32 rand;
+ u32 extraYield;
+
+ if (water == 0)
+ return min;
+ else
+ {
+ randMin = (max - min) * (water - 1);
+ randMax = (max - min) * (water);
+ rand = randMin + Random() % (randMax - randMin + 1);
+
+ if ((rand & 3) > 1)
+ extraYield = rand / 4 + 1;
+ else
+ extraYield = rand / 4;
+ return extraYield + min;
+ }
}
u8 CalcBerryYield(struct BerryTree *tree)
{
- struct Berry *berry = GetBerryInfo(tree->berry);
- u8 min = berry->minYield;
- u8 max = berry->maxYield;
- return CalcBerryYieldInternal(max, min, BerryTreeGetNumStagesWatered(tree));
+ struct Berry *berry = GetBerryInfo(tree->berry);
+ u8 min = berry->minYield;
+ u8 max = berry->maxYield;
+
+ return CalcBerryYieldInternal(max, min, BerryTreeGetNumStagesWatered(tree));
}
u8 GetBerryCountByBerryTreeId(u8 id)
{
- return gSaveBlock1.berryTrees[id].berryYield;
+ return gSaveBlock1.berryTrees[id].berryYield;
}
u16 GetStageDurationByBerryType(u8 berry)
{
- return GetBerryInfo(berry)->stageDuration * 60;
+ return GetBerryInfo(berry)->stageDuration * 60;
}
void FieldObjectInteractionGetBerryTreeData(void)
{
- u8 id;
- u8 berry;
- u8 unk;
- u8 group;
- u8 num;
- id = FieldObjectGetBerryTreeId(gSelectedMapObject);
- berry = GetBerryTypeByBerryTreeId(id);
- ResetBerryTreeSparkleFlag(id);
- unk = gUnknown_0202E8DE;
- num = gSaveBlock1.location.mapNum;
- group = gSaveBlock1.location.mapGroup;
-
- if (sub_8060234(unk, num, group))
- gUnknown_0202E8CC = 0xff;
- else
- gUnknown_0202E8CC = (u8)GetStageByBerryTreeId(id);
-
- gUnknown_0202E8CE = (u8)GetNumStagesWateredByBerryTreeId(id);
- gUnknown_0202E8D0 = (u8)GetBerryCountByBerryTreeId(id);
- GetBerryNameByBerryType(berry, gStringVar1);
+ u8 id;
+ u8 berry;
+ u8 unk;
+ u8 group;
+ u8 num;
+
+ id = FieldObjectGetBerryTreeId(gSelectedMapObject);
+ berry = GetBerryTypeByBerryTreeId(id);
+ ResetBerryTreeSparkleFlag(id);
+ unk = gScriptLastTalked;
+ num = gSaveBlock1.location.mapNum;
+ group = gSaveBlock1.location.mapGroup;
+ if (sub_8060234(unk, num, group))
+ gSpecialVar_0x8004 = 0xFF;
+ else
+ gSpecialVar_0x8004 = GetStageByBerryTreeId(id);
+ gSpecialVar_0x8005 = GetNumStagesWateredByBerryTreeId(id);
+ gSpecialVar_0x8006 = GetBerryCountByBerryTreeId(id);
+ GetBerryNameByBerryType(berry, gStringVar1);
}
void sub_80B4EE4(void)
{
- SetMainCallback2(sub_80A68CC);
+ SetMainCallback2(sub_80A68CC);
}
void FieldObjectInteractionPlantBerryTree(void)
{
- extern u16 word_203855E;
- u8 berry = ItemIdToBerryType(word_203855E);
- PlantBerryTree(FieldObjectGetBerryTreeId(gSelectedMapObject), berry, 1, 1);
- FieldObjectInteractionGetBerryTreeData();
+ u8 berry = ItemIdToBerryType(gScriptItemId);
+
+ PlantBerryTree(FieldObjectGetBerryTreeId(gSelectedMapObject), berry, 1, TRUE);
+ FieldObjectInteractionGetBerryTreeData();
}
void FieldObjectInteractionPickBerryTree(void)
{
- u8 id;
- u8 berry;
- id = FieldObjectGetBerryTreeId(gSelectedMapObject);
- berry = GetBerryTypeByBerryTreeId(id);
- gUnknown_0202E8CC = AddBagItem(BerryTypeToItemId(berry), GetBerryCountByBerryTreeId(id));
+ u8 id = FieldObjectGetBerryTreeId(gSelectedMapObject);
+ u8 berry = GetBerryTypeByBerryTreeId(id);
+
+ gSpecialVar_0x8004 = AddBagItem(BerryTypeToItemId(berry), GetBerryCountByBerryTreeId(id));
}
void FieldObjectInteractionRemoveBerryTree(void)
{
- u8 id;
- u8 unk;
- u8 group, num;
- id = FieldObjectGetBerryTreeId(gSelectedMapObject);
- RemoveBerryTree(id);
- unk = gUnknown_0202E8DE;
- num = gSaveBlock1.location.mapNum;
- group = gSaveBlock1.location.mapGroup;
- sub_8060288(unk, num, group);
+ RemoveBerryTree(FieldObjectGetBerryTreeId(gSelectedMapObject));
+ sub_8060288(gScriptLastTalked, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup);
}
u8 PlayerHasBerries(void)
{
- return IsBagPocketNonEmpty(4);
+ return IsBagPocketNonEmpty(4);
}
void ResetBerryTreeSparkleFlags(void)
{
- s16 cam_left;
- s16 cam_top;
- s16 left;
- s16 top;
- s16 right;
- s16 bottom;
- int i;
-
- GetCameraCoords(&cam_left, &cam_top);
- left = cam_left;
- top = cam_top + 3;
- right = cam_left + 14;
- bottom = top + 8;
-
- for (i = 0; i < 16; i++)
- {
- if (gMapObjects[i].active && gMapObjects[i].animPattern == 12)
- {
- cam_left = gMapObjects[i].coords2.x;
- cam_top = gMapObjects[i].coords2.y;
- if (left <= cam_left && cam_left <= right && top <= cam_top && cam_top <= bottom)
- ResetBerryTreeSparkleFlag(gMapObjects[i].trainerRange_berryTreeId);
- }
- }
+ s16 cam_left;
+ s16 cam_top;
+ s16 left;
+ s16 top;
+ s16 right;
+ s16 bottom;
+ int i;
+
+ GetCameraCoords(&cam_left, &cam_top);
+ left = cam_left;
+ top = cam_top + 3;
+ right = cam_left + 14;
+ bottom = top + 8;
+ for (i = 0; i < 16; i++)
+ {
+ if (gMapObjects[i].active && gMapObjects[i].animPattern == 12)
+ {
+ cam_left = gMapObjects[i].coords2.x;
+ cam_top = gMapObjects[i].coords2.y;
+ if (left <= cam_left && cam_left <= right && top <= cam_top && cam_top <= bottom)
+ ResetBerryTreeSparkleFlag(gMapObjects[i].trainerRange_berryTreeId);
+ }
+ }
}
diff --git a/src/coins.c b/src/coins.c
new file mode 100644
index 000000000..acd8c6e10
--- /dev/null
+++ b/src/coins.c
@@ -0,0 +1,87 @@
+#include "global.h"
+#include "menu.h"
+#include "string_util.h"
+
+#define MAX_COINS 9999
+
+extern u8 gOtherText_Coins2[];
+
+void PrintCoins(s32, u8, u8, u8);
+
+void UpdateCoinsWindow(s32 a, u8 b, u8 c)
+{
+ PrintCoins(a, 4, b + 2, c + 1);
+}
+
+void ShowCoinsWindow(u32 a, u8 b, u8 c)
+{
+ MenuDrawTextWindow(b, c, b + 9, c + 3);
+ UpdateCoinsWindow(a, b, c);
+}
+
+void HideCoinsWindow(u8 a, u8 b)
+{
+ MenuZeroFillWindowRect(a, b, a + 9, b + 3);
+}
+
+void PrintCoins(s32 a, u8 b, u8 c, u8 d)
+{
+ u8 string[16];
+ u8 *ptr;
+ u8 r1;
+ u8 r6;
+ u8 foo;
+
+ ConvertIntToDecimalString(string, a);
+ r1 = (b * 6 + 0x21 - 8 * (b + 2));
+ c = c - r1 / 8;
+ foo = r1 % 8;
+ ptr = gStringVar1;
+ if(foo)
+ {
+ ptr[0] = 0xFC;
+ ptr[1] = 0x11;
+ ptr[2] = 8 - (foo);
+ ptr += 3;
+ }
+ ptr[0] = 0xFC;
+ ptr[1] = 0x11;
+ ptr[2] = (b - StringLength(string)) * 6;
+ ptr += 3;
+ StringCopy(ptr, string);
+ MenuPrint(gOtherText_Coins2, c, d);
+}
+
+u16 GetCoins(void)
+{
+ return gSaveBlock1.coins;
+}
+
+bool8 GiveCoins(u16 coins)
+{
+ u32 newCoins;
+
+ if(GetCoins() >= MAX_COINS)
+ return FALSE;
+ newCoins = coins + gSaveBlock1.coins;
+ if(gSaveBlock1.coins > (u16)newCoins)
+ gSaveBlock1.coins = MAX_COINS;
+ else
+ {
+ gSaveBlock1.coins = newCoins;
+ if((u16)newCoins > MAX_COINS)
+ gSaveBlock1.coins = MAX_COINS;
+ }
+ return TRUE;
+}
+
+bool8 TakeCoins(u16 coins)
+{
+ if(GetCoins() >= coins)
+ {
+ gSaveBlock1.coins -= coins;
+ return TRUE;
+ }
+ else
+ return FALSE;
+}
diff --git a/src/decompress.c b/src/decompress.c
new file mode 100644
index 000000000..adc6798b6
--- /dev/null
+++ b/src/decompress.c
@@ -0,0 +1,116 @@
+#include "global.h"
+#include "species.h"
+#include "sprite.h"
+
+#define WRAM 0x02000000
+
+extern struct SpriteSheet gMonFrontPicTable[];
+extern struct SpriteSheet gMonBackPicTable[];
+extern void *gUnknown_081FAF4C[];
+
+extern void DrawSpindaSpots(u16, u32, void *, u8);
+
+void sub_800D378(struct SpriteSheet *a, u32 b, u32 c, u32 d, void *e, s32 f, u32 g, u32 h);
+
+void sub_800D238(const void *src, void *dest)
+{
+ LZ77UnCompWram(src, dest);
+}
+
+void LZDecompressVram(const void *src, void *dest)
+{
+ LZ77UnCompVram(src, dest);
+}
+
+void LoadCompressedObjectPic(struct SpriteSheet *a)
+{
+ struct SpriteSheet spriteSheet;
+
+ LZ77UnCompWram(a->data, (void *)WRAM);
+ spriteSheet.data = (void *)WRAM;
+ spriteSheet.size = a->size;
+ spriteSheet.tag = a->tag;
+ LoadSpriteSheet(&spriteSheet);
+}
+
+void LoadCompressedObjectPicOverrideBuffer(struct SpriteSheet *a, void *buffer)
+{
+ struct SpriteSheet spriteSheet;
+
+ LZ77UnCompWram(a->data, buffer);
+ spriteSheet.data = buffer;
+ spriteSheet.size = a->size;
+ spriteSheet.tag = a->tag;
+ LoadSpriteSheet(&spriteSheet);
+}
+
+void LoadCompressedObjectPalette(struct SpritePalette *a)
+{
+ struct SpritePalette spritePalette;
+
+ LZ77UnCompWram(a->data, (void *)WRAM);
+ spritePalette.data = (void *)WRAM;
+ spritePalette.tag = a->tag;
+ LoadSpritePalette(&spritePalette);
+}
+
+void LoadCompressedObjectPaletteOverrideBuffer(struct SpritePalette *a, void *buffer)
+{
+ struct SpritePalette spritePalette;
+
+ LZ77UnCompWram(a->data, buffer);
+ spritePalette.data = buffer;
+ spritePalette.tag = a->tag;
+ LoadSpritePalette(&spritePalette);
+}
+
+void DecompressPicFromTable_2(const struct SpriteSheet *a, u8 b, u8 c, void *d, void *e, s32 f)
+{
+ if (f > 412)
+ LZ77UnCompWram(gMonFrontPicTable[0].data, e);
+ else
+ LZ77UnCompWram(a->data, e);
+}
+
+void sub_800D334(struct SpriteSheet *a, u32 b, u32 c, u32 d, void *dest, s32 f, u32 g)
+{
+ u32 unk;
+
+ if (dest == gUnknown_081FAF4C[0] || dest == gUnknown_081FAF4C[2])
+ unk = 0;
+ else
+ unk = 1;
+ sub_800D378(a, b, c, d, dest, f, g, unk);
+}
+
+void sub_800D378(struct SpriteSheet *a, u32 b, u32 c, u32 d, void *dest, s32 f, u32 g, u32 h)
+{
+ u8 r7 = h;
+
+ if (f == SPECIES_UNOWN)
+ {
+ u16 r1 = (((g & 0x3000000) >> 18) | ((g & 0x30000) >> 12) | ((g & 0x300) >> 6) | (g & 3)) % 0x1C;
+
+ if (r1 == 0)
+ r1 = SPECIES_UNOWN;
+ else
+ r1 += 412;
+ if (r7 == 0)
+ LZ77UnCompWram(gMonBackPicTable[r1].data, dest);
+ else
+ LZ77UnCompWram(gMonFrontPicTable[r1].data, dest);
+ }
+ else
+ {
+ if (f > 412)
+ LZ77UnCompWram(gMonFrontPicTable[0].data, dest);
+ else
+ LZ77UnCompWram(a->data, dest);
+ }
+ DrawSpindaSpots(f, g, dest, r7);
+}
+
+static void Unused_LZDecompressWramIndirect(const void **src, void *dest)
+{
+ LZ77UnCompWram(*src, dest);
+}
diff --git a/src/dewford_trend.c b/src/dewford_trend.c
new file mode 100644
index 000000000..8d683e072
--- /dev/null
+++ b/src/dewford_trend.c
@@ -0,0 +1,642 @@
+#include "global.h"
+#include "link.h"
+#include "rng.h"
+#include "flag.h"
+
+extern u8 GetLinkPlayerCount(void);
+extern u16 sub_80EB72C(u16);
+extern u8 ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16, u16);
+
+extern struct EasyChatPair unk_2007800[5];
+extern struct EasyChatPair unk_2007900[5];
+extern u16 gScriptResult;
+extern u16 gSpecialVar_0x8004;
+
+void sub_80FA740(struct EasyChatPair *);
+void sub_80FA46C(struct EasyChatPair *, u16, u8);
+bool8 sub_80FA670(struct EasyChatPair *, struct EasyChatPair *, u8);
+bool8 IsEasyChatPairEqual(u16 *, u16 *);
+bool8 SB1ContainsWords(u16 *);
+
+void sub_80FA17C(void)
+{
+ u16 i;
+
+ for(i = 0; i < 5; i++)
+ {
+ gSaveBlock1.easyChatPairs[i].words[0] = sub_80EB72C(10);
+
+ if(Random() & 1)
+ gSaveBlock1.easyChatPairs[i].words[1] = sub_80EB72C(12);
+ else
+ gSaveBlock1.easyChatPairs[i].words[1] = sub_80EB72C(13);
+
+ gSaveBlock1.easyChatPairs[i].unk1_6 = Random() & 1;
+ sub_80FA740(&gSaveBlock1.easyChatPairs[i]);
+ }
+ sub_80FA46C(gSaveBlock1.easyChatPairs, 5, 0);
+}
+
+#ifdef NONMATCHING
+void sub_80FA220(u16 a)
+{
+ u16 i;
+ u32 sp0;
+ u32 sp4;
+
+ if(a != 0)
+ {
+ sp0 = a * 5;
+
+ for(i = 0; i < 5; i++)
+ {
+ //_080FA24A
+ u32 r2 = sp0;
+ u32 r4;
+
+ if(gSaveBlock1.easyChatPairs[i].unk1_6 == 0)
+ {
+ if(gSaveBlock1.easyChatPairs[i].unk0_0 >= r2)
+ {
+ gSaveBlock1.easyChatPairs[i].unk0_0 -= r2;
+ if(gSaveBlock1.easyChatPairs[i].unk0_0 == 0)
+ gSaveBlock1.easyChatPairs[i].unk1_6 = 1;
+ continue;
+ }
+ //_080FA290
+ r2 -= gSaveBlock1.easyChatPairs[i].unk0_0;
+ gSaveBlock1.easyChatPairs[i].unk1_6 = 1;
+ }
+ //_080FA2A0
+ r4 = gSaveBlock1.easyChatPairs[i].unk0_0 + r2;
+ if(r4 > gSaveBlock1.easyChatPairs[i].unk0_7)
+ {
+ sp4 = r4 % gSaveBlock1.easyChatPairs[i].unk0_7;
+ r4 = r4 / gSaveBlock1.easyChatPairs[i].unk0_7;
+
+ if(r4 == 0)
+ gSaveBlock1.easyChatPairs[i].unk1_6 = 1;
+ else
+ gSaveBlock1.easyChatPairs[i].unk1_6 = 0;
+
+
+ if(gSaveBlock1.easyChatPairs[i].unk1_6)
+ {
+ gSaveBlock1.easyChatPairs[i].unk0_0 += sp4;
+ continue;
+ }
+ //_080FA2FA
+ gSaveBlock1.easyChatPairs[i].unk0_7 -= sp4;
+ continue;
+ }
+ //_080FA310
+ gSaveBlock1.easyChatPairs[i].unk0_0 = r4;
+
+ if(gSaveBlock1.easyChatPairs[i].unk0_0 == gSaveBlock1.easyChatPairs[i].unk0_7)
+ gSaveBlock1.easyChatPairs[i].unk1_6 = 0;
+ }
+ sub_80FA46C(gSaveBlock1.easyChatPairs, 5, 0);
+ }
+ //_080FA34E
+}
+
+#else
+__attribute__((naked))
+void sub_80FA220(u16 a)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x8\n\
+ lsls r0, 16\n\
+ lsrs r1, r0, 16\n\
+ cmp r1, 0\n\
+ bne _080FA236\n\
+ b _080FA34E\n\
+_080FA236:\n\
+ lsls r0, r1, 2\n\
+ adds r0, r1\n\
+ str r0, [sp]\n\
+ movs r0, 0\n\
+ mov r10, r0\n\
+ movs r1, 0x7F\n\
+ mov r9, r1\n\
+ movs r2, 0x80\n\
+ negs r2, r2\n\
+ mov r8, r2\n\
+_080FA24A:\n\
+ ldr r2, [sp]\n\
+ mov r4, r10\n\
+ lsls r0, r4, 3\n\
+ ldr r1, _080FA28C @ =gSaveBlock1 + 0x2DD4\n\
+ adds r5, r0, r1\n\
+ ldrb r6, [r5, 0x1]\n\
+ movs r0, 0x40\n\
+ ands r0, r6\n\
+ cmp r0, 0\n\
+ bne _080FA2A0\n\
+ ldrb r4, [r5]\n\
+ lsls r3, r4, 25\n\
+ lsrs r1, r3, 25\n\
+ lsls r0, r2, 16\n\
+ lsrs r0, 16\n\
+ cmp r1, r0\n\
+ bcc _080FA290\n\
+ adds r0, r1, 0\n\
+ subs r0, r2\n\
+ mov r2, r9\n\
+ ands r0, r2\n\
+ mov r1, r8\n\
+ ands r1, r4\n\
+ orrs r1, r0\n\
+ strb r1, [r5]\n\
+ movs r0, 0x7F\n\
+ ands r1, r0\n\
+ cmp r1, 0\n\
+ bne _080FA336\n\
+ movs r0, 0x40\n\
+ orrs r0, r6\n\
+ b _080FA334\n\
+ .align 2, 0\n\
+_080FA28C: .4byte gSaveBlock1 + 0x2DD4\n\
+_080FA290:\n\
+ lsrs r0, r3, 25\n\
+ subs r2, r0\n\
+ mov r0, r8\n\
+ ands r0, r4\n\
+ strb r0, [r5]\n\
+ movs r0, 0x40\n\
+ orrs r0, r6\n\
+ strb r0, [r5, 0x1]\n\
+_080FA2A0:\n\
+ ldrb r7, [r5]\n\
+ lsls r0, r7, 25\n\
+ lsrs r0, 25\n\
+ adds r4, r0, r2\n\
+ ldrh r0, [r5]\n\
+ lsls r6, r0, 18\n\
+ lsls r0, r4, 16\n\
+ lsrs r0, 16\n\
+ lsrs r1, r6, 25\n\
+ cmp r0, r1\n\
+ bls _080FA310\n\
+ adds r0, r4, 0\n\
+ bl __umodsi3\n\
+ adds r3, r0, 0\n\
+ lsrs r1, r6, 25\n\
+ adds r0, r4, 0\n\
+ str r3, [sp, 0x4]\n\
+ bl __udivsi3\n\
+ adds r4, r0, 0\n\
+ movs r0, 0x1\n\
+ eors r4, r0\n\
+ ands r4, r0\n\
+ lsls r2, r4, 6\n\
+ ldrb r0, [r5, 0x1]\n\
+ movs r4, 0x41\n\
+ negs r4, r4\n\
+ adds r1, r4, 0\n\
+ ands r0, r1\n\
+ orrs r0, r2\n\
+ strb r0, [r5, 0x1]\n\
+ movs r1, 0x40\n\
+ ands r0, r1\n\
+ ldr r3, [sp, 0x4]\n\
+ cmp r0, 0\n\
+ beq _080FA2FA\n\
+ adds r1, r3, 0\n\
+ mov r0, r9\n\
+ ands r1, r0\n\
+ mov r0, r8\n\
+ ands r0, r7\n\
+ orrs r0, r1\n\
+ strb r0, [r5]\n\
+ b _080FA336\n\
+_080FA2FA:\n\
+ ldrh r0, [r5]\n\
+ lsls r0, 18\n\
+ lsrs r0, 25\n\
+ subs r0, r3\n\
+ mov r1, r9\n\
+ ands r0, r1\n\
+ mov r1, r8\n\
+ ands r1, r7\n\
+ orrs r1, r0\n\
+ strb r1, [r5]\n\
+ b _080FA336\n\
+_080FA310:\n\
+ mov r2, r9\n\
+ ands r4, r2\n\
+ mov r0, r8\n\
+ ands r0, r7\n\
+ orrs r0, r4\n\
+ strb r0, [r5]\n\
+ lsls r0, 25\n\
+ ldrh r1, [r5]\n\
+ lsls r1, 18\n\
+ lsrs r0, 25\n\
+ lsrs r1, 25\n\
+ cmp r0, r1\n\
+ bne _080FA336\n\
+ ldrb r0, [r5, 0x1]\n\
+ movs r4, 0x41\n\
+ negs r4, r4\n\
+ adds r1, r4, 0\n\
+ ands r0, r1\n\
+_080FA334:\n\
+ strb r0, [r5, 0x1]\n\
+_080FA336:\n\
+ mov r0, r10\n\
+ adds r0, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ mov r10, r0\n\
+ cmp r0, 0x4\n\
+ bls _080FA24A\n\
+ ldr r0, _080FA360 @ =gSaveBlock1 + 0x2DD4\n\
+ movs r1, 0x5\n\
+ movs r2, 0\n\
+ bl sub_80FA46C\n\
+_080FA34E:\n\
+ add sp, 0x8\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080FA360: .4byte gSaveBlock1 + 0x2DD4\n\
+ .syntax divided\n");
+}
+#endif
+
+bool8 sub_80FA364(u16 *a)
+{
+ struct EasyChatPair s = {0};
+ u16 i;
+
+ if(!SB1ContainsWords(a))
+ {
+ if(!FlagGet(SYS_POPWORD_INPUT))
+ {
+ FlagSet(SYS_POPWORD_INPUT);
+ if(!FlagGet(SYS_MIX_RECORD))
+ {
+ gSaveBlock1.easyChatPairs[0].words[0] = a[0];
+ gSaveBlock1.easyChatPairs[0].words[1] = a[1];
+ return 1;
+ }
+ }
+
+ //_080FA3C8
+ s.words[0] = a[0];
+ s.words[1] = a[1];
+ s.unk1_6 = 1;
+ sub_80FA740(&s);
+
+ for(i = 0; i < 5; i++)
+ {
+ if(sub_80FA670(&s, &gSaveBlock1.easyChatPairs[i], 0))
+ {
+ u16 r3 = 4;
+
+ while(r3 > i)
+ {
+ gSaveBlock1.easyChatPairs[r3] = gSaveBlock1.easyChatPairs[r3 - 1];
+ r3--;
+ }
+ gSaveBlock1.easyChatPairs[i] = s;
+ return (i == 0);
+ }
+ //_080FA450
+ }
+ gSaveBlock1.easyChatPairs[4] = s;
+ }
+ return 0;
+}
+
+void sub_80FA46C(struct EasyChatPair *s, u16 b, u8 c)
+{
+ u16 h;
+
+ for(h = 0; h < b; h++)
+ {
+ u16 i;
+
+ for(i = h + 1; i < b; i++)
+ {
+ if(sub_80FA670(&s[i], &s[h], c))
+ {
+ struct EasyChatPair temp;
+
+ temp = s[i];
+ s[i] = s[h];
+ s[h] = temp;
+ }
+ }
+ }
+}
+
+#ifdef NONMATCHING
+void sub_80FA4E4(u8 *a, u32 b)
+{
+ u16 i;
+ u16 j;
+ u16 r7;
+ struct EasyChatPair *src;
+ struct EasyChatPair *dst;
+ u16 players = GetLinkPlayerCount();
+
+ for(i = 0; i < players; i++)
+ memcpy(&unk_2007800[i * 5], a + i * b, 40);
+
+ //_080FA520
+
+ src = unk_2007800;
+ //dst = unk_2007900
+ dst = (u8 *)src + 0x100; //ToDo: Get this part to match
+
+ r7 = 0;
+ //_080FA530
+ for(i = 0; i < players; i++)
+ {
+ for(j = 0; j < 5; j++)
+ {
+ s16 foo = sub_80FA828(src, r7);
+ if(foo < 0)
+ {
+ *(dst++) = *src;
+ r7++;
+ }
+ //_080FA558
+ else
+ {
+ if(unk_2007900[foo].unk0_0 < src->unk0_0)
+ {
+ unk_2007900[foo] = *src;
+ }
+ }
+ //_080FA572
+ src++;
+ }
+ }
+ //_080FA588
+ sub_80FA46C(unk_2007900, r7, 2);
+ src = unk_2007900;
+ dst = gSaveBlock1.easyChatPairs;
+ for(i = 0; i < 5; i++)
+ *(dst++) = *(src++);
+}
+#else
+__attribute__((naked))
+void sub_80FA4E4(u8 *a, u32 b)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r8\n\
+ push {r7}\n\
+ sub sp, 0x4\n\
+ adds r6, r0, 0\n\
+ adds r5, r1, 0\n\
+ bl GetLinkPlayerCount\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r8, r0\n\
+ movs r4, 0\n\
+ cmp r4, r8\n\
+ bcs _080FA520\n\
+_080FA500:\n\
+ lsls r0, r4, 2\n\
+ adds r0, r4\n\
+ lsls r0, 3\n\
+ ldr r1, _080FA554 @ =0x02007800\n\
+ adds r0, r1\n\
+ adds r1, r4, 0\n\
+ muls r1, r5\n\
+ adds r1, r6, r1\n\
+ movs r2, 0x28\n\
+ bl memcpy\n\
+ adds r0, r4, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r4, r0, 16\n\
+ cmp r4, r8\n\
+ bcc _080FA500\n\
+_080FA520:\n\
+ ldr r5, _080FA554 @ =0x02007800\n\
+ movs r0, 0x80\n\
+ lsls r0, 1\n\
+ adds r3, r5, r0\n\
+ movs r7, 0\n\
+ movs r4, 0\n\
+ cmp r4, r8\n\
+ bcs _080FA588\n\
+_080FA530:\n\
+ movs r6, 0\n\
+_080FA532:\n\
+ adds r0, r5, 0\n\
+ adds r1, r7, 0\n\
+ str r3, [sp]\n\
+ bl sub_80FA828\n\
+ lsls r0, 16\n\
+ asrs r0, 16\n\
+ ldr r3, [sp]\n\
+ cmp r0, 0\n\
+ bge _080FA558\n\
+ ldr r0, [r5]\n\
+ ldr r1, [r5, 0x4]\n\
+ stm r3!, {r0,r1}\n\
+ adds r0, r7, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r7, r0, 16\n\
+ b _080FA572\n\
+ .align 2, 0\n\
+_080FA554: .4byte 0x02007800\n\
+_080FA558:\n\
+ lsls r1, r0, 3\n\
+ ldr r0, _080FA5B4 @ =0x02007900\n\
+ adds r2, r1, r0\n\
+ ldrb r1, [r2]\n\
+ lsls r1, 25\n\
+ ldrb r0, [r5]\n\
+ lsls r0, 25\n\
+ cmp r1, r0\n\
+ bcs _080FA572\n\
+ ldr r0, [r5]\n\
+ ldr r1, [r5, 0x4]\n\
+ str r0, [r2]\n\
+ str r1, [r2, 0x4]\n\
+_080FA572:\n\
+ adds r5, 0x8\n\
+ adds r0, r6, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r6, r0, 16\n\
+ cmp r6, 0x4\n\
+ bls _080FA532\n\
+ adds r0, r4, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r4, r0, 16\n\
+ cmp r4, r8\n\
+ bcc _080FA530\n\
+_080FA588:\n\
+ ldr r4, _080FA5B4 @ =0x02007900\n\
+ adds r0, r4, 0\n\
+ adds r1, r7, 0\n\
+ movs r2, 0x2\n\
+ bl sub_80FA46C\n\
+ adds r5, r4, 0\n\
+ ldr r3, _080FA5B8 @ =gSaveBlock1 + 0x2DD4\n\
+ movs r4, 0\n\
+_080FA59A:\n\
+ ldm r5!, {r0,r1}\n\
+ stm r3!, {r0,r1}\n\
+ adds r0, r4, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r4, r0, 16\n\
+ cmp r4, 0x4\n\
+ bls _080FA59A\n\
+ add sp, 0x4\n\
+ pop {r3}\n\
+ mov r8, r3\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080FA5B4: .4byte 0x02007900\n\
+_080FA5B8: .4byte gSaveBlock1 + 0x2DD4\n\
+ .syntax divided\n");
+}
+#endif
+
+void sub_80FA5BC(void)
+{
+ struct EasyChatPair *s = &gSaveBlock1.easyChatPairs[gSpecialVar_0x8004];
+
+ ConvertEasyChatWordsToString(gStringVar1, s->words, 2, 1);
+}
+
+void sub_80FA5E4(void)
+{
+ u16 result = 0;
+
+ if (gSaveBlock1.easyChatPairs[0].unk0_0 - gSaveBlock1.easyChatPairs[1].unk0_0 < 2)
+ {
+ asm("":::"r2"); //Force the compiler to store address of gSaveBlock1 in r3 instead of r2
+ if (!gSaveBlock1.easyChatPairs[0].unk1_6 && gSaveBlock1.easyChatPairs[1].unk1_6)
+ result = 1;
+ }
+ gScriptResult = result;
+}
+
+void sub_80FA648(void)
+{
+ gScriptResult = (gSaveBlock1.easyChatPairs[0].words[0] + gSaveBlock1.easyChatPairs[0].words[1]) & 7;
+}
+
+bool8 sub_80FA670(struct EasyChatPair *a, struct EasyChatPair *b, u8 c)
+{
+ switch(c)
+ {
+ case 0:
+ if(a->unk0_0 > b->unk0_0)
+ return 1;
+ if(a->unk0_0 < b->unk0_0)
+ return 0;
+ if(a->unk0_7 > b->unk0_7)
+ return 1;
+ if(a->unk0_7 < b->unk0_7)
+ return 0;
+ break;
+ case 1:
+ if(a->unk0_7 > b->unk0_7)
+ return 1;
+ if(a->unk0_7 < b->unk0_7)
+ return 0;
+ if(a->unk0_0 > b->unk0_0)
+ return 1;
+ if(a->unk0_0 < b->unk0_0)
+ return 0;
+ break;
+ case 2:
+ if(a->unk0_0 > b->unk0_0)
+ return 1;
+ if(a->unk0_0 < b->unk0_0)
+ return 0;
+ if(a->unk0_7 > b->unk0_7)
+ return 1;
+ if(a->unk0_7 < b->unk0_7)
+ return 0;
+ if(a->unk2 > b->unk2)
+ return 1;
+ if(a->unk2 < b->unk2)
+ return 0;
+ if(a->words[0] > b->words[0])
+ return 1;
+ if(a->words[0] < b->words[0])
+ return 0;
+ if(a->words[1] > b->words[1])
+ return 1;
+ if(a->words[1] < b->words[1])
+ return 0;
+ return 1;
+ }
+ return Random() & 1;
+}
+
+void sub_80FA740(struct EasyChatPair *s)
+{
+ u16 r4;
+
+ r4 = Random() % 98;
+ if(r4 > 50)
+ {
+ r4 = Random() % 98;
+ if(r4 > 80)
+ r4 = Random() % 98;
+ }
+ s->unk0_7 = r4 + 30;
+ s->unk0_0 = (Random() % (r4 + 1)) + 30;
+ s->unk2 = Random();
+}
+
+bool8 SB1ContainsWords(u16 *a)
+{
+ u16 i;
+
+ for(i = 0; i < 5; i++)
+ {
+ if(IsEasyChatPairEqual(a, gSaveBlock1.easyChatPairs[i].words) != 0)
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 IsEasyChatPairEqual(u16 *words1, u16 *words2)
+{
+ u16 i;
+
+ for(i = 0; i < 2; i++)
+ {
+ if(*(words1++) != *(words2++))
+ return FALSE;
+ }
+ return TRUE;
+}
+
+s16 sub_80FA828(struct EasyChatPair *a, u16 b)
+{
+ s16 i;
+ struct EasyChatPair *s = unk_2007900;
+
+ for(i = 0; i < b; i++)
+ {
+ if(IsEasyChatPairEqual(a->words, s->words))
+ return i;
+ s++;
+ }
+ return -1;
+}
diff --git a/src/diploma.c b/src/diploma.c
index 7e3a94514..4d81ad4b0 100644
--- a/src/diploma.c
+++ b/src/diploma.c
@@ -7,7 +7,6 @@
#include "task.h"
#include "text.h"
-extern void LZ77UnCompVram(const void *src, void *dest);
extern void remove_some_task(void);
extern void sub_80546F0(void);
extern u16 sub_8090FF4(void);
diff --git a/src/field_camera.c b/src/field_camera.c
new file mode 100644
index 000000000..02db33bf2
--- /dev/null
+++ b/src/field_camera.c
@@ -0,0 +1,516 @@
+#include "global.h"
+#include "fieldmap.h"
+#include "sprite.h"
+#include "text.h"
+
+extern u16 gBGTilemapBuffers[4][0x400];
+
+
+//ToDo: argument types
+extern u8 MapGridGetMetatileLayerTypeAt();
+extern u8 player_get_direction_upper_nybble(void);
+extern void ResetBerryTreeSparkleFlags(void);
+extern void RotatingGatePuzzleCameraUpdate(s16, s16);
+extern int MapGridGetMetatileIdAt(int, int);
+extern int CameraMove(int, int);
+
+extern u8 gUnknown_0202E854;
+
+
+struct UnknownStruct
+{
+ u8 unk0;
+ u8 unk1;
+ u8 unk2;
+ u8 unk3;
+ bool8 unk4;
+};
+
+extern struct UnknownStruct gUnknown_03000590;
+extern u16 gUnknown_03000598;
+extern s16 gUnknown_0300059A;
+extern u8 gUnknown_0300059C;
+extern void (*gUnknown_030005A0)(void);
+
+struct CameraSomething
+{
+ void (*callback)(struct CameraSomething *);
+ u32 unk4;
+ s32 unk8;
+ s32 unkC;
+ s32 unk10;
+ s32 unk14;
+};
+
+extern struct CameraSomething gUnknown_03004880;
+extern u16 gUnknown_03004898;
+extern u16 gUnknown_0300489C;
+
+static void RedrawMapSliceNorth(struct UnknownStruct *a, struct MapData *mapData);
+static void RedrawMapSliceSouth(struct UnknownStruct *a, struct MapData *mapData);
+static void RedrawMapSliceEast(struct UnknownStruct *a, struct MapData *mapData);
+static void RedrawMapSliceWest(struct UnknownStruct *a, struct MapData *mapData);
+static s32 MapPosToBgTilemapOffset(struct UnknownStruct *a, s32 x, s32 y);
+void CameraUpdate(void);
+
+static void DrawWholeMapViewInternal(int x, int y, struct MapData *mapData);
+static void DrawMetatileAt(struct MapData *mapData, u16, int, int);
+static void DrawMetatile(s32 a, u16 *b, u16 c);
+u8 AddCameraObject(u8);
+void UpdateFieldObjectsForCameraUpdate(s16, s16);
+static void CameraPanningCB_PanAhead(void);
+
+static void move_tilemap_camera_to_upper_left_corner_(struct UnknownStruct *a)
+{
+ a->unk2 = 0;
+ a->unk3 = 0;
+ a->unk0 = 0;
+ a->unk1 = 0;
+ a->unk4 = TRUE;
+}
+
+static void tilemap_move_something(struct UnknownStruct *a, u32 b, u32 c)
+{
+ a->unk2 += b;
+ a->unk2 %= 32;
+ a->unk3 += c;
+ a->unk3 %= 32;
+}
+
+static void coords8_add(struct UnknownStruct *a, u32 b, u32 c)
+{
+ a->unk0 += b;
+ a->unk1 += c;
+}
+
+void move_tilemap_camera_to_upper_left_corner(void)
+{
+ move_tilemap_camera_to_upper_left_corner_(&gUnknown_03000590);
+ CpuFill16(0, gBGTilemapBuffers[2], 0x800);
+ CpuFill16(0, gBGTilemapBuffers[1], 0x800);
+ CpuFill16(0x3014, gBGTilemapBuffers[3], 0x800);
+}
+
+void sub_8057A58(void)
+{
+ *gBGHOffsetRegs[1] = gUnknown_03000590.unk0 + gUnknown_03000598;
+ *gBGVOffsetRegs[1] = gUnknown_03000590.unk1 + gUnknown_0300059A + 8;
+ *gBGHOffsetRegs[2] = gUnknown_03000590.unk0 + gUnknown_03000598;
+ *gBGVOffsetRegs[2] = gUnknown_03000590.unk1 + gUnknown_0300059A + 8;
+ *gBGHOffsetRegs[3] = gUnknown_03000590.unk0 + gUnknown_03000598;
+ *gBGVOffsetRegs[3] = gUnknown_03000590.unk1 + gUnknown_0300059A + 8;
+
+ if(gUnknown_03000590.unk4)
+ {
+ DmaCopy16(3, gBGTilemapBuffers[1], (void *)(VRAM + 0xE800), 0x800);
+ DmaCopy16(3, gBGTilemapBuffers[2], (void *)(VRAM + 0xE000), 0x800);
+ DmaCopy16(3, gBGTilemapBuffers[3], (void *)(VRAM + 0xF000), 0x800);
+ gUnknown_03000590.unk4 = FALSE;
+ }
+}
+
+void sub_8057B14(u16 *a, u16 *b)
+{
+ *a = gUnknown_03000590.unk0 + gUnknown_03000598;
+ *b = gUnknown_03000590.unk1 + gUnknown_0300059A + 8;
+}
+
+void DrawWholeMapView(void)
+{
+ DrawWholeMapViewInternal(gSaveBlock1.pos.x, gSaveBlock1.pos.y, gMapHeader.mapData);
+ gUnknown_03000590.unk4 = TRUE;
+}
+
+static void DrawWholeMapViewInternal(int x, int y, struct MapData *mapData)
+{
+ u8 i;
+ u8 j;
+ u32 r6;
+ u8 temp;
+
+ for(i = 0; i < 32; i += 2)
+ {
+ temp = gUnknown_03000590.unk3 + i;
+ if(temp >= 32)
+ temp -= 32;
+ r6 = temp * 32;
+ for(j = 0; j < 32; j += 2)
+ {
+ temp = gUnknown_03000590.unk2 + j;
+ if(temp >= 32)
+ temp -= 32;
+ DrawMetatileAt(mapData, r6 + temp, x + j / 2, y + i / 2);
+ }
+ }
+}
+
+static void RedrawMapSlicesForCameraUpdate(struct UnknownStruct *a, int x, int y)
+{
+ struct MapData *mapData = gMapHeader.mapData;
+
+ if(x > 0)
+ RedrawMapSliceWest(a, mapData);
+ if(x < 0)
+ RedrawMapSliceEast(a, mapData);
+ if(y > 0)
+ RedrawMapSliceNorth(a, mapData);
+ if(y < 0)
+ RedrawMapSliceSouth(a, mapData);
+ a->unk4 = TRUE;
+}
+
+static void RedrawMapSliceNorth(struct UnknownStruct *a, struct MapData *mapData)
+{
+ u8 i;
+ u8 temp;
+ u32 r7;
+
+ temp = a->unk3 + 28;
+ if(temp >= 32)
+ temp -= 32;
+ r7 = temp * 32;
+ for(i = 0; i < 32; i += 2)
+ {
+ temp = a->unk2 + i;
+ if(temp >= 32)
+ temp -= 32;
+ DrawMetatileAt(mapData, r7 + temp, gSaveBlock1.pos.x + i / 2, gSaveBlock1.pos.y + 14);
+ }
+}
+
+static void RedrawMapSliceSouth(struct UnknownStruct *a, struct MapData *mapData)
+{
+ u8 i;
+ u8 temp;
+ u32 r7 = a->unk3 * 32;
+
+ for(i = 0; i < 32; i += 2)
+ {
+ temp = a->unk2 + i;
+ if(temp >= 32)
+ temp -= 32;
+ DrawMetatileAt(mapData, r7 + temp, gSaveBlock1.pos.x + i / 2, gSaveBlock1.pos.y);
+ }
+}
+
+static void RedrawMapSliceEast(struct UnknownStruct *a, struct MapData *mapData)
+{
+ u8 i;
+ u8 temp;
+ u32 r6 = a->unk2;
+
+ for(i = 0; i < 32; i += 2)
+ {
+ temp = a->unk3 + i;
+ if(temp >= 32)
+ temp -= 32;
+ DrawMetatileAt(mapData, temp * 32 + r6, gSaveBlock1.pos.x, gSaveBlock1.pos.y + i / 2);
+ }
+}
+
+static void RedrawMapSliceWest(struct UnknownStruct *a, struct MapData *mapData)
+{
+ u8 i;
+ u8 temp;
+ u8 r5 = a->unk2 + 28;
+
+ if(r5 >= 32)
+ r5 -= 32;
+ for(i = 0; i < 32; i += 2)
+ {
+ temp = a->unk3 + i;
+ if(temp >= 32)
+ temp -= 32;
+ DrawMetatileAt(mapData, temp * 32 + r5, gSaveBlock1.pos.x + 14, gSaveBlock1.pos.y + i / 2);
+ }
+}
+
+void CurrentMapDrawMetatileAt(int a, int b)
+{
+ int offset = MapPosToBgTilemapOffset(&gUnknown_03000590, a, b);
+
+ if(offset >= 0)
+ {
+ DrawMetatileAt(gMapHeader.mapData, offset, a, b);
+ gUnknown_03000590.unk4 = TRUE;
+ }
+}
+
+void DrawDoorMetatileAt(int x, int y, u16 *arr)
+{
+ int offset = MapPosToBgTilemapOffset(&gUnknown_03000590, x, y);
+
+ if(offset >= 0)
+ {
+ DrawMetatile(1, arr, offset);
+ gUnknown_03000590.unk4 = TRUE;
+ }
+}
+
+static void DrawMetatileAt(struct MapData *mapData, u16 b, int c, int d)
+{
+ u16 metatileId = MapGridGetMetatileIdAt(c, d);
+ u16 *metatiles;
+
+ if(metatileId > 1024)
+ metatileId = 0;
+ if(metatileId < 512)
+ metatiles = mapData->primaryTileset->metatiles;
+ else
+ {
+ metatiles = mapData->secondaryTileset->metatiles;
+ metatileId -= 512;
+ }
+ DrawMetatile(MapGridGetMetatileLayerTypeAt(c, d), metatiles + metatileId * 8, b);
+}
+
+static void DrawMetatile(s32 a, u16 *b, u16 c)
+{
+ switch(a)
+ {
+ case 2:
+ gBGTilemapBuffers[3][c] = b[0];
+ gBGTilemapBuffers[3][c + 1] = b[1];
+ gBGTilemapBuffers[3][c + 0x20] = b[2];
+ gBGTilemapBuffers[3][c + 0x21] = b[3];
+
+ gBGTilemapBuffers[2][c] = 0;
+ gBGTilemapBuffers[2][c + 1] = 0;
+ gBGTilemapBuffers[2][c + 0x20] = 0;
+ gBGTilemapBuffers[2][c + 0x21] = 0;
+
+ gBGTilemapBuffers[1][c] = b[4];
+ gBGTilemapBuffers[1][c + 1] = b[5];
+ gBGTilemapBuffers[1][c + 0x20] = b[6];
+ gBGTilemapBuffers[1][c + 0x21] = b[7];
+ break;
+ case 1:
+ gBGTilemapBuffers[3][c] = b[0];
+ gBGTilemapBuffers[3][c + 1] = b[1];
+ gBGTilemapBuffers[3][c + 0x20] = b[2];
+ gBGTilemapBuffers[3][c + 0x21] = b[3];
+
+ gBGTilemapBuffers[2][c] = b[4];
+ gBGTilemapBuffers[2][c + 1] = b[5];
+ gBGTilemapBuffers[2][c + 0x20] = b[6];
+ gBGTilemapBuffers[2][c + 0x21] = b[7];
+
+ gBGTilemapBuffers[1][c] = 0;
+ gBGTilemapBuffers[1][c + 1] = 0;
+ gBGTilemapBuffers[1][c + 0x20] = 0;
+ gBGTilemapBuffers[1][c + 0x21] = 0;
+ break;
+ case 0:
+ gBGTilemapBuffers[3][c] = 0x3014;
+ gBGTilemapBuffers[3][c + 1] = 0x3014;
+ gBGTilemapBuffers[3][c + 0x20] = 0x3014;
+ gBGTilemapBuffers[3][c + 0x21] = 0x3014;
+
+ gBGTilemapBuffers[2][c] = b[0];
+ gBGTilemapBuffers[2][c + 1] = b[1];
+ gBGTilemapBuffers[2][c + 0x20] = b[2];
+ gBGTilemapBuffers[2][c + 0x21] = b[3];
+
+ gBGTilemapBuffers[1][c] = b[4];
+ gBGTilemapBuffers[1][c + 1] = b[5];
+ gBGTilemapBuffers[1][c + 0x20] = b[6];
+ gBGTilemapBuffers[1][c + 0x21] = b[7];
+ break;
+ }
+}
+
+static s32 MapPosToBgTilemapOffset(struct UnknownStruct *a, s32 x, s32 y)
+{
+ x -= gSaveBlock1.pos.x;
+ x *= 2;
+ if(x >= 32 || x < 0)
+ return -1;
+ x = x + a->unk2;
+ if(x >= 32)
+ x -= 32;
+
+ y = (y - gSaveBlock1.pos.y) * 2;
+ if(y >= 32 || y < 0)
+ return -1;
+ y = y + a->unk3;
+ if(y >= 32)
+ y -= 32;
+
+ return y * 32 + x;
+}
+
+static void CameraUpdateCallback(struct CameraSomething *a)
+{
+ if(a->unk4 != 0)
+ {
+ a->unk8 = gSprites[a->unk4].data2;
+ a->unkC = gSprites[a->unk4].data3;
+ }
+}
+
+void ResetCameraUpdateInfo(void)
+{
+ gUnknown_03004880.unk8 = 0;
+ gUnknown_03004880.unkC = 0;
+ gUnknown_03004880.unk10 = 0;
+ gUnknown_03004880.unk14 = 0;
+ gUnknown_03004880.unk4 = 0;
+ gUnknown_03004880.callback = NULL;
+}
+
+u32 InitCameraUpdateCallback(u8 a)
+{
+ if(gUnknown_03004880.unk4 != 0)
+ DestroySprite(&gSprites[gUnknown_03004880.unk4]);
+ gUnknown_03004880.unk4 = AddCameraObject(a);
+ gUnknown_03004880.callback = CameraUpdateCallback;
+ return 0;
+}
+
+void CameraUpdate(void)
+{
+ int deltaX;
+ int deltaY;
+ int r0;
+ int r1;
+ int r7;
+ int r8;
+
+ if(gUnknown_03004880.callback != NULL)
+ gUnknown_03004880.callback(&gUnknown_03004880);
+ r7 = gUnknown_03004880.unk8;
+ r8 = gUnknown_03004880.unkC;
+ deltaX = 0;
+ deltaY = 0;
+ r1 = gUnknown_03004880.unk10;
+ r0 = gUnknown_03004880.unk14;
+
+
+ if(r1 == 0 && r7 != 0)
+ {
+ if(r7 > 0)
+ deltaX = 1;
+ else
+ deltaX = -1;
+ }
+ if(r0 == 0 && r8 != 0)
+ {
+ if(r8 > 0)
+ deltaY = 1;
+ else
+ deltaY = -1;
+ }
+ if(r1 != 0 && r1 == -r7)
+ {
+ if(r7 > 0)
+ deltaX = 1;
+ else
+ deltaX = -1;
+ }
+ if(r0 != 0 && r0 == -r8)
+ {
+ if(r8 > 0)
+ deltaX = 1;
+ else
+ deltaX = -1;
+ }
+
+ gUnknown_03004880.unk10 += r7;
+ gUnknown_03004880.unk10 = gUnknown_03004880.unk10 - 16 * (gUnknown_03004880.unk10 / 16);
+ gUnknown_03004880.unk14 += r8;
+ gUnknown_03004880.unk14 = gUnknown_03004880.unk14 - 16 * (gUnknown_03004880.unk14 / 16);
+
+ if(deltaX != 0 || deltaY != 0)
+ {
+ CameraMove(deltaX, deltaY);
+ UpdateFieldObjectsForCameraUpdate(deltaX, deltaY);
+ RotatingGatePuzzleCameraUpdate(deltaX, deltaY);
+ ResetBerryTreeSparkleFlags();
+ tilemap_move_something(&gUnknown_03000590, deltaX * 2, deltaY * 2);
+ RedrawMapSlicesForCameraUpdate(&gUnknown_03000590, deltaX * 2, deltaY * 2);
+ }
+
+ coords8_add(&gUnknown_03000590, r7, r8);
+ gUnknown_0300489C -= r7;
+ gUnknown_03004898 -= r8;
+}
+
+static void camera_move_and_redraw(int a, int b)
+{
+ CameraMove(a, b);
+ UpdateFieldObjectsForCameraUpdate(a, b);
+ DrawWholeMapView();
+ gUnknown_0300489C -= a * 16;
+ gUnknown_03004898 -= b * 16;
+}
+
+void SetCameraPanningCallback(void (*a)(void))
+{
+ gUnknown_030005A0 = a;
+}
+
+void SetCameraPanning(s16 a, s16 b)
+{
+ gUnknown_03000598 = a;
+ gUnknown_0300059A = b + 32;
+}
+
+void InstallCameraPanAheadCallback(void)
+{
+ gUnknown_030005A0 = CameraPanningCB_PanAhead;
+ gUnknown_0300059C = 0;
+ gUnknown_03000598 = 0;
+ gUnknown_0300059A = 32;
+}
+
+void UpdateCameraPanning(void)
+{
+ if (gUnknown_030005A0 != NULL)
+ gUnknown_030005A0();
+ //Update sprite offset of overworld objects
+ gSpriteCoordOffsetX = gUnknown_0300489C - gUnknown_03000598;
+ gSpriteCoordOffsetY = gUnknown_03004898 - gUnknown_0300059A - 8;
+}
+
+static void CameraPanningCB_PanAhead(void)
+{
+ u8 var;
+
+ if (gUnknown_0202E854 == 0)
+ {
+ InstallCameraPanAheadCallback();
+ }
+ else
+ {
+ if (gPlayerAvatar.running1 == 1)
+ {
+ gUnknown_0300059C ^= 1;
+ if (gUnknown_0300059C == 0)
+ return;
+ }
+ else
+ {
+ gUnknown_0300059C = 0;
+ }
+
+ var = player_get_direction_upper_nybble();
+ if (var == 2)
+ {
+ if (gUnknown_0300059A > -8)
+ gUnknown_0300059A -= 2;
+ }
+ else if (var == 1)
+ {
+ if (gUnknown_0300059A < 72)
+ gUnknown_0300059A += 2;
+ }
+ else if (gUnknown_0300059A < 32)
+ {
+ gUnknown_0300059A += 2;
+ }
+ else if (gUnknown_0300059A > 32)
+ {
+ gUnknown_0300059A -= 2;
+ }
+ }
+}
diff --git a/src/field_door.c b/src/field_door.c
new file mode 100644
index 000000000..68c884af1
--- /dev/null
+++ b/src/field_door.c
@@ -0,0 +1,233 @@
+#include "global.h"
+#include "task.h"
+
+extern u8 MetatileBehavior_IsDoor(u8);
+
+struct DoorGraphics
+{
+ u16 metatileNum;
+ u8 unk2;
+ void *tiles;
+ void *palette;
+};
+
+struct DoorAnimFrame
+{
+ u8 time;
+ u16 offset;
+};
+
+extern struct DoorAnimFrame gDoorOpenAnimFrames[];
+extern struct DoorAnimFrame gDoorCloseAnimFrames[];
+extern struct DoorGraphics gDoorAnimGraphicsTable[];
+
+static void CopyDoorTilesToVram(void *src)
+{
+ CpuFastSet(src, (void *)(VRAM + 0x7F00), 0x40);
+}
+
+static void door_build_blockdef(u16 *a, u16 b, u8 *c)
+{
+ int i;
+ u16 unk;
+
+ for (i = 0; i < 4; i++)
+ {
+ unk = *(c++) << 12;
+ a[i] = unk | (b + i);
+ }
+ for (; i < 8; i++)
+ {
+ unk = *(c++) << 12;
+ a[i] = unk;
+ }
+}
+
+static void DrawCurrentDoorAnimFrame(u32 x, u32 y, u8 *c)
+{
+ u16 arr[8];
+
+ door_build_blockdef(arr, 0x3F8, c);
+ DrawDoorMetatileAt(x, y - 1, arr);
+ door_build_blockdef(arr, 0x3FC, c + 4);
+ DrawDoorMetatileAt(x, y, arr);
+}
+
+static void DrawClosedDoorTiles(u32 x, u32 y)
+{
+ CurrentMapDrawMetatileAt(x, y - 1);
+ CurrentMapDrawMetatileAt(x, y);
+}
+
+static void DrawDoor(struct DoorGraphics *gfx, struct DoorAnimFrame *frame, u32 x, u32 y)
+{
+ if (frame->offset == 0xFFFF)
+ DrawClosedDoorTiles(x, y);
+ else
+ {
+ CopyDoorTilesToVram(gfx->tiles + frame->offset);
+ DrawCurrentDoorAnimFrame(x, y, gfx->palette);
+ }
+}
+
+enum
+{
+ TD_FRAMELIST = 0,
+ TD_GFX = 2,
+ TD_FRAME = 4,
+ TD_COUNTER,
+ TD_X,
+ TD_Y
+};
+
+static bool32 sub_8058464(struct DoorGraphics *gfx, struct DoorAnimFrame *frames, s16 *taskData)
+{
+ if (taskData[TD_COUNTER] == 0)
+ DrawDoor(gfx, &frames[taskData[TD_FRAME]], taskData[TD_X], taskData[TD_Y]);
+ if (taskData[TD_COUNTER] == frames[taskData[TD_FRAME]].time)
+ {
+ taskData[TD_COUNTER] = 0;
+ taskData[TD_FRAME]++;
+ if (frames[taskData[TD_FRAME]].time == 0)
+ return FALSE;
+ else
+ return TRUE;
+ }
+ taskData[TD_COUNTER]++;
+ return TRUE;
+}
+
+static void Task_AnimateDoor(u8 taskId)
+{
+ u16 *taskData = gTasks[taskId].data;
+ struct DoorAnimFrame *frames = (struct DoorAnimFrame *)(taskData[TD_FRAMELIST] << 16 | taskData[TD_FRAMELIST + 1]);
+ struct DoorGraphics *gfx = (struct DoorGraphics *)(taskData[TD_GFX] << 16 | taskData[TD_GFX + 1]);
+
+ if (sub_8058464(gfx, frames, taskData) == FALSE)
+ DestroyTask(taskId);
+}
+
+static struct DoorAnimFrame *GetLastDoorFrame(struct DoorAnimFrame *frame, void *unused)
+{
+ while (frame->time != 0)
+ frame++;
+ return frame - 1;
+}
+
+static struct DoorGraphics *GetDoorGraphics(struct DoorGraphics *gfx, u16 metatileNum)
+{
+ while (gfx->tiles != NULL)
+ {
+ if (gfx->metatileNum == metatileNum)
+ return gfx;
+ gfx++;
+ }
+ return NULL;
+}
+
+static s8 StartDoorAnimationTask(struct DoorGraphics *gfx, struct DoorAnimFrame *frames, u32 x, u32 y)
+{
+ if (FuncIsActiveTask(Task_AnimateDoor) == TRUE)
+ return -1;
+ else
+ {
+ u8 taskId = CreateTask(Task_AnimateDoor, 0x50);
+ s16 *taskData = gTasks[taskId].data;
+
+ taskData[TD_X] = x;
+ taskData[TD_Y] = y;
+
+ taskData[TD_FRAMELIST + 1] = (u32)frames;
+ taskData[TD_FRAMELIST] = (u32)frames >> 16;
+
+ taskData[TD_GFX + 1] = (u32)gfx;
+ taskData[TD_GFX] = (u32)gfx >> 16;
+
+ return taskId;
+ }
+}
+
+static void DrawClosedDoor(struct DoorGraphics *unused, u32 x, u32 y)
+{
+ DrawClosedDoorTiles(x, y);
+}
+
+static void DrawOpenedDoor(struct DoorGraphics *gfx, u32 x, u32 y)
+{
+ gfx = GetDoorGraphics(gfx, MapGridGetMetatileIdAt(x, y));
+ if (gfx != NULL)
+ DrawDoor(gfx, GetLastDoorFrame(gDoorOpenAnimFrames, gDoorOpenAnimFrames), x, y);
+}
+
+static s8 StartDoorOpenAnimation(struct DoorGraphics *gfx, u32 x, u32 y)
+{
+ gfx = GetDoorGraphics(gfx, MapGridGetMetatileIdAt(x, y));
+ if (gfx == NULL)
+ return -1;
+ else
+ return StartDoorAnimationTask(gfx, gDoorOpenAnimFrames, x, y);
+}
+
+static s8 StartDoorCloseAnimation(struct DoorGraphics *gfx, u32 x, u32 y)
+{
+ gfx = GetDoorGraphics(gfx, MapGridGetMetatileIdAt(x, y));
+ if (gfx == NULL)
+ return -1;
+ else
+ return StartDoorAnimationTask(gfx, gDoorCloseAnimFrames, x, y);
+}
+
+static s8 cur_mapdata_get_door_x2_at(struct DoorGraphics *gfx, u32 x, u32 y)
+{
+ gfx = GetDoorGraphics(gfx, MapGridGetMetatileIdAt(x, y));
+ if (gfx == NULL)
+ return -1;
+ else
+ return gfx->unk2;
+}
+
+static void unref_sub_805869C(u32 x, u32 y)
+{
+ StartDoorOpenAnimation(gDoorAnimGraphicsTable, x, y);
+}
+
+void FieldSetDoorOpened(u32 x, u32 y)
+{
+ if (MetatileBehavior_IsDoor(MapGridGetMetatileBehaviorAt(x, y)))
+ DrawOpenedDoor(gDoorAnimGraphicsTable, x, y);
+}
+
+void FieldSetDoorClosed(u32 x, u32 y)
+{
+ if (MetatileBehavior_IsDoor(MapGridGetMetatileBehaviorAt(x, y)))
+ DrawClosedDoor(gDoorAnimGraphicsTable, x, y);
+}
+
+s8 FieldAnimateDoorClose(u32 x, u32 y)
+{
+ if (!MetatileBehavior_IsDoor(MapGridGetMetatileBehaviorAt(x, y)))
+ return -1;
+ else
+ return StartDoorCloseAnimation(gDoorAnimGraphicsTable, x, y);
+}
+
+s8 FieldAnimateDoorOpen(u32 x, u32 y)
+{
+ if (!MetatileBehavior_IsDoor(MapGridGetMetatileBehaviorAt(x, y)))
+ return -1;
+ else
+ return StartDoorOpenAnimation(gDoorAnimGraphicsTable, x, y);
+}
+
+bool8 FieldIsDoorAnimationRunning(void)
+{
+ return FuncIsActiveTask(Task_AnimateDoor);
+}
+
+u8 sub_8058790(u32 x, u32 y)
+{
+ if (cur_mapdata_get_door_x2_at(gDoorAnimGraphicsTable, x, y) == 0)
+ return 8;
+ else
+ return 18;
+}
diff --git a/src/field_effect.c b/src/field_effect.c
new file mode 100644
index 000000000..97301ab50
--- /dev/null
+++ b/src/field_effect.c
@@ -0,0 +1,218 @@
+#include "global.h"
+#include "sprite.h"
+
+typedef bool8 (*FldEffCmd)(u8 **, u32 *);
+
+static u8 sActiveList[32];
+
+extern u8 *gFieldEffectScriptPointers[];
+
+extern FldEffCmd gFieldEffectScriptFuncs[];
+
+void FieldEffectScript_LoadTiles(u8 **script);
+void FieldEffectScript_LoadFadedPalette(u8 **script);
+void FieldEffectScript_LoadPalette(u8 **script);
+void FieldEffectScript_CallNative(u8 **script, u32 *val);
+void FieldEffectFreeGraphicsResources(struct Sprite *sprite);
+void FieldEffectStop(struct Sprite *sprite, u8 id);
+void FieldEffectFreeTilesIfUnused(u16 tileStart);
+void FieldEffectFreePaletteIfUnused(u8 paletteNum);
+void FieldEffectActiveListClear(void);
+void FieldEffectActiveListAdd(u8 id);
+void FieldEffectActiveListRemove(u8 id);
+
+u32 FieldEffectStart(u8 id)
+{
+ u8 *script;
+ u32 val;
+
+ FieldEffectActiveListAdd(id);
+
+ script = gFieldEffectScriptPointers[id];
+
+ while (gFieldEffectScriptFuncs[*script](&script, &val))
+ ;
+
+ return val;
+}
+
+bool8 FieldEffectCmd_loadtiles(u8 **script, u32 *val)
+{
+ (*script)++;
+ FieldEffectScript_LoadTiles(script);
+ return TRUE;
+}
+
+bool8 FieldEffectCmd_loadfadedpal(u8 **script, u32 *val)
+{
+ (*script)++;
+ FieldEffectScript_LoadFadedPalette(script);
+ return TRUE;
+}
+
+bool8 FieldEffectCmd_loadpal(u8 **script, u32 *val)
+{
+ (*script)++;
+ FieldEffectScript_LoadPalette(script);
+ return TRUE;
+}
+
+bool8 FieldEffectCmd_callnative(u8 **script, u32 *val)
+{
+ (*script)++;
+ FieldEffectScript_CallNative(script, val);
+ return TRUE;
+}
+
+bool8 FieldEffectCmd_end(u8 **script, u32 *val)
+{
+ return FALSE;
+}
+
+bool8 FieldEffectCmd_loadgfx_callnative(u8 **script, u32 *val)
+{
+ (*script)++;
+ FieldEffectScript_LoadTiles(script);
+ FieldEffectScript_LoadFadedPalette(script);
+ FieldEffectScript_CallNative(script, val);
+ return TRUE;
+}
+
+bool8 FieldEffectCmd_loadtiles_callnative(u8 **script, u32 *val)
+{
+ (*script)++;
+ FieldEffectScript_LoadTiles(script);
+ FieldEffectScript_CallNative(script, val);
+ return TRUE;
+}
+
+bool8 FieldEffectCmd_loadfadedpal_callnative(u8 **script, u32 *val)
+{
+ (*script)++;
+ FieldEffectScript_LoadFadedPalette(script);
+ FieldEffectScript_CallNative(script, val);
+ return TRUE;
+}
+
+u32 FieldEffectScript_ReadWord(u8 **script)
+{
+ return (*script)[0]
+ + ((*script)[1] << 8)
+ + ((*script)[2] << 16)
+ + ((*script)[3] << 24);
+}
+
+void FieldEffectScript_LoadTiles(u8 **script)
+{
+ struct SpriteSheet *sheet = (struct SpriteSheet *)FieldEffectScript_ReadWord(script);
+ if (GetSpriteTileStartByTag(sheet->tag) == 0xFFFF)
+ LoadSpriteSheet(sheet);
+ (*script) += 4;
+}
+
+void FieldEffectScript_LoadFadedPalette(u8 **script)
+{
+ struct SpritePalette *palette = (struct SpritePalette *)FieldEffectScript_ReadWord(script);
+ LoadSpritePalette(palette);
+ sub_807D78C(IndexOfSpritePaletteTag(palette->tag));
+ (*script) += 4;
+}
+
+void FieldEffectScript_LoadPalette(u8 **script)
+{
+ struct SpritePalette *palette = (struct SpritePalette *)FieldEffectScript_ReadWord(script);
+ LoadSpritePalette(palette);
+ (*script) += 4;
+}
+
+void FieldEffectScript_CallNative(u8 **script, u32 *val)
+{
+ u32 (*func)(void) = (u32 (*)(void))FieldEffectScript_ReadWord(script);
+ *val = func();
+ (*script) += 4;
+}
+
+void FieldEffectFreeGraphicsResources(struct Sprite *sprite)
+{
+ u16 sheetTileStart = sprite->sheetTileStart;
+ u32 paletteNum = sprite->oam.paletteNum;
+ DestroySprite(sprite);
+ FieldEffectFreeTilesIfUnused(sheetTileStart);
+ FieldEffectFreePaletteIfUnused(paletteNum);
+}
+
+void FieldEffectStop(struct Sprite *sprite, u8 id)
+{
+ FieldEffectFreeGraphicsResources(sprite);
+ FieldEffectActiveListRemove(id);
+}
+
+void FieldEffectFreeTilesIfUnused(u16 tileStart)
+{
+ u8 i;
+ u16 tag = GetSpriteTileTagByTileStart(tileStart);
+
+ if (tag != 0xFFFF)
+ {
+ for (i = 0; i < MAX_SPRITES; i++)
+ if (gSprites[i].inUse && gSprites[i].usingSheet && tileStart == gSprites[i].sheetTileStart)
+ return;
+ FreeSpriteTilesByTag(tag);
+ }
+}
+
+void FieldEffectFreePaletteIfUnused(u8 paletteNum)
+{
+ u8 i;
+ u16 tag = GetSpritePaletteTagByPaletteNum(paletteNum);
+
+ if (tag != 0xFFFF)
+ {
+ for (i = 0; i < MAX_SPRITES; i++)
+ if (gSprites[i].inUse && gSprites[i].oam.paletteNum == paletteNum)
+ return;
+ FreeSpritePaletteByTag(tag);
+ }
+}
+
+void FieldEffectActiveListClear(void)
+{
+ u8 i;
+ for (i = 0; i < ARRAY_COUNT(sActiveList); i++)
+ sActiveList[i] = 0xFF;
+}
+
+void FieldEffectActiveListAdd(u8 id)
+{
+ u8 i;
+ for (i = 0; i < ARRAY_COUNT(sActiveList); i++)
+ {
+ if (sActiveList[i] == 0xFF)
+ {
+ sActiveList[i] = id;
+ return;
+ }
+ }
+}
+
+void FieldEffectActiveListRemove(u8 id)
+{
+ u8 i;
+ for (i = 0; i < ARRAY_COUNT(sActiveList); i++)
+ {
+ if (sActiveList[i] == id)
+ {
+ sActiveList[i] = 0xFF;
+ return;
+ }
+ }
+}
+
+bool8 FieldEffectActiveListContains(u8 id)
+{
+ u8 i;
+ for (i = 0; i < ARRAY_COUNT(sActiveList); i++)
+ if (sActiveList[i] == id)
+ return TRUE;
+ return FALSE;
+}
diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c
new file mode 100644
index 000000000..6719f6c3a
--- /dev/null
+++ b/src/field_player_avatar.c
@@ -0,0 +1,1685 @@
+#include "global.h"
+#include "fieldmap.h"
+#include "flag.h"
+#include "main.h"
+#include "menu.h"
+#include "rng.h"
+#include "script.h"
+#include "songs.h"
+#include "sound.h"
+#include "sprite.h"
+#include "task.h"
+
+struct UnknownStruct
+{
+ u8 unk0;
+ u8 unk1;
+ u8 unk2;
+ s16 unk4;
+ s16 unk6;
+ u8 unk8;
+ u8 unk9;
+ u8 unkA_0:4;
+ u8 unkA_4:4;
+ u16 unkC;
+ u16 unkE;
+ u32 unk10;
+ u16 unk14;
+};
+
+extern u8 SpawnSpecialFieldObject(struct UnknownStruct *);
+extern u8 sub_8126B54(void);
+extern bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct MapObject *);
+extern u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *);
+extern u8 FieldObjectGetSpecialAnim(struct MapObject *);
+extern bool8 FieldObjectSetSpecialAnim(struct MapObject *, u8);
+extern void FieldObjectClearAnim(struct MapObject *);
+extern u8 sub_80E5DEC(u8);
+extern s16 sub_80E6034(void);
+extern u8 player_get_direction_upper_nybble(void);
+extern u8 player_get_direction_lower_nybble(void);
+extern u8 MapGridGetMetatileBehaviorAt(s32, s32);
+extern u32 FieldEffectStart(u8);
+extern void PlayerGetDestCoords(s16 *, s16 *);
+extern bool8 MetatileBehavior_IsSurfableFishableWater(u8);
+extern bool8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *);
+extern void sub_806451C(void);
+extern void sub_805B980(struct MapObject *, u8);
+extern void sub_8127ED0(u8, u8);
+extern bool8 player_should_look_direction_be_enforced_upon_movement(void);
+extern bool8 is_tile_x69_2_warp_door(u8);
+extern bool8 pokemon_has_move(struct Pokemon *, u8);
+extern u8 GetSimpleGoAnimId(u8);
+extern u8 GetStepInPlaceDelay16AnimId(u8);
+extern u8 sub_806084C(u8);
+extern u8 GetOppositeDirection(u8);
+extern u8 GetFaceDirectionAnimId(u8);
+extern u8 sub_80608D0(u8);
+extern bool8 GetFishingWildMonListHeader(void);
+extern void FishingWildEncounter(u8);
+extern u8 npc_block_way(struct MapObject *, s16, s16, u8);
+extern u8 GetFieldObjectIdByXY(s16, s16);
+extern u8 sub_8056F08(u8);
+extern u8 GetLedgeJumpDirection(s16, s16, u8);
+extern u8 GetFieldObjectIdByXYZ(u16, u16, int);
+extern u8 MapGridGetZCoordAt();
+extern u32 CheckForRotatingGatePuzzleCollision(u8, s16, s16);
+extern u8 sub_805FDF8(u8);
+extern void sub_80BE97C(u8);
+extern void sub_8127F28(u8, u8, s16);
+extern u8 sub_805FE08(u8);
+extern void sav1_reset_battle_music_maybe(void);
+extern void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *);
+extern u8 FieldObjectDirectionToImageAnimId(u8);
+extern u8 sub_805FD98(u8);
+extern u8 sub_805FDE8(u8);
+extern void sub_8053F84(void);
+extern u8 sub_80609D8(u8);
+extern u8 sub_8060A04(u8);
+extern u8 sub_8060A30(u8);
+extern u8 sub_8060A5C(u8);
+extern u8 sub_8060A88(u8);
+extern u8 sub_8060AB4(u8);
+extern u8 sub_8060878(u8);
+extern u8 sub_8060AE0(u8);
+extern u8 sub_8060B0C(u8);
+extern u8 sub_8060B38(u8);
+extern u8 sub_8060B64(u8);
+extern void MovePlayerOnBike(u8, u16, u16);
+extern void objid_set_invisible(u8);
+extern void FieldObjectTurn(struct MapObject *, u8);
+
+extern u8 gOtherText_OhABite[];
+extern u8 gOtherText_PokeOnHook[];
+extern u8 gOtherText_NotEvenANibble[];
+extern u8 gOtherText_ItGotAway[];
+
+extern struct
+{
+ s32 x;
+ s32 y;
+ u32 unk8;
+ u32 unkC;
+} gUnknown_0202FF84;
+
+extern bool8 (*gUnknown_0830FB58[])(u8);
+extern u8 (*gUnknown_0830FBA0[])(void);
+extern void (*gUnknown_0830FBEC[])(u8, u16);
+extern bool8 (*gUnknown_0830FBF8[])(u8);
+extern u8 gUnknown_0830FC0C[];
+extern void (*gUnknown_0830FC14[])(struct MapObject *);
+extern bool8 (*gUnknown_0830FC34[])(u8);
+extern u8 gUnknown_0830FC44[][2];
+extern u8 gUnknown_0830FC54[][2];
+extern u8 gUnknown_0830FC64[2][5][2];
+extern bool8 (*gUnknown_0830FC78[])(u8); //Duplicate of gUnknown_0830FC34
+extern u8 (*gUnknown_0830FC88[])(struct Task *, struct MapObject *, struct MapObject *);
+extern u8 (*gUnknown_0830FC94[])(struct Task *, struct MapObject *);
+extern u8 (*gUnknown_0830FC98[])(struct Task *, struct MapObject *);
+extern u8 gUnknown_0830FCA8[];
+extern u8 gUnknown_0830FCAC[];
+extern u8 (*gUnknown_0830FCB4[])(struct Task *);
+extern s16 gUnknown_0830FCF4[];
+extern s16 gUnknown_0830FCFA[];
+extern u8 gUnknown_0830FD00[];
+extern s16 gUnknown_0830FD02[];
+extern s16 gUnknown_0830FD08[];
+
+//Functions
+static u32 sub_80587D8(void);
+static bool8 sub_8058854(struct MapObject *, u8);
+static void npc_clear_strange_bits(struct MapObject *a);
+static void MovePlayerAvatarUsingKeypadInput(u8 a, u16 b, u16 c);
+static void PlayerAllowForcedMovementIfMovingSameDirection(void);
+static u8 TryDoMetatileBehaviorForcedMovement(void);
+static u8 GetForcedMovementByMetatileBehavior(void);
+static void MovePlayerNotOnBike(u8 a, u16 b);
+static u8 CheckMovementInputNotOnBike(u8 a);
+static u8 CheckForPlayerAvatarCollision(u8 a);
+u8 CheckForFieldObjectCollision(struct MapObject *a, s16 b, s16 c, u8 d, u8 e);
+static u8 sub_8058EF0(s16 a, s16 b, u8 c);
+static bool8 ShouldJumpLedge(s16 a, s16 b, u8 c);
+static u8 sub_8058F6C(s16 a, s16 b, u8 c);
+static void check_acro_bike_metatile(int unused1, int unused2, u8 c, u8 *d);
+static void DoPlayerAvatarTransition(void);
+static bool8 player_is_anim_in_certain_ranges(void);
+static bool8 sub_80592A4(void);
+static bool8 PlayerIsAnimActive(void);
+static bool8 PlayerCheckIfAnimFinishedOrInactive(void);
+void PlayerGoSpeed0(u8 a);
+void sub_80593C4(u8 a);
+void npc_use_some_d2s(u8 a);
+void sub_805940C(u8 a);
+static void PlayerNotOnBikeCollide(u8 a);
+void PlayerFaceDirection(u8 a);
+void PlayerTurnInPlace(u8 a);
+void PlayerJumpLedge(u8 a);
+static void PlayCollisionSoundIfNotFacingWarp(u8 a);
+u8 GetPlayerAvatarGraphicsIdByStateId(u8 a);
+void SetPlayerAvatarStateMask(u8 a);
+static void sub_8059D60(struct MapObject *a);
+static void StartStrengthAnim(u8 a, u8 b);
+static void sub_8059F94(void);
+static void sub_805A06C(void);
+void sub_805A20C(u8 a);
+
+void sub_80587B4(struct Sprite *sprite)
+{
+ meta_step(&gMapObjects[sprite->data0], sprite, sub_80587D8);
+}
+
+static u32 sub_80587D8(void)
+{
+ return 0;
+}
+
+void player_step(u8 a, u16 b, u16 c)
+{
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ sub_8059D60(playerMapObj);
+ if (gPlayerAvatar.unk6 == 0)
+ {
+ sub_80E5B38(b, c);
+ if (sub_8058854(playerMapObj, a) == 0)
+ {
+ npc_clear_strange_bits(playerMapObj);
+ DoPlayerAvatarTransition();
+ if (TryDoMetatileBehaviorForcedMovement() == 0)
+ {
+ MovePlayerAvatarUsingKeypadInput(a, b, c);
+ PlayerAllowForcedMovementIfMovingSameDirection();
+ }
+ }
+ }
+}
+
+static bool8 sub_8058854(struct MapObject *a, u8 b)
+{
+ if (FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(a)
+ && !FieldObjectClearAnimIfSpecialAnimFinished(a))
+ {
+ u8 specialAnim = FieldObjectGetSpecialAnim(a);
+
+ if (specialAnim > 24 && specialAnim < 29 && b != 0 && a->placeholder18 != b)
+ {
+ FieldObjectClearAnim(a);
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+static void npc_clear_strange_bits(struct MapObject *a)
+{
+ a->mapobj_bit_12 = 0;
+ a->mapobj_bit_10 = 0;
+ a->mapobj_bit_9 = 0;
+ gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_7;
+}
+
+static void MovePlayerAvatarUsingKeypadInput(u8 a, u16 b, u16 c)
+{
+ if ((gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_1) || (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_2))
+ MovePlayerOnBike(a, b, c);
+ else
+ MovePlayerNotOnBike(a, c);
+}
+
+static void PlayerAllowForcedMovementIfMovingSameDirection(void)
+{
+ if (gPlayerAvatar.running2 == 2)
+ gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_5;
+}
+
+static u8 TryDoMetatileBehaviorForcedMovement(void)
+{
+ return gUnknown_0830FBA0[GetForcedMovementByMetatileBehavior()]();
+}
+
+static u8 GetForcedMovementByMetatileBehavior(void)
+{
+ u8 i;
+
+ if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_5))
+ {
+ u8 r5 = gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1E;
+
+ for (i = 0; i < 18; i++)
+ {
+ if (gUnknown_0830FB58[i](r5))
+ return i + 1;
+ }
+ }
+ return 0;
+}
+
+u8 ForcedMovement_None(void)
+{
+ if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_6)
+ {
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ playerMapObj->mapobj_bit_9 = 0;
+ playerMapObj->mapobj_bit_11 = 1;
+ FieldObjectSetDirection(playerMapObj, playerMapObj->mapobj_unk_18);
+ gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_6;
+ }
+ return 0;
+}
+
+static u8 DoForcedMovement(u8 a, void (*b)(u8))
+{
+ struct PlayerAvatar *playerAvatar = &gPlayerAvatar;
+ u8 r7 = CheckForPlayerAvatarCollision(a);
+
+ playerAvatar->flags |= PLAYER_AVATAR_FLAG_6;
+ if (r7 != 0)
+ {
+ ForcedMovement_None();
+ if (r7 <= 4)
+ {
+ return 0;
+ }
+ else
+ {
+ if (r7 == 6)
+ PlayerJumpLedge(a);
+ playerAvatar->flags |= PLAYER_AVATAR_FLAG_6;
+ playerAvatar->running2 = 2;
+ return 1;
+ }
+ }
+ else
+ {
+ playerAvatar->running2 = 2;
+ b(a);
+ return 1;
+ }
+}
+
+static u8 DoForcedMovementInCurrentDirection(void (*a)(u8))
+{
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ playerMapObj->mapobj_bit_10 = 1;
+ return DoForcedMovement(playerMapObj->placeholder18, a);
+}
+
+u8 ForcedMovement_Slip(void)
+{
+ return DoForcedMovementInCurrentDirection(sub_80593C4);
+}
+
+u8 sub_8058AAC(void)
+{
+ return DoForcedMovement(1, PlayerGoSpeed0);
+}
+
+u8 sub_8058AC4(void)
+{
+ return DoForcedMovement(2, PlayerGoSpeed0);
+}
+
+u8 sub_8058ADC(void)
+{
+ return DoForcedMovement(3, PlayerGoSpeed0);
+}
+
+u8 sub_8058AF4(void)
+{
+ return DoForcedMovement(4, PlayerGoSpeed0);
+}
+
+u8 sub_8058B0C(void)
+{
+ return DoForcedMovement(1, npc_use_some_d2s);
+}
+
+u8 sub_8058B24(void)
+{
+ return DoForcedMovement(2, npc_use_some_d2s);
+}
+
+u8 sub_8058B3C(void)
+{
+ return DoForcedMovement(3, npc_use_some_d2s);
+}
+
+u8 sub_8058B54(void)
+{
+ return DoForcedMovement(4, npc_use_some_d2s);
+}
+
+static u8 ForcedMovement_Slide(u8 a, void (*b)(u8))
+{
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ playerMapObj->mapobj_bit_10 = 1;
+ playerMapObj->mapobj_bit_9 = 1;
+ return DoForcedMovement(a, b);
+}
+
+u8 ForcedMovement_SlideSouth(void)
+{
+ return ForcedMovement_Slide(1, sub_80593C4);
+}
+
+u8 ForcedMovement_SlideNorth(void)
+{
+ return ForcedMovement_Slide(2, sub_80593C4);
+}
+
+u8 ForcedMovement_SlideWest(void)
+{
+ return ForcedMovement_Slide(3, sub_80593C4);
+}
+
+u8 ForcedMovement_SlideEast(void)
+{
+ return ForcedMovement_Slide(4, sub_80593C4);
+}
+
+u8 sub_8058C04(void)
+{
+ sub_8059F94();
+ return 1;
+}
+
+u8 sub_8058C10(void)
+{
+ sub_805A06C();
+ return 1;
+}
+
+u8 ForcedMovement_MuddySlope(void)
+{
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ if (playerMapObj->placeholder18 != 2 || sub_80E6034() <= 3)
+ {
+ sub_80E6010(0);
+ playerMapObj->mapobj_bit_9 = 1;
+ return DoForcedMovement(1, sub_80593C4);
+ }
+ else
+ {
+ return 0;
+ }
+}
+
+static void MovePlayerNotOnBike(u8 a, u16 b)
+{
+ gUnknown_0830FBEC[CheckMovementInputNotOnBike(a)](a, b);
+}
+
+static u8 CheckMovementInputNotOnBike(u8 a)
+{
+ if (a == 0)
+ {
+ gPlayerAvatar.running2 = 0;
+ return 0;
+ }
+ else if (a != player_get_direction_upper_nybble() && gPlayerAvatar.running2 != 2)
+ {
+ gPlayerAvatar.running2 = 1;
+ return 1;
+ }
+ else
+ {
+ gPlayerAvatar.running2 = 2;
+ return 2;
+ }
+}
+
+void PlayerNotOnBikeNotMoving(u8 a, u16 b)
+{
+ PlayerFaceDirection(player_get_direction_lower_nybble());
+}
+
+void PlayerNotOnBikeTurningInPlace(u8 a, u16 b)
+{
+ PlayerTurnInPlace(a);
+}
+
+void sub_8058D0C(u8 a, u16 b)
+{
+ u8 r1 = CheckForPlayerAvatarCollision(a);
+
+ switch (r1)
+ {
+ case 6:
+ PlayerJumpLedge(a);
+ return;
+ default:
+ if (r1 > 8 || r1 < 5)
+ PlayerNotOnBikeCollide(a);
+ return;
+ case 0:
+ if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_3)
+ {
+ sub_80593C4(a);
+ return;
+ }
+ if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_4) && (b & 2) && FlagGet(0x860)
+ && sub_80E5DEC(gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1E) == 0)
+ {
+ sub_805940C(a);
+ gPlayerAvatar.flags |= PLAYER_AVATAR_FLAG_7;
+ }
+ else
+ {
+ PlayerGoSpeed0(a);
+ }
+ }
+}
+
+static u8 CheckForPlayerAvatarCollision(u8 a)
+{
+ s16 x, y;
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ x = playerMapObj->coords2.x;
+ y = playerMapObj->coords2.y;
+ MoveCoords(a, &x, &y);
+ return CheckForFieldObjectCollision(playerMapObj, x, y, a, MapGridGetMetatileBehaviorAt(x, y));
+}
+
+u8 CheckForFieldObjectCollision(struct MapObject *a, s16 b, s16 c, u8 d, u8 e)
+{
+ u8 sp0;
+
+ sp0 = npc_block_way(a, b, c, d);
+ if (sp0 == 3 && sub_8058EF0(b, c, d))
+ return 5;
+ if (ShouldJumpLedge(b, c, d))
+ {
+ sav12_xor_increment(0x2B);
+ return 6;
+ }
+ if (sp0 == 4 && sub_8058F6C(b, c, d))
+ return 7;
+
+ if (sp0 == 0)
+ {
+ if (CheckForRotatingGatePuzzleCollision(d, b, c))
+ return 8;
+ check_acro_bike_metatile(b, c, e, &sp0);
+ }
+ return sp0;
+}
+
+static u8 sub_8058EF0(s16 a, s16 b, u8 c)
+{
+ if ((gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_3)
+ && MapGridGetZCoordAt(a, b) == 3
+ && GetFieldObjectIdByXYZ(a, b, 3) == 16)
+ {
+ sub_805A20C(c);
+ return 1;
+ }
+ else
+ {
+ return 0;
+ }
+}
+
+static bool8 ShouldJumpLedge(s16 a, s16 b, u8 c)
+{
+ if (GetLedgeJumpDirection(a, b, c) != 0)
+ return 1;
+ else
+ return 0;
+}
+
+static u8 sub_8058F6C(s16 a, s16 b, u8 c)
+{
+ if (FlagGet(0x829))
+ {
+ u8 mapObjectId = GetFieldObjectIdByXY(a, b);
+
+ if (mapObjectId != 16)
+ {
+ if (gMapObjects[mapObjectId].graphicsId == 0x57)
+ {
+ a = gMapObjects[mapObjectId].coords2.x;
+ b = gMapObjects[mapObjectId].coords2.y;
+ MoveCoords(c, &a, &b);
+ if (npc_block_way(&gMapObjects[mapObjectId], a, b, c) == 0
+ && sub_8056F08(MapGridGetMetatileBehaviorAt(a, b)) == 0)
+ {
+ StartStrengthAnim(mapObjectId, c);
+ return 1;
+ }
+ }
+ }
+ }
+ return 0;
+}
+
+static void check_acro_bike_metatile(int unused1, int unused2, u8 c, u8 *d)
+{
+ u8 i;
+
+ for (i = 0; i < 5; i++)
+ {
+ if (gUnknown_0830FBF8[i](c))
+ {
+ *d = gUnknown_0830FC0C[i];
+ return;
+ }
+ }
+}
+
+void SetPlayerAvatarTransitionFlags(u16 a)
+{
+ gPlayerAvatar.bike |= a;
+ DoPlayerAvatarTransition();
+}
+
+static void DoPlayerAvatarTransition(void)
+{
+ u8 i;
+ u32 flags = gPlayerAvatar.bike;
+
+ if (flags != 0)
+ {
+ for (i = 0; i < 8; i++, flags >>= 1)
+ {
+#ifdef NONMATCHING
+ if (flags & 1)
+ {
+ gUnknown_0830FC14[i](&gMapObjects[gPlayerAvatar.mapObjectId]);
+ }
+#else
+ if (flags & 1)
+ {
+ register void (**funcs)(struct MapObject *) asm("r0") = gUnknown_0830FC14;
+ funcs[i](&gMapObjects[gPlayerAvatar.mapObjectId]);
+ }
+#endif
+ }
+ gPlayerAvatar.bike = 0;
+ }
+}
+
+void nullsub_49(struct MapObject *a)
+{
+}
+
+void PlayerAvatarTransition_Normal(struct MapObject *a)
+{
+ sub_805B980(a, GetPlayerAvatarGraphicsIdByStateId(0));
+ FieldObjectTurn(a, a->placeholder18);
+ SetPlayerAvatarStateMask(1);
+}
+
+void PlayerAvatarTransition_MachBike(struct MapObject *a)
+{
+ sub_805B980(a, GetPlayerAvatarGraphicsIdByStateId(1));
+ FieldObjectTurn(a, a->placeholder18);
+ SetPlayerAvatarStateMask(2);
+ sub_80E5FCC(0, 0);
+}
+
+void PlayerAvatarTransition_AcroBike(struct MapObject *a)
+{
+ sub_805B980(a, GetPlayerAvatarGraphicsIdByStateId(2));
+ FieldObjectTurn(a, a->placeholder18);
+ SetPlayerAvatarStateMask(4);
+ sub_80E5FCC(0, 0);
+ sub_80E6084();
+}
+
+void PlayerAvatarTransition_Surfing(struct MapObject *a)
+{
+ u8 unk;
+
+ sub_805B980(a, GetPlayerAvatarGraphicsIdByStateId(3));
+ FieldObjectTurn(a, a->placeholder18);
+ SetPlayerAvatarStateMask(8);
+ gUnknown_0202FF84.x = a->coords2.x;
+ gUnknown_0202FF84.y = a->coords2.y;
+ gUnknown_0202FF84.unk8 = gPlayerAvatar.mapObjectId;
+ unk = FieldEffectStart(8);
+ a->mapobj_unk_1A = unk;
+ sub_8127ED0(unk, 1);
+}
+
+void PlayerAvatarTransition_Underwater(struct MapObject *a)
+{
+ sub_805B980(a, GetPlayerAvatarGraphicsIdByStateId(4));
+ FieldObjectTurn(a, a->placeholder18);
+ SetPlayerAvatarStateMask(16);
+ a->mapobj_unk_1A = sub_8128124(a->spriteId);
+}
+
+void sub_80591F4(struct MapObject *a)
+{
+ gPlayerAvatar.flags |= PLAYER_AVATAR_FLAG_5;
+}
+
+void sub_8059204(void)
+{
+ gPlayerAvatar.running1 = 0;
+ if (PlayerIsAnimActive())
+ {
+ if (!PlayerCheckIfAnimFinishedOrInactive())
+ {
+ if (!player_is_anim_in_certain_ranges())
+ gPlayerAvatar.running1 = 1;
+ }
+ else
+ {
+ if (!sub_80592A4())
+ gPlayerAvatar.running1 = 2;
+ }
+ }
+}
+
+static bool8 player_is_anim_in_certain_ranges(void)
+{
+ u8 unk = gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1C;
+
+ if (unk < 4
+ || (unk >= 16 && unk < 0x15)
+ || (unk >= 25 && unk < 41)
+ || (unk >= 98 && unk < 110)
+ || (unk >= 122 && unk < 126))
+ return TRUE;
+ else
+ return FALSE;
+}
+
+static bool8 sub_80592A4(void)
+{
+ if (player_is_anim_in_certain_ranges() && gPlayerAvatar.running2 != 1)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+static bool8 PlayerIsAnimActive(void)
+{
+ return FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(&gMapObjects[gPlayerAvatar.mapObjectId]);
+}
+
+static bool8 PlayerCheckIfAnimFinishedOrInactive(void)
+{
+ return FieldObjectCheckIfSpecialAnimFinishedOrInactive(&gMapObjects[gPlayerAvatar.mapObjectId]);
+}
+
+static void player_set_x22(u8 a)
+{
+ gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_22 = a;
+}
+
+u8 player_get_x22(void)
+{
+ return gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_22;
+}
+
+static void sub_8059348(u8 a)
+{
+ FieldObjectForceSetSpecialAnim(&gMapObjects[gPlayerAvatar.mapObjectId], a);
+}
+
+void player_npc_set_state_and_x22_etc(u8 a, u8 b)
+{
+ if (!PlayerIsAnimActive())
+ {
+ player_set_x22(b);
+ FieldObjectSetSpecialAnim(&gMapObjects[gPlayerAvatar.mapObjectId], a);
+ }
+}
+
+void PlayerGoSpeed0(u8 a)
+{
+ player_npc_set_state_and_x22_etc(GetGoSpeed0AnimId(a), 2);
+}
+
+void sub_80593C4(u8 a)
+{
+ player_npc_set_state_and_x22_etc(sub_8060744(a), 2);
+}
+
+void npc_use_some_d2s(u8 a)
+{
+ player_npc_set_state_and_x22_etc(d2s_08064034(a), 2);
+}
+
+void sub_80593F4(u8 a)
+{
+ player_npc_set_state_and_x22_etc(sub_806079C(a), 2);
+}
+
+void sub_805940C(u8 a)
+{
+ player_npc_set_state_and_x22_etc(sub_80607F4(a), 2);
+}
+
+void PlayerOnBikeCollide(u8 a)
+{
+ PlayCollisionSoundIfNotFacingWarp(a);
+ player_npc_set_state_and_x22_etc(GetStepInPlaceDelay16AnimId(a), 2);
+}
+
+static void PlayerNotOnBikeCollide(u8 a)
+{
+ PlayCollisionSoundIfNotFacingWarp(a);
+ player_npc_set_state_and_x22_etc(GetStepInPlaceDelay32AnimId(a), 2);
+}
+
+void PlayerFaceDirection(u8 a)
+{
+ player_npc_set_state_and_x22_etc(GetFaceDirectionAnimId(a), 1);
+}
+
+void PlayerTurnInPlace(u8 a)
+{
+ player_npc_set_state_and_x22_etc(GetStepInPlaceDelay8AnimId(a), 1);
+}
+
+void PlayerJumpLedge(u8 a)
+{
+ PlaySE(SE_DANSA);
+ player_npc_set_state_and_x22_etc(GetJumpLedgeAnimId(a), 8);
+}
+
+void sub_80594C0(void)
+{
+ if (gPlayerAvatar.running1 == 2 || gPlayerAvatar.running1 == 0)
+ {
+ if (player_should_look_direction_be_enforced_upon_movement())
+ sub_8059348(GetFaceDirectionAnimId(gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_18));
+ }
+}
+
+void sub_8059504(u8 a)
+{
+ player_npc_set_state_and_x22_etc(sub_80609D8(a), 1);
+}
+
+void sub_805951C(u8 a)
+{
+ player_npc_set_state_and_x22_etc(sub_8060A04(a), 1);
+}
+
+void sub_8059534(u8 a)
+{
+ player_npc_set_state_and_x22_etc(sub_8060A30(a), 1);
+}
+
+void sub_805954C(u8 a)
+{
+ PlaySE(SE_JITE_PYOKO);
+ player_npc_set_state_and_x22_etc(sub_8060A5C(a), 1);
+}
+
+void sub_8059570(u8 a)
+{
+ PlaySE(SE_JITE_PYOKO);
+ player_npc_set_state_and_x22_etc(sub_8060A88(a), 2);
+}
+
+void sub_8059594(u8 a)
+{
+ PlaySE(SE_JITE_PYOKO);
+ player_npc_set_state_and_x22_etc(sub_8060AB4(a), 8);
+}
+
+void sub_80595B8(u8 a)
+{
+ PlaySE(SE_JITE_PYOKO);
+ player_npc_set_state_and_x22_etc(sub_8060878(a), 1);
+}
+
+void sub_80595DC(u8 a)
+{
+ PlaySE(SE_WALL_HIT);
+ player_npc_set_state_and_x22_etc(sub_8060AE0(a), 2);
+}
+
+void sub_8059600(u8 a)
+{
+ player_npc_set_state_and_x22_etc(sub_8060B0C(a), 2);
+}
+
+void sub_8059618(u8 a)
+{
+ player_npc_set_state_and_x22_etc(sub_8060B38(a), 2);
+}
+
+void sub_8059630(u8 a)
+{
+ player_npc_set_state_and_x22_etc(sub_8060B64(a), 2);
+}
+
+static void PlayCollisionSoundIfNotFacingWarp(u8 a)
+{
+ s16 x, y;
+ u8 unk = gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1E;
+
+ if (!gUnknown_0830FC34[a - 1](unk))
+ {
+ if (a == 2)
+ {
+ PlayerGetDestCoords(&x, &y);
+ MoveCoords(2, &x, &y);
+ if (is_tile_x69_2_warp_door(MapGridGetMetatileBehaviorAt(x, y)))
+ return;
+ }
+ PlaySE(SE_WALL_HIT);
+ }
+}
+
+void GetXYCoordsOneStepInFrontOfPlayer(s16 *x, s16 *y)
+{
+ *x = gMapObjects[gPlayerAvatar.mapObjectId].coords2.x;
+ *y = gMapObjects[gPlayerAvatar.mapObjectId].coords2.y;
+ MoveCoords(player_get_direction_lower_nybble(), x, y);
+}
+
+void PlayerGetDestCoords(s16 *x, s16 *y)
+{
+ *x = gMapObjects[gPlayerAvatar.mapObjectId].coords2.x;
+ *y = gMapObjects[gPlayerAvatar.mapObjectId].coords2.y;
+}
+
+u8 player_get_direction_lower_nybble(void)
+{
+ return gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_18;
+}
+
+u8 player_get_direction_upper_nybble(void)
+{
+ return gMapObjects[gPlayerAvatar.mapObjectId].placeholder18;
+}
+
+u8 PlayerGetZCoord(void)
+{
+ return gMapObjects[gPlayerAvatar.mapObjectId].elevation;
+}
+
+static void unref_sub_8059790(s16 a, s16 b)
+{
+ sub_805C058(&gMapObjects[gPlayerAvatar.mapObjectId], a, b);
+}
+
+u8 TestPlayerAvatarFlags(u8 a)
+{
+ return gPlayerAvatar.flags & a;
+}
+
+u8 sub_80597D0(void)
+{
+ return gPlayerAvatar.flags;
+}
+
+u8 GetPlayerAvatarObjectId(void)
+{
+ return gPlayerAvatar.spriteId;
+}
+
+void sub_80597E8(void)
+{
+ ForcedMovement_None();
+}
+
+void sub_80597F4(void)
+{
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ npc_clear_strange_bits(playerMapObj);
+ FieldObjectSetDirection(playerMapObj, playerMapObj->mapobj_unk_18);
+ if (TestPlayerAvatarFlags(6))
+ {
+ sub_80E6084();
+ sub_80E6010(0);
+ }
+}
+
+u8 sub_805983C(u8 a, u8 b)
+{
+ return gUnknown_0830FC44[a][b];
+}
+
+static u8 GetPlayerAvatarGraphicsIdByStateIdAndGender(u8 a, u8 b)
+{
+ return gUnknown_0830FC54[a][b];
+}
+
+u8 GetPlayerAvatarGraphicsIdByStateId(u8 a)
+{
+ return GetPlayerAvatarGraphicsIdByStateIdAndGender(a, gPlayerAvatar.gender);
+}
+
+static u8 unref_sub_8059888(u8 a)
+{
+ switch (a)
+ {
+ case 0x69:
+ case 0x6A:
+ case 0x6B:
+ case 0x6C:
+ case 0x6D:
+ case 0x70:
+ case 0x8A:
+ case 0xC0:
+ return FEMALE;
+ default:
+ return MALE;
+ }
+}
+
+u8 GetPlayerAvatarGenderByGraphicsId(u8 a)
+{
+ switch (a)
+ {
+ case 0x59:
+ case 0x5A:
+ case 0x5B:
+ case 0x5C:
+ case 0x5D:
+ case 0x70:
+ case 0x8A:
+ case 0xC0:
+ return FEMALE;
+ default:
+ return MALE;
+ }
+}
+
+bool8 PartyHasMonWithSurf(void)
+{
+ u8 i;
+
+ if (!TestPlayerAvatarFlags(8))
+ {
+ for (i = 0; i < 6; i++)
+ {
+ if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) == 0)
+ break;
+ if (pokemon_has_move(&gPlayerParty[i], 0x39))
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+bool8 IsPlayerSurfingNorth(void)
+{
+ if (player_get_direction_upper_nybble() == 2 && TestPlayerAvatarFlags(8))
+ return TRUE;
+ else
+ return FALSE;
+}
+
+bool8 IsPlayerFacingSurfableFishableWater(void)
+{
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+ s16 x = playerMapObj->coords2.x;
+ s16 y = playerMapObj->coords2.y;
+
+ MoveCoords(playerMapObj->mapobj_unk_18, &x, &y);
+ if (npc_block_way(playerMapObj, x, y, playerMapObj->mapobj_unk_18) == 3 && PlayerGetZCoord() == 3
+ && MetatileBehavior_IsSurfableFishableWater(MapGridGetMetatileBehaviorAt(x, y)))
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void ClearPlayerAvatarInfo(void)
+{
+ //TODO: 0x24 should be the size of gPlayerAvatar
+ memset(&gPlayerAvatar, 0, 0x24);
+}
+
+void SetPlayerAvatarStateMask(u8 a)
+{
+ gPlayerAvatar.flags &= 0xE0;
+ gPlayerAvatar.flags |= a;
+}
+
+static u8 GetPlayerAvatarStateTransitionByGraphicsId(u8 a, u8 gender)
+{
+ u8 i;
+
+ for (i = 0; i < 5; i++)
+ {
+ if (gUnknown_0830FC64[gender][i][0] == a)
+ return gUnknown_0830FC64[gender][i][1];
+ }
+ return 1;
+}
+
+u8 GetPlayerAvatarGraphicsIdByCurrentState(void)
+{
+ u8 i;
+ u8 r5 = gPlayerAvatar.flags;
+
+ for (i = 0; i < 5; i++)
+ {
+ if (gUnknown_0830FC64[gPlayerAvatar.gender][i][1] & r5)
+ return gUnknown_0830FC64[gPlayerAvatar.gender][i][0];
+ }
+ return 0;
+}
+
+void SetPlayerAvatarExtraStateTransition(u8 a, u8 b)
+{
+ u8 unk = GetPlayerAvatarStateTransitionByGraphicsId(a, gPlayerAvatar.gender);
+
+ gPlayerAvatar.bike |= unk | b;
+ DoPlayerAvatarTransition();
+}
+
+void InitPlayerAvatar(s16 a, s16 b, u8 c, u8 d)
+{
+ struct UnknownStruct s;
+ u8 mapObjectId;
+ struct MapObject *mapObject;
+
+ s.unk0 = 0xFF;
+ s.unk1 = GetPlayerAvatarGraphicsIdByStateIdAndGender(0, d);
+ s.unk4 = a - 7;
+ s.unk6 = b - 7;
+ s.unk8 = 0;
+ s.unk9 = 11;
+ s.unkA_0 = 0;
+ s.unkA_4 = 0;
+ s.unkC = 0;
+ s.unkE = 0;
+ s.unk10 = 0;
+ s.unk14 = 0;
+ mapObjectId = SpawnSpecialFieldObject(&s);
+ mapObject = &gMapObjects[mapObjectId];
+ mapObject->mapobj_bit_16 = 1;
+ mapObject->mapobj_unk_1B = sub_8126B54();
+ FieldObjectTurn(mapObject, c);
+ ClearPlayerAvatarInfo();
+ gPlayerAvatar.running2 = 0;
+ gPlayerAvatar.running1 = 0;
+ gPlayerAvatar.mapObjectId = mapObjectId;
+ gPlayerAvatar.spriteId = mapObject->spriteId;
+ gPlayerAvatar.gender = d;
+ SetPlayerAvatarStateMask(0x21);
+}
+
+void sub_8059B88(u8 a)
+{
+ gMapObjects[gPlayerAvatar.mapObjectId].mapobj_bit_13 = a;
+ if (TestPlayerAvatarFlags(8))
+ gSprites[gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1A].invisible = a;
+}
+
+void sub_8059BF4(void)
+{
+ sub_805B980(&gMapObjects[gPlayerAvatar.mapObjectId], GetPlayerAvatarGraphicsIdByStateId(5));
+ StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], 0);
+}
+
+void sub_8059C3C(u8 a)
+{
+ sub_805B980(&gMapObjects[gPlayerAvatar.mapObjectId], GetPlayerAvatarGraphicsIdByStateId(6));
+ StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], sub_805FDE8(a));
+}
+
+void sub_8059C94(u8 a)
+{
+ sub_805B980(&gMapObjects[gPlayerAvatar.mapObjectId], GetPlayerAvatarGraphicsIdByStateId(2));
+ StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], sub_805FD98(a));
+ SeekSpriteAnim(&gSprites[gPlayerAvatar.spriteId], 1);
+}
+
+void sub_8059D08(u8 a)
+{
+ sub_805B980(&gMapObjects[gPlayerAvatar.mapObjectId], GetPlayerAvatarGraphicsIdByStateId(7));
+ StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], FieldObjectDirectionToImageAnimId(a));
+}
+
+static void sub_8059D60(struct MapObject *a)
+{
+ s16 x;
+ s16 y;
+ u8 r6;
+ u8 r8 = a->mapobj_unk_1E;
+
+ for (x = 0, r6 = 1; x < 4; x++, r6++)
+ {
+ if (gUnknown_0830FC78[x](r8) && r6 == a->placeholder18)
+ {
+ x = a->coords2.x;
+ y = a->coords2.y;
+ MoveCoords(r6, &x, &y);
+ sub_8126BC4(a->mapobj_unk_1B, r6, x, y);
+ return;
+ }
+ }
+ objid_set_invisible(a->mapobj_unk_1B);
+}
+
+/* Strength */
+
+static void sub_8059E2C(u8 taskId);
+
+static void StartStrengthAnim(u8 a, u8 b)
+{
+ u8 taskId = CreateTask(sub_8059E2C, 0xFF);
+
+ gTasks[taskId].data[1] = a;
+ gTasks[taskId].data[2] = b;
+ sub_8059E2C(taskId);
+}
+
+static void sub_8059E2C(u8 taskId)
+{
+ while (gUnknown_0830FC88[gTasks[taskId].data[0]](&gTasks[taskId],
+ &gMapObjects[gPlayerAvatar.mapObjectId],
+ &gMapObjects[gTasks[taskId].data[1]]))
+ ;
+}
+
+u8 sub_8059E84(struct Task *task, struct MapObject *b, struct MapObject *c)
+{
+ ScriptContext2_Enable();
+ gPlayerAvatar.unk6 = 1;
+ task->data[0]++;
+ return 0;
+}
+
+u8 sub_8059EA4(struct Task *task, struct MapObject *b, struct MapObject *c)
+{
+ if (!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(b)
+ && !FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(c))
+ {
+ FieldObjectClearAnimIfSpecialAnimFinished(b);
+ FieldObjectClearAnimIfSpecialAnimFinished(c);
+ FieldObjectSetSpecialAnim(b, GetStepInPlaceDelay16AnimId(task->data[2]));
+ FieldObjectSetSpecialAnim(c, GetSimpleGoAnimId(task->data[2]));
+ gUnknown_0202FF84.x = c->coords2.x;
+ gUnknown_0202FF84.y = c->coords2.y;
+ gUnknown_0202FF84.unk8 = c->elevation;
+ gUnknown_0202FF84.unkC = gSprites[c->spriteId].oam.priority;
+ FieldEffectStart(10);
+ PlaySE(SE_W070);
+ task->data[0]++;
+ }
+ return 0;
+}
+
+u8 sub_8059F40(struct Task *task, struct MapObject *b, struct MapObject *c)
+{
+ if (FieldObjectCheckIfSpecialAnimFinishedOrInactive(b)
+ && FieldObjectCheckIfSpecialAnimFinishedOrInactive(c))
+ {
+ FieldObjectClearAnimIfSpecialAnimFinished(b);
+ FieldObjectClearAnimIfSpecialAnimFinished(c);
+ gPlayerAvatar.unk6 = 0;
+ ScriptContext2_Disable();
+ DestroyTask(FindTaskIdByFunc(sub_8059E2C));
+ }
+ return 0;
+}
+
+/* Some field effect */
+
+static void sub_8059FB4(u8 taskId);
+
+static void sub_8059F94(void)
+{
+ u8 taskId = CreateTask(sub_8059FB4, 0xFF);
+
+ sub_8059FB4(taskId);
+}
+
+static void sub_8059FB4(u8 taskId)
+{
+ while (gUnknown_0830FC94[gTasks[taskId].data[0]](&gTasks[taskId], &gMapObjects[gPlayerAvatar.mapObjectId]))
+ ;
+}
+
+u8 sub_805A000(struct Task *task, struct MapObject *mapObject)
+{
+ gPlayerAvatar.unk6 = 1;
+ if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ PlaySE(SE_DANSA);
+ FieldObjectSetSpecialAnim(mapObject, sub_806084C(mapObject->mapobj_unk_18));
+ task->data[1]++;
+ if (task->data[1] > 1)
+ {
+ gPlayerAvatar.unk6 = 0;
+ gPlayerAvatar.bike |= 0x20;
+ DestroyTask(FindTaskIdByFunc(sub_8059FB4));
+ }
+ }
+ return 0;
+}
+
+/* Some field effect */
+
+static void sub_805A08C(u8 taskId);
+
+static void sub_805A06C(void)
+{
+ u8 taskId = CreateTask(sub_805A08C, 0xFF);
+
+ sub_805A08C(taskId);
+}
+
+static void sub_805A08C(u8 taskId)
+{
+ while (gUnknown_0830FC98[gTasks[taskId].data[0]](&gTasks[taskId], &gMapObjects[gPlayerAvatar.mapObjectId]))
+ ;
+}
+
+u8 sub_805A0D8(struct Task *task, struct MapObject *mapObject)
+{
+ task->data[0]++;
+ task->data[1] = mapObject->placeholder18;
+ gPlayerAvatar.unk6 = 1;
+ ScriptContext2_Enable();
+ PlaySE(SE_TK_WARPIN);
+ return 1;
+}
+
+u8 sub_805A100(struct Task *task, struct MapObject *mapObject)
+{
+ u8 directions[4];
+
+ memcpy(directions, gUnknown_0830FCA8, sizeof(directions));
+ if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ u8 direction;
+
+ FieldObjectSetSpecialAnim(mapObject, GetFaceDirectionAnimId(direction = directions[mapObject->placeholder18 - 1]));
+ if (direction == (u8)task->data[1])
+ task->data[2]++;
+ task->data[0]++;
+ if (task->data[2] > 3 && direction == GetOppositeDirection(task->data[1]))
+ task->data[0]++;
+ }
+ return 0;
+}
+
+u8 sub_805A178(struct Task *task, struct MapObject *mapObject)
+{
+ u8 arr[5];
+
+ memcpy(arr, gUnknown_0830FCAC, sizeof(arr));
+ if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ FieldObjectSetSpecialAnim(mapObject, arr[task->data[2]]);
+ task->data[0] = 1;
+ }
+ return 0;
+}
+
+u8 sub_805A1B8(struct Task *task, struct MapObject *mapObject)
+{
+ if (FieldObjectClearAnimIfSpecialAnimFinished(mapObject))
+ {
+ FieldObjectSetSpecialAnim(mapObject, GetSimpleGoAnimId(GetOppositeDirection(task->data[1])));
+ ScriptContext2_Disable();
+ gPlayerAvatar.unk6 = 0;
+ DestroyTask(FindTaskIdByFunc(sub_805A08C));
+ }
+ return 0;
+}
+
+/* Some Field effect */
+
+static void taskFF_0805D1D4(u8 taskId);
+static void sub_805A2D0(u8 taskId);
+
+void sub_805A20C(u8 a)
+{
+ u8 taskId;
+
+ ScriptContext2_Enable();
+ sav1_reset_battle_music_maybe();
+ sub_8053F84();
+ gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_3;
+ gPlayerAvatar.flags |= PLAYER_AVATAR_FLAG_0;
+ gPlayerAvatar.unk6 = 1;
+ taskId = CreateTask(taskFF_0805D1D4, 0xFF);
+ gTasks[taskId].data[0] = a;
+ taskFF_0805D1D4(taskId);
+}
+
+static void taskFF_0805D1D4(u8 taskId)
+{
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ if (FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(playerMapObj))
+ {
+ if (!FieldObjectClearAnimIfSpecialAnimFinished(playerMapObj))
+ return;
+ }
+ sub_8127ED0(playerMapObj->mapobj_unk_1A, 2);
+ FieldObjectSetSpecialAnim(playerMapObj, sub_80608D0(gTasks[taskId].data[0]));
+ gTasks[taskId].func = sub_805A2D0;
+}
+
+static void sub_805A2D0(u8 taskId)
+{
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ if (FieldObjectClearAnimIfSpecialAnimFinished(playerMapObj))
+ {
+ sub_805B980(playerMapObj, GetPlayerAvatarGraphicsIdByStateId(0));
+ FieldObjectSetSpecialAnim(playerMapObj, GetFaceDirectionAnimId(playerMapObj->mapobj_unk_18));
+ gPlayerAvatar.unk6 = 0;
+ ScriptContext2_Disable();
+ DestroySprite(&gSprites[playerMapObj->mapobj_unk_1A]);
+ DestroyTask(taskId);
+ }
+}
+
+/* Fishing */
+
+static void Task_Fishing(u8 taskId);
+static void sub_805A954(void);
+
+void StartFishing(u8 a)
+{
+ u8 taskId = CreateTask(Task_Fishing, 0xFF);
+
+ gTasks[taskId].data[15] = a;
+ Task_Fishing(taskId);
+}
+
+static void Task_Fishing(u8 taskId)
+{
+ while (gUnknown_0830FCB4[gTasks[taskId].data[0]](&gTasks[taskId]))
+ ;
+}
+
+u8 Fishing1(struct Task *task)
+{
+ ScriptContext2_Enable();
+ gPlayerAvatar.unk6 = 1;
+ task->data[0]++;
+ return 0;
+}
+
+u8 Fishing2(struct Task *task)
+{
+ s16 arr1[3];
+ s16 arr2[3];
+ struct MapObject *playerMapObj;
+
+ memcpy(arr1, gUnknown_0830FCF4, sizeof(arr1));
+ memcpy(arr2, gUnknown_0830FCFA, sizeof(arr2));
+ task->data[12] = 0;
+ task->data[13] = arr1[task->data[15]] + (Random() % arr2[task->data[15]]);
+ task->data[14] = gMapObjects[gPlayerAvatar.mapObjectId].graphicsId;
+ playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+ FieldObjectClearAnimIfSpecialAnimActive(playerMapObj);
+ playerMapObj->mapobj_bit_11 = 1;
+ sub_8059C3C(playerMapObj->mapobj_unk_18);
+ task->data[0]++;
+ return 0;
+}
+
+u8 Fishing3(struct Task *task)
+{
+ sub_805A954();
+ task->data[1]++;
+ if (task->data[1] > 0x3B)
+ task->data[0]++;
+ return 0;
+}
+
+u8 Fishing4(struct Task *task)
+{
+ u32 randVal;
+
+ MenuDisplayMessageBox();
+ task->data[0]++;
+ task->data[1] = 0;
+ task->data[2] = 0;
+ randVal = Random();
+ randVal %= 10;
+ task->data[3] = randVal + 1;
+ if (task->data[12] == 0)
+ task->data[3] = randVal + 4;
+ if (task->data[3] > 9)
+ task->data[3] = 10;
+ return 1;
+}
+
+u8 Fishing5(struct Task *task)
+{
+ u8 dot[2];
+
+ memcpy(dot, gUnknown_0830FD00, sizeof(dot));
+ sub_805A954();
+ task->data[1]++;
+ if (gMain.newKeys & A_BUTTON)
+ {
+ task->data[0] = 11;
+ if (task->data[12] != 0)
+ task->data[0] = 12;
+ return 1;
+ }
+ else
+ {
+ if (task->data[1] > 0x13)
+ {
+ task->data[1] = 0;
+ if (task->data[2] >= task->data[3])
+ {
+ task->data[0]++;
+ if (task->data[12] != 0)
+ task->data[0]++;
+ task->data[12]++;
+ }
+ else
+ {
+ MenuPrint(dot, task->data[2] + 4, 15);
+ task->data[2]++;
+ }
+ }
+ return 0;
+ }
+}
+
+u8 Fishing6(struct Task *task)
+{
+ sub_805A954();
+ task->data[0]++;
+ if (!GetFishingWildMonListHeader() || (Random() & 1))
+ task->data[0] = 11;
+ else
+ StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], sub_805FE08(player_get_direction_lower_nybble()));
+ return 1;
+}
+
+u8 Fishing7(struct Task *task)
+{
+ sub_805A954();
+ MenuPrint(gOtherText_OhABite, 4, 17);
+ task->data[0]++;
+ task->data[1] = 0;
+ return 0;
+}
+
+u8 Fishing8(struct Task *task)
+{
+ s16 arr[3];
+
+ memcpy(arr, gUnknown_0830FD02, sizeof(arr));
+ sub_805A954();
+ task->data[1]++;
+ if (task->data[1] >= arr[task->data[15]])
+ task->data[0] = 12;
+ else if (gMain.newKeys & A_BUTTON)
+ task->data[0]++;
+ return 0;
+}
+
+u8 Fishing9(struct Task *task)
+{
+ s16 arr[3][2];
+
+ memcpy(arr, gUnknown_0830FD08, sizeof(arr));
+ sub_805A954();
+ task->data[0]++;
+ if (task->data[12] < task->data[13])
+ {
+ task->data[0] = 3;
+ }
+ else if (task->data[12] < 2)
+ {
+ s16 randVal = Random() % 100;
+
+ if (arr[task->data[15]][task->data[12]] > randVal)
+ task->data[0] = 3;
+ }
+ return 0;
+}
+
+u8 Fishing10(struct Task *task)
+{
+ sub_805A954();
+ sub_8072044(gOtherText_PokeOnHook);
+ MenuDisplayMessageBox();
+ task->data[0]++;
+ task->data[1] = 0;
+ return 0;
+}
+
+u8 Fishing11(struct Task *task)
+{
+ if (task->data[1] == 0)
+ {
+ sub_805A954();
+ if (task->data[1] == 0)
+ {
+ if (MenuUpdateWindowText())
+ {
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ sub_805B980(playerMapObj, task->data[14]);
+ FieldObjectTurn(playerMapObj, playerMapObj->placeholder18);
+ if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_3)
+ sub_8127F28(gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1A, 0, 0);
+ gSprites[gPlayerAvatar.spriteId].pos2.x = 0;
+ gSprites[gPlayerAvatar.spriteId].pos2.y = 0;
+ MenuZeroFillScreen();
+ task->data[1]++;
+ return 0;
+ }
+ else
+ {
+ if (task->data[1] == 0)
+ return 0;
+ }
+ }
+ }
+ gPlayerAvatar.unk6 = 0;
+ ScriptContext2_Disable();
+ FishingWildEncounter(task->data[15]);
+ sub_80BE97C(1);
+ DestroyTask(FindTaskIdByFunc(Task_Fishing));
+ return 0;
+}
+
+u8 Fishing12(struct Task *task)
+{
+ sub_805A954();
+ StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], sub_805FDF8(player_get_direction_lower_nybble()));
+ sub_8072044(gOtherText_NotEvenANibble);
+ task->data[0] = 13;
+ return 1;
+}
+
+u8 Fishing13(struct Task *task)
+{
+ sub_805A954();
+ StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], sub_805FDF8(player_get_direction_lower_nybble()));
+ sub_8072044(gOtherText_ItGotAway);
+ task->data[0]++;
+ return 1;
+}
+
+u8 Fishing14(struct Task *task)
+{
+ sub_805A954();
+ MenuDisplayMessageBox();
+ task->data[0]++;
+ return 0;
+}
+
+u8 Fishing15(struct Task *task)
+{
+ sub_805A954();
+ if (gSprites[gPlayerAvatar.spriteId].animEnded)
+ {
+ struct MapObject *playerMapObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ sub_805B980(playerMapObj, task->data[14]);
+ FieldObjectTurn(playerMapObj, playerMapObj->placeholder18);
+ if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_3)
+ sub_8127F28(gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1A, 0, 0);
+ gSprites[gPlayerAvatar.spriteId].pos2.x = 0;
+ gSprites[gPlayerAvatar.spriteId].pos2.y = 0;
+ task->data[0]++;
+ }
+ return 0;
+}
+
+u8 Fishing16(struct Task *task)
+{
+ if (MenuUpdateWindowText())
+ {
+ gPlayerAvatar.unk6 = 0;
+ ScriptContext2_Disable();
+ sub_806451C();
+ MenuZeroFillScreen();
+ sub_80BE97C(0);
+ DestroyTask(FindTaskIdByFunc(Task_Fishing));
+ }
+ return 0;
+}
+
+static void sub_805A954(void)
+{
+ struct Sprite *playerSprite = &gSprites[gPlayerAvatar.spriteId];
+ u8 animCmdIndex;
+ u8 animType;
+
+ AnimateSprite(playerSprite);
+ playerSprite->pos2.x = 0;
+ playerSprite->pos2.y = 0;
+ animCmdIndex = playerSprite->animCmdIndex;
+ if (playerSprite->anims[playerSprite->animNum][animCmdIndex].type == -1)
+ {
+ animCmdIndex--;
+ }
+ else
+ {
+ playerSprite->animDelayCounter++;
+ if (playerSprite->anims[playerSprite->animNum][animCmdIndex].type == -1)
+ animCmdIndex--;
+ }
+ animType = playerSprite->anims[playerSprite->animNum][animCmdIndex].type;
+ if (animType == 1 || animType == 2 || animType == 3)
+ {
+ playerSprite->pos2.x = 8;
+ if (player_get_direction_lower_nybble() == 3)
+ playerSprite->pos2.x = -8;
+ }
+ if (animType == 5)
+ playerSprite->pos2.y = -8;
+ if (animType == 10 || animType == 11)
+ playerSprite->pos2.y = 8;
+ if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_3)
+ sub_8127F28(gMapObjects[gPlayerAvatar.mapObjectId].mapobj_unk_1A, 1, playerSprite->pos2.y);
+}
diff --git a/src/field_poison.c b/src/field_poison.c
new file mode 100644
index 000000000..a51fe5546
--- /dev/null
+++ b/src/field_poison.c
@@ -0,0 +1,144 @@
+#include "global.h"
+#include "field_message_box.h"
+#include "pokemon.h"
+#include "script.h"
+#include "string_util.h"
+#include "task.h"
+
+extern void AdjustFriendship(struct Pokemon *, u8);
+extern u8 pokemon_ailments_get_primary(u32);
+extern void DoFieldPoisonEffect(void);
+
+extern struct Pokemon gPlayerParty[6];
+extern u16 gScriptResult;
+extern u8 fieldPoisonText_PokemonFainted[];
+
+bool32 CheckMonIsValid(struct Pokemon *pkmn)
+{
+ // UB: Too few arguments for function 'GetMonData'
+ u16 species2 = GetMonData(pkmn, MON_DATA_SPECIES2);
+
+ if (species2 == 0 || species2 == 0x19C)
+ return FALSE;
+ else
+ return TRUE;
+}
+
+bool32 AllMonsFainted(void)
+{
+ struct Pokemon *pkmn = &gPlayerParty[0];
+ int i;
+
+ for (i = 0; i < 6; i++, pkmn++)
+ {
+ // UB: Too few arguments for function 'GetMonData'
+ if (CheckMonIsValid(pkmn) && GetMonData(pkmn, MON_DATA_HP) != 0)
+ return FALSE;
+ }
+ return TRUE;
+}
+
+void MonFaintFromPoisonOnField(u8 partyMember)
+{
+ struct Pokemon *pkmn = &gPlayerParty[partyMember];
+ u32 val = 0;
+
+ AdjustFriendship(pkmn, 7);
+ SetMonData(pkmn, MON_DATA_STATUS, (u8*)&val);
+ GetMonData(pkmn, MON_DATA_NICKNAME, gStringVar1);
+ StringGetEnd10(gStringVar1);
+}
+
+bool32 CheckMonFaintedFromPoison(u8 partyMember)
+{
+ struct Pokemon *pkmn = &gPlayerParty[partyMember];
+
+ // UB: Too few arguments for function 'GetMonData'
+ if (CheckMonIsValid(pkmn) && GetMonData(pkmn, MON_DATA_HP) == 0
+ && pokemon_ailments_get_primary(GetMonData(pkmn, MON_DATA_STATUS)) == 1)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+//Task data
+enum
+{
+ TD_STATE,
+ TD_PARTY_MEMBER,
+};
+
+void Task_WhiteOut(u8 taskId)
+{
+ s16 *taskData = gTasks[taskId].data;
+
+ switch (taskData[TD_STATE])
+ {
+ case 0: //Check if Pokemon have fainted due to poison
+ while (taskData[TD_PARTY_MEMBER] < 6)
+ {
+ if (CheckMonFaintedFromPoison(taskData[TD_PARTY_MEMBER]))
+ {
+ MonFaintFromPoisonOnField(taskData[TD_PARTY_MEMBER]);
+ ShowFieldMessage(fieldPoisonText_PokemonFainted);
+ taskData[TD_STATE]++;
+ return;
+ }
+ taskData[TD_PARTY_MEMBER]++;
+ }
+ taskData[TD_STATE] = 2;
+ break;
+ case 1: //Wait for message box to disappear
+ if (IsFieldMessageBoxHidden())
+ taskData[TD_STATE]--; //Check next party member
+ break;
+ case 2: //Done checking Pokemon
+ if (AllMonsFainted())
+ gScriptResult = 1;
+ else
+ gScriptResult = 0;
+ EnableBothScriptContexts();
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+void DoWhiteOut(void)
+{
+ CreateTask(Task_WhiteOut, 0x50);
+ ScriptContext1_Stop();
+}
+
+u8 overworld_poison(void)
+{
+ struct Pokemon *pkmn = &gPlayerParty[0];
+ u32 numPoisoned = 0;
+ u32 numFainting = 0;
+ int i;
+
+ for(i = 0; i < 6; i++)
+ {
+ u32 hp;
+
+ // UB: Too few arguments for function 'GetMonData'
+ if (GetMonData(pkmn, MON_DATA_SANITY_BIT2) != 0
+ && pokemon_ailments_get_primary(GetMonData(pkmn, MON_DATA_STATUS)) == 1)
+ {
+ hp = GetMonData(pkmn, MON_DATA_HP);
+ if(hp != 0)
+ hp--;
+ if(hp == 0)
+ numFainting++; //Pokemon will now faint due to poison
+ SetMonData(pkmn, MON_DATA_HP, (u8 *)&hp);
+ numPoisoned++;
+ }
+ pkmn++;
+ }
+ if(numFainting != 0 || numPoisoned != 0)
+ DoFieldPoisonEffect();
+ if(numFainting != 0)
+ return 2;
+ if(numPoisoned != 0)
+ return 1;
+ return 0;
+}
diff --git a/src/flag.c b/src/flag.c
index a4798fb49..e7347ad0d 100644
--- a/src/flag.c
+++ b/src/flag.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "flag.h"
extern u8 gUnknown_0202E8E2[];
diff --git a/src/heal_location.c b/src/heal_location.c
new file mode 100644
index 000000000..da2e466a9
--- /dev/null
+++ b/src/heal_location.c
@@ -0,0 +1,45 @@
+#include "global.h"
+
+#define NUM_HEAL_LOCATIONS 22
+
+struct HealLocation
+{
+ s8 group;
+ s8 map;
+ u16 x;
+ u16 y;
+};
+
+extern const struct HealLocation gHealLocations[];
+
+u32 GetHealLocationIndexByMap(u16 mapGroup, u16 mapNum)
+{
+ u32 i;
+
+ for (i = 0; i < NUM_HEAL_LOCATIONS; i++)
+ {
+ if(gHealLocations[i].group == mapGroup && gHealLocations[i].map == mapNum)
+ return i + 1;
+ }
+ return 0;
+}
+
+const struct HealLocation *GetHealLocationByMap(u16 mapGroup, u16 mapNum)
+{
+ u32 index = GetHealLocationIndexByMap(mapGroup, mapNum);
+
+ if (index == 0)
+ return NULL;
+ else
+ return &gHealLocations[index - 1];
+}
+
+const struct HealLocation *GetHealLocation(u32 index)
+{
+ if (index == 0)
+ return NULL;
+ else if (index > NUM_HEAL_LOCATIONS)
+ return NULL;
+ else
+ return &gHealLocations[index - 1];
+}
diff --git a/src/intro.c b/src/intro.c
index 0a91a4f93..e103109f9 100644
--- a/src/intro.c
+++ b/src/intro.c
@@ -141,7 +141,7 @@ void c2_copyright_1(void)
}
}
-void sub_813BA88(void)
+void CB2_InitCopyrightScreen(void)
{
SetUpCopyrightScreen();
}
diff --git a/src/item.c b/src/item.c
new file mode 100644
index 000000000..8bc0cf0f0
--- /dev/null
+++ b/src/item.c
@@ -0,0 +1,530 @@
+#include "global.h"
+#include "berry.h"
+#include "string_util.h"
+
+extern struct Berry *GetBerryInfo(u8 berry);
+
+extern u8 gOtherText_Berry2[];
+extern u8 gUnknown_02038560;
+
+typedef void (*ItemUseFunc)(u8);
+
+struct Item
+{
+ u8 name[14];
+ u16 itemId;
+ u16 price;
+ u8 holdEffect;
+ u8 holdEffectParam;
+ u8 *description;
+ u8 importance;
+ u8 unk19;
+ u8 pocket;
+ u8 type;
+ ItemUseFunc fieldUseFunc;
+ u8 battleUsage;
+ ItemUseFunc battleUseFunc;
+ u8 secondaryId;
+};
+
+extern struct Item gItems[];
+
+struct BagPocket
+{
+ struct ItemSlot *itemSlots;
+ u8 capacity;
+};
+
+extern struct BagPocket gBagPockets[5];
+
+enum
+{
+ ITEMS_POCKET,
+ BALLS_POCKET,
+ TMHM_POCKET,
+ BERRIES_POCKET,
+ KEYITEMS_POCKET
+};
+
+struct Item *ItemId_GetItem(u16);
+u8 ItemId_GetPocket(u16);
+static void CompactPCItems(void);
+
+void CopyItemName(u16 itemId, u8 *string)
+{
+ if (itemId == 0xAF)
+ {
+ StringCopy(string, GetBerryInfo(0x2B)->name);
+ StringAppend(string, gOtherText_Berry2);
+ }
+ else
+ StringCopy(string, ItemId_GetItem(itemId)->name);
+}
+
+//Unreferenced
+static s8 CountUsedBagPocketSlots(u8 pocket)
+{
+ u8 i;
+
+ for (i = 0; i < gBagPockets[pocket].capacity; i++)
+ {
+ if (gBagPockets[pocket].itemSlots[i].itemId == 0)
+ return i;
+ }
+ return -1;
+}
+
+bool8 IsBagPocketNonEmpty(u8 pocket)
+{
+ u8 i;
+
+ for (i = 0; i < gBagPockets[pocket - 1].capacity; i++)
+ {
+ if (gBagPockets[pocket - 1].itemSlots[i].itemId != 0)
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 CheckBagHasItem(u16 itemId, u16 count)
+{
+ u8 i;
+ u8 pocket;
+
+ if (ItemId_GetPocket(itemId) == 0)
+ return FALSE;
+ pocket = ItemId_GetPocket(itemId) - 1;
+ //Check for item slots that contain the item
+ for (i = 0; i < gBagPockets[pocket].capacity; i++)
+ {
+ if (gBagPockets[pocket].itemSlots[i].itemId == itemId)
+ {
+ //Does this item slot contain enough of the item?
+ if (gBagPockets[pocket].itemSlots[i].quantity >= count)
+ return TRUE;
+ count -= gBagPockets[pocket].itemSlots[i].quantity;
+ //Does this item slot and all previous slots contain enough of the item?
+ if (count == 0)
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+bool8 CheckBagHasSpace(u16 itemId, u16 count)
+{
+ u8 i;
+ u8 pocket;
+ u16 slotCapacity;
+
+ if (ItemId_GetPocket(itemId) == 0)
+ return FALSE;
+ pocket = ItemId_GetPocket(itemId) - 1;
+ if (pocket != BERRIES_POCKET)
+ slotCapacity = 99;
+ else
+ slotCapacity = 999;
+
+ //Check space in any existing item slots that already contain this item
+ for (i = 0; i < gBagPockets[pocket].capacity; i++)
+ {
+ if (gBagPockets[pocket].itemSlots[i].itemId == itemId)
+ {
+ if (gBagPockets[pocket].itemSlots[i].quantity + count <= slotCapacity)
+ return TRUE;
+ if (pocket == TMHM_POCKET || pocket == BERRIES_POCKET)
+ return FALSE;
+ count -= slotCapacity - gBagPockets[pocket].itemSlots[i].quantity;
+ if (count == 0)
+ return TRUE;
+ }
+ }
+
+ //Check space in empty item slots
+ if (count > 0)
+ {
+ for (i = 0; i < gBagPockets[pocket].capacity; i++)
+ {
+ if (gBagPockets[pocket].itemSlots[i].itemId == 0)
+ {
+ if (count <= slotCapacity)
+ return TRUE;
+ else
+ count -= slotCapacity;
+ }
+ }
+ if (count > 0)
+ return FALSE; //No more item slots. The bag is full
+ }
+
+ return TRUE;
+}
+
+bool8 AddBagItem(u16 itemId, u16 count)
+{
+ u8 i;
+ u8 pocket;
+ u16 slotCapacity;
+ struct ItemSlot newItems[64];
+
+ if (ItemId_GetPocket(itemId) == 0)
+ return FALSE;
+ pocket = ItemId_GetPocket(itemId) - 1;
+ //Copy the bag pocket
+ memcpy(newItems, gBagPockets[pocket].itemSlots, gBagPockets[pocket].capacity * sizeof(struct ItemSlot));
+ if (pocket != BERRIES_POCKET)
+ slotCapacity = 99;
+ else
+ slotCapacity = 999;
+
+ //Use any item slots that already contain this item
+ for (i = 0; i < gBagPockets[pocket].capacity; i++)
+ {
+ if (newItems[i].itemId == itemId)
+ {
+ if (newItems[i].quantity + count <= slotCapacity)
+ {
+ newItems[i].quantity += count;
+ //Copy pocket back into the bag.
+ memcpy(gBagPockets[pocket].itemSlots, newItems, gBagPockets[pocket].capacity * sizeof(struct ItemSlot));
+ return TRUE;
+ }
+ if (pocket == TMHM_POCKET || pocket == BERRIES_POCKET)
+ return FALSE;
+ count -= slotCapacity - newItems[i].quantity;
+ newItems[i].quantity = slotCapacity;
+ if (count == 0)
+ goto copy_items;
+ }
+ }
+
+ //Put any remaining items into new item slots.
+ if (count > 0)
+ {
+ for (i = 0; i < gBagPockets[pocket].capacity; i++)
+ {
+ if (newItems[i].itemId == 0)
+ {
+ newItems[i].itemId = itemId;
+ if (count <= slotCapacity)
+ {
+ newItems[i].quantity = count;
+ goto copy_items;
+ }
+ count -= slotCapacity;
+ newItems[i].quantity = slotCapacity;
+ }
+ }
+ if (count > 0)
+ return FALSE; //No more empty item slots. The bag is full.
+ }
+
+ copy_items:
+ //Copy pocket back into the bag.
+ memcpy(gBagPockets[pocket].itemSlots, newItems, gBagPockets[pocket].capacity * sizeof(struct ItemSlot));
+ return TRUE;
+}
+
+bool8 RemoveBagItem(u16 itemId, u16 count)
+{
+ u8 i;
+ u8 pocket;
+ u16 totalQuantity = 0;
+
+ if (ItemId_GetPocket(itemId) == 0 || itemId == 0)
+ return FALSE;
+ pocket = ItemId_GetPocket(itemId) - 1;
+
+ for (i = 0; i < gBagPockets[pocket].capacity; i++)
+ {
+ if (gBagPockets[pocket].itemSlots[i].itemId == itemId)
+ totalQuantity += gBagPockets[pocket].itemSlots[i].quantity;
+ }
+ if (totalQuantity < count)
+ return FALSE; //We don't have enough of the item
+
+ if (gBagPockets[pocket].capacity > gUnknown_02038560
+ && gBagPockets[pocket].itemSlots[gUnknown_02038560].itemId == itemId)
+ {
+ if (gBagPockets[pocket].itemSlots[gUnknown_02038560].quantity >= count)
+ {
+ gBagPockets[pocket].itemSlots[gUnknown_02038560].quantity -= count;
+ count = 0;
+ }
+ else
+ {
+ count -= gBagPockets[pocket].itemSlots[gUnknown_02038560].quantity;
+ gBagPockets[pocket].itemSlots[gUnknown_02038560].quantity = 0;
+ }
+ if (gBagPockets[pocket].itemSlots[gUnknown_02038560].quantity == 0)
+ gBagPockets[pocket].itemSlots[gUnknown_02038560].itemId = 0;
+ if (count == 0)
+ return TRUE;
+ }
+
+ for (i = 0; i < gBagPockets[pocket].capacity; i++)
+ {
+ if (gBagPockets[pocket].itemSlots[i].itemId == itemId)
+ {
+ if (gBagPockets[pocket].itemSlots[i].quantity >= count)
+ {
+ gBagPockets[pocket].itemSlots[i].quantity -= count;
+ count = 0;
+ }
+ else
+ {
+ count -= gBagPockets[pocket].itemSlots[i].quantity;
+ gBagPockets[pocket].itemSlots[i].quantity = 0;
+ }
+ if (gBagPockets[pocket].itemSlots[i].quantity == 0)
+ gBagPockets[pocket].itemSlots[i].itemId = 0;
+ if (count == 0)
+ return TRUE;
+ }
+ }
+ return TRUE;
+}
+
+u8 GetPocketByItemId(u16 itemId)
+{
+ return ItemId_GetPocket(itemId);
+}
+
+void ClearItemSlots(struct ItemSlot *itemSlots, u8 b)
+{
+ u16 i;
+
+ for (i = 0; i < b; i++)
+ {
+ itemSlots[i].itemId = 0;
+ itemSlots[i].quantity = 0;
+ }
+}
+
+static s32 FindFreePCItemSlot(void)
+{
+ s8 i;
+
+ for (i = 0; i < 50; i++)
+ {
+ if (gSaveBlock1.pcItems[i].itemId == 0)
+ return i;
+ }
+ return -1;
+}
+
+u8 CountUsedPCItemSlots(void)
+{
+ u8 usedSlots = 0;
+ u8 i;
+
+ for (i = 0; i < 50; i++)
+ {
+ if (gSaveBlock1.pcItems[i].itemId != 0)
+ usedSlots++;
+ }
+ return usedSlots;
+}
+
+bool8 CheckPCHasItem(u16 itemId, u16 count)
+{
+ u8 i;
+
+ for (i = 0; i < 50; i++)
+ {
+ if (gSaveBlock1.pcItems[i].itemId == itemId && gSaveBlock1.pcItems[i].quantity >= count)
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 AddPCItem(u16 itemId, u16 count)
+{
+ u8 i;
+ s8 freeSlot;
+ struct ItemSlot newItems[50];
+
+ //Copy PC items
+ memcpy(newItems, gSaveBlock1.pcItems, sizeof(newItems));
+
+ //Use any item slots that already contain this item
+ for (i = 0; i < 50; i++)
+ {
+ if (newItems[i].itemId == itemId)
+ {
+ if (newItems[i].quantity + count <= 999)
+ {
+ newItems[i].quantity += count;
+ memcpy(gSaveBlock1.pcItems, newItems, sizeof(gSaveBlock1.pcItems));
+ return TRUE;
+ }
+ count += newItems[i].quantity - 999;
+ newItems[i].quantity = 999;
+ if (count == 0)
+ {
+ memcpy(gSaveBlock1.pcItems, newItems, sizeof(gSaveBlock1.pcItems));
+ return TRUE;
+ }
+ }
+ }
+
+ //Put any remaining items into a new item slot.
+ if (count > 0)
+ {
+ freeSlot = FindFreePCItemSlot();
+ if (freeSlot == -1)
+ return FALSE;
+ newItems[freeSlot].itemId = itemId;
+ newItems[freeSlot].quantity = count;
+ }
+
+ //Copy items back to the PC
+ memcpy(gSaveBlock1.pcItems, newItems, sizeof(gSaveBlock1.pcItems));
+ return TRUE;
+}
+
+void RemovePCItem(u8 index, u16 count)
+{
+ gSaveBlock1.pcItems[index].quantity -= count;
+ if (gSaveBlock1.pcItems[index].quantity == 0)
+ {
+ gSaveBlock1.pcItems[index].itemId = 0;
+ CompactPCItems();
+ }
+}
+
+static void CompactPCItems(void)
+{
+ u16 i;
+ u16 j;
+
+ for (i = 0; i < 49; i++)
+ {
+ for (j = i + 1; j <= 49; j++)
+ {
+ if (gSaveBlock1.pcItems[i].itemId == 0)
+ {
+ struct ItemSlot temp = gSaveBlock1.pcItems[i];
+ gSaveBlock1.pcItems[i] = gSaveBlock1.pcItems[j];
+ gSaveBlock1.pcItems[j] = temp;
+ }
+ }
+ }
+}
+
+void SwapRegisteredBike(void)
+{
+ switch(gSaveBlock1.registeredItem)
+ {
+ case 0x103:
+ gSaveBlock1.registeredItem = 0x110;
+ break;
+ case 0x110:
+ gSaveBlock1.registeredItem = 0x103;
+ break;
+ }
+}
+
+static u16 SanitizeItemId(u16 itemId)
+{
+ if (itemId > 0x15C)
+ return 0;
+ else
+ return itemId;
+}
+
+struct Item *ItemId_GetItem(u16 itemId)
+{
+ return &gItems[SanitizeItemId(itemId)];
+}
+
+u16 ItemId_GetId(u16 itemId)
+{
+ return gItems[SanitizeItemId(itemId)].itemId;
+}
+
+u16 ItemId_GetPrice(u16 itemId)
+{
+ return gItems[SanitizeItemId(itemId)].price;
+}
+
+u8 ItemId_GetHoldEffect(u16 itemId)
+{
+ return gItems[SanitizeItemId(itemId)].holdEffect;
+}
+
+u8 ItemId_GetHoldEffectParam(u16 itemId)
+{
+ return gItems[SanitizeItemId(itemId)].holdEffectParam;
+}
+
+u8 *ItemId_GetDescription(u16 itemId)
+{
+ return gItems[SanitizeItemId(itemId)].description;
+}
+
+bool8 ItemId_CopyDescription(u8 *a, u32 itemId, u32 c)
+{
+ u32 r5 = c + 1;
+ u8 *description = gItems[SanitizeItemId(itemId)].description;
+ u8 *str = a;
+
+ for (;;)
+ {
+ if (*description == 0xFF || *description == 0xFE)
+ {
+ r5--;
+ if (r5 == 0)
+ {
+ *str = 0xFF;
+ return TRUE;
+ }
+ if (*description == 0xFF)
+ return FALSE;
+ str = a;
+ description++;
+ }
+ else
+ *(str++) = *(description++);
+ }
+}
+
+u8 ItemId_GetImportance(u16 itemId)
+{
+ return gItems[SanitizeItemId(itemId)].importance;
+}
+
+u8 ItemId_GetUnknownValue(u16 itemId)
+{
+ return gItems[SanitizeItemId(itemId)].unk19;
+}
+
+u8 ItemId_GetPocket(u16 itemId)
+{
+ return gItems[SanitizeItemId(itemId)].pocket;
+}
+
+u8 ItemId_GetType(u16 itemId)
+{
+ return gItems[SanitizeItemId(itemId)].type;
+}
+
+ItemUseFunc ItemId_GetFieldFunc(u16 itemId)
+{
+ return gItems[SanitizeItemId(itemId)].fieldUseFunc;
+}
+
+u8 ItemId_GetBattleUsage(u16 itemId)
+{
+ return gItems[SanitizeItemId(itemId)].battleUsage;
+}
+
+ItemUseFunc ItemId_GetBattleFunc(u16 itemId)
+{
+ return gItems[SanitizeItemId(itemId)].battleUseFunc;
+}
+
+u8 ItemId_GetSecondaryId(u16 itemId)
+{
+ return gItems[SanitizeItemId(itemId)].secondaryId;
+}
diff --git a/src/landmark.c b/src/landmark.c
new file mode 100644
index 000000000..aa4d8c6fa
--- /dev/null
+++ b/src/landmark.c
@@ -0,0 +1,72 @@
+#include "global.h"
+#include "flag.h"
+
+#define MAPSEC_NONE 0x58
+
+struct Landmark
+{
+ u8 *name;
+ u16 flag;
+};
+
+struct LandmarkList
+{
+ u8 mapSection;
+ u8 id;
+ const struct Landmark **landmarks;
+};
+
+extern const struct LandmarkList gLandmarkLists[];
+
+static const struct Landmark **GetLandmarks(u8 mapSection, u8 id);
+
+u8 *GetLandmarkName(u8 mapSection, u8 id, u8 count)
+{
+ const struct Landmark **landmarks = GetLandmarks(mapSection, id);
+
+ if (!landmarks)
+ return NULL;
+
+ while (1)
+ {
+ const struct Landmark *landmark = *landmarks;
+
+ if (landmark->flag == 0xFFFF || FlagGet(landmark->flag) == TRUE)
+ {
+ if (count == 0)
+ break;
+ else
+ count--;
+ }
+
+ landmarks++;
+ if (!*landmarks)
+ return NULL;
+ }
+
+ return (*landmarks)->name;
+}
+
+static const struct Landmark **GetLandmarks(u8 mapSection, u8 id)
+{
+ u16 i = 0;
+
+ for (; gLandmarkLists[i].mapSection != MAPSEC_NONE; i++)
+ {
+ if (gLandmarkLists[i].mapSection > mapSection)
+ return NULL;
+ if (gLandmarkLists[i].mapSection == mapSection)
+ break;
+ }
+
+ if (gLandmarkLists[i].mapSection == MAPSEC_NONE)
+ return NULL;
+
+ for (; gLandmarkLists[i].mapSection == mapSection; i++)
+ {
+ if (gLandmarkLists[i].id == id)
+ return gLandmarkLists[i].landmarks;
+ }
+
+ return NULL;
+}
diff --git a/src/libc.c b/src/libc.c
index e408ba51e..370981878 100644
--- a/src/libc.c
+++ b/src/libc.c
@@ -11,133 +11,133 @@
void *memcpy(void *dst0, const void *src0, size_t len0)
{
- char *dst = dst0;
- const char *src = src0;
- long *aligned_dst;
- const long *aligned_src;
- unsigned int len = len0;
-
- // If the size is small, or either src or dst is unaligned,
- // then go to the byte copy loop. This should be rare.
- if(len >= 16 && !(UNALIGNED(src) | UNALIGNED(dst)))
- {
- aligned_dst = (long *)dst;
- aligned_src = (long *)src;
-
- // Copy 4X long words at a time if possible.
- while(len >= 16)
- {
- *aligned_dst++ = *aligned_src++;
- *aligned_dst++ = *aligned_src++;
- *aligned_dst++ = *aligned_src++;
- *aligned_dst++ = *aligned_src++;
- len -= 16;
- }
-
- // Copy one long word at a time if possible
- while(len >= 4)
- {
- *aligned_dst++ = *aligned_src++;
- len -= 4;
- }
-
- dst = (char *)aligned_dst;
- src = (char *)aligned_src;
- }
-
- // Pick up any remaining bytes with a byte copier.
- while(len--)
- *dst++ = *src++;
-
- return dst0;
+ char *dst = dst0;
+ const char *src = src0;
+ long *aligned_dst;
+ const long *aligned_src;
+ unsigned int len = len0;
+
+ // If the size is small, or either src or dst is unaligned,
+ // then go to the byte copy loop. This should be rare.
+ if(len >= 16 && !(UNALIGNED(src) | UNALIGNED(dst)))
+ {
+ aligned_dst = (long *)dst;
+ aligned_src = (long *)src;
+
+ // Copy 4X long words at a time if possible.
+ while(len >= 16)
+ {
+ *aligned_dst++ = *aligned_src++;
+ *aligned_dst++ = *aligned_src++;
+ *aligned_dst++ = *aligned_src++;
+ *aligned_dst++ = *aligned_src++;
+ len -= 16;
+ }
+
+ // Copy one long word at a time if possible
+ while(len >= 4)
+ {
+ *aligned_dst++ = *aligned_src++;
+ len -= 4;
+ }
+
+ dst = (char *)aligned_dst;
+ src = (char *)aligned_src;
+ }
+
+ // Pick up any remaining bytes with a byte copier.
+ while(len--)
+ *dst++ = *src++;
+
+ return dst0;
}
void *memset(void *m, int c, size_t n)
{
- char *s = (char *)m;
- int count, i;
- unsigned long buffer;
- unsigned long *aligned_addr;
- unsigned char *unaligned_addr;
-
- // If the size is small or m is unaligned,
- // then go to the byte copy loop. This should be rare.
- if(n >= LBLOCKSIZE && !UNALIGNED(m))
- {
- // We know that n is large and m is word-aligned.
- aligned_addr = (unsigned long *)m;
-
- // Store C into each char sized location in buffer so that
- // we can set large blocks quickly.
- c &= 0xFF;
- if(LBLOCKSIZE == 4)
- {
- buffer = (c << 8) | c;
- buffer |= (buffer << 16);
- }
- else
- {
- buffer = 0;
- for(i = 0; i < LBLOCKSIZE; i++)
- buffer = (buffer << 8) | c;
- }
-
- while(n >= LBLOCKSIZE * 4)
- {
- *aligned_addr++ = buffer;
- *aligned_addr++ = buffer;
- *aligned_addr++ = buffer;
- *aligned_addr++ = buffer;
- n -= LBLOCKSIZE * 4;
- }
- while(n >= LBLOCKSIZE)
- {
- *aligned_addr++ = buffer;
- n -= LBLOCKSIZE;
- }
-
- s = (char *)aligned_addr;
- }
-
- // Pick up the remainder with a bytewise loop.
- while(n--)
- *s++ = (char)c;
-
- return m;
+ char *s = (char *)m;
+ int count, i;
+ unsigned long buffer;
+ unsigned long *aligned_addr;
+ unsigned char *unaligned_addr;
+
+ // If the size is small or m is unaligned,
+ // then go to the byte copy loop. This should be rare.
+ if(n >= LBLOCKSIZE && !UNALIGNED(m))
+ {
+ // We know that n is large and m is word-aligned.
+ aligned_addr = (unsigned long *)m;
+
+ // Store C into each char sized location in buffer so that
+ // we can set large blocks quickly.
+ c &= 0xFF;
+ if(LBLOCKSIZE == 4)
+ {
+ buffer = (c << 8) | c;
+ buffer |= (buffer << 16);
+ }
+ else
+ {
+ buffer = 0;
+ for(i = 0; i < LBLOCKSIZE; i++)
+ buffer = (buffer << 8) | c;
+ }
+
+ while(n >= LBLOCKSIZE * 4)
+ {
+ *aligned_addr++ = buffer;
+ *aligned_addr++ = buffer;
+ *aligned_addr++ = buffer;
+ *aligned_addr++ = buffer;
+ n -= LBLOCKSIZE * 4;
+ }
+ while(n >= LBLOCKSIZE)
+ {
+ *aligned_addr++ = buffer;
+ n -= LBLOCKSIZE;
+ }
+
+ s = (char *)aligned_addr;
+ }
+
+ // Pick up the remainder with a bytewise loop.
+ while(n--)
+ *s++ = (char)c;
+
+ return m;
}
int strcmp(const char *s1, const char *s2)
{
- unsigned long *a1;
- unsigned long *a2;
-
- // If s1 or s2 are unaligned, then skip this and compare bytes.
- if(!(UNALIGNED(s1) | UNALIGNED(s2)))
- {
- // Compare them a word at a time.
- a1 = (unsigned long *)s1;
- a2 = (unsigned long *)s2;
- while(*a1 == *a2)
- {
- // If *a1 == *a2, and we find a null in *a1,
- // then the strings must be equal, so return zero.
- if(CONTAINSNULL(*a1))
- return 0;
-
- a1++;
- a2++;
- }
-
- s1 = (char *)a1;
- s2 = (char *)a2;
- }
-
- // Check the remaining few bytes.
- while(*s1 != '\0' && *s1 == *s2)
- {
- s1++;
- s2++;
- }
-
- return (*(unsigned char *) s1) - (*(unsigned char *) s2);
+ unsigned long *a1;
+ unsigned long *a2;
+
+ // If s1 or s2 are unaligned, then skip this and compare bytes.
+ if(!(UNALIGNED(s1) | UNALIGNED(s2)))
+ {
+ // Compare them a word at a time.
+ a1 = (unsigned long *)s1;
+ a2 = (unsigned long *)s2;
+ while(*a1 == *a2)
+ {
+ // If *a1 == *a2, and we find a null in *a1,
+ // then the strings must be equal, so return zero.
+ if(CONTAINSNULL(*a1))
+ return 0;
+
+ a1++;
+ a2++;
+ }
+
+ s1 = (char *)a1;
+ s2 = (char *)a2;
+ }
+
+ // Check the remaining few bytes.
+ while(*s1 != '\0' && *s1 == *s2)
+ {
+ s1++;
+ s2++;
+ }
+
+ return (*(unsigned char *) s1) - (*(unsigned char *) s2);
}
diff --git a/src/link.c b/src/link.c
index 3f4ffe97d..47820185c 100644
--- a/src/link.c
+++ b/src/link.c
@@ -34,7 +34,7 @@ extern void sub_80516C4(u8, u16);
extern u8 unk_2000000[];
extern u8 unk_2004000[];
extern u16 gUnknown_020239F8;
-extern u16 word_203855E;
+extern u16 gScriptItemId;
extern u16 word_3004858;
@@ -370,7 +370,7 @@ static void TestBlockTransfer(u32 a1, u32 a2, u32 a3)
}
}
- val = GetBlockRecievedStatus();
+ val = GetBlockReceivedStatus();
if (val == 0xF)
{
@@ -619,7 +619,7 @@ static void BuildSendCmd(u16 code)
break;
case 0xAAAB:
gSendCmd[0] = 0xAAAB;
- gSendCmd[1] = word_203855E;
+ gSendCmd[1] = gScriptItemId;
break;
case 0xCCCC:
gSendCmd[0] = 0xCCCC;
@@ -889,7 +889,7 @@ bool8 sub_8007ECC(void)
return retVal;
}
-u8 GetBlockRecievedStatus(void)
+u8 GetBlockReceivedStatus(void)
{
return (gBlockReceived[3] << 3)
| (gBlockReceived[2] << 2)
@@ -975,7 +975,7 @@ void Task_PrintTestData(u8 taskId)
PrintHex(GetMultiplayerId(), 15, 12, 2);
PrintHex(gLastSendQueueCount, 25, 1, 2);
PrintHex(gLastRecvQueueCount, 25, 2, 2);
- PrintHex(GetBlockRecievedStatus(), 15, 5, 2);
+ PrintHex(GetBlockReceivedStatus(), 15, 5, 2);
PrintHex(gLinkDebugValue1, 2, 12, 8);
PrintHex(gLinkDebugValue2, 2, 13, 8);
PrintHex(GetSioMultiSI(), 25, 5, 1);
diff --git a/src/lottery_corner.c b/src/lottery_corner.c
index 4085bcff7..c807237af 100644
--- a/src/lottery_corner.c
+++ b/src/lottery_corner.c
@@ -2,17 +2,15 @@
#include "pokemon.h"
#include "rng.h"
#include "string_util.h"
-
-extern bool8 VarSet(u16 id, u16 value);
-extern u16 VarGet(u16 id);
+#include "var.h"
extern u16 gScriptResult;
-extern u16 gUnknown_0202E8CC;
+extern u16 gSpecialVar_0x8004;
extern struct Pokemon gPlayerParty[6];
extern struct PokemonStorage gPokemonStorage;
-extern u16 gUnknown_0202E8CE;
+extern u16 gSpecialVar_0x8005;
extern u16 gUnknown_0840CB04[];
-extern u16 gUnknown_0202E8D0;
+extern u16 gSpecialVar_0x8006;
static EWRAM_DATA u16 sWinNumberDigit = 0;
static EWRAM_DATA u16 sOtIdDigit = 0;
@@ -53,7 +51,7 @@ void PickLotteryCornerTicket(void)
u32 box;
u32 slot;
- gUnknown_0202E8CC = 0;
+ gSpecialVar_0x8004 = 0;
slot = 0;
box = 0;
for(i = 0; i < 6; i++)
@@ -68,9 +66,9 @@ void PickLotteryCornerTicket(void)
u32 otId = GetMonData(pkmn, MON_DATA_OT_ID);
u8 a = GetMatchingDigits(gScriptResult, otId);
- if(a > gUnknown_0202E8CC && a > 1)
+ if(a > gSpecialVar_0x8004 && a > 1)
{
- gUnknown_0202E8CC = a - 1;
+ gSpecialVar_0x8004 = a - 1;
box = 14;
slot = i;
}
@@ -93,9 +91,9 @@ void PickLotteryCornerTicket(void)
u32 otId = GetBoxMonData(pkmn, MON_DATA_OT_ID);
u8 a = GetMatchingDigits(gScriptResult, otId);
- if(a > gUnknown_0202E8CC && a > 1)
+ if(a > gSpecialVar_0x8004 && a > 1)
{
- gUnknown_0202E8CC = a - 1;
+ gSpecialVar_0x8004 = a - 1;
box = i;
slot = j;
}
@@ -103,18 +101,18 @@ void PickLotteryCornerTicket(void)
}
}
- if(gUnknown_0202E8CC != 0)
+ if(gSpecialVar_0x8004 != 0)
{
- gUnknown_0202E8CE = gUnknown_0840CB04[gUnknown_0202E8CC - 1];
+ gSpecialVar_0x8005 = gUnknown_0840CB04[gSpecialVar_0x8004 - 1];
if(box == 14)
{
- gUnknown_0202E8D0 = 0;
+ gSpecialVar_0x8006 = 0;
GetMonData(&gPlayerParty[slot], MON_DATA_NICKNAME, gStringVar1);
}
else
{
- gUnknown_0202E8D0 = 1;
+ gSpecialVar_0x8006 = 1;
GetBoxMonData(&gPokemonStorage.boxes[box][slot], MON_DATA_NICKNAME, gStringVar1);
}
StringGetEnd10(gStringVar1);
diff --git a/src/m4a_2.c b/src/m4a_2.c
index b046b3172..2d3c65848 100644
--- a/src/m4a_2.c
+++ b/src/m4a_2.c
@@ -11,6 +11,11 @@ void *gMPlayJumpTable[36];
struct CgbChannel gCgbChans[4];
struct MusicPlayerTrack gPokemonCryTracks[MAX_POKEMON_CRIES * 2];
struct PokemonCrySong gPokemonCrySong;
+struct MusicPlayerInfo gMPlay_BGM;
+struct MusicPlayerInfo gMPlay_SE1;
+struct MusicPlayerInfo gMPlay_SE2;
+struct MusicPlayerInfo gMPlay_SE3;
+u8 gMPlayMemAccArea[0x10];
u32 MidiKeyToFreq(struct WaveData *wav, u8 key, u8 fineAdjust)
{
diff --git a/src/m4a_tables.c b/src/m4a_tables.c
index c673f265c..91f00a31d 100644
--- a/src/m4a_tables.c
+++ b/src/m4a_tables.c
@@ -261,7 +261,7 @@ const struct PokemonCrySong gPokemonCrySongTemplate =
0, // block count
255, // priority
0, // reverb
- (struct ToneData *)&voicegroup_842FC88,
+ (struct ToneData *)&voicegroup_pokemon_cry,
NULL,
NULL,
0,
diff --git a/src/main_menu.c b/src/main_menu.c
index 9a5326ea1..966f93f0d 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -26,7 +26,6 @@ extern u16 GetPokedexSeenCount(void);
extern u8 GetBadgeCount(void);
extern void DoNamingScreen(u8 r0, struct SaveBlock2 *r1, u16 r2, u16 r3, u8 s0, MainCallback s4);
extern void CB2_NewGame(void);
-extern void LZ77UnCompVram(const void *src, void *dest);
extern void DecompressPicFromTable_2(const struct SpriteSheet *, u8, u8, void *, void *, u32);
extern void LoadCompressedObjectPalette(const struct SpritePalette *);
extern u8 CreateBirchSprite(u8, u8, u8);
diff --git a/src/map_obj_lock.c b/src/map_obj_lock.c
index d4115418b..422903a97 100644
--- a/src/map_obj_lock.c
+++ b/src/map_obj_lock.c
@@ -13,7 +13,7 @@ extern void sub_80A2178(void);
extern void sub_806451C(void);
extern u8 FieldObjectFaceOppositeDirection(void *, u8);
-extern u16 gUnknown_0202E8E0;
+extern u16 gScriptFacing;
bool8 walkrun_is_standing_still(void)
{
@@ -116,7 +116,7 @@ void unref_sub_8064E5C(void)
void sub_8064EAC(void)
{
- FieldObjectFaceOppositeDirection(&gMapObjects[gSelectedMapObject], gUnknown_0202E8E0);
+ FieldObjectFaceOppositeDirection(&gMapObjects[gSelectedMapObject], gScriptFacing);
}
void sub_8064ED4(void)
diff --git a/src/menu_cursor.c b/src/menu_cursor.c
new file mode 100644
index 000000000..21e4d9d58
--- /dev/null
+++ b/src/menu_cursor.c
@@ -0,0 +1,610 @@
+#include "global.h"
+#include "sprite.h"
+#include "palette.h"
+
+extern struct SpriteSheet gUnknown_0842F140[];
+extern struct SpriteSheet gUnknown_0842F1C0[];
+extern struct SpritePalette gUnknown_0842F240;
+extern struct SpritePalette gUnknown_0842F248;
+extern struct SpriteTemplate gSpriteTemplate_842F250[];
+extern struct SpriteTemplate gSpriteTemplate_842F298[];
+
+extern struct Subsprite *gUnknown_0842F5BC[];
+
+extern struct SubspriteTable gSubspriteTables_842F5C0[];
+extern struct SubspriteTable gUnknown_0842F6C0[];
+extern struct SubspriteTable gUnknown_0842F758[];
+
+extern struct Subsprite gUnknown_0842F780;
+extern struct Subsprite gUnknown_0842F788;
+extern struct Subsprite gUnknown_0842F790;
+
+extern u16 gUnknown_0203A360[];
+
+extern struct Subsprite gMenuCursorSubsprites[];
+
+extern u8 gUnknown_0203A3D0;
+extern u8 gUnknown_0203A3D1;
+extern u8 gUnknown_0203A3D2;
+extern u8 gUnknown_0203A3D3;
+extern u8 gUnknown_0203A3D4;
+
+void sub_814A7FC(void);
+void sub_814A958(u8 a1);
+void sub_814AD44(void);
+void sub_814ADF4(u8 a1);
+
+void sub_814A590(void)
+{
+ gUnknown_0203A3D0 = 0x40;
+ gUnknown_0203A3D1 = 0x40;
+ gUnknown_0203A3D2 = 0x40;
+ gUnknown_0203A3D3 = 0;
+ gUnknown_0203A3D4 = 0;
+}
+
+u8 sub_814A5C0(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5)
+{
+ int v9;
+ struct Sprite *v10;
+
+ if (gUnknown_0203A3D0 != 0x40 || gUnknown_0203A3D1 != 0x40)
+ sub_814A7FC();
+
+ v9 = 1;
+ if (a2 == 0xFFFF)
+ {
+ gUnknown_0203A360[a3 & 0xF] = a4;
+ if (LoadSpritePalette(&gUnknown_0842F240) != 0xFF)
+ {
+ a2 = 0xFFF0;
+ v9 = 0;
+ }
+ }
+
+ LoadSpriteSheetDeferred(&gUnknown_0842F140[a3 & 0xF]);
+ gUnknown_0203A3D0 = CreateSprite(&gSpriteTemplate_842F250[v9], 0, 0xA0, a1);
+ gUnknown_0203A3D1 = CreateSprite(&gSpriteTemplate_842F250[2], 0, 0xA0, a1);
+ if (gUnknown_0203A3D0 != 0x40)
+ {
+ v10 = &gSprites[gUnknown_0203A3D0];
+ if (a2 == 0xFFFF)
+ v10->oam.paletteNum = 0;
+ else
+ v10->oam.paletteNum = IndexOfSpritePaletteTag(a2);
+ }
+ if (gUnknown_0203A3D1 != 0x40)
+ {
+ v10 = &gSprites[gUnknown_0203A3D1];
+ if (a2 == 0xFFFF)
+ v10->oam.paletteNum = 0;
+ else
+ v10->oam.paletteNum = IndexOfSpritePaletteTag(a2);
+
+ if (!(REG_DISPCNT & (DISPCNT_WIN0_ON | DISPCNT_WIN1_ON)))
+ *(u8 *)(REG_ADDR_WINOUT) |= 0x1F;
+ gUnknown_0203A3D3 = REG_DISPCNT >> 0xF;
+ gUnknown_0203A3D4 = *(u8 *)(REG_BASE + REG_OFFSET_WINOUT + 1);
+ REG_DISPCNT |= DISPCNT_OBJWIN_ON;
+ *(u8 *)(REG_ADDR_WINOUT + 1) = 0x10;
+ }
+ sub_814A958(a5);
+ return gUnknown_0203A3D0;
+}
+
+u8 sub_814A758(u8 a1, u8 a2, u8 a3, u8 a4)
+{
+ u8 result;
+ struct Sprite *spr;
+
+ result = sub_814A5C0(a1, 0, a3, 0, a4);
+ if (result != 0x40)
+ {
+ spr = &gSprites[gUnknown_0203A3D0];
+ spr->oam.paletteNum = a2;
+ }
+ return result;
+}
+
+u8 unref_sub_814A7AC(u8 a1, u16 a2, u8 a3)
+{
+ u16 i;
+ u8 val1 = 0;
+ u16 val2 = 0xF;
+
+ for (i = 0; i <= 0xFF; i++)
+ {
+ if (gPlttBufferUnfaded[i] == a2)
+ {
+ val1 = (u8)(i >> 4);
+ val2 = i & 0xF;
+ }
+ }
+
+ return sub_814A758(a1, val1, val2, a3);
+}
+
+void sub_814A7FC(void)
+{
+ if (gUnknown_0203A3D0 != 0x40)
+ {
+ LoadTilesForSpriteSheet(&gUnknown_0842F140[0]);
+ DestroySpriteAndFreeResources(&gSprites[gUnknown_0203A3D0]);
+ gUnknown_0203A3D0 = 0x40;
+ }
+
+ if (gUnknown_0203A3D1 != 0x40)
+ {
+ DestroySpriteAndFreeResources(&gSprites[gUnknown_0203A3D1]);
+ gUnknown_0203A3D1 = 0x40;
+ if (!gUnknown_0203A3D3)
+ REG_DISPCNT &= ~DISPCNT_OBJWIN_ON;
+ *(u8 *)(REG_BASE + REG_OFFSET_WINOUT + 1) = gUnknown_0203A3D4;
+ }
+
+ return;
+}
+
+void sub_814A880(u8 a1, u8 a2)
+{
+ struct Sprite *spr;
+
+ if (gUnknown_0203A3D0 != 0x40)
+ {
+ spr = &gSprites[gUnknown_0203A3D0];
+ spr->invisible = 0;
+ spr->centerToCornerVecX = 0;
+ spr->centerToCornerVecY = 0;
+ spr->pos1.x = a1;
+ spr->pos1.y = a2;
+ }
+
+ if (gUnknown_0203A3D1 != 0x40)
+ {
+ spr = &gSprites[gUnknown_0203A3D1];
+ spr->invisible = 0;
+ spr->centerToCornerVecX = 0;
+ spr->centerToCornerVecY = 0;
+ spr->pos1.x = a1;
+ spr->pos1.y = a2;
+ }
+
+ return;
+}
+
+void sub_814A904(void)
+{
+ struct Sprite *spr;
+
+ if (gUnknown_0203A3D0 != 0x40)
+ {
+ spr = &gSprites[gUnknown_0203A3D0];
+ spr->invisible = 1;
+ }
+
+ if (gUnknown_0203A3D1 != 0x40)
+ {
+ spr = &gSprites[gUnknown_0203A3D1];
+ spr->invisible = 1;
+ }
+
+ return;
+}
+
+#ifdef NONMATCHING
+// Fix pls
+void sub_814A958(u8 a1)
+{
+ struct Subsprite *cursub;
+ u8 v2; // r7@1
+ s16 v3; // r2@1
+ s32 v5; // r0@1
+ s32 v6; // r3@1
+ s32 v7; // r5@3
+ int v8; // r7@9
+ s16 negone;
+
+ cursub = &gMenuCursorSubsprites[0];
+ negone = -1;
+ cursub = (struct Subsprite){0,2};
+ cursub->x = negone;
+ cursub++;
+
+ v2 = 1;
+ v3 = 1;
+ v5 = (a1 - 1) << 0x10;
+ v6 = v5 >> 0x10;
+ if ((v5 >> 0x10) > 7)
+ {
+ do
+ {
+ if (v6 > 0x1F)
+ {
+ *cursub = gUnknown_0842F780;
+ cursub->x = v3;
+ v3 = ((v3 << 16) + 0x200000) >> 16;
+ v7 = a1 << 16;
+ }
+ else
+ {
+ v7 = a1 << 16;
+ if (a1 <= 0x27 || v6 <= 0x8)
+ {
+ *cursub = gUnknown_0842F788;
+ cursub->x = v3;
+ v3 = ((v3 << 16) + 0x80000) >> 16;
+ }
+ else
+ {
+ *cursub = gUnknown_0842F780;
+ cursub->x = v3 - 0x20 + (v6 & 0xFFF8);
+ v3 = (v3 + (v6 & 0x18)) & negone;
+ }
+ }
+
+ cursub++;
+ v2 = v2 + 1;
+ v6 = ((v7 >> 16) - v3) & 0xFFFF;
+ }
+ while (v7 - v3 > 7);
+ }
+ *cursub = gUnknown_0842F790;
+ cursub->x = v6 + v3 - 7;
+ v8 = v2 + 1;
+ if (gUnknown_0203A3D0 != 0x40)
+ SetSubspriteTables(&gSprites[gUnknown_0203A3D0], &gSubspriteTables_842F5C0[v8]);
+ if (gUnknown_0203A3D1 != 0x40)
+ SetSubspriteTables(&gSprites[gUnknown_0203A3D1], &gSubspriteTables_842F5C0[v8]);
+ return;
+}
+#else
+__attribute__((naked))
+void sub_814A958(u8 a1)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x4\n\
+ lsls r0, 24\n\
+ ldr r4, _0814A9C4\n\
+ ldr r2, _0814A9C8\n\
+ lsrs r0, 24\n\
+ str r0, [sp]\n\
+ movs r0, 0\n\
+ movs r1, 0\n\
+ movs r1, 0x2\n\
+ str r0, [r4]\n\
+ str r1, [r4, 0x4]\n\
+ strh r2, [r4]\n\
+ adds r4, 0x8\n\
+ movs r7, 0x1\n\
+ movs r2, 0x1\n\
+ ldr r1, [sp]\n\
+ subs r0, r1, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r3, r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x7\n\
+ ble _0814AA3A\n\
+ ldr r0, _0814A9CC\n\
+ mov r12, r0\n\
+ mov r8, r1\n\
+ movs r1, 0x8\n\
+ negs r1, r1\n\
+ mov r10, r1\n\
+ ldr r5, _0814A9D0\n\
+ mov r9, r5\n\
+_0814A99E:\n\
+ lsls r0, r3, 16\n\
+ asrs r3, r0, 16\n\
+ cmp r3, 0x1F\n\
+ ble _0814A9D4\n\
+ mov r6, r12\n\
+ ldr r0, [r6]\n\
+ ldr r1, [r6, 0x4]\n\
+ str r0, [r4]\n\
+ str r1, [r4, 0x4]\n\
+ strh r2, [r4]\n\
+ lsls r0, r2, 16\n\
+ movs r1, 0x80\n\
+ lsls r1, 14\n\
+ adds r0, r1\n\
+ lsrs r2, r0, 16\n\
+ ldr r3, [sp]\n\
+ lsls r5, r3, 16\n\
+ b _0814AA20\n\
+ .align 2, 0\n\
+_0814A9C4: .4byte gMenuCursorSubsprites\n\
+_0814A9C8: .4byte 0x0000ffff\n\
+_0814A9CC: .4byte gUnknown_0842F780\n\
+_0814A9D0: .4byte gUnknown_0842F788\n\
+_0814A9D4:\n\
+ ldr r6, [sp]\n\
+ lsls r5, r6, 16\n\
+ mov r0, r8\n\
+ cmp r0, 0x27\n\
+ ble _0814AA0A\n\
+ cmp r3, 0x8\n\
+ ble _0814AA0A\n\
+ mov r6, r12\n\
+ ldr r0, [r6]\n\
+ ldr r1, [r6, 0x4]\n\
+ str r0, [r4]\n\
+ str r1, [r4, 0x4]\n\
+ lsls r1, r2, 16\n\
+ asrs r1, 16\n\
+ adds r2, r1, 0\n\
+ subs r2, 0x20\n\
+ adds r0, r3, 0\n\
+ mov r6, r10\n\
+ ands r0, r6\n\
+ adds r2, r0\n\
+ strh r2, [r4]\n\
+ movs r0, 0x18\n\
+ ands r0, r3\n\
+ adds r1, r0\n\
+ lsls r1, 16\n\
+ lsrs r2, r1, 16\n\
+ b _0814AA20\n\
+_0814AA0A:\n\
+ mov r3, r9\n\
+ ldr r0, [r3]\n\
+ ldr r1, [r3, 0x4]\n\
+ str r0, [r4]\n\
+ str r1, [r4, 0x4]\n\
+ strh r2, [r4]\n\
+ lsls r0, r2, 16\n\
+ movs r6, 0x80\n\
+ lsls r6, 12\n\
+ adds r0, r6\n\
+ lsrs r2, r0, 16\n\
+_0814AA20:\n\
+ adds r4, 0x8\n\
+ adds r0, r7, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r7, r0, 24\n\
+ asrs r1, r5, 16\n\
+ lsls r0, r2, 16\n\
+ asrs r0, 16\n\
+ subs r1, r0\n\
+ lsls r1, 16\n\
+ lsrs r3, r1, 16\n\
+ asrs r1, 16\n\
+ cmp r1, 0x7\n\
+ bgt _0814A99E\n\
+_0814AA3A:\n\
+ ldr r5, _0814AAA8\n\
+ ldr r0, [r5]\n\
+ ldr r1, [r5, 0x4]\n\
+ str r0, [r4]\n\
+ str r1, [r4, 0x4]\n\
+ lsls r1, r2, 16\n\
+ asrs r1, 16\n\
+ subs r1, 0x7\n\
+ lsls r0, r3, 16\n\
+ asrs r0, 16\n\
+ adds r0, r1\n\
+ strh r0, [r4]\n\
+ adds r0, r7, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r7, r0, 24\n\
+ ldr r6, _0814AAAC\n\
+ ldrb r0, [r6]\n\
+ cmp r0, 0x40\n\
+ beq _0814AA78\n\
+ adds r1, r0, 0\n\
+ lsls r0, r1, 4\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ ldr r1, _0814AAB0\n\
+ adds r2, r0, r1\n\
+ lsls r1, r7, 3\n\
+ ldr r0, _0814AAB4\n\
+ adds r1, r0\n\
+ adds r0, r2, 0\n\
+ bl SetSubspriteTables\n\
+_0814AA78:\n\
+ ldr r1, _0814AAB8\n\
+ ldrb r0, [r1]\n\
+ cmp r0, 0x40\n\
+ beq _0814AA98\n\
+ adds r1, r0, 0\n\
+ lsls r0, r1, 4\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ ldr r1, _0814AAB0\n\
+ adds r2, r0, r1\n\
+ lsls r1, r7, 3\n\
+ ldr r0, _0814AAB4\n\
+ adds r1, r0\n\
+ adds r0, r2, 0\n\
+ bl SetSubspriteTables\n\
+_0814AA98:\n\
+ add sp, 0x4\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_0814AAA8: .4byte gUnknown_0842F790\n\
+_0814AAAC: .4byte gUnknown_0203A3D0\n\
+_0814AAB0: .4byte gSprites\n\
+_0814AAB4: .4byte gSubspriteTables_842F5C0\n\
+_0814AAB8: .4byte gUnknown_0203A3D1\n\
+ .syntax divided\n");
+}
+#endif
+
+void sub_814AABC(void (*callback)(struct Sprite *))
+{
+ struct Sprite *spr;
+
+ if (gUnknown_0203A3D0 != 0x40)
+ {
+ spr = &gSprites[gUnknown_0203A3D0];
+ spr->callback = callback;
+ }
+
+ if (gUnknown_0203A3D1 != 0x40)
+ {
+ spr = &gSprites[gUnknown_0203A3D1];
+ spr->callback = callback;
+ }
+
+ return;
+}
+
+void sub_814AAF8(u16 a1)
+{
+ struct Sprite *spr;
+ u8 v2;
+ u8 v3;
+ u16 v4;
+
+ if (gUnknown_0203A3D0 != 0x40)
+ {
+ spr = &gSprites[gUnknown_0203A3D0];
+ if (spr->template->paletteTag == 0xFFFF)
+ {
+ for (v2 = 0, v3 = 0xF, v4 = 0; v4 <= 0xFF; v4++)
+ {
+ if (gPlttBufferUnfaded[v4] == a1)
+ {
+ v2 = v4 >> 4;
+ v3 = v4 & 0xF;
+ }
+ }
+ spr->oam.paletteNum = v2;
+ RequestSpriteSheetCopy(&gUnknown_0842F140[v3 & 0xF]);
+ }
+ }
+ return;
+}
+
+void sub_814AB84(void)
+{
+ struct Sprite *spr;
+
+ if (gUnknown_0203A3D1 != 0x40)
+ {
+ spr = &gSprites[gUnknown_0203A3D1];
+ FreeSpriteOamMatrix(spr);
+ DestroySprite(spr);
+ gUnknown_0203A3D1 = 0x40;
+
+ if (!gUnknown_0203A3D3)
+ REG_DISPCNT &= ~DISPCNT_OBJWIN_ON;
+ *(u8 *)(REG_ADDR_WINOUT + 1) = gUnknown_0203A3D4;
+ }
+ return;
+}
+
+void unref_sub_814ABE4(int a1)
+{
+ struct Sprite *spr;
+
+ CpuSet(gUnknown_0842F5BC[a1], &gMenuCursorSubsprites, 0x28);
+
+ if (gUnknown_0203A3D0 != 0x40)
+ {
+ spr = &gSprites[gUnknown_0203A3D0];
+ SetSubspriteTables(spr, &gUnknown_0842F758[a1]);
+ }
+ if (gUnknown_0203A3D1 != 0x40)
+ {
+ spr = &gSprites[gUnknown_0203A3D1];
+ SetSubspriteTables(spr, &gUnknown_0842F758[a1]);
+ }
+ return;
+}
+
+u8 CreateBlendedOutlineCursor(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5)
+{
+ int v8;
+ struct Sprite *spr;
+ u8 var1 = gUnknown_0203A3D2;
+
+ if (var1 != 0x40)
+ sub_814AD44();
+
+ v8 = 1;
+
+ if (a2 == 0xFFFF)
+ {
+ gUnknown_0203A360[a3 & 0xF] = a4;
+ if (LoadSpritePalette(&gUnknown_0842F248) != 0xFF )
+ {
+ a2 = 0xFFF1;
+ v8 = 0;
+ }
+ }
+
+ LoadSpriteSheetDeferred(&gUnknown_0842F1C0[a3 & 0xF]);
+ gUnknown_0203A3D2 = CreateSprite(&gSpriteTemplate_842F298[v8], 0, 0xA0, a1);
+
+ if (gUnknown_0203A3D2 != 0x40)
+ {
+ spr = &gSprites[gUnknown_0203A3D2];
+
+ if (a2 == 0xFFFF)
+ spr->oam.paletteNum = 0;
+ else
+ spr->oam.paletteNum = IndexOfSpritePaletteTag(a2);
+ }
+ sub_814ADF4(a5);
+
+ return gUnknown_0203A3D2;
+}
+
+void sub_814AD44(void)
+{
+ if (gUnknown_0203A3D2 != 0x40)
+ {
+ LoadTilesForSpriteSheet(&gUnknown_0842F1C0[0]);
+ DestroySpriteAndFreeResources(&gSprites[gUnknown_0203A3D2]);
+ gUnknown_0203A3D2 = 0x40;
+ }
+ return;
+}
+
+void sub_814AD7C(u8 a1, u8 a2)
+{
+ struct Sprite *spr;
+ if (gUnknown_0203A3D2 != 0x40)
+ {
+ spr = &gSprites[gUnknown_0203A3D2];
+ spr->invisible = 0;
+ spr->centerToCornerVecX = 0;
+ spr->centerToCornerVecY = 0;
+ spr->pos1.x = a1;
+ spr->pos1.y = a2;
+ }
+ return;
+}
+
+void sub_814ADC8()
+{
+ struct Sprite *spr;
+ if (gUnknown_0203A3D2 != 0x40)
+ {
+ spr = &gSprites[gUnknown_0203A3D2];
+ spr->invisible = 1;
+ }
+ return;
+}
+
+void sub_814ADF4(u8 a1)
+{
+ if (a1 > 0x12)
+ a1 = 0;
+
+ if (gUnknown_0203A3D2 != 0x40)
+ SetSubspriteTables(&gSprites[gUnknown_0203A3D2], &gUnknown_0842F6C0[a1]);
+ return;
+}
diff --git a/src/mori_debug_menu.c b/src/mori_debug_menu.c
new file mode 100644
index 000000000..139650c12
--- /dev/null
+++ b/src/mori_debug_menu.c
@@ -0,0 +1,157 @@
+#include "main.h"
+#include "string_util.h"
+#include "pokemon.h"
+
+extern void sub_8071C20(void);
+extern u16 sub_8041870(u16);
+extern void sub_810CA6C(s32);
+extern u8 (*gCallback_03004AE8)(void);
+
+extern u8 daycare_count_pokemon(u32);
+extern u8 daycare_relationship_score_from_savegame(void);
+
+struct DebugMenuAction
+{
+ u8 *text;
+ u8 (*func)(void);
+};
+
+extern u8 gUnknown_0839B24D[];
+extern u8 gUnknown_0839B255[];
+extern u8 gUnknown_0839B257[];
+
+extern struct DebugMenuAction gMoriDebugMenuActions[];
+
+extern u8 gSpeciesNames[][11];
+
+s8 sub_8083D4C(void)
+{
+ if ( gMain.newKeys & 1 )
+ {
+ sub_8071C20();
+ return 1;
+ }
+ else
+ return 0;
+}
+
+u8 MoriDebugMenu_SearchChild(u8 a1, u8 a2, u8 *ptr)
+{
+ u8 localPtr[52];
+ u16 monData;
+ u16 var;
+
+ monData = GetMonData(gPlayerParty, 11, ptr);
+ var = sub_8041870(monData);
+ StringCopy(localPtr, gSpeciesNames[monData]);
+ StringAppend(localPtr, gUnknown_0839B24D);
+ StringAppend(localPtr, gSpeciesNames[var]);
+ StringAppend(localPtr, gUnknown_0839B255);
+ MenuZeroFillScreen();
+ MenuDrawTextWindow(0, 14, 30, 19);
+ MenuPrint(localPtr, 1, 15);
+ gCallback_03004AE8 = sub_8083D4C;
+ return 0;
+}
+
+s8 MoriDebugMenu_Egg(void)
+{
+ if ( daycare_count_pokemon(gSaveBlock1.filler_2F9C) == 2 && daycare_relationship_score_from_savegame() )
+ sub_8041940();
+ sub_8071C20();
+
+ return 1;
+}
+
+s8 MoriDebugMenu_MaleEgg(void)
+{
+ if ( daycare_count_pokemon(gSaveBlock1.filler_2F9C) == 2 && daycare_relationship_score_from_savegame() )
+ sub_8041950();
+ sub_8071C20();
+
+ return 1;
+}
+
+s8 MoriDebugMenu_1000Steps(void)
+{
+ sub_8041790(1000);
+ sub_8071C20();
+ return 1;
+}
+
+s8 MoriDebugMenu_10000Steps(void)
+{
+ sub_8041790(10000);
+ sub_8071C20();
+ return 1;
+}
+
+s8 MoriDebugMenu_MoveTutor(void)
+{
+ sub_8132670();
+ sub_8071C20();
+ return 1;
+}
+
+s8 MoriDebugMenu_BreedEgg(void)
+{
+ u8 loopCounter;
+
+ for(loopCounter = 0; loopCounter <= 5; loopCounter++)
+ {
+ //UB: Too few arguments for function 'GetMonData'
+ if ( GetMonData(&gPlayerParty[loopCounter], MON_DATA_IS_EGG) )
+ {
+ u8 friendship = 0;
+ SetMonData(&gPlayerParty[loopCounter], MON_DATA_FRIENDSHIP, &friendship);
+ }
+ }
+ gSaveBlock1.filler_30B6 = -3;
+ sub_8071C20();
+ return 1;
+}
+
+s8 MoriDebugMenu_LongName(void)
+{
+ SetMonData(gPlayerParty, 2, &gUnknown_0839B257);
+ sub_8071C20();
+ return 1;
+}
+
+s8 MoriDebugMenu_PokeblockCase(void)
+{
+ s32 loopCounter;
+
+ for(loopCounter = 0; loopCounter <= 39; loopCounter++)
+ sub_810CA6C((u8)loopCounter);
+
+ sub_8071C20();
+ return 1;
+}
+
+s8 MoriDebugMenuProcessInput(void)
+{
+ s8 choice = ProcessMenuInput();
+
+ switch (choice)
+ {
+ default:
+ gCallback_03004AE8 = gMoriDebugMenuActions[choice].func;
+ return 0;
+ case -2:
+ return 0;
+ case -1:
+ sub_8071C20();
+ return 1;
+ }
+}
+
+s8 InitMoriDebugMenu(void)
+{
+ MenuZeroFillScreen();
+ MenuDrawTextWindow(0, 0, 10, 19);
+ PrintMenuItems(1, 1, 9, gMoriDebugMenuActions);
+ InitMenu(0, 1, 1, 9, 0, 9);
+ gCallback_03004AE8 = MoriDebugMenuProcessInput;
+ return 0;
+}
diff --git a/src/pokedex.c b/src/pokedex.c
index 2d7059395..8dfc4212c 100644
--- a/src/pokedex.c
+++ b/src/pokedex.c
@@ -9,30 +9,31 @@
#include "task.h"
#include "text.h"
-struct PokedexListItem {
- u16 a;
+struct PokedexListItem
+{
+ u16 dexNum;
u16 seen:1;
u16 owned:1;
- //u8 c;
};
-struct PokedexView {
- struct PokedexListItem unk0[386]; //data on the 386 different Pokemon
+struct PokedexView
+{
+ struct PokedexListItem unk0[386];
u16 unk608;
u8 unk60A_1:1;
u8 unk60A_2:1;
u8 unk60B;
u16 unk60C;
- u16 unk60E; //selected Pokemon (index of unk0)
+ u16 selectedPokemon;
u16 unk610;
- u16 unk612;
+ u16 dexMode; //National or Hoenn
u16 unk614;
- u16 unk616; //order
+ u16 dexOrder;
u16 unk618;
u16 unk61A;
u16 unk61C;
u16 unk61E[4];
- u16 unk626; //some sprite id
+ u16 unk626; //sprite id of selected Pokemon
u16 unk628;
u16 unk62A;
u8 unk62C;
@@ -49,20 +50,66 @@ struct PokedexView {
u8 unk64A;
u8 unk64B;
u8 unk64C_1:1;
- u8 unk64D;
+ u8 selectedScreen;
u8 unk64E;
u8 unk64F;
- u8 unk650; //menuIsOpen
+ u8 menuIsOpen; //menuIsOpen
u8 unk651;
- u16 unk652; //Menu cursor position
- s16 unk654; //Menu Y position (inverted because we use REG_BG0VOFS for this)
+ u16 menuCursorPos; //Menu cursor position
+ s16 menuY; //Menu Y position (inverted because we use REG_BG0VOFS for this)
u8 unk656[8];
u8 unk65E[8];
};
+// I'm #define-ing these just for now so I can keep using the old unkXXX member names
+#define unk60E selectedPokemon
+#define unk612 dexMode
+#define unk616 dexOrder
+#define unk64D selectedScreen
+#define unk650 menuIsOpen
+#define unk652 menuCursorPos
+#define unk654 menuY
+
+enum
+{
+ DEX_MODE_HOENN,
+ DEX_MODE_NATIONAL
+};
+
+enum
+{
+ PAGE_SCREEN,
+ AREA_SCREEN,
+ CRY_SCREEN,
+ SIZE_SCREEN
+};
+
+struct PokedexEntry
+{
+ /*0x00*/ u8 categoryName[12];
+ /*0x0C*/ u16 height; //in decimeters
+ /*0x0E*/ u16 weight; //in hectograms
+ /*0x10*/ u8 *descriptionPage1;
+ /*0x14*/ u8 *descriptionPage2;
+ /*0x18*/ u16 unused;
+ /*0x1A*/ u16 pokemonScale;
+ /*0x1C*/ u16 pokemonOffset;
+ /*0x1E*/ u16 trainerScale;
+ /*0x20*/ u16 trainerOffset;
+}; /*size = 0x24*/
+
+struct CryRelatedStruct
+{
+ u16 unk0;
+ u8 unk2;
+ u8 unk3;
+ u8 unk4;
+ u8 unk5;
+};
+
extern struct MusicPlayerInfo gMPlay_BGM;
extern u8 gReservedSpritePaletteCount;
-extern struct PokedexView *gUnknown_0202FFB4;
+extern struct PokedexView *gPokedexView;
extern u16 gUnknown_0202FFB8;
extern u8 gUnknown_0202FFBA;
extern u8 gUnknown_03005CE8;
@@ -87,6 +134,24 @@ extern struct SpriteTemplate gSpriteTemplate_83A0584;
extern struct SpriteTemplate gSpriteTemplate_83A059C;
extern struct SpriteTemplate gSpriteTemplate_83A05B4;
extern s16 gSineTable[];
+extern struct PokedexListItem *gUnknown_0202FFBC;
+extern IntrCallback gUnknown_03005CEC;
+extern u8 gUnknown_08E96BD4[];
+extern u8 gUnknown_083A05F8[];
+extern u8 gUnknown_0839F8A0[];
+extern u8 gUnknown_0839F988[];
+extern u8 gUnknown_03005E98;
+extern u8 gUnknown_083B4EC4[];
+extern u8 gUnknown_08E96ACC[];
+extern u8 gUnknown_08E96B58[];
+
+extern struct PokedexEntry gPokedexEntries[];
+extern u8 gDexText_UnknownPoke[];
+extern u8 gDexText_UnknownHeight[];
+extern u8 gDexText_UnknownWeight[];
+extern u8 gDexText_CryOf[];
+extern u8 gDexText_SizeComparedTo[];
+extern u8 gDexText_RegisterComplete[];
extern void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume);
extern bool8 BeginNormalPaletteFade(u32, s8, u8, u8, u16);
@@ -97,7 +162,6 @@ extern u8 sub_8091E3C(void);
extern void sub_80690C8(void);
extern void sub_805469C(void);
extern void LoadCompressedObjectPic(void *);
-extern void LZ77UnCompVram(const void *, void *);
extern u16 HoennToNationalOrder(u16);
extern u16 NationalToHoennOrder(u16);
extern u16 gPokedexOrder_Alphabetical[];
@@ -126,12 +190,12 @@ bool8 sub_808E208(u8, u8, u8);
u8 sub_808E82C(void);
void sub_808E0CC(u16, u16);
u8 sub_808F210(struct PokedexListItem *, u8);
-void sub_808F284(struct PokedexListItem *, u8);
+u8 sub_808F284(struct PokedexListItem *, u8);
bool8 sub_808F250(u8);
bool8 sub_808E71C(void);
void sub_808CCC4(u8 taskId);
u16 GetHoennPokedexCount(u8);
-void sub_808D690(u8, u8);
+void SortPokedex(u8, u8);
void Task_PokedexResultsScreen(u8 taskId);
void sub_808D118(u8 taskId);
void Task_PokedexResultsScreenMenu(u8 taskId);
@@ -149,7 +213,29 @@ u16 sub_808E888(u16);
u32 sub_808E8C8(u16, u16, u16);
void sub_808EE28(struct Sprite *sprite);
u16 sub_8091818(u8, u16, u16, u16);
-u8 sub_80918EC(u16 a, s16 b, s16 c, u16 d);
+u16 sub_80918EC(u16 a, s16 b, s16 c, u16 d); //Not sure of return type
+void Task_InitPageScreenMultistep(u8 taskId);
+void Task_PageScreenProcessInput(u8 taskId);
+void Task_InitCryScreenMultistep(u8 taskId);
+void Task_InitAreaScreenMultistep(u8 taskId);
+void Task_ClosePageScreen(u8 taskId);
+void sub_808F888(u8 taskId);
+void Task_InitSizeScreenMultistep(u8 taskId);
+void Task_AreaScreenProcessInput(u8 taskId);
+void sub_808FA00(u8 taskId);
+void Task_CryScreenProcessInput(u8 taskId);
+void sub_808FFBC(u8 taskId);
+void Task_SizeScreenProcessInput(u8 taskId);
+void sub_8090040(u8);
+void sub_8090498(u8 taskId);
+void sub_80904FC(u16);
+void sub_8090540(u16);
+void sub_8090750(u8);
+void sub_8090A3C(u8);
+void sub_8091738(u16, u16, u16);
+u16 NationalPokedexNumToSpecies(u16);
+u8 sub_8119E3C(struct CryRelatedStruct *, u8);
+u8 ShowPokedexCryScreen(struct CryRelatedStruct *, u8);
void sub_808C02C(void)
{
@@ -195,7 +281,7 @@ void ClearPokedexView(struct PokedexView *pokedexView)
for(i = 0; i <= 385; i++)
{
- pokedexView->unk0[i].a |= 0x0000FFFF;
+ pokedexView->unk0[i].dexNum |= 0xFFFF;
pokedexView->unk0[i].seen = 0;
pokedexView->unk0[i].owned = 0;
}
@@ -203,11 +289,11 @@ void ClearPokedexView(struct PokedexView *pokedexView)
pokedexView->unk60A_1 = 0;
pokedexView->unk60A_2 = 0;
pokedexView->unk60C = 0;
- pokedexView->unk60E = 0;
+ pokedexView->selectedPokemon = 0;
pokedexView->unk610 = 0;
- pokedexView->unk612 = 0;
+ pokedexView->dexMode = 0;
pokedexView->unk614 = 0;
- pokedexView->unk616 = 0;
+ pokedexView->dexOrder = 0;
pokedexView->unk618 = 0;
pokedexView->unk61A = 0;
pokedexView->unk61C = 0;
@@ -229,11 +315,11 @@ void ClearPokedexView(struct PokedexView *pokedexView)
pokedexView->unk64A = 0;
pokedexView->unk64B = 0;
pokedexView->unk64C_1 = 0;
- pokedexView->unk64D = 0;
+ pokedexView->selectedScreen = 0;
pokedexView->unk64F = 0;
- pokedexView->unk650 = 0;
- pokedexView->unk652 = 0;
- pokedexView->unk654 = 0;
+ pokedexView->menuIsOpen = 0;
+ pokedexView->menuCursorPos = 0;
+ pokedexView->menuY = 0;
for(i = 0; i <= 7; i++)
pokedexView->unk656[i] = 0;
for(i = 0; i <= 7; i++)
@@ -286,39 +372,39 @@ void CB2_InitPokedex(void)
{
case 0:
default:
- gUnknown_0202FFB4 = (struct PokedexView *)0x02018000;
+ gPokedexView = (struct PokedexView *)0x02018000;
break;
case 1:
- gUnknown_0202FFB4 = (struct PokedexView *)0x02018800;
+ gPokedexView = (struct PokedexView *)0x02018800;
break;
case 2:
- gUnknown_0202FFB4 = (struct PokedexView *)0x02019000;
+ gPokedexView = (struct PokedexView *)0x02019000;
break;
case 3:
- gUnknown_0202FFB4 = (struct PokedexView *)0x02019800;
+ gPokedexView = (struct PokedexView *)0x02019800;
break;
}
- ClearPokedexView(gUnknown_0202FFB4);
+ ClearPokedexView(gPokedexView);
CreateTask(Task_PokedexShowMainScreen, 0);
- gUnknown_0202FFB4->unk612 = gSaveBlock2.pokedex.unknown1;
+ gPokedexView->dexMode = gSaveBlock2.pokedex.unknown1;
if(!IsNationalPokedex())
- gUnknown_0202FFB4->unk612 = 0;
- gUnknown_0202FFB4->unk616 = gSaveBlock2.pokedex.order;
- gUnknown_0202FFB4->unk60E = gUnknown_0202FFB8;
- gUnknown_0202FFB4->unk62C = gUnknown_0202FFBA;
- gUnknown_0202FFB4->unk64D = 0;
- gUnknown_0202FFB4->unk64E = 0;
+ gPokedexView->dexMode = DEX_MODE_HOENN;
+ gPokedexView->dexOrder = gSaveBlock2.pokedex.order;
+ gPokedexView->selectedPokemon = gUnknown_0202FFB8;
+ gPokedexView->unk62C = gUnknown_0202FFBA;
+ gPokedexView->selectedScreen = PAGE_SCREEN;
+ gPokedexView->unk64E = 0;
if(!IsNationalPokedex())
{
- gUnknown_0202FFB4->unk61A = GetHoennPokedexCount(0);
- gUnknown_0202FFB4->unk61C = GetHoennPokedexCount(1);
+ gPokedexView->unk61A = GetHoennPokedexCount(0);
+ gPokedexView->unk61C = GetHoennPokedexCount(1);
}
else
{
- gUnknown_0202FFB4->unk61A = GetNationalPokedexCount(0);
- gUnknown_0202FFB4->unk61C = GetNationalPokedexCount(1);
+ gPokedexView->unk61A = GetNationalPokedexCount(0);
+ gPokedexView->unk61C = GetNationalPokedexCount(1);
}
- gUnknown_0202FFB4->unk62D = 8;
+ gPokedexView->unk62D = 8;
gMain.state++;
break;
case 3:
@@ -332,7 +418,7 @@ void CB2_InitPokedex(void)
REG_DISPSTAT |= 8;
SetVBlankCallback(sub_808C0B8);
SetMainCallback2(MainCB);
- sub_808D690(gUnknown_0202FFB4->unk612, gUnknown_0202FFB4->unk616);
+ SortPokedex(gPokedexView->dexMode, gPokedexView->dexOrder);
m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x80);
}
}
@@ -355,7 +441,7 @@ u8 unref_sub_808C540(void (*func)(u8))
REG_DISPSTAT |= 0x8;
SetVBlankCallback(sub_808C0B8);
SetMainCallback2(MainCB);
- if(!gUnknown_0202FFB4->unk64B)
+ if(!gPokedexView->unk64B)
taskId = CreateTask(sub_808CAE4, 0);
else
taskId = CreateTask(sub_808D198, 0);
@@ -373,7 +459,7 @@ void MainCB(void)
void Task_PokedexShowMainScreen(u8 taskId)
{
- gUnknown_0202FFB4->unk64C_1 = 0;
+ gPokedexView->unk64C_1 = 0;
if(sub_808D344(0))
{
gTasks[taskId].func = Task_PokedexMainScreen;
@@ -383,29 +469,29 @@ void Task_PokedexShowMainScreen(u8 taskId)
//Hide menu and process input on main screen
void Task_PokedexMainScreen(u8 taskId)
{
- REG_BG0VOFS = gUnknown_0202FFB4->unk654;
+ REG_BG0VOFS = gPokedexView->menuY;
//If menu is open, slide it down, off screen
- if(gUnknown_0202FFB4->unk654)
- gUnknown_0202FFB4->unk654 -= 8;
+ if(gPokedexView->menuY)
+ gPokedexView->menuY -= 8;
else
{
- if((gMain.newKeys & A_BUTTON) && gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60E].seen)
+ if((gMain.newKeys & A_BUTTON) && gPokedexView->unk0[gPokedexView->selectedPokemon].seen)
{
sub_808E6BC();
BeginNormalPaletteFade(
- ~(1 << (gSprites[gUnknown_0202FFB4->unk626].oam.paletteNum + 16)),
+ ~(1 << (gSprites[gPokedexView->unk626].oam.paletteNum + 16)),
0, 0, 0x10, 0);
- gSprites[gUnknown_0202FFB4->unk626].callback = sub_808EDB8;
+ gSprites[gPokedexView->unk626].callback = sub_808EDB8;
gTasks[taskId].func = sub_808CA64;
PlaySE(SE_PIN);
}
else if(gMain.newKeys & START_BUTTON)
{
//Open menu
- gUnknown_0202FFB4->unk654 = 0;
- gUnknown_0202FFB4->unk650 = 1;
- gUnknown_0202FFB4->unk652 = 0;
+ gPokedexView->menuY = 0;
+ gPokedexView->menuIsOpen = 1;
+ gPokedexView->menuCursorPos = 0;
gTasks[taskId].func = Task_PokedexMainScreenMenu;
PlaySE(SE_SELECT);
}
@@ -414,11 +500,11 @@ void Task_PokedexMainScreen(u8 taskId)
PlaySE(SE_SELECT);
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
gTasks[taskId].data[0] = sub_8091E3C();
- gUnknown_0202FFB4->unk64F = 0;
- gUnknown_0202FFB4->unk62A = gUnknown_0202FFB4->unk62C;
- gUnknown_0202FFB4->unk610 = gUnknown_0202FFB4->unk60E;
- gUnknown_0202FFB4->unk614 = gUnknown_0202FFB4->unk612;
- gUnknown_0202FFB4->unk618 = gUnknown_0202FFB4->unk616;
+ gPokedexView->unk64F = 0;
+ gPokedexView->unk62A = gPokedexView->unk62C;
+ gPokedexView->unk610 = gPokedexView->selectedPokemon;
+ gPokedexView->unk614 = gPokedexView->dexMode;
+ gPokedexView->unk618 = gPokedexView->dexOrder;
gTasks[taskId].func = sub_808CB8C;
PlaySE(SE_PC_LOGON);
}
@@ -431,8 +517,8 @@ void Task_PokedexMainScreen(u8 taskId)
else
{
//Handle D-pad
- gUnknown_0202FFB4->unk60E = sub_808E48C(gUnknown_0202FFB4->unk60E, 0xE);
- if(gUnknown_0202FFB4->unk62E)
+ gPokedexView->selectedPokemon = sub_808E48C(gPokedexView->selectedPokemon, 0xE);
+ if(gPokedexView->unk62E)
gTasks[taskId].func = sub_808C898;
}
}
@@ -440,7 +526,7 @@ void Task_PokedexMainScreen(u8 taskId)
void sub_808C898(u8 taskId)
{
- if(sub_808E208(gUnknown_0202FFB4->unk62F, gUnknown_0202FFB4->unk634, gUnknown_0202FFB4->unk636))
+ if(sub_808E208(gPokedexView->unk62F, gPokedexView->unk634, gPokedexView->unk636))
{
gTasks[taskId].func = Task_PokedexMainScreen;
}
@@ -449,33 +535,33 @@ void sub_808C898(u8 taskId)
//Bring up menu and process menu input
void Task_PokedexMainScreenMenu(u8 taskId)
{
- REG_BG0VOFS = gUnknown_0202FFB4->unk654;
+ REG_BG0VOFS = gPokedexView->menuY;
//If menu is not open, slide it up, on screen
- if(gUnknown_0202FFB4->unk654 != 80)
- gUnknown_0202FFB4->unk654 += 8;
+ if(gPokedexView->menuY != 80)
+ gPokedexView->menuY += 8;
else
{
if(gMain.newKeys & A_BUTTON)
{
- switch(gUnknown_0202FFB4->unk652)
+ switch(gPokedexView->menuCursorPos)
{
case 0: //BACK TO LIST
default:
gMain.newKeys |= START_BUTTON; //Exit menu
break;
case 1: //LIST TOP
- gUnknown_0202FFB4->unk60E = 0;
- gUnknown_0202FFB4->unk62C = 0x40;
+ gPokedexView->selectedPokemon = 0;
+ gPokedexView->unk62C = 0x40;
sub_808E82C();
- sub_808E0CC(gUnknown_0202FFB4->unk60E, 0xE);
+ sub_808E0CC(gPokedexView->selectedPokemon, 0xE);
gMain.newKeys |= START_BUTTON; //Exit menu
break;
case 2: //LIST BOTTOM
- gUnknown_0202FFB4->unk60E = gUnknown_0202FFB4->unk60C - 1;
- gUnknown_0202FFB4->unk62C = gUnknown_0202FFB4->unk60C * 16 + 0x30;
+ gPokedexView->selectedPokemon = gPokedexView->unk60C - 1;
+ gPokedexView->unk62C = gPokedexView->unk60C * 16 + 0x30;
sub_808E82C();
- sub_808E0CC(gUnknown_0202FFB4->unk60E, 0xE);
+ sub_808E0CC(gPokedexView->selectedPokemon, 0xE);
gMain.newKeys |= START_BUTTON; //Exit menu
break;
case 3: //CLOSE POKEDEX
@@ -489,18 +575,18 @@ void Task_PokedexMainScreenMenu(u8 taskId)
//Exit menu when Start or B is pressed
if(gMain.newKeys & (START_BUTTON | B_BUTTON))
{
- gUnknown_0202FFB4->unk650 = 0;
+ gPokedexView->menuIsOpen = 0;
gTasks[taskId].func = Task_PokedexMainScreen;
PlaySE(SE_SELECT);
}
- else if((gMain.newAndRepeatedKeys & DPAD_UP) && gUnknown_0202FFB4->unk652 != 0)
+ else if((gMain.newAndRepeatedKeys & DPAD_UP) && gPokedexView->menuCursorPos != 0)
{
- gUnknown_0202FFB4->unk652--;
+ gPokedexView->menuCursorPos--;
PlaySE(SE_SELECT);
}
- else if((gMain.newAndRepeatedKeys & DPAD_DOWN) && gUnknown_0202FFB4->unk652 <= 2)
+ else if((gMain.newAndRepeatedKeys & DPAD_DOWN) && gPokedexView->menuCursorPos <= 2)
{
- gUnknown_0202FFB4->unk652++;
+ gPokedexView->menuCursorPos++;
PlaySE(SE_SELECT);
}
}
@@ -508,11 +594,11 @@ void Task_PokedexMainScreenMenu(u8 taskId)
void sub_808CA64(u8 taskId)
{
- if(gSprites[gUnknown_0202FFB4->unk626].pos1.x == 0x30 &&
- gSprites[gUnknown_0202FFB4->unk626].pos1.y == 0x38)
+ if(gSprites[gPokedexView->unk626].pos1.x == 0x30 &&
+ gSprites[gPokedexView->unk626].pos1.y == 0x38)
{
- gUnknown_0202FFB4->unk64B = gUnknown_0202FFB4->unk64A;
- gTasks[taskId].data[0] = sub_808F210(&gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60E], gUnknown_0202FFB4->unk626);
+ gPokedexView->unk64B = gPokedexView->unk64A;
+ gTasks[taskId].data[0] = sub_808F210(&gPokedexView->unk0[gPokedexView->selectedPokemon], gPokedexView->unk626);
gTasks[taskId].func = sub_808CAE4;
}
}
@@ -521,17 +607,17 @@ void sub_808CAE4(u8 taskId)
{
if(gTasks[gTasks[taskId].data[0]].isActive)
{
- if(gUnknown_0202FFB4->unk64A == 1 &&
+ if(gPokedexView->unk64A == 1 &&
!sub_808F250(gTasks[taskId].data[0]) &&
sub_808E71C())
{
- sub_808F284(&gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60E], gTasks[taskId].data[0]);
+ sub_808F284(&gPokedexView->unk0[gPokedexView->selectedPokemon], gTasks[taskId].data[0]);
}
}
else
{
- gUnknown_0202FFB8 = gUnknown_0202FFB4->unk60E;
- gUnknown_0202FFBA = gUnknown_0202FFB4->unk62C;
+ gUnknown_0202FFB8 = gPokedexView->selectedPokemon;
+ gUnknown_0202FFBA = gPokedexView->unk62C;
gTasks[taskId].func = Task_PokedexShowMainScreen;
}
}
@@ -542,20 +628,20 @@ void sub_808CB8C(u8 taskId)
if(!isActive)
{
- if(gUnknown_0202FFB4->unk64F)
+ if(gPokedexView->unk64F)
{
- gUnknown_0202FFB4->unk60E = isActive;
- gUnknown_0202FFB4->unk62C = 0x40;
+ gPokedexView->selectedPokemon = isActive;
+ gPokedexView->unk62C = 0x40;
gTasks[taskId].func = sub_808CCC4;
}
else
{
- gUnknown_0202FFB4->unk62C = gUnknown_0202FFB4->unk62A;
- gUnknown_0202FFB4->unk60E = gUnknown_0202FFB4->unk610;
- gUnknown_0202FFB4->unk612 = gUnknown_0202FFB4->unk614;
+ gPokedexView->unk62C = gPokedexView->unk62A;
+ gPokedexView->selectedPokemon = gPokedexView->unk610;
+ gPokedexView->dexMode = gPokedexView->unk614;
if(!IsNationalPokedex())
- gUnknown_0202FFB4->unk612 = 0;
- gUnknown_0202FFB4->unk616 = gUnknown_0202FFB4->unk618;
+ gPokedexView->dexMode = DEX_MODE_HOENN;
+ gPokedexView->dexOrder = gPokedexView->unk618;
gTasks[taskId].func = Task_PokedexShowMainScreen;
}
}
@@ -565,10 +651,10 @@ void Task_ClosePokedex(u8 taskId)
{
if(!gPaletteFade.active)
{
- gSaveBlock2.pokedex.unknown1 = gUnknown_0202FFB4->unk612;
+ gSaveBlock2.pokedex.unknown1 = gPokedexView->dexMode;
if(!IsNationalPokedex())
gSaveBlock2.pokedex.unknown1 = 0;
- gSaveBlock2.pokedex.order = gUnknown_0202FFB4->unk616;
+ gSaveBlock2.pokedex.order = gPokedexView->dexOrder;
DestroyTask(taskId);
SetMainCallback2(sub_805469C);
m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 0x100);
@@ -577,35 +663,35 @@ void Task_ClosePokedex(u8 taskId)
void sub_808CCC4(u8 taskId)
{
- gUnknown_0202FFB4->unk64C_1 = 1;
+ gPokedexView->unk64C_1 = 1;
if(sub_808D344(3))
gTasks[taskId].func = Task_PokedexResultsScreen;
}
void Task_PokedexResultsScreen(u8 taskId)
{
- REG_BG0VOFS = gUnknown_0202FFB4->unk654;
+ REG_BG0VOFS = gPokedexView->menuY;
- if(gUnknown_0202FFB4->unk654)
- gUnknown_0202FFB4->unk654 -= 8;
+ if(gPokedexView->menuY)
+ gPokedexView->menuY -= 8;
else
{
- if((gMain.newKeys & A_BUTTON) && gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60E].seen)
+ if((gMain.newKeys & A_BUTTON) && gPokedexView->unk0[gPokedexView->selectedPokemon].seen)
{
u32 a;
sub_808E6BC();
- a = (1 << (gSprites[gUnknown_0202FFB4->unk626].oam.paletteNum + 16));
- gSprites[gUnknown_0202FFB4->unk626].callback = sub_808EDB8;
+ a = (1 << (gSprites[gPokedexView->unk626].oam.paletteNum + 16));
+ gSprites[gPokedexView->unk626].callback = sub_808EDB8;
BeginNormalPaletteFade(~a, 0, 0, 0x10, 0);
gTasks[taskId].func = sub_808D118;
PlaySE(SE_PIN);
}
else if(gMain.newKeys & START_BUTTON)
{
- gUnknown_0202FFB4->unk654 = 0;
- gUnknown_0202FFB4->unk650 = 1;
- gUnknown_0202FFB4->unk652 = 0;
+ gPokedexView->menuY = 0;
+ gPokedexView->menuIsOpen = 1;
+ gPokedexView->menuCursorPos = 0;
gTasks[taskId].func = Task_PokedexResultsScreenMenu;
PlaySE(SE_SELECT);
}
@@ -613,7 +699,7 @@ void Task_PokedexResultsScreen(u8 taskId)
{
BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
gTasks[taskId].data[0] = sub_8091E3C();
- gUnknown_0202FFB4->unk64F = 0;
+ gPokedexView->unk64F = 0;
gTasks[taskId].func = sub_808CB8C;
PlaySE(SE_PC_LOGON);
}
@@ -626,8 +712,8 @@ void Task_PokedexResultsScreen(u8 taskId)
else
{
//Handle D-pad
- gUnknown_0202FFB4->unk60E = sub_808E48C(gUnknown_0202FFB4->unk60E, 0xE);
- if(gUnknown_0202FFB4->unk62E)
+ gPokedexView->selectedPokemon = sub_808E48C(gPokedexView->selectedPokemon, 0xE);
+ if(gPokedexView->unk62E)
gTasks[taskId].func = sub_808CEF8;
}
}
@@ -635,38 +721,38 @@ void Task_PokedexResultsScreen(u8 taskId)
void sub_808CEF8(u8 taskId)
{
- if(sub_808E208(gUnknown_0202FFB4->unk62F, gUnknown_0202FFB4->unk634, gUnknown_0202FFB4->unk636))
+ if(sub_808E208(gPokedexView->unk62F, gPokedexView->unk634, gPokedexView->unk636))
gTasks[taskId].func = Task_PokedexResultsScreen;
}
void Task_PokedexResultsScreenMenu(u8 taskId)
{
- REG_BG0VOFS = gUnknown_0202FFB4->unk654;
+ REG_BG0VOFS = gPokedexView->menuY;
- if(gUnknown_0202FFB4->unk654 != 0x60)
- gUnknown_0202FFB4->unk654 += 8;
+ if(gPokedexView->menuY != 0x60)
+ gPokedexView->menuY += 8;
else
{
if(gMain.newKeys & A_BUTTON)
{
- switch(gUnknown_0202FFB4->unk652)
+ switch(gPokedexView->menuCursorPos)
{
case 0: //BACK TO LIST
default:
gMain.newKeys |= START_BUTTON;
break;
case 1: //LIST TOP
- gUnknown_0202FFB4->unk60E = 0;
- gUnknown_0202FFB4->unk62C = 0x40;
+ gPokedexView->selectedPokemon = 0;
+ gPokedexView->unk62C = 0x40;
sub_808E82C();
- sub_808E0CC(gUnknown_0202FFB4->unk60E, 0xE);
+ sub_808E0CC(gPokedexView->selectedPokemon, 0xE);
gMain.newKeys |= START_BUTTON;
break;
case 2: //LIST BOTTOM
- gUnknown_0202FFB4->unk60E = gUnknown_0202FFB4->unk60C - 1;
- gUnknown_0202FFB4->unk62C = gUnknown_0202FFB4->unk60C * 16 + 0x30;
+ gPokedexView->selectedPokemon = gPokedexView->unk60C - 1;
+ gPokedexView->unk62C = gPokedexView->unk60C * 16 + 0x30;
sub_808E82C();
- sub_808E0CC(gUnknown_0202FFB4->unk60E, 0xE);
+ sub_808E0CC(gPokedexView->selectedPokemon, 0xE);
gMain.newKeys |= START_BUTTON;
break;
case 3: //BACK TO POKEDEX
@@ -685,18 +771,18 @@ void Task_PokedexResultsScreenMenu(u8 taskId)
//Exit menu when Start or B is pressed
if(gMain.newKeys & (START_BUTTON | B_BUTTON))
{
- gUnknown_0202FFB4->unk650 = 0;
+ gPokedexView->menuIsOpen = 0;
gTasks[taskId].func = Task_PokedexResultsScreen;
PlaySE(SE_SELECT);
}
- else if((gMain.newAndRepeatedKeys & DPAD_UP) && gUnknown_0202FFB4->unk652)
+ else if((gMain.newAndRepeatedKeys & DPAD_UP) && gPokedexView->menuCursorPos)
{
- gUnknown_0202FFB4->unk652--;
+ gPokedexView->menuCursorPos--;
PlaySE(SE_SELECT);
}
- else if((gMain.newAndRepeatedKeys & DPAD_DOWN) && gUnknown_0202FFB4->unk652 <= 3)
+ else if((gMain.newAndRepeatedKeys & DPAD_DOWN) && gPokedexView->menuCursorPos <= 3)
{
- gUnknown_0202FFB4->unk652++;
+ gPokedexView->menuCursorPos++;
PlaySE(SE_SELECT);
}
}
@@ -704,11 +790,11 @@ void Task_PokedexResultsScreenMenu(u8 taskId)
void sub_808D118(u8 taskId)
{
- if(gSprites[gUnknown_0202FFB4->unk626].pos1.x == 0x30 &&
- gSprites[gUnknown_0202FFB4->unk626].pos1.y == 0x38)
+ if(gSprites[gPokedexView->unk626].pos1.x == 0x30 &&
+ gSprites[gPokedexView->unk626].pos1.y == 0x38)
{
- gUnknown_0202FFB4->unk64B = gUnknown_0202FFB4->unk64A;
- gTasks[taskId].data[0] = sub_808F210(&gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60E], gUnknown_0202FFB4->unk626);
+ gPokedexView->unk64B = gPokedexView->unk64A;
+ gTasks[taskId].data[0] = sub_808F210(&gPokedexView->unk0[gPokedexView->selectedPokemon], gPokedexView->unk626);
gTasks[taskId].func = sub_808D198;
}
}
@@ -717,11 +803,11 @@ void sub_808D198(u8 taskId)
{
if(gTasks[gTasks[taskId].data[0]].isActive)
{
- if(gUnknown_0202FFB4->unk64A == 1 &&
+ if(gPokedexView->unk64A == 1 &&
!sub_808F250(gTasks[taskId].data[0]) &&
sub_808E71C())
{
- sub_808F284(&gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60E], gTasks[taskId].data[0]);
+ sub_808F284(&gPokedexView->unk0[gPokedexView->selectedPokemon], gTasks[taskId].data[0]);
}
}
else
@@ -734,12 +820,12 @@ void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId)
{
if(!gPaletteFade.active)
{
- gUnknown_0202FFB4->unk62C = gUnknown_0202FFB4->unk62A;
- gUnknown_0202FFB4->unk60E = gUnknown_0202FFB4->unk610;
- gUnknown_0202FFB4->unk612 = gUnknown_0202FFB4->unk614;
+ gPokedexView->unk62C = gPokedexView->unk62A;
+ gPokedexView->selectedPokemon = gPokedexView->unk610;
+ gPokedexView->dexMode = gPokedexView->unk614;
if(!IsNationalPokedex())
- gUnknown_0202FFB4->unk612 = 0;
- gUnknown_0202FFB4->unk616 = gUnknown_0202FFB4->unk618;
+ gPokedexView->dexMode = DEX_MODE_HOENN;
+ gPokedexView->dexOrder = gPokedexView->unk618;
gTasks[taskId].func = Task_PokedexShowMainScreen;
}
}
@@ -748,12 +834,12 @@ void Task_PokedexResultsScreenExitPokedex(u8 taskId)
{
if(!gPaletteFade.active)
{
- gUnknown_0202FFB4->unk62C = gUnknown_0202FFB4->unk62A;
- gUnknown_0202FFB4->unk60E = gUnknown_0202FFB4->unk610;
- gUnknown_0202FFB4->unk612 = gUnknown_0202FFB4->unk614;
+ gPokedexView->unk62C = gPokedexView->unk62A;
+ gPokedexView->selectedPokemon = gPokedexView->unk610;
+ gPokedexView->dexMode = gPokedexView->unk614;
if(!IsNationalPokedex())
- gUnknown_0202FFB4->unk612 = 0;
- gUnknown_0202FFB4->unk616 = gUnknown_0202FFB4->unk618;
+ gPokedexView->dexMode = DEX_MODE_HOENN;
+ gPokedexView->dexOrder = gPokedexView->unk618;
gTasks[taskId].func = Task_ClosePokedex;
}
}
@@ -769,9 +855,9 @@ bool8 sub_808D344(u8 a)
return 0;
//_0808D39E
SetVBlankCallback(NULL);
- gUnknown_0202FFB4->unk64A = a;
+ gPokedexView->unk64A = a;
sub_8091060(0);
- REG_BG2VOFS = gUnknown_0202FFB4->unk62D;
+ REG_BG2VOFS = gPokedexView->unk62D;
LZ77UnCompVram(gPokedexMenu_Gfx, (void *)(VRAM));
LZ77UnCompVram(gUnknown_08E96738, (void *)(VRAM + 0x6800));
LZ77UnCompVram(gUnknown_08E9C6DC, (void *)(VRAM + 0x7800));
@@ -782,9 +868,9 @@ bool8 sub_808D344(u8 a)
LZ77UnCompVram(gUnknown_08E96994, (void *)(VRAM + 0x6500));
ResetPaletteFade();
if(a == 0)
- gUnknown_0202FFB4->unk64C_1 = 0;
+ gPokedexView->unk64C_1 = 0;
else
- gUnknown_0202FFB4->unk64C_1 = 1;
+ gPokedexView->unk64C_1 = 1;
sub_808D640();
gMain.state = 1;
break;
@@ -805,10 +891,10 @@ bool8 sub_808D344(u8 a)
break;
case 3:
if(a == 0)
- sub_808D690(gUnknown_0202FFB4->unk612, gUnknown_0202FFB4->unk616);
- sub_808E0CC(gUnknown_0202FFB4->unk60E, 0xE);
- gUnknown_0202FFB4->unk650 = 0;
- gUnknown_0202FFB4->unk654 = 0;
+ SortPokedex(gPokedexView->dexMode, gPokedexView->dexOrder);
+ sub_808E0CC(gPokedexView->selectedPokemon, 0xE);
+ gPokedexView->menuIsOpen = 0;
+ gPokedexView->menuY = 0;
gMain.state++;
break;
case 4:
@@ -846,7 +932,7 @@ bool8 sub_808D344(u8 a)
void sub_808D640(void)
{
- if(gUnknown_0202FFB4->unk64C_1)
+ if(gPokedexView->unk64C_1)
LoadPalette(gUnknown_0839F67C + 0x2, 1, 0xBE);
else if(!IsNationalPokedex())
LoadPalette(gPokedexMenu_Pal + 0x2, 1, 0xBE);
@@ -854,22 +940,21 @@ void sub_808D640(void)
LoadPalette(gUnknown_0839F73C + 0x2, 1, 0xBE);
}
-//Pokedex sorting function
-void sub_808D690(u8 a, u8 mode)
+void SortPokedex(u8 dexMode, u8 sortMode)
{
u16 vars[3]; //I have no idea why three regular variables are stored in an array, but whatever.
s16 i;
- gUnknown_0202FFB4->unk60C = 0;
+ gPokedexView->unk60C = 0;
- switch(a)
+ switch(dexMode)
{
default:
- case 0:
+ case DEX_MODE_HOENN:
vars[0] = 202;
vars[1] = 1;
break;
- case 1:
+ case DEX_MODE_NATIONAL:
if(IsNationalPokedex())
{
vars[0] = 386;
@@ -878,12 +963,12 @@ void sub_808D690(u8 a, u8 mode)
else
{
vars[0] = 202;
- vars[1] = a;
+ vars[1] = 1;
}
break;
}
- switch(mode)
+ switch(sortMode)
{
case 0:
{
@@ -892,11 +977,11 @@ void sub_808D690(u8 a, u8 mode)
for(i = 0; i < vars[0]; i++)
{
vars[2] = HoennToNationalOrder(i + 1);
- gUnknown_0202FFB4->unk0[i].a = vars[2];
- gUnknown_0202FFB4->unk0[i].seen = sub_8090D90(vars[2], 0);
- gUnknown_0202FFB4->unk0[i].owned = sub_8090D90(vars[2], 1);
- if(gUnknown_0202FFB4->unk0[i].seen)
- gUnknown_0202FFB4->unk60C = i + 1;
+ gPokedexView->unk0[i].dexNum = vars[2];
+ gPokedexView->unk0[i].seen = sub_8090D90(vars[2], 0);
+ gPokedexView->unk0[i].owned = sub_8090D90(vars[2], 1);
+ if(gPokedexView->unk0[i].seen)
+ gPokedexView->unk60C = i + 1;
}
}
else
@@ -913,11 +998,11 @@ void sub_808D690(u8 a, u8 mode)
if(r10)
{
asm(""); //Needed to match for some reason
- gUnknown_0202FFB4->unk0[r5].a = vars[2];
- gUnknown_0202FFB4->unk0[r5].seen = sub_8090D90(vars[2], 0);
- gUnknown_0202FFB4->unk0[r5].owned = sub_8090D90(vars[2], 1);
- if(gUnknown_0202FFB4->unk0[r5].seen)
- gUnknown_0202FFB4->unk60C = r5 + 1;
+ gPokedexView->unk0[r5].dexNum = vars[2];
+ gPokedexView->unk0[r5].seen = sub_8090D90(vars[2], 0);
+ gPokedexView->unk0[r5].owned = sub_8090D90(vars[2], 1);
+ if(gPokedexView->unk0[r5].seen)
+ gPokedexView->unk60C = r5 + 1;
r5++;
}
}
@@ -931,10 +1016,10 @@ void sub_808D690(u8 a, u8 mode)
if(NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 0))
{
- gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].a = vars[2];
- gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].seen = 1;
- gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].owned = sub_8090D90(vars[2], 1);
- gUnknown_0202FFB4->unk60C++;
+ gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2];
+ gPokedexView->unk0[gPokedexView->unk60C].seen = 1;
+ gPokedexView->unk0[gPokedexView->unk60C].owned = sub_8090D90(vars[2], 1);
+ gPokedexView->unk60C++;
}
}
break;
@@ -945,10 +1030,10 @@ void sub_808D690(u8 a, u8 mode)
if(NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 1))
{
- gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].a = vars[2];
- gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].seen = 1;
- gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].owned = 1;
- gUnknown_0202FFB4->unk60C++;
+ gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2];
+ gPokedexView->unk0[gPokedexView->unk60C].seen = 1;
+ gPokedexView->unk0[gPokedexView->unk60C].owned = 1;
+ gPokedexView->unk60C++;
}
}
break;
@@ -959,10 +1044,10 @@ void sub_808D690(u8 a, u8 mode)
if(NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 1))
{
- gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].a = vars[2];
- gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].seen = 1;
- gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].owned = 1;
- gUnknown_0202FFB4->unk60C++;
+ gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2];
+ gPokedexView->unk0[gPokedexView->unk60C].seen = 1;
+ gPokedexView->unk0[gPokedexView->unk60C].owned = 1;
+ gPokedexView->unk60C++;
}
}
break;
@@ -973,10 +1058,10 @@ void sub_808D690(u8 a, u8 mode)
if(NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 1))
{
- gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].a = vars[2];
- gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].seen = 1;
- gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].owned = 1;
- gUnknown_0202FFB4->unk60C++;
+ gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2];
+ gPokedexView->unk0[gPokedexView->unk60C].seen = 1;
+ gPokedexView->unk0[gPokedexView->unk60C].owned = 1;
+ gPokedexView->unk60C++;
}
}
break;
@@ -987,19 +1072,19 @@ void sub_808D690(u8 a, u8 mode)
if(NationalToHoennOrder(vars[2]) <= vars[0] && sub_8090D90(vars[2], 1))
{
- gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].a = vars[2];
- gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].seen = 1;
- gUnknown_0202FFB4->unk0[gUnknown_0202FFB4->unk60C].owned = 1;
- gUnknown_0202FFB4->unk60C++;
+ gPokedexView->unk0[gPokedexView->unk60C].dexNum = vars[2];
+ gPokedexView->unk0[gPokedexView->unk60C].seen = 1;
+ gPokedexView->unk0[gPokedexView->unk60C].owned = 1;
+ gPokedexView->unk60C++;
}
}
break;
}
- for(i = gUnknown_0202FFB4->unk60C; i < 386; i++)
+ for(i = gPokedexView->unk60C; i < 386; i++)
{
- gUnknown_0202FFB4->unk0[i].a |= 0xFFFF;
- gUnknown_0202FFB4->unk0[i].seen = 0;
- gUnknown_0202FFB4->unk0[i].owned = 0;
+ gPokedexView->unk0[i].dexNum |= 0xFFFF;
+ gPokedexView->unk0[i].seen = 0;
+ gPokedexView->unk0[i].owned = 0;
}
}
@@ -1015,16 +1100,16 @@ void sub_808DBE8(u8 a, u16 b, u16 c)
for(i = 0; i <= 10; i++)
{
- if((u16)_b > 385 || gUnknown_0202FFB4->unk0[_b].a == 0xFFFF)
+ if((u16)_b > 385 || gPokedexView->unk0[_b].dexNum == 0xFFFF)
sub_808E090(0x11, i * 2, c);
else
{
sub_808E090(0x11, i * 2, c);
- if(gUnknown_0202FFB4->unk0[_b].seen)
+ if(gPokedexView->unk0[_b].seen)
{
sub_808DEB0(_b, 0x12, i * 2, c);
- sub_808DF88(gUnknown_0202FFB4->unk0[_b].owned, 0x11, i * 2, c);
- sub_808DFE4(gUnknown_0202FFB4->unk0[_b].a, 0x17, i * 2);
+ sub_808DF88(gPokedexView->unk0[_b].owned, 0x11, i * 2, c);
+ sub_808DFE4(gPokedexView->unk0[_b].dexNum, 0x17, i * 2);
}
else
{
@@ -1041,22 +1126,22 @@ void sub_808DBE8(u8 a, u16 b, u16 c)
{
s16 _b = b - 5;
- if((u16)_b > 385 || gUnknown_0202FFB4->unk0[_b].a == 0xFFFF)
- sub_808E090(0x11, gUnknown_0202FFB4->unk630 * 2, c);
+ if((u16)_b > 385 || gPokedexView->unk0[_b].dexNum == 0xFFFF)
+ sub_808E090(0x11, gPokedexView->unk630 * 2, c);
else
{
- sub_808E090(0x11, gUnknown_0202FFB4->unk630 * 2, c);
- if(gUnknown_0202FFB4->unk0[_b].seen)
+ sub_808E090(0x11, gPokedexView->unk630 * 2, c);
+ if(gPokedexView->unk0[_b].seen)
{
- sub_808DEB0(_b, 0x12, gUnknown_0202FFB4->unk630 * 2, c);
- sub_808DF88(gUnknown_0202FFB4->unk0[_b].owned, 0x11, gUnknown_0202FFB4->unk630 * 2, c);
- sub_808DFE4(gUnknown_0202FFB4->unk0[_b].a, 0x17, gUnknown_0202FFB4->unk630 * 2);
+ sub_808DEB0(_b, 0x12, gPokedexView->unk630 * 2, c);
+ sub_808DF88(gPokedexView->unk0[_b].owned, 0x11, gPokedexView->unk630 * 2, c);
+ sub_808DFE4(gPokedexView->unk0[_b].dexNum, 0x17, gPokedexView->unk630 * 2);
}
else
{
- sub_808DEB0(_b, 0x12, gUnknown_0202FFB4->unk630 * 2, c);
- sub_808DF88(0, 0x11, gUnknown_0202FFB4->unk630 * 2, c);
- sub_808DFE4(0, 0x17, gUnknown_0202FFB4->unk630 * 2);
+ sub_808DEB0(_b, 0x12, gPokedexView->unk630 * 2, c);
+ sub_808DF88(0, 0x11, gPokedexView->unk630 * 2, c);
+ sub_808DFE4(0, 0x17, gPokedexView->unk630 * 2);
}
}
break;
@@ -1064,20 +1149,20 @@ void sub_808DBE8(u8 a, u16 b, u16 c)
case 2:
{
s16 _b = b + 5;
- u16 r2 = gUnknown_0202FFB4->unk630 + 10;
+ u16 r2 = gPokedexView->unk630 + 10;
if(r2 > 15)
r2 -= 16;
- if((u16)_b > 385 || gUnknown_0202FFB4->unk0[_b].a == 0xFFFF)
+ if((u16)_b > 385 || gPokedexView->unk0[_b].dexNum == 0xFFFF)
sub_808E090(0x11, r2 * 2, c);
else
{
sub_808E090(0x11, r2 * 2, c);
- if(gUnknown_0202FFB4->unk0[_b].seen)
+ if(gPokedexView->unk0[_b].seen)
{
sub_808DEB0(_b, 0x12, r2 * 2, c);
- sub_808DF88(gUnknown_0202FFB4->unk0[_b].owned, 0x11, r2 * 2, c);
- sub_808DFE4(gUnknown_0202FFB4->unk0[_b].a, 0x17, r2 * 2);
+ sub_808DF88(gPokedexView->unk0[_b].owned, 0x11, r2 * 2, c);
+ sub_808DFE4(gPokedexView->unk0[_b].dexNum, 0x17, r2 * 2);
}
else
{
@@ -1095,9 +1180,9 @@ void sub_808DEB0(u16 a, u8 b, u8 c, u16 d)
{
u8 text[4];
u16 unk[2];
- u16 r7 = gUnknown_0202FFB4->unk0[a].a;
+ u16 r7 = gPokedexView->unk0[a].dexNum;
- if(gUnknown_0202FFB4->unk612 == 0)
+ if(gPokedexView->dexMode == DEX_MODE_HOENN)
r7 = NationalToHoennOrder(r7);
unk[0] = 0x3FC;
unk[1] = 0x3FD;
@@ -1267,10 +1352,10 @@ void sub_808E0CC(u16 a, u16 b)
u8 spriteId;
for(i = 0; i < 4; i++)
- gUnknown_0202FFB4->unk61E[i] |= 0xFFFF;
- gUnknown_0202FFB4->unk626 = 0xFFFF;
+ gPokedexView->unk61E[i] |= 0xFFFF;
+ gPokedexView->unk626 = 0xFFFF;
sub_808DBE8(0, a, b);
- REG_BG2VOFS = gUnknown_0202FFB4->unk62D;
+ REG_BG2VOFS = gPokedexView->unk62D;
unk = sub_808E888(a - 1);
if(unk != 0xFFFF)
{
@@ -1292,8 +1377,8 @@ void sub_808E0CC(u16 a, u16 b)
gSprites[spriteId].callback = sub_808EE28;
gSprites[spriteId].data5 = 32;
}
- gUnknown_0202FFB4->unk630 = 0;
- gUnknown_0202FFB4->unk632 = 0;
+ gPokedexView->unk630 = 0;
+ gPokedexView->unk632 = 0;
}
bool8 sub_808E208(u8 a, u8 b, u8 c)
@@ -1301,30 +1386,30 @@ bool8 sub_808E208(u8 a, u8 b, u8 c)
u16 i;
u8 foo;
- if(gUnknown_0202FFB4->unk62E)
+ if(gPokedexView->unk62E)
{
- gUnknown_0202FFB4->unk62E--;
+ gPokedexView->unk62E--;
switch(a)
{
case 1:
for(i = 0; i < 4; i++)
{
- if(gUnknown_0202FFB4->unk61E[i] != 0xFFFF)
- gSprites[gUnknown_0202FFB4->unk61E[i]].data5 += b;
+ if(gPokedexView->unk61E[i] != 0xFFFF)
+ gSprites[gPokedexView->unk61E[i]].data5 += b;
}
- foo = 16 * (c - gUnknown_0202FFB4->unk62E) / c;
- REG_BG2VOFS = gUnknown_0202FFB4->unk62D + gUnknown_0202FFB4->unk632 * 16 - foo;
- gUnknown_0202FFB4->unk62C -= gUnknown_0202FFB4->unk628;
+ foo = 16 * (c - gPokedexView->unk62E) / c;
+ REG_BG2VOFS = gPokedexView->unk62D + gPokedexView->unk632 * 16 - foo;
+ gPokedexView->unk62C -= gPokedexView->unk628;
break;
case 2:
for(i = 0; i < 4; i++)
{
- if(gUnknown_0202FFB4->unk61E[i] != 0xFFFF)
- gSprites[gUnknown_0202FFB4->unk61E[i]].data5 -= b;
+ if(gPokedexView->unk61E[i] != 0xFFFF)
+ gSprites[gPokedexView->unk61E[i]].data5 -= b;
}
- foo = 16 * (c - gUnknown_0202FFB4->unk62E) / c;
- REG_BG2VOFS = gUnknown_0202FFB4->unk62D + gUnknown_0202FFB4->unk632 * 16 + foo;
- gUnknown_0202FFB4->unk62C += gUnknown_0202FFB4->unk628;
+ foo = 16 * (c - gPokedexView->unk62E) / c;
+ REG_BG2VOFS = gPokedexView->unk62D + gPokedexView->unk632 * 16 + foo;
+ gPokedexView->unk62C += gPokedexView->unk628;
break;
}
return 0;
@@ -1332,7 +1417,7 @@ bool8 sub_808E208(u8 a, u8 b, u8 c)
//_0808E36C
else
{
- REG_BG2VOFS = gUnknown_0202FFB4->unk62D + gUnknown_0202FFB4->unk630 * 16;
+ REG_BG2VOFS = gPokedexView->unk62D + gPokedexView->unk630 * 16;
return 1;
}
}
@@ -1342,7 +1427,7 @@ void sub_808E398(u8 a, u16 b)
u16 unk;
u8 spriteId;
- gUnknown_0202FFB4->unk632 = gUnknown_0202FFB4->unk630;
+ gPokedexView->unk632 = gPokedexView->unk630;
switch(a)
{
case 1:
@@ -1354,10 +1439,10 @@ void sub_808E398(u8 a, u16 b)
gSprites[spriteId].callback = sub_808EE28;
gSprites[spriteId].data5 = 0xFFC0;
}
- if(gUnknown_0202FFB4->unk630 > 0)
- gUnknown_0202FFB4->unk630--;
+ if(gPokedexView->unk630 > 0)
+ gPokedexView->unk630--;
else
- gUnknown_0202FFB4->unk630 = 0xF;
+ gPokedexView->unk630 = 0xF;
break;
}
case 2:
@@ -1369,10 +1454,10 @@ void sub_808E398(u8 a, u16 b)
gSprites[spriteId].callback = sub_808EE28;
gSprites[spriteId].data5 = 0x40;
}
- if(gUnknown_0202FFB4->unk630 <= 0xE)
- gUnknown_0202FFB4->unk630++;
+ if(gPokedexView->unk630 <= 0xE)
+ gPokedexView->unk630++;
else
- gUnknown_0202FFB4->unk630 = 0;
+ gPokedexView->unk630 = 0;
break;
}
}
@@ -1392,7 +1477,7 @@ u16 sub_808E48C(u16 a, u16 b)
//_0808E4B6
if(gMain.heldKeys & 0x80)
{
- if(a < gUnknown_0202FFB4->unk60C - 1)
+ if(a < gPokedexView->unk60C - 1)
goto _0808E5C4;
}
//_0808E4CE
@@ -1403,69 +1488,69 @@ u16 sub_808E48C(u16 a, u16 b)
//_0808E4E0
for(i = 0; i < 7; i++)
{
- a = sub_8091818(1, a, 0, gUnknown_0202FFB4->unk60C - 1);
+ a = sub_8091818(1, a, 0, gPokedexView->unk60C - 1);
}
- gUnknown_0202FFB4->unk62C += (a - r6) * 16;
+ gPokedexView->unk62C += (a - r6) * 16;
sub_808E82C();
sub_808E0CC(a, 0xE);
- PlaySE(0x6D);
+ PlaySE(SE_Z_PAGE);
goto _0808E5A2;
}
//_0808E53C
- if(!(gMain.newKeys & 0x10) || a >= gUnknown_0202FFB4->unk60C - 1)
+ if(!(gMain.newKeys & 0x10) || a >= gPokedexView->unk60C - 1)
goto _0808E5A2;
r6 = a;
for(i = 0; i < 7; i++)
{
- a = sub_8091818(0, a, 0, gUnknown_0202FFB4->unk60C - 1);
+ a = sub_8091818(0, a, 0, gPokedexView->unk60C - 1);
}
- gUnknown_0202FFB4->unk62C += (a - r6) * 16;
+ gPokedexView->unk62C += (a - r6) * 16;
sub_808E82C();
sub_808E0CC(a, 0xE);
- PlaySE(0x6D);
+ PlaySE(SE_Z_PAGE);
goto _0808E5A2;
_0808E5A2:
if(r10 != 0)
goto _0808E628;
- gUnknown_0202FFB4->unk638 = r10;
+ gPokedexView->unk638 = r10;
return a;
_0808E5C4:
r10 = 2;
- a = sub_8091818(0, a, 0, gUnknown_0202FFB4->unk60C - 1);
+ a = sub_8091818(0, a, 0, gPokedexView->unk60C - 1);
sub_808E398(2, a);
//goto _0808E60E
sub_808DBE8(2, a, b);
- PlaySE(0x6C);
+ PlaySE(SE_Z_SCROLL);
}
//_0808E5E4
else
{
r10 = 1;
- a = sub_8091818(1, a, 0, gUnknown_0202FFB4->unk60C - 1);
+ a = sub_8091818(1, a, 0, gPokedexView->unk60C - 1);
sub_808E398(1, a);
//_0808E60E
sub_808DBE8(1, a, b);
- PlaySE(0x6C);
+ PlaySE(SE_Z_SCROLL);
}
//_0808E60E
goto _0808E5A2;
_0808E628:
- r5 = gUnknown_083A05EC[gUnknown_0202FFB4->unk638 / 4];
- r3 = gUnknown_083A05F1[gUnknown_0202FFB4->unk638 / 4];
- gUnknown_0202FFB4->unk62E = r3;
- gUnknown_0202FFB4->unk636 = r3;
- gUnknown_0202FFB4->unk634 = r5;
- gUnknown_0202FFB4->unk62F = r10;
- gUnknown_0202FFB4->unk628 = r5;
- sub_808E208(gUnknown_0202FFB4->unk62F, gUnknown_0202FFB4->unk634, gUnknown_0202FFB4->unk636);
- if(gUnknown_0202FFB4->unk638 <= 0xB)
- gUnknown_0202FFB4->unk638++;
+ r5 = gUnknown_083A05EC[gPokedexView->unk638 / 4];
+ r3 = gUnknown_083A05F1[gPokedexView->unk638 / 4];
+ gPokedexView->unk62E = r3;
+ gPokedexView->unk636 = r3;
+ gPokedexView->unk634 = r5;
+ gPokedexView->unk62F = r10;
+ gPokedexView->unk628 = r5;
+ sub_808E208(gPokedexView->unk62F, gPokedexView->unk634, gPokedexView->unk636);
+ if(gPokedexView->unk638 <= 0xB)
+ gPokedexView->unk638++;
return a;
}
#else
@@ -1473,262 +1558,262 @@ __attribute__((naked))
u16 sub_808E48C(u16 a, u16 b)
{
asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- lsls r0, 16\n\
- lsrs r7, r0, 16\n\
- lsls r1, 16\n\
- lsrs r4, r1, 16\n\
- movs r0, 0\n\
- mov r10, r0\n\
- ldr r1, _0808E52C\n\
- ldrh r2, [r1, 0x2C]\n\
- movs r0, 0x40\n\
- ands r0, r2\n\
- adds r3, r1, 0\n\
- cmp r0, 0\n\
- beq _0808E4B6\n\
- cmp r7, 0\n\
- beq _0808E4B6\n\
- b _0808E5E4\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ lsls r0, 16\n\
+ lsrs r7, r0, 16\n\
+ lsls r1, 16\n\
+ lsrs r4, r1, 16\n\
+ movs r0, 0\n\
+ mov r10, r0\n\
+ ldr r1, _0808E52C\n\
+ ldrh r2, [r1, 0x2C]\n\
+ movs r0, 0x40\n\
+ ands r0, r2\n\
+ adds r3, r1, 0\n\
+ cmp r0, 0\n\
+ beq _0808E4B6\n\
+ cmp r7, 0\n\
+ beq _0808E4B6\n\
+ b _0808E5E4\n\
_0808E4B6:\n\
- movs r0, 0x80\n\
- ands r0, r2\n\
- cmp r0, 0\n\
- beq _0808E4CE\n\
- ldr r0, _0808E530\n\
- ldr r0, [r0]\n\
- ldr r1, _0808E534\n\
- adds r0, r1\n\
- ldrh r0, [r0]\n\
- subs r0, 0x1\n\
- cmp r7, r0\n\
- blt _0808E5C4\n\
+ movs r0, 0x80\n\
+ ands r0, r2\n\
+ cmp r0, 0\n\
+ beq _0808E4CE\n\
+ ldr r0, _0808E530\n\
+ ldr r0, [r0]\n\
+ ldr r1, _0808E534\n\
+ adds r0, r1\n\
+ ldrh r0, [r0]\n\
+ subs r0, 0x1\n\
+ cmp r7, r0\n\
+ blt _0808E5C4\n\
_0808E4CE:\n\
- ldrh r1, [r3, 0x2E]\n\
- movs r0, 0x20\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0808E53C\n\
- cmp r7, 0\n\
- beq _0808E53C\n\
- adds r6, r7, 0\n\
- movs r4, 0\n\
+ ldrh r1, [r3, 0x2E]\n\
+ movs r0, 0x20\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0808E53C\n\
+ cmp r7, 0\n\
+ beq _0808E53C\n\
+ adds r6, r7, 0\n\
+ movs r4, 0\n\
_0808E4E0:\n\
- ldr r5, _0808E530\n\
- ldr r0, [r5]\n\
- ldr r2, _0808E534\n\
- adds r0, r2\n\
- ldrh r3, [r0]\n\
- subs r3, 0x1\n\
- lsls r3, 16\n\
- lsrs r3, 16\n\
- movs r0, 0x1\n\
- adds r1, r7, 0\n\
- movs r2, 0\n\
- bl sub_8091818\n\
- adds r7, r0, 0\n\
- adds r0, r4, 0x1\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
- cmp r4, 0x6\n\
- bls _0808E4E0\n\
- ldr r1, [r5]\n\
- ldr r3, _0808E538\n\
- adds r1, r3\n\
- subs r0, r7, r6\n\
- lsls r0, 4\n\
- ldrb r2, [r1]\n\
- adds r0, r2\n\
- strb r0, [r1]\n\
- bl sub_808E82C\n\
- adds r0, r7, 0\n\
- movs r1, 0xE\n\
- bl sub_808E0CC\n\
- movs r0, 0x6D\n\
- bl PlaySE\n\
- b _0808E5A2\n\
- .align 2, 0\n\
+ ldr r5, _0808E530\n\
+ ldr r0, [r5]\n\
+ ldr r2, _0808E534\n\
+ adds r0, r2\n\
+ ldrh r3, [r0]\n\
+ subs r3, 0x1\n\
+ lsls r3, 16\n\
+ lsrs r3, 16\n\
+ movs r0, 0x1\n\
+ adds r1, r7, 0\n\
+ movs r2, 0\n\
+ bl sub_8091818\n\
+ adds r7, r0, 0\n\
+ adds r0, r4, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ cmp r4, 0x6\n\
+ bls _0808E4E0\n\
+ ldr r1, [r5]\n\
+ ldr r3, _0808E538\n\
+ adds r1, r3\n\
+ subs r0, r7, r6\n\
+ lsls r0, 4\n\
+ ldrb r2, [r1]\n\
+ adds r0, r2\n\
+ strb r0, [r1]\n\
+ bl sub_808E82C\n\
+ adds r0, r7, 0\n\
+ movs r1, 0xE\n\
+ bl sub_808E0CC\n\
+ movs r0, 0x6D\n\
+ bl PlaySE\n\
+ b _0808E5A2\n\
+ .align 2, 0\n\
_0808E52C: .4byte gMain\n\
-_0808E530: .4byte gUnknown_0202FFB4\n\
+_0808E530: .4byte gPokedexView\n\
_0808E534: .4byte 0x0000060c\n\
_0808E538: .4byte 0x0000062c\n\
_0808E53C:\n\
- ldrh r1, [r3, 0x2E]\n\
- movs r0, 0x10\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0808E5A2\n\
- ldr r0, _0808E5B8\n\
- ldr r0, [r0]\n\
- ldr r3, _0808E5BC\n\
- adds r0, r3\n\
- ldrh r0, [r0]\n\
- subs r0, 0x1\n\
- cmp r7, r0\n\
- bge _0808E5A2\n\
- adds r6, r7, 0\n\
- movs r4, 0\n\
+ ldrh r1, [r3, 0x2E]\n\
+ movs r0, 0x10\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _0808E5A2\n\
+ ldr r0, _0808E5B8\n\
+ ldr r0, [r0]\n\
+ ldr r3, _0808E5BC\n\
+ adds r0, r3\n\
+ ldrh r0, [r0]\n\
+ subs r0, 0x1\n\
+ cmp r7, r0\n\
+ bge _0808E5A2\n\
+ adds r6, r7, 0\n\
+ movs r4, 0\n\
_0808E55A:\n\
- ldr r5, _0808E5B8\n\
- ldr r0, [r5]\n\
- ldr r1, _0808E5BC\n\
- adds r0, r1\n\
- ldrh r3, [r0]\n\
- subs r3, 0x1\n\
- lsls r3, 16\n\
- lsrs r3, 16\n\
- movs r0, 0\n\
- adds r1, r7, 0\n\
- movs r2, 0\n\
- bl sub_8091818\n\
- adds r7, r0, 0\n\
- adds r0, r4, 0x1\n\
- lsls r0, 24\n\
- lsrs r4, r0, 24\n\
- cmp r4, 0x6\n\
- bls _0808E55A\n\
- ldr r1, [r5]\n\
- ldr r2, _0808E5C0\n\
- adds r1, r2\n\
- subs r0, r7, r6\n\
- lsls r0, 4\n\
- ldrb r3, [r1]\n\
- adds r0, r3\n\
- strb r0, [r1]\n\
- bl sub_808E82C\n\
- adds r0, r7, 0\n\
- movs r1, 0xE\n\
- bl sub_808E0CC\n\
- movs r0, 0x6D\n\
- bl PlaySE\n\
+ ldr r5, _0808E5B8\n\
+ ldr r0, [r5]\n\
+ ldr r1, _0808E5BC\n\
+ adds r0, r1\n\
+ ldrh r3, [r0]\n\
+ subs r3, 0x1\n\
+ lsls r3, 16\n\
+ lsrs r3, 16\n\
+ movs r0, 0\n\
+ adds r1, r7, 0\n\
+ movs r2, 0\n\
+ bl sub_8091818\n\
+ adds r7, r0, 0\n\
+ adds r0, r4, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ cmp r4, 0x6\n\
+ bls _0808E55A\n\
+ ldr r1, [r5]\n\
+ ldr r2, _0808E5C0\n\
+ adds r1, r2\n\
+ subs r0, r7, r6\n\
+ lsls r0, 4\n\
+ ldrb r3, [r1]\n\
+ adds r0, r3\n\
+ strb r0, [r1]\n\
+ bl sub_808E82C\n\
+ adds r0, r7, 0\n\
+ movs r1, 0xE\n\
+ bl sub_808E0CC\n\
+ movs r0, 0x6D\n\
+ bl PlaySE\n\
_0808E5A2:\n\
- mov r0, r10\n\
- cmp r0, 0\n\
- bne _0808E628\n\
- ldr r0, _0808E5B8\n\
- ldr r0, [r0]\n\
- movs r1, 0xC7\n\
- lsls r1, 3\n\
- adds r0, r1\n\
- mov r2, r10\n\
- strh r2, [r0]\n\
- b _0808E68E\n\
- .align 2, 0\n\
-_0808E5B8: .4byte gUnknown_0202FFB4\n\
+ mov r0, r10\n\
+ cmp r0, 0\n\
+ bne _0808E628\n\
+ ldr r0, _0808E5B8\n\
+ ldr r0, [r0]\n\
+ movs r1, 0xC7\n\
+ lsls r1, 3\n\
+ adds r0, r1\n\
+ mov r2, r10\n\
+ strh r2, [r0]\n\
+ b _0808E68E\n\
+ .align 2, 0\n\
+_0808E5B8: .4byte gPokedexView\n\
_0808E5BC: .4byte 0x0000060c\n\
_0808E5C0: .4byte 0x0000062c\n\
_0808E5C4:\n\
- movs r3, 0x2\n\
- mov r10, r3\n\
- lsls r3, r0, 16\n\
- lsrs r3, 16\n\
- movs r0, 0\n\
- adds r1, r7, 0\n\
- movs r2, 0\n\
- bl sub_8091818\n\
- adds r7, r0, 0\n\
- movs r0, 0x2\n\
- adds r1, r7, 0\n\
- bl sub_808E398\n\
- movs r0, 0x2\n\
- b _0808E60E\n\
+ movs r3, 0x2\n\
+ mov r10, r3\n\
+ lsls r3, r0, 16\n\
+ lsrs r3, 16\n\
+ movs r0, 0\n\
+ adds r1, r7, 0\n\
+ movs r2, 0\n\
+ bl sub_8091818\n\
+ adds r7, r0, 0\n\
+ movs r0, 0x2\n\
+ adds r1, r7, 0\n\
+ bl sub_808E398\n\
+ movs r0, 0x2\n\
+ b _0808E60E\n\
_0808E5E4:\n\
- movs r0, 0x1\n\
- mov r10, r0\n\
- ldr r0, _0808E620\n\
- ldr r0, [r0]\n\
- ldr r1, _0808E624\n\
- adds r0, r1\n\
- ldrh r3, [r0]\n\
- subs r3, 0x1\n\
- lsls r3, 16\n\
- lsrs r3, 16\n\
- movs r0, 0x1\n\
- adds r1, r7, 0\n\
- movs r2, 0\n\
- bl sub_8091818\n\
- adds r7, r0, 0\n\
- movs r0, 0x1\n\
- adds r1, r7, 0\n\
- bl sub_808E398\n\
- movs r0, 0x1\n\
+ movs r0, 0x1\n\
+ mov r10, r0\n\
+ ldr r0, _0808E620\n\
+ ldr r0, [r0]\n\
+ ldr r1, _0808E624\n\
+ adds r0, r1\n\
+ ldrh r3, [r0]\n\
+ subs r3, 0x1\n\
+ lsls r3, 16\n\
+ lsrs r3, 16\n\
+ movs r0, 0x1\n\
+ adds r1, r7, 0\n\
+ movs r2, 0\n\
+ bl sub_8091818\n\
+ adds r7, r0, 0\n\
+ movs r0, 0x1\n\
+ adds r1, r7, 0\n\
+ bl sub_808E398\n\
+ movs r0, 0x1\n\
_0808E60E:\n\
- adds r1, r7, 0\n\
- adds r2, r4, 0\n\
- bl sub_808DBE8\n\
- movs r0, 0x6C\n\
- bl PlaySE\n\
- b _0808E5A2\n\
- .align 2, 0\n\
-_0808E620: .4byte gUnknown_0202FFB4\n\
+ adds r1, r7, 0\n\
+ adds r2, r4, 0\n\
+ bl sub_808DBE8\n\
+ movs r0, 0x6C\n\
+ bl PlaySE\n\
+ b _0808E5A2\n\
+ .align 2, 0\n\
+_0808E620: .4byte gPokedexView\n\
_0808E624: .4byte 0x0000060c\n\
_0808E628:\n\
- ldr r1, _0808E6A0\n\
- ldr r6, _0808E6A4\n\
- ldr r2, [r6]\n\
- movs r3, 0xC7\n\
- lsls r3, 3\n\
- mov r9, r3\n\
- adds r0, r2, r3\n\
- ldrh r0, [r0]\n\
- lsrs r0, 2\n\
- adds r1, r0, r1\n\
- ldrb r5, [r1]\n\
- ldr r1, _0808E6A8\n\
- adds r0, r1\n\
- ldrb r3, [r0]\n\
- ldr r0, _0808E6AC\n\
- adds r2, r0\n\
- strb r3, [r2]\n\
- ldr r1, [r6]\n\
- ldr r2, _0808E6B0\n\
- mov r8, r2\n\
- adds r0, r1, r2\n\
- strh r3, [r0]\n\
- ldr r4, _0808E6B4\n\
- adds r0, r1, r4\n\
- strh r5, [r0]\n\
- ldr r3, _0808E6B8\n\
- adds r1, r3\n\
- mov r0, r10\n\
- strb r0, [r1]\n\
- ldr r2, [r6]\n\
- lsrs r5, 1\n\
- movs r1, 0xC5\n\
- lsls r1, 3\n\
- adds r0, r2, r1\n\
- strh r5, [r0]\n\
- adds r3, r2, r3\n\
- ldrb r0, [r3]\n\
- adds r4, r2, r4\n\
- ldrb r1, [r4]\n\
- add r2, r8\n\
- ldrb r2, [r2]\n\
- bl sub_808E208\n\
- ldr r0, [r6]\n\
- mov r2, r9\n\
- adds r1, r0, r2\n\
- ldrh r0, [r1]\n\
- cmp r0, 0xB\n\
- bhi _0808E68E\n\
- adds r0, 0x1\n\
- strh r0, [r1]\n\
+ ldr r1, _0808E6A0\n\
+ ldr r6, _0808E6A4\n\
+ ldr r2, [r6]\n\
+ movs r3, 0xC7\n\
+ lsls r3, 3\n\
+ mov r9, r3\n\
+ adds r0, r2, r3\n\
+ ldrh r0, [r0]\n\
+ lsrs r0, 2\n\
+ adds r1, r0, r1\n\
+ ldrb r5, [r1]\n\
+ ldr r1, _0808E6A8\n\
+ adds r0, r1\n\
+ ldrb r3, [r0]\n\
+ ldr r0, _0808E6AC\n\
+ adds r2, r0\n\
+ strb r3, [r2]\n\
+ ldr r1, [r6]\n\
+ ldr r2, _0808E6B0\n\
+ mov r8, r2\n\
+ adds r0, r1, r2\n\
+ strh r3, [r0]\n\
+ ldr r4, _0808E6B4\n\
+ adds r0, r1, r4\n\
+ strh r5, [r0]\n\
+ ldr r3, _0808E6B8\n\
+ adds r1, r3\n\
+ mov r0, r10\n\
+ strb r0, [r1]\n\
+ ldr r2, [r6]\n\
+ lsrs r5, 1\n\
+ movs r1, 0xC5\n\
+ lsls r1, 3\n\
+ adds r0, r2, r1\n\
+ strh r5, [r0]\n\
+ adds r3, r2, r3\n\
+ ldrb r0, [r3]\n\
+ adds r4, r2, r4\n\
+ ldrb r1, [r4]\n\
+ add r2, r8\n\
+ ldrb r2, [r2]\n\
+ bl sub_808E208\n\
+ ldr r0, [r6]\n\
+ mov r2, r9\n\
+ adds r1, r0, r2\n\
+ ldrh r0, [r1]\n\
+ cmp r0, 0xB\n\
+ bhi _0808E68E\n\
+ adds r0, 0x1\n\
+ strh r0, [r1]\n\
_0808E68E:\n\
- adds r0, r7, 0\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r1}\n\
- bx r1\n\
- .align 2, 0\n\
+ adds r0, r7, 0\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r1}\n\
+ bx r1\n\
+ .align 2, 0\n\
_0808E6A0: .4byte gUnknown_083A05EC\n\
-_0808E6A4: .4byte gUnknown_0202FFB4\n\
+_0808E6A4: .4byte gPokedexView\n\
_0808E6A8: .4byte gUnknown_083A05F1\n\
_0808E6AC: .4byte 0x0000062e\n\
_0808E6B0: .4byte 0x00000636\n\
@@ -1744,10 +1829,10 @@ void sub_808E6BC(void)
for(i = 0; i < 4; i++)
{
- u16 spriteId = gUnknown_0202FFB4->unk61E[i];
+ u16 spriteId = gPokedexView->unk61E[i];
if(gSprites[spriteId].pos2.x == 0 && gSprites[spriteId].pos2.y == 0 && spriteId != 0xFFFF)
- gUnknown_0202FFB4->unk626 = spriteId;
+ gPokedexView->unk626 = spriteId;
}
}
@@ -1755,54 +1840,51 @@ u8 sub_808E71C(void)
{
u16 r2;
u16 r3;
- u16 r4 = gUnknown_0202FFB4->unk60E;
+ u16 r4 = gPokedexView->selectedPokemon;
- if((gMain.newKeys & 0x40) && r4)
+ if((gMain.newKeys & DPAD_UP) && r4)
{
r2 = r4;
while(r2 != 0)
{
- r2 = sub_8091818(1, r2, 0, gUnknown_0202FFB4->unk60C - 1);
+ r2 = sub_8091818(1, r2, 0, gPokedexView->unk60C - 1);
- if(gUnknown_0202FFB4->unk0[r2].seen)
+ if(gPokedexView->unk0[r2].seen)
{
- //goto _0808E78C;
r4 = r2;
break;
}
}
- if(gUnknown_0202FFB4->unk60E == r4)
+ if(gPokedexView->selectedPokemon == r4)
return 0;
else
{
- gUnknown_0202FFB4->unk60E = r4;
- //goto _0808E80C
- gUnknown_0202FFB4->unk62C -= 16;
+ gPokedexView->selectedPokemon = r4;
+ gPokedexView->unk62C -= 16;
return 1;
}
}
- //_0808E7A4
- else if((gMain.newKeys & 0x80) && r4 < gUnknown_0202FFB4->unk60C - 1)
+ else if((gMain.newKeys & DPAD_DOWN) && r4 < gPokedexView->unk60C - 1)
{
r2 = r4;
- while(r2 < gUnknown_0202FFB4->unk60C - 1)
+ while(r2 < gPokedexView->unk60C - 1)
{
- r2 = sub_8091818(0, r2, 0, gUnknown_0202FFB4->unk60C - 1);
+ r2 = sub_8091818(0, r2, 0, gPokedexView->unk60C - 1);
- if(gUnknown_0202FFB4->unk0[r2].seen)
+ if(gPokedexView->unk0[r2].seen)
{
r4 = r2;
break;
}
}
- if(gUnknown_0202FFB4->unk60E == r4)
+ if(gPokedexView->selectedPokemon == r4)
return 0;
else
{
- gUnknown_0202FFB4->unk60E = r4;
- gUnknown_0202FFB4->unk62C += 16;
+ gPokedexView->selectedPokemon = r4;
+ gPokedexView->unk62C += 16;
return 1;
}
}
@@ -1815,10 +1897,10 @@ u8 sub_808E82C(void)
for(i = 0; i < 4; i++)
{
- if(gUnknown_0202FFB4->unk61E[i] != 0xFFFF)
+ if(gPokedexView->unk61E[i] != 0xFFFF)
{
- DestroySprite(&gSprites[gUnknown_0202FFB4->unk61E[i]]);
- gUnknown_0202FFB4->unk61E[i] |= 0xFFFF;
+ DestroySprite(&gSprites[gPokedexView->unk61E[i]]);
+ gPokedexView->unk61E[i] |= 0xFFFF;
}
}
return 0;
@@ -1826,10 +1908,10 @@ u8 sub_808E82C(void)
u16 sub_808E888(u16 a1)
{
- if(a1 > 385 || gUnknown_0202FFB4->unk0[a1].a == 0xFFFF)
+ if(a1 > 385 || gPokedexView->unk0[a1].dexNum == 0xFFFF)
return 0xFFFF;
- else if(gUnknown_0202FFB4->unk0[a1].seen)
- return gUnknown_0202FFB4->unk0[a1].a;
+ else if(gPokedexView->unk0[a1].seen)
+ return gPokedexView->unk0[a1].dexNum;
else
return 0;
}
@@ -1840,7 +1922,7 @@ u32 sub_808E8C8(u16 a, u16 b, u16 c)
for(i = 0; i < 4; i++)
{
- if(gUnknown_0202FFB4->unk61E[i] == 0xFFFF)
+ if(gPokedexView->unk61E[i] == 0xFFFF)
{
u8 spriteId = sub_80918EC(a, (s16)b, (s16)c, i);
@@ -1849,7 +1931,7 @@ u32 sub_808E8C8(u16 a, u16 b, u16 c)
gSprites[spriteId].data0 = 0;
gSprites[spriteId].data1 = i;
gSprites[spriteId].data2 = NationalPokedexNumToSpecies(a);
- gUnknown_0202FFB4->unk61E[i] = spriteId;
+ gPokedexView->unk61E[i] = spriteId;
return spriteId;
}
}
@@ -1904,7 +1986,7 @@ void sub_808E978(u8 a)
_a = 0;
spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x1C, 0x30, 1);
- r5 = gUnknown_0202FFB4->unk61A / 100;
+ r5 = gPokedexView->unk61A / 100;
StartSpriteAnim(&gSprites[spriteId], r5);
if(r5 != 0)
_a = 1;
@@ -1912,19 +1994,19 @@ void sub_808E978(u8 a)
gSprites[spriteId].invisible = 1;
spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x22, 0x30, 1);
- r5 = (gUnknown_0202FFB4->unk61A % 100) / 10;
+ r5 = (gPokedexView->unk61A % 100) / 10;
if(r5 != 0 || _a != 0)
StartSpriteAnim(&gSprites[spriteId], r5);
else
gSprites[spriteId].invisible = 1;
spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x28, 0x30, 1);
- r5 = (gUnknown_0202FFB4->unk61A % 100) % 10;
+ r5 = (gPokedexView->unk61A % 100) % 10;
StartSpriteAnim(&gSprites[spriteId], r5);
_a = 0;
spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x1C, 0x50, 1);
- r5 = gUnknown_0202FFB4->unk61C / 100;
+ r5 = gPokedexView->unk61C / 100;
StartSpriteAnim(&gSprites[spriteId], r5);
if(r5 != 0)
_a = 1;
@@ -1932,14 +2014,14 @@ void sub_808E978(u8 a)
gSprites[spriteId].invisible = 1;
spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x22, 0x50, 1);
- r5 = (gUnknown_0202FFB4->unk61C % 100) / 10;
+ r5 = (gPokedexView->unk61C % 100) / 10;
if(r5 != 0 || _a != 0)
StartSpriteAnim(&gSprites[spriteId], r5);
else
gSprites[spriteId].invisible = 1;
spriteId = CreateSprite(&gSpriteTemplate_83A059C, 0x28, 0x50, 1);
- r5 = (gUnknown_0202FFB4->unk61C % 100) % 10;
+ r5 = (gPokedexView->unk61C % 100) % 10;
StartSpriteAnim(&gSprites[spriteId], r5);
spriteId = CreateSprite(&gSpriteTemplate_83A05B4, 0x8C, 0x60, 1);
@@ -1958,10 +2040,11 @@ void nullsub_58(struct Sprite *sprite)
void sub_808ED94(struct Sprite *sprite)
{
- if(gUnknown_0202FFB4->unk64A != 0)
+ if(gPokedexView->unk64A != 0)
DestroySprite(sprite);
}
+//Move Pokemon into position for description page
void sub_808EDB8(struct Sprite *sprite)
{
sprite->oam.priority = 0;
@@ -1988,10 +2071,10 @@ void sub_808EE28(struct Sprite *sprite)
{
u8 data1 = sprite->data1;
- if(gUnknown_0202FFB4->unk64A != 0 && gUnknown_0202FFB4->unk64A != 3)
+ if(gPokedexView->unk64A != 0 && gPokedexView->unk64A != 3)
{
DestroySprite(sprite);
- gUnknown_0202FFB4->unk61E[data1] = 0xFFFF;
+ gPokedexView->unk61E[data1] = 0xFFFF;
}
else
{
@@ -2019,7 +2102,7 @@ void sub_808EE28(struct Sprite *sprite)
if((u16)(sprite->data5 + 0x3F) > 0x7E && sprite->data0 != 0)
{
DestroySprite(sprite);
- gUnknown_0202FFB4->unk61E[data1] = 0xFFFF;
+ gPokedexView->unk61E[data1] = 0xFFFF;
}
}
//_0808EF16
@@ -2027,15 +2110,15 @@ void sub_808EE28(struct Sprite *sprite)
void sub_808EF38(struct Sprite *sprite)
{
- if(gUnknown_0202FFB4->unk64A != 0 && gUnknown_0202FFB4->unk64A != 3)
+ if(gPokedexView->unk64A != 0 && gPokedexView->unk64A != 3)
DestroySprite(sprite);
else
- sprite->pos2.y = gUnknown_0202FFB4->unk60E * 120 / (gUnknown_0202FFB4->unk60C - 1);
+ sprite->pos2.y = gPokedexView->selectedPokemon * 120 / (gPokedexView->unk60C - 1);
}
void sub_808EF8C(struct Sprite *sprite)
{
- if(gUnknown_0202FFB4->unk64A != 0 && gUnknown_0202FFB4->unk64A != 3)
+ if(gPokedexView->unk64A != 0 && gPokedexView->unk64A != 3)
DestroySprite(sprite);
else
{
@@ -2043,7 +2126,7 @@ void sub_808EF8C(struct Sprite *sprite)
if(sprite->data1 != 0)
{
- if(gUnknown_0202FFB4->unk60E == gUnknown_0202FFB4->unk60C - 1)
+ if(gPokedexView->selectedPokemon == gPokedexView->unk60C - 1)
sprite->invisible = 1;
else
sprite->invisible = 0;
@@ -2051,7 +2134,7 @@ void sub_808EF8C(struct Sprite *sprite)
}
else
{
- if(gUnknown_0202FFB4->unk60E == 0)
+ if(gPokedexView->selectedPokemon == 0)
sprite->invisible = 1;
else
sprite->invisible = 0;
@@ -2059,7 +2142,7 @@ void sub_808EF8C(struct Sprite *sprite)
}
sprite->pos2.y = gSineTable[r0] / 64;
sprite->data2 = sprite->data2 + 8;
- if(gUnknown_0202FFB4->unk650 == 0 && gUnknown_0202FFB4->unk654 == 0 && sprite->invisible == 0)
+ if(gPokedexView->menuIsOpen == 0 && gPokedexView->menuY == 0 && sprite->invisible == 0)
sprite->invisible = 0;
else
sprite->invisible = 1;
@@ -2068,29 +2151,1150 @@ void sub_808EF8C(struct Sprite *sprite)
void sub_808F08C(struct Sprite *sprite)
{
- if(gUnknown_0202FFB4->unk64A != 0 && gUnknown_0202FFB4->unk64A != 3)
+ if(gPokedexView->unk64A != 0 && gPokedexView->unk64A != 3)
DestroySprite(sprite);
}
-/*
-//FixMe
+#ifdef NONMATCHING
void sub_808F0B4(struct Sprite *sprite)
{
- if(gUnknown_0202FFB4->unk64A != 0 && gUnknown_0202FFB4->unk64A != 3)
+ if(gPokedexView->unk64A != 0 && gPokedexView->unk64A != 3)
DestroySprite(sprite);
else
{
s16 r3;
- u8 unk = gUnknown_0202FFB4->unk62C + sprite->data1;
+
+ u8 unk = gPokedexView->unk62C + sprite->data1;
u16 foo = gSineTable[unk];
- u16 bar = gSineTable[unk + 0x40];
- u8 unk2 = sprite->data0;
+ //u8 unk2 = sprite->data0;
+ //u16 bar = gSineTable[unk + 0x40];
- SetOamMatrix(unk2, foo, bar, -foo, bar);
+ SetOamMatrix(sprite->data0, foo, gSineTable[unk + 0x40], (-(u16)foo) >> 16, gSineTable[unk + 0x40]);
- r3 = gSineTable[sprite->data1 + gUnknown_0202FFB4->unk62C];
- sprite->pos2.x = gSineTable[sprite->data1 + gUnknown_0202FFB4->unk62C + 0x40] * 5 / 256;
- sprite->pos2.y = r3 / 8;
+ r3 = gSineTable[sprite->data1 + gPokedexView->unk62C];
+ sprite->pos2.x = gSineTable[sprite->data1 + gPokedexView->unk62C + 0x40] * 5 / 256;
+ sprite->pos2.y = r3 * 40 / 256;
+ }
+}
+#else
+__attribute__((naked))
+void sub_808F0B4(struct Sprite *sprite)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ sub sp, 0x4\n\
+ adds r6, r0, 0\n\
+ ldr r1, _0808F0D8 @ =gPokedexView\n\
+ ldr r0, [r1]\n\
+ ldr r2, _0808F0DC @ =0x0000064a\n\
+ adds r0, r2\n\
+ ldrb r0, [r0]\n\
+ adds r7, r1, 0\n\
+ cmp r0, 0\n\
+ beq _0808F0E0\n\
+ cmp r0, 0x3\n\
+ beq _0808F0E0\n\
+ adds r0, r6, 0\n\
+ bl DestroySprite\n\
+ b _0808F158\n\
+ .align 2, 0\n\
+_0808F0D8: .4byte gPokedexView\n\
+_0808F0DC: .4byte 0x0000064a\n\
+_0808F0E0:\n\
+ ldr r0, [r7]\n\
+ ldr r5, _0808F160 @ =0x0000062c\n\
+ adds r0, r5\n\
+ ldrb r1, [r0]\n\
+ ldrh r0, [r6, 0x30]\n\
+ adds r1, r0\n\
+ lsls r1, 24\n\
+ lsrs r1, 24\n\
+ ldr r4, _0808F164 @ =gSineTable\n\
+ lsls r0, r1, 1\n\
+ adds r0, r4\n\
+ ldrh r3, [r0]\n\
+ adds r1, 0x40\n\
+ lsls r1, 1\n\
+ adds r1, r4\n\
+ ldrh r0, [r6, 0x2E]\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ ldrh r1, [r1]\n\
+ lsls r3, 16\n\
+ lsrs r2, r3, 16\n\
+ negs r3, r3\n\
+ lsrs r3, 16\n\
+ str r1, [sp]\n\
+ bl SetOamMatrix\n\
+ ldr r1, [r7]\n\
+ adds r1, r5\n\
+ ldrh r0, [r6, 0x30]\n\
+ adds r0, 0x40\n\
+ ldrb r1, [r1]\n\
+ adds r0, r1\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ lsls r1, r0, 1\n\
+ adds r1, r4\n\
+ ldrh r3, [r1]\n\
+ adds r0, 0x40\n\
+ lsls r0, 1\n\
+ adds r0, r4\n\
+ movs r2, 0\n\
+ ldrsh r1, [r0, r2]\n\
+ lsls r0, r1, 2\n\
+ adds r0, r1\n\
+ lsls r0, 3\n\
+ cmp r0, 0\n\
+ bge _0808F140\n\
+ adds r0, 0xFF\n\
+_0808F140:\n\
+ asrs r0, 8\n\
+ strh r0, [r6, 0x24]\n\
+ lsls r1, r3, 16\n\
+ asrs r1, 16\n\
+ lsls r0, r1, 2\n\
+ adds r0, r1\n\
+ lsls r0, 3\n\
+ cmp r0, 0\n\
+ bge _0808F154\n\
+ adds r0, 0xFF\n\
+_0808F154:\n\
+ asrs r0, 8\n\
+ strh r0, [r6, 0x26]\n\
+_0808F158:\n\
+ add sp, 0x4\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_0808F160: .4byte 0x0000062c\n\
+_0808F164: .4byte gSineTable\n\
+ .syntax divided\n");
+}
+#endif
+
+void sub_808F168(struct Sprite *sprite)
+{
+ if(gPokedexView->unk64A != 0 && gPokedexView->unk64A != 3)
+ DestroySprite(sprite);
+ else
+ {
+ u16 r1 = gPokedexView->unk64A == 0 ? 0x50 : 0x60;
+
+ if(gPokedexView->menuIsOpen != 0 && gPokedexView->menuY == r1)
+ {
+ u8 data2;
+
+ sprite->invisible = 0;
+ sprite->pos2.y = gPokedexView->menuCursorPos * 16;
+ sprite->pos2.x = gSineTable[(u8)sprite->data2] / 64;
+ sprite->data2 += 8;
+ }
+ else
+ sprite->invisible = 1;
+ }
+}
+
+u8 sub_808F210(struct PokedexListItem *item, u8 b)
+{
+ u8 taskId;
+
+ gUnknown_0202FFBC = item;
+ taskId = CreateTask(Task_InitPageScreenMultistep, 0);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 1;
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[3] = 0;
+ gTasks[taskId].data[4] = b;
+ return taskId;
+}
+
+bool8 sub_808F250(u8 taskId)
+{
+ if(gTasks[taskId].data[0] == 0 && gTasks[taskId].func == Task_PageScreenProcessInput)
+ return 0;
+ else
+ return 1;
+}
+
+u8 sub_808F284(struct PokedexListItem *item, u8 b)
+{
+ gUnknown_0202FFBC = item;
+ gTasks[b].data[0] = 1;
+ gTasks[b].data[1] = 0;
+ gTasks[b].data[2] = 0;
+ gTasks[b].data[3] = 0;
+ return b;
+}
+
+void Task_InitPageScreenMultistep(u8 taskId)
+{
+ switch(gMain.state)
+ {
+ case 0:
+ default:
+ if(!gPaletteFade.active)
+ {
+ u16 r2;
+
+ gPokedexView->unk64A = 1;
+ gPokedexView->unk64E = 0;
+ gUnknown_03005CEC = gMain.vblankCallback;
+ SetVBlankCallback(NULL);
+ r2 = 0;
+ if(gTasks[taskId].data[1] != 0)
+ r2 += 0x1000;
+ if(gTasks[taskId].data[2] != 0)
+ r2 |= 0x200;
+ sub_8091060(r2);
+ gMain.state = 1;
+ }
+ break;
+ case 1:
+ LZ77UnCompVram(gPokedexMenu_Gfx, (void *)VRAM);
+ LZ77UnCompVram(gUnknown_08E96BD4, (void *)(VRAM + 0x7800));
+ sub_8091738(gUnknown_0202FFBC->dexNum, 2, 0x3FC);
+ gMain.state++;
+ break;
+ case 2:
+ sub_80904FC(0xD);
+ sub_8090584(gPokedexView->selectedScreen, 0xD);
+ sub_808D640();
+ gMain.state++;
+ break;
+ case 3:
+ SetUpWindowConfig(&gWindowConfig_81E7064);
+ InitMenuWindow(&gWindowConfig_81E7064);
+ gMain.state++;
+ break;
+ case 4:
+ if(gPokedexView->dexMode == DEX_MODE_HOENN)
+ sub_8091154(NationalToHoennOrder(gUnknown_0202FFBC->dexNum), 0xD, 3);
+ else
+ sub_8091154(gUnknown_0202FFBC->dexNum, 0xD, 3);
+ //_0808F45A
+ sub_80911C8(gUnknown_0202FFBC->dexNum, 0x10, 3);
+ MenuPrint(gDexText_UnknownPoke, 11, 5);
+ MenuPrint(gDexText_UnknownHeight, 16, 7);
+ MenuPrint(gDexText_UnknownWeight, 16, 9);
+ if(gUnknown_0202FFBC->owned)
+ {
+ sub_8091304(gPokedexEntries[gUnknown_0202FFBC->dexNum].categoryName, 11, 5);
+ sub_8091458(gPokedexEntries[gUnknown_0202FFBC->dexNum].height, 16, 7);
+ sub_8091564(gPokedexEntries[gUnknown_0202FFBC->dexNum].weight, 16, 9);
+ MenuPrint(gPokedexEntries[gUnknown_0202FFBC->dexNum].descriptionPage1, 2, 13);
+ sub_80917CC(14, 0x3FC);
+ }
+ //_0808F50C
+ else
+ {
+ MenuPrint(gUnknown_083A05F8, 2, 13);
+ LoadPalette(gPlttBufferUnfaded + 1, 0x31, 0x1E);
+ }
+ gMain.state++;
+ break;
+ case 5:
+ if(gTasks[taskId].data[1] == 0)
+ {
+ //_0808F540
+ gTasks[taskId].data[4] = (u16)sub_80918EC(gUnknown_0202FFBC->dexNum, 0x30, 0x38, 0);
+ gSprites[gTasks[taskId].data[4]].oam.priority = 0;
+ }
+ gMain.state++;
+ break;
+ case 6:
+ {
+ u32 r3 = 0;
+
+ if(gTasks[taskId].data[2] != 0)
+ r3 = 0x14;
+ if(gTasks[taskId].data[1] != 0)
+ {
+ r3 |= (1 << (gSprites[gTasks[taskId].data[4]].oam.paletteNum + 0x10));
+ }
+ BeginNormalPaletteFade(~r3, 0, 0x10, 0, 0);
+ SetVBlankCallback(gUnknown_03005CEC);
+ gMain.state++;
+ break;
+ }
+ case 7:
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 0;
+ REG_BG3CNT = 0xF03;
+ REG_BG1CNT = 0xD00;
+ REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON;
+ gMain.state++;
+ break;
+ case 8:
+ if(!gPaletteFade.active)
+ {
+ gMain.state++;
+ if(gTasks[taskId].data[3] == 0)
+ {
+ StopCryAndClearCrySongs();
+ PlayCry2(NationalPokedexNumToSpecies(gUnknown_0202FFBC->dexNum), 0, 0x7D, 0xA);
+ }
+ else
+ gMain.state++;
+ }
+ break;
+ case 9:
+ if(!IsCryPlayingOrClearCrySongs())
+ gMain.state++;
+ break;
+ case 10:
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[2] = 1;
+ gTasks[taskId].data[3] = 1;
+ gTasks[taskId].func = Task_PageScreenProcessInput;
+ gMain.state = 0;
+ break;
+ }
+}
+
+void Task_PageScreenProcessInput(u8 taskId)
+{
+ if (gTasks[taskId].data[0] != 0)
+ {
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ gTasks[taskId].func = sub_808F888;
+ PlaySE(SE_Z_SCROLL);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ gTasks[taskId].func = Task_ClosePageScreen;
+ PlaySE(SE_PC_OFF);
+ }
+ else if (gMain.newKeys & A_BUTTON)
+ {
+ switch (gPokedexView->selectedScreen)
+ {
+ case PAGE_SCREEN:
+ sub_8090C68();
+ break;
+ case AREA_SCREEN:
+ BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0);
+ gTasks[taskId].func = Task_InitAreaScreenMultistep;
+ PlaySE(SE_PIN);
+ break;
+ case CRY_SCREEN:
+ BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0);
+ gTasks[taskId].func = Task_InitCryScreenMultistep;
+ PlaySE(SE_PIN);
+ break;
+ case SIZE_SCREEN:
+ if (!gUnknown_0202FFBC->owned)
+ PlaySE(SE_HAZURE);
+ else
+ {
+ BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0);
+ gTasks[taskId].func = Task_InitSizeScreenMultistep;
+ PlaySE(SE_PIN);
+ }
+ break;
+ }
+ }
+ else if (((gMain.newKeys & DPAD_LEFT)
+ || ((gMain.newKeys & L_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR))
+ && gPokedexView->selectedScreen > 0)
+ {
+ gPokedexView->selectedScreen--;
+ sub_8090584(gPokedexView->selectedScreen, 0xD);
+ PlaySE(SE_Z_PAGE);
+ }
+ else if (((gMain.newKeys & DPAD_RIGHT)
+ || ((gMain.newKeys & R_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR))
+ && gPokedexView->selectedScreen < 3)
+ {
+ gPokedexView->selectedScreen++;
+ sub_8090584(gPokedexView->selectedScreen, 0xD);
+ PlaySE(SE_Z_PAGE);
+ }
+}
+
+void sub_808F888(u8 taskId)
+{
+ if(!gPaletteFade.active)
+ gTasks[taskId].func = Task_InitPageScreenMultistep;
+}
+
+void Task_ClosePageScreen(u8 taskId)
+{
+ if(!gPaletteFade.active)
+ DestroyTask(taskId);
+}
+
+void Task_InitAreaScreenMultistep(u8 taskId)
+{
+ switch (gMain.state)
+ {
+ case 0:
+ default:
+ if (!gPaletteFade.active)
+ {
+ gPokedexView->unk64A = 5;
+ gUnknown_03005CEC = gMain.vblankCallback;
+ SetVBlankCallback(NULL);
+ sub_8091060(0x200);
+ gPokedexView->selectedScreen = AREA_SCREEN;
+ gMain.state = 1;
+ }
+ break;
+ case 1:
+ sub_8090540(0xD);
+ sub_8090644(1, 0xD);
+ sub_808D640();
+ REG_BG1CNT = 0xD00;
+ gMain.state++;
+ break;
+ case 2:
+ ShowPokedexAreaScreen(NationalPokedexNumToSpecies(gUnknown_0202FFBC->dexNum), &gPokedexView->unk64F);
+ SetVBlankCallback(gUnknown_03005CEC);
+ gPokedexView->unk64F = 0;
+ gMain.state = 0;
+ gTasks[taskId].func = Task_AreaScreenProcessInput;
+ break;
+ }
+}
+
+void Task_AreaScreenProcessInput(u8 taskId)
+{
+ if(gPokedexView->unk64F != 0)
+ gTasks[taskId].func = sub_808FA00;
+}
+
+void sub_808FA00(u8 taskId)
+{
+ if(!gPaletteFade.active)
+ {
+ switch(gPokedexView->unk64F)
+ {
+ case 1:
+ default:
+ gTasks[taskId].func = Task_InitPageScreenMultistep;
+ break;
+ case 2:
+ gTasks[taskId].func = Task_InitCryScreenMultistep;
+ break;
+ }
+ }
+}
+
+void Task_InitCryScreenMultistep(u8 taskId)
+{
+ switch(gMain.state)
+ {
+ case 0:
+ default:
+ if(!gPaletteFade.active)
+ {
+ m4aMPlayStop(&gMPlay_BGM);
+ gPokedexView->unk64A = 6;
+ gUnknown_03005CEC = gMain.vblankCallback;
+ SetVBlankCallback(NULL);
+ sub_8091060(0x200);
+ gPokedexView->selectedScreen = CRY_SCREEN;
+ gMain.state = 1;
+ }
+ break;
+ case 1:
+ LZ77UnCompVram(gPokedexMenu_Gfx, (void *)VRAM);
+ LZ77UnCompVram(gUnknown_0839F8A0, (void *)(VRAM + 0x7000));
+ gMain.state++;
+ break;
+ case 2:
+ sub_8090540(0xD);
+ sub_8090644(2, 0xD);
+ sub_808D640();
+ DmaClear16(3, (void *)(VRAM + 0xF800), 0x500);
+ gMain.state++;
+ break;
+ case 3:
+ SetUpWindowConfig(&gWindowConfig_81E702C);
+ InitMenuWindow(&gWindowConfig_81E702C);
+ ResetPaletteFade();
+ gMain.state++;
+ break;
+ case 4:
+ MenuPrint(gDexText_CryOf, 10, 4);
+ sub_8091260(gUnknown_0202FFBC->dexNum, 10, 6, 2);
+ gMain.state++;
+ break;
+ case 5:
+ gTasks[taskId].data[4] = sub_80918EC(gUnknown_0202FFBC->dexNum, 0x30, 0x38, 0);
+ gSprites[gTasks[taskId].data[4]].oam.priority = 0;
+ gUnknown_03005E98 = 0;
+ gMain.state++;
+ break;
+ case 6:
+ {
+ struct CryRelatedStruct sp8;
+
+ sp8.unk0 = 0x4020;
+ sp8.unk2 = 0x1F;
+ sp8.unk3 = 8;
+ sp8.unk5 = 0x1E;
+ sp8.unk4 = 0xC;
+ if(sub_8119E3C(&sp8, 0) != 0)
+ {
+ gMain.state++;
+ gUnknown_03005E98 = 0;
+ }
+ break;
+ }
+ case 7:
+ {
+ struct CryRelatedStruct sp10;
+
+ sp10.unk0 = 0x3000;
+ sp10.unk2 = 0xE;
+ sp10.unk3 = 9;
+ sp10.unk4 = 0x12;
+ sp10.unk5 = 3;
+ if(ShowPokedexCryScreen(&sp10, 1) != 0)
+ {
+ gMain.state++;
+ }
+ break;
+ }
+ case 8:
+ BeginNormalPaletteFade(-0x15, 0, 0x10, 0, 0);
+ SetVBlankCallback(gUnknown_03005CEC);
+ gMain.state++;
+ break;
+ case 9:
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 0;
+ REG_BG2CNT = 0xE02;
+ REG_BG0CNT = 0x1F07;
+ REG_BG1CNT = 0xD00;
+ REG_DISPCNT = 0x1F07 + 0x39;
+ gMain.state++;
+ break;
+ case 10:
+ gPokedexView->unk64F = 0;
+ gMain.state = 0;
+ gTasks[taskId].func = Task_CryScreenProcessInput;
+ break;
+ }
+}
+
+void Task_CryScreenProcessInput(u8 taskId)
+{
+ sub_8119F88(0);
+
+ if (IsCryPlaying())
+ sub_8090040(1);
+ else
+ sub_8090040(0);
+
+ if (gMain.newKeys & A_BUTTON)
+ {
+ sub_8090040(1);
+ sub_811A050(NationalPokedexNumToSpecies(gUnknown_0202FFBC->dexNum));
+ return;
+ }
+ else if (!gPaletteFade.active)
+ {
+ if (gMain.newKeys & B_BUTTON)
+ {
+ BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0);
+ m4aMPlayContinue(&gMPlay_BGM);
+ gPokedexView->unk64F = 1;
+ gTasks[taskId].func = sub_808FFBC;
+ PlaySE(SE_PC_OFF);
+ }
+ else if ((gMain.newKeys & DPAD_LEFT)
+ || ((gMain.newKeys & L_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR))
+ {
+ BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0);
+ m4aMPlayContinue(&gMPlay_BGM);
+ gPokedexView->unk64F = 2;
+ gTasks[taskId].func = sub_808FFBC;
+ PlaySE(SE_Z_PAGE);
+ }
+ else if ((gMain.newKeys & DPAD_RIGHT)
+ || ((gMain.newKeys & R_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR))
+ {
+ if (!gUnknown_0202FFBC->owned)
+ PlaySE(SE_HAZURE);
+ else
+ {
+ BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0);
+ m4aMPlayContinue(&gMPlay_BGM);
+ gPokedexView->unk64F = 3;
+ gTasks[taskId].func = sub_808FFBC;
+ PlaySE(SE_Z_PAGE);
+ }
+ }
+ }
+}
+
+void sub_808FFBC(u8 taskId)
+{
+ if(!gPaletteFade.active)
+ {
+ DestroyCryMeterNeedleSprite();
+ switch(gPokedexView->unk64F)
+ {
+ default:
+ case 1:
+ gTasks[taskId].func = Task_InitPageScreenMultistep;
+ break;
+ case 2:
+ gTasks[taskId].func = Task_InitAreaScreenMultistep;
+ break;
+ case 3:
+ gTasks[taskId].func = Task_InitSizeScreenMultistep;
+ }
+ }
+}
+
+void sub_8090040(u8 a)
+{
+ u16 unk;
+
+ if(a != 0)
+ unk = 0x392;
+ else
+ unk = 0x2AF;
+ LoadPalette(&unk, 0x5D, 2);
+}
+
+void Task_InitSizeScreenMultistep(u8 taskId)
+{
+ u8 spriteId;
+
+ switch(gMain.state)
+ {
+ default:
+ case 0:
+ if(!gPaletteFade.active)
+ {
+ gPokedexView->unk64A = 7;
+ gUnknown_03005CEC = gMain.vblankCallback;
+ SetVBlankCallback(NULL);
+ sub_8091060(0x200);
+ gPokedexView->selectedScreen = SIZE_SCREEN;
+ gMain.state = 1;
+ }
+ break;
+ case 1:
+ LZ77UnCompVram(gPokedexMenu_Gfx, (void *)VRAM);
+ LZ77UnCompVram(gUnknown_0839F988, (void *)(VRAM + 0x7000));
+ gMain.state++;
+ break;
+ case 2:
+ sub_8090540(0xD);
+ sub_8090644(3, 0xD);
+ sub_808D640();
+ gMain.state++;
+ break;
+ case 3:
+ {
+ u8 string[40]; //I hope this is the correct size
+
+ SetUpWindowConfig(&gWindowConfig_81E702C);
+ InitMenuWindow(&gWindowConfig_81E702C);
+ string[0] = EOS;
+ StringAppend(string, gDexText_SizeComparedTo);
+ StringAppend(string, gSaveBlock2.playerName);
+ sub_8072BD8(string, 3, 15, 0xC0);
+ gMain.state++;
+ break;
+ }
+ case 4:
+ ResetPaletteFade();
+ gMain.state++;
+ break;
+ case 5:
+ spriteId = sub_8091A4C(gSaveBlock2.playerGender, 0x98, 0x38, 0);
+ gSprites[spriteId].oam.affineMode = 1;
+ gSprites[spriteId].oam.matrixNum = 1;
+ gSprites[spriteId].oam.priority = 0;
+ gSprites[spriteId].pos2.y = gPokedexEntries[gUnknown_0202FFBC->dexNum].trainerOffset;
+ SetOamMatrix(1, gPokedexEntries[gUnknown_0202FFBC->dexNum].trainerScale, 0, 0, gPokedexEntries[gUnknown_0202FFBC->dexNum].trainerScale);
+ LoadPalette(gUnknown_083B4EC4, (gSprites[spriteId].oam.paletteNum + 16) * 16, 0x20);
+ gMain.state++;
+ break;
+ case 6:
+ spriteId = sub_80918EC(gUnknown_0202FFBC->dexNum, 0x58, 0x38, 1);
+ gSprites[spriteId].oam.affineMode = 1;
+ gSprites[spriteId].oam.matrixNum = 2;
+ gSprites[spriteId].oam.priority = 0;
+ gSprites[spriteId].pos2.y = gPokedexEntries[gUnknown_0202FFBC->dexNum].pokemonOffset;
+ SetOamMatrix(2, gPokedexEntries[gUnknown_0202FFBC->dexNum].pokemonScale, 0, 0, gPokedexEntries[gUnknown_0202FFBC->dexNum].pokemonScale);
+ LoadPalette(gUnknown_083B4EC4, (gSprites[spriteId].oam.paletteNum + 16) * 16, 0x20);
+ gMain.state++;
+ break;
+ case 7:
+ BeginNormalPaletteFade(-0x15, 0, 0x10, 0, 0);
+ SetVBlankCallback(gUnknown_03005CEC);
+ gMain.state++;
+ break;
+ case 8:
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 0;
+ REG_BG2CNT = 0xE03;
+ REG_DISPCNT = 0x1E40;
+ gMain.state++;
+ break;
+ case 9:
+ if(!gPaletteFade.active)
+ {
+ gPokedexView->unk64F = 0;
+ gMain.state = 0;
+ gTasks[taskId].func = Task_SizeScreenProcessInput;
+ }
+ break;
+ }
+}
+
+void Task_SizeScreenProcessInput(u8 taskId)
+{
+ if(gMain.newKeys & B_BUTTON)
+ {
+ BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0);
+ gPokedexView->unk64F = 1;
+ gTasks[taskId].func = sub_8090498;
+ PlaySE(SE_PC_OFF);
+ }
+ //_08090430
+ else if((gMain.newKeys & DPAD_LEFT)
+ || ((gMain.newKeys & L_BUTTON) && gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR))
+ {
+ BeginNormalPaletteFade(-0x15, 0, 0, 0x10, 0);
+ gPokedexView->unk64F = 2;
+ gTasks[taskId].func = sub_8090498;
+ PlaySE(SE_Z_PAGE);
+ }
+}
+
+void sub_8090498(u8 taskId)
+{
+ if(!gPaletteFade.active)
+ {
+ switch(gPokedexView->unk64F)
+ {
+ default:
+ case 1:
+ gTasks[taskId].func = Task_InitPageScreenMultistep;
+ break;
+ case 2:
+ gTasks[taskId].func = Task_InitCryScreenMultistep;
+ break;
+ }
+ }
+}
+
+void sub_80904FC(u16 a)
+{
+ LZ77UnCompVram(gUnknown_08E96ACC, (void *)(VRAM + a * 0x800));
+ DmaClear16(3, (void *)(VRAM + a * 0x800 + 0xC0), 0x440);
+}
+
+void sub_8090540(u16 a)
+{
+ LZ77UnCompVram(gUnknown_08E96B58, (void *)(VRAM + a * 0x800));
+ DmaClear16(3, (void *)(VRAM + a * 0x800 + 0xC0), 0x440);
+}
+
+#ifdef NONMATCHING
+void sub_8090584(u8 a, u16 b)
+{
+ u8 i; //r1
+ u8 j; //r3
+ u32 r6;
+ register u8 r7;
+
+ for(i = 0; i < 4; i++)
+ {
+ r7 = i * 5 + 1;
+ r6 = 0x4000;
+
+ if(i == a)
+ r6 = 0x2000;
+
+ for(j = 0; j < 5; j++)
+ {
+ u32 r0 = b * 0x800 + (r7 + j) * 2;
+ u8 *ptr;
+
+ ptr = VRAM;
+ *(u16 *)(ptr + r0) = *(u16 *)(ptr + r0) & 0xFFF | r6;
+ ptr = VRAM + 0x40;
+ *(u16 *)(ptr + r0) = *(u16 *)(ptr + r0) & 0xFFF | r6;
+ }
+ }
+ r6 = 0x4000;
+ for(j = 0; j < 5; j++)
+ {
+ u32 r0 = b * 0x800 + j * 2;
+ u8 *ptr;
+
+ ptr = VRAM + 0x32;
+ *(u16 *)(ptr + r0) = *(u16 *)(ptr + r0) & 0xFFF | r6;
+ ptr = VRAM + 0x72;
+ *(u16 *)(ptr + r0) = *(u16 *)(ptr + r0) & 0xFFF | r6;
+ }
+}
+#else
+__attribute__((naked))
+void sub_8090584(u8 a, u16 b)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r10, r0\n\
+ lsls r1, 16\n\
+ lsrs r1, 16\n\
+ mov r9, r1\n\
+ movs r1, 0\n\
+_0809059C:\n\
+ lsls r0, r1, 2\n\
+ adds r0, r1\n\
+ adds r0, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r7, r0, 24\n\
+ movs r6, 0x80\n\
+ lsls r6, 7\n\
+ cmp r1, r10\n\
+ bne _080905B2\n\
+ movs r6, 0x80\n\
+ lsls r6, 6\n\
+_080905B2:\n\
+ movs r3, 0\n\
+ mov r0, r9\n\
+ lsls r0, 11\n\
+ mov r12, r0\n\
+ adds r1, 0x1\n\
+ mov r8, r1\n\
+ mov r5, r12\n\
+ ldr r4, _08090634 @ =0x00000fff\n\
+_080905C2:\n\
+ adds r0, r7, r3\n\
+ lsls r0, 1\n\
+ adds r0, r5, r0\n\
+ movs r2, 0xC0\n\
+ lsls r2, 19\n\
+ adds r1, r0, r2\n\
+ ldrh r2, [r1]\n\
+ ands r2, r4\n\
+ orrs r2, r6\n\
+ strh r2, [r1]\n\
+ ldr r1, _08090638 @ =0x06000040\n\
+ adds r0, r1\n\
+ ldrh r2, [r0]\n\
+ ands r2, r4\n\
+ orrs r2, r6\n\
+ strh r2, [r0]\n\
+ adds r0, r3, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r3, r0, 24\n\
+ cmp r3, 0x4\n\
+ bls _080905C2\n\
+ mov r2, r8\n\
+ lsls r0, r2, 24\n\
+ lsrs r1, r0, 24\n\
+ cmp r1, 0x3\n\
+ bls _0809059C\n\
+ movs r6, 0x80\n\
+ lsls r6, 7\n\
+ movs r3, 0\n\
+ mov r5, r12\n\
+ ldr r4, _08090634 @ =0x00000fff\n\
+_08090600:\n\
+ lsls r0, r3, 1\n\
+ adds r0, r5, r0\n\
+ ldr r2, _0809063C @ =0x06000032\n\
+ adds r1, r0, r2\n\
+ ldrh r2, [r1]\n\
+ ands r2, r4\n\
+ orrs r2, r6\n\
+ strh r2, [r1]\n\
+ ldr r1, _08090640 @ =0x06000072\n\
+ adds r0, r1\n\
+ ldrh r2, [r0]\n\
+ ands r2, r4\n\
+ orrs r2, r6\n\
+ strh r2, [r0]\n\
+ adds r0, r3, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r3, r0, 24\n\
+ cmp r3, 0x4\n\
+ bls _08090600\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_08090634: .4byte 0x00000fff\n\
+_08090638: .4byte 0x06000040\n\
+_0809063C: .4byte 0x06000032\n\
+_08090640: .4byte 0x06000072\n\
+ .syntax divided\n");
+}
+#endif
+
+//Nope, can't get this one to match, either.
+#ifdef NONMATCHING
+void sub_8090644(u8 a, u16 b)
+{
+ u8 i;
+ u8 j;
+
+ for(i = 0; i < 4; i++)
+ {
+ u8 r8 = i * 5 + 1;
+ u32 r5;
+
+ if(i == a || i == 0)
+ r5 = 0x2000;
+ else if(a != 0)
+ r5 = 0x4000;
+
+ for(j = 0; j < 5; j++)
+ {
+ u16 (*vramData)[0x400];
+
+ vramData = (u16 (*)[])VRAM;
+ vramData[b][r8 + j] = vramData[b][r8 + j] & 0xFFF | r5;
+ vramData = (u16 (*)[])(VRAM + 0x40);
+ vramData[b][r8 + j] = vramData[b][r8 + j] & 0xFFF | r5;
+ }
+ }
+
+ for(j = 0; j < 5; j++)
+ {
+ u16 (*vramData)[0x400];
+
+ vramData = (u16 (*)[])(VRAM + 0x32);
+ vramData[b][j] = vramData[b][j] & 0xFFF | 0x4000;
+ vramData = (u16 (*)[])(VRAM + 0x72);
+ vramData[b][j] = vramData[b][j] & 0xFFF | 0x4000;
+ }
+}
+#else
+__attribute__((naked))
+void sub_8090644(u8 a, u16 b)
+{
+ asm(".syntax unified\n\
+ push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r10, r0\n\
+ lsls r1, 16\n\
+ lsrs r1, 16\n\
+ mov r9, r1\n\
+ movs r1, 0\n\
+_0809065C:\n\
+ lsls r0, r1, 2\n\
+ adds r0, r1\n\
+ adds r0, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r8, r0\n\
+ cmp r1, r10\n\
+ beq _08090670\n\
+ cmp r1, 0\n\
+ bne _08090676\n\
+_08090670:\n\
+ movs r5, 0x80\n\
+ lsls r5, 6\n\
+ b _0809067A\n\
+_08090676:\n\
+ movs r5, 0x80\n\
+ lsls r5, 7\n\
+_0809067A:\n\
+ movs r3, 0\n\
+ mov r0, r9\n\
+ lsls r7, r0, 11\n\
+ adds r1, 0x1\n\
+ mov r12, r1\n\
+ adds r6, r7, 0\n\
+ ldr r4, _080906FC @ =0x00000fff\n\
+_08090688:\n\
+ mov r1, r8\n\
+ adds r0, r1, r3\n\
+ lsls r0, 1\n\
+ adds r0, r6, r0\n\
+ movs r2, 0xC0\n\
+ lsls r2, 19\n\
+ adds r1, r0, r2\n\
+ ldrh r2, [r1]\n\
+ ands r2, r4\n\
+ orrs r2, r5\n\
+ strh r2, [r1]\n\
+ ldr r1, _08090700 @ =0x06000040\n\
+ adds r0, r1\n\
+ ldrh r2, [r0]\n\
+ ands r2, r4\n\
+ orrs r2, r5\n\
+ strh r2, [r0]\n\
+ adds r0, r3, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r3, r0, 24\n\
+ cmp r3, 0x4\n\
+ bls _08090688\n\
+ mov r2, r12\n\
+ lsls r0, r2, 24\n\
+ lsrs r1, r0, 24\n\
+ cmp r1, 0x3\n\
+ bls _0809065C\n\
+ movs r5, 0x80\n\
+ lsls r5, 7\n\
+ movs r3, 0\n\
+ adds r6, r7, 0\n\
+ ldr r4, _080906FC @ =0x00000fff\n\
+_080906C8:\n\
+ lsls r0, r3, 1\n\
+ adds r0, r6, r0\n\
+ ldr r2, _08090704 @ =0x06000032\n\
+ adds r1, r0, r2\n\
+ ldrh r2, [r1]\n\
+ ands r2, r4\n\
+ orrs r2, r5\n\
+ strh r2, [r1]\n\
+ ldr r1, _08090708 @ =0x06000072\n\
+ adds r0, r1\n\
+ ldrh r2, [r0]\n\
+ ands r2, r4\n\
+ orrs r2, r5\n\
+ strh r2, [r0]\n\
+ adds r0, r3, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r3, r0, 24\n\
+ cmp r3, 0x4\n\
+ bls _080906C8\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080906FC: .4byte 0x00000fff\n\
+_08090700: .4byte 0x06000040\n\
+_08090704: .4byte 0x06000032\n\
+_08090708: .4byte 0x06000072\n\
+ .syntax divided\n");
+}
+#endif
+
+u8 sub_809070C(u16 dexNum, u32 b, u32 c)
+{
+ u8 taskId = CreateTask(sub_8090750, 0);
+
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = dexNum;
+ gTasks[taskId].data[12] = b;
+ gTasks[taskId].data[13] = b >> 16;
+ gTasks[taskId].data[14] = c;
+ gTasks[taskId].data[15] = c >> 16;
+ return taskId;
+}
+
+/*
+void sub_8090750(u8 taskId)
+{
+ u16 dexNum = gTasks[taskId].data[1];
+
+ switch(gTasks[taskId].data[0])
+ {
+ default:
+ case 0:
+ if(!gPaletteFade.active)
+ {
+ gUnknown_03005CEC = gMain.vblankCallback;
+ SetVBlankCallback(NULL);
+ sub_8091060(0x100);
+ gTasks[taskId].data[0] = 1;
+ }
+ break;
+ case 1:
+ {
+ u16 i;
+
+ LZ77UnCompVram(gPokedexMenu_Gfx, (void *)(VRAM + 0x4000));
+ LZ77UnCompVram(gUnknown_08E96BD4, (void *)(VRAM + 0x7800));
+ for(i = 0; i < 0x280; i++)
+ ((u16 *)(VRAM + 0x7800))[i] += 0x2000;
+ sub_8091738(gTasks[taskId].data[1], 2, 0x3FC);
+ ResetPaletteFade();
+ LoadPalette(gPokedexMenu_Pal + 2, 0x21, 0x9E);
+ gTasks[taskId].data[0]++;
+ break;
+ }
+ case 2:
+ SetUpWindowConfig(&gWindowConfig_81E7064);
+ InitMenuWindow(&gWindowConfig_81E7064);
+ DmaClear16(3, (void *)(VRAM + 0xC000), 0x200);
+ gTasks[taskId].data[0]++;
+ break;
+ case 3:
+ sub_8072BD8(gDexText_RegisterComplete, 2, 0, 0xD0);
+ if(!IsNationalPokedex())
+ sub_8091154(NationalToHoennOrder(dexNum), 13, 3);
+ else
+ sub_8091154(dexNum, 13, 3);
+ sub_80911C8(dexNum, 16, 3);
+ MenuPrint(gDexText_UnknownPoke, 11, 5);
+ MenuPrint(gDexText_UnknownHeight, 16, 7);
+ MenuPrint(gDexText_UnknownWeight, 16, 9);
+ sub_8091304(&gPokedexEntries[dexNum], 11, 5);
+ sub_8091458(gPokedexEntries[dexNum].height, 16, 7);
+ sub_8091564(gPokedexEntries[dexNum].weight, 16, 9);
+ MenuPrint(gPokedexEntries[dexNum].descriptionPage1, 2, 13);
+ sub_80917CC(14, 0x3FC);
+ gTasks[taskId].data[0]++;
+ break;
+ case 4:
+ {
+ u8 spriteId = sub_80918EC(dexNum, 0x30, 0x38, 0);
+
+ gSprites[spriteId].oam.priority = 0;
+ BeginNormalPaletteFade(-1, 0, 0x10, 0, 0);
+ SetVBlankCallback(gUnknown_03005CEC);
+ gTasks[taskId].data[3] = spriteId;
+ gTasks[taskId].data[0]++;
+ break;
+ }
+ case 5:
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 0;
+ REG_BG3CNT = 0xF07;
+ REG_DISPCNT = 0x1C40;
+ gTasks[taskId].data[0]++;
+ break;
+ case 6:
+ if(!gPaletteFade.active)
+ {
+ PlayCry1(NationalPokedexNumToSpecies(dexNum), 0);
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[4] = 0;
+ gTasks[taskId].func = sub_8090A3C;
+ }
+ break;
}
}
-*/
+*/ \ No newline at end of file
diff --git a/src/pokemon_2.c b/src/pokemon_2.c
index 588b01168..c8d07f88d 100644
--- a/src/pokemon_2.c
+++ b/src/pokemon_2.c
@@ -6,6 +6,7 @@
#include "main.h"
#include "sprite.h"
#include "berry.h"
+#include "flag.h"
extern u8 gPlayerPartyCount;
extern struct Pokemon gPlayerParty[6];
@@ -52,7 +53,6 @@ extern u8 gHoldEffectToType[][2];
extern u8 battle_side_get_owner(u8);
extern u8 battle_get_side_with_given_state(u8);
extern u32 battle_get_per_side_status(u8);
-extern u8 FlagGet(u16);
extern u8 sub_8018324(u8, u8, u8, u8, u16);
extern u8 sub_803C348(u8);
diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c
new file mode 100644
index 000000000..6381881b7
--- /dev/null
+++ b/src/pokemon_size_record.c
@@ -0,0 +1,195 @@
+#include "gba/gba.h"
+#include "global.h"
+#include "pokemon.h"
+#include "species.h"
+#include "flag.h"
+#include "var.h"
+
+extern u16 SpeciesToNationalPokedexNum(u16);
+extern u16 sub_8090D54(u16, u8);
+
+struct UnknownStruct
+{
+ u16 unk0;
+ u8 unk2;
+ u16 unk4;
+};
+
+extern struct UnknownStruct gUnknown_083D180C[];
+extern u8 gOtherText_DecimalPoint[];
+extern u8 gOtherText_Marco[];
+extern u16 gScriptResult;
+extern u8 gSpeciesNames[][11];
+extern u8 gUnknown_083D188E[];
+
+#define VAR_SHROOMISH_SIZE_RECORD 0x4047
+#define VAR_BARBOACH_SIZE_RECORD 0x404F
+#define CM_PER_INCH 2.54
+
+static u32 GetMonSizeHash(struct Pokemon *pkmn)
+{
+ // UB: Too few arguments for function 'GetMonData'
+ u16 personality = GetMonData(pkmn, MON_DATA_PERSONALITY);
+ u16 hpIV = GetMonData(pkmn, MON_DATA_HP_IV) & 0xF;
+ u16 attackIV = GetMonData(pkmn, MON_DATA_ATK_IV) & 0xF;
+ u16 defenseIV = GetMonData(pkmn, MON_DATA_DEF_IV) & 0xF;
+ u16 speedIV = GetMonData(pkmn, MON_DATA_SPD_IV) & 0xF;
+ u16 spAtkIV = GetMonData(pkmn, MON_DATA_SPATK_IV) & 0xF;
+ u16 spDefIV = GetMonData(pkmn, MON_DATA_SPDEF_IV) & 0xF;
+ u32 hibyte = ((attackIV ^ defenseIV) * hpIV) ^ (personality & 0xFF);
+ u32 lobyte = ((spAtkIV ^ spDefIV) * speedIV) ^ (personality >> 8);
+
+ return (hibyte << 8) + lobyte;
+}
+
+static u8 TranslateBigMonSizeTableIndex(u16 a)
+{
+ u8 i;
+
+ for(i = 1; i < 15; i++)
+ {
+ if(a < gUnknown_083D180C[i].unk4)
+ return i - 1;
+ }
+ return i;
+}
+
+static u32 GetMonSize(u16 species, u16 b)
+{
+ u64 unk2;
+ u64 unk4;
+ u64 unk0;
+ u32 r7;
+ u32 var;
+ struct UnknownStruct *s;
+
+ r7 = sub_8090D54(SpeciesToNationalPokedexNum(species), 0);
+ var = TranslateBigMonSizeTableIndex(b);
+ unk0 = gUnknown_083D180C[var].unk0;
+ unk2 = gUnknown_083D180C[var].unk2;
+ unk4 = gUnknown_083D180C[var].unk4;
+ unk0 += (b - unk4) / unk2;
+ return r7 * unk0 / 10;
+}
+
+static void FormatMonSizeRecord(u8 *string, u32 size)
+{
+ u8 decimalPoint[2];
+
+ memcpy(decimalPoint, gOtherText_DecimalPoint, 2);
+ //Convert size from centimeters to inches
+ size = (double)(size * 10) / (CM_PER_INCH * 10);
+ string = ConvertIntToDecimalStringN(string, size / 10, 0, 8);
+ string = StringAppend(string, decimalPoint);
+ ConvertIntToDecimalStringN(string, size % 10, 0, 1);
+}
+
+static u8 CompareMonSize(u16 species, u16 *sizeRecord)
+{
+ if(gScriptResult == 0xFF)
+ return 0;
+ else
+ {
+ struct Pokemon *pkmn = &gPlayerParty[gScriptResult];
+
+ // UB: Too few arguments for function 'GetMonData'
+ if(GetMonData(pkmn, MON_DATA_IS_EGG) == TRUE || GetMonData(pkmn, MON_DATA_SPECIES) != species)
+ return 1;
+ else
+ {
+ u32 oldSize;
+ u32 newSize;
+ u16 sizeParams;
+ u16 *ptr = &sizeParams; //Why the pointer?
+
+ *ptr = GetMonSizeHash(pkmn);
+ newSize = GetMonSize(species, sizeParams);
+ oldSize = GetMonSize(species, *sizeRecord);
+ FormatMonSizeRecord(gStringVar2, newSize);
+ if(newSize <= oldSize)
+ return 2;
+ else
+ {
+ *sizeRecord = sizeParams;
+ return 3;
+ }
+ }
+ }
+}
+
+//Stores species name in gStringVar1, trainer's name in gStringVar2, and size in gStringVar3
+static void GetMonSizeRecordInfo(u16 species, u16 *sizeRecord)
+{
+ u32 size = GetMonSize(species, *sizeRecord);
+
+ FormatMonSizeRecord(gStringVar3, size);
+ StringCopy(gStringVar1, gSpeciesNames[species]);
+ if(*sizeRecord == 0x8100)
+ StringCopy(gStringVar2, gOtherText_Marco);
+ else
+ StringCopy(gStringVar2, gSaveBlock2.playerName);
+}
+
+void InitShroomishSizeRecord(void)
+{
+ VarSet(VAR_SHROOMISH_SIZE_RECORD, 0x8100);
+}
+
+void GetShroomishSizeRecordInfo(void)
+{
+ u16 *sizeRecord = GetVarPointer(VAR_SHROOMISH_SIZE_RECORD);
+
+ GetMonSizeRecordInfo(SPECIES_SHROOMISH, sizeRecord);
+}
+
+void CompareShroomishSize(void)
+{
+ u16 *sizeRecord = GetVarPointer(VAR_SHROOMISH_SIZE_RECORD);
+
+ gScriptResult = CompareMonSize(SPECIES_SHROOMISH, sizeRecord);
+}
+
+void InitBarboachSizeRecord(void)
+{
+ VarSet(VAR_BARBOACH_SIZE_RECORD, 0x8100);
+}
+
+void GetBarboachSizeRecordInfo(void)
+{
+ u16 *sizeRecord = GetVarPointer(VAR_BARBOACH_SIZE_RECORD);
+
+ GetMonSizeRecordInfo(SPECIES_BARBOACH, sizeRecord);
+}
+
+void CompareBarboachSize(void)
+{
+ u16 *sizeRecord = GetVarPointer(VAR_BARBOACH_SIZE_RECORD);
+
+ gScriptResult = CompareMonSize(SPECIES_BARBOACH, sizeRecord);
+}
+
+void GiveGiftRibbonToParty(u8 index, u8 ribbonId)
+{
+ s32 i;
+ u8 arr[7];
+ bool32 gotRibbon = FALSE;
+ u8 data = 1;
+
+ memcpy(arr, gUnknown_083D188E, 7);
+ if(index < 11 && ribbonId < 65)
+ {
+ gSaveBlock1.giftRibbons[index] = ribbonId;
+ for(i = 0; i < 6; i++)
+ {
+ struct Pokemon *pkmn = &gPlayerParty[i];
+
+ if(GetMonData(pkmn, MON_DATA_SPECIES) != 0 && GetMonData(pkmn, MON_DATA_SANITY_BIT3) == 0)
+ {
+ SetMonData(pkmn, arr[index], &data);
+ gotRibbon = TRUE;
+ }
+ }
+ if(gotRibbon)
+ FlagSet(SYS_RIBBON_GET);
+ }
+}
diff --git a/src/record_mixing.c b/src/record_mixing.c
new file mode 100644
index 000000000..4996dc01f
--- /dev/null
+++ b/src/record_mixing.c
@@ -0,0 +1,735 @@
+#include "global.h"
+#include "link.h"
+#include "menu.h"
+#include "pokemon.h"
+#include "rng.h"
+#include "script.h"
+#include "songs.h"
+#include "sound.h"
+#include "string_util.h"
+#include "task.h"
+#include "flag.h"
+#include "var.h"
+
+extern void *recordMixingSecretBases;
+extern void *recordMixingTvShows;
+extern void *gUnknown_083D0274;
+extern void *gUnknown_083D0278;
+extern void *recordMixingEasyChatPairs;
+extern void *gUnknown_083D0280;
+extern void *gUnknown_083D0284;
+extern u8 gUnknown_083D0288[2];
+extern u8 gUnknown_083D028A[2][3];
+extern u8 gUnknown_083D0290[9][4];
+
+extern u8 gUnknown_02038738[]; //Don't know what type this points to
+extern u16 gSpecialVar_0x8005;
+extern u32 gUnknown_03005D2C;
+extern u8 gUnknown_03000718;
+extern u8 gUnknown_0300071C[];
+extern u8 gOtherText_MixingComplete[];
+extern u8 gOtherText_MixingRecordsWithFriend[];
+extern bool8 gReceivedRemoteLinkPlayers;
+extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE];
+extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS][BLOCK_BUFFER_SIZE / 2];
+
+extern void sub_8083A84(TaskFunc);
+extern void sub_8041324(struct BoxPokemon *, void *);
+extern void sub_80BD674(void *, u32, u8);
+extern void sub_80BFD44(void *, u32, u8);
+extern void sub_80C0514(void *, u32, u8);
+// UB: sub_80FA4E4 declared with 3 arguments instead of 2
+extern void sub_80FA4E4(void *, u32, u8);
+extern void sub_80B9C6C(void *, u32, u8, void *);
+extern void sub_80B9F3C(void *, u8);
+extern u16 sub_8126338(void);
+extern u8 sub_8083664(void);
+extern void sub_80720B0(void);
+extern void CreateRecordMixingSprite(void);
+extern void DestroyRecordMixingSprite(void);
+extern u16 sub_8055588(void);
+extern void sub_80F7F30(void);
+extern void sub_8134AC0(void *);
+
+void sub_80B9484(u8);
+void sub_80B95F0(u8);
+void sub_80BA00C(u8);
+void sub_80B97DC(u8);
+void Task_CopyRecvBuffer(u8);
+void sub_80B9A1C(u8);
+u8 GetMultiplayerId_(void);
+void StorePtrInTaskData(void *, u16 *);
+void *LoadPtrFromTaskData(u16 *);
+void sub_80B9B1C(u8 *, size_t, u8);
+void sub_80B9B70(u8 *, size_t, u8);
+u16 *GetPlayerRecvBuffer(u8 player);
+void sub_80B9A78(void);
+
+#define BUFFER_CHUNK_SIZE 200
+
+void sub_80B929C(void)
+{
+ sub_8083A84(sub_80B9484);
+}
+
+struct PlayerRecords {
+ struct SecretBaseRecord secretBases[20];
+ u8 tvShows[25][36];
+ u8 filler1004[0x40];
+ u8 filler1044[0x40];
+ struct EasyChatPair easyChatPairs[5];
+ u8 filler10AC[0x78];
+ u8 filler1124[0xA4];
+ u16 filler11C8[0x34];
+};
+
+extern struct PlayerRecords unk_2008000;
+extern struct PlayerRecords unk_2018000;
+
+#ifdef NONMATCHING
+void sub_80B92AC(void)
+{
+ sub_80BC300();
+ sub_80C045C();
+
+ memcpy(unk_2018000.secretBases, recordMixingSecretBases, sizeof(unk_2018000.secretBases));
+ memcpy(unk_2018000.tvShows, recordMixingTvShows, sizeof(unk_2018000.tvShows));
+ memcpy(unk_2018000.filler1004, gUnknown_083D0274, 0x40);
+ memcpy(unk_2018000.filler1044, gUnknown_083D0278, 0x40);
+ memcpy(unk_2018000.easyChatPairs, recordMixingEasyChatPairs, 0x28);
+ memcpy(gUnknown_02038738, gSaveBlock1.filler_303C, 0x38);
+ memcpy(gUnknown_02038738 + 0x38, gSaveBlock1.filler_3074, 0x38);
+ sub_8041324(gSaveBlock1.filler_2F9C, gUnknown_02038738);
+ memcpy(unk_2018000.filler10AC, gUnknown_083D0280, 0x78);
+ memcpy(unk_2018000.filler1124, gUnknown_083D0284, 0xA4);
+
+ if(GetMultiplayerId() == 0)
+ unk_2018000.filler11C8[0] = sub_8126338();
+}
+#else
+__attribute__((naked))
+void sub_80B92AC(void)
+{
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ bl sub_80BC300\n\
+ bl sub_80C045C\n\
+ ldr r6, _080B9364 @ =0x02018000\n\
+ ldr r0, _080B9368 @ =recordMixingSecretBases\n\
+ ldr r1, [r0]\n\
+ movs r2, 0xC8\n\
+ lsls r2, 4\n\
+ adds r0, r6, 0\n\
+ bl memcpy\n\
+ movs r1, 0xC8\n\
+ lsls r1, 4\n\
+ adds r0, r6, r1\n\
+ ldr r1, _080B936C @ =recordMixingTvShows\n\
+ ldr r1, [r1]\n\
+ movs r2, 0xE1\n\
+ lsls r2, 2\n\
+ bl memcpy\n\
+ ldr r2, _080B9370 @ =0x00001004\n\
+ adds r0, r6, r2\n\
+ ldr r1, _080B9374 @ =gUnknown_083D0274\n\
+ ldr r1, [r1]\n\
+ movs r2, 0x40\n\
+ bl memcpy\n\
+ ldr r1, _080B9378 @ =0x00001044\n\
+ adds r0, r6, r1\n\
+ ldr r1, _080B937C @ =gUnknown_083D0278\n\
+ ldr r1, [r1]\n\
+ movs r2, 0x40\n\
+ bl memcpy\n\
+ ldr r2, _080B9380 @ =0x00001084\n\
+ adds r0, r6, r2\n\
+ ldr r1, _080B9384 @ =recordMixingEasyChatPairs\n\
+ ldr r1, [r1]\n\
+ movs r2, 0x28\n\
+ bl memcpy\n\
+ ldr r5, _080B9388 @ =gUnknown_02038738\n\
+ ldr r4, _080B938C @ =gSaveBlock1\n\
+ ldr r0, _080B9390 @ =0x0000303c\n\
+ adds r1, r4, r0\n\
+ adds r0, r5, 0\n\
+ movs r2, 0x38\n\
+ bl memcpy\n\
+ ldr r2, _080B9394 @ =0x00003074\n\
+ adds r1, r4, r2\n\
+ adds r0, r5, 0\n\
+ adds r0, 0x38\n\
+ movs r2, 0x38\n\
+ bl memcpy\n\
+ ldr r0, _080B9398 @ =0x00002f9c\n\
+ adds r4, r0\n\
+ adds r0, r4, 0\n\
+ adds r1, r5, 0\n\
+ bl sub_8041324\n\
+ ldr r1, _080B939C @ =0x000010ac\n\
+ adds r0, r6, r1\n\
+ ldr r1, _080B93A0 @ =gUnknown_083D0280\n\
+ ldr r1, [r1]\n\
+ movs r2, 0x78\n\
+ bl memcpy\n\
+ ldr r2, _080B93A4 @ =0x00001124\n\
+ adds r0, r6, r2\n\
+ ldr r1, _080B93A8 @ =gUnknown_083D0284\n\
+ ldr r1, [r1]\n\
+ movs r2, 0xA4\n\
+ bl memcpy\n\
+ bl GetMultiplayerId\n\
+ lsls r0, 24\n\
+ cmp r0, 0\n\
+ bne _080B935C\n\
+ bl sub_8126338\n\
+ ldr r2, _080B93AC @ =0x000011c8\n\
+ adds r1, r6, r2\n\
+ strh r0, [r1]\n\
+_080B935C:\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_080B9364: .4byte 0x02018000\n\
+_080B9368: .4byte recordMixingSecretBases\n\
+_080B936C: .4byte recordMixingTvShows\n\
+_080B9370: .4byte 0x00001004\n\
+_080B9374: .4byte gUnknown_083D0274\n\
+_080B9378: .4byte 0x00001044\n\
+_080B937C: .4byte gUnknown_083D0278\n\
+_080B9380: .4byte 0x00001084\n\
+_080B9384: .4byte recordMixingEasyChatPairs\n\
+_080B9388: .4byte gUnknown_02038738\n\
+_080B938C: .4byte gSaveBlock1\n\
+_080B9390: .4byte 0x0000303c\n\
+_080B9394: .4byte 0x00003074\n\
+_080B9398: .4byte 0x00002f9c\n\
+_080B939C: .4byte 0x000010ac\n\
+_080B93A0: .4byte gUnknown_083D0280\n\
+_080B93A4: .4byte 0x00001124\n\
+_080B93A8: .4byte gUnknown_083D0284\n\
+_080B93AC: .4byte 0x000011c8\n\
+ .syntax divided\n");
+}
+#endif
+
+#undef NONMATCHING
+
+void sub_80B93B0(u32 a)
+{
+ sub_80BD674(unk_2008000.secretBases, sizeof(struct PlayerRecords), a);
+ sub_80BFD44(unk_2008000.tvShows, sizeof(struct PlayerRecords), a);
+ sub_80C0514(unk_2008000.filler1004, sizeof(struct PlayerRecords), a);
+ sub_80B9B1C(unk_2008000.filler1044, sizeof(struct PlayerRecords), a);
+ //UB: Too many arguments for function "sub_80FA4E4"
+ sub_80FA4E4(unk_2008000.easyChatPairs, sizeof(struct PlayerRecords), a);
+ sub_80B9C6C(unk_2008000.filler10AC, sizeof(struct PlayerRecords), a, unk_2008000.tvShows);
+ sub_80B9B70(unk_2008000.filler1124, sizeof(struct PlayerRecords), a);
+ sub_80B9F3C(unk_2008000.filler11C8, a);
+}
+
+void sub_80B9450(u8 taskId)
+{
+ gTasks[taskId].data[0]++;
+ if(gTasks[taskId].data[0] == 50)
+ {
+ PlaySE(SE_W213);
+ gTasks[taskId].data[0] = 0;
+ }
+}
+
+#define TD_STATE 0
+
+void sub_80B9484(u8 taskId)
+{
+ s16 *taskData = gTasks[taskId].data;
+
+ switch(taskData[TD_STATE])
+ {
+ case 0:
+ sub_8007270(gSpecialVar_0x8005);
+ VarSet(0x4000, 1);
+ gUnknown_03000718 = 0;
+ sub_80B92AC();
+ CreateRecordMixingSprite();
+ taskData[TD_STATE] = 1;
+ taskData[10] = CreateTask(sub_80B95F0, 0x50);
+ taskData[15] = CreateTask(sub_80B9450, 0x51);
+ break;
+ case 1:
+ if(!gTasks[taskData[10]].isActive)
+ {
+ taskData[TD_STATE] = 2;
+ FlagSet(SYS_MIX_RECORD);
+ DestroyRecordMixingSprite();
+ DestroyTask(taskData[15]);
+ }
+ break;
+ case 2:
+ taskData[10] = CreateTask(sub_80BA00C, 10);
+ taskData[TD_STATE] = 3;
+ PlaySE(SE_W226);
+ break;
+ case 3:
+ if(!gTasks[taskData[10]].isActive)
+ {
+ taskData[TD_STATE] = 4;
+ taskData[10] = sub_8083664();
+ sub_80720B0();
+ MenuPrint(gOtherText_MixingComplete, 2, 15);
+ taskData[8] = 0;
+ }
+ break;
+ case 4:
+ taskData[8]++;
+ if(taskData[8] > 60)
+ taskData[TD_STATE] = 5;
+ break;
+ case 5:
+ if(!gTasks[taskData[10]].isActive)
+ {
+ sub_8055588();
+ MenuZeroFillScreen();
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+ }
+ break;
+ }
+}
+
+void sub_80B95F0(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ switch(task->data[TD_STATE])
+ {
+ case 0:
+ sub_80B9A78();
+ MenuDisplayMessageBox();
+ MenuPrint(gOtherText_MixingRecordsWithFriend, 2, 15);
+ task->data[8] = 0x708;
+ task->data[TD_STATE] = 0x190;
+ ClearLinkCallback_2();
+ break;
+ case 100:
+ task->data[12]++;
+ if(task->data[12] > 20)
+ {
+ task->data[12] = 0;
+ task->data[TD_STATE] = 101;
+ }
+ break;
+ case 101:
+ {
+ u8 players = GetLinkPlayerCount_2();
+
+ if(IsLinkMaster() == 1)
+ {
+ if(players == sub_800820C())
+ {
+ PlaySE(0x15);
+ task->data[TD_STATE] = 201;
+ task->data[12] = 0;
+ }
+ }
+ else
+ {
+ PlaySE(0x16);
+ task->data[TD_STATE] = 301;
+ }
+ break;
+ }
+ case 201:
+ if(sub_800820C() == GetLinkPlayerCount_2())
+ {
+ if(++task->data[12] > GetLinkPlayerCount_2() * 30)
+ {
+ sub_8007F4C();
+ task->data[TD_STATE] = 1;
+ }
+ }
+ break;
+ case 301:
+ if(sub_800820C() == GetLinkPlayerCount_2())
+ task->data[TD_STATE] = 1;
+ break;
+ case 400:
+ task->data[12]++;
+ if(task->data[12] > 20)
+ {
+ task->data[TD_STATE] = 1;
+ task->data[12] = 0;
+ }
+ break;
+ case 1:
+ if(gReceivedRemoteLinkPlayers)
+ {
+ ConvertIntToDecimalStringN(gStringVar1, GetMultiplayerId_(), 2, 2);
+ task->data[TD_STATE] = 5;
+ }
+ break;
+ case 2:
+ {
+ u8 subTaskId;
+
+ task->data[6] = GetLinkPlayerCount_2();
+ task->data[TD_STATE] = 0;
+ task->data[5] = GetMultiplayerId_();
+ task->func = sub_80B97DC;
+ StorePtrInTaskData(&unk_2018000, &task->data[2]);
+ subTaskId = CreateTask(Task_CopyRecvBuffer, 0x50);
+ task->data[10] = subTaskId;
+ gTasks[subTaskId].data[0] = taskId;
+ //StorePtrInTaskData((void*)0x2008000, &gTasks[subTaskId].data[5]);
+ StorePtrInTaskData((u8 *)&unk_2018000 - 0x10000, &gTasks[subTaskId].data[5]);
+ break;
+ }
+ case 5:
+ task->data[10]++;
+ if(task->data[10] > 60)
+ {
+ task->data[10] = 0;
+ task->data[TD_STATE] = 2;
+ }
+ break;
+ }
+}
+
+void sub_80B97DC(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ switch(task->data[TD_STATE])
+ {
+ case 0: //Copy record data to send buffer
+ {
+ void *recordData = (u8 *)LoadPtrFromTaskData(&task->data[2]) + BUFFER_CHUNK_SIZE * task->data[4];
+
+ memcpy(gBlockSendBuffer, recordData, BUFFER_CHUNK_SIZE);
+ task->data[TD_STATE]++;
+ break;
+ }
+ case 1:
+ if(GetMultiplayerId() == 0)
+ sub_8007E9C(1);
+ task->data[TD_STATE]++;
+ break;
+ case 2:
+ break;
+ case 3:
+ task->data[4]++;
+ if((u16)task->data[4] == 24)
+ task->data[TD_STATE]++;
+ else
+ task->data[TD_STATE] = 0;
+ break;
+ case 4:
+ if(!gTasks[task->data[10]].isActive)
+ task->func = sub_80B9A1C;
+ }
+}
+
+void Task_CopyRecvBuffer(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ s32 recvStatus = GetBlockReceivedStatus();
+ u32 sp8 = 0;
+
+ if(recvStatus == sub_8008198())
+ {
+ u8 player;
+
+ for(player = 0; player < GetLinkPlayerCount(); player++)
+ {
+ //_080B98D4
+ u8 *ptr;
+ void *src;
+ u8 *dst;
+
+ if((recvStatus >> player) & 1)
+ {
+ ptr = LoadPtrFromTaskData(&task->data[5]);
+ dst = ptr + task->data[player + 1] * BUFFER_CHUNK_SIZE + player * sizeof(struct PlayerRecords);
+ src = GetPlayerRecvBuffer(player);
+ if((u32)(task->data[player + 1] + 1) * BUFFER_CHUNK_SIZE > sizeof(struct PlayerRecords))
+ memcpy(dst, src, sizeof(struct PlayerRecords) - task->data[player + 1] * BUFFER_CHUNK_SIZE);
+ else
+ memcpy(dst, src, BUFFER_CHUNK_SIZE);
+ //_080B993C
+ ResetBlockReceivedFlag(player);
+ task->data[player + 1]++;
+ if((u16)task->data[player + 1] == 0x18)
+ sp8 = (u8)(sp8 + 1);
+ }
+ }
+ //line 828
+ gTasks[task->data[0]].data[0]++;
+ }
+ //_080B998A
+ if(sp8 == GetLinkPlayerCount())
+ DestroyTask(taskId);
+}
+
+void sub_80B99B4(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ if(!gTasks[task->data[10]].isActive)
+ DestroyTask(taskId);
+}
+
+void sub_80B99E8(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ task->func = sub_80B99B4;
+ if(gUnknown_03000718 == 1)
+ sub_80B93B0(task->data[5]);
+}
+
+void sub_80B9A1C(u8 taskId)
+{
+ gTasks[taskId].func = sub_80B99E8;
+ gUnknown_03000718 = 1;
+}
+
+void *LoadPtrFromTaskData(u16 *ptr)
+{
+ return (void *)(*ptr | *(ptr + 1) << 16);
+}
+
+void StorePtrInTaskData(void *ptr, u16 *data)
+{
+ *data = (u32)ptr;
+ *(data + 1) = (u32)ptr >> 16;
+}
+
+u8 GetMultiplayerId_(void)
+{
+ return GetMultiplayerId();
+}
+
+u16 *GetPlayerRecvBuffer(u8 player)
+{
+ return gBlockRecvBuffer[player];
+}
+
+void sub_80B9A78(void)
+{
+ gUnknown_03005D2C = sizeof(struct PlayerRecords);
+}
+
+void sub_80B9A88(u8 *a)
+{
+ u32 i;
+ u32 id;
+ u32 players = GetLinkPlayerCount();
+
+ switch(players)
+ {
+ case 2:
+ for(i = 0; i < 2; i++)
+ a[i] = gUnknown_083D0288[i];
+ break;
+ case 3:
+ id = GetLinkPlayerTrainerId(0) % 2;
+ for(i = 0; i < 3; i++)
+ a[i] = gUnknown_083D028A[id][i];
+ break;
+ case 4:
+ id = GetLinkPlayerTrainerId(0) % 9;
+ for(i = 0; i < 4; i++)
+ a[i] = gUnknown_083D0290[id][i];
+ break;
+ default:
+ break;
+ }
+}
+
+void sub_80B9B1C(u8 *a, size_t size, u8 index)
+{
+ u8 arr[4];
+ u8 *ptr;
+
+ sub_80B9A88(arr);
+ //Probably not how it was originally written, but this matches.
+ memcpy(a + index * size, (ptr = gUnknown_083D0278), 0x40);
+ memcpy(ptr, a + arr[index] * size, 0x40);
+ sub_80F7F30();
+}
+
+void sub_80B9B70(u8 *a, size_t size, u8 index)
+{
+ sub_80B9A88(gUnknown_0300071C);
+ memcpy(a + size * index, a + size * gUnknown_0300071C[index], 0xA4);
+ sub_8134AC0(a + size * index);
+}
+
+u8 sub_80B9BBC(u16 *a)
+{
+ return a[16];
+}
+
+#ifdef NONMATCHING
+
+void sub_80B9BC4(u32 a, u32 b, u32 c, u32 d)
+{
+ //ToDo: Figure out what this strange stack usage is
+}
+
+#else
+__attribute__((naked))
+void sub_80B9BC4(u32 a, u32 b, u32 c, u32 d)
+{
+ asm(".syntax unified\n\
+ push {r4-r6,lr}\n\
+ mov r6, r10\n\
+ mov r5, r9\n\
+ mov r4, r8\n\
+ push {r4-r6}\n\
+ sub sp, 0x38\n\
+ mov r8, r0\n\
+ mov r10, r1\n\
+ mov r9, r2\n\
+ adds r4, r3, 0\n\
+ ldr r5, [sp, 0x54]\n\
+ lsls r4, 24\n\
+ lsls r5, 24\n\
+ lsrs r5, 24\n\
+ lsrs r4, 23\n\
+ add r4, r9\n\
+ ldrb r0, [r4]\n\
+ mov r6, r10\n\
+ muls r6, r0\n\
+ add r6, r8\n\
+ ldrb r0, [r4, 0x1]\n\
+ lsls r1, r0, 3\n\
+ subs r1, r0\n\
+ lsls r1, 3\n\
+ adds r1, r6, r1\n\
+ mov r0, sp\n\
+ movs r2, 0x38\n\
+ bl memcpy\n\
+ lsls r5, 1\n\
+ add r5, r9\n\
+ ldrb r0, [r5]\n\
+ mov r1, r10\n\
+ muls r1, r0\n\
+ adds r0, r1, 0\n\
+ add r8, r0\n\
+ ldrb r1, [r4, 0x1]\n\
+ lsls r0, r1, 3\n\
+ subs r0, r1\n\
+ lsls r0, 3\n\
+ adds r6, r0\n\
+ ldrb r0, [r5, 0x1]\n\
+ lsls r1, r0, 3\n\
+ subs r1, r0\n\
+ lsls r1, 3\n\
+ add r1, r8\n\
+ adds r0, r6, 0\n\
+ movs r2, 0x38\n\
+ bl memcpy\n\
+ ldrb r1, [r5, 0x1]\n\
+ lsls r0, r1, 3\n\
+ subs r0, r1\n\
+ lsls r0, 3\n\
+ add r8, r0\n\
+ mov r0, r8\n\
+ mov r1, sp\n\
+ movs r2, 0x38\n\
+ bl memcpy\n\
+ add sp, 0x38\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r6}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .syntax divided\n");
+}
+#endif
+
+u8 sub_80B9C4C(u8 *a)
+{
+ int i;
+ u8 r2 = 0;
+
+ for(i = 0; i < 0x100; i++)
+ r2 += a[i];
+ return r2;
+}
+
+struct UnkStruct1
+{
+ u8 unk0[4];
+ u8 unk4[4];
+ u8 unk8[4];
+ u8 fillerC[0x10];
+ u8 unk1C[4][2];
+ u8 filler24[8];
+ void *unk2C;
+ u32 unk30;
+ u32 unk34;
+ void *unk38;
+ u32 unk3C;
+ u32 unk40;
+ u8 filler44[4];
+ u32 unk48;
+ u32 unk4C;
+ u32 unk50;
+
+};
+
+/*
+//Not finished
+extern void sub_80B9C6C(void *a, u32 b, u8 c, void *d)
+{
+ struct UnkStruct1 s;
+ u16 r8;
+ u16 r3;
+
+ s.unk2C = a;
+ s.unk30 = b;
+ s.unk38 = d;
+ s.unk34 = c;
+ s.unk40 = Random();
+ SeedRng(gLinkPlayers[0].trainerId);
+ r8 = GetLinkPlayerCount();
+ r3 = 0;
+
+ s.unk4C = 12;
+
+ while(r3 < 4)
+ {
+
+ s.unk4[r3] |= 0xFF;
+ s.unk8[r3] = 0;
+
+ s.unk1C[r3][0] = 0;
+ s.unk1C[r3][1] = 0;
+ r3++;
+ }
+ s.unk3C = 0;
+ r3 = 0;
+ s.unk50 = r8 << 16;
+ s.unk48 = s.unk30 * s.unk34;
+
+ if(s.unk3C < r8)
+ {
+ do //_080B9D00
+ {
+ u32 *r6 = (u32 *)(s.unk2C + s.unk30 * r3);
+ if(r6[0x1C] != 0 && r6[0x1C] > 0)
+ {
+
+ }
+ //_080B9D3C
+ }
+ while(r3 < r8);
+ }
+ //_080B9D46
+}
+*/
+
diff --git a/src/rom4.c b/src/rom4.c
index e23e5d2fc..15041cb39 100644
--- a/src/rom4.c
+++ b/src/rom4.c
@@ -9,6 +9,8 @@
#include "text.h"
#include "link.h"
#include "sprite.h"
+#include "flag.h"
+#include "var.h"
#ifdef SAPPHIRE
#define LEGENDARY_MUSIC BGM_OOAME // Heavy Rain
@@ -133,14 +135,12 @@ extern s32 gUnknown_0839ACE8;
extern u32 gUnknown_08216694[];
extern struct UnkWarpStruct *GetHealLocation(u8);
-extern u16 VarGet(u16);
-extern u8 FlagGet(u16);
extern u8 GetSav1Weather(void);
extern void PlayerGetDestCoords(u16 *, u16 *);
extern u8 sub_810D32C(void);
extern u16 GetLocalWildMon(bool8 *);
extern u16 GetMirageIslandMon(void);
-extern void sub_80C76A0(void);
+extern void ExecuteTruckSequence(void);
extern void sub_8080B60(void);
extern void sub_810CC80(void);
extern void sub_8080AC4(void);
@@ -172,7 +172,7 @@ u8 sub_8053B60(struct UnkPlayerStruct *playerStruct, u8, u16, u8);
u8 MetatileBehavior_IsSurfableWaterOrUnderwater(u8);
bool8 sub_8056F24(u8);
bool8 sub_8056F08(u8);
-bool8 sub_8056EAC(u8);
+bool8 MetatileBehavior_IsDoor(u8);
bool8 MetatileBehavior_IsSouthArrowWarp(u8);
bool8 MetatileBehavior_IsNorthArrowWarp(u8);
bool8 MetatileBehavior_IsWestArrowWarp(u8);
@@ -260,47 +260,47 @@ void sub_8052F5C(void)
void flag_var_implications_of_teleport_(void)
{
player_avatar_init_params_reset();
- FlagReset(2091);
- FlagReset(2093);
- FlagReset(2092);
- FlagReset(2089);
- FlagReset(2088);
+ FlagReset(SYS_CYCLING_ROAD);
+ FlagReset(SYS_CRUISE_MODE);
+ FlagReset(SYS_SAFARI_MODE);
+ FlagReset(SYS_USE_STRENGTH);
+ FlagReset(SYS_USE_FLASH);
}
void new_game(void)
{
player_avatar_init_params_reset();
- FlagReset(2091);
- FlagReset(2093);
- FlagReset(2092);
- FlagReset(2089);
- FlagReset(2088);
+ FlagReset(SYS_CYCLING_ROAD);
+ FlagReset(SYS_CRUISE_MODE);
+ FlagReset(SYS_SAFARI_MODE);
+ FlagReset(SYS_USE_STRENGTH);
+ FlagReset(SYS_USE_FLASH);
ScriptContext2_RunNewScript(gUnknown_0819FC9F);
}
void sub_8053014(void)
{
player_avatar_init_params_reset();
- FlagReset(2091);
- FlagReset(2093);
- FlagReset(2092);
- FlagReset(2089);
- FlagReset(2088);
+ FlagReset(SYS_CYCLING_ROAD);
+ FlagReset(SYS_CRUISE_MODE);
+ FlagReset(SYS_SAFARI_MODE);
+ FlagReset(SYS_USE_STRENGTH);
+ FlagReset(SYS_USE_FLASH);
}
void sub_8053050(void)
{
player_avatar_init_params_reset();
- FlagReset(2091);
- FlagReset(2093);
- FlagReset(2092);
- FlagReset(2089);
- FlagReset(2088);
+ FlagReset(SYS_CYCLING_ROAD);
+ FlagReset(SYS_CRUISE_MODE);
+ FlagReset(SYS_SAFARI_MODE);
+ FlagReset(SYS_USE_STRENGTH);
+ FlagReset(SYS_USE_FLASH);
}
void sub_805308C(void)
{
- FlagReset(2092);
+ FlagReset(SYS_SAFARI_MODE);
sub_8054164();
ResetCyclingRoadChallengeData();
mapnumbers_history_shift_sav1_0_2_4_out();
@@ -698,7 +698,7 @@ void sub_8053994(u32 a1)
sub_80806E4();
sub_8054164();
if (v2)
- FlagReset(2088);
+ FlagReset(SYS_USE_FLASH);
sub_8053C98();
sav1_reset_battle_music_maybe();
mapheader_run_script_with_tag_x3();
@@ -748,7 +748,7 @@ struct UnkPlayerStruct *sub_8053AA8(void)
u8 sub_8053B00(struct UnkPlayerStruct *playerStruct, u16 a2, u8 a3)
{
- if (a3 != 8 && FlagGet(2093))
+ if (a3 != 8 && FlagGet(SYS_CRUISE_MODE))
return 1;
if (a3 == 5)
return 16;
@@ -765,11 +765,11 @@ u8 sub_8053B00(struct UnkPlayerStruct *playerStruct, u16 a2, u8 a3)
u8 sub_8053B60(struct UnkPlayerStruct *playerStruct, u8 a2, u16 a3, u8 a4)
{
- if (FlagGet(2093) && a4 == 6)
+ if (FlagGet(SYS_CRUISE_MODE) && a4 == 6)
return 4;
if (sub_8056F24(a3) == TRUE)
return 2;
- if (sub_8056F08(a3) == TRUE || sub_8056EAC(a3) == TRUE)
+ if (sub_8056F08(a3) == TRUE || MetatileBehavior_IsDoor(a3) == TRUE)
return 1;
if (MetatileBehavior_IsSouthArrowWarp(a3) == TRUE)
return 2;
@@ -813,7 +813,7 @@ void sub_8053C98(void)
{
if (!gMapHeader.cave)
gSaveBlock1.flashUsed = 0;
- else if (FlagGet(2088))
+ else if (FlagGet(SYS_USE_FLASH))
gSaveBlock1.flashUsed = 1;
else
gSaveBlock1.flashUsed = gUnknown_0839ACE8;
@@ -839,7 +839,7 @@ void sub_8053D14(u16 mapDataId)
bool16 sub_8053D30(struct WarpData *warp)
{
- if (!FlagGet(2090))
+ if (!FlagGet(SYS_WEATHER_CTRL))
return FALSE;
if (warp->mapGroup != 0)
return FALSE;
@@ -955,7 +955,7 @@ void sav1_reset_battle_music_maybe(void)
void sub_8053F0C(void)
{
- if (FlagGet(16385) != TRUE)
+ if (FlagGet(SPECIAL_FLAG_1) != TRUE)
{
u16 newMusic = warp1_target_get_music();
u16 currentMusic = GetCurrentMapMusic();
@@ -1002,7 +1002,7 @@ u8 is_warp1_light_level_8_or_9(void)
void sub_8053FF8(void)
{
u16 music = warp1_target_get_music();
- if (FlagGet(16385) != TRUE && music != GetCurrentMapMusic())
+ if (FlagGet(SPECIAL_FLAG_1) != TRUE && music != GetCurrentMapMusic())
{
u8 speed = is_warp1_light_level_8_or_9();
FadeOutMapMusic(speed);
@@ -1230,7 +1230,7 @@ void CB2_NewGame(void)
PlayTimeCounter_Start();
ScriptContext1_Init();
ScriptContext2_Disable();
- gUnknown_0300485C = sub_80C76A0;
+ gUnknown_0300485C = ExecuteTruckSequence;
do_load_map_stuff_loop(&gMain.state);
SetFieldVBlankCallback();
set_callback1(c1_overworld);
diff --git a/src/safari_zone.c b/src/safari_zone.c
new file mode 100644
index 000000000..600ba95d2
--- /dev/null
+++ b/src/safari_zone.c
@@ -0,0 +1,256 @@
+#include "global.h"
+#include "flag.h"
+#include "main.h"
+#include "script.h"
+#include "string_util.h"
+
+struct PokeblockFeeder
+{
+ /*0x00*/ s16 x;
+ /*0x02*/ s16 y;
+ /*0x04*/ s8 mapNum;
+ /*0x05*/ u8 stepCounter;
+ /*0x08*/ struct Pokeblock pokeblock;
+};
+
+#define NUM_POKEBLOCK_FEEDERS 10
+
+void ClearAllPokeblockFeeders(void);
+void DecrementFeederStepCounters(void);
+extern void c2_exit_to_overworld_2_switch(void);
+extern void c2_exit_to_overworld_1_continue_scripts_restart_music(void);
+extern void sub_8080E44(void);
+extern void CB2_LoadMap(void);
+extern void sav12_xor_increment(u8);
+extern void warp_in(void);
+extern void GetXYCoordsOneStepInFrontOfPlayer(void *, void *);
+extern void PlayerGetDestCoords(u16 *, u16 *);
+
+extern u8 gUnknown_02024D26;
+
+EWRAM_DATA u8 gNumSafariBalls = 0;
+EWRAM_DATA static u16 gSafariZoneStepCounter = 0;
+EWRAM_DATA static struct PokeblockFeeder gPokeblockFeeders[NUM_POKEBLOCK_FEEDERS] = {0};
+
+extern void (*gUnknown_0300485C)(void);
+
+extern u8 gUnknown_081C340A;
+extern u8 gUnknown_081C342D;
+extern u8 gUnknown_081C3448;
+extern u8 gUnknown_081C3459;
+extern u8 *gPokeblockNames[];
+
+extern u16 gScriptResult;
+
+bool32 GetSafariZoneFlag(void)
+{
+ return FlagGet(SYS_SAFARI_MODE);
+}
+
+void SetSafariZoneFlag(void)
+{
+ FlagSet(SYS_SAFARI_MODE);
+}
+
+void ResetSafariZoneFlag(void)
+{
+ FlagReset(SYS_SAFARI_MODE);
+}
+
+void EnterSafariMode(void)
+{
+ sav12_xor_increment(0x11);
+ SetSafariZoneFlag();
+ ClearAllPokeblockFeeders();
+ gNumSafariBalls = 30;
+ gSafariZoneStepCounter = 500;
+}
+
+void ExitSafariMode(void)
+{
+ ResetSafariZoneFlag();
+ ClearAllPokeblockFeeders();
+ gNumSafariBalls = 0;
+ gSafariZoneStepCounter = 0;
+}
+
+bool8 SafariZoneTakeStep(void)
+{
+ if (GetSafariZoneFlag() == FALSE)
+ {
+ return FALSE;
+ }
+
+ DecrementFeederStepCounters();
+ gSafariZoneStepCounter--;
+ if (gSafariZoneStepCounter == 0)
+ {
+ ScriptContext1_SetupScript(&gUnknown_081C3448);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void SafariZoneRetirePrompt(void)
+{
+ ScriptContext1_SetupScript(&gUnknown_081C342D);
+}
+
+void sub_80C824C(void)
+{
+ if (gNumSafariBalls != 0)
+ {
+ SetMainCallback2(c2_exit_to_overworld_2_switch);
+ }
+ else if (gUnknown_02024D26 == 8)
+ {
+ ScriptContext2_RunNewScript(&gUnknown_081C340A);
+ warp_in();
+ gUnknown_0300485C = sub_8080E44;
+ SetMainCallback2(CB2_LoadMap);
+ }
+ else if (gUnknown_02024D26 == 7)
+ {
+ ScriptContext1_SetupScript(&gUnknown_081C3459);
+ ScriptContext1_Stop();
+ SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
+ }
+}
+
+static void ClearPokeblockFeeder(u8 index)
+{
+ memset(&gPokeblockFeeders[index], 0, sizeof(struct PokeblockFeeder));
+}
+
+static void ClearAllPokeblockFeeders(void)
+{
+ memset(gPokeblockFeeders, 0, sizeof(gPokeblockFeeders));
+}
+
+void SafariZoneGetPokeblockNameInFeeder(void)
+{
+ s16 x, y;
+ u16 i;
+
+ GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
+
+ for (i = 0; i < NUM_POKEBLOCK_FEEDERS; i++)
+ {
+ if (gSaveBlock1.location.mapNum == gPokeblockFeeders[i].mapNum
+ && gPokeblockFeeders[i].x == x
+ && gPokeblockFeeders[i].y == y)
+ {
+ gScriptResult = i;
+ StringCopy(gStringVar1, gPokeblockNames[gPokeblockFeeders[i].pokeblock.color]);
+ return;
+ }
+ }
+
+ gScriptResult = -1;
+}
+
+static void GetPokeblockFeederWithinRange(void)
+{
+ s16 x, y;
+ u16 i;
+
+ PlayerGetDestCoords(&x, &y);
+
+ for (i = 0; i < NUM_POKEBLOCK_FEEDERS; i++)
+ {
+ if (gSaveBlock1.location.mapNum == gPokeblockFeeders[i].mapNum)
+ {
+ //Get absolute value of x and y distance from Pokeblock feeder on current map
+ x -= gPokeblockFeeders[i].x;
+ y -= gPokeblockFeeders[i].y;
+ if (x < 0)
+ x *= -1;
+ if (y < 0)
+ y *= -1;
+ if ((x + y) <= 5)
+ {
+ gScriptResult = i;
+ return;
+ }
+ }
+ }
+
+ gScriptResult = -1;
+}
+
+struct Pokeblock *unref_sub_80C8418(void)
+{
+ SafariZoneGetPokeblockNameInFeeder();
+
+ if (gScriptResult == 0xFFFF)
+ return NULL;
+ else
+ return &gPokeblockFeeders[gScriptResult].pokeblock;
+}
+
+
+struct Pokeblock *SafariZoneGetActivePokeblock(void)
+{
+ GetPokeblockFeederWithinRange();
+
+ if (gScriptResult == 0xFFFF)
+ return NULL;
+ else
+ return &gPokeblockFeeders[gScriptResult].pokeblock;
+}
+
+
+void SafariZoneActivatePokeblockFeeder(u8 pokeblock_index)
+{
+ s16 x, y;
+ u8 i;
+
+ for (i = 0; i < NUM_POKEBLOCK_FEEDERS; i++)
+ {
+ //Find free entry in gPokeblockFeeders
+ if (gPokeblockFeeders[i].mapNum == 0
+ && gPokeblockFeeders[i].x == 0
+ && gPokeblockFeeders[i].y == 0)
+ {
+ //Initialize Pokeblock feeder
+ GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
+ gPokeblockFeeders[i].mapNum = gSaveBlock1.location.mapNum;
+ gPokeblockFeeders[i].pokeblock = gSaveBlock1.pokeblocks[pokeblock_index];
+ gPokeblockFeeders[i].stepCounter = 100;
+ gPokeblockFeeders[i].x = x;
+ gPokeblockFeeders[i].y = y;
+ break;
+ }
+ }
+}
+
+static void DecrementFeederStepCounters(void)
+{
+ u8 i;
+
+ for (i = 0; i < NUM_POKEBLOCK_FEEDERS; i++)
+ {
+ if (gPokeblockFeeders[i].stepCounter != 0)
+ {
+ gPokeblockFeeders[i].stepCounter--;
+ if (gPokeblockFeeders[i].stepCounter == 0)
+ ClearPokeblockFeeder(i);
+ }
+ }
+}
+
+bool8 unref_sub_80C853C(void)
+{
+ SafariZoneGetPokeblockNameInFeeder();
+
+ if (gScriptResult == 0xFFFF)
+ {
+ return FALSE;
+ }
+
+ ConvertIntToDecimalStringN(gStringVar2,
+ gPokeblockFeeders[gScriptResult].stepCounter,
+ STR_CONV_MODE_LEADING_ZEROS, 3);
+
+ return TRUE;
+}
diff --git a/src/save_menu_util.c b/src/save_menu_util.c
index c5c00500e..c811f5244 100644
--- a/src/save_menu_util.c
+++ b/src/save_menu_util.c
@@ -1,7 +1,7 @@
#include "global.h"
#include "menu.h"
+#include "flag.h"
-extern u8 FlagGet(u16);
extern u8 gOtherText_Player[];
extern u8 gOtherText_Badges[];
extern u8 gOtherText_Pokedex[];
@@ -25,7 +25,7 @@ void HandleDrawSaveWindowInfo(s16 left, s16 top)
if (sub_809473C())
width = 13;
- if (FlagGet(2049)) // player has Pokédex?
+ if (FlagGet(SYS_POKEDEX_GET))
{
// print info + dex information.
MenuDrawTextWindow(left, top, left + width, top + 11);
@@ -53,7 +53,7 @@ void sub_80946C8(u16 left, u16 top)
if (sub_809473C())
width = 13;
- if (FlagGet(2049)) // player has Pokédex?
+ if (FlagGet(SYS_POKEDEX_GET))
MenuZeroFillWindowRect(left, top, left + width, top + 11);
else
MenuZeroFillWindowRect(left, top, left + width, top + 9);
@@ -73,7 +73,7 @@ void PrintSavePlayerName(s16 x, s16 y)
void PrintSaveMapName(s16 x, s16 y)
{
char name[32];
-
+
CopyMapName(name, gMapHeader.name);
MenuPrint(name, x, y);
}
@@ -82,7 +82,7 @@ void PrintSaveBadges(s16 x, s16 y)
{
char badges[16];
u8 badgeCount;
-
+
MenuPrint(gOtherText_Badges, x, y);
badgeCount = GetBadgeCount();
ConvertIntToDecimalString(badges, badgeCount);
@@ -93,7 +93,7 @@ void PrintSavePokedexCount(s16 x, s16 y)
{
char pokedex[16];
u16 pokedexCount;
-
+
MenuPrint(gOtherText_Pokedex, x, y);
pokedexCount = GetPokedexSeenCount();
ConvertIntToDecimalStringN(pokedex, pokedexCount, 1, 3);
@@ -103,7 +103,7 @@ void PrintSavePokedexCount(s16 x, s16 y)
void PrintSavePlayTime(s16 x, s16 y)
{
char playtime[16];
-
+
MenuPrint(gOtherText_PlayTime, x, y);
FormatPlayTime(playtime, gSaveBlock2.playTimeHours, gSaveBlock2.playTimeMinutes, 1);
MenuPrint_RightAligned(playtime, x + 12, y);
@@ -112,26 +112,24 @@ void PrintSavePlayTime(s16 x, s16 y)
u8 GetBadgeCount(void)
{
u8 badgeCount = 0;
- int badgeFlag = 0x807; // first badge flag is located here.
-
- for(;badgeFlag <= 0x80E; badgeFlag++)
- {
- if ( FlagGet(badgeFlag) )
+ int badgeFlag;
+
+ for (badgeFlag = BADGE01_GET; badgeFlag <= BADGE08_GET; badgeFlag++)
+ if (FlagGet(badgeFlag))
badgeCount++;
- }
-
+
return badgeCount;
}
u16 GetPokedexSeenCount()
{
u16 pokedexSeenCount;
-
- if ( IsNationalPokedex() ) // national dex check?
+
+ if (IsNationalPokedex())
pokedexSeenCount = GetNationalPokedexCount(1);
else
pokedexSeenCount = GetHoennPokedexCount(1);
-
+
return pokedexSeenCount;
}
@@ -139,18 +137,18 @@ void FormatPlayTime(char *playtime, u16 hours, u16 minutes, u16 unk)
{
s16 colon = unk;
playtime = ConvertIntToDecimalString(playtime, hours);
-
+
// playtime[0] is hours.
// playtime[1] is the character to render between hours and minutes.
// playtime[2] is minutes.
-
+
playtime[0] = 0;
-
+
if (colon)
playtime[1] = 0xF0; // set middle character to ":"
else
playtime[1] = 0;
-
+
playtime[2] = 0;
playtime += 3;
diff --git a/src/scrcmd.c b/src/scrcmd.c
index d25ce88e0..9d6f36a54 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -11,10 +11,10 @@
#include "field_message_box.h"
#include "sound.h"
#include "string_util.h"
+#include "flag.h"
+#include "var.h"
extern void ClearRamScript(void);
-extern u16 *GetVarPointer(u16);
-extern u16 VarGet(u16);
extern void sub_8126160(u8);
extern u8 AddBagItem(u16, u16);
extern u8 RemoveBagItem(u16, u16);
@@ -27,9 +27,6 @@ extern u8 IsThereStorageSpaceForDecoration(u8);
extern s8 sub_81340A8(u8);
extern u8 sub_8134074(u8);
extern u8 sub_8133FE4(u8);
-extern void FlagSet(u16);
-extern void FlagReset(u16);
-extern u8 FlagGet(u16);
extern void sav12_xor_increment(u8);
extern void sub_8081594(u8);
extern void sub_8053CE4(u32);
@@ -115,7 +112,7 @@ extern void CreatePokemartMenu(void *);
extern void CreateDecorationShop1Menu(void *);
extern void CreateDecorationShop2Menu(void *);
extern void PlaySlotMachine(u8, void *);
-extern void PlantBerryTree(u8, u8, u8, u8);
+extern void PlantBerryTree(u8, u8, u8, bool8);
extern bool8 GetPriceReduction(u8);
extern void sub_80F99CC(void);
extern void sub_80C48C8(void);
@@ -126,11 +123,11 @@ extern bool8 FieldEffectActiveListContains(u8);
extern void sub_8053588(u8);
extern void MapGridSetMetatileIdAt(u32, u32, u16);
extern u16 sub_8058790(u32, u32);
-extern bool8 task_overworld_door_add_if_role_69_for_opening_door_at(u32, u32);
-extern bool8 sub_805870C(u32, u32);
-extern bool8 sub_805877C(void);
-extern void sub_80586B4(u32, u32);
-extern void sub_80586E0(u32, u32);
+extern bool8 FieldAnimateDoorOpen(u32, u32);
+extern bool8 FieldAnimateDoorClose(u32, u32);
+extern bool8 FieldIsDoorAnimationRunning(void);
+extern void FieldSetDoorOpened(u32, u32);
+extern void FieldSetDoorClosed(u32, u32);
extern void ScriptAddElevatorMenuItem(u8, u8, u8, u8);
extern void ScriptShowElevatorMenu(void);
extern u16 GetCoins(void);
@@ -155,16 +152,16 @@ extern u16 gUnknown_0202E8B6;
extern u16 gUnknown_0202E8B8;
extern u16 gUnknown_0202E8BA;
extern u16 gUnknown_0202E8BC;
-extern u16 gUnknown_0202E8C4;
-extern u16 gUnknown_0202E8C6;
-extern u16 gUnknown_0202E8C8;
-extern u16 gUnknown_0202E8CC;
+extern u16 gSpecialVar_0x8000;
+extern u16 gSpecialVar_0x8001;
+extern u16 gSpecialVar_0x8002;
+extern u16 gSpecialVar_0x8004;
extern u16 gScriptResult;
extern u32 gUnknown_0202FF84[];
-extern u16 gUnknown_0203869C;
+extern u16 gScriptContestCategory;
extern SpecialFunc gSpecials[];
extern u8 *gStdScripts[];
@@ -717,9 +714,9 @@ bool8 ScrCmd_checkdailyflags(struct ScriptContext *ctx)
bool8 ScrCmd_resetvars(struct ScriptContext *ctx)
{
RtcCalcLocalTime();
- gUnknown_0202E8C4 = gLocalTime.hours;
- gUnknown_0202E8C6 = gLocalTime.minutes;
- gUnknown_0202E8C8 = gLocalTime.seconds;
+ gSpecialVar_0x8000 = gLocalTime.hours;
+ gSpecialVar_0x8001 = gLocalTime.minutes;
+ gSpecialVar_0x8002 = gLocalTime.seconds;
return FALSE;
}
@@ -1574,7 +1571,7 @@ bool8 ScrCmd_checkattack(struct ScriptContext *ctx)
if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) && pokemon_has_move(&gPlayerParty[i], moveId) == TRUE)
{
gScriptResult = i;
- gUnknown_0202E8CC = species;
+ gSpecialVar_0x8004 = species;
break;
}
}
@@ -1759,9 +1756,9 @@ bool8 ScrCmd_event_8a(struct ScriptContext *ctx)
u8 v3 = ScriptReadByte(ctx);
u8 v4 = ScriptReadByte(ctx);
if (!v3)
- PlantBerryTree(v2, 0, v4, 0);
+ PlantBerryTree(v2, 0, v4, FALSE);
else
- PlantBerryTree(v2, v3, v4, 0);
+ PlantBerryTree(v2, v3, v4, FALSE);
return FALSE;
}
@@ -1795,7 +1792,7 @@ bool8 ScrCmd_showcontestresults(struct ScriptContext *ctx)
bool8 ScrCmd_contestlinktransfer(struct ScriptContext *ctx)
{
- sub_80C4980(gUnknown_0203869C);
+ sub_80C4980(gScriptContestCategory);
ScriptContext1_Stop();
return TRUE;
}
@@ -1874,28 +1871,28 @@ bool8 ScrCmd_setmaptile(struct ScriptContext *ctx)
bool8 ScrCmd_setdooropened(struct ScriptContext *ctx)
{
- u16 v3 = VarGet(ScriptReadHalfword(ctx));
- u16 v4 = VarGet(ScriptReadHalfword(ctx));
- v3 += 7;
- v4 += 7;
- PlaySE(sub_8058790(v3, v4));
- task_overworld_door_add_if_role_69_for_opening_door_at(v3, v4);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+ x += 7;
+ y += 7;
+ PlaySE(sub_8058790(x, y));
+ FieldAnimateDoorOpen(x, y);
return FALSE;
}
bool8 ScrCmd_setdoorclosed(struct ScriptContext *ctx)
{
- u16 v3 = VarGet(ScriptReadHalfword(ctx));
- u16 v5 = VarGet(ScriptReadHalfword(ctx));
- v3 += 7;
- v5 += 7;
- sub_805870C(v3, v5);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+ x += 7;
+ y += 7;
+ FieldAnimateDoorClose(x, y);
return FALSE;
}
-bool8 sub_8067D2C()
+bool8 IsDoorAnimationStopped()
{
- if (!sub_805877C())
+ if (!FieldIsDoorAnimationRunning())
return TRUE;
else
return FALSE;
@@ -1903,27 +1900,27 @@ bool8 sub_8067D2C()
bool8 ScrCmd_doorchange(struct ScriptContext *ctx)
{
- SetupNativeScript(ctx, sub_8067D2C);
+ SetupNativeScript(ctx, IsDoorAnimationStopped);
return TRUE;
}
bool8 ScrCmd_setdooropened2(struct ScriptContext *ctx)
{
- u16 v3 = VarGet(ScriptReadHalfword(ctx));
- u16 v5 = VarGet(ScriptReadHalfword(ctx));
- v3 += 7;
- v5 += 7;
- sub_80586B4(v3, v5);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+ x += 7;
+ y += 7;
+ FieldSetDoorOpened(x, y);
return FALSE;
}
bool8 ScrCmd_setdoorclosed2(struct ScriptContext *ctx)
{
- u16 v3 = VarGet(ScriptReadHalfword(ctx));
- u16 v5 = VarGet(ScriptReadHalfword(ctx));
- v3 += 7;
- v5 += 7;
- sub_80586E0(v3, v5);
+ u16 x = VarGet(ScriptReadHalfword(ctx));
+ u16 y = VarGet(ScriptReadHalfword(ctx));
+ x += 7;
+ y += 7;
+ FieldSetDoorClosed(x, y);
return FALSE;
}
diff --git a/src/script.c b/src/script.c
index fdce4f7d2..8e07a580e 100644
--- a/src/script.c
+++ b/src/script.c
@@ -1,11 +1,10 @@
#include "global.h"
#include "script.h"
#include "fieldmap.h"
+#include "var.h"
#define RAM_SCRIPT_MAGIC 51
-extern u16 VarGet(u16);
-
extern u8 *gUnknown_0202E8AC;
extern u32 gUnknown_0202E8B0;
diff --git a/src/sprite.c b/src/sprite.c
index 7a654472c..12c62145e 100644
--- a/src/sprite.c
+++ b/src/sprite.c
@@ -530,7 +530,7 @@ static void AddSpritesToOamBuffer(void)
}
}
-u8 CreateSprite(struct SpriteTemplate *template, u16 x, u16 y, u8 subpriority)
+u8 CreateSprite(struct SpriteTemplate *template, s16 x, s16 y, u8 subpriority)
{
u8 i;
diff --git a/src/start_menu.c b/src/start_menu.c
index 3c5971dd4..c8e77af66 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -8,6 +8,7 @@
#include "sprite.h"
#include "string_util.h"
#include "task.h"
+#include "flag.h"
//External functions
extern void sub_8064E2C(void);
@@ -25,7 +26,7 @@ extern void save_serialize_map(void);
extern void PlayRainSoundEffect(void);
extern void sub_8093130(u8, void (*)(void));
extern void sub_805469C(void);
-extern void sub_80C823C(void);
+extern void SafariZoneRetirePrompt(void);
extern void CB2_InitOptionMenu(void);
extern void sub_8093110(void (*)(void));
extern void sub_80EBA5C(void);
@@ -40,7 +41,6 @@ extern void sub_80597F4(void);
extern void player_bitmagic(void);
extern bool32 GetSafariZoneFlag(void);
extern u8 *sub_8072C44(u8 *, s32, u8, u8);
-extern u8 FlagGet(u16);
extern bool32 is_c1_link_related_active(void);
//Menu actions
@@ -72,7 +72,7 @@ extern u16 gScriptResult;
extern u8 (*gCallback_03004AE8)(void);
extern u8 gUnknown_03004860;
extern struct MenuItem gStartMenuItems[];
-extern u8 gUnknown_02038808;
+extern u8 gNumSafariBalls;
EWRAM_DATA static u8 sStartMenuCursorPos = 0;
EWRAM_DATA static u8 sNumStartMenuActions = 0;
@@ -170,12 +170,12 @@ static void AddStartMenuAction(u8 action)
static void BuildStartMenuActions_Normal(void)
{
- if(FlagGet(0x801) == TRUE)
+ if(FlagGet(SYS_POKEDEX_GET) == TRUE)
AddStartMenuAction(MENU_ACTION_POKEDEX);
- if(FlagGet(0x800) == TRUE)
+ if(FlagGet(SYS_POKEMON_GET) == TRUE)
AddStartMenuAction(MENU_ACTION_POKEMON);
AddStartMenuAction(MENU_ACTION_BAG);
- if(FlagGet(0x802) == TRUE)
+ if(FlagGet(SYS_POKENAV_GET) == TRUE)
AddStartMenuAction(MENU_ACTION_POKENAV);
AddStartMenuAction(MENU_ACTION_PLAYER);
AddStartMenuAction(MENU_ACTION_SAVE);
@@ -198,7 +198,7 @@ static void BuildStartMenuActions_Link(void)
{
AddStartMenuAction(MENU_ACTION_POKEMON);
AddStartMenuAction(MENU_ACTION_BAG);
- if(FlagGet(0x802) == TRUE)
+ if(FlagGet(SYS_POKENAV_GET) == TRUE)
AddStartMenuAction(MENU_ACTION_POKENAV);
AddStartMenuAction(MENU_ACTION_PLAYER_LINK);
AddStartMenuAction(MENU_ACTION_OPTION);
@@ -208,7 +208,7 @@ static void BuildStartMenuActions_Link(void)
//Show number of safari balls left
static void DisplaySafariBallsWindow(void)
{
- sub_8072C44(gStringVar1, gUnknown_02038808, 12, 1);
+ sub_8072C44(gStringVar1, gNumSafariBalls, 12, 1);
MenuDrawTextWindow(0, 0, 10, 5);
MenuPrint(gOtherText_SafariStock, 1, 1);
}
@@ -456,7 +456,7 @@ u8 StartMenu_ExitCallback(void)
u8 StartMenu_RetireCallback(void)
{
sub_8071C20();
- sub_80C823C();
+ SafariZoneRetirePrompt();
return 1;
}
@@ -473,7 +473,8 @@ u8 StartMenu_PlayerLinkCallback(void)
}
//Save dialog status
-enum {
+enum
+{
SAVE_IN_PROGRESS,
SAVE_SUCCESS,
SAVE_CANCELED,
diff --git a/src/starter_choose.c b/src/starter_choose.c
index d4580cd94..a80401e8b 100644
--- a/src/starter_choose.c
+++ b/src/starter_choose.c
@@ -12,7 +12,6 @@
#include "trig.h"
//Functions that need to be put in headers
-void LZ77UnCompVram(const void *src, void *dest);
void remove_some_task(void);
void LoadCompressedObjectPic(void *);
void LoadCompressedObjectPalette(const struct SpritePalette *);
diff --git a/src/text.c b/src/text.c
index 4f2581af6..885fb7547 100644
--- a/src/text.c
+++ b/src/text.c
@@ -177,10 +177,7 @@ static u8 sWaitType;
static u8 sLineLength;
static struct GlyphBuffer sGlyphBuffer;
-EWRAM_DATA u16 gBG0TilemapBuffer[0x400] = {0};
-EWRAM_DATA u16 gBG1TilemapBuffer[0x400] = {0};
-EWRAM_DATA u16 gBG2TilemapBuffer[0x400] = {0};
-EWRAM_DATA u16 gBG3TilemapBuffer[0x400] = {0};
+EWRAM_DATA u16 gBGTilemapBuffers[4][0x400] = {0};
EWRAM_DATA u8 gStringVar1[0x100] = {0};
EWRAM_DATA u8 gStringVar2[0x100] = {0};
diff --git a/src/tileset_anim.c b/src/tileset_anim.c
new file mode 100644
index 000000000..96030f037
--- /dev/null
+++ b/src/tileset_anim.c
@@ -0,0 +1,596 @@
+#include "global.h"
+
+extern u8 *gTilesetAnimTable_General_0[];
+extern u8 *gTilesetAnimTable_General_1[];
+extern u8 *gTilesetAnimTable_General_2[];
+extern u8 *gTilesetAnimTable_General_3[];
+extern u8 *gTilesetAnimTable_General_4[];
+extern u8 *gTilesetAnimTable_Lavaridge[];
+extern u8 *gTilesetAnimTable_Pacifidlog_0[];
+extern u8 *gTilesetAnimTable_Underwater[];
+extern u8 *gTilesetAnimTable_Pacifidlog_1[];
+extern u8 *gUnknown_0837BAE4[];
+extern u8 *gUnknown_0837BB04[];
+extern u8 *gTilesetAnimTable_Mauville_0A[];
+extern u8 *gTilesetAnimTable_Mauville_1A[];
+extern u8 *gTilesetAnimTable_Mauville_0B[];
+extern u8 *gTilesetAnimTable_Mauville_1B[];
+extern u8 *gUnknown_0837BFA4[];
+extern u8 *gTilesetAnimTable_Rustboro_0[];
+extern u8 *gTilesetAnimTable_Rustboro_1[];
+extern u8 *gTilesetAnimTable_Cave[];
+extern u8 *gUnknown_0837C93C[];
+extern u8 *gTilesetAnimTable_EverGrande[];
+extern u8 *gTilesetAnimTable_Building[];
+extern u8 *gTilesetAnimTable_SootopolisGym_0[];
+extern u8 *gTilesetAnimTable_SootopolisGym_1[];
+extern u8 *gTilesetAnimTable_EliteFour_0[];
+extern u8 *gTilesetAnimTable_EliteFour_1[];
+extern u8 *gTilesetAnimTable_MauvilleGym[];
+extern u8 *gTilesetAnimTable_BikeShop[];
+
+struct Dma {
+ u8 *src;
+ u8 *dest;
+ u16 size;
+};
+
+EWRAM_DATA static struct Dma gTilesetAnimDmas[20] = {0};
+
+static u8 gNumTilesetAnimDmas;
+static u16 gTileset1AnimFrame;
+static u16 gTileset1AnimLength;
+static u16 gTileset2AnimFrame;
+static u16 gTileset2AnimLength;
+static void (*gTileset1AnimCallback)(u16);
+static void (*gTileset2AnimCallback)(u16);
+
+static void StartTileset1Animation(void);
+static void StartTileset2Animation(void);
+
+static void sub_8073014(u16);
+static void sub_8073058(u16);
+
+static void sub_8073070(u16);
+static void sub_8073098(u16);
+static void sub_80730C0(u16);
+static void sub_80730E8(u16);
+static void sub_807361C(u16);
+
+static void sub_8073424(u16);
+static void sub_80734A0(u16);
+static void sub_8073514(u16);
+static void sub_8073540(u16);
+static void sub_80735B4(u16);
+static void sub_80735E4(u16);
+static void sub_80738A8(u16);
+static void sub_8073600(u16);
+static void sub_80738C0(u16);
+static void sub_8073890(u16);
+static void sub_80738EC(u16);
+
+static void sub_80737A4(u16, u8);
+static void sub_80737E0(u16);
+static void sub_8073704(u16, u8);
+static void sub_8073644(u8);
+static void sub_8073808(u16);
+static void sub_8073830(u16, u8);
+static void sub_807368C(u8);
+static void sub_80736DC(u8);
+static void sub_80736B4(u8);
+static void sub_8073868(u16);
+
+static void sub_8073904(u16);
+static void sub_80739C4(u16);
+static void sub_807392C(u16);
+static void sub_807399C(u16);
+static void sub_8073974(u16);
+static void sub_80739EC(u16);
+
+static void ClearTilesetAnimDmas(void) {
+ gNumTilesetAnimDmas = 0;
+ CpuFill32(0, &gTilesetAnimDmas, sizeof(gTilesetAnimDmas));
+}
+
+static void QueueTilesetAnimDma(u8 *src, u8 *dest, u16 size) {
+ if (gNumTilesetAnimDmas < 20) {
+ gTilesetAnimDmas[gNumTilesetAnimDmas].src = src;
+ gTilesetAnimDmas[gNumTilesetAnimDmas].dest = dest;
+ gTilesetAnimDmas[gNumTilesetAnimDmas].size = size;
+ gNumTilesetAnimDmas++;
+ }
+}
+
+void sub_8072E74(void) {
+ int i;
+ for (i = 0; i < gNumTilesetAnimDmas; i++) {
+ DmaCopy16(3,
+ gTilesetAnimDmas[i].src,
+ gTilesetAnimDmas[i].dest,
+ gTilesetAnimDmas[i].size);
+ }
+ gNumTilesetAnimDmas = 0;
+}
+
+void cur_mapheader_run_tileset_funcs_after_some_cpuset(void) {
+ ClearTilesetAnimDmas();
+ StartTileset1Animation();
+ StartTileset2Animation();
+}
+
+void sub_8072ED0(void) {
+ StartTileset2Animation();
+}
+
+void sub_8072EDC(void) {
+ ClearTilesetAnimDmas();
+ if (++gTileset1AnimFrame >= gTileset1AnimLength) {
+ gTileset1AnimFrame = 0;
+ }
+ if (++gTileset2AnimFrame >= gTileset2AnimLength) {
+ gTileset2AnimFrame = 0;
+ }
+ if (gTileset1AnimCallback) {
+ gTileset1AnimCallback(gTileset1AnimFrame);
+ }
+ if (gTileset2AnimCallback) {
+ gTileset2AnimCallback(gTileset2AnimFrame);
+ }
+}
+
+static void StartTileset1Animation(void) {
+ gTileset1AnimFrame = 0;
+ gTileset1AnimLength = 0;
+ gTileset1AnimCallback = 0;
+ if (gMapHeader.mapData->primaryTileset) {
+ if (gMapHeader.mapData->primaryTileset->callback) {
+ gMapHeader.mapData->primaryTileset->callback();
+ }
+ }
+}
+
+static void StartTileset2Animation(void) {
+ gTileset2AnimFrame = 0;
+ gTileset2AnimLength = 0;
+ gTileset2AnimCallback = 0;
+ if (gMapHeader.mapData->secondaryTileset) {
+ if (gMapHeader.mapData->secondaryTileset->callback) {
+ gMapHeader.mapData->secondaryTileset->callback();
+ }
+ }
+}
+
+void TilesetCB_General(void) {
+ gTileset1AnimFrame = 0;
+ gTileset1AnimLength = 0x100;
+ gTileset1AnimCallback = sub_8073014;
+}
+
+void TilesetCB_Building(void) {
+ gTileset1AnimFrame = 0;
+ gTileset1AnimLength = 0x100;
+ gTileset1AnimCallback = sub_8073058;
+}
+
+static void sub_8073014(u16 a1) {
+ int v1;
+ v1 = a1 % 0x10;
+ if (v1 == 0) sub_8073070(a1 / 0x10);
+ if (v1 == 1) sub_8073098(a1 / 0x10);
+ if (v1 == 2) sub_80730C0(a1 / 0x10);
+ if (v1 == 3) sub_80730E8(a1 / 0x10);
+ if (v1 == 4) sub_807361C(a1 / 0x10);
+}
+
+static void sub_8073058(u16 a1) {
+ if (a1 % 8 == 0) {
+ sub_8073904(a1 / 8);
+ }
+}
+
+static void sub_8073070(u16 a1) {
+ int v1;
+ v1 = a1 % 4;
+ QueueTilesetAnimDma(gTilesetAnimTable_General_0[v1],
+ (u8 *)(BG_VRAM + 0x3f80),
+ 0x80);
+}
+
+static void sub_8073098(u16 a1) {
+ u8 v1;
+ v1 = a1 % 8;
+ QueueTilesetAnimDma(gTilesetAnimTable_General_1[v1],
+ (u8 *)(BG_VRAM + 0x3600),
+ 0x3c0);
+}
+
+static void sub_80730C0(u16 a1) {
+ int v1;
+ v1 = a1 % 8;
+ QueueTilesetAnimDma(gTilesetAnimTable_General_2[v1],
+ (u8 *)(BG_VRAM + 0x3a00),
+ 0x140);
+}
+
+static void sub_80730E8(u16 a1) {
+ int v1;
+ v1 = a1 % 4;
+ QueueTilesetAnimDma(gTilesetAnimTable_General_3[v1],
+ (u8 *)(BG_VRAM + 0x3e00),
+ 0xc0);
+}
+
+void TilesetCB_Petalburg(void) {
+ gTileset2AnimFrame = 0;
+ gTileset2AnimLength = gTileset1AnimLength;
+ gTileset2AnimCallback = 0;
+}
+
+void TilesetCB_Rustboro(void) {
+ gTileset2AnimFrame = 0;
+ gTileset2AnimLength = gTileset1AnimLength;
+ gTileset2AnimCallback = sub_8073424;
+}
+
+void TilesetCB_Dewford(void) {
+ gTileset2AnimFrame = 0;
+ gTileset2AnimLength = gTileset1AnimLength;
+ gTileset2AnimCallback = 0;
+}
+
+void TilesetCB_Slateport(void) {
+ gTileset2AnimFrame = 0;
+ gTileset2AnimLength = gTileset1AnimLength;
+ gTileset2AnimCallback = 0;
+}
+
+void TilesetCB_Mauville(void) {
+ gTileset2AnimFrame = gTileset1AnimFrame;
+ gTileset2AnimLength = gTileset1AnimLength;
+ gTileset2AnimCallback = sub_80734A0;
+}
+
+void TilesetCB_Lavaridge(void) {
+ gTileset2AnimFrame = 0;
+ gTileset2AnimLength = gTileset1AnimLength;
+ gTileset2AnimCallback = sub_8073514;
+}
+
+void TilesetCB_Fallarbor(void) {
+ gTileset2AnimFrame = 0;
+ gTileset2AnimLength = gTileset1AnimLength;
+ gTileset2AnimCallback = 0;
+}
+
+void TilesetCB_Fortree(void) {
+ gTileset2AnimFrame = 0;
+ gTileset2AnimLength = gTileset1AnimLength;
+ gTileset2AnimCallback = 0;
+}
+
+void TilesetCB_Lilycove(void) {
+ gTileset2AnimFrame = 0;
+ gTileset2AnimLength = gTileset1AnimLength;
+ gTileset2AnimCallback = 0;
+}
+
+void TilesetCB_Mossdeep(void) {
+ gTileset2AnimFrame = 0;
+ gTileset2AnimLength = gTileset1AnimLength;
+ gTileset2AnimCallback = 0;
+}
+
+void TilesetCB_EverGrande(void) {
+ gTileset2AnimFrame = 0;
+ gTileset2AnimLength = gTileset1AnimLength;
+ gTileset2AnimCallback = sub_8073540;
+}
+
+void TilesetCB_Pacifidlog(void) {
+ gTileset2AnimFrame = gTileset1AnimFrame;
+ gTileset2AnimLength = gTileset1AnimLength;
+ gTileset2AnimCallback = sub_80735B4;
+}
+
+void TilesetCB_Sootopolis(void) {
+ gTileset2AnimFrame = 0;
+ gTileset2AnimLength = gTileset1AnimLength;
+ gTileset2AnimCallback = 0;
+}
+
+void TilesetCB_Underwater(void) {
+ gTileset2AnimFrame = 0;
+ gTileset2AnimLength = 0x80;
+ gTileset2AnimCallback = sub_80735E4;
+}
+
+void TilesetCB_SootopolisGym(void) {
+ gTileset2AnimFrame = 0;
+ gTileset2AnimLength = 0xf0;
+ gTileset2AnimCallback = sub_80738A8;
+}
+
+void TilesetCB_Cave(void) {
+ gTileset2AnimFrame = 0;
+ gTileset2AnimLength = gTileset1AnimLength;
+ gTileset2AnimCallback = sub_8073600;
+}
+
+void TilesetCB_EliteFour(void) {
+ gTileset2AnimFrame = 0;
+ gTileset2AnimLength = 0x80;
+ gTileset2AnimCallback = sub_80738C0;
+}
+
+void TilesetCB_MauvilleGym(void) {
+ gTileset2AnimFrame = 0;
+ gTileset2AnimLength = gTileset1AnimLength;
+ gTileset2AnimCallback = sub_8073890;
+}
+
+void TilesetCB_BikeShop(void) {
+ gTileset2AnimFrame = 0;
+ gTileset2AnimLength = gTileset1AnimLength;
+ gTileset2AnimCallback = sub_80738EC;
+}
+
+static void sub_8073424(u16 a1) {
+ int v1;
+ v1 = a1 % 8;
+ if (v1 == 0) {
+ sub_80737A4(a1 / 8, 0);
+ sub_80737E0(a1 / 8);
+ }
+ if (v1 == 1) sub_80737A4(a1 / 8, 1);
+ if (v1 == 2) sub_80737A4(a1 / 8, 2);
+ if (v1 == 3) sub_80737A4(a1 / 8, 3);
+ if (v1 == 4) sub_80737A4(a1 / 8, 4);
+ if (v1 == 5) sub_80737A4(a1 / 8, 5);
+ if (v1 == 6) sub_80737A4(a1 / 8, 6);
+ if (v1 == 7) sub_80737A4(a1 / 8, 7);
+}
+
+static void sub_80734A0(u16 a1) {
+ int v1;
+ v1 = a1 % 8;
+ if (v1 == 0) sub_8073704(a1 / 8, 0);
+ if (v1 == 1) sub_8073704(a1 / 8, 1);
+ if (v1 == 2) sub_8073704(a1 / 8, 2);
+ if (v1 == 3) sub_8073704(a1 / 8, 3);
+ if (v1 == 4) sub_8073704(a1 / 8, 4);
+ if (v1 == 5) sub_8073704(a1 / 8, 5);
+ if (v1 == 6) sub_8073704(a1 / 8, 6);
+ if (v1 == 7) sub_8073704(a1 / 8, 7);
+}
+
+static void sub_8073514(u16 a1) {
+ int v1;
+ v1 = a1 % 0x10;
+ if (v1 == 0) sub_8073644(a1 / 0x10);
+ if (v1 == 1) sub_8073808(a1 / 0x10);
+}
+
+static void sub_8073540(u16 a1) {
+ int v1;
+ v1 = a1 % 8;
+ if (v1 == 0) sub_8073830(a1 / 8, 0);
+ if (v1 == 1) sub_8073830(a1 / 8, 1);
+ if (v1 == 2) sub_8073830(a1 / 8, 2);
+ if (v1 == 3) sub_8073830(a1 / 8, 3);
+ if (v1 == 4) sub_8073830(a1 / 8, 4);
+ if (v1 == 5) sub_8073830(a1 / 8, 5);
+ if (v1 == 6) sub_8073830(a1 / 8, 6);
+ if (v1 == 7) sub_8073830(a1 / 8, 7);
+}
+
+static void sub_80735B4(u16 a1) {
+ int v1;
+ v1 = a1 % 0x10;
+ if (v1 == 0) sub_807368C(a1 / 0x10);
+ if (v1 == 1) sub_80736DC(a1 / 0x10);
+}
+
+static void sub_80735E4(u16 a1) {
+ int v1;
+ v1 = a1 % 0x10;
+ if (v1 == 0) sub_80736B4(a1 / 0x10);
+}
+
+static void sub_8073600(u16 a1) {
+ int v1;
+ v1 = a1 % 0x10;
+ if (v1 == 1) sub_8073868(a1 / 0x10);
+}
+
+static void sub_807361C(u16 a1) {
+ int v1;
+ v1 = a1 % 4;
+ QueueTilesetAnimDma(gTilesetAnimTable_General_4[v1],
+ (u8 *)(BG_VRAM + 0x3c00),
+ 0x140);
+}
+
+static void sub_8073644(u8 a1) {
+ u8 v1;
+ v1 = a1 % 4;
+ QueueTilesetAnimDma(gTilesetAnimTable_Lavaridge[v1],
+ (u8 *)(BG_VRAM + 0x6400),
+ 0x80);
+ v1 = (a1 + 2) % 4;
+ QueueTilesetAnimDma(gTilesetAnimTable_Lavaridge[v1],
+ (u8 *)(BG_VRAM + 0x6480),
+ 0x80);
+}
+
+static void sub_807368C(u8 a1) {
+ int v1;
+ v1 = a1 % 4;
+ QueueTilesetAnimDma(gTilesetAnimTable_Pacifidlog_0[v1],
+ (u8 *)(BG_VRAM + 0x7a00),
+ 0x3c0);
+}
+
+static void sub_80736B4(u8 a1) {
+ int v1;
+ v1 = a1 % 4;
+ QueueTilesetAnimDma(gTilesetAnimTable_Underwater[v1],
+ (u8 *)(BG_VRAM + 0x7e00),
+ 0x80);
+}
+
+static void sub_80736DC(u8 a1) {
+ int v1;
+ v1 = a1 % 8;
+ QueueTilesetAnimDma(gTilesetAnimTable_Pacifidlog_1[v1],
+ (u8 *)(BG_VRAM + 0x7e00),
+ 0x100);
+}
+
+static void sub_8073704(u16 a1, u8 a2) {
+ int v1;
+ a1 -= a2;
+ if (a1 < 12) {
+ v1 = a1 % 12;
+ QueueTilesetAnimDma(gTilesetAnimTable_Mauville_0A[v1],
+ gUnknown_0837BAE4[a2],
+ 0x80);
+ QueueTilesetAnimDma(gTilesetAnimTable_Mauville_1A[v1],
+ gUnknown_0837BB04[a2],
+ 0x80);
+ } else {
+ v1 = a1 % 4;
+ QueueTilesetAnimDma(gTilesetAnimTable_Mauville_0B[v1],
+ gUnknown_0837BAE4[a2],
+ 0x80);
+ QueueTilesetAnimDma(gTilesetAnimTable_Mauville_1B[v1],
+ gUnknown_0837BB04[a2],
+ 0x80);
+ }
+}
+
+static void sub_80737A4(u16 a1, u8 a2) {
+ int v1;
+ a1 -= a2;
+
+ v1 = a1 % 8;
+ if (gTilesetAnimTable_Rustboro_0[v1]) {
+ QueueTilesetAnimDma(gTilesetAnimTable_Rustboro_0[v1],
+ gUnknown_0837BFA4[a2],
+ 0x80);
+ }
+}
+
+static void sub_80737E0(u16 a1) {
+ int v1;
+ v1 = a1 % 2;
+ QueueTilesetAnimDma(gTilesetAnimTable_Rustboro_1[v1],
+ (u8 *)(BG_VRAM + 0x7800),
+ 0x80);
+}
+
+static void sub_8073808(u16 a1) {
+ int v1;
+ v1 = a1 % 4;
+ QueueTilesetAnimDma(gTilesetAnimTable_Cave[v1],
+ (u8 *)(BG_VRAM + 0x5400),
+ 0x80);
+}
+
+static void sub_8073830(u16 a1, u8 a2) {
+ int v1;
+ a1 -= a2;
+ v1 = a1 % 8;
+ QueueTilesetAnimDma(gTilesetAnimTable_EverGrande[v1],
+ gUnknown_0837C93C[a2],
+ 0x80);
+}
+
+static void sub_8073868(u16 a1) {
+ int v1;
+ v1 = a1 % 4;
+ QueueTilesetAnimDma(gTilesetAnimTable_Cave[v1],
+ (u8 *)(BG_VRAM + 0x7400),
+ 0x80);
+}
+
+static void sub_8073890(u16 a1) {
+ int v1;
+ v1 = a1 % 2;
+ if (!v1) {
+ sub_80739C4(a1 / 2);
+ }
+}
+
+static void sub_80738A8(u16 a1) {
+ int v1;
+ v1 = a1 % 8;
+ if (!v1) {
+ sub_807392C(a1 / 8);
+ }
+}
+
+static void sub_80738C0(u16 a1) {
+ if (a1 % 0x40 == 0) {
+ sub_807399C(a1 / 0x40);
+ }
+ if (a1 % 8 == 1) {
+ sub_8073974(a1 / 8);
+ }
+}
+
+static void sub_80738EC(u16 a1) {
+ if (a1 % 4 == 0) {
+ sub_80739EC(a1 / 4);
+ }
+}
+
+static void sub_8073904(u16 a1) {
+ int v1;
+ v1 = a1 % 2;
+ QueueTilesetAnimDma(gTilesetAnimTable_Building[v1],
+ (u8 *)(BG_VRAM + 0x3e00),
+ 0x80);
+}
+
+static void sub_807392C(u16 a1) {
+ int v1;
+ v1 = a1 % 3;
+ QueueTilesetAnimDma(gTilesetAnimTable_SootopolisGym_0[v1],
+ (u8 *)(BG_VRAM + 0x7e00),
+ 0x180);
+ QueueTilesetAnimDma(gTilesetAnimTable_SootopolisGym_1[v1],
+ (u8 *)(BG_VRAM + 0x7a00),
+ 0x280);
+}
+
+static void sub_8073974(u16 a1) {
+ int v1;
+ v1 = a1 % 4;
+ QueueTilesetAnimDma(gTilesetAnimTable_EliteFour_0[v1],
+ (u8 *)(BG_VRAM + 0x7f00),
+ 0x20);
+}
+
+static void sub_807399C(u16 a1) {
+ int v1;
+ v1 = a1 % 2;
+ QueueTilesetAnimDma(gTilesetAnimTable_EliteFour_1[v1],
+ (u8 *)(BG_VRAM + 0x7c00),
+ 0x80);
+}
+
+static void sub_80739C4(u16 a1) {
+ int v1;
+ v1 = a1 % 2;
+ QueueTilesetAnimDma(gTilesetAnimTable_MauvilleGym[v1],
+ (u8 *)(BG_VRAM + 0x5200),
+ 0x200);
+}
+
+static void sub_80739EC(u16 a1) {
+ int v1;
+ v1 = a1 % 2;
+ QueueTilesetAnimDma(gTilesetAnimTable_BikeShop[v1],
+ (u8 *)(BG_VRAM + 0x7e00),
+ 0x120);
+}
diff --git a/src/title_screen.c b/src/title_screen.c
new file mode 100644
index 000000000..d5cfa032b
--- /dev/null
+++ b/src/title_screen.c
@@ -0,0 +1,496 @@
+#include "global.h"
+#include "gba/m4a_internal.h"
+#include "main.h"
+#include "palette.h"
+#include "sound.h"
+#include "sprite.h"
+#include "task.h"
+
+extern void m4aSongNumStart(u16);
+extern void LoadCompressedObjectPic(void *);
+extern void CB2_InitCopyrightScreen(void);
+extern void CB2_InitMainMenu(void);
+extern void CB2_InitClearSaveDataScreen(void);
+extern void CB2_InitResetRtcScreen(void);
+
+extern u8 gReservedSpritePaletteCount;
+extern struct MusicPlayerInfo gMPlay_BGM;
+extern u8 gUnknown_0202F7E4;
+extern u16 gUnknown_030041B4;
+extern u16 gUnknown_030042C0;
+extern u8 gUnknown_08393210[];
+extern u8 gUnknown_08393250[];
+extern u8 gUnknown_083939EC[];
+extern u8 gUnknown_08393BF8[];
+extern u16 gUnknown_08393E64[];
+extern struct SpriteTemplate gSpriteTemplate_8393ECC;
+extern struct SpriteTemplate gSpriteTemplate_8393EE4;
+extern u8 gUnknown_08393EFC[];
+extern struct SpriteTemplate gSpriteTemplate_8393F74;
+extern u8 gUnknown_08393F8C[];
+extern u8 gUnknown_08393F9C[];
+extern struct SpriteTemplate gSpriteTemplate_8393FC0;
+extern u8 gUnknown_08393FD8[];
+extern u8 gUnknown_08E9D8CC[];
+extern u8 gUnknown_08E9F624[];
+extern u8 gUnknown_08E9F7E4[];
+
+static void MainCB2(void);
+static void Task_TitleScreenPhase1(u8);
+static void Task_TitleScreenPhase2(u8);
+static void Task_TitleScreenPhase3(u8);
+static void CB2_GoToMainMenu(void);
+static void CB2_GoToClearSaveDataScreen(void);
+static void CB2_GoToResetRtcScreen(void);
+static void CB2_GoToCopyrightScreen(void);
+static void UpdateLegendaryMarkingColor(u8);
+
+#define _RGB(r, g, b) ((((b) & 31) << 10) + (((g) & 31) << 5) + ((r) & 31))
+
+#ifdef SAPPHIRE
+//Red Kyogre markings
+#define LEGENDARY_MARKING_COLOR(c) RGB((c), 0, 0)
+#else
+//Blue Groundon markings
+#define LEGENDARY_MARKING_COLOR(c) RGB(0, 0, (c))
+#endif
+
+#ifdef SAPPHIRE
+#define PLTT_BUFFER_INDEX 26
+#else
+#define PLTT_BUFFER_INDEX 21
+#endif
+
+#define CLEAR_SAVE_BUTTON_COMBO (B_BUTTON | SELECT_BUTTON | DPAD_UP)
+#define RESET_RTC_BUTTON_COMBO (B_BUTTON | SELECT_BUTTON | DPAD_LEFT)
+#define A_B_START_SELECT (A_BUTTON | B_BUTTON | START_BUTTON | SELECT_BUTTON)
+
+void SpriteCallback_VersionBannerLeft(struct Sprite *sprite)
+{
+ struct Task *task = &gTasks[sprite->data1];
+
+ if (task->data[1] != 0)
+ {
+ sprite->oam.objMode = 0;
+ sprite->pos1.y = 66;
+ sprite->invisible = FALSE;
+ }
+ else
+ {
+ if (task->data[5] != 0)
+ task->data[5]--;
+ if (task->data[5] < 64)
+ {
+ sprite->invisible = FALSE;
+ if (sprite->pos1.y != 66)
+ sprite->pos1.y++;
+ REG_BLDALPHA = gUnknown_08393E64[task->data[5] / 2];
+ }
+ }
+}
+
+void SpriteCallback_VersionBannerRight(struct Sprite *sprite)
+{
+ struct Task *task = &gTasks[sprite->data1];
+
+ if (task->data[1] != 0)
+ {
+ sprite->oam.objMode = 0;
+ sprite->pos1.y = 66;
+ sprite->invisible = FALSE;
+ }
+ else
+ {
+ if (task->data[5] < 64)
+ {
+ sprite->invisible = FALSE;
+ if (sprite->pos1.y != 66)
+ sprite->pos1.y++;
+ }
+ }
+}
+
+void SpriteCallback_PressStartCopyrightBanner(struct Sprite *sprite)
+{
+ if (sprite->data0 == 1)
+ {
+ sprite->data1++;
+ //Alternate between hidden and shown every 16th frame
+ if (sprite->data1 & 16)
+ sprite->invisible = FALSE;
+ else
+ sprite->invisible = TRUE;
+ }
+ else
+ sprite->invisible = FALSE;
+}
+
+static void CreatePressStartBanner(s16 x, s16 y)
+{
+ u8 i;
+ u8 spriteId;
+
+ x -= 32;
+ for (i = 0; i < 3; i++, x += 32)
+ {
+ spriteId = CreateSprite(&gSpriteTemplate_8393F74, x, y, 0);
+ StartSpriteAnim(&gSprites[spriteId], i);
+ gSprites[spriteId].data0 = 1;
+ }
+}
+
+static void CreateCopyrightBanner(s16 x, s16 y)
+{
+ u8 i;
+ u8 spriteId;
+
+ x -= 64;
+ for (i = 0; i < 5; i++, x += 32)
+ {
+ spriteId = CreateSprite(&gSpriteTemplate_8393F74, x, y, 0);
+ StartSpriteAnim(&gSprites[spriteId], i + 3);
+ }
+}
+
+void SpriteCallback_PokemonLogoShine(struct Sprite *sprite)
+{
+ if (gTasks[gUnknown_0202F7E4].data[1] == 0 && sprite->pos1.x < 272)
+ {
+ if (sprite->data0) //Flash background
+ {
+ u16 backgroundColor;
+
+ if (sprite->pos1.x < DISPLAY_WIDTH / 2)
+ {
+ //Brighten background color
+ if (sprite->data1 < 31)
+ sprite->data1++;
+ if (sprite->data1 < 31)
+ sprite->data1++;
+ }
+ else
+ {
+ //Darken background color
+ if (sprite->data1 != 0)
+ sprite->data1--;
+ if (sprite->data1 != 0)
+ sprite->data1--;
+ }
+ backgroundColor = _RGB(sprite->data1, sprite->data1, sprite->data1);
+ gPlttBufferFaded[0] = backgroundColor;
+ gPlttBufferFaded[PLTT_BUFFER_INDEX] = backgroundColor;
+ }
+ sprite->pos1.x += 4;
+ }
+ else
+ {
+ gPlttBufferFaded[0] = RGB_BLACK;
+ gPlttBufferFaded[PLTT_BUFFER_INDEX] = RGB_BLACK;
+ DestroySprite(sprite);
+ }
+}
+
+static void StartPokemonLogoShine(bool8 flashBackground)
+{
+ u8 spriteId = CreateSprite(&gSpriteTemplate_8393FC0, 0, 68, 0);
+
+ gSprites[spriteId].oam.objMode = 2;
+ gSprites[spriteId].data0 = flashBackground;
+}
+
+static void VBlankCB(void)
+{
+ sub_8089668();
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ REG_BG1VOFS = gUnknown_030041B4;
+}
+
+enum
+{
+ TD_COUNTER,
+ TD_SKIP,
+};
+
+void CB2_InitTitleScreen(void)
+{
+ switch (gMain.state)
+ {
+ default:
+ case 0:
+ SetVBlankCallback(NULL);
+ REG_BLDCNT = 0;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 0;
+ *((u16 *)PLTT) = RGB_WHITE;
+ REG_DISPCNT = 0;
+ REG_BG2CNT = 0;
+ REG_BG1CNT = 0;
+ REG_BG0CNT = 0;
+ REG_BG2HOFS = 0;
+ REG_BG2VOFS = 0;
+ REG_BG1HOFS = 0;
+ REG_BG1VOFS = 0;
+ REG_BG0HOFS = 0;
+ REG_BG0VOFS = 0;
+ DmaFill16(3, 0, (void *)VRAM, 0x18000);
+ DmaFill32(3, 0, (void *)OAM, 0x400);
+ DmaFill16(3, 0, (void *)(PLTT + 2), 0x3FE);
+ ResetPaletteFade();
+ gMain.state = 1;
+ break;
+ case 1:
+ LZ77UnCompVram(gUnknown_08E9D8CC, (void *)VRAM);
+ LZ77UnCompVram(gUnknown_08E9F7E4, (void *)(VRAM + 0x4800));
+ LoadPalette(gUnknown_08E9F624, 0, 0x1C0);
+ LZ77UnCompVram(gUnknown_08393250, (void *)(VRAM + 0x8000));
+ LZ77UnCompVram(gUnknown_083939EC, (void *)(VRAM + 0xC000));
+ LZ77UnCompVram(gUnknown_08393BF8, (void *)(VRAM + 0xC800));
+ LoadPalette(gUnknown_08393210, 0xE0, 0x40);
+ remove_some_task();
+ ResetTasks();
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ gReservedSpritePaletteCount = 14;
+ LoadCompressedObjectPic(gUnknown_08393EFC);
+ LoadCompressedObjectPic(gUnknown_08393F8C);
+ LoadCompressedObjectPic(gUnknown_08393FD8);
+ LoadPalette(gUnknown_08E9F624, 0x100, 0x1C0);
+ LoadSpritePalette(gUnknown_08393F9C);
+ gMain.state = 2;
+ break;
+ case 2:
+ {
+ u8 taskId = CreateTask(Task_TitleScreenPhase1, 0);
+
+ gTasks[taskId].data[TD_COUNTER] = 0x100;
+ gTasks[taskId].data[TD_SKIP] = FALSE;
+ gTasks[taskId].data[2] = -16;
+ gTasks[taskId].data[3] = -32;
+ gUnknown_0202F7E4 = taskId;
+ gMain.state = 3;
+ break;
+ }
+ case 3:
+ BeginNormalPaletteFade(-1, 1, 0x10, 0, 0xFFFF);
+ SetVBlankCallback(VBlankCB);
+ gMain.state = 4;
+ break;
+ case 4:
+ {
+ u16 savedIme;
+
+ sub_813CE30(0x78, 0x50, 0x100, 0);
+ REG_BG2X = -29 * 256;
+ REG_BG2Y = -33 * 256;
+ REG_WIN0H = 0;
+ REG_WIN0V = 0;
+ REG_WIN1H = 0;
+ REG_WIN1V = 0;
+ REG_WININ = 0x1F1F;
+ REG_WINOUT = 0x3F1F;
+ REG_BLDCNT = 0x84;
+ REG_BLDALPHA = 0;
+ REG_BLDY = 0x8;
+ REG_BG0CNT = 0x180B;
+ REG_BG1CNT = 0x190A;
+ REG_BG2CNT = 0x4981;
+ savedIme = REG_IME;
+ REG_IME = 0;
+ REG_IE |= INTR_FLAG_VBLANK;
+ REG_IME = savedIme;
+ REG_DISPSTAT |= DISPSTAT_VBLANK_INTR;
+ REG_DISPCNT = DISPCNT_MODE_1
+ | DISPCNT_OBJ_1D_MAP
+ | DISPCNT_BG2_ON
+ | DISPCNT_OBJ_ON
+ | DISPCNT_WIN0_ON
+ | DISPCNT_OBJWIN_ON;
+ m4aSongNumStart(0x19D);
+ gMain.state = 5;
+ break;
+ }
+ case 5:
+ if (!UpdatePaletteFade())
+ {
+ StartPokemonLogoShine(FALSE);
+ sub_8089944(0, 0xA0, 4, 4, 0, 4, 1);
+ SetMainCallback2(MainCB2);
+ }
+ break;
+ }
+}
+
+static void MainCB2(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
+//Shine the Pokemon logo two more times, and fade in the version banner
+static void Task_TitleScreenPhase1(u8 taskId)
+{
+ //Skip to next phase when A, B, Start, or Select is pressed
+ if ((gMain.newKeys & A_B_START_SELECT) || gTasks[taskId].data[1] != 0)
+ {
+ gTasks[taskId].data[TD_SKIP] = TRUE;
+ gTasks[taskId].data[TD_COUNTER] = 0;
+ }
+
+ if (gTasks[taskId].data[TD_COUNTER] != 0)
+ {
+ u16 frameNum = gTasks[taskId].data[TD_COUNTER];
+
+ if (frameNum == 160 || frameNum == 64)
+ StartPokemonLogoShine(TRUE);
+ gTasks[taskId].data[TD_COUNTER]--;
+ }
+ else
+ {
+ u8 spriteId;
+
+ REG_DISPCNT = DISPCNT_MODE_1 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG2_ON | DISPCNT_OBJ_ON;
+ REG_WININ = 0;
+ REG_WINOUT = 0;
+ REG_BLDCNT = 0x3F50;
+ REG_BLDALPHA = 0x1F;
+ REG_BLDY = 0;
+
+ //Create left side of version banner
+ spriteId = CreateSprite(&gSpriteTemplate_8393ECC, 0x62, 0x1A, 0);
+ gSprites[spriteId].invisible = TRUE;
+ gSprites[spriteId].data1 = taskId;
+
+ //Create right side of version banner
+ spriteId = CreateSprite(&gSpriteTemplate_8393EE4, 0xA2, 0x1A, 0);
+ gSprites[spriteId].invisible = TRUE;
+ gSprites[spriteId].data1 = taskId;
+
+ gTasks[taskId].data[5] = 88;
+ gTasks[taskId].data[TD_COUNTER] = 144;
+ gTasks[taskId].func = Task_TitleScreenPhase2;
+ }
+}
+
+//Create "Press Start" and copyright banners, and slide Pokemon logo up
+static void Task_TitleScreenPhase2(u8 taskId)
+{
+ //Skip to next phase when A, B, Start, or Select is pressed
+ if ((gMain.newKeys & A_B_START_SELECT) || gTasks[taskId].data[TD_SKIP])
+ {
+ gTasks[taskId].data[TD_SKIP] = TRUE;
+ gTasks[taskId].data[TD_COUNTER] = 0;
+ }
+
+ if (gTasks[taskId].data[TD_COUNTER] != 0)
+ gTasks[taskId].data[TD_COUNTER]--;
+ else
+ {
+ gTasks[taskId].data[TD_SKIP] = TRUE;
+ REG_DISPCNT = DISPCNT_MODE_1
+ | DISPCNT_OBJ_1D_MAP
+ | DISPCNT_BG0_ON
+ | DISPCNT_BG1_ON
+ | DISPCNT_BG2_ON
+ | DISPCNT_OBJ_ON;
+ CreatePressStartBanner(DISPLAY_WIDTH / 2, 108);
+ CreateCopyrightBanner(DISPLAY_WIDTH / 2, 148);
+ gTasks[taskId].data[4] = 0;
+ gTasks[taskId].func = Task_TitleScreenPhase3;
+ }
+
+ if (!(gTasks[taskId].data[TD_COUNTER] & 1) && gTasks[taskId].data[3] != 0)
+ gTasks[taskId].data[3]++;
+
+ //Slide Pokemon logo up
+ REG_BG2Y = gTasks[taskId].data[3] * 256;
+}
+
+//Show Kyogre/Groundon silhouette and process main title screen input
+static void Task_TitleScreenPhase3(u8 taskId)
+{
+ REG_BLDCNT = 0x2142;
+ REG_BLDALPHA = 0x1F0F;
+ REG_BLDY = 0;
+
+ if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & START_BUTTON))
+ {
+ FadeOutBGM(4);
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0xFFFF);
+ SetMainCallback2(CB2_GoToMainMenu);
+ }
+ else
+ {
+ if ((gMain.heldKeys & CLEAR_SAVE_BUTTON_COMBO) == CLEAR_SAVE_BUTTON_COMBO)
+ SetMainCallback2(CB2_GoToClearSaveDataScreen);
+ if ((gMain.heldKeys & RESET_RTC_BUTTON_COMBO) == RESET_RTC_BUTTON_COMBO
+ && sub_80691DC() == 1)
+ {
+ FadeOutBGM(4);
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0);
+ SetMainCallback2(CB2_GoToResetRtcScreen);
+ }
+ else
+ {
+ REG_BG2Y = 0;
+ gTasks[taskId].data[TD_COUNTER]++;
+ if (gTasks[taskId].data[TD_COUNTER] & 1)
+ {
+ gTasks[taskId].data[4]++;
+ gUnknown_030041B4 = gTasks[taskId].data[4];
+ gUnknown_030042C0 = 0;
+ }
+ UpdateLegendaryMarkingColor(gTasks[taskId].data[TD_COUNTER]);
+ if ((gMPlay_BGM.status & 0xFFFF) == 0)
+ {
+ BeginNormalPaletteFade(-1, 0, 0, 0x10, 0xFFFF);
+ SetMainCallback2(CB2_GoToCopyrightScreen);
+ }
+ }
+ }
+}
+
+static void CB2_GoToMainMenu(void)
+{
+ if (!UpdatePaletteFade())
+ SetMainCallback2(CB2_InitMainMenu);
+}
+
+static void CB2_GoToCopyrightScreen(void)
+{
+ if (!UpdatePaletteFade())
+ SetMainCallback2(CB2_InitCopyrightScreen);
+}
+
+static void CB2_GoToClearSaveDataScreen(void)
+{
+ if (!UpdatePaletteFade())
+ SetMainCallback2(CB2_InitClearSaveDataScreen);
+}
+
+static void CB2_GoToResetRtcScreen(void)
+{
+ if (!UpdatePaletteFade())
+ SetMainCallback2(CB2_InitResetRtcScreen);
+}
+
+static void UpdateLegendaryMarkingColor(u8 frameNum)
+{
+ u16 palette;
+
+ if ((frameNum % 4) == 0) //Change color every 4th frame
+ {
+ u8 colorIntensity = (frameNum >> 2) & 31; //Take bits 2-6 of frameNum the color intensity
+ u8 fadeDarker = (frameNum >> 2) & 32;
+
+ if (!fadeDarker)
+ palette = LEGENDARY_MARKING_COLOR(colorIntensity);
+ else
+ palette = LEGENDARY_MARKING_COLOR(31 - colorIntensity);
+ LoadPalette(&palette, 0xEF, sizeof(palette));
+ }
+}
+
diff --git a/src/trainer_see.c b/src/trainer_see.c
new file mode 100644
index 000000000..968f7c0a1
--- /dev/null
+++ b/src/trainer_see.c
@@ -0,0 +1,404 @@
+#include "global.h"
+#include "fieldmap.h"
+#include "task.h"
+#include "sprite.h"
+
+extern u8 * GetFieldObjectScriptPointerByFieldObjectId(u8);
+extern u8 * GetTrainerFlagFromScriptPointer(u8 *);
+extern u8 TrainerCanApproachPlayer(struct MapObject *);
+extern u8 sub_8060024(struct MapObject *, s16, s16, u8);
+extern u8 npc_block_way(struct MapObject *, s16, s16, u8);
+extern u8 npc_running_behaviour_by_direction(u8);
+extern u8 GetGoSpeed0AnimId(u8);
+extern u8 GetOppositeDirection(u8);
+extern u8 GetFaceDirectionAnimId(u8);
+extern bool8 FieldEffectActiveListContains(u8);
+extern bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct MapObject *);
+extern bool8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *);
+extern bool8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *);
+extern void FieldObjectClearAnim(struct MapObject *);
+extern void TrainerWantsBattle(u8, u8 *);
+extern void FieldObjectSetSpecialAnim(struct MapObject *, u8);
+extern void LoadWordFromTwoHalfwords(u32, u8 *);
+extern void StoreWordInTwoHalfwords(u32, u8 *);
+
+extern void sub_80842FC(void (*func)(u8));
+
+extern bool8 (*gIsTrainerInRange[])(struct MapObject *, u16, s16, s16);
+extern bool8 (*gTrainerSeeFuncList[])(u8, struct Task *, struct MapObject *);
+extern bool8 (*gTrainerSeeFuncList2[])(u8, struct Task *, struct MapObject *);
+
+extern u32 gUnknown_0202FF84[];
+
+bool8 CheckTrainer(u8);
+bool8 CheckPathBetweenTrainerAndPlayer(struct MapObject2 *, u8, u8);
+void sub_80842C8(struct MapObject *, u8);
+void RunTrainerSeeFuncList(u8);
+void sub_80847D8(u8);
+
+bool8 CheckTrainers(void)
+{
+ u8 i;
+
+ for(i = 0; i < 16; i++)
+ {
+ if ( gMapObjects[i].active )
+ if ( gMapObjects[i].trainerType == 1 || gMapObjects[i].trainerType == 3 )
+ if ( CheckTrainer(i) )
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 CheckTrainer(u8 trainer)
+{
+ u8 *scriptPtr = GetFieldObjectScriptPointerByFieldObjectId(trainer);
+
+ if(GetTrainerFlagFromScriptPointer(scriptPtr))
+ return FALSE;
+ else
+ {
+ struct MapObject *trainerObj = &gMapObjects[trainer];
+ u8 canApproach = TrainerCanApproachPlayer(trainerObj);
+
+ if(canApproach != 0)
+ {
+ TrainerWantsBattle(trainer, scriptPtr);
+ sub_80842C8(trainerObj, (canApproach - 1));
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+ }
+}
+
+bool8 TrainerCanApproachPlayer(struct MapObject *trainerObj)
+{
+ s16 x, y;
+ u8 i;
+ u8 playerCoord;
+
+ PlayerGetDestCoords(&x, &y);
+ if ( trainerObj->trainerType == 1 ) // trainers that don't spin
+ {
+ playerCoord = gIsTrainerInRange[trainerObj->mapobj_unk_18 - 1](trainerObj, trainerObj->trainerRange_berryTreeId, x, y);
+ return CheckPathBetweenTrainerAndPlayer(trainerObj, playerCoord, trainerObj->mapobj_unk_18);
+ }
+ else // spinners
+ {
+ for(i = 0; i < 4; i++)
+ {
+ playerCoord = gIsTrainerInRange[i](trainerObj, trainerObj->trainerRange_berryTreeId, x, y);
+ if ( CheckPathBetweenTrainerAndPlayer(trainerObj, playerCoord, i + 1) ) // directions are 1-4 instead of 0-3. south north west east
+ return playerCoord;
+ }
+ return FALSE;
+ }
+}
+
+bool8 IsTrainerInRangeSouth(struct MapObject *trainerObj, s16 vision, s16 x, s16 y)
+{
+ if ( trainerObj->coords2.x == x
+ && y > trainerObj->coords2.y
+ && y <= trainerObj->coords2.y + vision )
+ return (y - trainerObj->coords2.y);
+ else
+ return FALSE;
+}
+
+bool8 IsTrainerInRangeNorth(struct MapObject *trainerObj, s16 vision, s16 x, s16 y)
+{
+ if ( trainerObj->coords2.x == x
+ && y < trainerObj->coords2.y
+ && y >= trainerObj->coords2.y - vision )
+ return (trainerObj->coords2.y - y);
+ else
+ return FALSE;
+}
+
+bool8 IsTrainerInRangeWest(struct MapObject *trainerObj, s16 vision, s16 x, s16 y)
+{
+ if ( trainerObj->coords2.y == y
+ && x < trainerObj->coords2.x
+ && x >= trainerObj->coords2.x - vision )
+ return (trainerObj->coords2.x - x);
+ else
+ return FALSE;
+}
+
+bool8 IsTrainerInRangeEast(struct MapObject *trainerObj, s16 vision, s16 x, s16 y)
+{
+ if ( trainerObj->coords2.y == y
+ && x > trainerObj->coords2.x
+ && x <= trainerObj->coords2.x + vision )
+ return (x - trainerObj->coords2.x);
+ else
+ return FALSE;
+}
+
+bool8 CheckPathBetweenTrainerAndPlayer(struct MapObject2 *trainerObj, u8 playerCoord, u8 direction)
+{
+ s16 x, y;
+ u8 unk19_temp;
+ u8 unk19b_temp;
+ u8 i;
+ u8 var;
+
+ if ( !playerCoord )
+ return FALSE;
+
+ x = trainerObj->coords2.x;
+ y = trainerObj->coords2.y;
+
+ for(i = 0; i <= playerCoord - 1;)
+ {
+ var = sub_8060024(trainerObj, x, y, direction);
+
+ if (var != 0 && (var & 1) != 0 )
+ return FALSE;
+
+ i++;
+ MoveCoords(direction, &x, &y);
+ }
+
+ // preserve mapobj_unk_19 before clearing.
+ unk19_temp = trainerObj->mapobj_unk_19;
+ unk19b_temp = trainerObj->mapobj_unk_19b;
+ trainerObj->mapobj_unk_19 = 0;
+ trainerObj->mapobj_unk_19b = 0;
+
+ var = npc_block_way(trainerObj, x, y, direction);
+
+ trainerObj->mapobj_unk_19 = unk19_temp;
+ trainerObj->mapobj_unk_19b = unk19b_temp;
+ if ( var == 4 )
+ return playerCoord;
+
+ return FALSE;
+}
+
+void sub_80842C8(struct MapObject *trainerObj, u8 taskId)
+{
+ struct Task *task = &gTasks[CreateTask(RunTrainerSeeFuncList, 0x50)];
+
+ task->data[1] = (u32)(trainerObj) >> 16;
+ task->data[2] = (u32)(trainerObj);
+ task->data[3] = taskId;
+}
+
+void sub_80842FC(TaskFunc func)
+{
+ TaskFunc func2 = RunTrainerSeeFuncList;
+ u8 taskId = FindTaskIdByFunc(func2);
+
+ SetTaskFuncWithFollowupFunc(taskId, RunTrainerSeeFuncList, func);
+ gTasks[taskId].data[0] = 1;
+ func2(taskId);
+}
+
+void RunTrainerSeeFuncList(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ struct MapObject *trainerObj = (task->data[1] << 16) | (task->data[2]);
+
+ if (!trainerObj->active)
+ SwitchTaskToFollowupFunc(taskId);
+ else
+ while (gTrainerSeeFuncList[task->data[0]](taskId, task, trainerObj));
+}
+
+u8 sub_8084394() // cant be void because it is called with RunTrainerSeeFuncList with arguments.
+{
+ return 0;
+}
+
+s8 sub_8084398(u8 taskId, struct Task *task, struct MapObject *trainerObj)
+{
+ u8 direction;
+
+ FieldObjectGetLocalIdAndMap(trainerObj, &gUnknown_0202FF84[0], &gUnknown_0202FF84[1], &gUnknown_0202FF84[2]);
+ FieldEffectStart(0);
+
+ direction = GetFaceDirectionAnimId(trainerObj->mapobj_unk_18);
+
+ FieldObjectSetSpecialAnim(trainerObj, direction);
+ task->data[0]++;
+ return 1;
+}
+
+s8 sub_80843DC(u8 taskId, struct Task *task, struct MapObject *trainerObj)
+{
+ if (FieldEffectActiveListContains(0))
+ return 0;
+ else
+ {
+ task->data[0]++;
+ if ((u8)(trainerObj->animPattern - 57) <= 1)
+ task->data[0] = 6;
+ if (trainerObj->animPattern == 63)
+ task->data[0] = 8;
+ return 1;
+ }
+}
+
+s8 sub_808441C(u8 taskId, struct Task *task, struct MapObject *trainerObj)
+{
+ if (!(FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(trainerObj)) || FieldObjectClearAnimIfSpecialAnimFinished(trainerObj))
+ {
+ if(task->data[3])
+ {
+ FieldObjectSetSpecialAnim(trainerObj, GetGoSpeed0AnimId(trainerObj->mapobj_unk_18));
+ task->data[3]--;
+ }
+ else
+ {
+ FieldObjectSetSpecialAnim(trainerObj, 0x3E);
+ task->data[0]++;
+ }
+ }
+ return 0;
+}
+
+s8 sub_8084478(u8 taskId, struct Task *task, struct MapObject *trainerObj)
+{
+ struct MapObject *playerObj;
+
+ if (FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(trainerObj) && !FieldObjectClearAnimIfSpecialAnimFinished(trainerObj))
+ return 0;
+
+ npc_set_running_behaviour_etc(trainerObj, npc_running_behaviour_by_direction(trainerObj->mapobj_unk_18));
+ sub_805C774(trainerObj, npc_running_behaviour_by_direction(trainerObj->mapobj_unk_18));
+ sub_805C754(trainerObj);
+
+ playerObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+ if (FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(playerObj)
+ && !FieldObjectClearAnimIfSpecialAnimFinished(playerObj))
+ return 0;
+
+ sub_80597E8();
+ FieldObjectSetSpecialAnim(&gMapObjects[gPlayerAvatar.mapObjectId], GetFaceDirectionAnimId(GetOppositeDirection(trainerObj->mapobj_unk_18)));
+ task->data[0]++;
+ return 0;
+}
+
+s8 sub_8084534(u8 taskId, struct Task *task, struct MapObject *trainerObj) // technically only 1 parameter, but needs all 3 for TrainerSeeFuncList call.
+{
+ struct MapObject *playerObj = &gMapObjects[gPlayerAvatar.mapObjectId];
+
+ if ( !FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(playerObj)
+ || FieldObjectClearAnimIfSpecialAnimFinished(playerObj) )
+ SwitchTaskToFollowupFunc(taskId);
+
+ return 0;
+}
+
+s8 sub_8084578(u8 taskId, struct Task *task, struct MapObject *trainerObj)
+{
+ if(!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(trainerObj)
+ || FieldObjectClearAnimIfSpecialAnimFinished(trainerObj))
+ {
+ FieldObjectSetSpecialAnim(trainerObj, 0x59);
+ task->data[0]++;
+ }
+ return 0;
+}
+
+s8 sub_80845AC(u8 taskId, struct Task *task, struct MapObject *trainerObj)
+{
+ if ( FieldObjectClearAnimIfSpecialAnimFinished(trainerObj) )
+ task->data[0] = 3;
+
+ return 0;
+}
+
+s8 sub_80845C8(u8 taskId, struct Task *task, struct MapObject *trainerObj)
+{
+ if(!FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(trainerObj)
+ || FieldObjectClearAnimIfSpecialAnimFinished(trainerObj))
+ {
+ FieldObjectSetSpecialAnim(trainerObj, 0x3E);
+ task->data[0]++;
+ }
+ return 0;
+}
+
+s8 sub_80845FC(u8 taskId, struct Task *task, struct MapObject *trainerObj)
+{
+ if(FieldObjectCheckIfSpecialAnimFinishedOrInactive(trainerObj))
+ {
+ gUnknown_0202FF84[0] = trainerObj->coords2.x;
+ gUnknown_0202FF84[1] = trainerObj->coords2.y;
+ gUnknown_0202FF84[2] = gSprites[trainerObj->spriteId].subpriority - 1;
+ gUnknown_0202FF84[3] = 2;
+ task->data[4] = FieldEffectStart(49);
+ task->data[0]++;
+ }
+ return 0;
+}
+
+s8 sub_8084654(u8 taskId, struct Task *task, struct MapObject *trainerObj)
+{
+ struct Sprite *sprite;
+
+ if(gSprites[task->data[4]].animCmdIndex == 2)
+ {
+ trainerObj->mapobj_bit_26 = 0;
+ trainerObj->mapobj_bit_2 = 1;
+
+ sprite = &gSprites[trainerObj->spriteId];
+ sprite->oam.priority = 2;
+ FieldObjectClearAnimIfSpecialAnimFinished(trainerObj);
+ FieldObjectSetSpecialAnim(trainerObj, sub_806084C(trainerObj->mapobj_unk_18));
+ task->data[0]++;
+ }
+ return 0;
+}
+
+s8 sub_80846C8(u8 taskId, struct Task *task, struct MapObject *trainerObj)
+{
+ if(!FieldEffectActiveListContains(49))
+ task->data[0] = 3;
+
+ return 0;
+}
+
+void sub_80846E4(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ struct MapObject *mapObj;
+
+ // another mapObj loaded into by loadword?
+ LoadWordFromTwoHalfwords(&task->data[1], &mapObj);
+ if(!task->data[7])
+ {
+ FieldObjectClearAnim(mapObj);
+ task->data[7]++;
+ }
+ gTrainerSeeFuncList2[task->data[0]](taskId, task, mapObj);
+ if(task->data[0] == 3 && !FieldEffectActiveListContains(49))
+ {
+ npc_set_running_behaviour_etc(mapObj, npc_running_behaviour_by_direction(mapObj->mapobj_unk_18));
+ sub_805C774(mapObj, npc_running_behaviour_by_direction(mapObj->mapobj_unk_18));
+ DestroyTask(taskId);
+ }
+ else
+ mapObj->mapobj_bit_7 = 0;
+}
+
+void sub_8084794(u32 var)
+{
+ StoreWordInTwoHalfwords(&gTasks[CreateTask(sub_80846E4, 0)].data[1], var);
+}
+
+void sub_80847C8(void)
+{
+ sub_80842FC(sub_80847D8);
+}
+
+void sub_80847D8(u8 taskId)
+{
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+}
diff --git a/src/truck_scene.c b/src/truck_scene.c
new file mode 100644
index 000000000..565851856
--- /dev/null
+++ b/src/truck_scene.c
@@ -0,0 +1,229 @@
+#include "global.h"
+#include "palette.h"
+#include "task.h"
+#include "script.h"
+#include "songs.h"
+#include "sound.h"
+
+extern s8 gTruckCamera_HorizontalTable[];
+
+extern void SetCameraPanning(s16 a1, s16 a2);
+extern void sub_805BD90(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y);
+
+void Task_Truck1(u8 taskId);
+void Task_Truck2(u8 taskId);
+void Task_Truck3(u8 taskId);
+void ExecuteTruckSequence(void);
+
+s32 GetTruckCameraBobbingY(int a1)
+{
+ s32 result;
+
+ if (!(a1 % 120))
+ return -1;
+ else if ((a1 % 10) <= 4)
+ return 1;
+
+ return 0;
+}
+
+s32 GetTruckBoxMovement(int a1) // for the box movement?
+{
+ s32 result;
+
+ if (!((a1 + 120) % 180))
+ return -1;
+
+ return 0;
+}
+
+void Task_Truck1(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ s16 cameraYpan;
+ s16 box1 = 0;
+ s16 box2 = 0;
+ s16 box3 = 0;
+ u8 mapNum, mapGroup;
+ register s16 zero asm("r4");
+
+ box1 = GetTruckBoxMovement(data[0] + 30) * 4; // box 1 happens 30 frames earlier than the other 2.
+ sub_805BD90(1, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, 3, box1 + 3);
+ box2 = GetTruckBoxMovement(data[0]) * 2;
+ sub_805BD90(2, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, 0, box2 - 3);
+ box3 = GetTruckBoxMovement(data[0]) * 4;
+ mapNum = gSaveBlock1.location.mapNum;
+ mapGroup = gSaveBlock1.location.mapGroup;
+ zero = 0;
+ sub_805BD90(3, mapNum, mapGroup, -3, box3);
+
+ data[0]++;
+
+ if (data[0] == 0x7530) // timer?
+ data[0] = zero;
+
+ cameraYpan = GetTruckCameraBobbingY(data[0]);
+ SetCameraPanning(0, cameraYpan);
+}
+
+void Task_Truck2(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ s16 cameraYpan;
+ s16 cameraXpan;
+ s16 box1;
+ s16 box2;
+ s16 box3;
+
+ data[0]++;
+ data[2]++;
+
+ if (data[0] > 5)
+ {
+ data[0] = 0;
+ data[1]++;
+ }
+ if ((u16)data[1] == 19)
+ {
+ DestroyTask(taskId);
+ }
+ else
+ {
+ if (gTruckCamera_HorizontalTable[data[1]] == 2)
+ gTasks[taskId].func = Task_Truck3;
+
+ cameraXpan = gTruckCamera_HorizontalTable[data[1]];
+ cameraYpan = GetTruckCameraBobbingY(data[2]);
+ SetCameraPanning(cameraXpan, cameraYpan);
+ box1 = GetTruckBoxMovement(data[2] + 30) * 4;
+ sub_805BD90(1, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, 3 - cameraXpan, box1 + 3);
+ box2 = GetTruckBoxMovement(data[2]) * 2;
+ sub_805BD90(2, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, -cameraXpan, box2 - 3);
+ box3 = GetTruckBoxMovement(data[2]) * 4;
+ sub_805BD90(3, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, -3 - cameraXpan, box3);
+ }
+}
+
+void Task_Truck3(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ s16 cameraXpan;
+ s16 cameraYpan;
+
+ data[0]++;
+
+ if (data[0] > 5)
+ {
+ data[0] = 0;
+ data[1]++;
+ }
+
+ if ((u16)data[1] == 19)
+ {
+ DestroyTask(taskId);
+ }
+ else
+ {
+ cameraXpan = gTruckCamera_HorizontalTable[data[1]];
+ cameraYpan = 0;
+ SetCameraPanning(cameraXpan, 0);
+ sub_805BD90(1, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, 3 - cameraXpan, cameraYpan + 3);
+ sub_805BD90(2, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, -cameraXpan, cameraYpan - 3);
+ sub_805BD90(3, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, -3 - cameraXpan, cameraYpan);
+ }
+}
+
+void Task_HandleTruckSequence(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ switch (data[0])
+ {
+ /*
+ Each case has a timer which is handled with data[1], incrementing
+ until it reaches the if function's condition, which sets the next task up.
+ */
+ case 0:
+ data[1]++;
+ if (data[1] == 90)
+ {
+ SetCameraPanningCallback(0);
+ data[1] = 0; // reset the timer.
+ data[2] = CreateTask(Task_Truck1, 0xA);
+ data[0] = 1; // run the next case.
+ PlaySE(SE_TRACK_MOVE);
+ }
+ break;
+ case 1:
+ data[1]++;
+ if (data[1] == 150)
+ {
+ pal_fill_black();
+ data[1] = 0;
+ data[0] = 2;
+ }
+ break;
+ case 2:
+ data[1]++;
+ if(!gPaletteFade.active && data[1] > 300)
+ {
+ data[1] = 0;
+ DestroyTask(data[2]);
+ data[3] = CreateTask(Task_Truck2, 0xA);
+ data[0] = 3;
+ PlaySE(SE_TRACK_STOP);
+ }
+ break;
+ case 3:
+ if (!gTasks[data[3]].isActive) // is Truck2 no longer active (is Truck3 active?)
+ {
+ InstallCameraPanAheadCallback();
+ data[1] = 0;
+ data[0] = 4;
+ }
+ break;
+ case 4:
+ data[1]++;
+ if (data[1] == 90)
+ {
+ PlaySE(SE_TRACK_HAIK);
+ data[1] = 0;
+ data[0] = 5;
+ }
+ break;
+ case 5:
+ data[1]++;
+ if (data[1] == 120)
+ {
+ MapGridSetMetatileIdAt(11, 8, 520);
+ MapGridSetMetatileIdAt(11, 9, 528);
+ MapGridSetMetatileIdAt(11, 10, 536);
+ DrawWholeMapView();
+ PlaySE(SE_TRACK_DOOR);
+ DestroyTask(taskId);
+ ScriptContext2_Disable();
+ }
+ break;
+ }
+}
+
+void ExecuteTruckSequence(void)
+{
+ MapGridSetMetatileIdAt(11, 8, 525);
+ MapGridSetMetatileIdAt(11, 9, 533);
+ MapGridSetMetatileIdAt(11, 10, 541);
+ DrawWholeMapView();
+ ScriptContext2_Enable();
+ CpuFastFill(0, gPlttBufferFaded, 0x400);
+ CreateTask(Task_HandleTruckSequence, 0xA);
+}
+
+void EndTruckSequence(void)
+{
+ if (!FuncIsActiveTask(Task_HandleTruckSequence))
+ {
+ sub_805BD90(1, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, 3, 3);
+ sub_805BD90(2, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, 0, -3);
+ sub_805BD90(3, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup, -3, 0);
+ }
+}
diff --git a/src/var.c b/src/var.c
index b6639aa5f..08b109e6f 100644
--- a/src/var.c
+++ b/src/var.c
@@ -1,4 +1,5 @@
#include "global.h"
+#include "var.h"
extern u16 *gSpecialVars[];
diff --git a/src/wallclock.c b/src/wallclock.c
index 8ee04c36a..05e30a8cb 100644
--- a/src/wallclock.c
+++ b/src/wallclock.c
@@ -11,11 +11,10 @@
#include "sound.h"
//Functions that need to be put in headers
-void LZ77UnCompVram(const void *src, void *dest);
void remove_some_task(void);
void LoadCompressedObjectPic(void *);
-extern u16 gUnknown_0202E8CC;
+extern u16 gSpecialVar_0x8004;
extern u16 gMiscClockMale_Pal[];
extern u16 gMiscClockFemale_Pal[];
extern u8 gMiscClock_Gfx[];
@@ -119,7 +118,7 @@ static void LoadWallClockGraphics(void)
DmaClear16(3, PLTT, PLTT_SIZE);
LZ77UnCompVram(gMiscClock_Gfx, (void *)VRAM);
- if(gUnknown_0202E8CC == MALE)
+ if(gSpecialVar_0x8004 == MALE)
LoadPalette(gMiscClockMale_Pal, 0, 32);
else
LoadPalette(gMiscClockFemale_Pal, 0, 32);
diff --git a/src/wild_encounter.c b/src/wild_encounter.c
index f4befa466..151088cd6 100644
--- a/src/wild_encounter.c
+++ b/src/wild_encounter.c
@@ -1,21 +1,27 @@
#include "global.h"
+#include "abilities.h"
#include "fieldmap.h"
#include "pokemon.h"
#include "rng.h"
#include "script.h"
+#include "flag.h"
+#include "var.h"
-struct WildPokemon {
+struct WildPokemon
+{
u8 minLevel;
u8 maxLevel;
u16 species;
};
-struct WildPokemonInfo {
+struct WildPokemonInfo
+{
u8 encounterRate;
struct WildPokemon *wildPokemon;
};
-struct WildPokemonHeader {
+struct WildPokemonHeader
+{
u8 mapGroup;
u8 mapNum;
struct WildPokemonInfo *landMonsInfo;
@@ -26,26 +32,21 @@ struct WildPokemonHeader {
extern bool8 sub_805759C(u8);
extern void GetXYCoordsOneStepInFrontOfPlayer(void *, void *);
-extern u32 sub_80C8448(void);
-extern s16 sub_810CAE4(u8, u32);
+extern s16 sub_810CAE4(u8, struct Pokeblock *);
extern bool32 GetSafariZoneFlag(void);
extern u8 TestPlayerAvatarFlags(u8);
extern u8 MetatileBehavior_IsLandWildEncounter(u8);
extern u8 sub_81344CC(void);
extern u8 MetatileBehavior_IsWaterWildEncounter(u8);
-extern void sub_8081A00(void);
+extern void CheckForSafariZoneAndProceed(void);
extern u8 MetatileBehavior_IsBridge(u8);
extern void PlayerGetDestCoords(u16 *x, u16 *y);
extern void sub_80BEA50(u16);
extern void sav12_xor_increment(u8);
-extern u8 FlagGet(u16);
-extern u16 VarGet(u16);
extern int MapGridGetMetatileBehaviorAt(int x, int y);
+extern struct Pokeblock *SafariZoneGetActivePokeblock(void);
-extern u8 gWildEncountersDisabled;
-extern u16 gUnknown_0839DC00[];
-//extern u16 gUnknown_0839DC00[3][3];
-extern u32 gUnknown_0202FF80; //Feebas rng value
+extern u16 gRoute119WaterTileData[];
extern struct WildPokemonHeader gWildMonHeaders[];
extern struct Pokemon gEnemyParty[6];
extern struct Pokemon gPlayerParty[6];
@@ -53,220 +54,199 @@ extern u16 gScriptResult;
extern struct WildPokemon gWildFeebasRoute119Data;
extern u8 Event_RepelWoreOff[];
+EWRAM_DATA static u8 sWildEncountersDisabled = 0;
+EWRAM_DATA static u32 sFeebasRngValue = 0;
+
#define NUM_FEEBAS_SPOTS 6
-u16 sub_8084984(s16 x, s16 y, u8 c);
-bool8 CheckFeebas(void);
-u16 FeebasRandom(void);
-void FeebasSeedRng(u16 seed);
-u8 PickWildMon_Grass(void);
-u8 PickWildMon_Water(void);
-u8 PickWildMon_Fishing(u8 rod);
-u8 RandomInRange(struct WildPokemon *wildPokemon);
-u16 GetCurrentMapWildMonHeader(void);
-u8 PickWildMonNature(void);
-void CreateWildMon(u16 species, u8 b);
-bool8 GenerateWildMon(struct WildPokemonInfo *a, u8 b, u8 c);
-u16 GenerateFishingWildMon(struct WildPokemonInfo *a, u8 rod);
-bool8 SetUpMassOutbreakEncounter(u8 a);
-bool8 DoMassOutbreakEncounterTest(void);
-bool8 DoWildEncounterRateDiceRoll(u16 a);
-bool8 DoWildEncounterTest(u32 a, u8 b);
-bool8 DoGlobalWildEncounterDiceRoll(void);
-bool8 StandardWildEncounter(u16 a, u16 b);
-void RockSmashWildEncounter(void);
-u8 SweetScentWildEncounter(void);
-u8 GetFishingWildMonListHeader(void);
-void FishingWildEncounter(u8 rod);
-u16 GetLocalWildMon(u8 *a1);
-u16 GetMirageIslandMon(void);
-bool8 UpdateRepelCounter(void);
-bool8 RepelCheck(bool8 level);
-void ApplyFluteEncounterRateMod(u32 *a1);
-void ApplyCleanseTagEncounterRateMod(u32 *a1);
-
-
-void DisableWildEncounters(bool8 disable)
-{
- gWildEncountersDisabled = disable;
-}
+static u16 FeebasRandom(void);
+static void FeebasSeedRng(u16 seed);
+
+static bool8 RepelCheck(u8 level);
+static void ApplyFluteEncounterRateMod(u32 *encRate);
+static void ApplyCleanseTagEncounterRateMod(u32 *encRate);
-u16 sub_8084984(s16 x, s16 y, u8 c)
+void DisableWildEncounters(bool8 disabled)
{
- //odd, but needed to match
- u16 *arr = gUnknown_0839DC00;
- u16 *ptr = &arr[c * 3];
- u16 r9 = gUnknown_0839DC00[c * 3 + 1];
- u16 r6 = gUnknown_0839DC00[c * 3 + 2];
- u16 r5 = *ptr;
+ sWildEncountersDisabled = disabled;
+}
- while(r5 <= r9)
+static u16 GetRoute119WaterTileNum(s16 x, s16 y, u8 section)
+{
+ u16 xCur;
+ u16 yCur;
+ u16 yMin = gRoute119WaterTileData[section * 3 + 0];
+ u16 yMax = gRoute119WaterTileData[section * 3 + 1];
+ u16 tileNum = gRoute119WaterTileData[section * 3 + 2];
+
+ for (yCur = yMin; yCur <= yMax; yCur++)
{
- u16 i;
-
- for(i = 0; i < gMapHeader.mapData->width; i++)
+ for (xCur = 0; xCur < gMapHeader.mapData->width; xCur++)
{
- if(sub_805759C(MapGridGetMetatileBehaviorAt(i + 7, r5 + 7)) == TRUE)
+ if (sub_805759C(MapGridGetMetatileBehaviorAt(xCur + 7, yCur + 7)) == TRUE)
{
- r6++;
- if(x == i && y == r5)
- return r6;
+ tileNum++;
+ if (x == xCur && y == yCur)
+ return tileNum;
}
- //_08084A14
}
- r5++;
}
-
- return r6 + 1;
+ return tileNum + 1;
}
-bool8 CheckFeebas(void)
+static bool8 CheckFeebas(void)
{
+ u8 i;
u16 feebasSpots[6];
s16 x;
s16 y;
- u8 r7 = 0;
- u8 i;
- u16 foo;
+ u8 route119section = 0;
+ u16 waterTileNum;
- if(gSaveBlock1.location.mapGroup == 0 && gSaveBlock1.location.mapNum == 0x22)
+ if (gSaveBlock1.location.mapGroup == 0 && gSaveBlock1.location.mapNum == 0x22)
{
GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
x -= 7;
y -= 7;
-
- // *sigh* whatever gets the code to match!
+
+#ifdef NONMATCHING
+ if (y >= gRoute119WaterTileData[3 * 1 + 0] && y <= gRoute119WaterTileData[3 * 1 + 1])
+ route119section = 1;
+ if (y >= gRoute119WaterTileData[3 * 2 + 0] && y <= gRoute119WaterTileData[3 * 2 + 1])
+ route119section = 2;
+#else
{
- register u16 *arr asm("r0");
- if(y >= (arr = gUnknown_0839DC00)[3 * 1 + 0] && y <= arr[3 * 1 + 1])
- r7 = 1;
- if(y >= arr[3 * 2 + 0] && y <= arr[3 * 2 + 1])
- r7 = 2;
+ register u16 *arr asm("r0");
+ if (y >= (arr = gRoute119WaterTileData)[3 * 1 + 0] && y <= arr[3 * 1 + 1])
+ route119section = 1;
+ if (y >= arr[3 * 2 + 0] && y <= arr[3 * 2 + 1])
+ route119section = 2;
}
- //_08084A8E
-
- if(Random() % 100 > 49) //Why not just do (Random() & 1) to get a 50% chance?
+#endif
+
+ if (Random() % 100 > 49) //50% chance of encountering Feebas
return FALSE;
- //_08084AC8
- FeebasSeedRng(gSaveBlock1.feebasLocationSeed);
- for(i = 0; i != NUM_FEEBAS_SPOTS;)
+ FeebasSeedRng(gSaveBlock1.easyChatPairs[0].unk2);
+ for (i = 0; i != NUM_FEEBAS_SPOTS;)
{
feebasSpots[i] = FeebasRandom() % 447;
- if(feebasSpots[i] == 0)
+ if (feebasSpots[i] == 0)
feebasSpots[i] = 447;
- if(feebasSpots[i] < 1 || feebasSpots[i] >= 4)
+ if (feebasSpots[i] < 1 || feebasSpots[i] >= 4)
i++;
}
- foo = sub_8084984(x, y, r7);
- for(i = 0; i < NUM_FEEBAS_SPOTS; i++)
+ waterTileNum = GetRoute119WaterTileNum(x, y, route119section);
+ for (i = 0; i < NUM_FEEBAS_SPOTS; i++)
{
- if(foo == feebasSpots[i])
+ if (waterTileNum == feebasSpots[i])
return TRUE;
}
}
- //_08084B38
return FALSE;
}
-u16 FeebasRandom(void)
+static u16 FeebasRandom(void)
{
- gUnknown_0202FF80 = 12345 + 0x41C64E6D * gUnknown_0202FF80;
- return gUnknown_0202FF80 >> 16;
+ sFeebasRngValue = 12345 + 0x41C64E6D * sFeebasRngValue;
+ return sFeebasRngValue >> 16;
}
-void FeebasSeedRng(u16 seed)
+static void FeebasSeedRng(u16 seed)
{
- gUnknown_0202FF80 = seed;
+ sFeebasRngValue = seed;
}
-u8 PickWildMon_Grass(void)
+static u8 ChooseWildMonIndex_Land(void)
{
- u8 val = Random() % 100;
+ u8 rand = Random() % 100;
- if(val < 20)
+ if (rand < 20) //20% chance
return 0;
- if(val >= 20 && val < 40)
+ if (rand >= 20 && rand < 40) //20% chance
return 1;
- if(val >= 40 && val < 50)
+ if (rand >= 40 && rand < 50) //10% chance
return 2;
- if(val >= 50 && val < 60)
+ if (rand >= 50 && rand < 60) //10% chance
return 3;
- if(val >= 60 && val < 70)
+ if (rand >= 60 && rand < 70) //10% chance
return 4;
- if(val >= 70 && val < 80)
+ if (rand >= 70 && rand < 80) //10% chance
return 5;
- if(val >= 80 && val < 85)
+ if (rand >= 80 && rand < 85) //5% chance
return 6;
- if(val >= 85 && val < 90)
+ if (rand >= 85 && rand < 90) //5% chance
return 7;
- if(val >= 90 && val < 94)
+ if (rand >= 90 && rand < 94) //4% chance
return 8;
- if(val >= 94 && val < 98)
+ if (rand >= 94 && rand < 98) //4% chance
return 9;
- if(val == 98)
+ if (rand == 98) //1% chance
return 10;
- else
+ else //1% chance
return 11;
}
-u8 PickWildMon_Water(void)
+static u8 ChooseWildMonIndex_Water(void)
{
- u8 val = Random() % 100;
+ u8 rand = Random() % 100;
- if(val < 60)
+ if (rand < 60) //60% chance
return 0;
- if(val >= 60 && val < 90)
+ if (rand >= 60 && rand < 90) //30% chance
return 1;
- if(val >= 90 && val < 95)
+ if (rand >= 90 && rand < 95) //5% chance
return 2;
- if(val >= 95 && val < 99)
- return 3;
- else
+ if (rand >= 95 && rand < 99) //4% chance
+ return 3;
+ else //1% chance
return 4;
}
-u8 PickWildMon_Fishing(u8 rod)
+enum
{
- u32 r5 = 0;
- u8 val = Random() % 100;
+ OLD_ROD,
+ GOOD_ROD,
+ SUPER_ROD
+};
- switch(rod)
+static u8 ChooseWildMonIndex_Fishing(u8 rod)
+{
+ u8 wildMonIndex = 0;
+ u8 rand = Random() % 100;
+
+ switch (rod)
{
- case 0: //old rod?
- if(val < 70)
- r5 = 0;
- else
- r5 = 1;
- return r5;
- case 1: //good rod?
- if(val < 60)
- r5 = 2;
- if(val >= 60 && val < 80)
- r5 = 3;
- if(val >= 80 && val < 100)
- r5 = 4;
- return r5;
- case 2: //super rod?
- if(val < 40)
- r5 = 5;
- if(val >= 40 && val < 80)
- r5 = 6;
- if(val >= 80 && val < 95)
- r5 = 7;
- if(val >= 95 && val < 99)
- r5 = 8;
- if(val == 99)
- r5 = 9;
- return r5;
- default:
- return r5;
+ case OLD_ROD:
+ if (rand < 70) //70% chance
+ wildMonIndex = 0;
+ else //30% chance
+ wildMonIndex = 1;
+ break;
+ case GOOD_ROD:
+ if (rand < 60) //60% chance
+ wildMonIndex = 2;
+ if (rand >= 60 && rand < 80) //20% chance
+ wildMonIndex = 3;
+ if (rand >= 80 && rand < 100) //20% chance
+ wildMonIndex = 4;
+ break;
+ case SUPER_ROD:
+ if (rand < 40) //40% chance
+ wildMonIndex = 5;
+ if (rand >= 40 && rand < 80) //40% chance
+ wildMonIndex = 6;
+ if (rand >= 80 && rand < 95) //15% chance
+ wildMonIndex = 7;
+ if (rand >= 95 && rand < 99) //4% chance
+ wildMonIndex = 8;
+ if (rand == 99) //1% chance
+ wildMonIndex = 9;
+ break;
}
-
- return r5;
+ return wildMonIndex;
}
-//Chooses level of wild Pokemon
-u8 RandomInRange(struct WildPokemon *wildPokemon)
+static u8 ChooseWildMonLevel(struct WildPokemon *wildPokemon)
{
u8 min;
u8 max;
@@ -274,7 +254,7 @@ u8 RandomInRange(struct WildPokemon *wildPokemon)
u8 rand;
//Make sure minimum level is less than maximum level
- if(wildPokemon->maxLevel >= wildPokemon->minLevel)
+ if (wildPokemon->maxLevel >= wildPokemon->minLevel)
{
min = wildPokemon->minLevel;
max = wildPokemon->maxLevel;
@@ -289,180 +269,160 @@ u8 RandomInRange(struct WildPokemon *wildPokemon)
return min + rand;
}
-u16 GetCurrentMapWildMonHeader(void)
+static u16 GetCurrentMapWildMonHeader(void)
{
u16 i;
- for(i = 0; gWildMonHeaders[i].mapGroup != 0xFF; i++)
+ for (i = 0; gWildMonHeaders[i].mapGroup != 0xFF; i++)
{
- if(gWildMonHeaders[i].mapGroup == gSaveBlock1.location.mapGroup &&
+ if (gWildMonHeaders[i].mapGroup == gSaveBlock1.location.mapGroup &&
gWildMonHeaders[i].mapNum == gSaveBlock1.location.mapNum)
return i;
}
return -1;
}
-u8 PickWildMonNature(void)
+static u8 PickWildMonNature(void)
{
- u16 foo;
- u32 r7;
- u8 arr[25];
+ u8 i;
+ u8 j;
+ struct Pokeblock *safariPokeblock;
+ u8 natures[25];
- if(GetSafariZoneFlag() == TRUE && Random() % 100 < 80)
+ if (GetSafariZoneFlag() == TRUE && Random() % 100 < 80)
{
- r7 = sub_80C8448();
-
- if(r7)
+ safariPokeblock = SafariZoneGetActivePokeblock();
+ if (safariPokeblock != NULL)
{
- u8 i;
-
- for(i = 0; i < 25; i++)
- arr[i] = i;
- //_08084E04
- for(i = 0; i < 24; i++)
+ for (i = 0; i < 25; i++)
+ natures[i] = i;
+ for (i = 0; i < 24; i++)
{
- u8 j;
-
- for(j = i + 1; j < 25; j++)
+ for (j = i + 1; j < 25; j++)
{
- if(Random() & 1)
+ if (Random() & 1)
{
- u8 temp = arr[i];
+ u8 temp = natures[i];
- arr[i] = arr[j];
- arr[j] = temp;
+ natures[i] = natures[j];
+ natures[j] = temp;
}
}
}
- //_08084E3E
- for(i = 0; i < 25; i++)
+ for (i = 0; i < 25; i++)
{
- if(sub_810CAE4(arr[i], r7) > 0)
- return arr[i];
+ if (sub_810CAE4(natures[i], safariPokeblock) > 0)
+ return natures[i];
}
}
}
- //_08084E5E
return Random() % 25;
}
-void CreateWildMon(u16 species, u8 b)
+static void CreateWildMon(u16 species, u8 b)
{
ZeroEnemyPartyMons();
CreateMonWithNature(&gEnemyParty[0], species, b, 0x20, PickWildMonNature());
}
-bool8 GenerateWildMon(struct WildPokemonInfo *a, u8 b, u8 c)
+static bool8 GenerateWildMon(struct WildPokemonInfo *wildMonInfo, u8 area, bool8 checkRepel)
{
- u8 mon = 0;
+ u8 wildMonIndex = 0;
u8 level;
- switch(b)
+ switch (area)
{
- case 0:
- mon = PickWildMon_Grass();
- break;
- case 1:
- mon = PickWildMon_Water();
- break;
- case 2:
- mon = PickWildMon_Water();
- break;
- default:
- break;
- }
-
- level = RandomInRange(&a->wildPokemon[mon]);
- if(c == 1 && RepelCheck(level) == 0)
- {
- return 0;
+ case 0:
+ wildMonIndex = ChooseWildMonIndex_Land();
+ break;
+ case 1:
+ wildMonIndex = ChooseWildMonIndex_Water();
+ break;
+ case 2:
+ wildMonIndex = ChooseWildMonIndex_Water();
+ break;
}
+ level = ChooseWildMonLevel(&wildMonInfo->wildPokemon[wildMonIndex]);
+ if (checkRepel == TRUE && RepelCheck(level) == FALSE)
+ return FALSE;
else
{
- CreateWildMon(a->wildPokemon[mon].species, level);
- return 1;
+ CreateWildMon(wildMonInfo->wildPokemon[wildMonIndex].species, level);
+ return TRUE;
}
}
-u16 GenerateFishingWildMon(struct WildPokemonInfo *a, u8 rod)
+static u16 GenerateFishingWildMon(struct WildPokemonInfo *wildMonInfo, u8 rod)
{
- u8 mon = PickWildMon_Fishing(rod);
- u8 level = RandomInRange(&a->wildPokemon[mon]);
+ u8 wildMonIndex = ChooseWildMonIndex_Fishing(rod);
+ u8 level = ChooseWildMonLevel(&wildMonInfo->wildPokemon[wildMonIndex]);
- CreateWildMon(a->wildPokemon[mon].species, level);
- return a->wildPokemon[mon].species;
+ CreateWildMon(wildMonInfo->wildPokemon[wildMonIndex].species, level);
+ return wildMonInfo->wildPokemon[wildMonIndex].species;
}
-bool8 SetUpMassOutbreakEncounter(u8 a)
+static bool8 SetUpMassOutbreakEncounter(bool8 checkRepel)
{
u16 i;
- if(a == 1 && RepelCheck(gSaveBlock1.outbreakPokemonLevel) == 0)
- {
- return 0;
- }
- //_08084F78
- CreateWildMon(gSaveBlock1.outbreakPokemonSpecies, gSaveBlock1.outbreakPokemonLevel);
- for(i = 0; i < 4; i++)
+ if (checkRepel == TRUE && RepelCheck(gSaveBlock1.outbreakPokemonLevel) == 0)
+ return FALSE;
+ else
{
- SetMonMoveSlot(&gEnemyParty[0], gSaveBlock1.outbreakPokemonMoves[i], i);
+ CreateWildMon(gSaveBlock1.outbreakPokemonSpecies, gSaveBlock1.outbreakPokemonLevel);
+ for (i = 0; i < 4; i++)
+ SetMonMoveSlot(&gEnemyParty[0], gSaveBlock1.outbreakPokemonMoves[i], i);
+ return TRUE;
}
- return 1;
}
-bool8 DoMassOutbreakEncounterTest(void)
+static bool8 DoMassOutbreakEncounterTest(void)
{
- if(gSaveBlock1.outbreakPokemonSpecies &&
- gSaveBlock1.location.mapNum == gSaveBlock1.outbreakLocationMapNum &&
- gSaveBlock1.location.mapGroup == gSaveBlock1.outbreakLocationMapGroup)
+ if (gSaveBlock1.outbreakPokemonSpecies != 0
+ && gSaveBlock1.location.mapNum == gSaveBlock1.outbreakLocationMapNum
+ && gSaveBlock1.location.mapGroup == gSaveBlock1.outbreakLocationMapGroup)
{
- if(Random() % 100 < gSaveBlock1.outbreakPokemonProbability)
- return 1;
+ if (Random() % 100 < gSaveBlock1.outbreakPokemonProbability)
+ return TRUE;
}
- return 0;
+ return FALSE;
}
-bool8 DoWildEncounterRateDiceRoll(u16 a)
+static bool8 DoWildEncounterRateDiceRoll(u16 encounterRate)
{
- if(Random() % 2880 < a)
+ if (Random() % 2880 < encounterRate)
return TRUE;
else
return FALSE;
}
-bool8 DoWildEncounterTest(u32 encounterRate, u8 b)
+static bool8 DoWildEncounterTest(u32 encounterRate, bool8 ignoreAbility)
{
encounterRate *= 16;
-
- if(TestPlayerAvatarFlags(6))
- {
+ if (TestPlayerAvatarFlags(6))
encounterRate = encounterRate * 80 / 100;
- }
- //_0808507E
ApplyFluteEncounterRateMod(&encounterRate);
ApplyCleanseTagEncounterRateMod(&encounterRate);
-
- if(b == 0)
+ if (!ignoreAbility)
{
// UB: Too few arguments for function 'GetMonData'
- if(!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_BIT3))
+ if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_BIT3))
{
u32 ability = GetMonAbility(&gPlayerParty[0]);
- if(ability == 1)
+ if (ability == ABILITY_STENCH)
encounterRate /= 2;
- if(ability == 0x23)
+ if (ability == ABILITY_ILLUMINATE)
encounterRate *= 2;
}
}
- //_080850BA
- if(encounterRate > 2880)
+ if (encounterRate > 2880)
encounterRate = 2880;
return DoWildEncounterRateDiceRoll(encounterRate);
}
-bool8 DoGlobalWildEncounterDiceRoll(void)
+static bool8 DoGlobalWildEncounterDiceRoll(void)
{
- if(Random() % 100 >= 60)
+ if (Random() % 100 >= 60)
return FALSE;
else
return TRUE;
@@ -470,28 +430,29 @@ bool8 DoGlobalWildEncounterDiceRoll(void)
bool8 StandardWildEncounter(u16 a, u16 b)
{
- u16 unk;
+ u16 headerNum;
struct Roamer *roamer;
- if(gWildEncountersDisabled != TRUE)
+ if (sWildEncountersDisabled == TRUE)
+ return 0;
+ else
{
- unk = GetCurrentMapWildMonHeader();
-
- if(unk != 0xFFFF)
+ headerNum = GetCurrentMapWildMonHeader();
+ if (headerNum != 0xFFFF)
{
- if(MetatileBehavior_IsLandWildEncounter(a) == 1)
+ if (MetatileBehavior_IsLandWildEncounter(a) == TRUE)
{
- if(gWildMonHeaders[unk].landMonsInfo)
+ if (gWildMonHeaders[headerNum].landMonsInfo)
{
- if(b != a && !DoGlobalWildEncounterDiceRoll())
+ if (b != a && !DoGlobalWildEncounterDiceRoll())
return 0;
- if(DoWildEncounterTest(gWildMonHeaders[unk].landMonsInfo->encounterRate, 0) == TRUE)
+ if (DoWildEncounterTest(gWildMonHeaders[headerNum].landMonsInfo->encounterRate, 0) == TRUE)
{
- if(sub_81344CC() == TRUE)
+ if (sub_81344CC() == TRUE)
{
roamer = &gSaveBlock1.roamer;
- if(RepelCheck(roamer->level))
+ if (RepelCheck(roamer->level))
{
sub_8081A5C();
return 1;
@@ -499,12 +460,12 @@ bool8 StandardWildEncounter(u16 a, u16 b)
}
else
{
- if(DoMassOutbreakEncounterTest() == TRUE && SetUpMassOutbreakEncounter(1) == TRUE)
+ if (DoMassOutbreakEncounterTest() == TRUE && SetUpMassOutbreakEncounter(1) == TRUE)
{
- sub_8081A00();
+ CheckForSafariZoneAndProceed();
return 1;
}
- if (GenerateWildMon(gWildMonHeaders[unk].landMonsInfo, 0, 1) == 1)
+ if (GenerateWildMon(gWildMonHeaders[headerNum].landMonsInfo, 0, TRUE) == TRUE)
{
goto label;
}
@@ -512,37 +473,34 @@ bool8 StandardWildEncounter(u16 a, u16 b)
}
}
}
- else
+ else if (MetatileBehavior_IsWaterWildEncounter(a) == TRUE
+ || (TestPlayerAvatarFlags(8) && MetatileBehavior_IsBridge(a) == TRUE))
{
- //_080851D8
- if(MetatileBehavior_IsWaterWildEncounter(a) == TRUE || TestPlayerAvatarFlags(8) && MetatileBehavior_IsBridge(a) == TRUE)
+ if (gWildMonHeaders[headerNum].waterMonsInfo)
{
- if(gWildMonHeaders[unk].waterMonsInfo)
- {
- if(b != a && !DoGlobalWildEncounterDiceRoll())
- return 0;
+ if (b != a && !DoGlobalWildEncounterDiceRoll())
+ return 0;
- if(DoWildEncounterTest(gWildMonHeaders[unk].waterMonsInfo->encounterRate, 0) == TRUE)
+ if (DoWildEncounterTest(gWildMonHeaders[headerNum].waterMonsInfo->encounterRate, 0) == TRUE)
+ {
+ if (sub_81344CC() == TRUE)
{
- if(sub_81344CC() == TRUE)
+ roamer = &gSaveBlock1.roamer;
+ if (RepelCheck(roamer->level))
{
- roamer = &gSaveBlock1.roamer;
- if(RepelCheck(roamer->level))
- {
- sub_8081A5C();
- return 1;
- }
+ sub_8081A5C();
+ return 1;
}
- else
+ }
+ else
+ {
+ //_08085268
+ if (GenerateWildMon(gWildMonHeaders[headerNum].waterMonsInfo, 1, TRUE) == TRUE)
{
- //_08085268
- if(GenerateWildMon(gWildMonHeaders[unk].waterMonsInfo, 1, 1) == 1)
- {
- label:
- //_0808527A
- sub_8081A00();
- return 1;
- }
+ label:
+ //_0808527A
+ CheckForSafariZoneAndProceed();
+ return 1;
}
}
}
@@ -557,19 +515,19 @@ void RockSmashWildEncounter(void)
{
u16 headerNum = GetCurrentMapWildMonHeader();
- if(headerNum != 0xFFFF)
+ if (headerNum != 0xFFFF)
{
struct WildPokemonInfo *wildPokemonInfo = gWildMonHeaders[headerNum].rockSmashMonsInfo;
- if(wildPokemonInfo == NULL)
+ if (wildPokemonInfo == NULL)
{
gScriptResult = 0;
return;
}
- else if(DoWildEncounterTest(wildPokemonInfo->encounterRate, 1) == TRUE &&
- GenerateWildMon(wildPokemonInfo, 2, 1) == 1)
+ else if (DoWildEncounterTest(wildPokemonInfo->encounterRate, 1) == TRUE
+ && GenerateWildMon(wildPokemonInfo, 2, TRUE) == TRUE)
{
- sub_8081A00();
+ CheckForSafariZoneAndProceed();
gScriptResult = 1;
return;
}
@@ -578,7 +536,7 @@ void RockSmashWildEncounter(void)
return;
}
-u8 SweetScentWildEncounter(void)
+bool8 SweetScentWildEncounter(void)
{
s16 x;
s16 y;
@@ -586,75 +544,60 @@ u8 SweetScentWildEncounter(void)
struct WildPokemonInfo *wildPokemonInfo;
PlayerGetDestCoords(&x, &y);
- //headerNum = GetCurrentMapWildMonHeader();
- if((headerNum = GetCurrentMapWildMonHeader()) != 0xFFFF)
+ if ((headerNum = GetCurrentMapWildMonHeader()) != 0xFFFF)
{
- if(MetatileBehavior_IsLandWildEncounter(MapGridGetMetatileBehaviorAt(x, y)) == 1)
+ if (MetatileBehavior_IsLandWildEncounter(MapGridGetMetatileBehaviorAt(x, y)) == 1)
{
wildPokemonInfo = gWildMonHeaders[headerNum].landMonsInfo;
-
- if(wildPokemonInfo == NULL)
- return 0;
-
- if(sub_81344CC() == 1)
+ if (wildPokemonInfo == NULL)
+ return FALSE;
+ if (sub_81344CC() == TRUE)
{
- //_080853BC
sub_8081A5C();
- return 1;
+ return TRUE;
}
-
- if(DoMassOutbreakEncounterTest() == 1)
+ if (DoMassOutbreakEncounterTest() == TRUE)
SetUpMassOutbreakEncounter(0);
else
- //_08085374
- GenerateWildMon(wildPokemonInfo, 0, 0);
- //_080853D2
- sub_8081A00();
- return 1;
+ GenerateWildMon(wildPokemonInfo, 0, FALSE);
+ CheckForSafariZoneAndProceed();
+ return TRUE;
}
- //_08085380
- else
+ else if (MetatileBehavior_IsWaterWildEncounter(MapGridGetMetatileBehaviorAt(x, y)) == 1)
{
- if(MetatileBehavior_IsWaterWildEncounter(MapGridGetMetatileBehaviorAt(x, y)) == 1)
+ wildPokemonInfo = gWildMonHeaders[headerNum].waterMonsInfo;
+ if (wildPokemonInfo == NULL)
+ return FALSE;
+ if (sub_81344CC() == TRUE)
{
- wildPokemonInfo = gWildMonHeaders[headerNum].waterMonsInfo;
-
- if(wildPokemonInfo == NULL)
- return 0;
-
- if(sub_81344CC() == 1)
- {
- sub_8081A5C();
- return 1;
- }
- else
- //_080853C8
- GenerateWildMon(wildPokemonInfo, 1, 0);
- sub_8081A00();
- return 1;
+ sub_8081A5C();
+ return TRUE;
}
+ GenerateWildMon(wildPokemonInfo, 1, FALSE);
+ CheckForSafariZoneAndProceed();
+ return TRUE;
}
}
- return 0;
+ return FALSE;
}
-u8 GetFishingWildMonListHeader(void)
+bool8 GetFishingWildMonListHeader(void)
{
u16 headerNum = GetCurrentMapWildMonHeader();
- if(headerNum != 0xFFFF && gWildMonHeaders[headerNum].fishingMonsInfo != NULL)
- return 1;
+ if (headerNum != 0xFFFF && gWildMonHeaders[headerNum].fishingMonsInfo != NULL)
+ return TRUE;
else
- return 0;
+ return FALSE;
}
void FishingWildEncounter(u8 rod)
{
u16 species;
- if(CheckFeebas() == TRUE)
+ if (CheckFeebas() == TRUE)
{
- u8 level = RandomInRange(&gWildFeebasRoute119Data);
+ u8 level = ChooseWildMonLevel(&gWildFeebasRoute119Data);
species = gWildFeebasRoute119Data.species;
CreateWildMon(species, level);
@@ -667,7 +610,7 @@ void FishingWildEncounter(u8 rod)
}
sav12_xor_increment(12);
sub_80BEA50(species);
- sub_8081A00();
+ CheckForSafariZoneAndProceed();
}
u16 GetLocalWildMon(bool8 *isWaterMon)
@@ -678,34 +621,29 @@ u16 GetLocalWildMon(bool8 *isWaterMon)
*isWaterMon = FALSE;
headerNum = GetCurrentMapWildMonHeader();
- if(headerNum == 0xFFFF)
+ if (headerNum == 0xFFFF)
return 0;
-
landMonsInfo = gWildMonHeaders[headerNum].landMonsInfo;
waterMonsInfo = gWildMonHeaders[headerNum].waterMonsInfo;
-
- if (!landMonsInfo && !waterMonsInfo)
+ //Neither
+ if (landMonsInfo == NULL && waterMonsInfo == NULL)
return 0;
-
- if (landMonsInfo && !waterMonsInfo)
- {
- return landMonsInfo->wildPokemon[PickWildMon_Grass()].species;
- }
-
- if (!landMonsInfo && waterMonsInfo)
+ //Land Pokemon
+ if (landMonsInfo != NULL && waterMonsInfo == NULL)
+ return landMonsInfo->wildPokemon[ChooseWildMonIndex_Land()].species;
+ //Water Pokemon
+ if (landMonsInfo == NULL && waterMonsInfo != NULL)
{
*isWaterMon = TRUE;
- return waterMonsInfo->wildPokemon[PickWildMon_Water()].species;
+ return waterMonsInfo->wildPokemon[ChooseWildMonIndex_Water()].species;
}
-
+ //Either land or water Pokemon
if ((Random() % 100) < 80)
- {
- return landMonsInfo->wildPokemon[PickWildMon_Grass()].species;
- }
+ return landMonsInfo->wildPokemon[ChooseWildMonIndex_Land()].species;
else
{
*isWaterMon = TRUE;
- return waterMonsInfo->wildPokemon[PickWildMon_Water()].species;
+ return waterMonsInfo->wildPokemon[ChooseWildMonIndex_Water()].species;
}
}
@@ -713,25 +651,25 @@ u16 GetMirageIslandMon(void)
{
u16 headerNum = GetCurrentMapWildMonHeader();
- if(headerNum != 0xFFFF)
+ if (headerNum != 0xFFFF)
{
struct WildPokemonInfo *waterMonsInfo = gWildMonHeaders[headerNum].waterMonsInfo;
- if(waterMonsInfo)
- return waterMonsInfo->wildPokemon[PickWildMon_Water()].species;
+ if (waterMonsInfo)
+ return waterMonsInfo->wildPokemon[ChooseWildMonIndex_Water()].species;
}
return 0;
}
bool8 UpdateRepelCounter(void)
{
- u16 steps = VarGet(0x4021);
+ u16 steps = VarGet(VAR_REPEL_STEP_COUNT);
- if(steps != 0)
+ if (steps != 0)
{
steps--;
- VarSet(0x4021, steps);
- if(steps == 0)
+ VarSet(VAR_REPEL_STEP_COUNT, steps);
+ if (steps == 0)
{
ScriptContext1_SetupScript(Event_RepelWoreOff);
return TRUE;
@@ -741,20 +679,20 @@ bool8 UpdateRepelCounter(void)
}
//Returns FALSE if Repel prevents wild Pokemon at the specified level from appearing
-bool8 RepelCheck(bool8 level)
+static bool8 RepelCheck(u8 level)
{
u8 i;
- if(!VarGet(0x4021))
+ if (!VarGet(VAR_REPEL_STEP_COUNT))
return TRUE;
else
{
- for(i = 0; i < 6; i++)
+ for (i = 0; i < 6; i++)
{
// UB: Too few arguments for function 'GetMonData'
- if(GetMonData(&gPlayerParty[i], MON_DATA_HP) && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG))
+ if (GetMonData(&gPlayerParty[i], MON_DATA_HP) && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG))
{
- if(level < (u8)GetMonData(&gPlayerParty[i], MON_DATA_LEVEL))
+ if (level < (u8)GetMonData(&gPlayerParty[i], MON_DATA_LEVEL))
return FALSE;
else
return TRUE;
@@ -764,17 +702,17 @@ bool8 RepelCheck(bool8 level)
}
}
-void ApplyFluteEncounterRateMod(u32 *a1)
+static void ApplyFluteEncounterRateMod(u32 *encRate)
{
- if(FlagGet(0x84D) == 1)
- *a1 = *a1 + *a1 / 2;
- else if(FlagGet(0x84E) == 1)
- *a1 = *a1 / 2;
+ if (FlagGet(SYS_ENC_UP_ITEM) == TRUE)
+ *encRate += *encRate / 2;
+ else if (FlagGet(SYS_ENC_DOWN_ITEM) == TRUE)
+ *encRate = *encRate / 2;
}
-void ApplyCleanseTagEncounterRateMod(u32 *a1)
+static void ApplyCleanseTagEncounterRateMod(u32 *encRate)
{
// UB: Too few arguments for function 'GetMonData'
- if(GetMonData(&gPlayerParty[0], MON_DATA_HELD_ITEM) == 0xBE)
- *a1 = *a1 * 2 / 3;
+ if (GetMonData(&gPlayerParty[0], MON_DATA_HELD_ITEM) == 0xBE)
+ *encRate = *encRate * 2 / 3;
}
diff --git a/sym_bss.txt b/sym_bss.txt
index 3be327b3f..c7e0b5d6e 100644
--- a/sym_bss.txt
+++ b/sym_bss.txt
@@ -86,36 +86,13 @@ gUnknown_030005A6: @ 30005A6
.include "src/script.o"
.include "src/start_menu.o"
.include "src/menu.o"
-
- .align 2
-gUnknown_030006C0: @ 30006C0
- .space 0x2
-
-gUnknown_030006C2: @ 30006C2
- .space 0x2
-
-gUnknown_030006C4: @ 30006C4
- .space 0x2
-
-gUnknown_030006C6: @ 30006C6
- .space 0x2
-
-gUnknown_030006C8: @ 30006C8
- .space 0x4
-
-gUnknown_030006CC: @ 30006CC
- .space 0x4
-
-gUnknown_030006D0: @ 30006D0
- .space 0x4
-
+ .include "src/tileset_anim.o"
.include "src/sound.o"
gUnknown_030006DC: @ 30006DC
.space 0x4
-gUnknown_030006E0: @ 30006E0
- .space 0x20
+ .include "src/field_effect.o"
gUnknown_03000700: @ 3000700
.space 0x1
@@ -184,7 +161,10 @@ gUnknown_030007B0: @ 30007B0
.space 0x4
gUnknown_030007B4: @ 30007B4
- .space 0x774
+ .space 0x4
+
+gUnknown_030007B8: @ 30007B8
+ .space 0x770
.include "src/agb_flash.o"
.include "src/siirtc.o"
diff --git a/sym_common.txt b/sym_common.txt
index b1a323e2a..252bcbfbc 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -108,40 +108,13 @@ gPlayerPartyCount: @ 3004350
.space 0x10
gPlayerParty: @ 3004360
- .space 0x64
-
-gUnknown_030043C4: @ 30043C4
- .space 0x64
-
-gUnknown_03004428: @ 3004428
- .space 0x64
-
-gUnknown_0300448C: @ 300448C
- .space 0x64
-
-gUnknown_030044F0: @ 30044F0
- .space 0x64
-
-gUnknown_03004554: @ 3004554
- .space 0x64
+ .space 0x258
gEnemyPartyCount: @ 30045B8
.space 0x8
gEnemyParty: @ 30045C0
- .space 0xC8
-
-gUnknown_03004688: @ 3004688
- .space 0x64
-
-gUnknown_030046EC: @ 30046EC
- .space 0x64
-
-gUnknown_03004750: @ 3004750
- .space 0x64
-
-gUnknown_030047B4: @ 30047B4
- .space 0x64
+ .space 0x258
.include "rng.o"
@@ -413,21 +386,4 @@ gUnknown_03005FA0: @ 3005FA0
.space 0x30
.include "m4a_2.o"
-
- .align 4
-gMPlay_BGM: @ 3007380
- .space 0x40
-
-gMPlay_SE1: @ 30073C0
- .space 0x40
-
-gMPlay_SE2: @ 3007400
- .space 0x40
-
-gMPlayMemAccArea: @ 3007440
- .space 0x10
-
-gMPlay_SE3: @ 3007450
- .space 0x40
-
.include "agb_flash.o"
diff --git a/sym_ewram.txt b/sym_ewram.txt
index ba6ac562d..5bcdf1363 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -418,34 +418,49 @@ gUnknown_0202E8C0: @ 202E8C0
gUnknown_0202E8C2: @ 202E8C2
.space 0x2
-gUnknown_0202E8C4: @ 202E8C4
+gSpecialVar_0x8000: @ 202E8C4
.space 0x2
-gUnknown_0202E8C6: @ 202E8C6
+gSpecialVar_0x8001: @ 202E8C6
.space 0x2
-gUnknown_0202E8C8: @ 202E8C8
- .space 0x4
+gSpecialVar_0x8002: @ 202E8C8
+ .space 0x2
-gUnknown_0202E8CC: @ 202E8CC
+gSpecialVar_0x8003: @ 202E8CA
.space 0x2
-gUnknown_0202E8CE: @ 202E8CE
+gSpecialVar_0x8004: @ 202E8CC
.space 0x2
-gUnknown_0202E8D0: @ 202E8D0
+gSpecialVar_0x8005: @ 202E8CE
.space 0x2
-gUnknown_0202E8D2: @ 202E8D2
- .space 0xA
+gSpecialVar_0x8006: @ 202E8D0
+ .space 0x2
+
+gSpecialVar_0x8007: @ 202E8D2
+ .space 0x2
+
+gSpecialVar_0x8008: @ 202E8D4
+ .space 0x2
+
+gSpecialVar_0x8009: @ 202E8D6
+ .space 0x2
+
+gSpecialVar_0x800A: @ 202E8D8
+ .space 0x2
+
+gSpecialVar_0x800B: @ 202E8DA
+ .space 0x2
gScriptResult: @ 202E8DC
.space 0x2
-gUnknown_0202E8DE: @ 202E8DE
+gScriptLastTalked: @ 202E8DE
.space 0x2
-gUnknown_0202E8E0: @ 202E8E0
+gScriptFacing: @ 202E8E0
.space 0x2
gUnknown_0202E8E2: @ 202E8E2
@@ -468,11 +483,7 @@ gUnknown_0202E8FA: @ 202E8FA
.include "src/start_menu.o"
.include "src/menu.o"
-
- .align 2
-gUnknown_0202E9D8: @ 202E9D8
- .space 0xF0
-
+ .include "src/tileset_anim.o"
.include "src/palette.o"
.align 2
@@ -563,38 +574,8 @@ gUnknown_0202FF38: @ 202FF38
gUnknown_0202FF58: @ 202FF58
.space 0x4
-gTrainerBattleMode: @ 202FF5C
- .space 0x2
-
-gTrainerBattleOpponent: @ 202FF5E
- .space 0x2
-
-gTrainerMapObjectLocalId: @ 202FF60
- .space 0x4
-
-gTrainerIntroSpeech: @ 202FF64
- .space 0x4
-
-gTrainerDefeatSpeech: @ 202FF68
- .space 0x4
-
-gTrainerVictorySpeech: @ 202FF6C
- .space 0x4
-
-gTrainerCannotBattleSpeech: @ 202FF70
- .space 0x4
-
-gTrainerBattleScriptReturnAddress: @ 202FF74
- .space 0x4
-
-gTrainerBattleEndScript: @ 202FF78
- .space 0x4
-
-gWildEncountersDisabled: @ 202FF7C
- .space 0x4
-
-gUnknown_0202FF80: @ 202FF80
- .space 0x4
+ .include "src/battle_setup.o"
+ .include "src/wild_encounter.o"
gUnknown_0202FF84: @ 202FF84
.space 0x4
@@ -617,7 +598,7 @@ gUnknown_0202FFA9: @ 202FFA9
gUnknown_0202FFAA: @ 202FFAA
.space 0xA
-gUnknown_0202FFB4: @ 202FFB4
+gPokedexView: @ 202FFB4
.space 0x4
gUnknown_0202FFB8: @ 202FFB8
@@ -743,7 +724,7 @@ gUnknown_0203855B: @ 203855B
gUnknown_0203855C: @ 203855C
.space 0x2
-word_203855E: @ 203855E
+gScriptItemId: @ 203855E
.space 0x2
gUnknown_02038560: @ 2038560
@@ -812,10 +793,10 @@ gUnknown_0203869A: @ 203869A
gUnknown_0203869B: @ 203869B
.space 0x1
-gUnknown_0203869C: @ 203869C
+gScriptContestCategory: @ 203869C
.space 0x2
-gUnknown_0203869E: @ 203869E
+gScriptContestRank: @ 203869E
.space 0x2
gUnknown_020386A0: @ 20386A0
@@ -893,17 +874,7 @@ gUnknown_02038800: @ 2038800
gUnknown_02038804: @ 2038804
.space 0x4
-gUnknown_02038808: @ 2038808
- .space 0x2
-
-gUnknown_0203880A: @ 203880A
- .space 0x2
-
-gUnknown_0203880C: @ 203880C
- .space 0x8
-
-gUnknown_02038814: @ 2038814
- .space 0x98
+ .include "src/safari_zone.o"
gUnknown_020388AC: @ 20388AC
.space 0x4
@@ -989,7 +960,7 @@ gUnknown_020391B4: @ 20391B4
gUnknown_02039234: @ 2039234
.space 0x4
-gUnknown_02039238: @ 2039238
+gAIScriptPtr: @ 2039238
.space 0x4
gUnknown_0203923C: @ 203923C
@@ -1167,7 +1138,7 @@ gUnknown_02039760: @ 2039760
gUnknown_0203A360: @ 203A360
.space 0x20
-gSubspriteTable_203A380: @ 203A380
+gMenuCursorSubsprites: @ 203A380
.space 0x50
gUnknown_0203A3D0: @ 203A3D0
diff --git a/tools/aif2pcm/extended.c b/tools/aif2pcm/extended.c
index 7ec74a887..94449164b 100644
--- a/tools/aif2pcm/extended.c
+++ b/tools/aif2pcm/extended.c
@@ -27,6 +27,7 @@
#include <math.h>
#include <string.h>
+#include <stdint.h>
/*
* Infinite & NAN values
@@ -62,7 +63,7 @@
* Write IEEE Extended Precision Numbers
*/
void
-ieee754_write_extended(double in, unsigned char* out)
+ieee754_write_extended(double in, uint8_t* out)
{
int sgn, exp, shift;
double fraction, t;
@@ -114,17 +115,17 @@ done:
hexp = ((unsigned int) exp) & 0xFF;
/* big endian */
- out[0] = ((unsigned char) sgn) << 7;
- out[0] |= (unsigned char) lexp;
- out[1] = (unsigned char) hexp;
- out[2] = (unsigned char) (low >> 24);
- out[3] = (unsigned char) ((low >> 16) & 0xFF);
- out[4] = (unsigned char) ((low >> 8) & 0xFF);
- out[5] = (unsigned char) (low & 0xFF);
- out[6] = (unsigned char) (high >> 24);
- out[7] = (unsigned char) ((high >> 16) & 0xFF);
- out[8] = (unsigned char) ((high >> 8) & 0xFF);
- out[9] = (unsigned char) (high & 0xFF);
+ out[0] = ((uint8_t) sgn) << 7;
+ out[0] |= (uint8_t) lexp;
+ out[1] = (uint8_t) hexp;
+ out[2] = (uint8_t) (low >> 24);
+ out[3] = (uint8_t) ((low >> 16) & 0xFF);
+ out[4] = (uint8_t) ((low >> 8) & 0xFF);
+ out[5] = (uint8_t) (low & 0xFF);
+ out[6] = (uint8_t) (high >> 24);
+ out[7] = (uint8_t) ((high >> 16) & 0xFF);
+ out[8] = (uint8_t) ((high >> 8) & 0xFF);
+ out[9] = (uint8_t) (high & 0xFF);
return;
}
@@ -134,7 +135,7 @@ done:
* Read IEEE Extended Precision Numbers
*/
double
-ieee754_read_extended(unsigned char* in)
+ieee754_read_extended(uint8_t* in)
{
int sgn, exp;
unsigned long low, high;
diff --git a/tools/aif2pcm/main.c b/tools/aif2pcm/main.c
index 47ee53ce0..dd2d368a5 100644
--- a/tools/aif2pcm/main.c
+++ b/tools/aif2pcm/main.c
@@ -25,8 +25,8 @@
#include <stdint.h>
/* extended.c */
-void ieee754_write_extended (double, unsigned char*);
-double ieee754_read_extended (unsigned char*);
+void ieee754_write_extended (double, uint8_t*);
+double ieee754_read_extended (uint8_t*);
#ifdef _MSC_VER
@@ -50,8 +50,8 @@ do \
typedef struct {
unsigned long num_samples;
- char *samples;
- unsigned char midi_note;
+ uint8_t *samples;
+ uint8_t midi_note;
unsigned long loop_offset;
double sample_rate;
} AifData;
@@ -79,7 +79,7 @@ void change_file_extension(char *filename, const char *new_extension)
memcpy(dot + 1, new_extension, 3);
}
-AifData *read_aif(char * aif_file_data, unsigned long aif_file_data_size)
+AifData *read_aif(uint8_t * aif_file_data, unsigned long aif_file_data_size)
{
AifData *aif_data = (AifData *)malloc(sizeof(AifData));
@@ -99,7 +99,7 @@ AifData *read_aif(char * aif_file_data, unsigned long aif_file_data_size)
unsigned long whole_chunk_size = aif_file_data[pos++] << 24;
whole_chunk_size |= (aif_file_data[pos++] << 16);
whole_chunk_size |= (aif_file_data[pos++] << 8);
- whole_chunk_size |= (unsigned char)aif_file_data[pos++];
+ whole_chunk_size |= (uint8_t)aif_file_data[pos++];
unsigned long expected_whole_chunk_size = aif_file_data_size - 8;
if (whole_chunk_size != expected_whole_chunk_size)
@@ -118,7 +118,7 @@ AifData *read_aif(char * aif_file_data, unsigned long aif_file_data_size)
unsigned long num_sample_frames = 0;
// Read all the Chunks to populate the AifData struct.
- while (pos < aif_file_data_size)
+ while ((pos + 8) < aif_file_data_size)
{
// Read Chunk id
memcpy(chunk_name, aif_file_data + pos, 4);
@@ -129,10 +129,15 @@ AifData *read_aif(char * aif_file_data, unsigned long aif_file_data_size)
chunk_size |= (aif_file_data[pos++] << 8);
chunk_size |= aif_file_data[pos++];
+ if ((pos + chunk_size) > aif_file_data_size)
+ {
+ FATAL_ERROR("%s chunk at 0x%lx reached end of file before finishing\n", chunk_name, pos);
+ }
+
if (strcmp(chunk_name, "COMM") == 0)
{
short num_channels = (aif_file_data[pos++] << 8);
- num_channels |= (unsigned char)aif_file_data[pos++];
+ num_channels |= (uint8_t)aif_file_data[pos++];
if (num_channels != 1)
{
FATAL_ERROR("numChannels (%d) in the COMM Chunk must be 1!\n", num_channels);
@@ -141,24 +146,29 @@ AifData *read_aif(char * aif_file_data, unsigned long aif_file_data_size)
num_sample_frames = (aif_file_data[pos++] << 24);
num_sample_frames |= (aif_file_data[pos++] << 16);
num_sample_frames |= (aif_file_data[pos++] << 8);
- num_sample_frames |= (unsigned char)aif_file_data[pos++];
+ num_sample_frames |= (uint8_t)aif_file_data[pos++];
short sample_size = (aif_file_data[pos++] << 8);
- sample_size |= (unsigned char)aif_file_data[pos++];
+ sample_size |= (uint8_t)aif_file_data[pos++];
if (sample_size != 8)
{
FATAL_ERROR("sampleSize (%d) in the COMM Chunk must be 8!\n", sample_size);
}
- double sample_rate = ieee754_read_extended((unsigned char*)(aif_file_data + pos));
+ double sample_rate = ieee754_read_extended((uint8_t*)(aif_file_data + pos));
pos += 10;
aif_data->sample_rate = sample_rate;
+
+ if (aif_data->num_samples == 0)
+ {
+ aif_data->num_samples = num_sample_frames;
+ }
}
else if (strcmp(chunk_name, "MARK") == 0)
{
unsigned short num_markers = (aif_file_data[pos++] << 8);
- num_markers |= (unsigned char)aif_file_data[pos++];
+ num_markers |= (uint8_t)aif_file_data[pos++];
unsigned long loop_start = 0;
@@ -166,15 +176,15 @@ AifData *read_aif(char * aif_file_data, unsigned long aif_file_data_size)
for (int i = 0; i < num_markers; i++)
{
unsigned short marker_id = (aif_file_data[pos++] << 8);
- marker_id |= (unsigned char)aif_file_data[pos++];
+ marker_id |= (uint8_t)aif_file_data[pos++];
unsigned long marker_position = (aif_file_data[pos++] << 24);
marker_position |= (aif_file_data[pos++] << 16);
marker_position |= (aif_file_data[pos++] << 8);
- marker_position |= (unsigned char)aif_file_data[pos++];
+ marker_position |= (uint8_t)aif_file_data[pos++];
// Marker id is a pascal-style string.
- unsigned char marker_name_size = aif_file_data[pos++];
+ uint8_t marker_name_size = aif_file_data[pos++];
char *marker_name = (char *)malloc((marker_name_size + 1) * sizeof(char));
memcpy(marker_name, aif_file_data + pos, marker_name_size);
marker_name[marker_name_size] = '\0';
@@ -196,7 +206,7 @@ AifData *read_aif(char * aif_file_data, unsigned long aif_file_data_size)
}
else if (strcmp(chunk_name, "INST") == 0)
{
- unsigned char midi_note = (unsigned char)aif_file_data[pos++];
+ uint8_t midi_note = (uint8_t)aif_file_data[pos++];
aif_data->midi_note = midi_note;
@@ -208,7 +218,7 @@ AifData *read_aif(char * aif_file_data, unsigned long aif_file_data_size)
// SKip offset and blockSize
pos += 8;
- char *sample_data = (char *)malloc(num_sample_frames * sizeof(char));
+ uint8_t *sample_data = (uint8_t *)malloc(num_sample_frames * sizeof(uint8_t));
memcpy(sample_data, aif_file_data + pos, num_sample_frames);
aif_data->samples = sample_data;
@@ -263,7 +273,7 @@ void aif2pcm(const char *aif_filename)
fseek(aif_file, 0, SEEK_SET);
// Create buffer for samples.
- char *aif_file_data = (char *)malloc(aif_file_length * sizeof(char));
+ uint8_t *aif_file_data = (uint8_t *)malloc(aif_file_length * sizeof(uint8_t));
if (!aif_file_data)
{
FATAL_ERROR("Failed to allocate buffer for aif file data!\n");
@@ -406,7 +416,7 @@ void pcm2aif(const char *pcm_filename, char base_note, long pitch_adjust, long l
// Common Chunk sampleRate
double sample_rate = pitch_adjust / 1024.0;
- unsigned char sample_rate_buffer[10];
+ uint8_t sample_rate_buffer[10];
ieee754_write_extended(sample_rate, sample_rate_buffer);
for (int i = 0; i < 10; i++)
{